{"version":3,"file":"js/app.bf7daf8b.js","mappings":"sXAAO,MAAMA,EAAY,CAEvBC,eAAgB,OAChBC,gBAAiB,QACjBC,yBAA0B,SAG1BC,+BAAgC,cAChCC,kCAAmC,iBACnCC,gCAAiC,gBACjCC,oCAAqC,6BACrCC,6BAA8B,gBAC9BC,gCAAiC,mCAEjCC,sCAAuC,gBACvCC,qCAAsC,oBACtCC,wCAAyC,kBACzCC,mCAAoC,uBACpCC,yCAA0C,oCAC1CC,wCAAyC,4BACzCC,wCAAyC,+BACzCC,8CAA+C,yCAC/CC,8CAA+C,gCAC/CC,uCAAwC,gBACxCC,wCAAyC,kBACzCC,yCAA0C,yCAC1CC,qCACE,sIACFC,8CAA+C,8FAC/CC,+CACE,yIACFC,6CACE,uIACFC,8CACE,uIACFC,iCAAkC,gBAClCC,4CAA6C,mCAC7CC,mCAAoC,kBACpCC,iCAAkC,gBAClCC,mCAAoC,kBACpCC,mCAAoC,kBACpCC,kBAAmB,OACnBC,0BAA2B,IAC3BC,iCAAkC,gBAClCC,yCAA0C,uBAE1CC,mCAAoC,kBACpCC,oCAAqC,6BACrCC,iCAAkC,0BAElCC,oBAAqB,qBACrBC,yBAA0B,2BAC1BC,8BAA+B,mCAC/BC,oCAAqC,mCACrCC,+BAAgC,gCAEhCC,oCAAqC,2BACrCC,uCAAwC,8BACxCC,kCAAmC,0BACnCC,qCAAsC,0CACtCC,mCAAoC,uBACpCC,0CAA2C,gCAE3CC,kCAAmC,YACnCC,gCAAiC,gBACjCC,mCAAoC,mBAEpCC,qCAAsC,oBACtCC,oCAAqC,mBACrCC,iDAAkD,6BAMlDC,oCAAqC,yCACrCC,oCAAqC,qDAGrCC,yBAA0B,EAG1BC,wBAAyB,EAEzBC,iBAAkB,GAGlBC,WAAY,OACZC,gBAAiB,YACjBC,cAAe,UACfC,eAAgB,WAChBC,eAAgB,SAChBC,eAAgB,WAChBC,sBAAuB,wBACvBC,YAAa,QACbC,mBAAoB,eACpBC,yBAA0B,qBAC1BC,8BAA+B,0BAC/BC,oCAAqC,gCACrCC,sBAAuB,wBACvBC,0BAA2B,cAC3BC,qBAAsB,SACtBC,iBAAkB,QAClBC,wBAAyB,oBACzBC,0BAA2B,sBAC3BC,iCAAkC,6BAClCC,YAAa,iBACbC,WAAY,OAEZC,iBAAkB,aAClBC,0BAA2B,WAC3BC,+BAAgC,gBAChCC,+BAAgC,gBAChCC,oCAAqC,qBACrCC,0BAA2B,WAG3BC,sBAAuB,KACvBC,sBAAuB,KACvBC,sBAAuB,KAEvBC,iBAAkB,IAClBC,oBAAqB,IACrBC,kBAAmB,IACnBC,uBAAwB,KACxBC,mBAAoB,KACpBC,mBAAoB,KACpBC,oBAAqB,KACrBC,mBAAoB,KACpBC,iBAAkB,KAClBC,oBAAqB,KACrBC,kBAAmB,KACnBC,mBAAoB,KACpBC,mBAAoB,KACpBC,mBAAoB,KACpBC,kBAAmB,KACnBC,iBAAkB,KAClBC,iBAAkB,KAClBC,mBAAoB,KACpBC,mBAAoB,KACpBC,mBAAoB,KACpBC,mBAAoB,KACpBC,kBAAmB,KAGnBC,4BACE,4cAGFC,4BAA6B,CAAC,CAAEC,KAAM,gCAAiCC,KAAM,gCAAiCC,QAAS,SACvHC,4BAA6B,CAC3B,CAAEH,KAAM,oBAAqBC,KAAM,oBAAqBC,QAAS,yBACjE,CAAEF,KAAM,qBAAsBC,KAAM,qBAAsBC,QAAS,qCACnE,CAAEF,KAAM,oBAAqBC,KAAM,oBAAqBC,QAAS,yCACjE,CAAEF,KAAM,iCAAkCC,KAAM,iCAAkCC,QAAS,KAC3F,CAAEF,KAAM,kCAAmCC,KAAM,kCAAmCC,QAAS,KAC7F,CAAEF,KAAM,yBAA0BC,KAAM,yBAA0BC,QAAS,0CAC3E,CAAEF,KAAM,0BAA2BC,KAAM,0BAA2BC,QAAS,0CAC7E,CAAEF,KAAM,qBAAsBC,KAAM,qBAAsBC,QAAS,YACnE,CACEF,KAAM,+BACNC,KAAM,+BACNC,QAAS,wDAEX,CACEF,KAAM,gCACNC,KAAM,gCACNC,QAAS,sEAEX,CAAEF,KAAM,gCAAiCC,KAAM,gCAAiCC,QAAS,eACzF,CAAEF,KAAM,0BAA2BC,KAAM,0BAA2BC,QAAS,SAC7E,CAAEF,KAAM,kBAAmBC,KAAM,kBAAmBC,QAAS,SAC7D,CAAEF,KAAM,wBAAyBC,KAAM,wBAAyBC,QAAS,mBAE3EE,4BAA6B,CAC3B,CAAEJ,KAAM,oBAAqBC,KAAM,oBAAqBC,QAAS,wBACjE,CAAEF,KAAM,qBAAsBC,KAAM,qBAAsBC,QAAS,+CACnE,CAAEF,KAAM,oBAAqBC,KAAM,oBAAqBC,QAAS,yCACjE,CAAEF,KAAM,iCAAkCC,KAAM,iCAAkCC,QAAS,KAC3F,CAAEF,KAAM,kCAAmCC,KAAM,kCAAmCC,QAAS,KAC7F,CAAEF,KAAM,yBAA0BC,KAAM,yBAA0BC,QAAS,0CAC3E,CAAEF,KAAM,0BAA2BC,KAAM,0BAA2BC,QAAS,0CAC7E,CAAEF,KAAM,qBAAsBC,KAAM,qBAAsBC,QAAS,YACnE,CACEF,KAAM,+BACNC,KAAM,+BACNC,QAAS,6EAEX,CACEF,KAAM,gCACNC,KAAM,gCACNC,QAAS,4EAEX,CAAEF,KAAM,gCAAiCC,KAAM,gCAAiCC,QAAS,eACzF,CAAEF,KAAM,0BAA2BC,KAAM,0BAA2BC,QAAS,SAC7E,CAAEF,KAAM,kBAAmBC,KAAM,kBAAmBC,QAAS,SAC7D,CAAEF,KAAM,wBAAyBC,KAAM,wBAAyBC,QAAS,4B,+FC9LtE,SAASG,IACd,IACE,OAAOC,KAAKC,MAAMC,OAAOC,aAAaC,QAAQ9H,EAAUC,gBAC1D,CAAE,MAAO8H,GACP,OAAO,IACT,CACF,CAEO,SAASC,EAASC,GACvB,IACEL,OAAOC,aAAaK,QAAQlI,EAAUC,eAAgByH,KAAKS,UAAUF,GACvE,CAAE,MAAOF,GACP,MACF,CACF,CAEO,SAASK,IACd,IACER,OAAOC,aAAaQ,WAAWrI,EAAUC,eAC3C,CAAE,MAAO8H,GACP,MACF,CACF,CAEO,SAASO,EAAMC,EAASC,GAO7B,GADAA,GAAmB,EACfA,EAAkB,CACpB,IAAIC,EAAM,IAAIC,IAAIH,GAClBE,EAAIE,aAAaC,OAAO,MAAO,GAC/BL,EAAUE,EAAII,IAChB,CAEAjB,OAAOkB,SAAWC,6DAA4BC,OAAO,cAAcC,mBAAmBV,KACxF,CAUO,SAASW,IACdtB,OAAOkB,SAAW,GAAGlB,OAAOkB,SAASK,sBACvC,CAUO,SAASC,IACdxB,OAAOkB,SAAWO,GAAMC,MAAMC,IAAIC,gBACpC,CAEO,SAASC,EAAclB,GAC5BX,OAAOkB,SAAWC,4CAAwCC,OAAO,cAAcC,mBAAmBV,KACpG,CAEO,SAASmB,EAAOnB,GACrBX,OAAOkB,SAAWC,2CAA4BC,OAAO,cAAcT,IACrE,CAEO,SAASoB,IACd,MAAM1B,EAAOR,IACb,OAAQQ,IAAQ,IAAI2B,MAAOC,UAAY,KAAQC,SAAS7B,EAAK8B,SAAW,GAC1E,CAmCO,SAASC,EAAsBC,GAChCA,GAAQC,EAAAA,EAAQC,IAAI,SAAUF,EACpC,CCtHO,MAAMG,EAAQ,QACRC,EAAS,SAGTC,EAAkB,iBAElBC,EAAiB,gBACjBC,EAAkB,iBAElBC,EAAmB,iBACnBC,EAAoB,kBAEpBC,EAAqB,mBACrBC,EAAsB,oBAEtBC,EAAgB,eAEhBC,EAAa,YACbC,GAAU,SACVC,GAAU,SAEVC,GAAyB,uBAEzBC,GAAsB,oBCtBnC,MAAMC,GACF,0BAAOC,CAAoBC,EAAOC,GAC9B,MAAMC,EAAQ,IAAI3B,KAAKyB,GAAOG,SAAS,EAAG,EAAG,EAAG,GAC1CC,EAAQ,IAAI7B,KAAK0B,GAAOE,SAAS,EAAG,EAAG,EAAG,GAChD,OAAID,EAAMG,YAAcD,EAAMC,UACnB,EAEFH,EAAMG,UAAYD,EAAMC,WACrB,EAEHH,EAAMG,UAAYD,EAAMC,UACtB,OADN,CAGT,CAEA,kBAAOC,CAAYN,EAAOC,GACtB,MAAMC,EAAQ,IAAI3B,KAAKyB,GAAOG,SAAS,EAAG,EAAG,EAAG,GAC1CC,EAAQ,IAAI7B,KAAK0B,GAAOE,SAAS,GAAI,GAAI,GAAI,IACnD,OAAID,EAAMG,YAAcD,EAAMC,UACnB,EAEFH,EAAMG,UAAYD,EAAMC,WACrB,EAEHH,EAAMG,UAAYD,EAAMC,UACtB,OADN,CAGT,CAEA,oBAAOE,CAAcC,EAAMC,GACvB,OAAOD,EAAgB,GAATC,EAAc,GAAK,GAAK,GAC1C,CAEA,oBAAOC,CAAcC,EAAMF,GACvB,MAAMG,EAAQ,IAAIrC,KAAKoC,GAEvB,OADAC,EAAMC,QAAQF,EAAKG,UAAYL,GACxBG,CACX,CAEA,eAAOG,CAASC,EAAWC,GACvB,MAAMC,EAAkBF,EAClBG,EAAgBF,EAChBG,EAAWC,KAAKC,IAAIH,EAAc3C,UAAY0C,EAAgB1C,WAC9D+C,EAAWF,KAAKG,KAAKJ,EAAW,OAChCK,EAAU,IAAIC,MACpB,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAAUI,IAC1BF,EAAQG,KAAK,IAAIrD,KAAKsD,KAAKnB,cAAcM,EAAWW,KAExD,OAAOF,CAMX,CAEA,qBAAOK,CAAetB,GAClB,IAAIuB,EAAc,IAAIxD,KAAKiC,GACvBwB,EAAcD,EAAYE,aAK9B,OAJID,EAAc,GAAID,EAAYG,WAAW,GACxCH,EAAYG,WAAW,IAC5BH,EAAYI,gBAAgB,GAC5BJ,EAAYK,WAAW,GAChBL,EAAYvD,SACvB,CAEA,sBAAO6D,CAAgB7B,GACnB,IAAIuB,EAAc,IAAIxD,KAAKiC,GACvB8B,EAAYP,EAAYQ,WACxBP,EAAcD,EAAYE,aAK9B,OAJID,EAAc,GAAID,EAAYG,WAAW,KACtCH,EAAYG,WAAW,GAAIH,EAAY5B,SAASmC,EAAY,IACnEP,EAAYI,gBAAgB,GAC5BJ,EAAYK,WAAW,GAChBL,EAAYvD,SACvB,CAEA,kBAAOgE,CAAYhC,GACf,OAAuC,IAAhC,IAAIjC,KAAKiC,GAAMyB,YAC1B,CAEA,kBAAOQ,CAAYC,GACf,YAAaC,IAAND,GAAyB,OAANA,GAAoB,KAANA,IAAaE,MAAMF,EAAErC,UACjE,CAEA,sBAAOwC,GACH,OAAOC,KAAKC,iBAAiBC,kBAAkBC,QAKnD,CAEA,oBAAOC,CAAcvC,GACjB,MAAO,CACH,GAAGA,EAAKwC,gBACR,GAAGxC,EAAKyC,WAAa,IAAIC,SAAS,EAAG,KACrC,GAAG1C,EAAKG,YAAYuC,SAAS,EAAG,MAClCC,KAAK,IACX,CAEA,qBAAOC,CAAeC,GAClB,IAAIP,EAWJA,EAAW,eAGX,MAAMQ,EAAc3D,GAAW4D,gBAAgBF,GACzCG,EAAuBF,EAAYG,eAAe,QAAS,CAAEX,SAAUA,IAE7E,IAAIY,EAAiB,IAAItF,KAAKoF,GAE9B,OAAOE,CACX,CAEA,sBAAOH,CAAgBF,GAEnB,IAAIC,EAKJ,OAHoCA,EAD/BD,EACIA,aAAqBjF,KAAoBiF,EAC/B,IAAIjF,KAAKiF,GAFE,IAAIjF,KAI3BkF,CACX,ECxHJ,IAAIK,GAAgB,KAEhBC,GAAkB,KAGf,MAAMC,GAAkB,CAC7BC,IAAAA,CAAKC,GACHJ,GAAgBK,IAAAA,OAAa,CAC3BC,QAAS1G,mDAGXoG,GAAcO,aAAaC,SAASC,KAClCD,GAAYA,IACZE,UACE,GAAIC,EAAMH,SAAU,CAClB,MAAMI,EAASD,EAAMH,UAAUI,OACzBC,EAAUF,EAAMH,UAAUM,MAAMD,QAEtC,GAAc,KAAVD,GAA4B,gBAAXC,EAA2B,CAC9C,MAAMzH,EAAUX,OAAOkB,SAASD,KAChCqH,QAAQC,KAAK,oDAEP9G,GAAM+G,SAAS/F,GACrB/B,EAAMC,EACR,CAEc,KAAVwH,GAA2B,KAAVA,GACnB7G,GAEJ,CACA,MAAM4G,CAAK,IAIfX,GAAckB,SAASC,UAAY,CACjCC,SAAUpB,GAEVqB,MAAO1G,SAASf,KAChB0H,kBAAmB3G,SAASf,WAC5B2H,WAAY5G,SAASf,WAErB4H,mBAAoB,CAAC,MAAO,OAAQ,UAAW,SAAU,MAAO,QAChEC,mBAAoB,CAClB,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MAGRC,YAAa9H,cAEb+H,eAAgBC,IACdxB,EAAYyB,eAAe,CAAEC,UAAW,IAAIC,MAAMH,IAAO,GAI7DI,EAAAA,GAAWhC,IAEXC,GAAkBI,IAAAA,OAAa,CAC7BC,QAAS1G,mDAGXqG,GAAgBM,aAAaC,SAASC,KACpCD,GAAYA,IACZE,UACE,GAAIC,EAAMH,SAAU,CAClB,MAAMI,EAASD,EAAMH,UAAUI,OACzBC,EAAUF,EAAMH,UAAUM,MAAMD,QAEtC,GAAc,KAAVD,GAA4B,gBAAXC,EAA2B,CAC9C,MAAMzH,EAAUX,OAAOkB,SAASD,KAChCqH,QAAQC,KAAK,oDAEP9G,GAAM+G,SAAS/F,GACrB/B,EAAMC,EACR,CAEc,KAAVwH,GAA2B,KAAVA,GACnB7G,GAEJ,CACA,MAAM4G,CAAK,IAIfV,GAAgBiB,SAASC,UAAY,CACnCC,SAAUnB,GAEVoB,MAAO1G,SAASf,KAChB0H,kBAAmB3G,SAASf,WAC5B2H,WAAY5G,SAASf,WAErB4H,mBAAoB,CAAC,MAAO,OAAQ,UAAW,SAAU,MAAO,QAChEC,mBAAoB,CAClB,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MAGRC,YAAa9H,cAEb+H,eAAgBC,IACdxB,EAAYyB,eAAe,CAAEC,UAAW,IAAIC,MAAMH,IAAO,GAI7DI,EAAAA,GAAW/B,GACb,EAEAgC,SAAAA,GAEEjC,GAAckB,SAASgB,QAAQC,OAAO,iBAAmB,SAAS7J,IAAU8J,aAC9E,EAIAC,WAAAA,CAAYC,GACV,OAAOtC,GAAcuC,IAAI1R,EAAUQ,6BAA8B,CAC/DmR,OAAQ,CACNF,QAASA,IAGf,EAEAG,cAAAA,CAAeH,GACb,OAAOtC,GAAcuC,IAAI1R,EAAUS,gCAAgCoR,QAAQ,YAAaJ,GAC1F,EAEAK,aAAAA,GACE,OAAO3C,GAAcuC,IAAI1R,EAAUI,+BACrC,EAEA2R,4BAAAA,GACE,OAAO5C,GAAcuC,IAAI1R,EAAUO,oCACrC,EAEAyR,aAAAA,CAAcP,GACZ,OAAOtC,GAAc8C,KAAKjS,EAAUK,kCAAmC,CACrEoR,WAEJ,EAEAS,YAAAA,CAAaC,GAEX,OADAjF,KAAKkE,YACEjC,GAAc8C,KAAKjS,EAAUM,gCAAiC,CACnE6R,SAEJ,EAWAC,qBAAAA,CAAsBX,EAASY,EAAaC,EAAgBC,GAC1D,OAAOrF,KAAKsF,gBAAgBf,EAAS,EAAG,GAAG,GAAM,EAAOY,EAAaC,EAAgBC,EACvF,EAEAE,kBAAAA,CAAmBhB,EAASiB,EAAMC,EAAMN,EAAaC,EAAgBC,GACnE,OAAOrF,KAAKsF,gBAAgBf,EAASiB,EAAMC,GAAM,GAAM,EAAON,EAAaC,EAAgBC,EAC7F,EAEAK,iBAAAA,CAAkBnB,EAASiB,EAAMC,EAAME,EAAQP,EAAgBC,GAC7D,OAAOrF,KAAKsF,gBAAgBf,EAASiB,EAAMC,GAAM,EAAOE,GAAQ,EAAOP,EAAgBC,EACzF,EAEAC,eAAAA,CAAgBf,EAASiB,EAAMC,EAAMG,EAASD,EAAQR,EAAaC,EAAgBC,GAGjF,OAAOpD,GAAc8C,KAAKjS,EAAUU,sCAAuC,CACzEqS,QAAStB,EACTuB,QAASF,EACTG,OAAQJ,EACRK,KAAMP,EACNQ,KAAMT,EACNU,YAAaf,IAAe,EAC5BgB,cAAef,IAAmB,EAClCgB,oBAAoBf,IAAqB,GAE7C,EAEAgB,iBAAAA,CAAkB9B,EAASiB,EAAMC,EAAMa,EAAUC,GAC/C,OAAOtE,GAAc8C,KAAKjS,EAAUY,wCAAyC,CAC3EmS,QAAStB,EACTyB,KAAMP,EACNQ,KAAMT,EACNgB,SAAUF,EACVG,KAAMF,GAEV,EAEAG,iBAAAA,CAAkBC,GAChB,OAAO1E,GAAcuC,IAAI1R,EAAUa,mCAAmCgR,QAAQ,cAAegC,GAC/F,EAEAC,sBAAAA,CAAuBD,GACrB,OAAO1E,GAAcuC,IAAI1R,EAAUc,yCAAyC+Q,QAAQ,cAAegC,GACrG,EAEAE,qBAAAA,CAAsBF,GACpB,OAAO1E,GAAcuC,IAAI1R,EAAUe,wCAAwC8Q,QAAQ,cAAegC,GACpG,EAEAG,0BAAAA,CAA2BC,GACzB,OAAO9E,GAAcuC,IAAI1R,EAAUkB,8CAA8C2Q,QAAQ,cAAeoC,GAC1G,EAEAC,qBAAAA,CAAsBL,GACpB,OAAO1E,GAAcuC,IAAI1R,EAAUgB,wCAAwC6Q,QAAQ,cAAegC,GACpG,EAEAM,qBAAAA,CAAsBN,GACpB,OAAO1E,GAAcuC,IAAI1R,EAAUiB,8CAA8C4Q,QAAQ,cAAegC,GAC1G,EAEAO,qBAAAA,CAAsB3C,EAAS4C,GAE7B,OAAOlF,GAAc8C,KAAKjS,EAAUoB,wCAAyC,CAC3E2R,QAAStB,EACT6C,OAAQD,GAEZ,EACAE,2BAAAA,CAA4B9C,GAC1B,OAAOrC,GAAgBsC,IAAID,EAC7B,EACA+C,4BAAAA,CAA6B/C,GAC3B,OAAOtC,GAAcuC,IAAID,EAC3B,EAWAgD,iBAAAA,CAAkBhD,EAASiD,EAAQT,EAAWU,GAE5C,OAAOxF,GAAc8C,KAAKjS,EAAU6B,mCAAoC,CACtEkR,QAAStB,EACTmD,OAAQF,EACRG,UAAWZ,EACXa,SAAUH,EACVzB,KAAM,GACN6B,eAAgB5J,GAAWyD,iBAAiBoG,qBAEhD,EAEAC,eAAAA,CAAgBxD,EAASkD,GAEvB,OAAOxF,GAAc8C,KAAKjS,EAAU8B,iCAAkC,CACpEiR,QAAStB,EACTyD,UAAW,EACXC,UAAW,EACXC,SAAU,EACVC,SAAU,EACVP,SAAUH,EACVI,eAAgB5J,GAAWyD,iBAAiBoG,qBAEhD,EAEAM,iBAAAA,CAAkB7D,EAAS8D,EAAUZ,GACnC,OAAOxF,GAAc8C,KAAKjS,EAAUgC,mCAAoC,CACtE+Q,QAAStB,EACT4D,SAAUE,EACVT,SAAUH,GAEd,EAEA9K,OAAAA,GACE,OAAOsF,GAAc8C,KAAKjS,EAAU2B,iCACtC,EAEA6T,wBAAAA,CAAyB/D,GAEvB,OAAOtC,GAAc8C,KAAKjS,EAAU4B,4CAA4CiQ,QAAQ,YAAaJ,GACvG,EAMAgE,WAAAA,CAAYhE,GACV,OAAOtC,GAAc8C,KAAKjS,EAAUmC,iCAAkC,CACpEsP,WAEJ,EAEAiE,kBAAAA,CAAmBjE,GACjB,OAAOtC,GAAc8C,KAAKjS,EAAUoC,yCAA0C,CAC5EqP,WAEJ,EAMAkE,SAAAA,CAAUC,GACR,OAAOzG,GAAc8C,KAAKjS,EAAUqC,mCAAoC,CACtEwT,WAAYD,GAEhB,EAEAE,UAAAA,CAAWrE,GACT,OAAOtC,GAAc8C,KAAKjS,EAAUsC,oCAAoCuP,QAAQ,YAAaJ,GAC/F,EAEAsE,cAAAA,CAAetE,GACb,OAAOtC,GAAc8C,KAAKjS,EAAUuC,iCAAiCsP,QAAQ,YAAaJ,GAC5F,EAMAuE,YAAAA,CAAavE,EAASzF,EAAO,KAAMmG,EAAQ,MACzC,MAAMR,EAAS,CAAC,EAOhB,OANI3F,IACF2F,EAAO3F,KAAOA,GAEZmG,IACFR,EAAOQ,MAAQA,GAEVhD,GAAcuC,IAAI1R,EAAUwC,oBAAoBqP,QAAQ,YAAaJ,GAAU,CAAEE,OAAQA,GAClG,EAEAsE,gBAAAA,CAAiBxE,EAASyE,EAAU,GAAIlK,EAAO,MAC7C,MAAM2F,EAAS,CAAC,EAOhB,OANI3F,IACF2F,EAAO3F,KAAOA,GAED,MAAXkK,GAAmBA,EAAQC,OAAS,IACtCxE,EAAOuE,QAAUA,GAEZ/G,GAAcuC,IAAI1R,EAAUyC,yBAAyBoP,QAAQ,YAAaJ,GAAU,CAAEE,OAAQA,EAAQyE,iBAAkBzE,GAAU0E,IAAAA,UAAa1E,EAAQ,CAAE2E,YAAa,YAC/K,EAEAC,oBAAAA,CAAqB9E,EAASU,GAC5B,OAAOhD,GAAcuC,IAAI1R,EAAU0C,8BAA8BmP,QAAQ,YAAaJ,GAASI,QAAQ,UAAWM,GACpH,EAEAqE,2BAAAA,CAA4B/E,EAASgF,EAAW,MAC9C,MAAM9E,EAAS,CAAC,EAKhB,OAJI8E,IACF9E,EAAO8E,SAAWA,GAEpBvG,QAAQwG,IAAID,GACLtH,GAAcuC,IAAI1R,EAAU2C,oCAAoCkP,QAAQ,YAAaJ,GAAU,CAAEE,OAAQA,GAClH,EAEAgF,qBAAAA,CAAsBlF,EAASzF,EAAO,KAAMyK,EAAW,MACrD,MAAM9E,EAAS,CAAC,EAQhB,OAPI3F,IACF2F,EAAO3F,KAAOA,GAEZyK,IACF9E,EAAO8E,SAAWA,GAEpBvG,QAAQwG,IAAIjF,EAASzF,EAAMyK,GACpBtH,GAAcuC,IAAI1R,EAAU4C,+BAA+BiP,QAAQ,YAAaJ,GAAU,CAAEE,OAAQA,GAC7G,EAMAiF,YAAAA,GACE,OAAOzH,GAAcuC,IAAI1R,EAAU6C,oCACrC,EAEAgU,eAAAA,GACE,OAAO1H,GAAcuC,IAAI1R,EAAU8C,uCACrC,EAQAgU,YAAAA,GACE,OAAO3H,GAAcuC,IAAI1R,EAAUiD,mCACrC,EAEA8T,kBAAAA,EAAmB,QAAEtF,EAAO,WAAEuF,EAAU,SAAEC,EAAW,GAAE,KAAE7P,EAAO,KAAI,UAAE8P,EAAY,KAAI,aAAEC,EAAe,KAAI,MAAEC,EAAQ,KAAI,WAAEC,GAAa,IACtI,OAAOlI,GAAc8C,KAAKjS,EAAU+C,kCAAmC,CACrEgQ,QAAStB,EACT6F,KAAMlQ,EACNmQ,UAAWL,EACXM,aAAcL,EACdM,MAAOL,EACPM,WAAYL,EACZM,WAAYX,EACZY,SAAUX,GAEd,EAEAY,kBAAAA,EAAmB,wBAAEC,IACnB,OAAO3I,GAAc8C,KAAKjS,EAAUkD,0CAA2C,CAC7E6U,wBAAyBD,GAE7B,EAMAE,YAAAA,CAAavG,GACX,OAAOtC,GAAc8C,KAAKjS,EAAUmD,kCAAmC,CACrE4P,QAAStB,GAEb,EAEAwG,WAAAA,EAAY,QAAExG,EAAO,iBAAEyG,EAAgB,UAAErE,EAAS,aAAEsE,EAAY,eAAEC,EAAc,SAAEC,IAChF,OAAOlJ,GAAc8C,KAAKjS,EAAUoD,gCAAiC,CACnE2P,QAAStB,EACT6G,iBAAkBJ,EAClBK,UAAW1E,EACX2E,aAAcL,EACdM,eAAgBL,EAChBM,SAAUL,GAEd,EAEAM,cAAAA,EAAe,QAAElH,EAAO,iBAAEyG,EAAgB,UAAErE,EAAS,aAAEsE,EAAY,eAAEC,EAAc,SAAEC,IACnF,OAAOlJ,GAAc8C,KAAKjS,EAAUqD,mCAAoC,CACtE0P,QAAStB,EACT6G,iBAAkBJ,EAClBK,UAAW1E,EACX2E,aAAcL,EACdM,eAAgBL,EAChBM,SAAUL,GAEd,EAKAO,uBAAAA,CAAwBR,GACtB,OAAOjJ,GAAcuC,IAAI1R,EAAUqB,yCAAyCwQ,QAAQ,mBAAoBuG,GAC1G,EAKAS,gBAAAA,CAAiBC,GACf,OAAO3J,GAAc8C,KAAKjS,EAAUsD,qCAAsC,CACxEwV,eAEJ,EAEAC,eAAAA,CAAgBD,GACd,OAAO3J,GAAc8C,KAAKjS,EAAUuD,oCAAqC,CACvEuV,eAEJ,EAEAE,4BAAAA,CAA6BF,GAC3B,OAAO3J,GAAc8C,KAAKjS,EAAUwD,iDAAkD,CACpFsV,eAEJ,EAIAG,kBAAAA,CAAmBC,GACjB,OAAO/J,GAAcuC,IAAIwH,EAC3B,GCteWC,GAAW,UACXC,GAAa,SAIbC,GAAiB,eAEjBC,GAAmB,iBACnBC,GAAc,aAEdC,GAAsB,oBAEtBC,GAA0B,wBAE1BC,GAA6B,0BAC7BC,GAA2B,wBAC3BC,GAA6B,0BAE7BC,GAA+B,4BAC/BC,GAA2B,wBAC3BC,GAA6B,0BAE7BC,GAAW,UACXC,GAAW,UACXC,GAAa,YAEbC,GAAoB,kBACpBC,GAAwB,qBACxBC,GAAoB,iBACpBC,GAAoB,iBAEpBC,GAA0B,wBAE1BC,GAA8B,2BAC9BC,GAAgB,cAEhBC,GAAoB,kBACpBC,GAAyB,sBAExBC,GAAsB,oBAEtBC,GAAmB,iBCjC3BC,GAAe,CACnBC,QAAShS,QACTiS,WAAW,EACXC,kBAAkB,EAClBxJ,SAAU,EACVyJ,eAAgB,KAChBC,aAAc,KACdvF,WAAY,KACZwF,eAAgB,KAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,EACtBC,oBAAqB,KACrBC,mBAAoB,KACpBlS,iBAAkB,KAClBmS,YAAa5S,+BACb6S,WAAY,GACZC,gBAAiB,EACjBC,YAAa,CAAC,EACdC,YAAa,CAAC,EACdC,kBAAmB,KACnBC,sBAAsB,EACtBC,gBAAgB,EAChBC,iBAAiB,EACjBC,mBAAmB,EACnBC,uBAAuB,EACvBC,eAAe,EACfC,eAAgB,KAChBC,aAAc,KACdC,cAAe,KACfC,kBAAmB,KACnB5T,SAAU,KACV6T,oBAAqB,EACrBC,sBAAuB,CAAC,EACxBC,aAAc,KACdC,cAAe,KACfC,UAAW,KACXC,SAAU,CAAC,EACXC,aAAc,IAGV3T,GAAQ,IAAKwR,IAEboC,GAAU,CACdC,UAAAA,CAAW7T,GACT,OAAOA,EAAMyR,OACf,EACAqC,kBAAAA,CAAmB9T,GACjB,OAAOA,EAAM2R,gBACf,GAGIoC,GAAU,CACd,CAACxS,IAAe,OAAEyS,EAAM,MAAEhU,IACxB,MAAMmI,EAAUnI,EAAMmI,SACjBA,GAAWA,GAAW,GAE3BpC,GAAgByG,WAAWrE,GAAS8L,MAAK,EAAGtN,WAC1CqN,EAAO/D,GAAatJ,EAAK,GAE7B,EACA,CAAC3F,IAAiB,OAAEgT,EAAM,MAAEhU,IAC1BgU,EAAO7D,IAA0BnQ,EAAM2R,iBACzC,GAGIuC,GAAY,CAChB,CAACnE,IAAgB/P,EAAO0R,GACtB1R,EAAM0R,UAAYA,CACpB,EACA,CAAC1B,IACChQ,GACA,QACEmI,EAAO,WACPgM,EAAU,WACV7H,EAAU,eACVwF,EAAc,eACdF,EAAc,aACdC,EAAY,gBACZG,EAAe,iBACfC,EAAgB,qBAChBC,EAAoB,oBACpBC,EAAmB,mBACnBC,EAAkB,iBAClBlS,EAAgB,YAChBmS,EAAW,gBACXE,EAAe,kBACfG,EAAiB,qBACjBC,EAAoB,eACpBC,EAAc,gBACdC,EAAe,kBACfC,EAAiB,sBACjBC,EAAqB,cACrBC,EAAa,eACbC,EAAc,SACdzT,EAAQ,aACR0T,EAAY,aACZK,EAAY,cACZC,EAAa,UACbC,IA+BF,GA5BAzT,EAAMmI,QAAUA,EAChBnI,EAAMmU,WAAaA,EACnBnU,EAAMsM,WAAaA,EACnBtM,EAAM8R,eAAiBA,EACvB9R,EAAM4R,eAAiBA,EACvB5R,EAAM6R,aAAeA,EACrB7R,EAAMgS,gBAAkBA,EACxBhS,EAAMiS,iBAAmBA,EACzBjS,EAAMkS,qBAAuBA,EAC7BlS,EAAMmS,oBAAsBA,EAC5BnS,EAAMoS,mBAAqBA,EAC3BpS,EAAME,iBAAmBA,EACrBmS,IAAarS,EAAMqS,YAAcA,GACjCE,IAAiBvS,EAAMuS,gBAAkBA,GAC7CvS,EAAM0S,kBAAoBA,EAC1B1S,EAAM2S,qBAAuBA,EAC7B3S,EAAM4S,eAAiBA,EACvB5S,EAAM6S,gBAAkBA,EACxB7S,EAAM8S,kBAAoBA,EAC1B9S,EAAM+S,sBAAwBA,EAC9B/S,EAAMgT,cAAgBA,EACtBhT,EAAMiT,eAAiBA,EACvBjT,EAAMR,SAAWA,EACjBQ,EAAMkT,aAAeA,EACrBlT,EAAMoU,cAAgB5U,GAAU6U,MAAM,KAAK,IAAIC,OAC/CtU,EAAMuT,aAAeA,EACrBvT,EAAMwT,cAAgBA,EACtBxT,EAAMyT,UAAYA,EACdR,EACF,OAAQA,GACN,KAAKvc,EAAU0F,sBACb4D,EAAMmT,eAAgB,EACtBnT,EAAMoT,mBAAoB,EAC1B,MACF,KAAK1c,EAAUyF,sBACf,KAAKzF,EAAU2F,sBACf,QACE2D,EAAMmT,eAAgB,EACtBnT,EAAMoT,mBAAoB,EAC1B,MAIR,EACA,CAACnD,IAAajQ,EAAOuU,GACnBvU,EAAMsS,WAAaiC,GAASC,IAC5BxU,EAAMyU,gBAAkBF,GAASG,MACnC,EACA,CAACvE,IAAyBnQ,EAAO2U,GAC/B3U,EAAM2R,iBAAmBgD,CAC3B,EACA,CAAC3D,IAAmBhR,EAAOyS,GACzBzS,EAAMyS,YAAcA,CACtB,EACA,CAAC5B,IAAmB7Q,GAAO,gBAAEgS,EAAe,iBAAEC,IAC5CjS,EAAM+R,iBAAkB,EAExB/R,EAAMgS,gBAAkBA,EACxBhS,EAAMiS,iBAAmBA,CAC3B,EACA,CAAClB,IAAmB/Q,EAAOwS,GACzBxS,EAAMwS,YAAcA,CACtB,EACA,CAAC1B,IAAuB9Q,EAAOuS,GAC7BvS,EAAMuS,gBAAkBA,CAC1B,EACA,CAACtB,IAAyBjR,EAAO4U,GAC/B5U,EAAMqT,oBAAsBuB,CAC9B,EACA,CAAC1D,IAA6BlR,EAAOsT,GAEnCtT,EAAMsT,sBAAwBA,CAChC,EACA,CAACnC,IAAenR,EAAO0T,GAErB1T,EAAM0T,SAAWA,CACnB,EACA,CAACtC,IAAmBpR,GAAO,WAAE6U,EAAU,aAAEC,EAAY,cAAEC,EAAa,OAAEC,EAAM,SAAEC,EAAQ,cAAEC,EAAa,YAAEC,IACrG,MAAMC,EAAoBpV,EAAM2T,aAAa0B,WAAUC,GAAKA,EAAET,aAAeA,GAAcS,EAAE5S,KAAKnC,YAAc,IAAID,KAAK2U,GAAU1U,YAEnI,IAAIgV,GAAW,GACY,IAAvBH,IACEpV,EAAM2T,aAAayB,GAAmBI,KAAOR,IAC/CO,GAAW,GAEbvV,EAAM2T,aAAa8B,OAAOL,EAAmB,IAG/B,GAAZG,GACFvV,EAAM2T,aAAahQ,KAAK,CACtB6R,GAAIR,EACJH,WAAYA,EACZ/W,KAAMgX,EACNY,MAAOX,EACPrS,KAAM,IAAIpC,KAAK2U,GACfU,UAAWT,EACXU,QAAST,GAGf,EACA,CAAC9D,IAAwBrR,EAAO6V,GAC9B7V,EAAM2T,aAAekC,CACvB,GAGF,QACE7V,SACA+T,WACAG,aACAN,Y,SCtNF,MAAMjV,GAAOR,KAAa,KAEpBqT,GAAe,CACnBsE,SAAmB,OAATnX,GAEVA,KAAMA,GACNoX,KAAM,IAGF/V,GAAQ,IAAKwR,IAEboC,GAAU,CACdoC,QAAAA,CAAShW,GACP,OAAOA,EAAM8V,QACf,EACAG,WAAAA,CAAYjW,GACV,OAAOA,EAAMrB,IACf,EACAuX,QAAAA,CAASlW,GACP,MAAO,GAAGA,EAAMrB,MAAMwX,aAAanW,EAAMrB,MAAMyX,UACjD,GAGIrC,GAAU,CACd,CAACjT,IAAO,OAAEkT,GAAUqC,GAClB,MAAMxN,EAAQvK,OAAOgY,KAAKD,EAAUjO,IAAI,UAClCmO,EAAQjY,OAAOgY,KAAKD,EAAUjO,IAAI,UAElCoO,EAAQlY,OAAOgY,KAAKD,EAAUjO,IAAI,UAClC+N,EAAY7X,OAAOgY,KAAKD,EAAUjO,IAAI,cACtCgO,EAAW9X,OAAOgY,KAAKD,EAAUjO,IAAI,aAErCqO,EAAQJ,EAAUjO,IAAI,SACtB3H,EAAU4V,EAAUjO,IAAI,WAExBzJ,EAAO,CACXkK,QACA0N,QACAC,QACAL,YACAC,WACAnO,YAAawO,EACbhW,WAGF/B,EAASC,GAEToH,GAAgB+B,YAChBkM,EAAOnE,GAAUlR,EACnB,EACA,CAACoC,IAAQ,OAAEiT,IACTlV,IACAkV,EAAOlE,GACT,EACA,CAACtO,IAAY,OAAEwS,GAAU7L,GACvBpC,GAAgB2I,aAAavG,GAAS8L,MAAK,EAAGtN,WAC5CqN,EAAOtD,GAAU/J,EAAK,GAE1B,EAEA,CAAClF,KAAS,OAAEuS,IAAU,QAAE7L,EAAO,iBAAEyG,EAAgB,UAAErE,EAAS,aAAEsE,EAAY,eAAEC,EAAc,SAAEC,IAC1FhJ,GAAgB4I,YAAY,CAAExG,UAASyG,mBAAkBrE,YAAWsE,eAAcC,iBAAgBC,aAAYkF,MAAK,EAAGtN,WACpHqN,EAAOrD,GAAUhK,EAAK,GAE1B,EAEA,CAACjF,KAAS,OAAEsS,IAAU,QAAE7L,EAAO,iBAAEyG,EAAgB,UAAErE,EAAS,aAAEsE,EAAY,eAAEC,EAAc,SAAEC,IAC1FhJ,GAAgBsJ,eAAe,CAAElH,UAASyG,mBAAkBrE,YAAWsE,eAAcC,iBAAgBC,aAAYkF,MAAK,EAAGtN,WACvHqN,EAAOpD,GAAYjK,EAAK,GAE5B,GAGIuN,GAAY,CAChB,CAACrE,IAAU7P,EAAOrB,GAChBqB,EAAM8V,UAAW,EACjB9V,EAAMrB,KAAOA,CACf,EACA,CAACmR,IAAY9P,GACXA,EAAM8V,UAAW,EACjB9V,EAAMrB,KAAO,IACf,EAMA,CAAC+R,IAAU1Q,EAAO+V,GAChB/V,EAAM+V,KAAOA,CACf,EACA,CAACpF,IAAU3Q,EAAO0W,GAChB1W,EAAM+V,KAAKpS,KAAK+S,EAClB,EACA,CAAC9F,IAAY5Q,EAAO0W,GAClB1W,EAAM+V,KAAO/V,EAAM+V,KAAKY,QAAOrB,GAAKA,EAAEsB,iBAAmBF,EAAIE,gBAC/D,GAGF,QACE5W,MAAK,GACL+T,QAAO,GACPG,UAAS,GACTN,QAAOA,IC5GF,MAAMiD,GAAgB,CACzBC,KAAM,uFACNC,SAAU,uFACVC,OAAQ,wFCCNxF,GAAe,CAAEyF,SAAS,GAE1BjX,GAAQ,IAAKwR,IAEboC,GAAU,CACZsD,gBAAAA,CAAiBlX,GACb,OAAOA,EAAMiX,OACjB,GAGElD,GAAU,CACZ,CAAC9S,IAAgB,OAAE+S,IACfA,EAAO9D,IAAqB,GAC5BtJ,QAAQuQ,KAAK,oBAAqBN,GAAcG,OACpD,EACA,CAAC9V,IAAiB,OAAE8S,IAChBA,EAAO9D,IAAqB,GAC5BtJ,QAAQuQ,KAAK,qBAAsBN,GAAcG,OACrD,GAGE9C,GAAY,CACd,CAAChE,IAAqBlQ,EAAOiX,GACzBjX,EAAMiX,QAAUA,CACpB,GAGJ,QACIjX,MAAK,GACL+T,QAAO,GACPG,UAAS,GACTN,QAAOA,IC7BX,MAAMpC,GAAe,CACnB4F,MAAO,CACLC,MAAM,EACNC,SAAU,CACRC,KAAM,KACN/B,IAAK,IAGTgC,QAAS,CACPH,MAAM,EACNhP,OAAQ,OAINrI,GAAQ,IAAKwR,IAEboC,GAAU,CACd6D,gBAAAA,CAAiBzX,GACf,OAAOA,EAAMoX,MAAMC,IACrB,EACAK,kBAAAA,CAAmB1X,GACjB,OAAOA,EAAMwX,QAAQH,IACvB,GAGItD,GAAU,CACd,CAAC5S,IAAkB,OAAE6S,GAAUsD,GAC7BtD,EAAO3D,GAA0BiH,GACjCtD,EAAO5D,IAA4B,EACrC,EACA,CAAChP,IAAmB,OAAE4S,IACpBA,EAAO5D,IAA4B,GACnC4D,EAAO1D,GACT,EACA,CAACjP,IAAoB,OAAE2S,GAAUrJ,GAC/BqJ,EAAOxD,GAA0B7F,GACjCqJ,EAAOzD,IAA8B,EACvC,EACA,CAACjP,IAAqB,OAAE0S,IACtBA,EAAOzD,IAA8B,GACrCyD,EAAOvD,GACT,GAGIyD,GAAY,CAChB,CAAC9D,IAA4BpQ,EAAOqX,GAI9BA,GAAQtX,GAAMC,MAAMC,IAAIiS,sBAE1BnS,GAAMiU,OAAOjE,IAAgB,GAC7BhK,GAAgB8E,sBAAsB7K,EAAMoX,MAAME,SAAS9B,IAAIvB,MAAK,EAAGtN,WACrE,MAAMgR,EAAYlY,8BACZmY,EAAiB,GAAGD,aAAqBhR,EAAKkR,sBAEpDvZ,OAAOkB,SAASD,KAAOqY,CAAc,KAGvC5X,EAAMoX,MAAMC,KAAOA,CAEvB,EACA,CAAChH,IAA0BrQ,EAAOsX,GAChCtX,EAAMoX,MAAME,SAAWA,CACzB,EACA,CAAChH,IAA4BtQ,GAC3BA,EAAMoX,MAAME,SAASC,KAAO,KAC5BvX,EAAMoX,MAAME,SAAS9B,IAAM,CAC7B,EACA,CAACjF,IAA8BvQ,EAAOqX,GACpCrX,EAAMwX,QAAQH,KAAOA,CAevB,EACA,CAAC7G,IAA0BxQ,EAAOqI,GAChCrI,EAAMwX,QAAQnP,OAASA,CACzB,EACA,CAACoI,IAA4BzQ,GAC3BA,EAAMwX,QAAQnP,OAAS,IACzB,GAGF,QACErI,MAAK,GACL+T,QAAO,GACPG,UAAS,GACTN,QAAOA,ICrGT,MAAMpC,GAAe,CAAEsG,SAAU,MAE3B9X,GAAQ,IAAKwR,IAEboC,GAAU,CACZmE,cAAAA,CAAe/X,GACX,OAAOA,EAAM8X,QACjB,GAGE/D,GAAU,CACZ,CAACpS,KAAwB,OAAEqS,GAAS8D,GAChC9D,EAAO1C,GAAqBwG,EAChC,GAGE5D,GAAY,CACd,CAAC5C,IAAqBtR,EAAO8X,GACzB9X,EAAM8X,SAAWA,CACrB,GAGJ,QACI9X,MAAK,GACL+T,QAAO,GACPG,UAAS,GACTN,QAAOA,IC1BX,MAAMpC,GAAe,CAAEwG,YAAY,CAACrX,OAAQ,OAEtCX,GAAQ,IAAKwR,IAEboC,GAAU,CACZoE,WAAAA,CAAYhY,GACR,OAAOA,EAAMgY,WACjB,GAGEjE,GAAU,CACZ,CAACnS,KAAqB,OAAEoS,GAASgE,GAC7BhE,EAAOzC,GAAkByG,EAC7B,GAGE9D,GAAY,CACd,CAAC3C,IAAkBvR,EAAOgY,GACtBhY,EAAMgY,YAAcA,CACxB,GAGJ,QACIhY,MAAK,GACL+T,QAAO,GACPG,UAAS,GACTN,QAAOA,ICnBXqE,EAAAA,WAAI3R,IAAI4R,EAAAA,IAED,MAAMnY,GAAQ,IAAImY,EAAAA,GAAAA,MAAW,CAClCC,QAAS,CACPlY,IAAG,GACHmY,KAAI,GACJC,QAAO,GACPC,MAAK,GACLC,OAAM,GACNC,QAAOA,M,gBCnBJ,MAAMC,GAAY,CACrBC,QAAS,UACTC,aAAc,gBCAlB,MAAMC,GACJ,2BAAOC,CAAqBC,GAC1B,IAAI1B,EAAQ,CAAE5B,IAAK,EAAG+B,KAAM,MAE5B,GAAIuB,EAAKC,QAAQ,KAAO,EAAG,CACzB,MAAMC,EAAWF,EAAKzE,MAAM,KAAK,GAE3B4E,EAAkC,KAAtBD,EAASE,OAAO,GAAYT,GAAUC,QAAUD,GAAUE,aACtEQ,EAAU3Y,SAASwY,EAASI,UAAU,EAAGJ,EAASnM,SAExDuK,EAAQ,CAAE5B,GAAI2D,EAAS5B,KAAM0B,EAAWH,KAAMA,EAChD,CAEA,OAAO1B,CACT,CAEA,2BAAOiC,CAAqBP,GAC1B,IAAIzQ,EAAS,CAAEsC,WAAY,GAI3B,MAAMA,EAAYnK,SAASsY,GAG3B,OAFAzQ,EAAS,CAAEsC,UAAWA,GAEftC,CACT,CAEA,uBAAOiR,CAAiBR,GACtB,MAAME,EAAWF,EAAKzE,MAAM,KAC5B,OAAOkF,OAAO/Y,SAASwY,EAAS,GAClC,CAkCA,sBAAOQ,CAAgBhK,EAAYiK,EAAWC,GAC5C,IAAIC,EAAoBnK,GAAe,GASvC,OARIiK,GAAaC,IACiB,GAA5BC,EAAkB9M,OACpB8M,GAAqB,IAErBA,GAAqB,IAEvBA,GAAqB,GAAGF,KAAa9Z,mBAAmB+Z,MAEnDC,CACT,CAKA,yBAAOC,CAAmBH,EAAWta,GAE9BA,IAAKA,EAAMb,OAAOkB,SAASD,MAChC,IAAIsa,EAAW1a,EAAIkV,MAAM,KAEzB,GAAIwF,EAAShN,QAAU,EAAG,CAWxB,IATA,IAAIiN,EAAUD,EAASE,QAGnBvK,EAAcqK,EAASxU,KAAK,KAE5B2U,EAASra,mBAAmB8Z,GAAa,IACzCQ,EAAQzK,EAAY6E,MAAM,SAGrB3Q,EAAIuW,EAAMpN,OAAQnJ,KAAM,IAEU,IAArCuW,EAAMvW,GAAGwW,YAAYF,EAAQ,IAC/BC,EAAMxE,OAAO/R,EAAG,GAGpBvE,EAAM2a,EAEFG,EAAMpN,OAAS,IACjB1N,EAAMA,EAAM,IAAM8a,EAAM5U,KAAK,KAEjC,CAEA,OAAOlG,CACT,CAEA,yBAAOgb,CAAmBrc,EAAMqB,GACzBA,IAAKA,EAAMb,OAAOkB,SAASD,MAEhCzB,EAAOA,EAAKyK,QAAQ,SAAU,QAC9B,IAAI6R,EAAQ,IAAIC,OAAO,OAASvc,EAAO,qBACrCwc,EAAUF,EAAMG,KAAKpb,GACvB,OAAKmb,EACAA,EAAQ,GACNE,mBAAmBF,EAAQ,GAAG/R,QAAQ,MAAO,MAD5B,GADH,IAGvB,ECtHK,SAASkS,KACd,MAAMC,EAAwBjb,2BAC9B,OAAOib,CACT,CAEO,SAASC,KACd,MAAMtI,EAActS,GAAMC,MAAMC,IAAIoS,YAEpC,OAAO,IAAIuI,EAAAA,EACT,CACE3S,YAAawS,KACbI,MAAO,CACLC,MAAO,OACPvD,KAAM,WAGVlF,EAEJ,CAOO,SAAS0I,KACd,IAAIC,GAAS,EAETC,EACArC,GAAYuB,mBAAmB,+BAC/B,IACAM,KACA,IACA7B,GAAYuB,mBAAmB,gCAC/Be,EAAkBC,GAAAA,WAAkB,QAAQC,OAAOH,GAAkBI,OAAO,OAUhF,OALIzC,GAAYuB,mBAAmB,6BAA+Be,IAGhEF,GAAS,GAEJA,CACT,CC7CA/C,EAAAA,WAAItB,OAAO,gCAAiC+C,IAC1C,GAAIA,EACF,OAAO7U,KAAKC,eAAe,QAAS,CAClCwW,MAAO,OACPC,IAAK,UACLC,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,QAAQ,EACRC,UAAW,MACX5W,SAAU,iBACT6W,OAAO,IAAIvb,KAAKoZ,GAAO,IAG9BzB,EAAAA,WAAItB,OAAO,0BAA2B+C,IACpC,GAAIA,EACF,OAAO7U,KAAKC,eAAe,QAAS,CAClC0W,KAAM,UACNC,OAAQ,UACRE,QAAQ,EACRC,UAAW,MACX5W,SAAU,iBACT6W,OAAO,IAAIvb,KAAKoZ,GAAO,IAG9BzB,EAAAA,WAAItB,OAAO,6BAA8B+C,IACvC,GAAIA,EACF,OAAO7U,KAAKC,eAAe,QAAS,CAClC0W,KAAM,UACNC,OAAQ,UACRE,QAAQ,EACRC,UAAW,MACXE,aAAc,UAEbC,cAAc,IAAIzb,KAAKoZ,IACvBsC,KAAI,EAAGzE,OAAMmC,YACZ,OAAQnC,GACN,IAAK,eACH,MAAO,IAAImC,KACb,QACE,OAAOA,EACX,IAEDuC,QAAO,CAACC,EAAQC,IAASD,EAASC,GAEvC,IAGFlE,EAAAA,WAAItB,OAAO,cAAe+C,GACnBA,EACEA,EAAM0C,MAAM,EAAG,GADH,KAIrBnE,EAAAA,WAAItB,OAAO,mCAAoC+C,IAC7C,GAAIA,EACF,OAAO7U,KAAKC,eAAe,QAAS,CAClCwW,MAAO,OACPC,IAAK,YACJM,OAAO,IAAIvb,KAAKoZ,GAAO,IAG9BzB,EAAAA,WAAItB,OAAO,yBAA0B+C,IACnC,GAAIA,EACF,OAAO7U,KAAKC,eAAe,QAAS,CAClCwW,MAAO,OACPC,IAAK,UACLvW,SAAU,iBACT6W,OAAO,IAAIvb,KAAKoZ,GAAO,IAG9BzB,EAAAA,WAAItB,OAAO,oBAAqB+C,IAC9B,GAAIA,EAAO,OAAOA,EAAMrF,MAAM,KAAK,EAAE,IAEvC4D,EAAAA,WAAItB,OAAO,qBAAsB+C,IAC/B,GAAIA,EAAO,OAAOA,EAAMrF,MAAM,KAAK,GAAGA,MAAM,KAAK,EAAE,IAGrD4D,EAAAA,WAAItB,OAAO,QAAS+C,IAClB,GAAIA,EAAO,OAAOA,EAAMpF,MAAM,IAGhC2D,EAAAA,WAAItB,OAAO,uBAAwB+C,IACjC,GAAIA,EAAO,OAAOiB,KAAqB0B,iBAAiBC,OAAO5C,EAAM,IAGvEzB,EAAAA,WAAItB,OAAO,oDAAqD+C,IAC9D,GAAIA,EAKF,OAHIA,EAAM1b,SAAW0b,EAAM1b,QAAQ6O,OAAS,GAA+B,cAA1B6M,EAAM1b,QAAQ,GAAGuZ,OAChEmC,EAAM1b,QAAQ,GAAGuZ,KAAO,QAEnBoD,KAAqB0B,iBAAiBC,OAAO5C,EACtD,IAGFzB,EAAAA,WAAItB,OAAO,iCAAkC+C,IAC3C,GAAIA,EACF,OAAO7U,KAAKC,eAAe,QAAS,CAClCwW,MAAO,OACPC,IAAK,UACLgB,KAAM,UACNvX,SAAU,iBACT6W,OAAO,IAAIvb,KAAKoZ,GAAO,IAG9BzB,EAAAA,WAAItB,OAAO,6BAA8B+C,IACvC,GAAIA,EACF,OAAO7U,KAAKC,eAAe,QAAS,CAClCyW,IAAK,UACLvW,SAAU,iBACT6W,OAAO,IAAIvb,KAAKoZ,GAAO,IAG9BzB,EAAAA,WAAItB,OAAO,iBAAkB+C,IAC3B,GAAIA,EAAO,OAAOA,EAAMrF,MAAM,KAAK,GAAGC,MAAM,IAG9C2D,EAAAA,WAAItB,OAAO,qBAAsB+C,IAC/B,IAAI8C,EAAsB9C,EAY1B,OAAO8C,CAAmB,IAG5BvE,EAAAA,WAAItB,OAAO,iCAAkC+C,IAC3C,IAAI8C,EAAsB9C,EAU1B,OAAO8C,CAAmB,I,aCrJxBF,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAAGD,EAAIG,UAAqDF,EAAG,WAAW,CAAED,EAAIzK,gBAAiB0K,EAAG,qBAAuBD,EAAIzK,kBAAoByK,EAAIxK,kBAAsBwK,EAAIxK,mBAAqBwK,EAAIvK,qBAAuBwK,EAAG,yBAAyBD,EAAII,MAAM,GAArPH,EAAG,WAAW,CAACA,EAAG,qBAAqB,IAAkN,EAC5V,EACII,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,eAAe,CAACK,MAAM,CAAC,KAAO,OAAO,aAAc,EAAM,UAAW,MAAS,IACvK,EACID,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,WAAW,CAACN,EAAG,QAAQ,CAACM,YAAY,gDAAgDC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIU,wBAAwBV,EAAItU,6BAA6BvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,eAAeN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACN,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,eAAeX,EAAIW,GAAG,wBAAwBV,EAAG,MAAM,CAAED,EAAIY,OAAQX,EAAG,MAAM,CAACA,EAAG,SAAS,CAACK,MAAM,CAAC,gBAAgB,OAAO,UAAY,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,OAAS,KAAK,CAAGN,EAAI/K,WAAc+K,EAAIa,0BAA2Bb,EAAIc,SAAgkBd,EAAII,KAA1jBH,EAAG,MAAM,CAACA,EAAG,UAAU,CAACK,MAAM,CAAC,KAAON,EAAIxK,iBAAiB,QAAU,aAAa,CAACyK,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,wCAAwCX,EAAIe,GAAGf,EAAI3K,gBAAgB,OAAO,GAAG4K,EAAG,UAAU,CAACK,MAAM,CAAC,KAAON,EAAIY,SAAWZ,EAAIxK,iBAAiB,QAAU,aAAa,CAACyK,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,yDAAyD,IAAI,GAAaX,EAAIgB,gBAAkBhB,EAAIgB,eAAe5Q,OAAS,EAAG6P,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,aAAa,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,OAAO,CAACM,YAAY,oCAAoC,CAACP,EAAIW,GAAG,cAAcX,EAAIiB,GAAIjB,EAAIgB,gBAAgB,SAASE,GAAS,OAAOjB,EAAG,QAAQ,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,iCAAiCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,KAAK,oBAAqB,EAAK,cAAgBF,EAAQN,OAAO,eAAgB,EAAK,SAAWZ,EAAIc,aAAa,EAAE,KAAI,GAAGd,EAAII,MAAM,IAAI,IAAI,GAAGJ,EAAII,KAAMJ,EAAI/K,UAAWgL,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAKN,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,4BAA4BD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,YAAY,EAAE,IAAG,GAAGN,EAAII,MAAM,IAAI,EAC1rE,EACIC,GAAkB,GCAtB,IACEiB,SAAU,KACLC,EAAAA,EAAAA,IAAS,CACVnK,WAAY7T,GAASA,EAAMC,IAAIwR,QAC/BtJ,QAASnI,GAASA,EAAMC,IAAIkI,QAC5B8K,eAAiBjT,GAAUA,EAAMC,IAAIgT,eACrCC,aAAelT,GAAUA,EAAMC,IAAIiT,aACnCkB,cAAgBpU,GAAUA,EAAMC,IAAImU,cACpCjB,cAAgBnT,GAAUA,EAAMC,IAAIkT,cACpCC,kBAAoBpT,GAAUA,EAAMC,IAAImT,qBAiF5C6K,QAAS,CACPC,cAAAA,CAAeC,EAAmBC,EAAmBC,GACnD,IAAIC,EAAc,GAElB,GAAID,EACFC,EAAcH,OAEX,GAAIva,KAAKqP,eACZ,OAAQrP,KAAKqP,gBACX,KAAKvc,EAAU0F,sBACbkiB,EAAcH,EACd,MACF,KAAKznB,EAAUyF,sBACf,KAAKzF,EAAU2F,sBACf,QACEiiB,EAAcF,EACd,MAGN,OAAOE,CACT,EACAC,mBAAAA,CAAoBZ,EAASa,GAC3B,OAAIb,GAAWA,EAAQc,aACdd,EAAQc,aAER7a,KAAK8a,oBAAoBf,EAAQgB,YAAahB,EAAQiB,kBAAmBJ,EACpF,EACAE,mBAAAA,CAAoBG,EAAmBC,EAAmBN,GAExD,IAAIO,EAAmB,KAEvB,GAAIP,EACFO,EAAmB,GAAGnb,KAAKuZ,wBAAwBvZ,KAAKuE,sBAAsB0W,WAA2Bjb,KAAKiQ,kBAE3G,GAAIjQ,KAAKqP,eACZ,OAAQrP,KAAKqP,gBACX,KAAKvc,EAAU0F,sBACTyiB,IACFE,EAAmB,GAAGnb,KAAKuZ,wBAAwBvZ,KAAKuE,sBAAsB0W,WAA2Bjb,KAAKiQ,cAChH,MACF,KAAKnd,EAAUyF,sBACf,KAAKzF,EAAU2F,sBACTyiB,IACFC,EAAmB,GAAGnb,KAAKuZ,wBAAwBvZ,KAAKuE,sBAAsB2W,WAA2Blb,KAAKiQ,cAChH,MAGN,OAAKkL,GAAyBC,EAAQ,MAExC,IC7IA1C,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,SAAS,CAACM,YAAY,gBAAgBD,MAAM,CAAC,UAAUN,EAAIwC,eAAeR,aAAa,MAAQhC,EAAIwC,eAAezI,OAAO0I,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,MAAM,CAACM,YAAY,eAAe,CAAGP,EAAIwC,eAAeI,WAA+S5C,EAAIwC,eAAeI,WAAY3C,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACP,EAAIW,GAAG,eAAeX,EAAII,KAApYH,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIwC,eAAetJ,YAAY,MAAM8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIwC,eAAetJ,YAAY,MAAM8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIwC,eAAerJ,UAAU,OAAgH6G,EAAIc,SAAoQd,EAAII,KAA9PH,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACN,EAAG,iBAAiB,CAACK,MAAM,CAAC,MAAQN,EAAIwC,eAAezI,MAAM,iBAAmBiG,EAAIwC,eAAezJ,GAAG,oBAAsBiH,EAAIwC,eAAepH,oBAAoB,MAAQ,KAAK,OAAS,SAAS,KAAc6E,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,+DAA+D,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIwC,eAAeM,oBAAoB7C,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,uEAAuE,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,aAAaV,EAAG,OAAO,CAACD,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIwC,eAAeO,+BAAgC/C,EAAIwC,eAAezH,QAASkF,EAAG,MAAM,CAACM,YAAY,2EAA2E,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,YAAYX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAG,gBAAgBX,EAAII,OAAO,EAAE4C,OAAM,GAAM,CAAC7B,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,QAAQ,CAACM,YAAY,cAAc,CAAEP,EAAIiD,cAAehD,EAAG,QAAQ,CAACM,YAAY,oBAAoBD,MAAM,CAAC,KAAO,KAAK,GAAK,GAAG,MAAQ,IAAI,WAAW,MAAM,CAAEN,EAAIY,QAAUZ,EAAIkD,cAAejD,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQN,EAAIwC,eAAeW,SAAS,IAAMnD,EAAIwC,eAAeY,SAAS,OAAS,WAAWpD,EAAII,MAAM,GAAGJ,EAAII,MAAMJ,EAAIiD,eAAkBjD,EAAIqD,oBAAuBrD,EAAIsD,eAAkBtD,EAAIc,SAA+qBd,EAAII,KAAzqBH,EAAG,QAAQ,CAACM,YAAY,sFAAsFD,MAAM,CAAC,KAAO,KAAK,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAAGN,EAAIvK,qBAA8PwK,EAAG,IAAI,CAACM,YAAY,6CAA6CD,MAAM,CAAC,KAAO,GAAGN,EAAIuD,iBAAiBvD,EAAIwC,eAAepH,yBAAyB,CAAC4E,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,2CAAxaN,EAAG,cAAc,CAACM,YAAY,6CAA6CD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBmQ,EAAIwC,eAAezJ,OAAO,CAACiH,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,4CAAuR,GAAcP,EAAIwD,gBAAoVxD,EAAII,KAAvUH,EAAG,QAAQ,CAACM,YAAY,sFAAsFD,MAAM,CAAC,KAAO,KAAK,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAACL,EAAG,gBAAgB,CAACM,YAAY,iBAAiBD,MAAM,CAAC,QAAUN,EAAIwC,eAAe,cAAgBxC,EAAIyD,SAAS,SAAWzD,EAAIc,aAAa,IAAa,GAAId,EAAIiD,cAAehD,EAAG,QAAQ,CAACM,YAAY,QAAQ,CAAEP,EAAI0D,gBAAkB1D,EAAIwC,eAAemB,UAAW1D,EAAG,QAAQ,CAACM,YAAY,oBAAoB,CAACN,EAAG,oBAAoB,CAACK,MAAM,CAAC,SAAW,SAAS,QAAUN,EAAIwC,eAAe,eAAgB,MAAU,GAAGxC,EAAII,KAAMJ,EAAI4D,uBAAyB5D,EAAIwC,eAAeqB,eAAgB5D,EAAG,QAAQ,CAACM,YAAY,oBAAoB,CAACN,EAAG,oBAAoB,CAACK,MAAM,CAAC,SAAW,SAAS,QAAUN,EAAIwC,eAAe,eAAgB,MAAU,GAAGxC,EAAII,MAAM,GAAGJ,EAAII,KAAkB,UAAZJ,EAAIoB,MAAqBpB,EAAIsD,eAAkBtD,EAAIc,SAAipBd,EAAII,KAA3oBH,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,sFAAsFD,MAAM,CAAC,KAAO,OAAO,CAAGN,EAAIvK,qBAA8PwK,EAAG,IAAI,CAACM,YAAY,6CAA6CD,MAAM,CAAC,KAAO,GAAGN,EAAIuD,iBAAiBvD,EAAIwC,eAAepH,yBAAyB,CAAC4E,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,2CAAxaN,EAAG,cAAc,CAACM,YAAY,6CAA6CD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBmQ,EAAIwC,eAAezJ,OAAO,CAACiH,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,4CAAuR,IAAI,GAAY,EAAEyC,OAAM,MAAS,CAAEhD,EAAIwC,eAAesB,SAAU7D,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIwC,eAAesB,UAAU,OAAO9D,EAAII,MACnnJ,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAUD,EAAIkB,QAAQN,QAAUZ,EAAIkB,QAAQ6C,gBAAkB/D,EAAIkB,QAAQhT,WAAc8R,EAAIkB,QAAQuC,UAAYzD,EAAIgE,cAAe/D,EAAG,WAAW,CAAED,EAAIiE,UAA6B,WAAjBjE,EAAIiE,SAAuBhE,EAAG,WAAW,CAACM,YAAY,uBAAuBD,MAAM,CAAC,KAAO,GAAG,QAAU,YAAY4D,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBrE,EAAIsE,aAAaC,MAAM,KAAMC,UAAU,IAAI,CAAGxE,EAAIyE,WAAmGzE,EAAII,KAA3F,CAACH,EAAG,oBAAoB,CAACK,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,YAAsBX,EAAIyE,WAAY,CAAEzE,EAAI/K,UAAWgL,EAAG,oBAAoB,CAACK,MAAM,CAAC,KAAO,UAAU,KAAO,MAAMN,EAAII,KAAOJ,EAAI/K,UAAwE+K,EAAII,KAAjEH,EAAG,oBAAoB,CAACK,MAAM,CAAC,KAAO,QAAQ,KAAO,QAAiBN,EAAIW,GAAG,WAAWX,EAAII,MAAM,GAAGH,EAAG,SAAS,CAACM,YAAY,2BAA2B2D,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBrE,EAAIsE,aAAaC,MAAM,KAAMC,UAAU,IAAI,CAAGxE,EAAIyE,WAAmGzE,EAAII,KAA3F,CAACH,EAAG,oBAAoB,CAACK,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,YAAsBX,EAAIyE,WAAY,CAAEzE,EAAI/K,UAAWgL,EAAG,oBAAoB,CAACK,MAAM,CAAC,KAAO,UAAU,KAAO,MAAMN,EAAII,KAAOJ,EAAI/K,UAAwE+K,EAAII,KAAjEH,EAAG,oBAAoB,CAACK,MAAM,CAAC,KAAO,QAAQ,KAAO,QAAiBN,EAAIW,GAAG,WAAWX,EAAII,MAAM,IAAI,GAAGJ,EAAII,IACjzC,EACIC,GAAkB,GCsCtB,IACAhf,KAAA,gBACAqjB,MAAA,CACAxD,QAAAyD,OACAX,cAAAY,QACAX,SAAA,CACAnJ,KAAA+J,OACAC,UAAA,EACAC,QAAA,OACAC,UAAA,SAAA/H,GAEA,cAAAA,IAAA,sBAAAX,QAAAW,EACA,GAEA6D,SAAA8D,SAEA1a,IAAAA,GACA,OACA+K,WAAA,EAEA,EACAqM,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,uBAEAgP,UAAAA;;AAEA,YAAAT,eAAA,KAAA9C,QAAA+D,eACA,GAEAzD,QAAA,CACA8C,YAAAA,GAKA,QAAAG,WACA,KAAAxP,WAAA,EAEA3L,GAAAyE,uBAAA,KAAAmT,QAAAnI,IAAAvB,MAAA,EAAAtN,WACA,GAAAA,EAGA,GAFA,KAAA+K,WAAA,EAEA/K,EAAAgb,UACArjB,OAAAsjB,KAAAjb,EAAAkb,aAAA,cACA,CACA,MAAAvK,EAAA,CAAAC,KAAAkB,GAAAC,QAAAlD,GAAA,KAAAmI,QAAAnI,IACA,KAAAsM,OAAAhb,SAAA3F,EAAAmW,EAMA,CACA,SAEA,QAAAqG,QAAAN,QAAA,KAAAM,QAAA6C,cACA,QAAAjD,SAOA,KAAAwE,QAAApe,KAAA,yCAAAga,QAAAqE,0BAPA,CACA,MAAA3Z,EAAA,CAAAsC,UAAA,KAAAgT,QAAAhT,WACA,KAAAmX,OAAAhb,SAAAzF,EAAAgH,EACA,KAMA,CACA,MAAAiP,EAAA,CAAAC,KAAAkB,GAAAC,QAAAlD,GAAA,KAAAmI,QAAAnI,IACA,KAAAsM,OAAAhb,SAAA3F,EAAAmW,EAEA,CACA,IChHqN,M,YCQjN2K,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAeA,GAAiB,QCnB5B3F,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAIkB,QAAQyC,UAAW1D,EAAG,WAAW,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,IAAMN,EAAI2D,UAAU,MAAQ3D,EAAIyF,YAAY,QAAUzF,EAAI0F,WAAWxB,GAAG,CAAC,qBAAqB,SAASC,GAAQ,OAAOnE,EAAI2F,SAAS,KAAM3F,EAAIiE,UAA6B,WAAjBjE,EAAIiE,SAAuBhE,EAAG,WAAW,CAACM,YAAY,sGAAsGD,MAAM,CAAC,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAI4F,cAAc,CAAC5F,EAAIW,GAAG,YAAYV,EAAG,SAAS,CAACM,YAAY,yEAAyE2D,GAAG,CAAC,MAAQlE,EAAI4F,cAAc,CAAC,CAAC5F,EAAIW,GAAG,YAAY,IAAI,GAAGX,EAAII,IACvqB,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAI6F,QAAS5F,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC6F,WAAW,CAAC,CAACzkB,KAAK,OAAO0kB,QAAQ,SAAS9I,MAAO+C,EAAIgG,WAAahG,EAAIiG,WAAYC,WAAW,4BAA4B3F,YAAY,wBAAwB,CAACN,EAAG,YAAY,CAACkG,YAAY,CAAC,MAAQ,OAAO,OAAS,QAAQ7F,MAAM,CAAC,QAAU,QAAQ,MAAQ,cAAc,GAAGL,EAAG,MAAM,CAAC6F,WAAW,CAAC,CAACzkB,KAAK,OAAO0kB,QAAQ,SAAS9I,OAAQ+C,EAAIgG,UAAWE,WAAW,eAAe3F,YAAY,wBAAwB,CAACN,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,SAAS,CAACM,YAAY,iDAAiDD,MAAM,CAAC,QAAU,QAAQ,KAAO,MAAM4D,GAAG,CAAC,MAAQlE,EAAIoG,cAAc,CAACnG,EAAG,IAAI,CAACM,YAAY,oDAAoDP,EAAIW,GAAG,YAAaX,EAAIjG,MAAOkG,EAAG,MAAM,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAIjG,UAAUiG,EAAII,MAAM,GAAIJ,EAAIqG,iBAAkBpG,EAAG,SAAS,CAACM,YAAY,oBAAoBD,MAAM,CAAC,IAAMN,EAAItd,IAAI,YAAc,KAAKwhB,GAAG,CAAC,KAAO,SAASC,GAAQ,OAAOnE,EAAIsG,QAAQ,KAAKtG,EAAII,SAASJ,EAAII,IACljC,EACIC,GAAkB,GCkBtB,IACAhf,KAAA,cACAqjB,MAAA,CACAhiB,IAAAmiB,OACAgB,QAAAjB,QACA7K,MAAA8K,OACAoB,WAAA,CACAnL,KAAA8J,QACAE,UAAA,EACAC,SAAA,IAGAwB,WAAA,GACArc,IAAAA,GACA,OACA8b,WAAA,EACAQ,QAAA,EACAH,kBAAA,EAEA,EACAI,MAAA,CACA/jB,GAAAA,CAAAgkB,EAAAC,GACAD,GAAAA,IAAAC,IAEA,KAAAX,WAAA,EACA,KAAAY,WAAA,KACA,KAAAC,aAAA,IAGA,EACAhB,OAAAA,CAAAiB,EAAAC,GACAD,IAAAC,IACAD,EAAA,KAAAE,SACA,KAAAC,SAEA,GAEA3F,SAAA,CACA1G,KAAA,CACAjP,GAAAA,GACA,YAAAka,OACA,IAGAqB,OAAAA,GAAA,EACA1F,QAAA,CACA4E,WAAAA,GACA,IAAAe,EAAA,CAAAzkB,IAAA,KAAAA,KACA,KAAA0kB,MAAA,qBAAAD,EACA,EACAb,MAAAA,GAEA,KAAAN,WAAA,CACA,EACAgB,MAAAA,GAEAK,SAAAC,KAAAC,UAAAC,IAAA,iBACA,EACAP,MAAAA,GAEAI,SAAAC,KAAAC,UAAAE,OAAA,iBACA,EACAC,QAAAA,GAEA,KAAA1B,WAAA,EACA,IAAAmB,EAAA,CAAA9U,eAAA,KAAAA,gBACA,KAAA+U,MAAA,wBAAAD,GACA,KAAAN,aACA,EACAA,WAAAA,GAEA,KAAAR,kBAAA,CACA,EACAsB,WAAAA,GAEA,KAAAf,WAAA,KACA,KAAAP,kBAAA,IAEA,EACAuB,WAAAA,GAEA,KAAA5B,WAAA,CACA,EACA6B,WAAAA,GAEA,KAAAjB,WAAA,KACA,KAAAZ,WAAA,IAEA,IC5GmN,MCQ/M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCMhC,IACA3kB,KAAA,oBACAqjB,MAAA,CACAxD,QAAAyD,OACAX,cAAAY,QACAX,SAAA,CACAnJ,KAAA+J,OACAC,UAAA,EACAC,QAAA,OACAC,UAAA,SAAA/H,GAEA,cAAAA,IAAA,sBAAAX,QAAAW,EACA,IAGA/S,IAAAA,GACA,OACA+K,WAAA,EACA0O,UAAA,KACA8B,YAAA,KACAC,WAAA,EAEA,EACAa,WAAA,CACAuB,YAAAA,IAEAxG,SAAA,GACAE,QAAA,CACAoE,WAAAA,GACA,KAAAjC,UAAA,KAAAzC,QAAAyC,UACA,KAAA8B,YAAA,KAAAvE,QAAAnH,MACA,KAAA2L,WAAA,CAEA,EACAC,OAAAA,GACA,KAAAD,WAAA,EACA,KAAA/B,UAAA,KACA,KAAA8B,YAAA,EACA,IC/DyN,MCQrN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B5F,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAIkB,QAAQ2C,eAAgB5D,EAAG,WAAW,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,IAAMN,EAAI6D,eAAe,MAAQ7D,EAAI+H,iBAAiB,QAAU/H,EAAI0F,WAAWxB,GAAG,CAAC,qBAAqB,SAASC,GAAQ,OAAOnE,EAAI2F,SAAS,KAAM3F,EAAIiE,UAA6B,WAAjBjE,EAAIiE,SAAuBhE,EAAG,WAAW,CAACM,YAAY,sGAAsGD,MAAM,CAAC,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAIgI,qBAAqB,CAAChI,EAAIW,GAAG,sBAAsBV,EAAG,SAAS,CAACM,YAAY,yEAAyE2D,GAAG,CAAC,MAAQlE,EAAIgI,qBAAqB,CAAC,CAAChI,EAAIW,GAAG,sBAAsB,IAAI,GAAGX,EAAII,IACxtB,EACIC,GAAkB,GCwBtB,IACAhf,KAAA,oBACAqjB,MAAA,CACAxD,QAAAyD,OACAX,cAAAY,QACAX,SAAA,CACAnJ,KAAA+J,OACAC,UAAA,EACAC,QAAA,OACAC,UAAA,SAAA/H,GAEA,cAAAA,IAAA,sBAAAX,QAAAW,EACA,IAGAsJ,WAAA,CACAuB,YAAAA,IAEA5d,IAAAA,GACA,OACAwb,WAAA,EACA7B,eAAA,KACAkE,iBAAA,KAEA,EACAzG,SAAA,GACAE,QAAA,CACAwG,kBAAAA,GACA,KAAAnE,eAAA,KAAA3C,QAAA2C,eACA,KAAA6B,WAAA,EACA,KAAAxE,QAAAnH,QAAA,KAAA8J,eAAAoE,SAAA,gBACA,KAAAF,iBAAA,KAAA7G,QAAAnH,MACA,EACA4L,OAAAA,GACA,KAAAD,WAAA,EACA,KAAA7B,eAAA,KACA,KAAAkE,iBAAA,EACA,IC/DyN,MCQrN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BlI,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAIkI,QAASjI,EAAG,MAAM,CAACA,EAAG,WAAW,CAACM,YAAY,uBAAuBD,MAAM,CAAC,KAAO,IAAI4D,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBrE,EAAImI,WAAW5D,MAAM,KAAMC,UAAU,IAAI,CAACvE,EAAG,MAAM,CAACmI,IAAI,OAAO7H,YAAY,gBAAgBD,MAAM,CAAC,MAAQN,EAAIqI,MAAM,OAASrI,EAAIsI,OAAO,QAAU,OAAOtI,EAAIqI,SAASrI,EAAIsI,UAAUpE,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBrE,EAAImI,WAAW5D,MAAM,KAAMC,UAAU,IAAI,CAAExE,EAAIuI,WAAYtI,EAAG,MAAM,CAACK,MAAM,CAAC,aAAaiC,EAAQ,OAAgD,cAActC,EAAG,MAAM,CAACK,MAAM,CAAC,aAAaiC,EAAQ,OAA2C,cAAcvC,EAAIW,GAAG,aAAcX,EAAIuI,WAAYtI,EAAG,OAAO,CAACD,EAAIW,GAAG,gCAAgCV,EAAG,OAAO,CAACD,EAAIW,GAAG,8BAA8B,GAAGV,EAAG,MAAM,CAACA,EAAG,MAAM,CAACmI,IAAI,OAAO7H,YAAY,gBAAgBD,MAAM,CAAC,MAAQN,EAAIqI,MAAM,OAASrI,EAAIsI,OAAO,QAAU,OAAOtI,EAAIqI,SAASrI,EAAIsI,UAAUpE,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBrE,EAAImI,WAAW5D,MAAM,KAAMC,UAAU,IAAI,CAAExE,EAAIuI,WAAYtI,EAAG,MAAM,CAACK,MAAM,CAAC,aAAaiC,EAAQ,OAAgD,cAActC,EAAG,MAAM,CAACK,MAAM,CAAC,aAAaiC,EAAQ,OAA2C,iBAC91C,EACIlC,GAAkB,GCsBtB,I,SAAA,CACAhf,KAAA,iBACAqjB,MAAA,CACA3K,MAAA8K,OACA1S,iBAAA2K,OACA1B,oBAAA0B,OAEAuL,MAAA,CACAvN,KAAA+J,OACAE,QAAA,MAEAuD,OAAA,CACAxN,KAAA+J,OACAE,QAAA,MAEA3D,KAAA,CACAtG,KAAA+J,OACAE,QAAA,QACAC,UAAA,SAAA/H,GAEA,cAAAA,IAAA,sBAAAX,QAAAW,EACA,IAGAqE,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA4N,KAAA/V,GAAAA,EAAAoY,KAAArC,OAEAiP,UAAAA,GACA,YAAAtgB,IAAA,KAAAqR,KAAAkP,MAAA3P,GAAAA,EAAA1G,kBAAA,KAAAA,kBACA,EACA+V,OAAAA,GACA,oBAAA9G,IACA,GAEAqH,OAAAA,GACA,EAEAjH,QAAA,CACA2G,UAAAA,GACA,IAAAhB,EAAA,CAAAzb,QAAA,KAAAA,QAAAyG,iBAAA,KAAAA,kBACA,KAAAoW,YAIA,KAAAlD,OAAAhb,SAAApF,GAAAkiB,GACA,KAAAC,MAAA,kBAAAD,KAJA,KAAA9B,OAAAhb,SAAArF,GAAAmiB,GACA,KAAAC,MAAA,eAAAD,IAQA,KAAAuB,KAAAxhB,KAAA,CACAyhB,MAAA,aACAjd,QAAA,KAAAA,QACAqO,MAAA,KAAAA,MACA5H,iBAAA,SAAAA,mBACAyW,OAAA,YAAAxN,sBACAyN,OAAA,KAAAN,WAAA,gBAEA,KCpFsN,MCQlN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnBhC,IACI/G,QAAS,CACP+B,gBAAAA,CAAiBnI,GACf,MAAO,uCAAkDA,GAC3D,EACA0N,eAAAA,CAAgBxW,GACd,MAAO,sCAAiDA,GAC1D,EACAyW,qBAAAA,CAAsBC,GACpB,MAAO,4CAAuDA,GAChE,EACAC,iBAAAA,CAAkBD,GAChB,MAAO,4CAAuDA,GAChE,IC2FN,IACA3nB,KAAA,cACA6nB,OAAA,CAAAC,GAAAC,IACA7C,WAAA,CACA8C,cAAA,GACAC,kBAAA,GACAC,kBAAA,GACAC,eAAAA,IAEA9E,MAAA,CACAlC,eAAAmC,OACA/D,OAAAgE,QACA3B,cAAA2B,QACAxD,KAAAyD,OACAxB,mBAAAuB,QACA1B,cAAA0B,QACApB,gBAAAoB,QACAlB,eAAAkB,QACAhB,sBAAAgB,QACA9D,SAAA8D,QACAtB,cAAAsB,SAEAtD,SAAA,CACAmC,QAAAA,GACA,qBAAArC,IACA,EACAqI,QAAAA,GACA,qBAAArI,IACA,EACAV,UAAAA,GACA,MAAA1d,YACA,MACAue,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,wBAGA+L,QAAA,CACAkI,iBAAAA,CAAAf,GACA,KAAArF,eAAAqF,EAAAgB,OAAAC,QAAA,8DAGA,KAAAtE,QAAApe,KAAA,SAAA2I,uBAAA,KAAA2S,eAAAzJ,KACA,GAGA0P,OAAAA,GAAA,GCtJmN,MCQ/M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCoDhC,IACApnB,KAAA,eACA6nB,OAAA,CAAAC,IACAzE,MAAA,CAEAtD,KAAA,CACAtG,KAAA+J,OACAE,QAAA,OACAC,UAAA,SAAA/H,GAEA,cAAAA,IAAA,aAAAX,QAAAW,EACA,GAEA3Q,YAAA,CACAwO,KAAA8J,QACAG,SAAA,GAEAjE,SAAA8D,SAEA2B,WAAA,CACAsD,YAAAA,IAGA3f,IAAAA,GACA,OACA+K,WAAA,EACA6U,eAAA,EACAC,SAAA,GACApd,KAAA,EACAqd,iBAAA,EACAC,qBAAA,EACAC,kBAAA,EACAC,wBAAA,KACAC,uBAAA,KACAC,cAAA,KACAC,eAAA,GACAC,WAAA,KACAC,YAAA,GACA9J,WAAA1d,aAEA,EACAse,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAlM,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAE,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,mBAGAiO,QAAAA,GACA,qBAAArC,IACA,EACAqI,QAAAA,GACA,qBAAArI,IACA,EACAR,MAAAA,GACA,mBAAAQ,IACA,EACAqJ,2BAAAA,GACA,OAAA1mB,SAAAf,QACA,EACA0nB,6BAAAA,GACA,OAAA3mB,SAAAf,QACA,EACAge,cAAAA,GACA,YAAA+I,UAAA7P,QAAAyQ,GAAAA,EAAAC,UACA,EACAC,cAAAA,GACA,YAAAd,UAAA7P,QAAAyQ,GAAAA,EAAAG,UACA,EACAC,kBAAAA,GACA,YAAApU,kBAAA,kBACA,EACAkK,uBAAAA,GACA,YAAAG,gBAAA5Q,OAAA,CACA,EACA4a,uBAAAA,GACA,YAAAH,gBAAAza,OAAA,CACA,MACA6a,EAAAA,EAAAA,IAAA,uBAEAxE,MAAA,CACAhM,gBAAAA,CAAAD,GACAA,IACA,KAAAoG,QAAA,KAAAsK,uBACA,KAAAzB,UAAA,KAAA0B,sBACA,KAAA1H,UAAA,KAAA2H,sBAEA,GAEA3C,OAAAA,GACA,KAAA7H,SACA,KAAAsK,uBAGA,KAAAf,wBAAAkB,aAAA,KACA,KAAA5Q,kBACA,KAAAyQ,sBACA,GACA,KAAAT,8BAGA,KAAAhB,UAAA,KAAA0B,sBAEA,KAAA1H,WACA,KAAA9T,qBACA,KAAAK,iBAEA,KAAAob,sBAGA,KAAAhB,uBAAAiB,aAAA,KACA,KAAA5Q,kBACA,KAAA2Q,qBACA,GACA,KAAAV,+BAEA,EACAY,aAAAA,GACAC,cAAA,KAAApB,yBACAoB,cAAA,KAAAnB,uBACA,EACA5I,QAAA,CACA0J,oBAAAA,GACA5hB,GAAA+C,sBAAA,KAAAX,QAAA,KAAAY,aAAA,OAAAwU,UAAAtJ,MAAA,EAAAtN,WAEA,GADA,KAAA+K,WAAA,EACA/K,EAAA,CAEA,KAAA6f,SAAA7f,EACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA8Z,iBAAAsB,EAAA,CACA,IAEA,EACAL,mBAAAA,GACA7hB,GAAAuD,kBAAA,KAAAnB,QAAA,KAAAiB,KAAA1S,EAAA2D,yBAAA,UAAAkjB,UAAAtJ,MAAA,EAAAtN,WAEA,GADA,KAAA+K,WAAA,EACA/K,EAAA,CAEA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA7f,EACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,0BACA,KAAAssB,iBAAAsB,EAAA,CACA,IAEA,EACAJ,mBAAAA,GAGA,MAAAM,EAAA,KAAArB,cACAsB,EAAA,KAAApB,WAGA,KAAAL,iBA0BA,KAAAjV,WAAA,KAAA2W,2BAzBAtiB,GAAAkE,kBACA,KAAA9B,QACA,KAAAiB,KACA1S,EAAA2D,yBAAA,EACA8tB,GAAAtb,OAAA,EAAAsb,EAAA,KACAC,GAAAvb,OAAA,EAAAub,EAAA,MACAnU,MAAA,EAAAtN,WAEA,GADA,KAAA+K,WAAA,EACA/K,EAAA,CACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA7f,EACA,KAAAggB,iBAAAsB,EAAA,EACA,KAAAtB,mBACA,KAAAvd,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,0BAEA,IAeA,EAEAguB,wBAAAA,GACA,MAAAF,EAAA,KAAArB,cACAsB,EAAA,KAAApB,WACAjhB,GAAAkE,kBACA,KAAA9B,QACA,EACA,EACAggB,GAAAtb,OAAA,EAAAsb,EAAA,KACAC,GAAAvb,OAAA,EAAAub,EAAA,MACAnU,MAAA,EAAAtN,WACAA,GAAAA,EAAAkG,OAAA,IAGA,KAAA6Z,oBAAA/f,EAAA,GAAA6O,IAAA,KAAAgR,SAAA,GAAAhR,GACA,GAEA,EAEA8S,cAAAA,GAEA,KAAA5W,WAAA,EACA,KAAAiV,kBAAA,EACA,KAAAvd,KAAA,EACA,KAAAsd,qBAAA,EACA,KAAAmB,qBACA,EAUAU,QAAAA,GACA,aAAA1K,MACA,KAAA2K,0BAEA,eAAA3K,MACA,KAAA4K,yBAEA,eAAA5K,MACA,KAAA6K,wBAEA,EACAF,uBAAAA,GACA,KAAAjC,eAAA,EACAxgB,GAAAoD,mBAAA,KAAAhB,QAAA,KAAAiB,KAAA1S,EAAA2D,yBAAA,MAAA4Z,MAAA,EAAAtN,WAEA,GADA,KAAA4f,eAAA,EACA5f,EAAA,CACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA,SAAAA,YAAA7f,GACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,yBACA,IAEA,EACAouB,sBAAAA,GACA,KAAAlC,eAAA,EACAxgB,GAAAuD,kBAAA,KAAAnB,QAAA,KAAAiB,KAAA1S,EAAA2D,yBAAA,MAAA4Z,MAAA,EAAAtN,WAEA,GADA,KAAA4f,eAAA,EACA5f,EAAA,CACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA,SAAAA,YAAA7f,GACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,yBACA,IAEA,EACAquB,sBAAAA,GACA,KAAAnC,eAAA,EACA,MAAA4B,EAAA,KAAArB,cACAsB,EAAA,KAAApB,WACAjhB,GAAAkE,kBACA,KAAA9B,QACA,KAAAiB,KACA1S,EAAA2D,yBAAA,EACA8tB,GAAAtb,OAAA,EAAAsb,EAAA,KACAC,GAAAvb,OAAA,EAAAub,EAAA,MACAnU,MAAA,EAAAtN,WAEA,GADA,KAAA4f,eAAA,EACA5f,EAAA,CACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA,SAAAA,YAAA7f,GACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,yBACA,IAEA,EACA+R,kBAAAA,GACArG,GAAAqG,mBAAA,KAAAjE,SAAA8L,MAAA,EAAAtN,WACAA,IACA,KAAAogB,eAAApgB,EACA,GAEA,EACAgiB,iBAAAA,GACA,KAAAhC,kBAAA,EACA,KAAAvd,KAAA,EACA,KAAAye,qBACA,EACApb,cAAAA,GACA1G,GAAA0G,eAAA,KAAAtE,SAAA8L,MAAA,EAAAtN,WACAA,IACA,KAAAsgB,YAAAtgB,EACA,GAEA,IC7XoN,MCQhN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCNhC,IACA7I,KAAA,wBACAklB,WAAA,CACA4F,aAAAA,IAEAjiB,IAAAA,GACA,QACA,EACAoX,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,WAGA+c,OAAAA,GAAA,EACAjH,QAAA,IC3BoN,MCQhN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B3B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,QAAQ,CAACM,YAAY,gDAAgDC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIU,wBAAwBV,EAAItU,6BAA6BvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,eAAeN,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIhJ,WAAW,KAAKiJ,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIvJ,mBAAiC,MAAbuJ,EAAItU,QAAeuU,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACP,EAAIW,GAAG,gDAAgDX,EAAII,KAAKH,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAIlJ,cAAc,KAAKkJ,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAI7K,iBAAiB,MAAM6K,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAI5K,kBAAkB6K,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,QAAQ,CAACD,EAAIW,GAAG,qBAAqBV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIjJ,sBAAsBkJ,EAAG,MAAM,CAACM,YAAY,qBAAqB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIhK,YAAYqW,YAAarM,EAAIjK,YAAYuW,gBAAiBrM,EAAG,MAAM,CAAED,EAAI/I,WAAa+I,EAAI/I,SAASsV,aAActM,EAAG,IAAI,CAACM,YAAY,8DAA8DD,MAAM,CAAC,KAAON,EAAIjK,YAAYyW,qBAAqB9pB,IAAI,OAAS,WAAW,CAACud,EAAG,OAAO,CAACM,YAAY,6CAA6C,CAACP,EAAIW,GAAG,2BAA2BX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIjK,YAAY0W,oCAAoC,OAAOzM,EAAII,KAAMJ,EAAI/I,UAAY+I,EAAI/I,SAASsV,eAAiBvM,EAAI0M,eAAe1M,EAAIjK,YAAY4W,kCAAkCjqB,KAAOud,EAAG,IAAI,CAACM,YAAY,8DAA8DD,MAAM,CAAC,KAAON,EAAIjK,YAAY4W,kCAAkCjqB,IAAI,OAAS,WAAW,CAACud,EAAG,OAAO,CAACM,YAAY,6CAA6C,CAACP,EAAIW,GAAG,iBAAiBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIjK,YAAY6W,wCAAwC,OAAO5M,EAAII,KAAMJ,EAAI/I,UAAY+I,EAAI/I,SAASsV,cAAgBvM,EAAI0M,eAAe1M,EAAIjK,YAAY4W,kCAAkCjqB,KAAOud,EAAG,cAAc,CAACM,YAAY,8DAA8DD,MAAM,CAAC,GAAKN,EAAIjK,YAAY4W,kCAAkCjqB,MAAM,CAACud,EAAG,OAAO,CAACM,YAAY,6CAA6C,CAACP,EAAIW,GAAG,iBAAiBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIjK,YAAY6W,wCAAwC,OAAO5M,EAAII,KAAMJ,EAAIhK,YAAY6W,aAAc5M,EAAG,yBAAyBD,EAAII,MAAM,GAAGJ,EAAII,SAAWJ,EAAIzK,iBAAoByK,EAAIxK,iBAAkEwK,EAAII,KAApDH,EAAG,oBAAoB,CAACK,MAAM,CAAC,KAAO,UAAmBL,EAAG,cAAc,CAACM,YAAY,YAAYD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,eAAe,CAACM,YAAY,aAAaD,MAAM,CAAC,KAAO,KAAK,CAAEN,EAAI5J,iBAAmB4J,EAAI1J,uBAAyB0J,EAAI3J,kBAAmB4J,EAAG,SAAS,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,YAAY,UAAU,GAAGN,EAAIU,wBAAwBV,EAAItU,sCAAsCvE,KAAKiQ,aAAa,UAAU,QAAQ,UAAU,GAAG,IAAM,WAAWqL,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,wBAAwB4S,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,UAAUwB,GAAG,UAAS,KAAE7f,EAAI,SAAEgqB,IAAY,MAAO,CAAC7M,EAAG,WAAW,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,GAAG,KAAOxd,EAAK,QAAU,YAAYohB,GAAG,CAAC,MAAQ4I,IAAW,CAAC9M,EAAIW,GAAG,YAAY,IAAI,MAAK,EAAM,cAAc,EAAEqC,OAAM,IAAO,MAAK,EAAM,aAAa,CAAC/C,EAAG,cAAc,CAACD,EAAIW,GAAG,6EAA6E,GAAGX,EAAII,KAAMJ,EAAIzJ,cAAe0J,EAAG,SAAS,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,uBAAuB,UAAU,GAAGN,EAAIU,wBAAwBV,EAAItU,mCAAmCvE,KAAKiQ,aAAa,UAAU,QAAQ,UAAU,GAAG,IAAM,WAAWqL,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,sBAAsB4S,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,UAAUwB,GAAG,UAAS,KAAE7f,EAAI,SAAEgqB,IAAY,MAAO,CAAC7M,EAAG,WAAW,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,GAAG,KAAOxd,EAAK,QAAU,YAAYohB,GAAG,CAAC,MAAQ4I,IAAW,CAAC9M,EAAIW,GAAG,cAAc,IAAI,MAAK,EAAM,aAAa,EAAEqC,OAAM,IAAO,MAAK,EAAM,aAAa,CAAC/C,EAAG,cAAc,CAACD,EAAIW,GAAG,+DAA+D,GAAGX,EAAII,KAAMJ,EAAI7J,eAAgB8J,EAAG,SAAS,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,YAAY,UAAU,GAAGN,EAAIU,wBAAwBV,EAAItU,0BAA0BvE,KAAKiQ,aAAa,UAAU,QAAQ,UAAU,GAAG,IAAM,WAAWqL,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuB4S,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,UAAUwB,GAAG,UAAS,KAAE7f,EAAI,SAAEgqB,IAAY,MAAO,CAAC7M,EAAG,WAAW,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,GAAG,KAAOxd,EAAK,QAAU,YAAYohB,GAAG,CAAC,MAAQ4I,IAAW,CAAC9M,EAAIW,GAAG,eAAe,IAAI,MAAK,EAAM,cAAc,EAAEqC,OAAM,IAAO,MAAK,EAAM,aAAa,CAAC/C,EAAG,cAAc,CAACD,EAAIW,GAAG,2CAA2C,GAAGX,EAAII,KAAKH,EAAG,SAAS,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,eAAe,UAAU,GAAGN,EAAIU,wBAAwBV,EAAItU,mCAAmCvE,KAAKiQ,aAAa,UAAU,QAAQ,UAAU,GAAG,IAAM,WAAWqL,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,2BAA2B4S,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,UAAUwB,GAAG,UAAS,KAAE7f,EAAI,SAAEgqB,IAAY,MAAO,CAAC7M,EAAG,WAAW,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,GAAG,KAAOxd,EAAK,QAAU,YAAYohB,GAAG,CAAC,MAAQ4I,IAAW,CAAC9M,EAAIW,GAAG,YAAY,OAAO,EAAEqC,OAAM,MAAS,CAAC/C,EAAG,cAAc,CAACD,EAAIW,GAAG,+CAA+C,IAAI,IAAI,GAAGV,EAAG,sBAAsB,CAACM,YAAY,QAAQN,EAAG,sBAAsB,CAACK,MAAM,CAAC,YAAcN,EAAIhK,gBAAgB,EAC/lL,EACIqK,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAIzK,iBAAmByK,EAAIhK,aAAegK,EAAIhK,YAAY6W,aAAc5M,EAAG,WAAW,CAACA,EAAG,MAAM,CAACM,YAAY,4FAA4F,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIhK,YAAY+W,eAAe9M,EAAG,IAAI,CAACA,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,gBAAgB,KAAON,EAAIhK,YAAYgX,WAAWtqB,IAAI,OAAS,WAAW,CAACsd,EAAIW,GAAGX,EAAIe,GAAGf,EAAIhK,YAAYiX,iBAAiB,KAAKhN,EAAG,IAAI,CAACM,YAAY,mCAAmC,OAAOP,EAAII,IAC7iB,EACIC,GAAkB,GCgBtB,IACAhf,KAAA,wBACAigB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAvL,YAAAzS,GAAAA,EAAAC,IAAAwS,YACAT,gBAAAhS,GAAAA,EAAAC,IAAA+R,mBAGAkT,OAAAA,GACA,GC3B6N,MCQzN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B5I,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAASD,EAAIxK,kBAAoBwK,EAAIjK,YAAYuW,gBAAiBrM,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,OAAO,EAAGN,EAAI/I,SAASsV,cAA8C,MAA7BvM,EAAIkN,wBAAkClN,EAAIkN,sBAAwBjN,EAAG,MAAM,CAACM,YAAY,sDAAsDC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIU,wBAAwBV,EAAItU,iCAAiCvE,KAAKiQ,iBAAmB,CAAC6I,EAAG,MAAM,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIjK,YAAYoX,eAAe,OAAOlN,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,OAAO,CAACM,YAAY,2BAA2B,CAACN,EAAG,IAAI,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAON,EAAIjK,YAAYyW,qBAAqB9pB,IAAI,OAAS,WAAW,CAACsd,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIjK,YAAYqX,sBAAsB,aAAapN,EAAII,KAAMJ,EAAI/I,SAASsV,eAA8C,MAA7BvM,EAAIkN,uBAAiClN,EAAIkN,uBAAwBjN,EAAG,MAAM,CAACM,YAAY,sDAAsDC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIU,wBAAwBV,EAAItU,iCAAiCvE,KAAKiQ,iBAAmB,CAAC6I,EAAG,MAAM,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIjK,YAAYsX,4BAA4B,OAAOpN,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,OAAO,CAACM,YAAY,2BAA2B,CAAGP,EAAI0M,eAAe1M,EAAIjK,YAAY4W,kCAAkCjqB,KAAoNud,EAAG,cAAc,CAACM,YAAY,qBAAqBD,MAAM,CAAC,GAAKN,EAAIjK,YAAY4W,kCAAkCjqB,MAAM,CAACsd,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIjK,YAAYuX,mCAAmC,OAA3YrN,EAAG,IAAI,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAON,EAAIjK,YAAY4W,kCAAkCjqB,IAAI,OAAS,WAAW,CAACsd,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIjK,YAAYuX,mCAAmC,QAA4M,OAAOtN,EAAII,OAAOJ,EAAII,IAC1zD,EACIC,GAAkB,GCFtB,MAAMkN,GACJ,yBAAOC,CAAmBC,GAExB,IAAIC,EAAWrG,SAASsG,cAAc,YAEtC,OADAD,EAASE,UAAYH,EACdC,EAASzQ,KAClB,CAEA,4BAAO4Q,CAAsBJ,GAE3B,OAAOA,EAAK3hB,QAAQ,YAAa,OACnC,CAEA,qBAAO4gB,CAAehqB,GACpB,OAAOA,EAAIorB,WAAW,IACxB,ECkCF,QACAzsB,KAAA,sBACAqjB,MAAA,CACAwI,sBAAA,CACApS,KAAA8J,QACAG,QAAA,OAGAzD,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA/L,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAO,YAAAxS,GAAAA,EAAAC,IAAAuS,YACAqB,WAAA7T,GAAAA,EAAAC,IAAAwR,QACAtJ,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAuL,SAAA1T,GAAAA,EAAAC,IAAAyT,YAGA/M,IAAAA,GACA,OACAwW,WAAA1d,aAEA,EACAylB,OAAAA,GACA,EAEAjH,QAAA,CACAkL,cAAAA,CAAAhqB,GACA,OAAA6qB,GAAAb,eAAAhqB,EACA,IC7E2N,MCQvN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bmd,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,cAAc,CAACM,YAAY,YAAYD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,eAAe,CAACM,YAAY,aAAaD,MAAM,CAAC,KAAO,KAAKN,EAAIiB,GAAIjB,EAAIhK,YAAY+X,eAAe,SAASC,GAAa,OAAO/N,EAAG,SAAS,CAACkB,IAAI6M,EAAYC,KAAK1N,YAAY,OAAOD,MAAM,CAAC,MAAQ0N,EAAYE,aAAa,UAAUF,EAAYG,aAAaC,SAAS,UAAU,QAAQ,UAAU,GAAG,IAAM,WAAW3L,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,WAAW,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,GAAG,QAAU,WAAW,GAAK0N,EAAYK,mBAAmB,GAAGC,cAAgBN,EAAYK,mBAAmB,GAAGE,WAAa,KAAK,KAAQP,EAAYK,mBAAmB,GAAGC,cAA+D,KAA/CN,EAAYK,mBAAmB,GAAGE,WAAkB,QAAUP,EAAYK,mBAAmB,GAAGC,eAAiBN,EAAYK,mBAAmB,GAAGG,aAAe,SAAW,UAAU,CAACxO,EAAIW,GAAG,IAAIX,EAAIe,GAAGiN,EAAYK,mBAAmB,GAAGI,WAAW,OAAO,EAAEzL,OAAM,IAAO,MAAK,IAAO,CAAC/C,EAAG,cAAc,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI0O,SAASC,QAAQC,oBAAoBZ,EAAYa,kBAAkB,EAAE,IAAG,IAAI,EACtoC,EACIxO,GAAkB,GC+BtB,IACAhf,KAAA,sBACAigB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAvL,YAAAzS,GAAAA,EAAAC,IAAAwS,gBCrC2N,MCOvN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B6J,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAI8O,4BAA8B9O,EAAI8O,2BAA2B1e,OAAS,EAAG6P,EAAG,cAAc,CAACM,YAAY,2BAA2BD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,MAAM,CAACM,YAAY,sBAAsBD,MAAM,CAAC,UAAU,YAAY,CAACL,EAAG,MAAM,CAACA,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,qBAAqBV,EAAG,MAAM,CAACM,YAAY,WAAW,CAACN,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,mBAAmB4S,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,UAAUwB,GAAG,UAAS,KAAE7f,EAAI,SAAEgqB,IAAY,MAAO,CAAC7M,EAAG,WAAW,CAACK,MAAM,CAAC,KAAO,GAAG,KAAOxd,EAAK,QAAU,QAAQohB,GAAG,CAAC,MAAQ4I,IAAW,CAAC9M,EAAIW,GAAG,YAAYV,EAAG,OAAO,CAACM,YAAY,4CAA4C4F,YAAY,CAAC,YAAY,SAAS,CAACnG,EAAIW,GAAG,uBAAuB,IAAI,MAAK,EAAM,eAAe,KAAMX,EAAI8O,4BAA8B9O,EAAI8O,2BAA2B1e,OAAS,EAAG6P,EAAG,MAAM,CAACA,EAAG,aAAa,CAACK,MAAM,CAAC,GAAK,kBAAkB,SAAW,EAAE,SAAW,GAAG,KAAO,KAAKN,EAAIiB,GAAIjB,EAAI8O,4BAA4B,SAASC,EAAM1N,GAAO,OAAOpB,EAAG,mBAAmB,CAACkB,IAAIE,EAAMd,YAAY,aAAa,CAACN,EAAG,QAAQD,EAAIiB,GAAI8N,GAAO,SAAS7N,GAAS,OAAOjB,EAAG,QAAQ,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,yBAAyBD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,KAAK,oBAAqB,EAAK,eAAgB,EAAK,iBAAkB,EAAM,eAAgB,MAAS,EAAE,IAAG,IAAI,EAAE,IAAG,IAAI,GAAGpB,EAAII,OAAOJ,EAAII,IAC59C,EACIC,GAAkB,GC0CtB,IACAhf,KAAA,oBACA6nB,OAAA,CAAAC,IACAzE,MAAA,CACAtD,KAAA,CACAtG,KAAA+J,OACAE,QAAA,OACAC,UAAA,SAAA/H,GAEA,cAAAA,IAAA,+BAAAX,QAAAW,EACA,IAGAsJ,WAAA,CACAsD,YAAAA,IAEA3f,IAAAA,GACA,OACA6f,SAAA,GACAI,wBAAA,KAEA,EACA1D,MAAA,CACAhM,gBAAAA,CAAAD,GACAA,GACA,KAAA0Q,sBAEA,GAEAI,aAAAA,GACAC,cAAA,KAAApB,wBACA,EACA1B,OAAAA,GACA,KAAAyC,uBAEA,KAAAf,wBAAAkB,aAAA,KACA,KAAA5Q,kBACA,KAAAyQ,sBACA,GACA,KAAAT,4BACA,EACAnJ,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,aAEA+Q,MAAAA,GACA,mBAAAQ,IACA,EACA4N,eAAAA,GACA,IAAAC,EAOA,OANA,KAAAC,QAAAC,KACA,KAAAD,QAAAE,GADAH,EAAA,EAEA,KAAAC,QAAAG,GAAAJ,EAAA,EACA,KAAAC,QAAAI,IACA,KAAAJ,QAAAK,GADAN,EAAA,EAEA,KAAAC,QAAAM,KAAAP,EAAA,GACAA,CACA,EACAQ,oBAAAA,GACA,YAAAjZ,iBAAAvc,EAAAyF,sBAAA,KAAAqqB,UAAA7P,QAAAyQ,GAAAA,EAAAG,YACA,KAAAtU,iBAAAvc,EAAA0F,wBAAA,KAAA6W,eAAAvc,EAAA2F,uBACA,KAAAmqB,UAAA7P,QAAAyQ,GAAAA,EAAAC,WACA,EACAkE,0BAAAA,GACA,YAAAY,WAAA,KAAAD,qBAAA,KAAAT,gBACA,EACAvE,2BAAAA,GACA,OAAA1mB,SAAAf,QACA,MACAioB,EAAAA,EAAAA,IAAA,uBAEAzJ,QAAA,CACA0J,oBAAAA,GACA5hB,GAAA+C,sBAAA,KAAAX,SAAA8L,MAAA,EAAAtN,WACA,KAAA+K,WAAA,EACA/K,IACA,KAAA6f,SAAA7f,EACA,GAEA,EACAwlB,UAAAA,CAAAC,EAAAC,GACA,MAAAC,EAAA,GACA,QAAA5oB,EAAA,EAAAA,EAAA0oB,EAAAvf,OAAAnJ,GAAA2oB,EACAC,EAAA3oB,KAAAyoB,EAAAhQ,MAAA1Y,EAAAA,EAAA2oB,IAEA,OAAAC,CACA,IClIyN,MCQrN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCmIhC,IACAxuB,KAAA,mBACAklB,WAAA,CAEAuJ,sBAAA,GACAC,oBAAA,GACAC,oBAAA,GACAC,kBAAAA,IAEA/lB,IAAAA,GACA,OACAgmB,yBAAA,GACAC,mBAAA,GACAC,oBAAA,GACA1P,WAAA1d,aAEA,EACAse,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAnK,WAAA7T,GAAAA,EAAAC,IAAAwR,QACAtJ,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAsF,eAAA5R,GAAAA,EAAAC,IAAA2R,eACAC,aAAA7R,GAAAA,EAAAC,IAAA4R,aACAI,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAQ,YAAAzS,GAAAA,EAAAC,IAAAwS,YACAE,qBAAA3S,GAAAA,EAAAC,IAAA0S,qBACAC,eAAA5S,GAAAA,EAAAC,IAAA2S,eACAC,gBAAA7S,GAAAA,EAAAC,IAAA4S,gBACAC,kBAAA9S,GAAAA,EAAAC,IAAA6S,kBACAC,sBAAA/S,GAAAA,EAAAC,IAAA8S,sBACAC,cAAAhT,GAAAA,EAAAC,IAAA+S,cACAR,YAAAxS,GAAAA,EAAAC,IAAAuS,YACAhT,SAAAQ,GAAAA,EAAAC,IAAAT,SACA+T,aAAAvT,GAAAA,EAAAC,IAAAsT,aACAC,cAAAxT,GAAAA,EAAAC,IAAAuT,cACAC,UAAAzT,GAAAA,EAAAC,IAAAwT,UACAP,aAAAlT,GAAAA,EAAAC,IAAAiT,aACAQ,SAAA1T,GAAAA,EAAAC,IAAAyT,SACA1B,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACA8a,QAAAA,GACA,IAAAC,EAAA,EAIA,OAHA,KAAAna,gBAAAma,KACA,KAAAla,iBAAA,KAAAE,uBAAA,KAAAD,oBAAAia,IACA,KAAA/Z,eAAA+Z,IACAA,CACA,EACAC,QAAAA,GACA,eAAAF,QACA,EACAG,mBAAAA,GACA,cAAAH,QACA,KAeA,aAAA5H,GAGA,KAAA0H,mBAAA,yBACA,KAAAC,oBAAA,yBACA,EACA5O,QAAA,CACAkL,cAAAA,CAAAhqB,GACA,OAAA6qB,GAAAb,eAAAhqB,EACA,IClOiN,MCQ7M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bmd,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,QAAQ,CAACM,YAAY,kDAAkDC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIU,wBAAwBV,EAAItU,6BAA6BvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,gCAAgC,CAAEP,EAAIhK,YAAYya,iBAAkBxQ,EAAG,yBAAyB,CAACK,MAAM,CAAC,QAAUN,EAAIhK,YAAY0a,kBAAkB1Q,EAAII,KAAMJ,EAAIhK,YAAY6W,aAAc5M,EAAG,yBAAyBD,EAAII,MAAM,KAAMJ,EAAIhK,YAAY+X,eAAiB/N,EAAIhK,YAAY+X,cAAc3d,OAAS,EAAG6P,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACN,EAAG,aAAa,CAACkG,YAAY,CAAC,gBAAgB,QAAQ7F,MAAM,CAAC,GAAK,wBAAwB,KAAO,GAAG,SAAW,IAAK,WAAa,GAAG,YAAY,OAAO,aAAa,MAAM,WAAa,YAAYN,EAAIiB,GAAIjB,EAAIhK,YAAY+X,eAAe,SAASC,GAAa,OAAO/N,EAAG,mBAAmB,CAACkB,IAAI6M,EAAYC,KAAK3N,MAAM,CAAC,UAAU0N,EAAYG,aAAaC,WAAW,CAACnO,EAAG,KAAK,CAACM,YAAY,0BAA0B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGiN,EAAYE,cAAc,OAAOjO,EAAG,IAAI,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI0O,SAASC,QAAQC,oBAAoBZ,EAAYa,iBAA+e7O,EAAII,MAAM,EAAE,IAAG,IAAI,KAAKJ,EAAII,KAA2DJ,EAAII,KAAgyGJ,EAAII,MAAM,EACjmK,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAkFD,EAAII,KAAKJ,EAAI2Q,GAAG,GAAG1Q,EAAG,eAAe,CAACK,MAAM,CAAC,KAAON,EAAI4Q,eAAe1M,GAAG,CAAC,IAAMlE,EAAI6Q,gBAAgBpO,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,UAAUwB,GAAG,SAAS+B,GAAO,MAAO,CAACzE,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACN,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAGX,EAAIe,GAAG2D,EAAMhX,SAASuS,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACP,EAAIW,GAAG,YAAYV,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAGX,EAAIe,GAAG2D,EAAMoM,UAAU7Q,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACP,EAAIW,GAAG,aAAaV,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAGX,EAAIe,GAAG2D,EAAMqM,YAAY9Q,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACP,EAAIW,GAAG,eAAeV,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAGX,EAAIe,GAAG2D,EAAMsM,YAAY/Q,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACP,EAAIW,GAAG,iBAAiB,QAAQ,EACjrC,EACIN,GAAkB,CAAC,WAAY,IAAIL,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAACN,EAAG,OAAO,CAACM,YAAY,8BAA8B,CAACN,EAAG,QAAQ,CAACD,EAAIW,GAAG,kBAC3L,G,sBCoCA,IACAtf,KAAA,yBACAklB,WAAA,CACA0K,aAAAA,MAEAvM,MAAA,CACAza,QAAA4a,QAEA3a,IAAAA,GACA,OACA0mB,cAAA,EAEA,EACAtP,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACApM,eAAA5R,GAAAA,EAAAC,IAAA2R,kBAGAsT,OAAAA,GACA,MAAAyI,EAAA9rB,GAAA4D,kBACA1C,EAAAlB,GAAA4D,gBAAA,KAAAmM,gBACA,KAAAyb,cAAAtqB,EAAA4qB,CACA,EACA1P,QAAA,CACAqP,cAAAA,GACA,KAAAD,cAAA,CACA,ICjE8N,MCQ1N,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCyFhC,IACAvvB,KAAA,mBACAklB,WAAA,CACA4K,uBAAA,GACArB,sBAAA,GACAC,oBAAAA,IAEA7lB,IAAAA,GACA,OACAgmB,yBAAA,GACAC,mBAAA,GACAC,oBAAA,GACA1P,WAAA1d,aAEA,EACAse,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAnK,WAAA7T,GAAAA,EAAAC,IAAAwR,QACAtJ,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAsF,eAAA5R,GAAAA,EAAAC,IAAA2R,eACAK,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAQ,YAAAzS,GAAAA,EAAAC,IAAAwS,YACAE,qBAAA3S,GAAAA,EAAAC,IAAA0S,qBACAC,eAAA5S,GAAAA,EAAAC,IAAA2S,eACAC,gBAAA7S,GAAAA,EAAAC,IAAA4S,gBACAC,kBAAA9S,GAAAA,EAAAC,IAAA6S,kBACAC,sBAAA/S,GAAAA,EAAAC,IAAA8S,sBACAC,cAAAhT,GAAAA,EAAAC,IAAA+S,cACA8Z,QAAAA,GACA,IAAAC,EAAA,EAIA,OAHA,KAAAna,gBAAAma,KACA,KAAAla,iBAAA,KAAAE,uBAAA,KAAAD,oBAAAia,IACA,KAAA/Z,eAAA+Z,IACAA,CACA,EACAC,QAAAA,GACA,eAAAF,QACA,EACAG,mBAAAA,GACA,cAAAH,QACA,KAIA,aAAA5H,GAGA,KAAA0H,mBAAA,yBACA,KAAAC,oBAAA,yBACA,GC9J+M,MCQ3M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCAhC,IACA/uB,KAAA,eACAqjB,MAAA,CACAvE,UAAA,CACArF,KAAA8J,QACAG,SAAA,IAGAwB,WAAA,CACA6K,iBAAA,GACAC,iBAAA,GACAC,sBAAAA,IAGApnB,IAAAA,GACA,OAEA,CACA,EACAoX,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA4J,gBAAA/R,GAAAA,EAAAC,IAAA8R,gBACAC,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAC,qBAAAlS,GAAAA,EAAAC,IAAAiS,qBACA5F,WAAAtM,GAAAA,EAAAC,IAAAqM,eC7CoN,MCOhN,IAAY,QACd,GACAgQ,GACAQ,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAASD,EAAI/K,UAM40B+K,EAAII,KANr0BH,EAAG,WAAW,CAAED,EAAIuR,oBAAqBtR,EAAG,wBAAwBD,EAAII,KAAMJ,EAAIuR,oBAAqBtR,EAAG,kBAAkB,CAACK,MAAM,CAAC,GAAK,uBAAuBN,EAAII,KAAMJ,EAAIwR,aAAexR,EAAIyR,OAAOC,KAAKC,iBAAkB1R,EAAG,MAAM,CAACM,YAAY,cAAc,CAACN,EAAG,WAAW,GAAGD,EAAII,KAAKH,EAAG,cAAc,CAACM,YAAY,sBAAsBqR,MAAM,CACta,OAAQ5R,EAAI6R,aAAe7R,EAAI8R,sBAC/B,QAAS9R,EAAI6R,aAAe7R,EAAI8R,sBAChC,OAAQ9R,EAAI8R,sBACZ,QAAS9R,EAAI8R,sBACb,OAAQ9R,EAAI8R,uBACZxR,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAAC2R,MAAM,CAAE,MAAO5R,EAAIzK,iBAAmByK,EAAIxK,kBAAmB8K,MAAM,CAAC,aAAa,GAAG,WAAWN,EAAIzK,iBAAoByK,EAAIxK,kBAAqBwK,EAAI8R,sBAAmC,YAAW,CAAG9R,EAAI8R,uBAA0B9R,EAAIzK,iBAAoByK,EAAIxK,iBAAsQwK,EAAII,KAAxPH,EAAG,QAAQ,CAACM,YAAY,SAASD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,kBAAkBD,MAAM,CAAC,gBAAgBN,EAAI+R,sBAAsB7N,GAAG,CAAC,MAAQlE,EAAIgS,iBAAiB,CAAC/R,EAAG,IAAI,CAACM,YAAY,8CAAwDP,EAAIiS,UAAWhS,EAAG,cAAc,CAACkB,IAAInB,EAAIkS,sBAAsBlS,EAAII,MAAM,IAAI,GAAIJ,EAAIzG,UAAYyG,EAAImS,sBAAwBnS,EAAIoS,yBAA2BpS,EAAIqS,oBAAqBpS,EAAG,iBAAiB,CAACK,MAAM,CAAC,QAAS,KAAQN,EAAII,KAAKH,EAAG,gBAAgBA,EAAG,cAAeD,EAAIsS,aAAetS,EAAIyR,OAAOC,KAAKC,iBAAkB1R,EAAG,UAAUD,EAAII,MAAM,EACl5B,EACIC,GAAkB,G,mCCNtB,MAAMkS,WAAkBC,MACtBC,WAAAA,CAAYjZ,GACVkZ,QAEAvrB,KAAKqS,YAAcA,EACnBrS,KAAKwrB,OAAS,IAChB,CAEAC,IAAAA,GAEE,IAAK/wB,OAAOgxB,aAAc,CACxB,MAAMC,EAAQ3rB,KAEdA,KAAKwrB,OAAStL,SAASsG,cAAc,UACrCxmB,KAAKwrB,OAAOI,OAAS,KACnBlxB,OAAOgxB,aAAaG,SAASC,wBAA0B,CACrD,CACEC,MAAO,aACP7xB,KAAM,YACN4b,MAAO6V,EAAMtZ,aAAaE,WAAa,GACvCyZ,gBAAgB,GAElB,CACED,MAAO,YACPjW,MAAO6V,EAAMtZ,aAAaG,UAAY,GACtCwZ,gBAAgB,GAElB,CACED,MAAO,QACPjW,MAAO6V,EAAMtZ,aAAaM,OAAS,GACnCqZ,gBAAgB,IAIpBtxB,OAAOgxB,aAAaG,SAASI,0BAA4B,CACvDC,UAAYP,EAAMtZ,aAAaE,WAAa,GAC5C4Z,SAAUR,EAAMtZ,aAAaG,UAAY,GACzC4Z,MAAOT,EAAMtZ,aAAaM,OAAS,GACnC0Z,QAAS,wBAGX3xB,OAAOgxB,aAAaG,SAASS,iBAAmB,CAC9C,CACEC,WAAY,UACZC,cAAc,EACdC,iBAAkB,OAClBC,kBAAmB,YACnBC,iBAAkB,YAClBC,gBAAiB,CACf,CACEC,cAAc,EACdC,UAAW,YACXC,UAAU,EACVC,QAAQ,EACRjB,MAAO,cAET,CACEc,cAAc,EACdC,UAAW,WACXC,UAAU,EACVC,QAAQ,EACRjB,MAAO,aAET,CACEc,cAAc,EACdC,UAAW,QACXC,UAAU,EACVC,QAAQ,EACRjB,MAAO,WAIb,CACEQ,WAAY,OACZC,cAAc,EACdG,iBAAkB,SAClBC,gBAAiB,CACf,CACEC,cAAc,EACdC,UAAW,UACXC,UAAU,EACVC,QAAQ,EACRjB,MAAO,SAET,CACEc,cAAc,EACdC,UAAW,SACXC,UAAU,EACVC,QAAQ,EACRjB,MAAO,UAET,CACEc,cAAc,EACdC,UAAW,SACXC,UAAU,EACVC,QAAQ,EACRjB,MAAO,aAMfJ,EAAMvpB,MAAM,EAGdpC,KAAKwrB,OAAOyB,aAAa,MAAO,4DAEhC/M,SAASgN,KAAKC,YAAYntB,KAAKwrB,OACjC,CACF,CAEAppB,IAAAA,CAAKgrB,GACH1yB,OAAOgxB,aAAaG,SAASwB,mBAAoB,EACjD3yB,OAAOgxB,aAAaG,SAASyB,SAAW,GACxC5yB,OAAOgxB,aAAaG,SAAS0B,gBAAkB,CAAC,aAChD7yB,OAAOgxB,aAAaG,SAAS2B,aAAe,YAC5C9yB,OAAOgxB,aAAaG,SAAS4B,qBAAuB,eACpD/yB,OAAOgxB,aAAatpB,KAClBvG,qCACAA,6BACAuxB,EACAvxB,kBACAA,uBACA,CACE6xB,wBAAyB7xB,uDACzB8xB,aAAc9xB,kBACd+xB,SAAU/xB,kBACVgyB,iBAAkBhyB,oDAClBiyB,oBAAqBjyB,uBACrBkyB,yBAAyB,GAG/B,CAEAC,OAAAA,GACE9N,SAASgN,KAAKe,YAAYjuB,KAAKwrB,OACjC,EC1IF,SAAS0C,KACP,MAAO,eACT,CCFA,IAAIxV,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACK,MAAM,CAAC,GAAK,cAAc,mBAAkB,EAAK,cAAc,GAAG,cAAc,GAAG,UAAU,IAAI4D,GAAG,CAAC,KAAO,SAASC,GAAQ,OAAOnE,EAAIgH,QAAQ,EAAE,KAAO,SAAS7C,GAAQ,OAAOnE,EAAIiH,QAAQ,GAAGqO,MAAM,CAACrY,MAAO+C,EAAIpF,KAAM2a,SAAS,SAAUC,GAAMxV,EAAIpF,KAAK4a,CAAG,EAAEtP,WAAW,SAAS,CAACjG,EAAG,MAAM,CAACM,YAAY,gDAAgD,CAACN,EAAG,WAAW,CAACM,YAAY,uEAAuED,MAAM,CAAC,KAAO,GAAG,QAAU,QAAQ,KAAO,MAAM4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyV,OAAO,IAAI,CAACxV,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,aAAa,GAAGV,EAAG,cAAc,CAACM,YAAY,YAAYD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAAGN,EAAI0V,kBAK28D1V,EAAII,KAL57D,CAACH,EAAG,QAAQ,CAAE9Y,KAAK2G,UAAWmS,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,eAAe,CAACkB,IAAIha,KAAK2G,UAAUwS,MAAM,CAAC,UAAYnZ,KAAK2G,cAAc,GAAGkS,EAAII,KAAKH,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,KAAK,CAACD,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK+Z,QAAQnH,QAAS5S,KAAK+Z,QAAQ4C,SAAU7D,EAAG,OAAO,CAACD,EAAIW,GAAG,MAAMX,EAAIe,GAAG5Z,KAAK+Z,QAAQ4C,aAAa9D,EAAII,SAAUJ,EAAI2V,eAA8C,KAA7B3V,EAAI2V,cAAc9d,OAAeoI,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,GAAK,KAAK,GAAK,KAAK,CAACL,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,MAAM,CAACM,YAAY,mBAAmB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI2V,sBAAsB3V,EAAII,KAAMJ,EAAIkB,QAAQ0U,YAAgD,KAAlC5V,EAAIkB,QAAQ0U,WAAW/d,OAAeoI,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,MAAM,CAACM,YAAY,mBAAmB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIkB,QAAQ0U,mBAAmB5V,EAAII,KAAOJ,EAAIzG,SAA2gByG,EAAIkF,UAAgoB,CAACjF,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,CAACL,EAAG,mBAAmB,CAACkB,IAAIha,KAAK0uB,QAAQzN,IAAI,WAAW7H,YAAY,uBAAuBD,MAAM,CAAC,UAAYnZ,KAAKuO,oBAAoB,SAAWvO,KAAKwO,mBAAmB,QAAUxO,KAAK0uB,SAAS3R,GAAG,CAAC,OAASlE,EAAI8V,6BAA6B,GAAG7V,EAAG,QAAQ,CAACM,YAAY,kCAAkCD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,EAAGN,EAAIkB,QAAQ6U,aAAe/V,EAAIkB,QAAQ8U,sBAAuB/V,EAAG,MAAM,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAO,UAAU,CAACL,EAAG,OAAO,CAACD,EAAIW,GAAG,oCAAoCV,EAAG,IAAI,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,UAAYN,EAAIkB,QAAQ8U,wBAAwB,CAAChW,EAAIW,GAAGX,EAAIe,GAAGf,EAAIkB,QAAQ8U,0BAA0BhW,EAAIW,GAAG,SAASX,EAAII,KAAKH,EAAG,SAAS,CAACkB,IAAInB,EAAIkB,QAAQ+U,UAAU3V,MAAM,CAAC,gBAAgBN,EAAIkB,QAAQgV,YAAY,iBAAiBlW,EAAIkB,QAAQ+U,UAAU,WAAWjW,EAAI9d,KAAK,kBAAkB8d,EAAIkB,QAAQ6U,YAAY,oBAAmB,EAAK,mBAAkB,EAAM,8BAA6B,EAAM,oBAAoB/V,EAAImW,eAAe,SAAS,SAAS,IAAvrD,CAAClW,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,CAACL,EAAG,iBAAiB,CAACkG,YAAY,CAAC,eAAe,OAAO,WAAa,UAAU,gBAAgB,UAAU7F,MAAM,CAAC,WAAa,+CAA+C,SAAYN,EAAIxK,iBAAoF,4DAAjE,+DAA6H,WAAcwK,EAAIxK,iBAAoC,GAAjB,eAAoB,YAAcwK,EAAIxK,iBAAiB,QAAU,4EAA4E,kBAAoBwK,EAAIoW,sBAAsB,IAAjoC,CAACnW,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,CAACL,EAAG,eAAe,CAACM,YAAY,aAAa4F,YAAY,CAAC,eAAe,OAAO,WAAa,UAAU,gBAAgB,UAAU7F,MAAM,CAAC,kBAAmB,EAAK,WAAa,+CAA+C,WAAa,UAAU,QAAWN,EAAIxK,iBAA8F,yCAA3E,yEAAoH,kBAAoBwK,EAAIoW,sBAAsB,IAAgtDnW,EAAG,QAAQ,CAACM,YAAY,yBAAyBD,MAAM,CAAC,GAAK,KAAK,CAACL,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK+Z,QAAQnH,OAAO,OAAOkG,EAAG,MAAM,CAACM,YAAY,QAAQ,CAAEpZ,KAAK+Z,QAAQ4C,SAAU7D,EAAG,OAAO,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK+Z,QAAQ4C,UAAU,OAAO9D,EAAII,MAAOJ,EAAIzK,iBAAmBpO,KAAK+Z,QAAQmV,aAAcpW,EAAG,IAAI,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAOnZ,KAAK+Z,QAAQmV,aAAa,OAAS,WAAW,CAACpW,EAAG,WAAW,CAACM,YAAY,mBAAmBD,MAAM,CAAC,QAAU,QAAQ,KAAO,OAAO,CAACL,EAAG,IAAI,CAACM,YAAY,mDAAmDP,EAAIW,GAAG,0BAA0B,GAAGX,EAAII,OAAOH,EAAG,MAAM,CAACM,YAAY,yDAAyD,EAAGP,EAAIkB,QAAQ0B,YAAc5C,EAAIkB,QAAQhI,UAAW+G,EAAG,MAAM,CAACM,YAAY,4EAA4E,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,sBAAsBV,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIkB,QAAQhI,YAAY,SAAS8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIkB,QAAQhI,YAAY,OAAO8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIkB,QAAQ/H,UAAU,KAAK8G,EAAG,OAAO,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK+Z,QAAQkC,UAAU,aAAapD,EAAII,KAAKH,EAAG,MAAM,CAACM,YAAY,mFAAmF,CAACN,EAAG,OAAO,CAACM,YAAY,qGAAqG,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,aAAaX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAG,gBAAgBX,EAAIiB,GAAIjB,EAAIsW,UAAU,SAASC,GAAS,OAAOtW,EAAG,eAAe,CAACkB,IAAIoV,EAAQA,QAAQjW,MAAM,CAAC,QAAUiW,EAAQA,QAAQ,IAAMvW,EAAIwW,QAAQ,MAAQxW,EAAIyW,UAAU,YAAczW,EAAI0W,kBAAkB,CAACzW,EAAG,OAAO,CAACM,YAAY,cAAc,CAACN,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiW,EAAQI,KAAK,IAAMJ,EAAQl1B,WAAW,KAAI,UAAW2e,EAAIzK,iBAAmBpO,KAAK+Z,QAAQ0V,eAAsD,IAArCzvB,KAAK+Z,QAAQ0V,cAAc/e,QAAgB1Q,KAAK+Z,QAAQ0V,cAAc3O,SAAS,KAAMhI,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,CAACL,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,kEAAkEV,EAAG,IAAI,CAACM,YAAY,8BAA8BD,MAAM,CAAC,KAAO,UAAUnZ,KAAK+Z,QAAQ0V,gBAAgB,OAAS,WAAW,CAAC5W,EAAIW,GAAGX,EAAIe,GAAG5Z,KAAK+Z,QAAQ0V,oBAAoB5W,EAAII,KAAKH,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,WAAW,CAAC6F,WAAW,CAAC,CAACzkB,KAAK,WAAW0kB,QAAQ,mCAAmC8Q,UAAU,CAAC,yBAAwB,KAAQtW,YAAY,oCAAoCD,MAAM,CAAC,KAAO,GAAG,QAAU,QAAQ4D,GAAG,CAAC,MAAQlE,EAAI8W,qBAAqB,CAAC7W,EAAG,IAAI,CAACM,YAAY,0DAA0DN,EAAG,OAAO,CAACM,YAAY,eAAe,CAACP,EAAIW,GAAG,UAAUV,EAAG,IAAI,CAACM,YAAY,2DAA2DN,EAAG,OAAO,CAACM,YAAY,eAAe,CAACP,EAAIW,GAAG,UAAUX,EAAIW,GAAG,+BAAgCX,EAAIkB,QAAQnI,IAAMiH,EAAIkB,QAAQnH,OAASiG,EAAIkB,QAAQ9F,oBAAqB6E,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACN,EAAG,iBAAiB,CAACK,MAAM,CAAC,MAAQN,EAAIkB,QAAQnH,MAAM,iBAAmBiG,EAAIkB,QAAQnI,GAAG,oBAAsBiH,EAAIkB,QAAQ9F,oBAAoB,KAAO,QAAQ,MAAQ,KAAK,OAAS,SAAS,KAAK4E,EAAII,KAAKH,EAAG,aAAa,CAACM,YAAY,yBAAyBD,MAAM,CAAC,SAAWN,EAAI+W,qBAAqB,GAAK,0BAA0B,CAAC9W,EAAG,SAAS,CAACM,YAAY,sBAAsB,CACjjPpZ,KAAK4vB,sBACJ5vB,KAAK6vB,mBAAmBC,cAA+D,GAA/C9vB,KAAK6vB,mBAAmBC,aAAa7mB,QAC9EjJ,KAAK6vB,mBAAmBE,oBACvB/vB,KAAK6vB,mBAAmBG,eAAiE,GAAhDhwB,KAAK6vB,mBAAmBG,cAAc/mB,OACO4P,EAAII,KAA5F,CAACH,EAAG,IAAI,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,8CAAwDxZ,KAAK4vB,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,IAAIN,EAAII,MAAOjZ,KAAK4vB,sBAAwB5vB,KAAK6vB,mBAAmBC,cAAgB9vB,KAAK6vB,mBAAmBC,aAAa7mB,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACD,EAAIW,GAAG,kBAAkBV,EAAG,IAAI,CAACM,YAAY,aAAaP,EAAIiB,GAAI9Z,KAAK6vB,mBAAmBC,cAAc,SAASG,EAAM/V,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIE,EAAMd,YAAY,sBAAsB,CAACN,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBunB,EAAM9oB,WAAW,CAAC2R,EAAG,OAAO,CAACiE,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyV,OAAO,IAAI,CAACzV,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIqX,oBAAoBD,IAAQ,UAAU,EAAE,IAAG,IAAIpX,EAAII,KAAMjZ,KAAK4vB,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,IAAIN,EAAII,MAAOjZ,KAAK4vB,sBAAwB5vB,KAAK6vB,mBAAmBE,oBAA4E,KAAtD/vB,KAAK6vB,mBAAmBE,mBAAmBrf,OAAe,CAACoI,EAAG,KAAK,CAACD,EAAIW,GAAG,yBAAyBV,EAAG,IAAI,CAACM,YAAY,uCAAuC,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,OAAP7C,CAAe7Y,KAAK6vB,mBAAmBE,yBAAyBlX,EAAII,KAAMjZ,KAAK4vB,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,SAASL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,SAASL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAU,IAAIN,EAAII,MAAOjZ,KAAK4vB,sBAAwB5vB,KAAK6vB,mBAAmBG,eAAiBhwB,KAAK6vB,mBAAmBG,cAAc/mB,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,mBAAmBX,EAAIiB,GAAI9Z,KAAK6vB,mBAAmBG,eAAe,SAASG,EAAajW,GAAO,OAAOpB,EAAG,MAAM,CAACkB,IAAIE,EAAMd,YAAY,4CAA4C,CAAE+W,EAAape,UAAY,EAAG+G,EAAG,OAAO,CAACM,YAAY,wCAAwC,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCsX,EAAape,YAAY,MAAM8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCsX,EAAane,aAAa6G,EAAII,KAAKH,EAAG,OAAO,CAACM,YAAY,oDAAoD,CAACP,EAAIW,GAAGX,EAAIe,GAAGuW,EAAavd,UAAUiG,EAAIiB,GAAIqW,EAAaC,SAAS,SAASC,EAAOnW,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIE,EAAMd,YAAY,0CAA0C,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGyW,EAAOC,MAAM,MAAMxX,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuB2nB,EAAOlpB,WAAW,CAAC2R,EAAG,OAAO,CAACM,YAAY,sBAAsB2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyV,OAAO,IAAI,CAACzV,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIqX,oBAAoBG,IAAS,UAAU,EAAE,KAAI,EAAE,KAAIxX,EAAII,MAAM,IAAI,IAAI,IAAI,KAAc,IAAI,IAAI,EACp1F,EACIC,GAAkB,GCPtB,IACEmB,QAAS,CACP6V,mBAAAA,CAAoBG,GAClB,IAAIE,EAAmB,GAAGF,EAAO9d,aAAa8d,EAAO7d,WAErD,OADI6d,EAAOG,SAAqC,KAA1BH,EAAOG,QAAQ9f,SAAe6f,GAAoB,KAAKF,EAAOG,YAC7ED,CACT,EACAE,oBAAAA,CAAqBD,GACnB,IAAIE,EAEJ,OADIF,GAA8B,KAAnBA,EAAQ9f,SAAeggB,EAAmB,IAAIF,KACtDE,CACT,EACAC,aAAAA,CAAcL,GAEZ,IAAIM,EAAgBN,EAGpB,OADAM,EAAgBA,EAAcjsB,QAAQ,qBAAqB,aACpDisB,CACT,IClBAlY,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACK,MAAM,CAAC,OAAOnZ,KAAK2G,WAAa3G,KAAK6wB,eAAe,QAAU7wB,KAAK6wB,iBACpJ,EACI3X,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,aAAa,CAACK,MAAM,CAAC,SAAW,IAAK,KAAO,GAAG,iBAAiB,KAAKN,EAAIiB,GAAIjB,EAAIlI,SAAS,SAASmgB,GAAQ,OAAOhY,EAAG,mBAAmB,CAACkB,IAAI8W,EAAOlf,GAAG0J,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,MAAMwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAAE0X,EAAOC,YAAYx1B,IAAKud,EAAG,IAAI,CAACM,YAAY,6BAA6BD,MAAM,CAAC,KAAO2X,EAAOC,YAAYx1B,IAAI,OAASu1B,EAAOE,gBAAgB,CAAClY,EAAG,aAAaD,EAAIoY,GAAG,CAAC7X,YAAY,cAAcD,MAAM,CAAC,IAAM2X,EAAOI,aAAajK,SAAS,QAAU,GAAG,MAAQ,GAAG,IAAM,WAAW6J,EAAOlf,OAAO,aAAaiH,EAAIsY,gBAAe,KAAS,GAAGrY,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,aAAaD,EAAIoY,GAAG,CAAC7X,YAAY,cAAcD,MAAM,CAAC,IAAM2X,EAAOI,aAAajK,SAAS,QAAU,GAAG,MAAQ,GAAG,IAAM,WAAW6J,EAAOlf,OAAO,aAAaiH,EAAIsY,gBAAe,KAAS,KAAK,EAAEtV,OAAM,IAAO,MAAK,IAAO,IAAG,EACv5B,EACI3C,GAAkB,GCgBtB,IACAhf,KAAA,UACAqjB,MAAA,CACA5M,QAAA9Q,OAEAkD,IAAAA,GACA,OACAouB,eAAA,CACAC,QAAA,EACAC,OAAA,EACAC,WAAA,OACApQ,MAAA,IACAC,OAAA,IAGA,GCjC+M,MCQ3M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCXhC,IACAjnB,KAAA,kBACAklB,WAAA,CAAAmS,QAAAA,IACAhU,MAAA,CACA5W,UAAAgP,QAEAwE,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAxL,YAAAxS,GAAAA,EAAAC,IAAAuS,cAEAiiB,cAAAA,GACA,YAAAW,gBAAA,KAAA7qB,UACA,GAEA2a,OAAAA,GACA,EAEAjH,QAAA,CACAmX,eAAAA,CAAA7qB,GAEA,YAAAiI,aAAA,KAAAA,aAAA6iB,sBAAA9qB,EACA,KAAAiI,aAAA6iB,sBAAA1e,QAAArB,GAAAA,EAAAggB,mBAAA/qB,IADA,EAEA,IC9BoN,MCOhN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B+R,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,YAAY,CAACK,MAAM,CAAC,KAAON,EAAI/K,YAAY,CAACgL,EAAG,WAAW,CAACM,YAAY,0CAA0CD,MAAM,CAAC,GAAKN,EAAIrK,mBAAmB,eAAexO,KAAK2xB,UAAU,cAAc3xB,KAAK4xB,SAAS,gBAAgB5xB,KAAK0uB,QAAQ,aAAa,UAAU,SAAW,OAAO,EAC1V,EACIxV,GAAkB,GCetB,IACAhf,KAAA,mBACA6I,IAAAA,GACA,OACA+K,WAAA,EACA0d,OAAA,KACAhd,mBAAA,KAAAqjB,MAAAC,KACAC,iBAAA,KAEA,EACAxU,MAAA,CACAoU,UAAAjU,OACAkU,SAAAlU,OACAgR,QAAAhR,QAEAvD,SAAA,CACA6X,SAAAA,GACA,6CAAAL,aAAA,KAAAC,+BACA,GAEAtQ,OAAAA,GACA,KAAAkK,OAAAtL,SAAAsG,cAAA,UACA,KAAAgF,OAAAI,OAAA,KAAAqG,eACA,KAAAzG,OAAAyB,aAAA,WAAA+E,WAEA9R,SAAAgN,KAAAC,YAAA,KAAA3B,OACA,EACArH,aAAAA,GACA,KAAA4N,kBAAA,KAAAA,iBAAA/D,UAEA9N,SAAAgN,KAAAe,YAAA,KAAAzC,OACA,EACAnR,QAAA,CACA4X,cAAAA,GACA,MAAAC,EAAA,KAEAC,QAAAC,UAAA,KAAA5jB,oBAAA6jB,OAAA,WACAH,EAAAH,iBAAA,KAEAG,EAAAH,iBAAAhV,GAAA,6BAEA,IAAAuV,EAAAC,UAAAjF,UAAAiF,UAAAC,aACAF,EAAAA,EAAAG,OAAA,KAGA,IAGAC,EACAC,EACAC,EALAC,EAAAX,EAAAH,iBAAAe,aAMA,QAAAhzB,EAAA,EAAAA,EAAA+yB,EAAA5pB,OAAAnJ,IACA4yB,EAAAG,EAAA/yB,GAAAwtB,SAAAmF,OAAA,KAIAC,IACA,OAAAA,IACAE,EAAAC,EAAA/yB,IACA4yB,IAAAJ,GACAO,EAAA/yB,GAAAma,KAAA,UACA0Y,GAAA,GAGAE,EAAA/yB,GAAAma,KAAA,aAIA0Y,GAAAC,IAEAA,EAAA3Y,KAAA,UAIA,IAEAiY,EAAApkB,WAAA,EACAokB,EAAAjS,MAAA,SACA,GACA,IChGwN,MCQpN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCnB5BvH,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAASnZ,KAAK+yB,WAAW,KAAO/yB,KAAK8C,UAAU,CAACgW,EAAG,WAAW,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,GAAG,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAIzd,QAAQ,CAAC0d,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIma,YAAY,QAAQ,IAAI,EAC7W,EACI9Z,GAAkB,GCWtB,IACAhf,KAAA,eACAqjB,MAAA,CACAwV,WAAArV,OACA5a,QAAA4a,OACApiB,iBAAA,CACAqY,KAAA8J,QACAG,SAAA,GAEAoV,WAAA,CACArf,KAAA+J,OACAE,QAAA,YAGA7a,IAAAA,GACA,QACA,EACAoX,SAAA,CACA8Y,SAAAA,GACA,OAAAv4B,OAAAkB,SAAAK,OAAA,KAAAquB,OAAA4I,QACA,GAEA7Y,QAAA,CACAjf,KAAAA,GACAA,EAAA,KAAA63B,UAAA,KAAA33B,iBACA,ICtCoN,MCQhN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bod,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAED,EAAIoW,kBAAmBnW,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,+FAA+F,KAAO,yJAAyJ,CAAEN,EAAIsa,WAAYra,EAAG,WAAW,CAACM,YAAY,OAAOD,MAAM,CAAC,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAIua,gBAAgB,CAACta,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,uBAAuBX,EAAII,KAAMJ,EAAIsa,WAAYra,EAAG,WAAW,CAACM,YAAY,OAAOD,MAAM,CAAC,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAI3c,WAAW,CAAC4c,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,oBAAoBX,EAAII,MAAM,GAAGH,EAAG,cAAc,CAACK,MAAM,CAAC,OAASnZ,KAAK+yB,WAAW,KAAO/yB,KAAK8C,UAAU,CAAE+V,EAAIsa,WAAYra,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAI3c,WAAW,CAAC4c,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIma,YAAY,OAAOna,EAAII,KAAKH,EAAG,OAAO,CAACM,YAAY,QAAQ,CAACN,EAAG,IAAI,CAACK,MAAM,CAAC,KAAO,KAAK4D,GAAG,CAAC,MAAQlE,EAAIwa,cAAc,CAACva,EAAG,oBAAoB,CAACK,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIya,YAAY,MAAM,IAAI,EACtxC,EACIpa,GAAkB,GC0BtB,IACAhf,KAAA,iBACAqjB,MAAA,CACAwV,WAAArV,OACA5a,QAAA4a,OACAyV,WAAA,CACAxf,KAAA8J,QACAG,SAAA,GAEAoV,WAAA,CACArf,KAAA+J,OACAE,QAAA,gBAEA0V,SAAA5V,OACAuR,kBAAA,CACAtb,KAAA8J,QACAG,SAAA,IAGA7a,IAAAA,GACA,QACA,EACAoX,SAAA,CACA8Y,SAAAA,GACA,OAAAv4B,OAAAkB,SAAAK,OAAA,KAAAquB,OAAA4I,QACA,GAEA7Y,QAAA,CACAne,QAAAA,GACAA,EAAA,KAAA+2B,UACA,EACAG,aAAAA,GACA14B,OAAAkB,SAAA,6CACA,EACAy3B,WAAAA,GACA92B,EAAA,KAAA02B,UACA,IChEsN,MCQlN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,YCgRhC,IACA/4B,KAAA,eACA6nB,OAAA,CAAAwR,IACAnU,WAAA,CACAoU,aAAA,GACAC,iBAAA,GAEAC,aAAA,GACAC,eAAA,GACAtR,eAAAA,IAEAtf,IAAAA,GACA,OACAwrB,mBAAA,EACAqF,iBAAA,EACAhE,sBAAA,EACAiE,2BAAA,EACAC,kBAAA,EACAC,mBAAA,EACAhW,WAAA,EACAhE,QAAA,KACA8V,mBAAA,KACAgB,eAAA,KACAmD,2BAAA,KACA7E,SAAA,CACA,CAAAC,QAAA,WAAAl1B,KAAA,WAAAs1B,KAAApU,EAAA,QACA,CAAAgU,QAAA,UAAAl1B,KAAA,UAAAs1B,KAAApU,EAAA,QACA,CAAAgU,QAAA,WAAAl1B,KAAA,WAAAs1B,KAAApU,EAAA,SAEArgB,KAAA,GACAi0B,eAAAnzB,2XAGA,EACAo4B,QAAAA,GACA,QAAAla,QACA,OACAwQ,KAAA,CACA,CAAArwB,KAAA,cAAAC,KAAA,cAAAC,QAAA,KAAAm1B,iBAEA,CAAA2E,SAAA,WAAA/5B,KAAA,WAAAC,QAAA,KAAAk1B,WACA,CAAA4E,SAAA,iBAAA/5B,KAAA,iBAAAC,QAAA,KAAAm1B,iBACA,CAAA2E,SAAA,UAAA/5B,KAAA,UAAAC,QAAA,eACA,CAAA85B,SAAA,SAAA/5B,KAAA,SAAAC,QAAA,KAAAi1B,SAEA,CAAA6E,SAAA,gBAAA/5B,KAAA,gBAAAC,QAAA,KAAAk1B,WACA,CAAA4E,SAAA,sBAAA/5B,KAAA,sBAAAC,QAAA,KAAAm1B,kBAIA,EACApV,SAAA,KACA2J,EAAAA,EAAAA,IAAA,qBACA1J,EAAAA,EAAAA,IAAA,CACA+Z,aAAA/3B,GAAAA,EAAAsY,MAAAd,QACAxB,SAAAhW,GAAAA,EAAAoY,KAAAtC,SACAhE,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAK,oBAAAnS,GAAAA,EAAAC,IAAAkS,oBACAC,mBAAApS,GAAAA,EAAAC,IAAAmS,mBACAJ,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACA3F,WAAAtM,GAAAA,EAAAC,IAAAqM,aAEA+K,KAAA,CACAjP,GAAAA,GACA,YAAA2vB,aAAA1gB,IACA,EACAxW,GAAAA,CAAAwW,GACAA,GAAA,KAAA6a,OACA,GAEAgB,SAAAA,GACA,cAAAphB,oBAAA,KAAA6L,QAAAnH,OACA,EACA2c,eAAAA,GACA,cAAAxV,QAAAnH,oBAAA,KAAA1E,gBACA,EACAmhB,OAAAA,GACA,SAAA30B,OAAAkB,SAAAK,YAAA,KAAA8K,WACA,EACAA,SAAAA,GACA,YAAAotB,cAAA1vB,QAAAsC,SACA,EACA+W,eAAAA,GACA,YAAA/D,QAAA+D,eACA,EACAnX,SAAAA,GACA,YAAAoT,SAAAnI,EACA,EACA8c,OAAAA,GACA,YAAA3U,SAAAqa,WACA,EACAnF,iBAAAA,GACA,MAAAoF,EAAA,sBACA,OAAAA,EAAAvT,SAAA,KAAA/G,SAAAnI,GACA,EACA4c,aAAAA,GACA,gBAAAzU,QAAAyU,eAAA,IAAAvlB,OACA,KAAA8Q,QAAAua,WACAxhC,EAAAkH,4BACA,KACA,KAAA+f,QAAAyU,aACA,GAEAlP,MAAA,CAEAvF,OAAAA,CAAAwa,GACA,GAAAA,EAAA,CACA,MAAAC,EAAA,KAAAlK,OAAAmK,MAAAC,EACAxf,EAAAqf,EAAAI,aAEAzf,IAAAsf,GAAAtf,GAAAA,IAAAsf,IAAA,KAAArW,QAAApe,KAAA,CAAA00B,MAAAjX,OAAAoX,OAAA,QAAAtK,OAAAmK,MAAA,CAAAC,EAAAxf,KACA,MACA,IAAAuf,EAAAjX,OAAAoX,OAAA,QAAAtK,OAAAmK,cACAA,EAAAC,EACA,KAAAvW,QAAAxZ,QAAA,CAAA8vB,MAAAA,GACA,CACA,EAEAX,gBAAAA,CAAAe,GACAA,GAAA,KAAAd,mBAAA,KAAA7V,OAAAhb,SAAAxF,EACA,GAEA2c,QAAA,CACAiU,KAAAA,IACA,KAAAlc,UAAA,KAAAmc,mBAAA,KAAAuF,mBAAA,KAAA/V,UAAA,KAAAG,OAAAhb,SAAAxF,GACA,KAAAq2B,mBAAA,CACA,EACA,YAAAlU,GAEA,KAAA3B,OAAAhb,SAAA5F,GAGA,KAAAw3B,uBACA,EACAhV,MAAAA,GAEA,KAAA5B,OAAAhb,SAAA7F,GAGA,KAAA03B,aAGA,KAAAC,4BACA,EACAF,qBAAAA,GACA3yB,GAAA2E,2BAAA,KAAAC,WAAAsJ,MAAA,OAAAtN,WACA,GAAAA,EAAA,CACA,KAAAhI,KAAA,CACA6W,GAAA,KAAAS,aAAApN,MACA/K,KAAA,KAAAmY,aAAAE,UAAA,SAAAF,aAAAG,SACA8d,KAAA,KAAAje,aAAAO,OAGA,KAAAmL,UAAAhb,GAAAgb,YAAA,EACA,KAAAhE,QAAAhX,EAEA,KAAAgb,WAAA,KAAAkX,kBACA,KAAA1G,mBAAA,EAEA,MAAAzQ,EAAA/a,GAAA+a,gBACA,GAAAA,GAAA,KAAAC,UAAA,CACA,MAAAE,EAAAlb,GAAAkb,aACAvjB,OAAAsjB,KAAAC,EAAA,UACA,KAAAqQ,OACA,MACA,KAAA4G,6BAEA,IAEA,EACAC,uBAAAA,GACA,IAAAC,EAAA,KAAA1G,QAEAvsB,GAAA2E,2BAAA,KAAAC,WACAsJ,MAAA,OAAAtN,WACA,GAAAA,EAAA,CAEA,KAAAgyB,aACA,KAAAhX,UAAAhb,GAAAgb,YAAA,EACA,KAAAhE,QAAAhX,EACA,KAAAwrB,mBAAA,EACA,KAAA2G,8BACA,KAAAnX,WAAA,KAAAkX,kBACA,MAAAnX,EAAA/a,GAAA+a,gBAKA,GAFAA,GAAA,KAAA4Q,SAAA0G,IAAA,KAAAtB,kBAAA,GAEAhW,GAAA,KAAAC,UAAA,CACA,MAAAE,EAAAlb,GAAAkb,aACAvjB,OAAAsjB,KAAAC,EAAA,UACA,KAAAqQ,OACA,CAGA,KAEA+G,OAAAxxB,IACA,KAAAA,GAAApB,UAAAI,QAEA,KAAAyrB,OACA,GAEA,EACAqB,kBAAAA,GACA,KAAAkE,4BAEA,KAAAA,2BAAA,EAEA1xB,GAAA6E,sBAAA,KAAAL,WAAA0J,MAAA,EAAAtN,WACAA,IACA,KAAA6sB,sBAAA,EACA,KAAAC,mBAAA9sB,EACA,IAEA,EACA4rB,wBAAAA,GACA,KAAAmF,kBAAA,CACA,EACAwB,oBAAAA,GACA,EAEAJ,2BAAAA,GACA,MAAAK,EAAAt3B,GAAA4D,kBAAAlF,UACAqV,EAAA,KAAA+H,QAAA/H,QAEA,IAAAwjB,EAAA,KAAAzb,QAAAyb,gBACAA,IAAAA,EAAAxjB,GAEA,IAAAyjB,EAAA,KAAA1b,QAAA0b,iBACAA,IAAAA,EAAAD,EAAAD,GAEAE,GAAA,IAAAA,EAAA,KAGAzyB,QAAA0yB,MAAA,+BAAAnO,SAAAC,QAAAmO,6BAAAH,KAAAviB,GAAAC,MACAlQ,QAAA0yB,MAAA,sBAAAE,GAAAA,GAAAC,WAAAJ,GAAAK,SAAA,cAAA7iB,GAAAC,MAGA,KAAA8hB,6BAGAS,GAAA,aAAAA,EAAA,YAEA,KAAAzB,2BAAA+B,WAAA,KAAAZ,wBAAAM,EACA,EACAT,0BAAAA,GACA,KAAAhB,6BACAgC,aAAA,KAAAhC,4BACA,KAAAA,2BAAA,KAEA,EACAe,UAAAA,GACA,KAAAhX,WAAA,EAEA,KAAA+V,kBAAA,EACA,KAAAC,mBAAA,EAEA,KAAAxF,mBAAA,EACA,KAAAqB,sBAAA,EAEA,KAAAiE,2BAAA,EAEA,KAAA9Z,QAAA,IACA,EACAkb,eAAAA,GACA,QAAAgB,cAAA,KAAA5jB,YAAA,CACA,MAAA6jB,EAAA,CACAjxB,MAAA,KAAAoN,aAAApN,MACA8B,UAAA,KAAAA,UACAJ,UAAA,KAAAA,UACA+nB,QAAA,KAAAA,QACAyH,OAAA,gBAEAnzB,QAAAuQ,KAAA,kCAAA/Y,KAAAS,UAAAi7B,KAAAjjB,GAAAE,UACA,KAAA8iB,cAAAG,WAAA,CAAAl8B,KAAA,kBAAAm8B,WAAAH,GACA,CACA,ICzjBoN,MCQhN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bxd,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACK,MAAM,CAAC,GAAK,cAAc,mBAAkB,EAAK,cAAc,GAAG,cAAc,GAAG,UAAU,IAAI4D,GAAG,CAAC,KAAO,SAASC,GAAQ,OAAOnE,EAAIgH,QAAQ,EAAE,KAAO,SAAS7C,GAAQ,OAAOnE,EAAIiH,QAAQ,GAAGqO,MAAM,CAACrY,MAAO+C,EAAIpF,KAAM2a,SAAS,SAAUC,GAAMxV,EAAIpF,KAAK4a,CAAG,EAAEtP,WAAW,SAAS,CAACjG,EAAG,MAAM,CAACM,YAAY,gDAAgD,CAACN,EAAG,WAAW,CAACM,YAAY,uEAAuED,MAAM,CAAC,KAAO,GAAG,QAAU,QAAQ,KAAO,MAAM4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyV,OAAO,IAAI,CAACxV,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,aAAa,GAAGV,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAAGN,EAAI0V,kBAK0wD1V,EAAII,KAL3vD,CAACH,EAAG,QAAQ,CAAE9Y,KAAK2G,UAAWmS,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,eAAe,CAACkB,IAAIha,KAAK2G,UAAUwS,MAAM,CAAC,UAAYnZ,KAAK2G,cAAc,GAAGkS,EAAII,KAAKH,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,KAAK,CAACD,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK+Z,QAAQnH,QAAS5S,KAAK+Z,QAAQ4C,SAAU7D,EAAG,OAAO,CAACD,EAAIW,GAAG,MAAMX,EAAIe,GAAG5Z,KAAK+Z,QAAQ4C,aAAa9D,EAAII,SAAUJ,EAAI4V,YAAwC,KAA1B5V,EAAI4V,WAAW/d,OAAeoI,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,GAAK,KAAK,GAAMN,EAAIyd,WAAiB,GAAJ,EAAO,YAAazd,EAAIyd,WAAiB,EAAJ,IAAQ,CAACxd,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,MAAM,CAACM,YAAY,mBAAmB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAG5Z,KAAKyuB,mBAAmB5V,EAAII,KAAOJ,EAAIzG,SAA4hByG,EAAIkF,UAAipB,CAACjF,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,KAAK,GAAMN,EAAIyd,WAAiB,GAAJ,EAAO,YAAazd,EAAIyd,WAAiB,EAAJ,IAAQ,CAACxd,EAAG,mBAAmB,CAACkB,IAAIha,KAAK0uB,QAAQzN,IAAI,WAAW7H,YAAY,uBAAuBD,MAAM,CAAC,UAAYnZ,KAAKuO,oBAAoB,SAAWvO,KAAKwO,mBAAmB,QAAUxO,KAAK0uB,SAAS3R,GAAG,CAAC,OAASlE,EAAI8V,6BAA6B,GAAG7V,EAAG,QAAQ,CAAC2R,MAAM,CAAE,SAAU5R,EAAIyd,YAAand,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACL,EAAG,eAAe,CAACkB,IAAIha,KAAK+Z,QAAQwc,eAAend,YAAY,eAAeD,MAAM,CAAC,SAAWnZ,KAAK+Z,QAAQwc,gBAAgBxZ,GAAG,CAAC,OAASlE,EAAIyc,yBAAyB,IAA7uC,CAACxc,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,KAAK,GAAMN,EAAIyd,WAAiB,GAAJ,EAAO,YAAazd,EAAIyd,WAAiB,EAAJ,IAAQ,CAACxd,EAAG,iBAAiB,CAACkG,YAAY,CAAC,eAAe,OAAO,WAAa,UAAU,gBAAgB,UAAU7F,MAAM,CAAC,WAAa,+CAA+C,SAAYN,EAAIxK,iBAAoF,4DAAjE,+DAA6H,WAAcwK,EAAIxK,iBAAoC,GAAjB,eAAoB,YAAcwK,EAAIxK,iBAAiB,QAAU,gFAAgF,IAAnqC,CAACyK,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,KAAK,GAAMN,EAAIyd,WAAiB,GAAJ,EAAO,YAAazd,EAAIyd,WAAiB,EAAJ,IAAQ,CAACxd,EAAG,eAAe,CAACM,YAAY,aAAa4F,YAAY,CAAC,eAAe,OAAO,WAAa,UAAU,gBAAgB,UAAU7F,MAAM,CAAC,kBAAmB,EAAK,WAAa,+CAA+C,WAAa,UAAU,QAAWN,EAAIxK,iBAA8F,yCAA3E,6EAAwH,IAAswCyK,EAAG,QAAQ,CAACM,YAAY,yBAAyBD,MAAM,CAAC,GAAMN,EAAIyd,WAAiB,GAAJ,EAAO,YAAazd,EAAIyd,WAAiB,EAAJ,IAAQ,CAACxd,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK+Z,QAAQnH,OAAO,OAAOkG,EAAG,MAAM,CAACM,YAAY,QAAQ,CAAEpZ,KAAK+Z,QAAQ4C,SAAU7D,EAAG,OAAO,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK+Z,QAAQ4C,UAAU,OAAO9D,EAAII,MAAOJ,EAAIzK,iBAAmBpO,KAAK+Z,QAAQmV,aAAcpW,EAAG,IAAI,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAOnZ,KAAK+Z,QAAQmV,aAAa,OAAS,WAAW,CAACpW,EAAG,WAAW,CAACM,YAAY,mBAAmBD,MAAM,CAAC,QAAU,QAAQ,KAAO,OAAO,CAACL,EAAG,IAAI,CAACM,YAAY,mDAAmDP,EAAIW,GAAG,0BAA0B,GAAGX,EAAII,OAAOH,EAAG,MAAM,CAACM,YAAY,yDAAyD,CAACN,EAAG,MAAM,CAACM,YAAY,4EAA4E,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,sBAAsBV,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIkB,QAAQhI,YAAY,SAAS8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIkB,QAAQhI,YAAY,OAAO8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIkB,QAAQ/H,UAAU,KAAK8G,EAAG,OAAO,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK+Z,QAAQkC,UAAU,aAAanD,EAAG,MAAM,CAACM,YAAY,mFAAmF,CAACN,EAAG,OAAO,CAACM,YAAY,qGAAqG,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,aAAaX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAG,gBAAgBX,EAAIiB,GAAIjB,EAAIsW,UAAU,SAASC,GAAS,OAAOtW,EAAG,eAAe,CAACkB,IAAIoV,EAAQA,QAAQjW,MAAM,CAAC,QAAUiW,EAAQA,QAAQ,IAAMvW,EAAIwW,QAAQ,MAAQxW,EAAIyW,UAAU,YAAczW,EAAI0W,kBAAkB,CAACzW,EAAG,OAAO,CAACM,YAAY,cAAc,CAACN,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiW,EAAQI,KAAK,IAAMJ,EAAQl1B,WAAW,KAAI,SAAS4e,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAMN,EAAIyd,WAAiB,GAAJ,EAAO,YAAazd,EAAIyd,WAAiB,EAAJ,IAAQ,CAACxd,EAAG,WAAW,CAAC6F,WAAW,CAAC,CAACzkB,KAAK,WAAW0kB,QAAQ,mCAAmC8Q,UAAU,CAAC,yBAAwB,KAAQtW,YAAY,oBAAoBD,MAAM,CAAC,KAAO,GAAG,QAAU,QAAQ4D,GAAG,CAAC,MAAQlE,EAAI8W,qBAAqB,CAAC7W,EAAG,IAAI,CAACM,YAAY,0DAA0DN,EAAG,OAAO,CAACM,YAAY,eAAe,CAACP,EAAIW,GAAG,UAAUV,EAAG,IAAI,CAACM,YAAY,2DAA2DN,EAAG,OAAO,CAACM,YAAY,eAAe,CAACP,EAAIW,GAAG,UAAUX,EAAIW,GAAG,+BAA+BV,EAAG,aAAa,CAACM,YAAY,yBAAyBD,MAAM,CAAC,SAAWN,EAAI+W,qBAAqB,GAAK,0BAA0B,CAAC9W,EAAG,SAAS,CAACM,YAAY,sBAAsB,CAC9lMpZ,KAAK4vB,sBACJ5vB,KAAK6vB,mBAAmBC,cAA+D,GAA/C9vB,KAAK6vB,mBAAmBC,aAAa7mB,QAC9EjJ,KAAK6vB,mBAAmBE,oBACvB/vB,KAAK6vB,mBAAmBG,eAAiE,GAAhDhwB,KAAK6vB,mBAAmBG,cAAc/mB,OACO4P,EAAII,KAA5F,CAACH,EAAG,IAAI,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,8CAAwDxZ,KAAK4vB,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,IAAIN,EAAII,MAAOjZ,KAAK4vB,sBAAwB5vB,KAAK6vB,mBAAmBC,cAAgB9vB,KAAK6vB,mBAAmBC,aAAa7mB,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACD,EAAIW,GAAG,kBAAkBV,EAAG,IAAI,CAACM,YAAY,aAAaP,EAAIiB,GAAI9Z,KAAK6vB,mBAAmBC,cAAc,SAASG,EAAM/V,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIE,EAAMd,YAAY,sBAAsB,CAACN,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBunB,EAAM9oB,WAAW,CAAC2R,EAAG,OAAO,CAACM,YAAY,sBAAsB2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyV,OAAO,IAAI,CAACzV,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIqX,oBAAoBD,IAAQ,UAAU,EAAE,IAAG,IAAIpX,EAAII,KAAMjZ,KAAK4vB,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,IAAIN,EAAII,MAAOjZ,KAAK4vB,sBAAwB5vB,KAAK6vB,mBAAmBE,oBAA4E,KAAtD/vB,KAAK6vB,mBAAmBE,mBAAmBrf,OAAe,CAACoI,EAAG,KAAK,CAACD,EAAIW,GAAG,yBAAyBV,EAAG,IAAI,CAACM,YAAY,uCAAuC,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,OAAP7C,CAAe7Y,KAAK6vB,mBAAmBE,yBAAyBlX,EAAII,KAAMjZ,KAAK4vB,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,SAASL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,SAASL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAU,IAAIN,EAAII,MAAOjZ,KAAK4vB,sBAAwB5vB,KAAK6vB,mBAAmBG,eAAiBhwB,KAAK6vB,mBAAmBG,cAAc/mB,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,mBAAmBX,EAAIiB,GAAI9Z,KAAK6vB,mBAAmBG,eAAe,SAASG,EAAajW,GAAO,OAAOpB,EAAG,MAAM,CAACkB,IAAIE,EAAMd,YAAY,4CAA4C,CAACN,EAAG,OAAO,CAACM,YAAY,oDAAoD,CAACP,EAAIW,GAAGX,EAAIe,GAAGuW,EAAavd,UAAUiG,EAAIiB,GAAIqW,EAAaC,SAAS,SAASC,EAAOnW,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIE,EAAMd,YAAY,0CAA0C,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGyW,EAAOC,MAAM,MAAMxX,EAAG,cAAc,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuB2nB,EAAOlpB,WAAW,CAAC2R,EAAG,OAAO,CAACM,YAAY,sBAAsB2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyV,OAAO,IAAI,CAACzV,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIqX,oBAAoBG,IAAS,UAAU,EAAE,KAAI,EAAE,KAAIxX,EAAII,MAAM,IAAI,IAAI,IAAI,KAAc,IAAI,IAAI,EAChoF,EACIC,GAAkB,GCPlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,YAAY,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAON,EAAI/K,YAAY,CAACgL,EAAG,SAAS,CAACM,YAAY,wBAAwBqR,MAAM,CAAE,SAAU5R,EAAI/K,WAAYqL,MAAM,CAAC,IAAMN,EAAI2d,WAAWzZ,GAAG,CAAC,KAAOlE,EAAI4d,mBACrS,EACIvd,GAAkB,GCQtB,IACAhf,KAAA,eACAqjB,MAAA,CACAmZ,SAAAhZ,QAEA3a,IAAAA,GACA,OACA+K,WAAA,EAEA,EACAqM,SAAA,KACA2J,EAAAA,EAAAA,IAAA,4BACA0S,SAAAA,GACA,oCAAAE,oBAAA,KAAArkB,YAAAM,gBAAA,KAAAL,UACA,GAEA+H,QAAA,CACAoc,cAAAA,GACA,KAAA3oB,WAAA,EACA,KAAAmS,MAAA,SACA,IC9BoN,MCQhN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QC0NhC,IACA/lB,KAAA,aACA6nB,OAAA,CAAAwR,IACAnU,WAAA,CACAoU,aAAA,GACAC,iBAAA,GACAkD,aAAA,GACAjD,aAAA,GACAC,eAAAA,IAEA5wB,IAAAA,GACA,OACAwrB,mBAAA,EACAqF,iBAAA,EACAhE,sBAAA,EACAiE,2BAAA,EACAC,kBAAA,EACAC,mBAAA,EACAhW,WAAA,EACAhE,QAAA,KACA8V,mBAAA,KACAmE,2BAAA,KACA7E,SAAA,CACA,CAAAC,QAAA,WAAAl1B,KAAA,WAAAs1B,KAAApU,EAAA,QACA,CAAAgU,QAAA,UAAAl1B,KAAA,UAAAs1B,KAAApU,EAAA,QACA,CAAAgU,QAAA,WAAAl1B,KAAA,WAAAs1B,KAAApU,EAAA,SAGA,EACA6Y,QAAAA,GACA,QAAA2C,WAAA,KAAA7c,QACA,OACAwQ,KAAA,CACA,CAAArwB,KAAA,cAAAC,KAAA,cAAAC,QAAA,KAAAm1B,iBAEA,CAAA2E,SAAA,WAAA/5B,KAAA,WAAAC,QAAA,KAAAk1B,WACA,CAAA4E,SAAA,iBAAA/5B,KAAA,iBAAAC,QAAA,KAAAm1B,iBACA,CAAA2E,SAAA,UAAA/5B,KAAA,UAAAC,QAAA,eACA,CAAA85B,SAAA,SAAA/5B,KAAA,SAAAC,QAAA,KAAAi1B,SAEA,CAAA6E,SAAA,gBAAA/5B,KAAA,gBAAAC,QAAA,KAAAk1B,WACA,CAAA4E,SAAA,sBAAA/5B,KAAA,sBAAAC,QAAA,KAAAm1B,kBAIA,EACApV,SAAA,KACA2J,EAAAA,EAAAA,IAAA,qBACA1J,EAAAA,EAAAA,IAAA,CACA5G,MAAApX,GAAAA,EAAAsY,MAAAlB,MACApB,SAAAhW,GAAAA,EAAAoY,KAAAtC,SACAhE,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAK,oBAAAnS,GAAAA,EAAAC,IAAAkS,oBACAC,mBAAApS,GAAAA,EAAAC,IAAAmS,mBACAJ,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACA3F,WAAAtM,GAAAA,EAAAC,IAAAqM,aAEA+K,KAAA,CACAjP,GAAAA,GACA,YAAAgP,MAAAC,IACA,EACAxW,GAAAA,CAAAwW,GACAA,GAAA,KAAA6a,OACA,GAEAgB,SAAAA,GACA,cAAAphB,oBAAA,KAAA6L,QAAAnH,OACA,EACA2c,eAAAA,GACA,YAAAqH,UACA,QAAA7c,QAAAnH,oBAAA,KAAA1E,iBAEA,KAAAA,cAEA,EACAmhB,OAAAA,GACA,SAAA30B,OAAAkB,SAAAK,YAAA,KAAA8d,QAAA7E,MACA,EACAohB,UAAAA,GACA,YAAAvc,QAAAuC,QACA,EACAsa,SAAAA,GACA,YAAApjB,MAAAE,SAAAC,MAAAkB,GAAAC,OACA,EACAnO,SAAAA,GACA,YAAAoT,SAAAnI,IAAA,KAAA4B,OAAAE,UAAA9B,EACA,EACA8c,OAAAA,GACA,YAAA4H,WACA,KAAAvc,QAAA8c,cADA,KAAA9c,QAAAqa,WAEA,EACAtW,eAAAA,GACA,YAAAwY,YAAA,KAAAvc,QAAA+D,eACA,EACA2Q,UAAAA,GACA,gBAAA1U,QAAA0U,YAAA,IAAAxlB,OAAA,KAAA8Q,QAAAua,WAAAxhC,EAAAkH,4BAAA,UAAA+f,QAAA0U,UACA,GAEAnP,MAAA,CAEAvF,OAAAA,CAAAwa,GACA,GAAAA,EAAA,CACA,MAAAC,EAAA,KAAAlK,OAAAmK,MAAAqC,EACA5hB,EAAAqf,EAAArf,MAEAA,IAAAsf,GAAAtf,GAAAA,IAAAsf,IAAA,KAAArW,QAAApe,KAAA,CAAA00B,MAAAjX,OAAAoX,OAAA,QAAAtK,OAAAmK,MAAA,CAAAqC,EAAA5hB,KACA,MACA,IAAAuf,EAAAjX,OAAAoX,OAAA,QAAAtK,OAAAmK,cACAA,EAAAqC,EACA,KAAA3Y,QAAAxZ,QAAA,CAAA8vB,MAAAA,GACA,CACA,EAEAX,gBAAAA,CAAAe,GACAA,GAAA,KAAAd,mBAAA,KAAA7V,OAAAhb,SAAA1F,EACA,GAEA6c,QAAA,CACAiU,KAAAA,IACA,KAAAlc,UAAA,KAAAmc,mBAAA,KAAAuF,mBAAA,KAAA/V,UAAA,KAAAG,OAAAhb,SAAA1F,GACA,KAAAu2B,mBAAA,CACA,EACA,YAAAlU,GAEA,KAAA3B,OAAAhb,SAAA5F,GAGA,KAAAw3B,uBACA,EACAhV,MAAAA,GAEA,KAAA5B,OAAAhb,SAAA7F,GAGA,KAAA03B,YAIA,EACAD,qBAAAA,GACA3yB,GAAAuE,kBAAA,KAAAC,WAAA0J,MAAA,EAAAtN,WACA,GAAAA,EAAA,CACA,KAAAgb,UAAAhb,GAAAgb,YAAA,EACA,KAAAhE,QAAAhX,EAEA,KAAAgb,WAAA,KAAAkX,kBAEA,MAAAnX,EAAA/a,GAAA+a,kBAAA/a,GAAAuZ,SAEA,GAAAwB,GAAA,KAAAC,UAAA,CACA,MAAAE,EAAAlb,GAAAkb,aACAvjB,OAAAsjB,KAAAC,EAAA,UACA,KAAAqQ,OACA,CACA,KAAAC,mBAAA,CAGA,IAEA,EACA4G,uBAAAA,GACA,IAAAC,EAAA,KAAA1G,QACAvsB,GAAA0E,sBAAA,KAAAF,WACA0J,MAAA,EAAAtN,WACAA,IAEA,KAAAgyB,aAEA,KAAAhb,QAAAhX,EAEA,KAAA2rB,SAAA0G,IAAA,KAAAtB,kBAAA,GACA,KAAAvF,mBAAA,EACA,KAAA2G,8BACA,IAEAG,OAAAxxB,IACA,KAAAA,GAAApB,UAAAI,QAEA,KAAAyrB,OACA,GAEA,EACAqB,kBAAAA,GACA,KAAAkE,4BAEA,KAAAA,2BAAA,EAEA1xB,GAAA6E,sBAAA,KAAAL,WAAA0J,MAAA,EAAAtN,WACAA,IACA,KAAA6sB,sBAAA,EACA,KAAAC,mBAAA9sB,EACA,IAEA,EACA4rB,wBAAAA,GACA,KAAAmF,kBAAA,CACA,EACAwB,oBAAAA,GACA,EAkCAP,UAAAA,GACA,KAAAhX,WAAA,EAEA,KAAA+V,kBAAA,EACA,KAAAC,mBAAA,EAEA,KAAAxF,mBAAA,EACA,KAAAqB,sBAAA,EAEA,KAAAiE,2BAAA,EAEA,KAAA9Z,QAAA,IACA,EACAkb,eAAAA,GACA,QAAAgB,cAAA,KAAA5jB,YAAA,CACA,MAAA6jB,EAAA,CACAjxB,MAAA,KAAAoN,aAAApN,MACA0B,UAAA,KAAAA,UACA+nB,QAAA,KAAAA,QACA4H,WAAA,KAAAA,WACAH,OAAA,cAEAnzB,QAAAuQ,KAAA,kCAAA/Y,KAAAS,UAAAi7B,KAAAjjB,GAAAE,UACA,KAAA8iB,cAAAG,WAAA,CAAAl8B,KAAA,kBAAAm8B,WAAAH,GACA,CACA,IC/ekN,MCQ9M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bxd,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAC2R,MAAM,CAAE,SAAU5R,EAAIke,QAAS/X,YAAY,CAAC,MAAQ,MAAM,OAAS,OAAO,OAAS,SAAS7F,MAAM,CAAC,GAAK,qBAAqB,CAACN,EAAIW,GAAG,sBAClN,EACIN,GAAkB,G,YCUtB,IACAhf,KAAA,iBACAqjB,MAAA,CACAwZ,OAAA,CACApjB,KAAA8J,QACAG,SAAA,IAGA7a,IAAAA,GACA,OACAi0B,GAAA,KACAjd,QAAA,KACAkd,MAAA,KAEA,EACA9c,SAAA,KACA2J,EAAAA,EAAAA,IAAA,qBACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA2J,eAAA9R,GAAAA,EAAAC,IAAA6R,kBAGA,aAAAoT,GACA,WAAAve,SAAAZ,GAAAyH,eACAstB,EAAAn0B,GAAAm0B,UACA,IAAAA,EAAA,UAAAlzB,MAAA,gBAEA,KAAAgzB,GAAA,IAAAG,GAAAA,EAAAC,KAAA,KAAA/kB,aAAApN,OAEA,IAAAoyB,EAAA,KAEA,MAAAC,EAAA,KAAAhN,OAAAmK,MAAA,KACA,GAAA6C,GAAA3hB,OAAA4hB,UAAA36B,SAAA06B,KAAAA,IAAA,KAAAjlB,aAAApN,MAAA,CACAoyB,EAAA,IAAAF,GAAAA,EAAAC,KAAAE,GAEA,IAAA7C,EAAAjX,OAAAoX,OAAA,QAAAtK,OAAAmK,cACAA,EAAA+C,EACA,KAAArZ,QAAAxZ,QAAA,CAAA8vB,MAAAA,GACA,CAEA,IAAA9I,EAAA,KAEAwL,GAAAA,EAAA9E,MAAAhiB,MAAA,WASA,GARAsb,EAAA5R,QAAA,IAAAod,GAAAA,EAAAM,QAAA,CACAC,MAAA77B,WACAm7B,GAAArL,EAAAqL,GACAE,UAAAA,IAGAvL,EAAA5R,QAAA4d,QAAA5a,GAAA,SAAA4O,EAAAiM,iBAEA,MAAAP,GAAAA,EAAAzlB,IAAA+Z,EAAAqL,GAAAplB,GAAA,CACA,IAAAimB,EAAAlM,EAAA5R,QAAA+d,wBAAAX,GAAAA,EAAAY,WAAApM,EAAAqL,GAAAK,IACAQ,EAAAG,eAAArM,EAAAqL,IACAa,EAAAG,eAAAX,GAEA1L,EAAAsL,MAAAtL,EAAA5R,QAAAke,YAAA,CAAAC,SAAAL,EAAAM,mBAAA,GACA,MACAxM,EAAAsL,MAAAtL,EAAA5R,QAAAke,YAAA,CAAAE,mBAAA,IAGAxM,EAAAsL,MAAAmB,MAAAlY,SAAAmY,eAAA,oBACA,GACA,EACAlU,aAAAA,GACA,KAAApK,SAAA,KAAAA,QAAAue,UACA,KAAArB,OAAA,KAAAA,MAAAqB,SACA,EACAje,QAAA,CACAud,eAAAA,CAAAW,GACA,MAAAC,EAAAD,EAAAtvB,OAGAiX,SAAAtN,MAAA,GAAA4lB,EAAA,MAAAA,MAAA,UAAAtqB,iBAGA,KAAAgQ,OAAA9N,OAAA/C,GAAAmrB,EACA,ICzF6M,MCQzM,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B9f,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,UACzF,EACIF,GAAkB,GCQtB,IACAhf,KAAA,kBACAqjB,MAAA,CACA3L,GAAA8L,QAEA3a,IAAAA,GACA,OACA01B,MAAA,IACAC,QAAA,GAEA,EACAve,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAxL,YAAAxS,GAAAA,EAAAC,IAAAuS,eAGA0S,OAAAA,GAEA,IAAAqX,EAAAn+B,KAAAC,MAAAC,OAAAC,aAAAC,QAAA9H,EAAAG,2BACA0lC,GAAA,OAAAA,IAAA,KAAAD,QAAAC,GAGA,MAAA5O,EAAA9rB,GAAA4D,kBACA+2B,EAAA,KAAAH,MAAA,IAAA1O,EAAA8O,aAAA9O,EAAA+O,kBACAF,GAAA,KAEA7C,WAAA,KAAAgD,mBAAA,KAGAhD,WAAA,KAAAgD,mBAAAH,EACA,EACAve,QAAA,CACA0e,kBAAAA,GACA,SAAAnqB,cAAA,KAAAA,aAAAoqB,cAAA,OAEA,MAAAjP,EAAAkP,GAAAA,GAAAC,MACAC,EACA,KAAAvqB,aAAAoqB,eAAAjmB,QACArB,GACAunB,GAAAA,GAAAG,WAAA1nB,EAAA2nB,YAAA,oBAAAC,KAAA,SAAAvP,KACArY,EAAA6nB,WAAAN,GAAAA,GAAAG,WAAA1nB,EAAA6nB,UAAA,oBAAAD,KAAA,SAAAvP,MACA,GAGA,UAAAyP,KAAAL,EAUA,KAAAT,QAAAc,EAAA1S,OAAA,KAAA2S,oBAAAD,GAGAzD,WAAA,KAAAgD,mBAAA,KAAAN,MACA,EACAgB,mBAAAA,CAAAD,GACA,MAAAE,EAAA,KAAAC,eACAC,EAAA,CACAF,EAAA,OAAAjP,MAAA,kCACAiP,EAAA,OACAjP,MAAA,cACAxF,SAAA,CACAwB,UAAA,wDAAA1P,KAAA0B,iBAAAC,OAAA8gB,EAAAK,mBAIAH,EACA,IACA,CACAnc,MAAA,CAAAuc,QAAA,YACA7U,SAAA,CAAAtpB,KAAA69B,GAAAO,YAAAx+B,KAAA,IAAAinB,OAAAgX,GAAAQ,cACAvP,MAAA,sDAEA,kBAIA,KAAAwP,SAAAC,MAAA,CAAAN,GAAA,CACAO,QAAA,yBACAC,YAAA,EACAC,cAAA,EACAC,cAAA,IACAR,QAAA,oBACAS,UAAA,kBAGA,KAAAC,iBAAAhB,EAAA1S,KACA,EACA0T,gBAAAA,CAAAC,GACA,KAAA/B,QAAA+B,IAAA,EACA,IACA//B,OAAAC,aAAAK,QAAAlI,EAAAG,yBAAAuH,KAAAS,UAAA,KAAAy9B,SACA,OAAA79B,GACA,MACA,CACA,IC7G4N,MCQxN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B6d,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACK,MAAM,CAAC,GAAKN,EAAIjH,GAAG,QAAU,wBAAwB,QAAU,WAAW,MAAQ,GAAG,eAAe,IAAI0J,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,cAAcwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,MAAM,CAACM,YAAY,2CAA2C,CAACN,EAAG,oBAAoB,CAACM,YAAY,mBAAmBD,MAAM,CAAC,KAAO,qBAAqB,KAAO,QAAQL,EAAG,OAAO,CAACM,YAAY,4BAA4B,CAACP,EAAIW,GAAG,kBAAkB,GAAG,EAAEqC,OAAM,MAAS,CAAC/C,EAAG,MAAM,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,sDAAsDV,EAAG,WAAW,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,GAAG,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAI6hB,mBAAmB,CAAC7hB,EAAIW,GAAG,YAAYV,EAAG,IAAI,CAACM,YAAY,+BAA+B,EACxxB,EACIF,GAAkB,GCetB,IACAhf,KAAA,kBACAqjB,MAAA,CACA3L,GAAA8L,QAEArD,QAAA,CACAqgB,gBAAAA,GACA,KAAAC,MAAA1a,MAAA,kBACA,ICzBuN,MCQnN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BvH,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAC,CAACA,EAAG,cAAc,CAACM,YAAY,uCAAuCD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,MAAM,CAACM,YAAY,sBAAsB,CAACP,EAAIW,GAAG,qBAAqBV,EAAG,MAAM,CAACA,EAAG,IAAI,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI0O,SAASC,QAAQC,oBAAoB5O,EAAI+hB,kBAAmB/hB,EAAIgiB,eAAgB/hB,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,IAAI,CAACM,YAAY,+BAA+BD,MAAM,CAAC,KAAON,EAAIgiB,eAAe,OAAS,WAAW,CAAChiB,EAAIW,GAAG,gBAAgBV,EAAG,OAAO,CAACM,YAAY,qCAAqC,CAACP,EAAIW,GAAG,yBAAyBX,EAAII,OAAOH,EAAG,QAAQ,CAACM,YAAY,aAAaD,MAAM,CAAC,GAAK,MAAM,CAAEN,EAAI4Q,cAAgB,EAAG3Q,EAAG,MAAM,CAACM,YAAY,sBAAsB,CAACP,EAAIW,GAAG,kBAAkBX,EAAII,KAAMJ,EAAIyQ,kBAAoBzQ,EAAI4Q,cAAgB,EAAG3Q,EAAG,yBAAyB,CAACK,MAAM,CAAC,QAAUN,EAAI0Q,kBAAkB1Q,EAAII,KAAMJ,EAAI4Q,cAAgB,EAAG3Q,EAAG,MAAM,CAACM,YAAY,4BAA4BP,EAAII,KAAMJ,EAAIiiB,MAAOhiB,EAAG,MAAM,CAACM,YAAY,uBAAuBC,MAAOR,EAAI4Q,cAAgB,EAAI,GAAK,oBAAqB,CAAC3Q,EAAG,OAAO,CAACM,YAAY,6CAA6C,CAACP,EAAIW,GAAG,aAAaX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIiiB,OAAO,OAAOjiB,EAAII,MAAM,GAAGH,EAAG,QAAQ,CAACM,YAAY,aAAaD,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,MAAM,CAACM,YAAY,sBAAsB,CAACP,EAAIW,GAAG,kBAAkBV,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,gBAAgBD,MAAM,CAAC,IAAM,GAAGN,EAAIU,wBAAwBV,EAAItU,gCAAgCvE,KAAKiQ,qBAAqB,IAAI,IAAI6I,EAAG,SAAS,CAACM,YAAY,UAAU,CAACN,EAAG,cAAc,CAACM,YAAY,iBAAiBD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACL,EAAG,IAAI,CAACK,MAAM,CAAC,KAAO,4BAA4B,OAAS,WAAW,CAACL,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAAuD,IAAM,kBAAkBvC,EAAIiB,GAAIjB,EAAIkiB,eAAe,SAASC,GAAa,OAAOliB,EAAG,QAAQ,CAACkB,IAAIghB,EAAYlU,KAAK1N,YAAY,sBAAsBD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAAE6hB,EAAY7T,cAAe,CAACrO,EAAG,cAAc,CAACM,YAAY,cAAcD,MAAM,CAAC,GAAK6hB,EAAY5T,aAAa,CAACvO,EAAIW,GAAG,IAAIX,EAAIe,GAAGohB,EAAY1T,WAAW,QAAQ,CAACxO,EAAG,IAAI,CAACM,YAAY,cAAcD,MAAM,CAAC,KAAO6hB,EAAY5T,WAAW,OAAS4T,EAAY3T,aAAe,SAAW,UAAU,CAACxO,EAAIW,GAAG,IAAIX,EAAIe,GAAGohB,EAAY1T,WAAW,SAAS,EAAE,IAAIzO,EAAIoiB,iCAAkCniB,EAAG,QAAQ,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACL,EAAG,IAAI,CAACM,YAAY,cAAcD,MAAM,CAAC,KAAON,EAAIoiB,iCAAiC,OAAS,WAAW,CAACpiB,EAAIW,GAAG,0BAA0BX,EAAII,KAAMJ,EAAIqiB,uBAAwBpiB,EAAG,QAAQ,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACL,EAAG,IAAI,CAACM,YAAY,cAAcD,MAAM,CAAC,KAAON,EAAIqiB,uBAAuB,OAAS,WAAW,CAACriB,EAAIW,GAAG,kBAAkBX,EAAII,KAAKH,EAAG,QAAQ,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACL,EAAG,MAAM,CAACM,YAAY,eAAe,CAACP,EAAIW,GAAG,kBAAkBV,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACN,EAAG,IAAI,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAO,8DAA8D,OAAS,WAAW,CAACL,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAAuC,IAAM,gBAAgBtC,EAAG,IAAI,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAO,kEAAkE,OAAS,WAAW,CAACL,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAAuC,IAAM,gBAAgBtC,EAAG,IAAI,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAO,+BAA+B,OAAS,WAAW,CAACL,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAA2C,IAAM,eAAetC,EAAG,IAAI,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAO,8CAA8C,OAAS,WAAW,CAACL,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAAsC,IAAM,eAAetC,EAAG,IAAI,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAO,wDAAwD,OAAS,WAAW,CAACL,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAAwC,IAAM,uBAAwBvC,EAAIjK,aAAeiK,EAAIjK,YAAYusB,oBAAqBriB,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACN,EAAG,QAAQ,CAACA,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI0O,SAASC,QAAQ4T,iDAAiDviB,EAAIjK,YAAYusB,yBAA0BtiB,EAAIoiB,iCAAkCniB,EAAG,OAAO,CAACD,EAAIW,GAAG,yCAAyCX,EAAIe,GAAGf,EAAI3K,gBAAgB,KAAK4K,EAAG,IAAI,CAACM,YAAY,wCAAwCD,MAAM,CAAC,KAAON,EAAIoiB,iCAAiC,OAAS,WAAW,CAACpiB,EAAIW,GAAG,uCAAuCX,EAAIW,GAAG,QAAQX,EAAII,WAAWJ,EAAII,MAAM,IAAI,IAAI,IAAI,EACn1J,EACIC,GAAkB,GC2GtB,IACAhf,KAAA,SACAklB,WAAA,CACA4K,uBAAAA,IAEAjnB,IAAAA,GACA,OACAwW,WAAA1d,aACA4tB,cAAA,EAEA,EACAtP,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAxL,YAAAxS,GAAAA,EAAAC,IAAAuS,YACArK,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA2J,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAW,YAAAzS,GAAAA,EAAAC,IAAAwS,YACAoB,WAAA7T,GAAAA,EAAAC,IAAAwR,QACAG,eAAA5R,GAAAA,EAAAC,IAAA2R,iBAEA4sB,UAAAA,GACA,YAAA/rB,aAAA+rB,UACA,EACAC,cAAAA,GACA,YAAAhsB,aAAAgsB,gBAAAt/B,GACA,EACA+tB,gBAAAA,GACA,YAAAza,aAAAya,gBACA,EACAC,cAAAA,GACA,YAAA1a,aAAA0a,cACA,EACAuR,KAAAA,GACA,YAAAjsB,aAAAisB,KACA,EACAC,aAAAA,GACA,YAAAnsB,aAAAmsB,aACA,EACAE,gCAAAA,GACA,YAAArsB,aAAAqsB,kCAAA1/B,GACA,EACA2/B,sBAAAA,GACA,YAAAtsB,aAAAssB,wBAAA3/B,GACA,GAEA+lB,OAAAA,GACA,MAAAyI,EAAA9rB,GAAA4D,kBACA1C,EAAAlB,GAAA4D,gBAAA,KAAAmM,gBACA,KAAAyb,cAAAtqB,EAAA4qB,CACA,EACA1P,QAAA,IC/J8M,MCQ1M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B3B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,YAAY,CAACN,EAAG,WAAW,CAACM,YAAY,aAAaD,MAAM,CAAC,WAAa,KAAK,YAAY,MAAM,CAACL,EAAG,iBAAiB,CAACM,YAAY,MAAMD,MAAM,CAAC,KAAON,EAAI9E,YAAY,CAAC+E,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAAyC,IAAM,cAActC,EAAG,OAAO,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,aAAaV,EAAG,OAAO,CAACM,YAAY,0BAA0B4F,YAAY,CAAC,cAAc,yBAAyB,CAACnG,EAAIW,GAAG,sCAAsCV,EAAG,eAAe,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAAGD,EAAIzG,SAAo1ByG,EAAII,KAA90B,CAACH,EAAG,aAAa,CAACM,YAAY,yBAAyBD,MAAM,CAAC,KAAO,gBAAgB,QAAU,oBAAoB,KAAO,OAAO,CAACL,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,4BAA4B,aAAa,eAAe,OAAS,WAAW,CAACN,EAAIW,GAAG,oBAAoBV,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,+BAA+B,aAAa,iBAAiB,CAACN,EAAIW,GAAG,eAAeV,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,qCAAqC,aAAa,eAAe,OAAS,WAAW,CAACN,EAAIW,GAAG,sBAAsB,GAAGV,EAAG,WAAW,CAACM,YAAY,2DAA2DD,MAAM,CAAC,KAAO,GAAG,KAAO,KAAK,QAAU,eAAe,KAAON,EAAIwiB,YAAY,OAAS,WAAW,CAACxiB,EAAIW,GAAG,0BAAqCX,EAAIzG,SAA6MyG,EAAII,KAAvMH,EAAG,OAAO,CAACA,EAAG,WAAW,CAACM,YAAY,oBAAoBD,MAAM,CAAC,KAAO,GAAG,KAAO,KAAK,QAAU,OAAO,wBAAwB,KAAK4D,GAAG,CAAC,MAAQlE,EAAIzd,QAAQ,CAAC0d,EAAG,OAAO,CAACD,EAAIW,GAAG,gBAAgB,GAAaX,EAAIzG,SAAU0G,EAAG,OAAO,CAACA,EAAG,aAAa,CAACM,YAAY,4CAA4CD,MAAM,CAAC,KAAO,gBAAgB,KAAO,OAAO,CAACL,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,4BAA4B,aAAa,eAAe,OAAS,WAAW,CAACN,EAAIW,GAAG,oBAAoBV,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,+BAA+B,aAAa,iBAAiB,CAACN,EAAIW,GAAG,eAAeV,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,qCAAqC,aAAa,eAAe,OAAS,WAAW,CAACN,EAAIW,GAAG,sBAAsB,GAAGV,EAAG,WAAW,CAACM,YAAY,mCAAmCD,MAAM,CAAC,KAAO,GAAG,KAAON,EAAIyiB,gBAAgB,OAAS,SAAS,KAAO,OAAO,CAACxiB,EAAG,OAAO,CAACD,EAAIW,GAAG,mBAAmB,GAAGX,EAAII,KAAMJ,EAAIzG,SAAU,CAAC0G,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,GAAG,KAAO,KAAK,GAAK,aAAamC,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,iBAAiBwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAItG,WAAW,IAAIsG,EAAIe,GAAGf,EAAIrG,aAAa,EAAEqJ,OAAM,IAAO,MAAK,EAAM,YAAY,CAAC/C,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAON,EAAI0iB,iBAAiB,CAAC1iB,EAAIW,GAAG,aAAaV,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,4BAA4B,CAACmQ,EAAIW,GAAG,kBAAkBV,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAON,EAAI2iB,aAAa,OAAS,WAAW,CAAC3iB,EAAIW,GAAG,gBAAgBV,EAAG,sBAAsBA,EAAG,kBAAkB,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAON,EAAI4iB,SAAS,CAAC5iB,EAAIW,GAAG,eAAe,IAAIX,EAAII,MAAM,IAAI,IAAI,GAAGH,EAAG,WAAW,CAACM,YAAY,cAAcD,MAAM,CAAC,GAAK,eAAe,WAAa,KAAK,KAAO,UAAU,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,eAAe,CAACoQ,EAAG,MAAM,CAACM,YAAY,cAAcD,MAAM,CAAC,IAAM,GAAGN,EAAIU,wBAAwBV,EAAItU,sBAAsBvE,KAAKiQ,aAAa,IAAM,qBAAqB6I,EAAG,MAAM,CAACM,YAAY,uCAAuC,CAACN,EAAG,kBAAkB,CAACK,MAAM,CAAC,OAAS,mBAAmB,GAAGL,EAAG,aAAa,CAACK,MAAM,CAAC,GAAK,eAAe,SAAS,KAAK,CAACL,EAAG,mBAAmBA,EAAG,eAAe,CAACM,YAAY,UAAU,CAACP,EAAIiB,GAAIjB,EAAIjK,YAAY8sB,eAAe,SAASC,GAAU,OAAO7iB,EAAG,MAAM,CAACkB,IAAI2hB,EAAS7U,MAAM,CAAE6U,EAASC,YAAa9iB,EAAG,aAAa,CAACM,YAAY,kBAAkBC,MAAOsiB,EAASE,WAAWF,EAASE,WAAW,GAAI1iB,MAAM,CAAC,GAAKwiB,EAASxU,cAAgB,IAAItO,EAAInQ,aAAaizB,EAASvU,aAAe,KAAK,KAAQuU,EAASxU,cAAsC,KAAtBwU,EAASvU,WAAkB,QAAUuU,EAASxU,eAAiBwU,EAAStU,aAAe,SAAW,SAAStK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIijB,gBAAgBH,EAAS,IAAI,CAAEA,EAASI,kBAAmBjjB,EAAG,OAAO,CAACM,YAAY,cAAcP,EAAII,KAAKH,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAG+hB,EAASrU,cAAeqU,EAASK,UAAYL,EAASK,SAAS/yB,OAAS,EAAG6P,EAAG,WAAW,CAACM,YAAY,eAAe4F,YAAY,CAAC,OAAS,QAAQ7F,MAAM,CAAC,cAAcwiB,EAASM,WAAWlf,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIqjB,kBAAkBP,EAASrU,UAAWtK,EAAO,IAAI,CAAEnE,EAAIsjB,mBAAmBR,EAASrU,YAA4D,MAA9CzO,EAAIsjB,mBAAmBR,EAASrU,WAAoBxO,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,mBAAmBX,EAAII,KAAOJ,EAAIsjB,mBAAmBR,EAASrU,YAA4D,MAA9CzO,EAAIsjB,mBAAmBR,EAASrU,WAAoGzO,EAAII,KAApFH,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,2BAAoCX,EAAII,MAAM,GAAGJ,EAAII,KAAOJ,EAAIsjB,mBAAmBR,EAASrU,YAA4D,MAA9CzO,EAAIsjB,mBAAmBR,EAASrU,WAAuyBzO,EAAII,KAAvxBH,EAAG,MAAM,CAACM,YAAY,mDAAmD,CAACN,EAAG,cAAc,CAACM,YAAY,UAAU,CAACN,EAAG,eAAe,CAACM,YAAY,mCAAmCD,MAAM,CAAC,WAAa,OAAON,EAAIiB,GAAI6hB,EAASK,UAAU,SAASI,GAAa,OAAOtjB,EAAG,MAAM,CAACkB,IAAIoiB,EAAYtV,MAAM,CAAEsV,EAAYR,YAAa9iB,EAAG,oBAAoB,CAACM,YAAY,SAASC,MAAO+iB,EAAYP,WAAWO,EAAYP,WAAW,GAAI1iB,MAAM,CAAC,GAAKijB,EAAYjV,cAAiB,IAAItO,EAAInQ,aAAa0zB,EAAYhV,aAAe,KAAK,KAAQgV,EAAYjV,cAAyC,KAAzBiV,EAAYhV,WAAkB,QAAUgV,EAAYjV,eAAiBiV,EAAY/U,aAAe,SAAW,UAAU,CAAE+U,EAAYR,YAAa9iB,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGwiB,EAAY9U,cAAczO,EAAII,OAAOJ,EAAII,MAAM,EAAE,IAAG,IAAI,IAAI,IAAa,EAAE,KAAI,GAAGH,EAAG,eAAe,CAACM,YAAY,oBAAoB,CAAIP,EAAIzG,UAAayG,EAAImS,sBAAwBnS,EAAIqS,qBAAwBrS,EAAIzK,gBAAqTyK,EAAII,KAAxSH,EAAG,aAAa,CAACM,YAAY,iBAAiBD,MAAM,CAAC,SAAW,KAAK,CAACL,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,OAAO,SAAW,KAAK,CAACL,EAAG,MAAM,CAACM,YAAY,OAAOD,MAAM,CAAC,IAAMiC,EAAQ,OAAyD,IAAM,gBAAgBtC,EAAG,IAAI,CAACD,EAAIW,GAAG,mBAAmB,GAAYV,EAAG,mBAAwPD,EAAII,KAAMJ,EAAIzG,UAAYyG,EAAImS,qBAAuBnS,EAAIqS,sBAAwBrS,EAAIzK,gBAAiB0K,EAAG,sBAAsB,CAACM,YAAY,iBAAiBqR,MAAM,CAAE,cAAe5R,EAAIwjB,yBAA0B,CAACvjB,EAAG,WAAW,CAACwjB,KAAK,kBAAkB,CAACxjB,EAAG,MAAM,CAACM,YAAY,OAAOD,MAAM,CAAC,IAAMiC,EAAQ,OAAgD,IAAM,gBAAiBvC,EAAI0jB,uBAAwBzjB,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIpJ,qBAAqB,OAAOoJ,EAAII,KAAKH,EAAG,IAAI,CAACkG,YAAY,CAAC,MAAQ,YAAY,CAACnG,EAAIW,GAAG,kBAAkBV,EAAG,kBAAkB,CAACK,MAAM,CAAC,GAAK,IAAIN,EAAInQ,cAAcmQ,EAAInJ,sBAAsB8sB,iBAAiB,CAAC3jB,EAAIW,GAAG,YAAYV,EAAG,kBAAkB,CAAC2R,MAAM,CAAEgS,WAAY5jB,EAAI0jB,wBAAyBpjB,MAAM,CAAC,GAAK,IAAIN,EAAInQ,cAAcmQ,EAAInJ,sBAAsB8sB,mBAAmB,CAAC3jB,EAAIW,GAAG,cAAeX,EAAI0jB,uBAAwBzjB,EAAG,OAAO,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAIpJ,wBAAwBoJ,EAAII,QAAQ,GAAGJ,EAAII,KAAiRJ,EAAII,MAAM,IAAI,IAAI,GAAKJ,EAAI6jB,SAA+H7jB,EAAII,KAAzHH,EAAG,SAAS,CAACK,MAAM,CAAC,KAAO,gBAAgB,MAAQN,EAAI8jB,OAAO,UAAY9jB,EAAI+jB,UAAU,OAAS/jB,EAAIgkB,gBAA2BhkB,EAAI6jB,WAAa7jB,EAAIxK,mBAAoBwK,EAAIzK,gBAAuIyK,EAAII,KAAzHH,EAAG,SAAS,CAACK,MAAM,CAAC,KAAO,WAAW,MAAQN,EAAIikB,MAAM,UAAYjkB,EAAIkkB,aAAa,OAASlkB,EAAImkB,mBAA8BnkB,EAAI6jB,UAAa7jB,EAAIxK,kBAAqBwK,EAAIzK,gBAAkJyK,EAAII,KAArIH,EAAG,SAAS,CAACK,MAAM,CAAC,KAAO,eAAe,MAAQN,EAAIikB,MAAM,UAAYjkB,EAAIokB,iBAAiB,OAASpkB,EAAIqkB,wBAAiC,EACv5Q,EACIhkB,GAAkB,GCFlBR,I,QAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAIzK,iBAAmByK,EAAIhK,aAAegK,EAAIhK,YAAY6W,aAAc5M,EAAG,WAAW,CAACA,EAAG,MAAM,CAACM,YAAY,2GAA2G,CAACP,EAAIW,GAAG,OAAOV,EAAG,MAAM,CAACM,YAAY,6GAA6G,CAACN,EAAG,KAAK,CAACM,YAAY,oBAAoB,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAIhK,YAAY+W,eAAe9M,EAAG,IAAI,CAACA,EAAG,IAAI,CAACK,MAAM,CAAC,KAAON,EAAIhK,YAAYgX,WAAW,OAAS,WAAW,CAAChN,EAAIW,GAAGX,EAAIe,GAAGf,EAAIhK,YAAYiX,iBAAiB,KAAKhN,EAAG,IAAI,CAACM,YAAY,qCAAqCP,EAAII,IACrsB,GACIC,GAAkB,GCatB,IACAhf,KAAA,kBACAigB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAvL,YAAAzS,GAAAA,EAAAC,IAAAwS,YACAT,gBAAAhS,GAAAA,EAAAC,IAAA+R,mBAGAkT,OAAAA,GACA,GCxBuN,MCQnN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B5I,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAIskB,WAAWC,GAAItkB,EAAG,aAAa,CAACM,YAAY,gBAAgBD,MAAM,CAAC,KAAON,EAAIskB,WAAWC,IAAIrgB,GAAG,CAAC,MAAQlE,EAAIwkB,UAAU,CAACvkB,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMN,EAAIskB,WAAWG,IAAI,IAAM,QAAQzkB,EAAII,IAC5P,EACIC,GAAkB,GCStB,IACAhf,KAAA,kBACAqjB,MAAA,GACApD,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAnK,WAAA7T,GAAAA,EAAAC,IAAA4T,WACA1L,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA6J,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,mBAOA8uB,UAAAA,GACA,IAAAI,EAAA,GACAC,EAAA,GACAC,EAAA,GAcA,OAZA,KAAArvB,iBAAA,KAAAC,mBACAkvB,EAAA,SAGA,KAAAh5B,SAAAzR,EAAA4F,kBACA8kC,EAAA,iBACAC,EAAA,cACA,KAAAl5B,SAAAzR,EAAA6F,sBACA6kC,EAAA,iBACAC,EAAA,YAGA,CACAH,IAAA,+BAAA/4B,WAAAg5B,qBAAA,KAAAttB,aACAmtB,GAAAI,EACAE,IAAAD,EAEA,GAEAnc,OAAAA,GAAA,EACAjH,QAAA,CACAgjB,OAAAA,GACA,KAAAnf,OAAA9N,OAAAjE,IAAA,EACA,ICtDuN,MCQnN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCfhC,IACEmV,OAAAA,GAEE,MAAMqT,EAAc30B,KAAKsqB,OAAOmK,MAAMC,EACtC,GAAIC,EAAa,CACf,MAAMgJ,EAAgB3oB,GAAYS,qBAAqBkf,GACnDgJ,GAAiBA,EAAc52B,UAAY,GAAG/G,KAAKke,OAAOhb,SAASzF,EAAoBkgC,EAC7F,KAAO,CAEL,MAAMC,EAAY59B,KAAKsqB,OAAOmK,MAAMqC,EACpC,GAAI8G,EAAW,CACb,MAAMC,EAAgB7oB,GAAYC,qBAAqB2oB,GACnDC,GAAiBA,EAAcjsB,GAAK,GAAG5R,KAAKke,OAAOhb,SAAS3F,EAAkBsgC,EACpF,CACF,CACF,GCjBF,IACE96B,IAAAA,GACE,MAAO,CACL+6B,MAAO,CACLC,QAAQ,EACRC,UAAU,EACVC,KAAI,EACJC,gBAAe,EACfC,UAAU,EACVC,SAAS,GAGf,EACA9c,OAAAA,GACE,IACE,IAAI+c,EAAa7jC,KAAKC,MAAMC,OAAOC,aAAaC,QAAQ9H,EAAUE,kBAC9DqrC,GAA6B,OAAfA,IAChBr+B,KAAK89B,MAAMC,OAASM,EAAWN,OAC/B/9B,KAAK89B,MAAME,SAAWK,EAAWL,SACjCh+B,KAAK89B,MAAMG,IAAMI,EAAWJ,IAC5Bj+B,KAAK89B,MAAMI,eAAiBG,EAAWH,eACvCl+B,KAAK89B,MAAMK,SAAWE,EAAWF,SACjCn+B,KAAK89B,MAAMM,QAAUC,EAAWD,QAGpC,CACA,MAAOvjC,GACLmF,KAAK89B,MAAMC,QAAS,EACpB/9B,KAAK89B,MAAME,UAAW,EACtBh+B,KAAK89B,MAAMG,KAAM,EACjBj+B,KAAK89B,MAAMI,gBAAiB,EAC5Bl+B,KAAK89B,MAAMK,UAAW,EACtBn+B,KAAK89B,MAAMM,SAAU,CACvB,CACF,EACA/jB,QAAS,CACPikB,eAAAA,CAAgBC,GACdv+B,KAAK89B,MAAMS,IAAQ,EACnB,IACE7jC,OAAOC,aAAaK,QAAQlI,EAAUE,gBAAiBwH,KAAKS,UAAU+E,KAAK89B,OAC7E,CACA,MAAOjjC,GACL,MACF,CACF,ICiKJ,IACAX,KAAA,SACAklB,WAAA,CACAof,gBAAA,GACAC,gBAAAA,IAGA1c,OAAA,CAAA2c,GAAAC,IACA57B,IAAAA,GACA,OACA67B,YAAA,KACAC,eAAA,KACAC,oBAAA,KACAC,mBAAA,KACAC,qBAAA,KACAC,oBAAA,KACAC,oBAAA,KACAC,mBAAA,KACAC,sBAAA,QACAC,kBAAA,KACAC,iBAAA,KACAnD,mBAAA,GACAU,cAAA,EACAG,iBAAA,EACAE,qBAAA,EACAjB,UAAA,EACAa,MAAA,GACAH,OAAA,CACA,CACAna,OAAA,8BACA+c,OAAA,GACAnlC,QAAA,iHACAqK,OAAA,CACA+6B,UAAA,SACAC,iBAAA,EACAC,WAAA,KAIA3C,aAAA,CACA4C,OAAAA,IAAA,KAAArB,gBAAA,OACAsB,SAAAA,IAAA,KAAAtB,gBAAA,QAEArB,iBAAA,CACA0C,OAAAA,IAAA,KAAArB,gBAAA,WACAsB,SAAAA,IAAA,KAAAtB,gBAAA,YAEA1B,UAAA,CACA+C,OAAAA,IAAA,KAAArB,gBAAA,YACAsB,SAAAA,IAAA,KAAAtB,gBAAA,aAEAuB,UAAA,EAEA,EACA1lB,SAAA,CACAZ,UAAAA,GACA,MAAA1d,YACA,EACAo3B,SAAAA,GACA,OAAAv4B,OAAAkB,SAAAK,OAAA,KAAAquB,OAAA4I,QACA,EACA4M,YAAAA,GACA,MAAAjkC,qCACA,EACA0/B,cAAAA,GACA,+CACA,EACAD,eAAAA,GACA,mDACA,EACAD,WAAAA,GACA,sDACA,EACAtnB,SAAAA,GACA,mCACA,EACA2oB,QAAAA,GACA,kBAAA3U,QAAAgY,YAAA,YAAAhY,QAAAgY,YAAA,YAAAhY,QAAAgY,UACA,EACAvE,YAAAA,GACA,yCACA,EACAC,MAAAA,GACA,MAAA5/B,0CACA,MACAioB,EAAAA,EAAAA,IAAA,2CACA1J,EAAAA,EAAAA,IAAA,CACAnK,WAAA7T,GAAAA,EAAAC,IAAAwR,QACAtJ,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA6J,UAAAnW,GAAAA,EAAAoY,KAAAzZ,KAAAwX,UACAC,SAAApW,GAAAA,EAAAoY,KAAAzZ,KAAAyX,SACApE,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAO,YAAAxS,GAAAA,EAAAC,IAAAuS,YACAa,oBAAArT,GAAAA,EAAAC,IAAAoT,oBACAC,sBAAAtT,GAAAA,EAAAC,IAAAqT,sBACApB,qBAAAlS,GAAAA,EAAAC,IAAAiS,qBACAS,qBAAA3S,GAAAA,EAAAC,IAAA0S,qBACAC,eAAA5S,GAAAA,EAAAC,IAAA2S,eACAC,gBAAA7S,GAAAA,EAAAC,IAAA4S,gBACAC,kBAAA9S,GAAAA,EAAAC,IAAA6S,kBACAC,sBAAA/S,GAAAA,EAAAC,IAAA8S,sBACAC,cAAAhT,GAAAA,EAAAC,IAAA+S,gBAEAmtB,sBAAAA,GACA,YAAA9sB,oBAAA,CACA,EACA4sB,sBAAAA,GACA,YAAA/R,OAAA0V,KAAAlf,SAAA,cACA,EACAoK,mBAAAA,GAEA,YAAAxb,uBAAA,KAAAA,sBAAAnL,SAAA,KAAAmL,sBAAAnL,SAAA,KAAAA,OACA,EACAymB,mBAAAA,GACA,YAAAtb,uBAAA,KAAAA,sBAAA8sB,KACA,GAEAld,MAAA,CACA1Q,YAAA,CACAqxB,WAAA,EACAC,OAAAA,CAAAC,GACAA,GAAAA,EAAAzE,eACA,KAAA0E,4BAAAD,EAAAzE,cAEA,IAIApa,OAAAA,GACA,KAAAob,WACA,KAAAG,eACA,KAAAA,cAAA,EACA,KAAAiB,OAAA,KAAAA,MAAAE,UACA,KAAAve,WAAA,KACA,KAAA4gB,OAAA,iBAAAzH,OAAA,KAIA,KAAAoE,kBACA,KAAAA,iBAAA,EACA,KAAAc,OAAA,KAAAA,MAAAG,MACA,KAAAqC,oBACA,KAAAxD,OAAA,KAAAA,MAAA7zB,OAAA,GACA,KAAAwW,WAAA,KACA,KAAA4gB,OAAA,YAAAzH,OAAA,MAKA,KAAAsE,sBACA,KAAAA,qBAAA,EACA,KAAAY,OAAA,KAAAA,MAAAM,UACA,KAAAkC,oBACA,KAAAxD,OAAA,KAAAA,MAAA7zB,OAAA,GACA,KAAAwW,WAAA,KACA,KAAA4gB,OAAA,gBAAAzH,OAAA,MAMA,EACAve,QAAA,CACAjf,KAAAA,GACAA,EAAA,KAAA63B,WAAA,EACA,EACAsN,oBAAAA,GACArlC,IACAsB,EAAA,KAAAy2B,UACA,EACAmN,2BAAAA,CAAAI,GACA,MAAAC,EAAA,GACAD,GAAAE,SAAA/E,IACA8E,EAAA9E,EAAArU,WAAA,QAEA,KAAA6U,mBAAAsE,CACA,EACAvE,iBAAAA,CAAAyE,EAAAnf,GACAA,EAAAtE,iBACAsE,EAAAvE,kBACA,KAAA4iB,UAAA,EACA,WAAA1D,mBAAAwE,GACA,KAAAC,KAAA,KAAAzE,mBAAAwE,GAAA,GAEA,KAAAxE,mBAAAwE,IAAA,KAAAxE,mBAAAwE,GAIA,QAAA3mB,KAAA,KAAAmiB,mBACAniB,IAAA2mB,IAAA,SAAAxE,mBAAAniB,KACA,KAAAmiB,mBAAAniB,IAAA,EAGA,EACA8hB,eAAAA,CAAAH,GACA,GAAAA,EAAAK,UAAA,GAAAL,EAAAK,SAAA/yB,OAOAuY,MAAAvE,sBAPA,CACA,MAAA4jB,GAAA,EACA,QAAA7mB,KAAA,KAAAmiB,mBACA,KAAAA,mBAAAniB,GAAA6mB,CAEA,CAIA,EACAC,gBAAAA,GACA,YAAAv8B,UAAAzR,EAAA0G,mBAAA,KAAA+K,SAAAzR,EAAAsG,iBACA,EACAknC,iBAAAA,GACA,KAAAxD,MAAA,GACA,KAAAb,UAAA,EACA,KAAArtB,YAAA8sB,eAAAgF,SAAA/E,IACAA,EAAAoF,WAAApF,EAAAC,cACAD,EAAAM,UAAA,KAAAA,UACA,KAAAa,MAAA/8B,KAAA,CACAyiB,OAAA,sBAAAyZ,cACAsD,OAAA,GACAnlC,QAAAuhC,EAAAoF,UACAt8B,OAAA,CACA+6B,UAAA,SACAC,iBAAA,EACAC,WAAA,KAGA,KAAAzD,YACA,GAEA,ICpb8M,MCS1M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCgDhC,IACA/hC,KAAA,eACA6nB,OAAA,CAAAC,IACAzE,MAAA,CACA8M,WAAA,CACA1W,KAAA8J,QACAG,SAAA,GAEAuN,WAAA,CACAxX,KAAA8J,QACAG,SAAA,GAEAwM,oBAAA,CACAzW,KAAA8J,QACAG,SAAA,IAGAwB,WAAA,CACA4hB,OAAA,GACAC,OAAA,GACAC,aAAA,GACAC,WAAA,GACAC,gBAAA,GACAC,qBAAA,GACAC,eAAAA,IAEAv+B,IAAAA,GACA,OACA+nB,WAAA,EACAyW,QAAA,KACAC,QAAA,EAEA,EACArnB,SAAA,CAEAyQ,oBAAAA,GACA,YAAA1a,mBAAA,sBACA,EACAwa,UAAAA,GACA,YAAAtc,kBAAA,KAAAC,gBACA,MACAyV,EAAAA,EAAAA,IAAA,qFACA1J,EAAAA,EAAAA,IAAA,CACAnK,WAAA7T,GAAAA,EAAAC,IAAAwR,QACAC,UAAA1R,GAAAA,EAAAC,IAAAyR,UACAvJ,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA2J,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAE,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAC,qBAAAlS,GAAAA,EAAAC,IAAAiS,qBACA5F,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAiG,gBAAAvS,GAAAA,EAAAC,IAAAsS,gBACAe,sBAAAtT,GAAAA,EAAAC,IAAAqT,sBACAI,SAAA1T,GAAAA,EAAAC,IAAAyT,WAOA2xB,eAAAA,GACA,YAAAnX,OAAA0V,KAAArZ,WAAA,SAAAje,cAAA5V,EAAAmF,mBACA,EACAgzB,uBAAAA,GACA,OACA,KAAAvb,uBAAA,KAAAA,sBAAA8sB,OAAA,KAAAlS,OAAA0V,OAAA,SAAAt3B,cAAA,KAAAgH,sBAAA8sB,gBAGA,EACAtR,mBAAAA,GACA,YAAAxb,uBAAA,KAAAA,sBAAAnL,SAAA,KAAAmL,sBAAAnL,SAAA,KAAAA,OACA,EACAymB,mBAAAA,GACA,YAAAtb,uBAAA,KAAAA,sBAAA8sB,OAAA,KAAA9sB,sBAAA9E,uBACA,EACA82B,UAAAA,GACA,YAAApX,OAAA0V,OAAA,SAAAt3B,cAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,eAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,iBACA,EACAiiB,qBAAAA,GACA,MAAAgX,EAAA,CACA7uC,EAAAmE,eACAnE,EAAA8E,wBACA9E,EAAA+E,0BACA/E,EAAAgF,iCACA,GAAAhF,EAAAmF,oBAAAnF,EAAAoF,4BACA,GAAApF,EAAAmF,oBAAAnF,EAAAqF,iCACA,GAAArF,EAAAmF,oBAAAnF,EAAAsF,kCAEA,OAAAupC,EAAAvpB,KAAA1G,GAAA,SAAAhJ,cAAAgJ,MAAAoP,SAAA,KAAAwJ,OAAA0V,KAWA,EACA4B,gBAAAA,GACA,iBAAAr9B,UAAA,KAAA6J,kBAAA,KAAAC,gBACA,EACAwzB,eAAAA,GAGA,GAFAzmB,EAAA,OACAA,EAAA,OACA,KAAAqmB,gBAWA,OADAz+B,QAAAwG,IAAA,4BACA1W,EAAAmH,4BAVA,YAAAsK,SACA,KAAAzR,EAAA+G,mBACA,OAAA/G,EAAAuH,4BACA,KAAAvH,EAAAgH,mBACA,OAAAhH,EAAAwH,4BACA,QACA,OAAAxH,EAAAmH,4BAMA,EACA+G,eAAAA,GACA,OAAA/C,GAAA+C,iBACA,GAEAse,MAAA,CACAgL,MAAAA,CAAA8S,GACA1iC,QAAAA,OAAAonC,gBACApnC,OAAAonC,cAAAnmC,KAAA,GAAAjB,OAAAkB,SAAAmmC,OAAA3E,EAAAlK,WAQA,GAGAe,QAAAA,GACA,OAAA1J,KAAA,KAAAsX,gBACA,EACA,aAAAvgB,GACA,QAAAlP,WACAjQ,GAAA+B,YAGA,KAAAqd,KAAAxhB,KAAA,CAAAyhB,MAAA,WAAAwgB,MAAA,KAAA3vB,YAAApN,QAEA,KAAAgxB,cAAA,CACA,MAAAgM,EAAA,CAAAh9B,MAAA,KAAAoN,YAAApN,OACAjC,QAAAuQ,KAAA,2BAAA/Y,KAAAS,UAAAgnC,KAAAhvB,GAAAE,UACA,KAAA8iB,cAAAG,WAAA,CAAAl8B,KAAA,WAAAm8B,WAAA4L,GACA,OAGA,KAAAC,yBAEA,UACA,KAAAC,YAAA,wDAAAtrB,cACA,KAAAurB,2BACA,OAAAv+B,GACAb,QAAAJ,MAAA,iDAAAiB,EACA,CAEA,SAAA49B,gBACA,UACA,KAAAU,YACA,oIAEA,OAAAt+B,GACAb,QAAAJ,MAAA,iDAAAiB,EACA,OAGA,KAAAw+B,uCACA,KAAAT,mBACA,KAAAL,QAAA,IAAAnW,GAAA,KAAA/Y,aACA,KAAAkvB,QAAA9V,cAEA,KAAA6W,eACA,KAAAxX,WAAA,EACA,KAAA1Y,UAEA,KAAA8L,OAAAhb,SAAAtF,EAAA,KAAA2G,QAQA,EACA8V,QAAA,CACA0Q,iBAAAA,GACA,YAAA3c,gBAAAm0B,WAAAzmC,OAAA,KAAAuS,iBAAAk0B,WACA,EACA,0CAAAF,SAOAlgC,GAAA0C,6BAAA,KAAAN,SAAA8L,MAAA,EAAAtN,WACAA,GAEA,KAAAmb,OAAA9N,OAAA9C,GAAAvK,EAEA,GAEA,EAEA,kBAAAu/B,SAEAngC,GAAAmC,YAAA,KAAAC,SAAA8L,MAAA,EAAAtN,WACAA,GACA,KAAAmb,OAAA9N,OAAA7C,GAAAxK,EACA,GAEA,EAEA,+BAAAq/B,GACA,MAAAI,EAAA,KAAA95B,WAAA+5B,cAEAC,EAAA3rB,KAIA,SAAApI,gBAAA,CACA,MAAA5L,KAAA4/B,SAAAD,EAAAl+B,IAAA,iBAEAo+B,EAAAD,GAAAE,OAAAh1B,SAAA,EACA,KAAAqQ,OAAA9N,OAAAlD,GAAA01B,EACA,CAEA,MAAAE,EAAA3rB,MAIApU,KAAAggC,SAAAL,EAAAl+B,IAAA,eAAAg+B,WAAA,CACAQ,GAAAF,OAAAhiC,EAAA,KAAA6N,gBACAd,QAAAi1B,EAAA,sBAEAG,EAAAF,EAAAG,MAAA9oC,QACA,KAAA8jB,OAAA9N,OAAAjD,GAAA81B,GAGA,MAAAlgC,KAAAogC,SAAAT,EAAAl+B,IAAA,eAAAg+B,IAAA,CACAQ,GAAAF,OAAAhiC,EAAA,KAAA6N,gBACAd,QAAAi1B,EAAA,sBAEAM,EAAAD,EAAAD,MAAA9oC,QACA,KAAA8jB,OAAA9N,OAAAhD,GAAAg2B,EACA,EACA,4BAAAlB,GAEA,KAAA3gB,KAAAxhB,KAAA,CAAAwE,QAAA,KAAAA,UAGA2b,SAAAtN,MAAA,KAAA1E,eAGA,KAAAm1B,sBAEAtN,YAAA,KACA,KAAA7X,OAAA9N,OAAAjE,IAAA,KACA,IAIA,EACAk3B,mBAAAA,GACA,MAAAnW,EAAAhN,SAAAgN,KACAjxB,EAAAvB,OAAAkB,SAAAK,OAEAqnC,EAAArnC,EAAAH,OAAA,6BAAAyI,uBAAA,KAAA0L,cACA,IAAAszB,EAAArjB,SAAAsjB,cAAA,eAAAF,OACAC,IACAA,EAAArjB,SAAAsG,cAAA,QACA0G,EAAAC,YAAAoW,GACAA,EAAAE,IAAA,aACAF,EAAA5vB,KAAA,WACA4vB,EAAA3X,OAAA,KACAmK,YAAA,KAAA2N,EAAAA,GAAAA,MAAA,EAEAH,EAAA5nC,KAAA2nC,GAGA,IAAAK,EAAAzjB,SAAAsjB,cAAA,qBACAG,IACAA,EAAAzjB,SAAAsG,cAAA,QACAmd,EAAAF,IAAA,OACAvW,EAAAC,YAAAwW,IAGAA,EAAAhoC,KAAAM,EAAAH,OAAA,6BAAAyI,yBAAA,KAAA0L,aACA,EACA2zB,cAAAA,GACA,KAAA1lB,OAAAhb,SAAAvF,EACA,EACAktB,cAAAA,GACA,KAAA3M,OAAAhb,SAAA9F,EACA,EACA,4BAAAymC,GACA,MAAAC,EAAA5V,WACA,KAAA/P,QAAAxZ,QAAAm/B,EACA,ICtX8M,MCQ1M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BprB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,cACtE,EACII,GAAkB,GCItB,IACAhf,KAAA,iBACAklB,WAAA,GACArc,IAAAA,GACA,QACA,EACAoX,SAAA,GACAmF,MAAA,GACAgC,OAAAA,GAAA,EACAjH,QAAA,ICfgN,MCO5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCThC1X,eAAekhC,KACb,MAAMC,EAAe5V,WACf6V,GAAOp/B,QAAQm/B,EACvB,CAEOnhC,eAAeu/B,GAAuB9E,GAC3C,MAAM10B,EAAa00B,EAAG34B,QAAQiE,WAE9B,GAAKA,GAAoC,KAAtBA,EAAWgI,OAK9B,IACE,MAAM,KAAE3N,SAAeZ,GAAgBsG,UAAUC,GAEjD,IAAK3F,EAAM,OAIX,MAAMihC,EAAc,CAClBt7B,aACA6H,WAAYxN,EAAKwN,WACjBhM,QAASxB,EAAKwB,QACd2J,eAAgBnL,EAAKkhC,cACrBj2B,eAAgBjL,EAAKiL,eACrBC,aAAclL,EAAKkL,aACnBG,gBAAiBrL,EAAKqL,gBACtBC,iBAAkBtL,EAAKsL,iBACvBC,qBAAsBvL,EAAKuL,qBAC3BC,oBAAqBxL,EAAKwL,oBAC1BC,mBAAoBzL,EAAKyL,mBACzBlS,iBAAkByG,EAAKzG,iBACvBmS,YAAa1L,EAAK0L,YAClBE,gBAAiB5L,EAAK4L,gBACtBG,kBAAmBtU,KAAKC,MAAMsI,EAAK+L,mBACnCC,qBAAsBhM,EAAKgM,qBAC3BC,eAAgBjM,EAAKiM,eACrBC,gBAAiBlM,EAAKkM,gBACtBC,kBAAmBnM,EAAKmM,kBACxBC,sBAAuBpM,EAAKoM,sBAC5BC,cAAerM,EAAKqM,cACpBC,eAAgBtM,EAAKsM,eACrBzT,SAAUmH,EAAKnH,SACf+T,aAAe5M,EAAK4M,aACpBC,cAAgB7M,EAAK6M,cACrBC,UAAY9M,EAAK8M,UACjBP,aAAevM,EAAKuM,cAGtBnT,GAAMiU,OAAOhE,GAAkB43B,EACjC,CAAE,MAAOngC,GACP,MAAMpB,EAAWoB,GAAKpB,SAEtB,GADAO,QAAQJ,MAAM,wBAAyBiB,GACnCpB,GAAgC,MAApBA,EAASI,OAGvB,kBADMghC,IAKV,YApDQA,IAqDV,CCvEA,IAAInrB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACK,MAAM,CAAC,KAAO,OAAO,aAAc,EAAM,UAAW,MAAS,IACxK,EACID,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,WAAW,CAACN,EAAG,QAAQ,CAACM,YAAY,gDAAgDC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIU,wBAAwBV,EAAItU,6BAA6BvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,eAAeN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACN,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,eAAeX,EAAIW,GAAG,4BAA4BX,EAAIe,GAAGf,EAAIvJ,qBAAqBwJ,EAAG,MAAM,CAAED,EAAIY,OAAQX,EAAG,MAAM,CAACA,EAAG,SAAS,CAACK,MAAM,CAAC,gBAAgB,YAAY,UAAY,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,OAAS,IAAImC,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,QAAQwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,OAAO,CAACM,YAAY,8BAA8B,CAACN,EAAG,IAAI,CAACM,YAAY,+BAA+BP,EAAIW,GAAG,OAAOX,EAAIe,GAAGf,EAAIvJ,iBAAiB,EAAEuM,OAAM,IAAO,MAAK,EAAM,aAAa,CAAGhD,EAAI/K,WAAe+K,EAAI+J,UAAmC,GAAvB/J,EAAI+J,SAAS3Z,OAAijB4P,EAAII,KAAviBH,EAAG,MAAM,CAACA,EAAG,UAAU,CAACK,MAAM,CAAC,KAAON,EAAIxK,iBAAiB,QAAU,aAAa,CAACyK,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,wCAAwCX,EAAIe,GAAGf,EAAI3K,gBAAgB,OAAO,GAAG4K,EAAG,UAAU,CAACK,MAAM,CAAC,MAAQN,EAAIxK,iBAAiB,QAAU,aAAa,CAACyK,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,oDAAoD,IAAI,IAAcX,EAAI/K,WAAa+K,EAAIY,SAAWZ,EAAIxK,kBAAoBwK,EAAI+J,UAAY/J,EAAI+J,SAAS3Z,OAAS,EAAG6P,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,qBAAqBV,EAAG,UAAU,CAACK,MAAM,CAAC,MAAQN,EAAI/K,WAAa+K,EAAIY,SAAWZ,EAAIxK,kBAAoBwK,EAAIqrB,iBAAiB,QAAU,aAAa,CAACprB,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,gEAAgE,IAAKX,EAAI/K,WAAa+K,EAAI+J,UAAY/J,EAAI+J,SAAS3Z,OAAS,IAAM4P,EAAIqrB,iBAAkBprB,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAKN,EAAIiB,GAAIjB,EAAI+J,UAAU,SAAS7I,GAAS,OAAOjB,EAAG,QAAQ,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,iCAAiCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,KAAK,oBAAqB,EAAM,eAAgB,EAAK,iBAAkB,EAAK,gBAAiB,EAAK,uBAAwB,EAAK,eAAgB,EAAK,SAAWpB,EAAIc,SAAS,eAAgB,MAAS,EAAE,IAAG,GAAGd,EAAII,MAAM,GAAGJ,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAIY,SAAWZ,EAAIxK,kBAAoBwK,EAAI+J,UAAY/J,EAAI+J,SAAS3Z,OAAS,EAAG6P,EAAG,MAAM,CAAED,EAAIqrB,iBAAkBprB,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,mBAAmBX,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAI+J,UAAY/J,EAAI+J,SAAS3Z,OAAS,GAAK4P,EAAIqrB,iBAAkBprB,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAKN,EAAIiB,GAAIjB,EAAI+J,UAAU,SAAS7I,GAAS,OAAOjB,EAAG,QAAQ,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,iCAAiCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAO,SAAS,oBAAqB,EAAM,eAAgB,EAAK,iBAAkB,EAAK,gBAAiB,EAAK,uBAAwB,EAAK,eAAgB,EAAM,SAAWZ,EAAIc,SAAS,eAAgB,MAAS,EAAE,IAAG,GAAGd,EAAII,MAAM,GAAGJ,EAAII,QAAQ,IAAI,GAAGJ,EAAII,KAAMJ,EAAI/K,UAAWgL,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAKN,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,iCAAiCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,YAAY,EAAE,IAAG,GAAGN,EAAII,MAAM,IAAI,EAChyH,EACIC,GAAkB,GC6GtB,IACAhf,KAAA,gBACA6nB,OAAA,CAAAC,IACAzE,MAAA,CAEAtD,KAAA,CACAtG,KAAA+J,OACAE,QAAA,OACAC,UAAA,SAAA/H,GAEA,cAAAA,IAAA,aAAAX,QAAAW,EACA,GAEA3Q,YAAA,CACAwO,KAAA8J,QACAG,SAAA,GAEAjE,SAAA8D,SAEA2B,WAAA,CACAsD,YAAAA,IAGA3f,IAAAA,GACA,OACA+K,WAAA,EAEAo2B,kBAAA,EACAvhB,eAAA,EACAC,SAAA,GACApd,KAAA,EACAqd,iBAAA,EAEAE,kBAAA,EACAohB,8BAAA,EACAC,6BAAA,EACAphB,wBAAA,KAMAzJ,WAAA1d,aAEA,EACAse,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAlM,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAE,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,mBAGAiO,QAAAA,GACA,qBAAArC,IACA,EACAqI,QAAAA,GACA,qBAAArI,IACA,EACAR,MAAAA,GACA,mBAAAQ,IACA,EACAqJ,2BAAAA,GACA,OAAA1mB,SAAAf,QACA,EACA0nB,6BAAAA,GACA,OAAA3mB,SAAAf,QACA,EASA+nB,kBAAAA,GACA,YAAApU,kBAAA,kBACA,MACAsU,EAAAA,EAAAA,IAAA,uBAEAxE,MAAA,CACAhM,gBAAAA,CAAAD,GACAA,IACA,KAAAoG,QAAA,KAAAsK,uBACA,KAAAzB,UAAA,KAAA0B,sBACA,KAAA1H,UAAA,KAAA2H,sBAEA,GAEA3C,OAAAA,GACA,KAAA7H,SACA,KAAAsK,uBAGA,KAAAf,wBAAAkB,aAAA,KACA,KAAA5Q,kBACA,KAAAyQ,sBACA,GACA,KAAAT,6BAoBA,EACAa,aAAAA,GACAC,cAAA,KAAApB,yBACAoB,cAAA,KAAAnB,uBACA,EACA5I,QAAA,CACA0J,oBAAAA,GAEA5hB,GAAA+C,sBAAA,KAAAX,QAAA,KAAAY,aAAA,GAAAkL,MAAA,EAAAtN,WACA,GAAAA,EAAA,CACAA,EAAAA,GAAAgQ,QAAAyQ,GAAAA,EAAAG,WACA,IAAAU,EAAAthB,EAAAkG,OACA,GAAAob,GACA,KAAA8f,8BAAA,EACA,KAAAngB,wBAEA,KAAAjB,kBAAA,EACA,KAAAohB,8BAAA,EACA,KAAAC,6BAAA,EACA,KAAAxhB,SAAA7f,EACA,KAAAmhC,kBAAA,EAEA,CACA,KAAAp2B,WAAA,IAEA,EACAkW,mBAAAA,GACA,IAAAre,GAAA,EACA,KAAAH,KAAA,EACArD,GAAAuD,kBAAA,KAAAnB,QAAA,IAAAoB,GAAA,GAAA0K,MAAA,EAAAtN,WACA,GAAAA,EAAA,CACAA,EAAAA,GAAAgQ,QAAAyQ,GAAAA,EAAAG,WACA,IAAAU,EAAAthB,EAAAkG,OACA,GAAAob,GACA,KAAA+f,6BAAA,EACA,KAAArhB,kBAAA,EACA,KAAAH,SAAA,KACA,KAAAshB,kBAAA,IAEA,KAAAnhB,kBAAA,EACA,KAAAqhB,6BAAA,EACA,KAAAxhB,SAAA7f,EACA,KAAAmhC,kBAAA,EASA,IAEA,EAoFAvf,QAAAA,GACA,aAAA1K,MACA,KAAA2K,0BAEA,eAAA3K,MACA,KAAA4K,yBAEA,eAAA5K,MACA,KAAA6K,wBAEA,EACAF,uBAAAA,GACA,KAAAjC,eAAA,EACAxgB,GAAAoD,mBAAA,KAAAhB,QAAA,KAAAiB,KAAA1S,EAAA2D,yBAAA,MAAA4Z,MAAA,EAAAtN,WAEA,GADA,KAAA4f,eAAA,EACA5f,EAAA,CACAA,EAAAA,GAAAgQ,QAAAyQ,GAAAA,EAAAG,WACA,IAAAU,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA,SAAAA,YAAA7f,GACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,yBACA,IAEA,EACAouB,sBAAAA,GACA,KAAAlC,eAAA,EACAxgB,GAAAuD,kBAAA,KAAAnB,QAAA,KAAAiB,KAAA1S,EAAA2D,yBAAA,MAAA4Z,MAAA,EAAAtN,WAEA,GADA,KAAA4f,eAAA,EACA5f,EAAA,CACAA,EAAAA,GAAAgQ,QAAAyQ,GAAAA,EAAAG,WACA,IAAAU,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA,SAAAA,YAAA7f,GACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,yBACA,IAEA,ICxZqN,MCQjN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCNhC,IACAyD,KAAA,yBACAklB,WAAA,CACAjZ,cAAAA,IAEApD,IAAAA,GACA,QACA,EACAoX,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,WAGA+c,OAAAA,GAAA,EACAjH,QAAA,IC3BqN,MCQjN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B3B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,WAAW,CAACN,EAAG,QAAQ,CAACM,YAAY,gDAAgDC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIU,wBAAwBV,EAAItU,6BAA6BvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,eAAeN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACN,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,eAAeX,EAAIW,GAAG,4BAA4BX,EAAIe,GAAGf,EAAIvJ,qBAAqBwJ,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,SAAS,CAACK,MAAM,CAAC,gBAAgB,YAAY,UAAY,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,OAAS,IAAImC,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,QAAQwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,OAAO,CAACM,YAAY,8BAA8B,CAACN,EAAG,IAAI,CAACM,YAAY,+BAA+BP,EAAIW,GAAG,OAAOX,EAAIe,GAAGf,EAAIvJ,iBAAiB,EAAEuM,OAAM,MAAS,CAAC/C,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,qBAAqBV,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,iCAAiCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiBN,EAAIkB,QAAQ,OAASlB,EAAIkB,QAAQN,OAAO,KAAO,OAAO,oBAAqB,EAAM,eAAgB,EAAK,iBAAkB,EAAK,gBAAiB,EAAK,uBAAwB,EAAK,eAAgB,EAAK,UAAW,EAAK,eAAgB,MAAS,IAAI,IAAI,MAAM,IAAI,MAAM,MACx+C,EACIP,GAAkB,GC6DtB,IACAhf,KAAA,6BACA6nB,OAAA,CAAAC,IACA5C,WAAA,CACAsD,YAAAA,IAEA3f,IAAAA,GACA,OACAwW,WAAA1d,aAEA,EACAse,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAyJ,eAAA5R,GAAAA,EAAAC,IAAA2R,eACAC,aAAA7R,GAAAA,EAAAC,IAAA4R,aACAqB,aAAAlT,GAAAA,EAAAC,IAAAiT,eAEAyK,OAAAA,GACA,OACAsqB,SAAA,KACAzyB,GAAA,MACAgB,MAAA,+EACA+J,SAAA,GACA5K,UAAA,KAAA/D,eACAgE,QAAA,KAAAhE,eAAA,KACA4F,QAAA,KACA0wB,aAAA,KACAvpB,YAAA,KACAtB,QAAA,EACAgC,YAAA,EACA1U,UAAA,KACAqX,mBAAA,KACAxB,eAAA,EACAkB,iBAAA,EACA7J,oBAAA,MACAqgB,YAAA,EACAiQ,aAAA,KACAC,cAAA,KAAAl1B,aACAm1B,gBAAA,KACAzpB,kBAAA,KACA0pB,mBAAA,EACA/gB,UAAA,EACAF,UAAA,EACA5I,aAAA,KACAc,YAAA,kBACAzG,KAAA,KACAyf,YAAA,KACA1Y,SAAA,GACAD,SAAA,mBACAQ,UAAA,0HACAE,eAAA,uIACAd,yBAAA,KAAAtM,aAEA,GAEAgS,OAAAA,GAAA,EACAjH,QAAA,ICxHyN,MCQrN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B3B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,QAAQ,CAACM,YAAY,gBAAgB,CAAGP,EAAI4oB,iBAAoB5oB,EAAI6oB,WAAukB7oB,EAAII,KAA/jBH,EAAG,QAAQ,CAACM,YAAY,yDAAyDC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,kBAAkBV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,0FAA0FV,EAAG,MAAM,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,yEAAyEX,EAAIe,GAAGf,EAAIrI,eAAe,YAAqB,GAAGsI,EAAG,cAAc,CAACM,YAAY,YAAYqR,MAAM5R,EAAI3I,mBAAqB,oBAAsB,UAAUiJ,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,eAAe,IAAI,GAAGA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,OAAO,CAAGN,EAAIzG,SAAqI0G,EAAG,gBAA9H,CAACA,EAAG,eAAe,CAACK,MAAM,CAAC,WAAa,eAAe,QAAU,2DAA8E,IAAI,GAAGL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,oBAAoB,IAAI,IAAI,GAAGA,EAAG,uBAAuBA,EAAG,uBAAuBA,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,mCAAmCV,EAAG,wBAAwB,IAAI,EACliD,EACII,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACK,MAAM,CAAC,OAAOnZ,KAAK0O,WAAW,QAAU1O,KAAK0O,aAC9H,EACIwK,GAAkB,GCOtB,IACAhf,KAAA,aACAklB,WAAA,CAAAmS,QAAAA,IACAhU,MAAA,CACAxK,OAAA,CACAY,KAAA+J,OACAE,QAAA,YAGAzD,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAxL,YAAAxS,GAAAA,EAAAC,IAAAuS,cAEAF,UAAAA,GACA,MAAAqb,EAAAkP,GAAAA,GAAAC,MACAxqB,EAAA,KAAAE,aAAA+1B,gBAAA5xB,QACArB,GACA,OAAAA,EAAAkzB,iBACA3L,GAAAA,GAAAG,WAAA1nB,EAAAmzB,aAAA,oBAAAvL,KAAA,SAAAvP,KACArY,EAAAozB,YAAA7L,GAAAA,GAAAG,WAAA1nB,EAAAozB,WAAA,oBAAAxL,KAAA,SAAAvP,KACA,GAAArY,EAAAqzB,aAAA97B,QAAAyI,EAAAqzB,aAAAjkB,SAAA,KAAA/N,WAGA,OAAArE,CACA,ICjCkN,MCO9M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BgK,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACK,MAAM,CAAC,OAAOnZ,KAAK6Q,gBAAgB,QAAU7Q,KAAK6Q,kBACnI,EACIqI,GAAkB,GCOtB,IACAhf,KAAA,kBACAklB,WAAA,CAAAmS,QAAAA,IACAhU,MAAA,CACAxK,OAAA,CACAY,KAAA+J,OACAE,QAAA,YAGAzD,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAxL,YAAAxS,GAAAA,EAAAC,IAAAuS,cAEAiC,eAAAA,GACA,MAAAkZ,EAAAkP,GAAAA,GAAAC,MACAroB,EAAA,KAAAjC,aAAA+1B,gBAAA5xB,QACArB,GACA,UAAAA,EAAAkzB,iBACA3L,GAAAA,GAAAG,WAAA1nB,EAAAmzB,aAAA,oBAAAvL,KAAA,SAAAvP,KACArY,EAAAozB,YAAA7L,GAAAA,GAAAG,WAAA1nB,EAAAozB,WAAA,oBAAAxL,KAAA,SAAAvP,KACA,GAAArY,EAAAqzB,aAAA97B,QAAAyI,EAAAqzB,aAAAjkB,SAAA,KAAA/N,WAGA,OAAAlC,CACA,ICjCuN,MCOnN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B6H,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAImsB,iBAAmBnsB,EAAIosB,aAAepsB,EAAIqsB,cAAepsB,EAAG,cAAc,CAACM,YAAY,gCAAgCD,MAAM,CAAC,MAAQ,KAAK,CAAEN,EAAImsB,gBAAiBlsB,EAAG,KAAK,CAACM,YAAY,aAAa,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,uBAAuBX,EAAIW,GAAG,yBAAyBX,EAAII,KAAMJ,EAAImsB,gBAAiBlsB,EAAG,eAAe,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAKN,EAAIiB,GAAIjB,EAAIssB,mBAAmBC,aAAaC,UAAU,SAAStrB,GAAS,OAAOjB,EAAG,cAAc,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,iDAAiDD,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,KAAK,iBAAkB,EAAK,eAAgB,IAAQ,IAAG,GAAGpB,EAAII,KAAMJ,EAAIosB,aAAepsB,EAAIqsB,cAAepsB,EAAG,MAAM,CAACA,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,uBAAuBX,EAAIW,GAAG,uBAAwBX,EAAIqsB,cAAepsB,EAAG,eAAe,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAKN,EAAIiB,GAAIjB,EAAIssB,mBAAmBG,WAAWD,UAAU,SAAStrB,GAAS,OAAOjB,EAAG,cAAc,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,iDAAiDD,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,KAAK,iBAAkB,EAAK,eAAgB,IAAQ,IAAG,GAAIpB,EAAIosB,YAAansB,EAAG,eAAe,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAKN,EAAIiB,GAAIjB,EAAIssB,mBAAmBI,SAASF,UAAU,SAAStrB,GAAS,OAAOjB,EAAG,cAAc,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,iDAAiDD,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,KAAK,iBAAkB,EAAK,eAAgB,IAAQ,IAAG,GAAGpB,EAAII,MAAM,GAAGJ,EAAII,MAAM,GAAGJ,EAAII,IACrtD,EACIC,GAAkB,GC0DtB,IACAhf,KAAA,sBACAklB,WAAA,CACAsD,YAAAA,IAEA3f,IAAAA,GACA,OACAoiC,mBAAA,KACAF,aAAA,EACAD,iBAAA,EACAE,eAAA,EACAjrB,KAAA,SAEA,EACAE,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAnE,QAAAnI,GAAAA,EAAAC,IAAAkI,WAGA,aAAA+c,SACA,KAAAkkB,sBACA,EACAnrB,QAAA,CACAorB,YAAAA,GACA,YAAAN,mBAAAC,cAAA,KAAAD,mBAAAC,aAAAC,UAAA,KAAAF,mBAAAC,aAAAC,SAAAp8B,OAAA,CACA,EACAy8B,gBAAAA,GACA,YAAAP,mBAAAI,UAAA,KAAAJ,mBAAAI,SAAAF,UAAA,KAAAF,mBAAAI,SAAAF,SAAAp8B,OAAA,CACA,EACA08B,eAAAA,GACA,YAAAR,mBAAAG,YAAA,KAAAH,mBAAAG,WAAAD,UAAA,KAAAF,mBAAAG,WAAAD,SAAAp8B,OAAA,CACA,EAEA,0BAAAu8B,GACA,KAAA13B,WAAA,EACA,MAAA83B,EAAA5oC,EAAAA,EAAAwH,IAAA,QACA,IAAAqhC,EAAA/yC,EAAAyD,oCAEA,KAAAuvC,4BAAA,KAAAA,2BAAA78B,OAAA,IACA48B,EAAAA,EAAA/pC,OAAA,yBAAAgqC,+BAEA,KAAAC,qBAAA,KAAAA,oBAAA98B,OAAA,IACA48B,EAAAA,EAAA/pC,OAAA,qBAAAiqC,wBACAF,EAAAA,EAAA/pC,OAAA,YAAA8pC,KAEAC,EAAAA,EAAA/pC,OAAA,iBAAAyI,WACAshC,EAAAA,EAAA/pC,OAAA,cAEA,MAAAiH,KAAAijC,SAAA7jC,GAAA4J,mBAAA85B,GAUA,IATA,KAAAC,4BAAAE,EAAAC,0BACA,KAAAH,2BAAAE,EAAAC,wBAAA,GAAAnwB,QACA,KAAAiwB,qBAAAC,EAAAE,eAAA,KAAAH,oBAAAC,EAAAE,aAAA,IAEA,KAAAf,mBAAAa,EACA,KAAAf,YAAA,KAAAS,mBACA,KAAAV,gBAAA,KAAAS,eACA,KAAAP,cAAA,KAAAS,kBAEA,KAAAV,YAAA,CACA,MAAAkB,EAAA,KAAAhB,mBAAAI,SAAA,KAAAJ,mBAAAI,SAAAF,SAAAjtB,KAAAof,GAAAA,EAAA6M,WAAA,GAEA,KAAA9iB,KAAAxhB,KAAA,CAAAyhB,MAAA,kBAAAjd,QAAA,KAAAA,QAAA6hC,KAAAD,GACA,CACA,QAAAnB,gBAAA,CACA,MAAAmB,EAAA,KAAAhB,mBAAAC,aAAA,KAAAD,mBAAAC,aAAAC,SAAAjtB,KAAAof,GAAAA,EAAA6M,WAAA,GAEA,KAAA9iB,KAAAxhB,KAAA,CAAAyhB,MAAA,sBAAAjd,QAAA,KAAAA,QAAA6hC,KAAAD,GACA,CACA,QAAAjB,cAAA,CACA,MAAAiB,EAAA,KAAAhB,mBAAAG,WAAA,KAAAH,mBAAAG,WAAAD,SAAAjtB,KAAAof,GAAAA,EAAA6M,WAAA,GAEA,KAAA9iB,KAAAxhB,KAAA,CAAAyhB,MAAA,oBAAAjd,QAAA,KAAAA,QAAA6hC,KAAAD,GACA,CACA,EACAE,WAAAA,CAAAC,GACA,OAAAA,EAAAvzB,QAAA,CAAAwzB,EAAAC,EAAAC,IACA,OAAAF,EAAA,iBAAAA,EAAA,YAAAE,EAAAruB,KAAAsuB,GAAAA,EAAA,aAAAvxB,QAAAoxB,EAAA,cAAAC,GAEA,EACAG,UAAAA,CAAAC,GACA,OAAAA,EACAA,EAAApxB,UAAA,EAAAoxB,EAAA39B,QADA,GAEA,EACA49B,SAAAA,CAAAC,GACA,OAAAA,EACAC,WAAAD,GADA,GAEA,EACAE,YAAAA,CAAAF,GACA,OAAAA,EACAA,EAAAniC,QAAAoiC,WAAAD,GAAA,IADA,GAEA,EACAG,OAAAA,CAAAb,GACA,IAAAc,EAAA,GAMA,OAJAA,EADAd,EAAAn9B,OAAA,EACAm9B,EAAAA,EAAAn9B,OAAA,GAEAm9B,EAAA,GAEAc,CACA,EACAC,eAAAA,CAAAf,GACA,IAAAc,EAAA,GAMA,OAJAA,EADAd,EAAAn9B,OAAA,EACAm9B,EAAA,GAEAA,EAAA,GAEAc,CACA,ICzK2N,MCQvN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BxuB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAE9Y,KAAKmS,KAAKlJ,OAAS,EAAG6P,EAAG,SAAS,CAACK,MAAM,CAAC,gBAAgB,YAAY,KAAO,KAAK,CAAEN,EAAIuuB,oBAAoBn+B,OAAS,EAAG6P,EAAG,QAAQ,CAACA,EAAG,mBAAmB,CAACK,MAAM,CAAC,MAAQN,EAAIuuB,wBAAwB,GAAGvuB,EAAII,KAAMJ,EAAIwuB,aAAap+B,OAAS,EAAG6P,EAAG,QAAQ,CAACwC,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,QAAQwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,eAAe,CAACA,EAAG,OAAO,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAG,uBAAuBV,EAAG,OAAO,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIwuB,aAAap+B,QAAQ,WAAW,EAAE4S,OAAM,IAAO,MAAK,EAAM,aAAa,CAAC/C,EAAG,mBAAmB,CAACK,MAAM,CAAC,MAAQN,EAAIwuB,iBAAiB,GAAGxuB,EAAII,MAAM,GAAGH,EAAG,MAAM,CAACA,EAAG,KAAK,CAACkG,YAAY,CAAC,aAAa,WAAW,CAACnG,EAAIW,GAAG,uDAAuDV,EAAG,KAAK,CAACkG,YAAY,CAAC,aAAa,WAAW,CAACnG,EAAIW,GAAG,sEAAsE,EACj6B,EACIN,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAACN,EAAG,QAAQ,CAACM,YAAY,0CAA0CP,EAAIiB,GAAIjB,EAAIyuB,WAAW,SAASC,EAASrtB,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIutB,EAAShF,WAAWnpB,YAAY,aAAaqR,MAAM,CAAEyN,SAAUrf,EAAI2uB,cAAcD,IAAYluB,MAAO,CAAEouB,OAAS5uB,EAAI2uB,cAAcD,GAAwB,KAAZ,UAAkBG,MAAO7uB,EAAI2uB,cAAcD,GAAY,kBAAoB,MAAQpuB,MAAM,CAAC,uBAAgC,GAATe,IAAerB,EAAIkP,QAAQG,IAAMrP,EAAIkP,QAAQE,IAAMpP,EAAIkP,QAAQC,KAAO,EAAI,OAAO,CAAClP,EAAG,OAAO,CAACM,YAAY,UAAU2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI8uB,WAAWJ,EAAS,IAAI,CAAC1uB,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgC0uB,QAAe,IAAG,IAAI,GAAGzuB,EAAG,QAAQ,CAAED,EAAI/K,UAAW+K,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,4BAA4BD,MAAM,CAAC,KAAO,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,YAAY,EAAE,IAAGN,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAI+uB,gBAAgB3+B,OAAS,EAAG4P,EAAIiB,GAAIjB,EAAI+uB,iBAAiB,SAASxwB,GAAQ,OAAO0B,EAAG,QAAQ,CAACkB,IAAI5C,EAAOxF,GAAGwH,YAAY,yBAAyBD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,kBAAkB,CAACK,MAAM,CAAC,QAAU/B,EAAO2C,SAASgD,GAAG,CAAC,kBAAkBlE,EAAIgvB,qBAAqB,EAAE,IAAGhvB,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAI+uB,gBAAgB3+B,QAAU,EAAG,CAAC6P,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,kDAAkDX,EAAII,KAAMJ,EAAI8J,cAAe,CAAC7J,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,QAAQN,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,4BAA4BD,MAAM,CAAC,KAAO,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,YAAY,EAAE,KAAIN,EAAII,MAAM,IAAI,EACvuD,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,SAAS,CAACM,YAAY,gBAAgBD,MAAM,CAAC,MAAQN,EAAIkB,QAAQnH,OAAO0I,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,MAAM,CAACM,YAAY,eAAe,CAAGP,EAAIkB,QAAQ0B,WAA0R5C,EAAIkB,QAAQ0B,WAAY3C,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACP,EAAIW,GAAG,eAAeX,EAAII,KAAxWH,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIkB,QAAQhI,YAAY,MAAM8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIkB,QAAQhI,YAAY,MAAM8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIkB,QAAQ/H,UAAU,OAAuG8G,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACN,EAAG,iBAAiB,CAACK,MAAM,CAAC,MAAQN,EAAIkB,QAAQnH,MAAM,iBAAmBiG,EAAIkB,QAAQnI,GAAG,oBAAsBiH,EAAIkB,QAAQ9F,oBAAoB,MAAQ,KAAK,OAAS,SAAS,KAAK6E,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,+DAA+D,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIkB,QAAQ4B,oBAAoB7C,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,uEAAuE,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,aAAaV,EAAG,OAAO,CAACD,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIkB,QAAQ6B,+BAAgC/C,EAAIkB,QAAQnG,QAASkF,EAAG,MAAM,CAACM,YAAY,2EAA2E,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,YAAYX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAG,gBAAgBX,EAAII,OAAO,EAAE4C,OAAM,GAAM,CAAC7B,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAG3C,EAAIvK,qBAAoiCwK,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,sFAAsFD,MAAM,CAAC,KAAO,KAAK,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAAEN,EAAIkB,QAAQ9F,oBAAqB6E,EAAG,IAAI,CAACM,YAAY,8BAA8BD,MAAM,CAAC,KAAO,GAAGN,EAAIuD,iBAAiBvD,EAAIkB,QAAQ9F,yBAAyB,CAAC4E,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,2CAA2CP,EAAII,QAAQ,GAA1+CH,EAAG,QAAQ,CAACM,YAAY,cAAc,CAAEP,EAAIkB,QAAQN,OAAQX,EAAG,QAAQ,CAACM,YAAY,oBAAoBD,MAAM,CAAC,KAAO,KAAK,GAAK,GAAG,MAAQ,IAAI,WAAW,MAAM,CAAEN,EAAIkB,QAAQN,OAAQX,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQN,EAAIkB,QAAQiC,SAAS,IAAMnD,EAAIkB,QAAQkC,SAAS,OAAS,WAAWpD,EAAII,MAAM,GAAGJ,EAAII,KAAOJ,EAAIkB,QAAQN,QAAUZ,EAAIkB,QAAQnG,SAAYiF,EAAIkB,QAAQuC,SAAUxD,EAAG,QAAQ,CAACM,YAAY,oDAAoDD,MAAM,CAAC,KAAO,KAAK,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAACL,EAAG,gBAAgB,CAACM,YAAY,iBAAiBD,MAAM,CAAC,QAAUN,EAAIkB,QAAQ,cAAgBlB,EAAIkB,QAAQuC,aAAa,GAAGxD,EAAG,QAAQ,CAACM,YAAY,sFAAsFD,MAAM,CAAC,KAAO,KAAK,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAACL,EAAG,cAAc,CAACM,YAAY,8BAA8BD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBmQ,EAAIkB,QAAQ7E,SAAS,CAAC2D,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,4CAA4C,IAAI,GAAke,EAAEyC,OAAM,MAAS,CAAGhD,EAAIvK,qBAAyKwK,EAAG,IAAI,CAACM,YAAY,wBAAwB4F,YAAY,CAAC,OAAS,KAAK7F,MAAM,CAAC,KAAO,GAAGN,EAAIuD,iBAAiBvD,EAAIkB,QAAQ9F,0BAA5Q6E,EAAG,cAAc,CAACM,YAAY,yBAAyB4F,YAAY,CAAC,OAAS,KAAK7F,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBmQ,EAAIkB,QAAQ7E,UAA8J2D,EAAIkB,QAAQ4C,SAAU7D,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIkB,QAAQ4C,UAAU,OAAO9D,EAAII,MAAM,EACpqH,EACIC,GAAkB,GC0EtB,IACAhf,KAAA,kBACA6nB,OAAA,CAAAE,GAAAD,IACA5C,WAAA,CACAiD,eAAA,GACAH,cAAAA,IAEA3E,MAAA,CACAxD,QAAAyD,QAEA8D,OAAAA,GAAA,EACAnH,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,uBAEAw5B,iBAAAA,GACA,eAAAp/B,uBAAA,KAAAqR,QAAA7E,MACA,GAEAmF,QAAA,CACAwtB,gBAAAA,CAAAhtC,GACA,KAAAolB,MAAA,kBAAAplB,EACA,EAEA0nB,iBAAAA,CAAAf,GACAA,EAAAgB,OAAAC,QAAA,8DAGA,KAAAtE,QAAApe,KAAA,SAAA2I,uBAAA,KAAAqR,QAAAguB,aACA,IC1GuN,MCQnN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QC2ChC,IACA7tC,KAAA,mBACAklB,WAAA,CACA4oB,gBAAAA,IAEAzqB,MAAA,CACA0qB,MAAApoC,OAEAkD,IAAAA,GACA,OACA+K,WAAA,EACA6U,eAAA,EACAjM,QAAA,GACAwxB,iBAAA,GAEArlB,iBAAA,EACAslB,YAAA,KACAb,UAAA,GACAM,gBAAA,GACAQ,eAAA,KAEA,EACAjuB,SAAA,KACA2J,EAAAA,EAAAA,IAAA,uCACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAyJ,eAAA5R,GAAAA,EAAAC,IAAA2R,eACAC,aAAA7R,GAAAA,EAAAC,IAAA4R,gBAGA,aAAAqT,SACA,KAAA+mB,YACA,KAAAC,eACA,KAAAC,kBACA,KAAAC,gBAEA,EACAnuB,QAAA,CACAiuB,YAAAA,GAGA,KAAA5xB,QAAA,KAAAuxB,MAEA,IAAAQ,EAAA,KAAA/xB,QAAAzN,OACAy/B,EAAA,KAAAR,iBAAAj/B,OACA0/B,EAAAnpC,KAAA8kB,IAAAxxB,EAAA2D,yBAAAgyC,EAAAC,GACAC,EAAA,IACA,KAAAT,iBAAA,KAAAxxB,QAAA8B,MAAAkwB,EAAAA,EAAAC,GACA,KAAAf,gBAAA,KAAAM,kBAEA,KAAArlB,gBAAA,KAAAqlB,iBAAAj/B,OAAA,KAAAyN,QAAAzN,OAEA,KAAA6E,WAAA,CAIA,EACA86B,cAAAA,GACA,KAAAjmB,eAAA,EAEA,IAAA8lB,EAAA,KAAA/xB,QAAAzN,OACAy/B,EAAA,KAAAR,iBAAAj/B,OACA0/B,EAAAnpC,KAAA8kB,IAAAxxB,EAAA2D,yBAAAgyC,EAAAC,GAEAG,EAAA,KAAAnyB,QAAA8B,MAAAkwB,EAAAA,EAAAC,GAEAA,EAAA,IACA,KAAAT,iBAAA,SAAAA,oBAAAW,GACA,KAAAjB,gBAAA,SAAAM,oBAAAW,IAEA,KAAAhmB,gBAAA,KAAAqlB,iBAAAj/B,OAAA,KAAAyN,QAAAzN,OAEA,KAAA0Z,eAAA,CAGA,EACAklB,gBAAAA,CAAAhtC,GAKA,MAAAA,GAAA,MAAAA,EAAAmQ,mBAEA,KAAAk9B,iBAAA,KAAAA,iBAAAn1B,QAAArB,GAAAA,EAAA1G,kBAAAnQ,EAAAmQ,mBACA,KAAA0L,QAAA,KAAAA,QAAA3D,QAAArB,GAAAA,EAAA1G,kBAAAnQ,EAAAmQ,mBAGA,EAEAu9B,eAAAA,GACA,MAAAppC,EAAAlB,GAAAyD,eAAA,KAAAsM,gBACA5O,EAAAnB,GAAAyD,eAAA,KAAAuM,cAEA,KAAAq5B,UAAArpC,GAAAiB,SAAAC,EAAAC,EAEA,EACAooC,aAAAA,CAAA7vB,GACA,YAAA4P,SAAAC,QAAAshB,sBAAAnxB,KAAA,KAAA4P,SAAAC,QAAAshB,sBAAA,KAAAC,cACA,EACAC,cAAAA,CAAArxB,GACA,KAAAoxB,cAAApxB,EAAAhb,UAIA,KAAAwrC,YAAAxwB,EAEA,KAAAiwB,gBAAA,KAAAlxB,QACA,MAAAuyB,EAAA,IAAAvsC,KAAAib,EAAArW,cAAAqW,EAAApW,WAAAoW,EAAA1Y,WACA,KAAA2oC,gBAAA,KAAAlxB,QAAA3D,QAAArB,IACA,MAAAw3B,EAAAjrC,GAAAyD,eAAAgQ,EAAAqI,QAAAhI,WACAo3B,EAAA,IAAAzsC,KAAAwsC,EAAA5nC,cAAA4nC,EAAA3nC,WAAA2nC,EAAAjqC,WACA,OAAAkqC,EAAAxsC,YAAAssC,EAAAtsC,SAAA,GAEA,EACAgrC,UAAAA,CAAA7oC,GACA,KAAA0oC,cAAA1oC,IAAA,KAAAkqC,eAAAlqC,EACA,EACA0pC,cAAAA,GACA,SAAAL,aAAA,KAAAzxB,QAAA,CACA,MAAA0yB,EAAA,KAAAhB,eAAAnqC,GAAAyD,eAAA,KAAA0mC,gBAAA,KACAgB,GAAAnrC,GAAAyD,eAAA,KAAAsM,iBAAAo7B,GAAAnrC,GAAAyD,eAAA,KAAAuM,eACA,KAAAk6B,YAAAiB,EACA,KAAAJ,eAAA,KAAAb,eAGA,KAAAA,YAAAlqC,GAAAyD,eAAA,KAAAgV,QAAA,IAAAqD,QAAAhI,WACA,KAAAi3B,eAAA,KAAAb,aAEA,CACA,EAEA,eAAAE,GACA,WAAAtlC,SAAAZ,GAAAxF,UACA,KAAAyrC,eAAArlC,CAEA,ICrMwN,MCQpN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCWhC,IACA7I,KAAA,eACAklB,WAAA,CACAiqB,iBAAAA,IAEA9rB,MAAA,GACA+B,MAAA,GACAvc,IAAAA,GACA,QACA,EACAoX,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA4N,KAAA/V,GAAAA,EAAAoY,KAAArC,OAEAi1B,mBAAAA,GACA,IAAAhwB,EAAA,KAAAjF,KAAAY,QAAAD,IAAAA,EAAAiH,QAAA0B,aAEA,OAAArE,CACA,EACAiwB,YAAAA,GACA,IAAAjwB,EAAA,KAAAjF,KAAAY,QAAAD,GAAAA,EAAAiH,QAAA0B,aAEA,OAAArE,CACA,GAEAkK,OAAAA,GAAA,EACAjH,QAAA,ICzD0N,MCQtN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QC4DhC,IACAngB,KAAA,WACA6nB,OAAA,CAAA2c,IACAtf,WAAA,CACAkqB,WAAA,GACAC,gBAAA,GACA3gB,oBAAA,GACA8K,aAAA,GACA8V,oBAAA,GACA3gB,oBAAA,GACA4gB,aAAAA,IAEA1mC,IAAAA,GACA,QACA,EACAoX,SAAA,KACA2J,EAAAA,EAAAA,IAAA,yCACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA6N,SAAAhW,GAAAA,EAAAoY,KAAAtC,SACA9D,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACA4B,WAAA7T,GAAAA,EAAAC,IAAAwR,QACA2C,cAAApU,GAAAA,EAAAC,IAAAmU,cAEAixB,eAAAA,GACA,MAAAE,EAAA,CACA,GAAA7uC,EAAAmF,oBAAAnF,EAAAoF,4BACA,GAAApF,EAAAmF,oBAAAnF,EAAAqF,iCACA,GAAArF,EAAAmF,oBAAAnF,EAAAsF,kCAEA,OAAAupC,EAAAvpB,KAAA1G,GAAA,SAAAhJ,cAAAgJ,MAAAoP,SAAA,KAAAwJ,OAAA0V,KACA,EAEA0B,UAAAA,GACA,YAAApX,OAAA0V,OAAA,SAAAt3B,cAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,eAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,iBACA,KAGA2R,QAAA,ICtHgN,MCQ5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B3B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAAGN,EAAI6wB,oBAAsD7wB,EAAII,KAArC,CAACH,EAAG,6BAAuCD,EAAI6wB,oBAAqB5wB,EAAG,QAAQ,CAAED,EAAIjO,wBAAyBkO,EAAG,kBAAkBD,EAAII,KAAKH,EAAG,sBAAsB,GAAGD,EAAII,MAAM,EACtW,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACM,YAAY,8BAA8B,CAACN,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,OAAS,MAAM,CAACL,EAAG,SAAS,CAACM,YAAY,YAAY,CAACN,EAAG,cAAc,CAACM,YAAY,mBAAmB,CAACN,EAAG,IAAI,CAACD,EAAIW,GAAG,wBAAwBV,EAAG,kBAAkB,CAACM,YAAY,cAAcD,MAAM,CAAC,SAAWN,EAAI8wB,mBAAmB,OAAS,GAAG,KAAO,MAAM5sB,GAAG,CAAC,OAASlE,EAAI+wB,gBAAgBzb,MAAM,CAACrY,MAAO+C,EAAIjO,wBAAyBwjB,SAAS,SAAUC,GAAMxV,EAAIjO,wBAAwByjB,CAAG,EAAEtP,WAAW,8BAA8B,GAAGjG,EAAG,cAAc,CAACD,EAAIW,GAAG,sEAAsEV,EAAG,KAAK,CAACA,EAAG,KAAK,CAACD,EAAIW,GAAG,6GAA6GV,EAAG,KAAK,CAACD,EAAIW,GAAG,0IAA0IV,EAAG,KAAK,CAACD,EAAIW,GAAG,6HAA6HV,EAAG,KAAK,CAACD,EAAIW,GAAG,2HAA2H,IAAI,IAAI,EAC3uC,EACIN,GAAkB,GC0BtB,IACAhf,KAAA,oBACA6I,IAAAA,GACA,OACA6H,yBAAA,EACA++B,oBAAA,EAEA,EACAxvB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1K,sBAAAtT,GAAAA,EAAAC,IAAAqT,yBAGA4R,OAAAA,GACA,KAAA1W,wBAAA,KAAA8E,uBAAA9E,0BAAA,CACA,EACAyP,QAAA,CACA,oBAAAuvB,CAAA9zB,GACA,KAAA6zB,oBAAA,EAEA,IAAAE,EAAA,KACA,IACA,aAAAhnC,SAAAV,GAAAwI,mBAAA,CAAAC,wBAAAkL,IACA+zB,EAAAhnC,CACA,OAAAgB,GACAb,QAAAJ,MAAAiB,EACA,SACA,QAAAgmC,EAAA,CACA,MAAAC,EAAA,SAAAp6B,sBAAA9E,wBAAAkL,GACA,KAAAoI,OAAA9N,OAAA9C,GAAAw8B,EACA,MACA,KAAAl/B,yBAAAkL,EAGA,KAAA6zB,oBAAA,CACA,CACA,IChE6M,MCQzM,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BjxB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,cAAc,CAACM,YAAY,SAASD,MAAM,CAAC,OAAS,oBAAoB,KAAO,oHAAoH,CAACL,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAI3c,WAAW,CAAC4c,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,iBAAiB,IAAI,EAC1b,EACIN,GAAkB,GCiBtB,IACAhf,KAAA,2BACAklB,WAAA,GACArc,IAAAA,GACA,QACA,EACAoX,SAAA,KACA2J,EAAAA,EAAAA,IAAA,qBACA1J,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAnE,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAqG,wBAAAxO,GAAAA,EAAAC,IAAAqT,sBAAA9E,2BAGA,aAAA0W,GAAA,EACAjH,QAAA,CACAne,QAAAA,GACAA,EAAA,KAAA+2B,UACA,ICrCgO,MCQ5N,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCEhC,IACA/4B,KAAA,qBACAklB,WAAA,CAAAkiB,eAAA,GAAAyI,kBAAA,GAAAC,yBAAAA,IACA7vB,SAAA,KACA2J,EAAAA,EAAAA,IAAA,qBACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAqG,wBAAAxO,GAAAA,EAAAC,IAAAqT,sBAAA9E,wBACA8+B,oBAAAttC,GAAAA,EAAAC,IAAAqT,sBAAAqO,aAGAuD,OAAAA,GACA,GCjC0N,MCStN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCpB5B5I,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,OAAO,CAAGN,EAAI6wB,oBAAsD7wB,EAAII,KAArC,CAACH,EAAG,6BAAuCD,EAAI6wB,qBAAuB7wB,EAAIjO,wBAAyB,CAACkO,EAAG,QAAQ,CAACM,YAAY,4BAA4BD,MAAM,CAAC,aAAa,SAAS,KAAO,KAAK,GAAK,OAAO,CAACL,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,kBAAkBV,EAAG,SAAS,CAACK,MAAM,CAAC,OAAS,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,UAAUD,MAAM,CAAC,IAAM,2BAA2B,CAACN,EAAIW,GAAG,UAAUV,EAAG,eAAe,CAACM,YAAY,kCAAkCD,MAAM,CAAC,KAAO,SAAS,YAAc,iCAAiC8wB,SAAS,CAAC,QAAU,SAASjtB,GAAQ,OAAOnE,EAAIqxB,mBAAmB9sB,MAAM,KAAMC,UAAU,GAAG8Q,MAAM,CAACrY,MAAO+C,EAAIsxB,UAAW/b,SAAS,SAAUC,GAAMxV,EAAIsxB,UAAU9b,CAAG,EAAEtP,WAAW,eAAejG,EAAG,QAAQ,CAACK,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,aAAa,CAACK,MAAM,CAAC,QAAUN,EAAIuxB,iBAAiB,UAAW,EAAK,YAAc,oBAAoB,cAAe,EAAK,MAAQ,EAAE,UAAap5B,GAAU,sBAAsBA,cAAkBmd,MAAM,CAACrY,MAAO+C,EAAIwxB,gBAAiBjc,SAAS,SAAUC,GAAMxV,EAAIwxB,gBAAgBhc,CAAG,EAAEtP,WAAW,sBAAsB,GAAGjG,EAAG,QAAQ,CAACK,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,aAAa,CAACK,MAAM,CAAC,QAAUN,EAAIyxB,oBAAoB,UAAW,EAAK,cAAe,EAAK,YAAc,eAAe,MAAQ,EAAE,UAAat5B,GAAU,iBAAiBA,cAAkBmd,MAAM,CAACrY,MAAO+C,EAAI0xB,mBAAoBnc,SAAS,SAAUC,GAAMxV,EAAI0xB,mBAAmBlc,CAAG,EAAEtP,WAAW,yBAAyB,GAAGjG,EAAG,QAAQ,CAACK,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,WAAW4D,GAAG,CAAC,MAAQlE,EAAI2xB,gBAAgB,CAAC3xB,EAAIW,GAAG,aAAa,IAAI,IAAI,GAAGV,EAAG,YAAY,CAACK,MAAM,CAAC,GAAK,mBAAmB,KAAON,EAAI/K,UAAU,YAAY,GAAG,QAAU,OAAO,CAAE+K,EAAI4xB,cAAe3xB,EAAG,QAAQ,CAACM,YAAY,uBAAuBD,MAAM,CAAC,aAAa,SAAS,KAAO,OAAO,CAACL,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6xB,WAAW,cAAc7xB,EAAIiB,GAAIjB,EAAI4xB,eAAe,SAASrzB,GAAQ,OAAO0B,EAAG,QAAQ,CAACkB,IAAI5C,EAAOxF,GAAGwH,YAAY,iBAAiB,CAACN,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,QAAQ,CAACM,YAAY,QAAQ,CAACN,EAAG,QAAQ,CAACK,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,WAAW,CAACM,YAAY,QAAQD,MAAM,CAAC,OAAS,GAAG,IAAM/B,EAAOuzB,aAAa,GAAG7xB,EAAG,QAAQ,CAACK,MAAM,CAAC,GAAK,OAAO,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGxC,EAAOld,MAAM,OAAO4e,EAAG,IAAI,CAAC2R,MAAM,CAC35E,OAAiF,KAAzE5R,EAAI+xB,eAAexzB,EAAOyzB,OAAOC,YAAa1zB,EAAOyzB,OAAOE,SACpE,OAAiF,KAAzElyB,EAAI+xB,eAAexzB,EAAOyzB,OAAOC,YAAa1zB,EAAOyzB,OAAOE,WACnE,CAAE3zB,EAAOyzB,OAAOG,UAAWlyB,EAAG,WAAW,CAACA,EAAG,IAAI,CAACD,EAAIW,GAAG,gBAAgBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGxC,EAAOyzB,OAAOG,WAAW,OAAOnyB,EAAII,MAAM,GAA6E,KAAzEJ,EAAI+xB,eAAexzB,EAAOyzB,OAAOC,YAAa1zB,EAAOyzB,OAAOE,SAAiBjyB,EAAG,IAAI,CAACM,YAAY,QAAQ,CAACN,EAAG,IAAI,CAACD,EAAIW,GAAG,qBAAqBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI+xB,eAAexzB,EAAOyzB,OAAOC,YAAa1zB,EAAOyzB,OAAOE,UAAU,OAAOlyB,EAAII,OAAOH,EAAG,QAAQ,CAACM,YAAY,aAAaD,MAAM,CAAC,GAAK,MAAM,CAACL,EAAG,SAAS,CAACM,YAAY,uBAAuBD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,oCAAoC0O,EAAOxF,KAAK,SAAWiH,EAAIxG,YAAYpN,OAAS4T,EAAIxG,YAAYpN,OAASmS,EAAOxF,KAAK,CAACkH,EAAG,IAAI,CAACM,YAAY,yBAAyBP,EAAIW,GAAG,qBAAqB,IAAI,GAAIpC,EAAOyzB,OAAOI,aAAe7zB,EAAOyzB,OAAOK,WAAYpyB,EAAG,IAAI,CAACM,YAAY,cAAc,CAACN,EAAG,IAAI,CAACD,EAAIW,GAAG,gBAAiBpC,EAAOyzB,OAAOI,YAAanyB,EAAG,IAAI,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO/B,EAAOyzB,OAAOI,YAAY,OAAS,WAAW,CAACnyB,EAAG,IAAI,CAACM,YAAY,yBAAyBP,EAAII,KAAM7B,EAAOyzB,OAAOK,WAAYpyB,EAAG,IAAI,CAACK,MAAM,CAAC,KAAO/B,EAAOyzB,OAAOK,WAAW,OAAS,WAAW,CAACpyB,EAAG,IAAI,CAACM,YAAY,qBAAqBP,EAAII,OAAOJ,EAAII,MAAM,IAAI,IAAI,IAAI,KAAI,GAAGJ,EAAII,KAAMJ,EAAI4xB,eAAiB5xB,EAAI4xB,cAAcxhC,OAAS,EAAG6P,EAAG,eAAe,CAACM,YAAY,OAAOD,MAAM,CAAC,aAAaN,EAAI6xB,UAAU,WAAW7xB,EAAIsyB,QAAQ,MAAQ,IAAIpuB,GAAG,CAAC,OAASlE,EAAIuyB,cAAcjd,MAAM,CAACrY,MAAO+C,EAAIwyB,YAAajd,SAAS,SAAUC,GAAMxV,EAAIwyB,YAAYhd,CAAG,EAAEtP,WAAW,iBAAiBlG,EAAII,MAAM,IAAIJ,EAAII,KAAMJ,EAAI6wB,oBAAqB5wB,EAAG,qBAAqBD,EAAII,MAAM,EAC5jD,EACIC,GAAkB,G,uBCyJtB,IACAhf,KAAA,mBACAklB,WAAA,CAAAksB,WAAA,KAAAvB,kBAAA,GAAAC,yBAAAA,IACAjnC,IAAAA,GACA,OACA+K,WAAA,EACAq8B,UAAA,KACAoB,aAAA,KACAC,cAAA,CACA,CACA55B,GAAA,SACAma,MAAA,WAGAse,gBAAA,KACAD,iBAAA,GACAG,mBAAA,KACAD,oBAAA,GACAG,cAAA,KACAY,YAAA,EACAX,UAAA,EACAS,QAAA,GAEA,EACAhxB,SAAA,KACA2J,EAAAA,EAAAA,IAAA,qBACA1J,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAnE,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAqG,wBAAAxO,GAAAA,EAAAC,IAAAqT,sBAAA9E,wBACA8+B,oBAAAttC,GAAAA,EAAAC,IAAAqT,sBAAAqO,aAGA,aAAAuD,GACA,MAAAve,KAAA0oC,SAAAtpC,GAAAuH,eACA,KAAA0gC,iBAAAqB,EAEA,MAAA1oC,KAAA2oC,SAAAvpC,GAAAwH,kBACA,KAAA2gC,oBAAAoB,QAEA,KAAA3N,QACA,EACA1jB,QAAA,CACA6vB,kBAAAA,CAAArvC,GACA,KAAAA,EAAA8wC,OACA,KAAAnB,eAGA,EACA,mBAAAA,GACA,KAAAa,YAAA,EACA,KAAAv9B,WAAA,QACA,KAAAiwB,QACA,EACA,YAAAA,GACA,MAAA/zB,EAAA,KAAAqgC,gBACApgC,EAAA,KAAAsgC,mBACArwC,EAAA,KAAAiwC,WAAAz5B,OACAvG,EAAA,KAAAohC,cAAAtiC,OAAA,GAEAlG,KAAA6oC,SAAAzpC,GAAA0H,mBAAA,CACAtF,QAAA,KAAAA,QACAyF,UAAAA,GAAAf,OAAA,EAAAe,EAAA,KACAC,aAAAA,GAAAhB,OAAA,EAAAgB,EAAA,KACA/P,KAAA,KAAAA,EAAAA,EAAA,KACAiQ,WAAAA,EACAL,WAAA,KAAAuhC,cAGA,KAAAZ,cAAAmB,EAAAl1B,QACA,KAAAg0B,UAAAkB,EAAAC,aACA,KAAA/9B,WAAA,CACA,EACAg+B,qBAAAA,CAAAC,GACA,MAAAhB,EAAA,KAAAX,iBAAA/oB,MAAA3P,GAAAA,EAAAE,IAAAm6B,IACA,OAAAhB,GAAAhf,OAAAggB,CACA,EACAnB,cAAAA,CAAAE,EAAAkB,GACA,IAAAC,EAAA,GAIA,OAHAnB,GAAA,KAAAA,IAAAmB,GAAAnB,GACAA,GAAA,KAAAA,GAAAkB,GAAA,KAAAA,IAAAC,GAAA,MACAD,GAAA,KAAAA,IAAAC,GAAA,KAAAH,sBAAAE,IACAC,CACA,EACA,kBAAAb,CAAAc,GAIA,KAAAb,YAAAa,EAEA,KAAAp+B,WAAA,QACA,KAAAiwB,QACA,IC1PwN,MCQpN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BrlB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,kBAAkB,KAAO,oCAAoC,CAACL,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,cAAc,CAACA,EAAG,SAAS,CAACK,MAAM,CAAC,QAAU,UAAU,GAAK,MAAM,CAACN,EAAIW,GAAG,0BAA0B,IAAI,MAAM,IAAI,IAAI,IAAI,EACtd,EACIN,GAAkB,GCoBtB,IACAhf,KAAA,eACAonB,OAAAA,GACA,KAAApD,OAAA9N,OAAAjE,IAAA,EACA,GC1B8M,MCQ1M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BuM,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAASD,EAAI/K,WAAa+K,EAAIszB,mBAAoBrzB,EAAG,MAAM,CAAGD,EAAIszB,mBAAmBC,OAA+evzB,EAAIszB,mBAAmBE,WAA8tBxzB,EAAIszB,mBAAmBE,WAAYvzB,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,0BAA0B,KAAO,0BAA0B,IAAI,IAAI,GAAGN,EAAII,KAA9+BH,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,4BAA4B,KAAO,MAAM,CAACL,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,YAAY,KAAON,EAAIwiB,aAAate,GAAG,CAAC,MAAQlE,EAAIyzB,eAAe,CAACxzB,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,2BAA2B,GAA0PX,EAAII,QAAQ,IAAI,IAAI,GAAxtCH,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,oBAAoB,KAAO,+CAA+C,CAACL,EAAG,WAAW,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,GAAG,QAAU,YAAY,KAAON,EAAI0zB,UAAUxvB,GAAG,CAAC,MAAQlE,EAAIyzB,eAAe,CAACxzB,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,gBAAgB,IAAI,IAAI,IAAI,IAA4hC,GAAGX,EAAII,IAC9pD,EACIC,GAAkB,GCkDtB,IACAhf,KAAA,4BACAklB,WAAA,GACArc,IAAAA,GACA,OACAopC,mBAAA,KAEA,EACAhyB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAtM,UAAA1R,GAAAA,EAAAC,IAAAyR,YAEAy+B,QAAAA,GACA,mGAAAJ,oBAAAzU,OAGA,EACA2D,WAAAA,GACA,YAAA8Q,oBAAA7vC,gBACA,EACAkwC,aAAAA,GACA,kFACA,GAEAzsB,OAAAA,GAQA,EAMAoE,aAAAA,GACA,EAOA7C,OAAAA,GACA,IAAA1V,EAAAlR,OAAAkB,SAAAmiC,OACA,MAAAhhC,EAAAC,EAAAA,EAAAwH,IAAA,UACAoH,EAAAoJ,GAAAY,gBAAAhK,EAAA,QAAA7O,GACA6O,EACAzJ,GAAA2J,6BAAAF,GAAAyE,MAAA,EAAAtN,WACAA,IAEA,KAAA0pC,cAAA1pC,GACA,KAAAopC,mBAAAppC,GAGA,KAAA2pC,aAAA,IAGA,KAAAA,aAGA,EACAryB,QAAA,CACAiyB,YAAAA,GACAtpC,QAAAwG,IAAA,gBACA,KAAA0U,OAAA9N,OAAAjE,IAAA,EACA,EACAugC,WAAAA,GACA,KAAAxuB,OAAA9N,OAAAjE,IAAA,EACA,EACAsgC,aAAAA,CAAA1pC,GAEAA,GAAAA,GAAAgb,WAAAhb,GAAAkC,OAAAlC,GAAAwB,UAGA,KAAAgd,KAAAxhB,KAAA,CAAAwE,QAAAxB,EAAAwB,UACA,KAAAgd,KAAAxhB,KAAA,CAAAyhB,MAAA,WAAAwgB,MAAAj/B,EAAAkC,QAEA,ICrI0N,MCQtN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5ByT,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAASD,EAAI/K,WAAa+K,EAAI8zB,gBAAgB5uB,UAAWjF,EAAG,WAAW,CAAED,EAAI8zB,iBAAmB9zB,EAAI8zB,gBAAgB5uB,WAAa/d,KAAK2sC,gBAAgBp+B,qBAAuBsK,EAAI8zB,gBAAgBzhC,gBAAkB2N,EAAI8zB,gBAAgBn+B,oBAAsBxO,KAAK2sC,gBAAgBje,QAAS5V,EAAG,0BAA0B,CAACkB,IAAIha,KAAK2sC,gBAAgBzhC,eAAe+V,IAAI,WAAW7H,YAAY,gBAAgBD,MAAM,CAAC,UAAYnZ,KAAK2sC,gBAAgBp+B,oBAAoB,SAAWvO,KAAK2sC,gBAAgBn+B,mBAAmB,QAAUxO,KAAK2sC,gBAAgBje,WAAW5V,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,0CAA0C,KAAO,yKAAyK,IAAI,IAAI,IAAI,GAAGN,EAAII,IAC7/B,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,YAAY,CAACK,MAAM,CAAC,KAAON,EAAI/K,YAAY,CAACgL,EAAG,WAAW,CAACK,MAAM,CAAC,GAAKN,EAAIrK,mBAAmB,eAAexO,KAAK2xB,UAAU,cAAc3xB,KAAK4xB,SAAS,gBAAgB5xB,KAAK0uB,QAAQ,aAAa,UAAU,SAAW,OAAO,EACpS,EACIxV,GAAkB,GCOtB,IACAhf,KAAA,0BACA6I,IAAAA,GACA,OACA+K,WAAA,EACA0d,OAAA,KACAhd,mBAAA,KAAAqjB,MAAAC,KACAC,iBAAA,KAEA,EACAxU,MAAA,CACAoU,UAAAjU,OACAkU,SAAAlU,OACAgR,QAAAhR,QAEAvD,SAAA,CACA6X,SAAAA,GACA,6CAAAL,aAAA,KAAAC,+BACA,GAEAtQ,OAAAA,GACA,KAAAkK,OAAAtL,SAAAsG,cAAA,UACA,KAAAgF,OAAAI,OAAA,KAAAqG,eACA,KAAAzG,OAAAyB,aAAA,WAAA+E,WAEA9R,SAAAgN,KAAAC,YAAA,KAAA3B,OACA,EACArH,aAAAA,GACAyoB,OAAAC,YAAAC,SACA,KAAA/a,kBAAA,KAAAA,iBAAA/D,UAEA9N,SAAAgN,KAAAe,YAAA,KAAAzC,OACA,EACAnR,QAAA,CACA4X,cAAAA,GACA,MAAAC,EAAA,KAEAC,QAAAC,UAAA,KAAA5jB,oBAAA6jB,OAAA,WACAH,EAAAH,iBAAA,KAEAG,EAAAH,iBAAAhV,GAAA,+BACAmV,EAAAH,iBAAAgb,eACAhX,YAAA,WACA6W,OAAAC,YACAG,KAAA,aACA38B,MAAA,WACArN,QAAAJ,MAAA,+BACA,IACAyyB,OAAA,SAAAzyB,GACAI,QAAAJ,MAAAA,EACA,GACA,QAGAgqC,OAAAC,YAAAC,QAEA,IAQA5a,EAAApkB,WAAA,EACAokB,EAAAjS,MAAA,SACA,GACA,IC5E+N,MCQ3N,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCchC,IACA/lB,KAAA,oBACAklB,WAAA,CACA6tB,wBAAAA,IAEAlqC,IAAAA,GACA,OACA4pC,gBAAA,KAEA,EACAxyB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAtM,UAAA1R,GAAAA,EAAAC,IAAAyR,aAGAwT,OAAAA,GACA,MAAA1V,EAAAlR,OAAAkB,SAAAmiC,OACAnyB,EACAzJ,GAAAwJ,iBAAAC,GAAAyE,MAAA,EAAAtN,WACAA,IACA,KAAA0pC,cAAA1pC,GACA,KAAA4pC,gBAAA5pC,GASA,KAAA2pC,aAAA,IAGA,KAAAA,aAGA,EACAryB,QAAA,CACAqyB,WAAAA,GACA,KAAAxuB,OAAA9N,OAAAjE,IAAA,EACA,EACAsgC,aAAAA,CAAA1pC,GAEAA,GAAAA,EAAAgb,WAAAhb,EAAAkC,OAAAlC,EAAAwB,UAGA,KAAAgd,KAAAxhB,KAAA,CAAAwE,QAAAxB,EAAAwB,UACA,KAAAgd,KAAAxhB,KAAA,CAAAyhB,MAAA,WAAAwgB,MAAAj/B,EAAAkC,QAEA,IClFmN,MCQ/M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5ByT,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAASD,EAAI/K,WAAa+K,EAAI8zB,gBAAiB7zB,EAAG,WAAW,CAAED,EAAI8zB,gBAAgB5uB,WAAalF,EAAI8zB,gBAAgBp+B,qBAAuBsK,EAAI8zB,gBAAgB/6B,IAAMiH,EAAI8zB,gBAAgBn+B,oBAAsBqK,EAAI8zB,gBAAgBje,QAAS5V,EAAG,0BAA0B,CAACkB,IAAInB,EAAI8zB,gBAAgB/6B,GAAGqP,IAAI,WAAW7H,YAAY,gBAAgBD,MAAM,CAAC,UAAYN,EAAI8zB,gBAAgBp+B,oBAAoB,SAAWsK,EAAI8zB,gBAAgBn+B,mBAAmB,QAAUqK,EAAI8zB,gBAAgBje,WAAa7V,EAAI8zB,gBAAgB1nC,MAA8e4T,EAAI8zB,gBAAgB5uB,UAAoejF,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,0CAA0C,KAAO,yKAAyK,IAAI,IAAI,GAA12BL,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,+CAA+C,KAAO,kCAAkC,CAACL,EAAG,WAAW,CAACK,MAAM,CAAC,QAAU,YAAY,KAAON,EAAIwiB,aAAate,GAAG,CAAC,MAAQlE,EAAIyzB,eAAe,CAACxzB,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,qBAAqB,IAAI,IAAI,IAAI,GAA59BV,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACA,EAAG,cAAc,CAACK,MAAM,CAAC,OAAS,oBAAoB,KAAO,+CAA+C,CAACL,EAAG,WAAW,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,GAAG,QAAU,YAAY,KAAON,EAAI0zB,UAAUxvB,GAAG,CAAC,MAAQlE,EAAIyzB,eAAe,CAACxzB,EAAG,IAAI,CAACM,YAAY,8CAA8CP,EAAIW,GAAG,gBAAgB,IAAI,IAAI,IAAI,IAAk5B,GAAGX,EAAII,IAC17D,EACIC,GAAkB,GCwDtB,IACAhf,KAAA,wBACAklB,WAAA,CACA6tB,wBAAAA,IAEAlqC,IAAAA,GACA,OACA4pC,gBAAA,KAEA,EACAxyB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAtM,UAAA1R,GAAAA,EAAAC,IAAAyR,YAEAy+B,QAAAA,GACA,kNAAAI,iBAAAjV,wFAAA,KAAAiV,iBAAAjV,OACA,EACA2D,WAAAA,GACA,YAAAsR,iBAAArwC,gBACA,GAEAyjB,OAAAA,GAQA,EAMAoE,aAAAA,GACA,EAOA7C,OAAAA,GACA,IAAA1V,EAAAlR,OAAAkB,SAAAmiC,OACA,MAAAhhC,EAAAC,EAAAA,EAAAwH,IAAA,UACAoH,EAAAoJ,GAAAY,gBAAAhK,EAAA,QAAA7O,GACA6O,EACAzJ,GAAA0J,gBAAAD,GAAAyE,MAAA,EAAAtN,WACAA,IAEA,KAAA0pC,cAAA1pC,GACA,KAAA4pC,gBAAA5pC,GAGA,KAAA2pC,aAAA,IAGA,KAAAA,aAGA,EACAryB,QAAA,CACAiyB,YAAAA,GACA,KAAApuB,OAAA9N,OAAAjE,IAAA,EACA,EACAugC,WAAAA,GACA,KAAAxuB,OAAA9N,OAAAjE,IAAA,EACA,EACAsgC,aAAAA,CAAA1pC,GAEAA,GAAAA,GAAAgb,WAAAhb,GAAAkC,OAAAlC,GAAAwB,UAGA,KAAAgd,KAAAxhB,KAAA,CAAAwE,QAAAxB,EAAAwB,UACA,KAAAgd,KAAAxhB,KAAA,CAAAyhB,MAAA,WAAAwgB,MAAAj/B,EAAAkC,QAEA,ICvIuN,MCQnN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5ByT,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,QAAQ,CAACM,YAAY,gBAAgB,CAAGP,EAAI4oB,iBAAoB5oB,EAAI6oB,WAAi9B7oB,EAAII,KAAz8BH,EAAG,QAAQ,CAACM,YAAY,yDAAyDC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,eAAeV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,2FAA2FV,EAAG,MAAM,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,yEAAyEX,EAAIe,GAAGf,EAAIrI,eAAe,OAAQxQ,KAAK4O,aAAe5O,KAAK4O,YAAYs+B,UAAYltC,KAAK4O,YAAYs+B,SAASjmB,SAAUnO,EAAG,MAAM,CAACA,EAAG,WAAW,CAACM,YAAY,6CAA6CD,MAAM,CAAC,QAAU,OAAO,KAAOnZ,KAAK4O,YAAYs+B,SAASjmB,WAAW,CAACnO,EAAG,OAAO,CAACM,YAAY,0CAA0C,CAACP,EAAIW,GAAG,yBAAyBX,EAAIW,GAAG,0CAA0C,GAAGX,EAAII,UAAmB,GAAGH,EAAG,cAAc,CAACM,YAAY,UAAUqR,MAAM5R,EAAI3I,mBAAqB,oBAAsB,UAAUiJ,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,eAAe,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAKN,EAAImsB,iBAAmBnsB,EAAIosB,aAAepsB,EAAIqsB,cAAgB,EAAI,KAAK,CAACpsB,EAAG,SAAS,CAACK,MAAM,CAAC,cAAgB,kBAAkB4D,GAAG,CAAC,aAAalE,EAAIs0B,cAAc,GAAGr0B,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,wBAAwB,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,oBAAoB,IAAI,GAAKD,EAAI6jB,SAA4H7jB,EAAII,KAAtHH,EAAG,SAAS,CAACK,MAAM,CAAC,KAAO,cAAc,MAAQN,EAAIikB,MAAM,UAAYjkB,EAAI+jB,UAAU,OAAS/jB,EAAIgkB,iBAA0B,GAAG/jB,EAAG,uBAAuBA,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,KAAK,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,mCAAmCV,EAAG,wBAAwB,IAAI,EACvmE,EACII,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,WAAW,CAAC6F,WAAW,CAAC,CAACzkB,KAAK,OAAO0kB,QAAQ,SAAS9I,MAAO+C,EAAIu0B,gBAAiBruB,WAAW,oBAAoB3F,YAAY,wBAAwBD,MAAM,CAAC,QAAU,YAAY4D,GAAG,CAAC,MAAQlE,EAAIw0B,oBAAoB,CAACv0B,EAAG,OAAO,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,8BAAoD,eAArBX,EAAIy0B,cAAgCx0B,EAAG,cAAc,CAACwC,YAAYzC,EAAI0C,GAAG,CAAE1C,EAAIvK,qBAAsB,CAAC0L,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,OAAO,CAACD,EAAIW,GAAG,cAAcX,EAAIe,GAAGf,EAAI3K,gBAAgB,OAAO,EAAE2N,OAAM,GAAM,KAAMhD,EAAIvK,qBAAsB,CAAC0L,IAAI,OAAOwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,OAAO,CAACD,EAAIW,GAAG,6EAA6EV,EAAG,IAAI,CAACM,YAAY,4BAA4BD,MAAM,CAAC,KAAO,gCAAgC,CAACN,EAAIW,GAAG,aAAaX,EAAIW,GAAG,OAAO,EAAEqC,OAAM,GAAM,MAAM,MAAK,IAAO,CAAC/C,EAAG,MAAM,CAACK,MAAM,CAAC,qBAAqB,MAAM,CAACL,EAAG,QAAQ,CAACmI,IAAI,YAAY7H,YAAY,gCAAgCD,MAAM,CAAC,GAAK,WAAW,CAACL,EAAG,QAAQ,CAACM,YAAY,+BAA+BD,MAAM,CAAC,GAAK,IAAI,KAAO,OAAO,CAACL,EAAG,gBAAgB,CAACA,EAAG,eAAe,CAACM,YAAY,cAAcD,MAAM,CAAC,UAAY,MAAM,KAAO,SAAS,YAAcN,EAAI00B,mBAAmBtD,SAAS,CAAC,QAAU,SAASjtB,GAAQ,OAAOnE,EAAIqxB,mBAAmB9sB,MAAM,KAAMC,UAAU,GAAG8Q,MAAM,CAACrY,MAAO+C,EAAI4b,MAAOrG,SAAS,SAAUC,GAAMxV,EAAI4b,MAAMpG,CAAG,EAAEtP,WAAW,YAAY,IAAI,GAAGlG,EAAIiB,GAAIjB,EAAI20B,iBAAiB30B,EAAIy0B,eAAe,IAAO,SAASG,GAAO,OAAO30B,EAAG,QAAQ,CAACkB,IAAIyzB,EAAM,GAAGvzC,KAAKkf,YAAY,uBAAuBD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,CAACL,EAAG,uBAAuB,CAACK,MAAM,CAAC,IAAON,EAAI60B,UAAY70B,EAAI80B,sBAAsBF,EAAM,GAAGvzC,MAAO,GAAK2e,EAAI60B,UAAUtlB,GAAG,KAAO,KAAK,CAACtP,EAAG,aAAa,CAACmI,IAAI,GAAGwsB,EAAM,GAAGvzC,iBAAiB0zC,UAAS,EAAKz0B,MAAM,CAAC,QAAUN,EAAIg1B,8BAA8BJ,EAAM,GAAGvzC,MAAM,SAAW2e,EAAI60B,UAAUI,SAAS,YAAcj1B,EAAI60B,UAAUK,YAAY,MAAQl1B,EAAI60B,UAAUM,MAAM,UAAYn1B,EAAI60B,UAAUO,UAAU,cAAe,GAAMlxB,GAAG,CAAC,MAAQlE,EAAIkM,mBAAmBoJ,MAAM,CAACrY,MAAO+C,EAAIq1B,6BAA6BT,EAAM,GAAGvzC,MAAOk0B,SAAS,SAAUC,GAAMxV,EAAI+nB,KAAK/nB,EAAIq1B,6BAA8BT,EAAM,GAAGvzC,KAAMm0B,EAAI,EAAEtP,WAAW,kDAAkD,IAAI,EAAE,IAAGjG,EAAG,QAAQ,CAACM,YAAY,yBAAyBD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACL,EAAG,uBAAuB,CAACM,YAAY,SAAS,CAACN,EAAG,WAAW,CAACM,YAAY,wCAAwCD,MAAM,CAAC,SAAWN,EAAIs1B,0BAA0B,QAAU,YAAYpxB,GAAG,CAAC,MAAQlE,EAAI2xB,gBAAgB,CAAG3xB,EAAIs1B,0BAAmFt1B,EAAII,KAA5DH,EAAG,IAAI,CAACM,YAAY,oCAA8CP,EAAIs1B,0BAA2Br1B,EAAG,IAAI,CAACM,YAAY,iDAAiDP,EAAII,KAAKJ,EAAIW,GAAG,eAAe,IAAI,IAAI,IAAI,KAAKX,EAAII,KAAKH,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACP,EAAIiB,GAAIjB,EAAI20B,iBAAiB30B,EAAIy0B,eAAe,IAAO,SAASG,GAAO,OAAO30B,EAAG,MAAM,CAACkB,IAAIyzB,EAAM,GAAGvzC,KAAKkf,YAAY,YAAYP,EAAIiB,GAAIjB,EAAIq1B,6BAA6BT,EAAM,GAAGvzC,OAAO,SAAS6Y,GAAQ,OAAO+F,EAAG,UAAU,CAACkB,IAAIjH,EAAOqG,YAAY,8DAA8DD,MAAM,CAAC,KAAO,KAAK,CAACN,EAAIW,GAAG,IAAIX,EAAIe,GAAG7G,GAAQ,KAAK+F,EAAG,IAAI,CAACM,YAAY,2CAA2C2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIu1B,cAAcX,EAAM,GAAGvzC,KAAM6Y,EAAO,MAAM,IAAG,EAAE,IACz1G,eAArB8F,EAAIy0B,gBACHz0B,EAAIq1B,6BAA6B,SAASjlC,QACzC4P,EAAIq1B,6BAA6B,UAAUjlC,QAC3C4P,EAAIq1B,6BAA6B,UAAUjlC,QAC3C4P,EAAIq1B,6BAA6B,WAAWjlC,QAC5C4P,EAAIq1B,6BAA6B,SAASjlC,QAC5C6P,EAAG,OAAO,CAACM,YAAY,OAAOD,MAAM,CAAC,UAAU,WAAW,CAAEqE,OAAO6wB,KAAKx1B,EAAI20B,iBAAiB30B,EAAIy0B,eAAe,IAAOrkC,OAAS,EAAG6P,EAAG,OAAO,CAACiE,GAAG,CAAC,MAAQlE,EAAIy1B,eAAe,CAACx1B,EAAG,WAAW,CAACM,YAAY,yBAAyBD,MAAM,CAAC,KAAO,KAAK,KAAO,GAAG,QAAU,UAAU,CAACN,EAAIW,GAAG,mBAAmBV,EAAG,IAAI,CAACM,YAAY,qCAAqC,GAAGP,EAAII,OAAOJ,EAAII,MAAM,GAAGH,EAAG,YAAY,CAACK,MAAM,CAAC,GAAK,gBAAgB,KAAON,EAAIs1B,0BAA0B,YAAY,GAAG,QAAU,OAAO,CAAGt1B,EAAIs1B,2BAA8Bt1B,EAAI01B,aAAc11B,EAAI21B,sBAAgR31B,EAAII,KAA7PH,EAAG,MAAM,CAACM,YAAY,QAAQ,CAAEP,EAAI4b,MAAO3b,EAAG,KAAK,CAACD,EAAIW,GAAG,+BAA+BV,EAAG,IAAI,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAI4b,UAAU5b,EAAIW,GAAG,QAAQV,EAAG,KAAK,CAACD,EAAIW,GAAG,+BAA+BV,EAAG,IAAI,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIy0B,kBAAkBz0B,EAAIW,GAAG,UAAoBX,EAAI41B,UAAY51B,EAAI41B,SAASxlC,OAAS,EAAG6P,EAAG,SAAS,CAACkB,IAAInB,EAAI61B,qBAAqBv1B,MAAM,CAAC,gBAAgB,GAAG,KAAO,IAAI4D,GAAG,CAAC,eAAelE,EAAI81B,eAAexgB,MAAM,CAACrY,MAAO+C,EAAI61B,qBAAsBtgB,SAAS,SAAUC,GAAMxV,EAAI61B,qBAAqBrgB,CAAG,EAAEtP,WAAW,yBAAyBlG,EAAIiB,GAAIjB,EAAI41B,UAAU,SAASG,EAAQ10B,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAI40B,EAAQ94B,MAAMqD,MAAM,CAAC,KAAO,IAAI4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIg2B,WAAWD,EAAS5xB,EAAO,GAAG1B,YAAYzC,EAAI0C,GAAG,CAAE1C,EAAI41B,SAASxlC,OAAS,EAAG,CAAC+Q,IAAI,QAAQwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,eAAe,CAAC2R,MAAM,CAAEqkB,cAAyB,IAAV50B,EAAa60B,SAA4B,IAAlBH,EAAQ59B,MAAag+B,mBAAoBn2B,EAAI61B,uBAAyBx0B,GAAQf,MAAM,CAAC,qBAAqB,MAAM,CAACL,EAAG,OAAO,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIo2B,iBAAiBL,EAAQ94B,QAAQ,KAAKgD,EAAG,OAAO,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGg1B,EAAQ59B,OAAO,WAAW,EAAE6K,OAAM,GAAM,MAAM,MAAK,IAAO,CAAC/C,EAAG,qBAAqB,CAACmI,IAAI,eAAe2sB,UAAS,EAAKz0B,MAAM,CAAC,aAAeN,EAAIq2B,aAAa,WAAar2B,EAAIs2B,gBAAgB,QAAUt2B,EAAIu2B,8BAA8B,MAAQv2B,EAAI4b,MAAM,WAAa5b,EAAIuvB,eAAe,cAAgBvvB,EAAIy0B,cAAc,6BAA+Bz0B,EAAIq1B,6BAA6B,cAAgBr1B,EAAIw2B,cAAc,UAAYx2B,EAAIy2B,WAAW,SAAWz2B,EAAI02B,SAAS,aAAe12B,EAAI22B,aAAa,UAAY32B,EAAI42B,UAAU,YAAc52B,EAAI62B,aAAa,QAAUd,EAAQ94B,MAAM,SAAW+C,EAAIg1B,8BAA8B,UAAU9wB,GAAG,CAAC,aAAelE,EAAI82B,eAAe,aAAa92B,EAAI+2B,OAAO,aAAa/2B,EAAIg3B,kBAAoBh3B,EAAIs1B,2BAA+Bt1B,EAAIu2B,+BAA6E,GAA5Cv2B,EAAIu2B,8BAA8BnmC,OAA+H4P,EAAII,KAArHH,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,kEAA4EX,EAAIwyB,YAAc,GAAKxyB,EAAIu2B,+BAAiCv2B,EAAIu2B,8BAA8BnmC,OAAS,GAAK4P,EAAI42B,UAAW32B,EAAG,eAAe,CAACK,MAAM,CAAC,aAAaN,EAAI6xB,UAAU,WAAW7xB,EAAIsyB,QAAQ,MAAQ,IAAIpuB,GAAG,CAAC,OAASlE,EAAIuyB,cAAcjd,MAAM,CAACrY,MAAO+C,EAAIwyB,YAAajd,SAAS,SAAUC,GAAMxV,EAAIwyB,YAAYhd,CAAG,EAAEtP,WAAW,iBAAiBlG,EAAII,MAAM,EAAE,IAAG,GAAGJ,EAAII,MAAM,IAAI,EAC3gG,EACIC,GAAkB,GCTlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAAuB,WAArBD,EAAIy0B,eAAmD,YAArBz0B,EAAIy0B,cAA6Bx0B,EAAG,MAAM,CAACM,YAAY,+CAA+CD,MAAM,CAAC,qBAAqB,MAAM,CAACL,EAAG,iBAAiB,CAACA,EAAG,WAAW,CAAC2R,MAAM,eAAe5R,EAAIi3B,YAAY,eAAe32B,MAAM,CAAC,QAAU,gBAAgB4D,GAAG,CAAC,MAAQlE,EAAIk3B,qBAAqB,CAACj3B,EAAG,OAAO,CAACM,YAAY,6CAA6C,CAACP,EAAIW,GAAG,2BAA2BX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,aAAaV,EAAG,WAAW,CAAC2R,MAAM,GAAG5R,EAAIi3B,YAAY,cAAc32B,MAAM,CAAC,QAAU,gBAAgB4D,GAAG,CAAC,MAAQlE,EAAIm3B,oBAAoB,CAACl3B,EAAG,OAAO,CAACM,YAAY,6CAA6C,CAACP,EAAIW,GAAG,mBAAmBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,YAAYV,EAAG,WAAW,CAAC2R,MAAM,gBAAgB5R,EAAIi3B,YAAY,kBAAkB32B,MAAM,CAAC,QAAU,gBAAgB4D,GAAG,CAAC,MAAQlE,EAAIo3B,wBAAwB,CAACn3B,EAAG,OAAO,CAACM,YAAY,6CAA6C,CAACP,EAAIW,GAAG,qBAAqBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,iBAAiB,IAAI,GAAGX,EAAII,KAA2B,WAArBJ,EAAIy0B,eAAmD,YAArBz0B,EAAIy0B,cAA6Bx0B,EAAG,MAAM,CAACM,YAAY,mBAAmBD,MAAM,CAAC,GAAK,gBAAgB,qBAAqB,MAAM,CAACL,EAAG,QAAQ,CAACM,YAAY,uBAAuBP,EAAIiB,GAAIjB,EAAIyuB,WAAW,SAASC,EAASrtB,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIutB,EAAShF,WAAWnpB,YAAY,aAAaqR,MAAM,CAAEyN,SAAUrf,EAAI2uB,cAAcD,GAAWwH,SAA0C,GAAhCl2B,EAAIq3B,eAAe3I,IAAiBpuB,MAAM,CAAC,uBAAgC,GAATe,IAAerB,EAAIkP,QAAQG,IAAMrP,EAAIkP,QAAQE,IAAMpP,EAAIkP,QAAQC,KAAO,EAAI,OAAO,CAAClP,EAAG,OAAO,CAACM,YAAY,UAAU2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI8uB,WAAWJ,EAAUvqB,EAAO,IAAI,CAACnE,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgC0uB,IAAW,KAAKzuB,EAAG,QAAQ,CAACD,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIq3B,eAAe3I,IAAW,UAAU,IAAG,IAAI,GAAG1uB,EAAII,KAAMJ,EAAI42B,WAAa52B,EAAInC,QAASoC,EAAG,qBAAqB,CAACkB,IAAInB,EAAIq2B,aAAajuB,IAAI,eAAe9H,MAAM,CAAC,WAAaN,EAAIs3B,WAAW,QAAUt3B,EAAInC,QAAQ,MAAQmC,EAAI4b,MAAM,WAAa5b,EAAIuwB,WAAW,YAAcvwB,EAAIsvB,YAAY,cAAgBtvB,EAAIy0B,cAAc,QAAUz0B,EAAI+1B,SAAS7xB,GAAG,CAAC,aAAalE,EAAIg3B,kBAAkBh3B,EAAII,KAAMJ,EAAI02B,UAAY12B,EAAInC,QAAS,CAACoC,EAAG,MAAM,CAACmI,IAAI,qBAAqBpI,EAAIiB,GAAIjB,EAAIu3B,aAAa,SAASzxC,EAAKub,GAAO,OAAOpB,EAAG,MAAM,CAACkB,IAAIrb,GAAM,CAACma,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,kCAAkCD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,MAAM,CAACmI,IAAItiB,IAASka,EAAIw3B,YAAc,eAAiB,GAAGzC,UAAS,EAAKnjB,MAAM,CAAE6lB,YAAY,EAAMC,aAAc5xC,IAASka,EAAIw3B,aAAcl3B,MAAM,CAAC,GAAKxa,IAASka,EAAIw3B,YAAc,eAAiB,OAAOn2B,MAAU,CAACrB,EAAIW,GAAG,IAAIX,EAAIe,GAAGjb,GAAM,SAAgHka,EAAII,KAAKH,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,OAAON,EAAIiB,GAAIjB,EAAI23B,eAAe7xC,IAAO,SAASyY,GAAQ,OAAO0B,EAAG,cAAc,CAACkB,IAAI5C,EAAOq5B,KAAKr3B,YAAY,OAAOD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,wBAAwB,CAACK,MAAM,CAAC,OAAS/B,EAAO,WAAayB,EAAIuwB,WAAW,YAAcvwB,EAAIsvB,YAAY,QAAUtvB,EAAI+1B,SAAS7xB,GAAG,CAAC,aAAalE,EAAIg3B,mBAAmB,EAAE,IAAG,IAAI,IAAI,EAAE,IAAG,IAAIh3B,EAAII,KAAMJ,EAAI22B,cAAgB32B,EAAInC,SAAWmC,EAAIvS,SAAUwS,EAAG,wBAAwB,CAACkB,IAAInB,EAAIq2B,aAAajuB,IAAI,eAAe9H,MAAM,CAAC,WAAaN,EAAIs3B,WAAW,UAAW,EAAK,UAAW,EAAM,YAAct3B,EAAIsvB,YAAY,QAAUtvB,EAAInC,QAAQ,QAAUmC,EAAI+1B,QAAQ,SAAW/1B,EAAIvS,SAAS,WAAauS,EAAIuwB,YAAYrsB,GAAG,CAAC,aAAalE,EAAIg3B,kBAAkBh3B,EAAII,MAAM,EAC7sH,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,MAAM,CAACA,EAAG,QAAQ,CAAED,EAAInC,QAAS,CACrF,kBAArBmC,EAAIy0B,eACiB,0BAArBz0B,EAAIy0B,eACiB,gCAArBz0B,EAAIy0B,eACiB,uBAArBz0B,EAAIy0B,cACJz0B,EAAIiB,GAAIjB,EAAInC,SAAS,SAASU,GAAQ,OAAO0B,EAAG,QAAQ,CAACkB,IAAI5C,EAAOq5B,KAAKr3B,YAAY,yBAAyBD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,oBAAoB,CAACK,MAAM,CAAC,OAAS/B,EAAO,WAAayB,EAAIuwB,WAAW,QAAUvwB,EAAI+1B,YAAY,EAAE,IAAG/1B,EAAII,KAA2B,WAArBJ,EAAIy0B,cAA4Bz0B,EAAIiB,GAAIjB,EAAInC,SAAS,SAASU,GAAQ,OAAO0B,EAAG,QAAQ,CAACkB,IAAI5C,EAAOq5B,KAAKr3B,YAAY,4BAA4BD,MAAM,CAAC,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,oBAAoB,CAACK,MAAM,CAAC,OAAS/B,MAAW,EAAE,IAAGyB,EAAII,KAA2B,YAArBJ,EAAIy0B,cAA6Bz0B,EAAIiB,GAAIjB,EAAInC,SAAS,SAASU,GAAQ,OAAO0B,EAAG,QAAQ,CAACkB,IAAI5C,EAAOq5B,KAAKr3B,YAAY,yBAAyBD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,qBAAqB,CAACK,MAAM,CAAC,OAAS/B,EAAO,MAAQyB,EAAI4b,OAAO1X,GAAG,CAAC,gBAAgBlE,EAAI63B,mBAAmB,EAAE,IAAG73B,EAAII,KAAwB,iBAAlBJ,EAAIs3B,WAA+Bt3B,EAAIiB,GAAIjB,EAAInC,SAAS,SAASU,GAAQ,OAAO0B,EAAG,QAAQ,CAACkB,IAAI5C,EAAOu5B,UAAUv3B,YAAY,4BAA4BD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,0BAA0B,CAACK,MAAM,CAAC,OAAS/B,MAAW,EAAE,IAAGyB,EAAII,MAAMJ,EAAII,MAAM,IAAI,GAAGH,EAAG,gBAAgB,CAACK,MAAM,CAAC,eAAiBN,EAAI+3B,mCAAmC,QAAU/3B,EAAIg4B,sBAAsB9zB,GAAG,CAAC,uBAAuBlE,EAAIi4B,qBAAqB,wBAAwBj4B,EAAIk4B,0BAA0B,EAC32C,EACI73B,GAAkB,GCPlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,kCAAkC,CAAGP,EAAIvK,qBAA+KwK,EAAG,IAAI,CAACM,YAAY,wBAAwB4F,YAAY,CAAC,OAAS,KAAK7F,MAAM,CAAC,KAAO,GAAGN,EAAIuD,iBAAiBvD,EAAIzB,OAAO+e,OAAOsa,WAAxR33B,EAAG,cAAc,CAACM,YAAY,yBAAyB4F,YAAY,CAAC,OAAS,KAAK7F,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBmQ,EAAIzB,OAAO+e,OAAOjhB,UAAoJ4D,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,MAAM,CAACM,YAAY,eAAe,CAAEP,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAO+e,OAAO6a,kBAAmBl4B,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIzB,OAAO+e,OAAO6a,oBAAoB,MAAMn4B,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIzB,OAAO+e,OAAO6a,oBAAoB,MAAMn4B,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIzB,OAAO+e,OAAO8a,kBAAkB,OAAOn4B,EAAG,OAAO,CAACM,YAAY,8BAA8B,CAACP,EAAIW,GAAG,eAAgBX,EAAItJ,eAAiBsJ,EAAIkB,QAAQN,OAAQX,EAAG,OAAO,CAACM,YAAY,kCAAkC,CAACP,EAAIW,GAAG,UAAUX,EAAII,KAAMJ,EAAIzB,OAAO+e,OAAO+a,mBAAqBr4B,EAAIzB,OAAO+e,OAAO+a,mBAAqBr4B,EAAIzB,OAAO+e,OAAOvjB,MAAOkG,EAAG,MAAM,CAACM,YAAY,4BAA4BD,MAAM,CAAC,qBAAqB,MAAM,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,MAAQN,EAAIzB,OAAOxE,MAAM,iBAAmBhW,SAASic,EAAIzB,OAAO+e,OAAO+a,kBAAkB,IAAI17B,UAAU,IAAI,oBAAsB5Y,SAASic,EAAIzB,OAAO+e,OAAOsa,MAAM,MAAQ,KAAK,OAAS,SAAS,GAAG53B,EAAII,OAAOH,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,+DAA+D,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIzB,OAAO+e,OAAOxiB,aAAamF,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,uEAAuE,CAAEP,EAAIzB,OAAO+e,OAAOgb,gBAAiBr4B,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,aAAaX,EAAII,KAAKH,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAG5Z,KAAKoxC,SAASv4B,EAAIzB,OAAO+e,OAAOgb,gBAAiBt4B,EAAIzB,OAAO+e,OAAOviB,eAAekF,EAAG,MAAM,CAACM,YAAY,2EAA2E,CAAEP,EAAIzB,OAAO+e,OAAOviB,QAASkF,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,YAAYX,EAAII,KAAKH,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAG5Z,KAAKqxC,gBAAgBx4B,EAAIzB,OAAO+e,OAAOgb,gBAAiBt4B,EAAIzB,OAAO+e,OAAOviB,mBAAmBkF,EAAG,MAAM,CAACM,YAAY,gCAAgC,CAAGP,EAAIy4B,uBAAuBz4B,EAAIzB,OAAO+e,QAAg2Crd,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACP,EAAI2Q,GAAG,GAAG1Q,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAAEP,EAAIzB,OAAO+e,OAAOvjB,MAAOkG,EAAG,KAAK,CAACM,YAAY,aAAa6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,cAAgB7mB,EAAIzB,OAAOsoB,UAAU,cAAc,GAAK7mB,EAAIzB,OAAO+e,OAAOvjB,UAAUiG,EAAII,KAAMJ,EAAIzB,OAAO+e,OAAOxZ,SAAU7D,EAAG,MAAM,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIzB,OAAO+e,OAAOxZ,UAAU,OAAO9D,EAAII,KAAMJ,EAAIzB,OAAOsoB,UAAU,sBAAuB5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,oBAAoBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,sBAAsB,SAAU7mB,EAAIzB,OAAOsoB,UAAU,uBAAwB5mB,EAAG,aAAa,CAACM,YAAY,+DAA+D,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,2BAA2BV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,uBAAuB,SAAU7mB,EAAIzB,OAAOsoB,UAAU,cAAe5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,aAAaV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,cAAc,SAAU7mB,EAAIzB,OAAOsoB,UAAU,8BAA+B5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,kBAAkBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,8BAA8B,SAAS7mB,EAAII,WAAnwFH,EAAG,MAAM,CAAC,EAAE,CAAED,EAAIzB,OAAO+e,OAAOvjB,MAAOkG,EAAG,KAAK,CAACM,YAAY,aAAa6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,cAAgB7mB,EAAIzB,OAAOsoB,UAAU,cAAc,GAAK7mB,EAAIzB,OAAO+e,OAAOvjB,UAAUiG,EAAII,KAAMJ,EAAIzB,OAAO+e,OAAOxZ,SAAU7D,EAAG,MAAM,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIzB,OAAO+e,OAAOxZ,UAAU,OAAO9D,EAAII,KAAMJ,EAAIzB,OAAOsoB,UAAU,sBAAuB5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,oBAAoBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,sBAAsB,SAAU7mB,EAAIzB,OAAOsoB,UAAU,uBAAwB5mB,EAAG,aAAa,CAACM,YAAY,+DAA+D,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,2BAA2BV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,uBAAuB,SAAU7mB,EAAIzB,OAAOsoB,UAAU,cAAe5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,aAAaV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,cAAc,SAAU7mB,EAAIzB,OAAOsoB,UAAU,8BAA+B5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,kBAAkBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,8BAA8B,SAAS7mB,EAAII,SAAg8CH,EAAG,MAAM,CAACM,YAAY,yCAAyC,CAAGP,EAAIvK,qBAAq1C,CAACwK,EAAG,QAAQ,CAACM,YAAY,qFAAqFD,MAAM,CAAC,KAAO,GAAG,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAAEN,EAAIzB,OAAO+e,OAAOsa,KAAM33B,EAAG,IAAI,CAACM,YAAY,yDAAyDD,MAAM,CAAC,KAAO,GAAGN,EAAIuD,iBAAiBvD,EAAIzB,OAAO+e,OAAOsa,UAAU,CAAC53B,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,2CAA2CP,EAAII,QAAnvD,CAACH,EAAG,MAAM,CAAED,EAAIkB,QAAQN,OAAQX,EAAG,OAAO,CAACM,YAAY,uCAAuC,CAACP,EAAIW,GAAG,KAAKX,EAAIe,GAAGf,EAAIkB,QAAQw3B,iBAAiB,UAAU14B,EAAII,OAAOH,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,oBAAoBD,MAAM,CAAC,KAAO,IAAI,GAAK,GAAG,MAAQ,IAAI,WAAW,MAAM,CAAEN,EAAIkB,QAAQN,OAAQX,EAAG,aAAa,CAACM,YAAY,iDAAiDD,MAAM,CAAC,MAAQN,EAAIkB,QAAQiC,SAAS,IAAMnD,EAAIkB,QAAQkC,SAAS,OAAS,WAAWpD,EAAII,MAAM,IAAMJ,EAAIkB,QAAQN,QAAUZ,EAAIkB,QAAQ6C,gBAAkB/D,EAAIkB,QAAQhT,WAAc8R,EAAIkB,QAAQuC,SAAUxD,EAAG,QAAQ,CAACM,YAAY,qFAAqFD,MAAM,CAAC,KAAO,IAAI,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAACL,EAAG,gBAAgB,CAACM,YAAY,gCAAgCD,MAAM,CAAC,QAAUN,EAAIkB,QAAQ,cAAgBlB,EAAIkB,QAAQuC,aAAa,GAAGxD,EAAG,QAAQ,CAACM,YAAY,qFAAqFD,MAAM,CAAC,KAAO,GAAG,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAACL,EAAG,cAAc,CAACM,YAAY,yDAAyDD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBmQ,EAAIzB,OAAO+e,OAAOjhB,SAAS,CAAC2D,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,4CAA4C,IAAI,KAAic,IAAI,EACnpO,EACIF,GAAkB,CAAC,WAAY,IAAIL,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,MAAM,CAACM,YAAY,uCAAuC,CAACP,EAAIW,GAAG,uBACtL,GC6KA,IACAtf,KAAA,oBACA6nB,OAAA,CAAAE,GAAAD,IACA5C,WAAA,CACAiD,eAAA,GACAH,cAAAA,IAEA3E,MAAA,CACAnG,OAAAoG,OACA4rB,WAAAzzB,OACA8e,MAAA/W,OACA4vB,cAAA5vB,OACAkxB,QAAAlxB,QAEA3a,IAAAA,GACA,OACA28B,UAAAliB,OACAg0B,mBAAA,GACAC,SAAA,GACAnhB,KAAA,GACAohB,SAAA,KAAAjd,MAEA,EACAnT,OAAAA,GAGA,EAcAnH,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,uBAGAyL,OAAAA,GACA,IAAA43B,EAAA,GA4BA,OA3BAA,EAAA5/B,UAAA,KAAAqF,OAAA+e,OAAA6a,kBACAW,EAAA3/B,QAAA,KAAAoF,OAAA+e,OAAA8a,gBACAU,EAAA//B,GAAA,KAAAwF,OAAA+e,OAAAnrB,iBACA2mC,EAAA1zB,aAAA,KACA0zB,EAAAC,MACA,KAAAx6B,OAAA+e,OAAAgb,iBAAA,KAAA/5B,OAAA+e,OAAAviB,QAAA,KAAAwD,OAAA+e,OAAAgb,gBAAA,SAAA/5B,OAAA+e,OAAAviB,QAAA,YACA+9B,EAAA7zB,gBAAA,KAAA1G,OAAA+e,OAAAlY,cAAA,UAAA7G,OAAA+e,OAAAlY,aACA0zB,EAAAE,oBAAA,KAAAz6B,OAAA+e,OAAAU,cACA8a,EAAA/0B,eAAA,EACA+0B,EAAAl4B,OAAAk4B,GAAA5/B,WAAA,KAAAq3B,YAAAuI,GAAA3/B,QAAA,KAAAo3B,WACAuI,EAAAr1B,SACAq1B,GAAA5/B,UAAA,KAAAq3B,YACAuI,GAAA3/B,QAAA,KAAAo3B,YACAuI,GAAAE,0BACA/wC,IAAA6wC,GAAAE,qBACA,OAAAF,GAAAE,qBACA,KAAAF,GAAAE,oBACAF,EAAA11B,SAAA01B,GAAA3/B,QAAA2/B,GAAA5/B,UACA4/B,EAAAJ,gBAAAI,GAAA11B,SAAA,IACA01B,EAAA31B,SAAA,KAAAotB,WAAAuI,GAAA5/B,UACA4/B,EAAA19B,oBAAA,KAAAmD,OAAA+e,OAAAsa,KACAkB,EAAA5qC,UAAA,KAAAqQ,OAAA+e,OAAApvB,UAMA4qC,CACA,GAEAt3B,QAAA,CAcAy3B,uBAAAA,CAAAC,GACA,IAAAC,EAAAD,EACA,OAAAC,CACA,EACAZ,QAAAA,CAAAa,EAAAr+B,GACA,IAAAs+B,EAAA,YAKA,OAJAD,GAAAr+B,KACAs+B,EAAAD,GAAA,IAGAC,CACA,EACAb,eAAAA,CAAAY,EAAAr+B,GACA,IAAAs+B,EAAA,GAMA,OALAt+B,IACAA,EAAAA,EAAA,YACAs+B,EAAAt+B,GAGAs+B,CACA,EAEAC,oBAAAA,CAAAC,GACA,OAAAhsB,GAAAC,mBAAA+rB,EACA,EACAC,kBAAAA,CAAAC,GAEA,OACAA,GACAA,GAAAvvC,MACAuvC,GAAAvvC,MAAAwvC,WACAD,GAAAvvC,MAAAwvC,WAAAC,MACAF,GAAAvvC,KAAAwvC,WAAAC,KAAA/P,eAAA3hB,SAAA,cAAAwxB,GAAAvvC,KAAAwvC,WAAAC,KAAA/P,eAAA3hB,SAAA,aAEA,EACAyB,iBAAAA,CAAAf,GACAA,EAAAgB,OAAAC,QAAA,8DAGA,KAAAtE,QAAApe,KAAA,SAAA2I,aAAA,KAAA0O,OAAA+e,OAAA4R,aACA,EAEAuJ,sBAAAA,CAAAv3B,GACA,eAAAA,EAAA04B,aAAA,+BAAA7D,QAEA,OADA5rC,QAAAwG,IAAA,gCACA,CAEA,IC3TyN,MCQrN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BkP,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAACN,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACN,EAAG,QAAQ,CAACM,YAAY,qCAAqCD,MAAM,CAAC,IAAMN,EAAIzB,OAAO+e,OAAOuc,UAAY75B,EAAIzB,OAAO+e,OAAOuc,UAAY75B,EAAI85B,eAAe,MAAQ,GAAG,IAAM,uBAAuB75B,EAAG,MAAM,CAACA,EAAG,OAAO,CAACM,YAAY,wCAAwC6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,iBAAmB7mB,EAAIzB,OAAOsoB,UAAU,iBAAiB,GAAK7mB,EAAIzB,OAAO+e,OAAO7jB,aAAawG,EAAG,MAAM,CAACM,YAAY,QAAQ,CAAEP,EAAIzB,OAAO+e,OAAO2U,aAAejyB,EAAIzB,OAAO+e,OAAO2U,YAAY5wC,KAAM4e,EAAG,OAAO,CAACM,YAAY,iDAAiD6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,yBAA2B7mB,EAAIzB,OAAOsoB,UAAU,yBAAyB,GAAK7mB,EAAIzB,OAAO+e,OAAO2U,YAAY5wC,SAAS2e,EAAII,KAAMJ,EAAIzB,OAAO+e,OAAO2U,aAAejyB,EAAIzB,OAAO+e,OAAO2U,YAAYC,QAASjyB,EAAG,OAAO,CAACM,YAAY,iDAAiD6L,SAAS,CAAC,UAAYpM,EAAIe,GAAG,KAAKf,EAAIzB,OAAOsoB,UAAU,4BAA8B7mB,EAAIzB,OAAOsoB,UAAU,4BAA4B,GAAK7mB,EAAIzB,OAAO+e,OAAO2U,YAAYC,cAAclyB,EAAII,UAAU,KAAKH,EAAG,MAAM,CAACM,YAAY,sBAAsB,CAAEP,EAAIzB,OAAO+e,OAAOyc,kBAAmB,CAAC95B,EAAG,OAAO,CAACM,YAAY,qDAAqD,CAACP,EAAIW,GAAG,kBAAmBX,EAAIzB,OAAO+e,OAAOyc,kBAAmB95B,EAAG,OAAO,CAACM,YAAY,mCAAmC6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,2BAA6B7mB,EAAIzB,OAAOsoB,UAAU,2BAA2B,GAAK7mB,EAAIzB,OAAO+e,OAAOyc,sBAAsB/5B,EAAII,MAAMJ,EAAII,KAAMJ,EAAIzB,OAAOsoB,UAAU,yBAA0B5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,oBAAoBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,yBAAyB,SAAU7mB,EAAIzB,OAAOsoB,UAAU,8BAA+B5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,uBAAuBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,8BAA8B,SAAU7mB,EAAIzB,OAAOsoB,UAAU,+BAAgC5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,oBAAoBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,+BAA+B,SAAU7mB,EAAIzB,OAAOsoB,UAAU,yBAA0B5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,aAAaV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,yBAAyB,SAAU7mB,EAAIzB,OAAOsoB,UAAU,yCAA0C5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,aAAaV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,yCAAyC,SAAS7mB,EAAII,MAAM,GAAGH,EAAG,MAAM,CAACM,YAAY,mCAAmC,CAAEP,EAAIvK,sBAAwBuK,EAAIzB,OAAO+e,OAAOsa,KAAM33B,EAAG,IAAI,CAACM,YAAY,gCAAgCD,MAAM,CAAC,KAAO,GAAGN,EAAI8I,gBAAgB9I,EAAIzB,OAAO+e,OAAOsa,UAAU,CAAC53B,EAAIW,GAAG,oBAAqBX,EAAIvK,sBAAwBuK,EAAIzB,OAAO+e,OAAO4R,YAAclvB,EAAIzB,OAAO+e,OAAO4R,WAAYjvB,EAAG,cAAc,CAACM,YAAY,gCAAgCD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,aAAamQ,EAAIzB,OAAO+e,OAAO4R,eAAe,CAAClvB,EAAIW,GAAG,mBAAmBX,EAAII,MAAM,IAC3gH,EACIC,GAAkB,G,izMC8EtB,IACAhf,KAAA,oBACA6nB,OAAA,CAAAE,IACA1E,MAAA,CACAnG,OAAAoG,QAEAza,IAAAA,GACA,OACA4vC,eAAAE,GAEA,EACAvxB,OAAAA,GACA,EAEAnH,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,uBAEAq8B,QAAAA,GACA,YAAAvzB,OAAAs7B,SACA,GAEAr4B,QAAA,CACAy3B,uBAAAA,CAAAC,GACA,IAAAC,EAAAD,GAAAthC,MAAA,KACAqiC,EAAAd,GAAA3wB,MAAA0xB,GAAAA,EAAAjyB,SAAA,UACA,OAAAgyB,CACA,IC5GyN,MCQrN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bp6B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAQD,EAAIzB,OAAQ0B,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACN,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,MAAM,CAACM,YAAY,eAAe,CAAEP,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAO+e,OAAO6a,kBAAmBl4B,EAAG,OAAO,CAACM,YAAY,wCAAwC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIzB,OAAO+e,OAAO6a,oBAAoB,MAAMn4B,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIzB,OAAO+e,OAAO6a,oBAAoB,MAAMn4B,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIzB,OAAO+e,OAAOnkB,UAAU,OAAO6G,EAAII,OAAOH,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAAEP,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAO+e,OAAOpc,SAAWlB,EAAIzB,OAAO+e,OAAOpc,QAAQk4B,KAAMn5B,EAAG,MAAM,CAACM,YAAY,uEAAuE,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,aAAaX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAG5Z,KAAKoxC,SAASv4B,EAAIzB,OAAO+e,OAAOpc,QAAQk4B,YAAYp5B,EAAII,KAAMJ,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAO+e,OAAOpc,SAAWlB,EAAIzB,OAAO+e,OAAOpc,QAAQnG,QAASkF,EAAG,MAAM,CAACM,YAAY,2EAA2E,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,YAAYV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAG5Z,KAAKqxC,gBAAgBx4B,EAAIzB,OAAO+e,OAAOpc,QAAQnG,eAAeiF,EAAII,SAASH,EAAG,MAAM,CAACM,YAAY,gCAAgC,CAAEP,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAO+e,OAAOvjB,MAAOkG,EAAG,KAAK,CAACM,YAAY,kBAAkB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,cAAgB7mB,EAAIzB,OAAOsoB,UAAU,cAAc,GAAK7mB,EAAIzB,OAAO+e,OAAOvjB,UAAUiG,EAAII,KAAMJ,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAO+e,OAAO6c,aAAcl6B,EAAG,MAAM,CAACM,YAAY,6CAA6C,CAACP,EAAIW,GAAG,QAASX,EAAIzB,OAAO+e,OAAO6c,aAAcl6B,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,8BAAgC7mB,EAAIzB,OAAOsoB,UAAU,8BAA8B,GAAK7mB,EAAIzB,OAAO+e,OAAO6c,aAAa,GAAGC,aAAap6B,EAAII,OAAOJ,EAAII,KAAMJ,EAAIq6B,uBAAyBr6B,EAAI4b,MAAO3b,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,eAAeV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIq6B,4BAA4Br6B,EAAII,KAAMJ,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAOsoB,UAAU,cAAe5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,aAAaX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOsoB,UAAU,cAAgB7mB,EAAIzB,OAAOsoB,UAAU,cAAc,GAAK7mB,EAAIzB,OAAO+e,OAAOgd,YAAYt6B,EAAII,OAAOH,EAAG,MAAM,CAACM,YAAY,yCAAyC,CAAEP,EAAIvK,sBAAwBuK,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAO+e,OAAOsa,KAAM33B,EAAG,IAAI,CAACM,YAAY,4CAA4CD,MAAM,CAAC,KAAO,GAAGN,EAAIiJ,kBAAkBjJ,EAAIzB,OAAO+e,OAAOsa,UAAU,CAAC33B,EAAG,IAAI,CAACM,YAAY,mDAAmDP,EAAIW,GAAG,qBAAuBX,EAAIvK,qBAA+qBuK,EAAII,KAA7pBH,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,MAAM,CAAEN,EAAIzB,OAAO+e,OAAOid,oBAAqBt6B,EAAG,IAAI,CAACM,YAAY,4CAA4CD,MAAM,CAAC,OAAS,SAAS,KAAON,EAAIzB,OAAO+e,OAAOid,sBAAsB,CAACt6B,EAAG,IAAI,CAACM,YAAY,4CAA4CP,EAAIW,GAAG,sBAAsBX,EAAII,OAAOH,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,MAAM,CAACL,EAAG,OAAO,CAACM,YAAY,4CAA4C2D,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBrE,EAAIw6B,YAAYj2B,MAAM,KAAMC,UAAU,IAAI,CAACvE,EAAG,IAAI,CAACM,YAAY,4BAA4BP,EAAIW,GAAG,wBAAwB,IAAa,KAAKX,EAAII,IAClkH,EACIC,GAAkB,GCsFtB,IACAhf,KAAA,qBACA6nB,OAAA,CAAAE,IACA7C,WAAA,GACA7B,MAAA,CACAnG,OAAAoG,OACAiX,MAAA/W,QAEA3a,IAAAA,GACA,OACAmwC,sBAAA,GAEA,EACA5xB,OAAAA,GAEA,KAAAlK,OAAAsoB,WAAA,KAAAtoB,OAAAsoB,UAAA,0BAAA4T,yBAAA,KAAAl8B,OAAAsoB,UAAA,uBACA,EACApgB,MAAA,CACAmV,KAAAA,GACA,KAAA6e,yBAAA,KAAAl8B,OAAAsoB,UAAA,uBACA,GAEAvlB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,qBACAF,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,oBAGAgM,QAAA,CACAi5B,wBAAAA,CAAAC,GACA,IAAAC,EAAAD,EAAAE,WAAA,WACAD,EAAAA,EAAAC,WAAA,YACA,KAAAP,sBAAAM,EAAAh7B,MAAA,OACA,KAAAic,QACA,KAAAye,sBAAAM,EAAAC,WAAA,KAAAhf,MAAA,YAAAA,MAAA,SACA,KAAAye,sBAAA,KAAAA,sBAAApyB,SAAA,KAAA2T,OAAA,KAAAye,sBAAA,GAEA,EACA9B,QAAAA,CAAAa,GACA,IAAAC,EAAA,YAKA,OAJAD,IACAC,EAAAD,GAAA,IAGAC,CACA,EACAb,eAAAA,CAAAz9B,GACA,IAAAs+B,EAAA,GAMA,OALAt+B,IACAA,EAAAA,EAAA,YACAs+B,EAAAt+B,GAGAs+B,CACA,EACAJ,uBAAAA,CAAAC,GACA,IAAAC,EAAAD,GAAAthC,MAAA,KACAqiC,EAAAd,GAAA3wB,MAAA0xB,GAAAA,EAAAjyB,SAAA,UACA,OAAAgyB,CACA,EACAX,oBAAAA,CAAAC,GACA,OAAAhsB,GAAAC,mBAAA+rB,EACA,EACAiB,WAAAA,GACA,IAAArzB,EAAA,CAAA9U,eAAA,KAAAkM,OAAA+e,OAAAsa,MACA,KAAAxwB,MAAA,gBAAAD,GAUA,KAAAuB,KAAAxhB,KAAA,CACAyhB,MAAA,eACAjd,QAAA,KAAA6S,OAAA+e,OAAA3U,MAAA5P,GACAgB,MAAA,KAAAwE,OAAA+e,OAAAvjB,MACA1H,eAAA,SAAAkM,OAAA+e,OAAAnG,gBACAhlB,iBAAA,QAAAoM,OAAA+e,OAAA+a,kBAAA,KAAA95B,OAAA+e,OAAA+a,kBAAA,OACAzvB,OAAA,YAAArK,OAAA+e,OAAAsa,KAAA,KAAAr5B,OAAA+e,OAAAsa,KAAA,KAKA,IChL0N,MCQtN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B/3B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAAEP,EAAIzB,OAAOxE,MAAQkG,EAAG,MAAM,CAAED,EAAIzB,OAAOxE,OAASiG,EAAIzB,OAAOxE,OAA8GiG,EAAIzB,OAAOxE,OAASiG,EAAIzB,OAAOxE,MAAtIkG,EAAG,OAAO,CAACM,YAAY,6BAA6B6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOxE,UAAuJiG,EAAII,OAAOJ,EAAII,OAAOH,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAAEP,EAAIzB,OAAOs8B,UAAY76B,EAAIzB,OAAOs8B,SAAU,CAAE76B,EAAIzB,OAAOs8B,UAAY76B,EAAIzB,OAAOs8B,UAA0H76B,EAAIzB,OAAOs8B,UAAY76B,EAAIzB,OAAOs8B,SAAlJ56B,EAAG,OAAO,CAACM,YAAY,mCAAmC6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOs8B,aAAyK76B,EAAII,MAAMJ,EAAII,KAAMJ,EAAIzB,OAAOhd,SAAWye,EAAIzB,OAAOhd,QAAQslC,UAAW5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,mBAAmBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOhd,cAAeye,EAAIzB,OAAO4Y,eAAiBnX,EAAIzB,OAAO4Y,cAAc0P,UAAW5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,oBAAoBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAO4Y,oBAAqBnX,EAAIzB,OAAOnN,cAAgB4O,EAAIzB,OAAOnN,aAAay1B,UAAW5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,eAAeV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOnN,mBAAoB4O,EAAIzB,OAAO+7B,OAASt6B,EAAIzB,OAAO+7B,MAAMzT,UAAW5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,gBAAgBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAO+7B,YAAat6B,EAAIzB,OAAOyb,QAAUha,EAAIzB,OAAOyb,OAAO6M,UAAW5mB,EAAG,aAAa,CAACM,YAAY,qCAAqC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAG,gBAAgBV,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIzB,OAAOyb,aAAaha,EAAII,KAAKH,EAAG,MAAM,CAACM,YAAY,2CAA2C,CAACN,EAAG,MAAM,CAACM,YAAY,gCAAgCC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIzB,OAAOs7B,oBAAsB,GAAG55B,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAAEP,EAAIzB,OAAO7b,KAAOsd,EAAIzB,OAAO7b,IAAKud,EAAG,IAAI,CAACM,YAAY,8CAA8CD,MAAM,CAAC,KAAO,GAAGN,EAAIzB,OAAO7b,QAAQ,CAACud,EAAG,IAAI,CAACM,YAAY,mDAAmDP,EAAIW,GAAG,4BAA4BX,EAAII,QACr+E,EACIC,GAAkB,GC+DtB,IACAhf,KAAA,0BACAklB,WAAA,GACA7B,MAAA,CACAnG,OAAAoG,QAEA8D,OAAAA,GACA,EAEAnH,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,qBACAF,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,oBAGAgM,QAAA,IClF+N,MCQ3N,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B3B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACK,MAAM,CAAC,GAAK,iBAAiB,KAAO,KAAK,SAAW,GAAG,mBAAkB,EAAM,cAAc,GAAG,UAAU,IAAI4D,GAAG,CAAC,KAAO,SAASC,GAAQ,OAAOnE,EAAIgH,QAAQ,EAAE,KAAO,SAAS7C,GAAQ,OAAOnE,EAAIiH,QAAQ,EAAE,OAAS,SAAS9C,GAAQ,OAAOnE,EAAI0H,UAAU,GAAGjF,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,eAAewB,GAAG,WAAW,MAAO,CAAC1C,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,SAAS,CAACM,YAAY,QAAQD,MAAM,CAAC,KAAO,SAAS,aAAa,SAAS4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyV,OAAO,IAAI,CAACzV,EAAIW,GAAG,OAAOV,EAAG,KAAK,CAACM,YAAY,4BAA4B,CAAEP,EAAI/K,UAAW,CAACgL,EAAG,aAAa,CAACK,MAAM,CAAC,OAAS,OAAO,MAAQ,WAAWN,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAI86B,SAAS/gC,MAAO,CAACiG,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI86B,SAAS/gC,OAAO,MAAMiG,EAAII,MAAM,MAAM,IAAI,GAAG,EAAE4C,OAAM,KAAQsS,MAAM,CAACrY,MAAO+C,EAAIpF,KAAM2a,SAAS,SAAUC,GAAMxV,EAAIpF,KAAK4a,CAAG,EAAEtP,WAAW,SAAS,CAAElG,EAAI/K,WAAc+K,EAAI3N,gBAAkB2N,EAAI86B,SAAW,CAAC76B,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,KAAK,CAACM,YAAY,qCAAqC,CAAEP,EAAI/K,UAAW,CAACgL,EAAG,aAAa,CAACK,MAAM,CAAC,OAAS,OAAO,MAAQ,YAAYN,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAI86B,SAASC,QAAS,CAAC/6B,EAAIW,GAAG,cAAcX,EAAII,MAAM,GAAGH,EAAG,MAAM,CAACM,YAAY,yBAAyB,CAAEP,EAAI/K,UAAW+K,EAAIiB,GAAI,GAAG,SAAS+5B,GAAG,OAAO/6B,EAAG,aAAa,CAACkB,IAAI65B,EAAE16B,MAAM,CAAC,OAAS,OAAO,MAAQ,SAAS,IAAGN,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAI86B,SAASC,QAAS,CAAC96B,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI86B,SAASC,aAAa/6B,EAAII,MAAM,GAAGH,EAAG,KAAK,CAACM,YAAY,qCAAqC,CAAEP,EAAI/K,UAAW,CAACgL,EAAG,aAAa,CAACK,MAAM,CAAC,OAAS,OAAO,MAAQ,YAAY,CAACN,EAAIW,GAAG,gBAAgB,GAAGV,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAAEP,EAAI/K,UAAW+K,EAAIiB,GAAI,IAAI,SAAS+5B,GAAG,OAAO/6B,EAAG,aAAa,CAACkB,IAAI65B,EAAE16B,MAAM,CAAC,OAAS,OAAO,MAAQ,SAAS,IAAG,CAAGN,EAAI86B,SAASG,eAAyFh7B,EAAG,OAAO,CAACD,EAAIW,GAAG,yCAAyCX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAI86B,SAASI,cAAc,MAAMl7B,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAI86B,SAASI,cAAc,OAA/Qj7B,EAAG,OAAO,CAACmM,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIm7B,+BAA4O,MAAM,IAAI,IAAIn7B,EAAII,MAAM,EACpuE,EACIC,GAAkB,GCoEtB,IACAhf,KAAA,aACAqjB,MAAA,CACArS,eAAAyK,OACA+I,QAAAjB,SAEA2B,WAAA,GACArc,IAAAA,GACA,OACA+K,WAAA,EACA6lC,SAAA,KAEA,EACAx5B,SAAA,KACAC,EAAAA,EAAAA,IAAA,IACA3G,KAAA,CACAjP,GAAAA,GACA,YAAAka,OACA,GAYAs1B,yBAAA,CACAxvC,GAAAA,GACA,OAAA4hB,GAAAC,mBAAA,KAAAstB,SAAAv5C,QACA,IAGAigB,QAAA,CACAiU,KAAAA,GACA,IAAAtO,EAAA,CAAA9U,eAAA,KAAAA,gBACA,KAAA+U,MAAA,uBAAAD,EACA,EACAH,MAAAA,GAEA,KAAA3U,iBACA,KAAA4C,WAAA,EACA,KAAAmmC,gBAEA,EACAn0B,MAAAA,GACA,EAEAS,QAAAA,GAEA,IAAAP,EAAA,CAAA9U,eAAA,KAAAA,gBACA,KAAA+U,MAAA,wBAAAD,EACA,EACAi0B,aAAAA,GACA9xC,GAAAuJ,wBAAA,KAAAR,gBAAAmF,MAAA,EAAAtN,WACA,KAAA+K,WAAA,EACA/K,IAEA,KAAA4wC,SAAA5wC,EACA,GAEA,ICtIqN,MCQjN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QC0ChC,IACA7I,KAAA,qBACAklB,WAAA,CACA80B,kBAAA,GACAC,kBAAA,GACAC,mBAAA,GACAC,wBAAA,GACAC,cAAAA,IAEA/2B,MAAA,CACA4yB,WAAAzyB,OACAhH,QAAA7W,MACA40B,MAAA/W,OACA0rB,WAAAzzB,OACAwyB,YAAAzrC,KACA4wC,cAAA5vB,OACAkxB,QAAAlxB,QAEA4B,MAAA,CACA5I,OAAAA,CAAA69B,GACA,KAAA79B,QAAA69B,CACA,GAEAxxC,IAAAA,GACA,OACAyxC,4BAAA,KACA3D,sBAAA,EAEA,EACAvvB,OAAAA,GACA,KAAArB,MAAA,gBACA,EACA9F,SAAA,CACAs6B,kBAAA,CACAjwC,GAAAA,GACA,YAAAqsC,oBACA,EACA5zC,GAAAA,CAAAwW,GACA,KAAAo9B,sBAAAp9B,IAAA,KAAAo9B,qBAAAp9B,EACA,GAEAm9B,mCAAA,CACApsC,GAAAA,GACA,YAAAgwC,2BACA,EACAv3C,GAAAA,CAAAiO,GACA,KAAAspC,6BAAAtpC,IAAA,KAAAspC,4BAAAtpC,EACA,IAGAmP,QAAA,CACAy2B,oBAAAA,GAEA,KAAAF,mCAAA,KACA,KAAA6D,mBAAA,CACA,EACA/D,cAAAA,CAAA71C,GAEA,KAAA+1C,mCAAA/1C,EAAAqQ,eACA,KAAAupC,mBAAA,CACA,EACA1D,qBAAAA,GAEA,KAAAH,mCAAA,KACA,KAAA6D,mBAAA,CACA,IC9H0N,MCQtN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B/7B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,QAAQ,CAACM,YAAY,wCAAwC,CAACN,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,UAAU,CAAEP,EAAIzB,OAAO+e,QAAUtd,EAAIzB,OAAO+e,OAAO6a,kBAAmBl4B,EAAG,OAAO,CAACM,YAAY,sDAAsD,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIzB,OAAO+e,OAAO6a,oBAAoB,MAAMn4B,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIzB,OAAO+e,OAAO6a,oBAAoB,OAAOl4B,EAAG,OAAO,CAACM,YAAY,8BAA8B,CAACP,EAAIW,GAAG,eAAiBX,EAAIy4B,uBAAuBz4B,EAAIzB,OAAO+e,QAAmGrd,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACN,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,MAAM,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAG,wBAAwBV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,KAAK,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAIzB,OAAO+e,OAAOvjB,gBAA3WkG,EAAG,MAAM,CAACA,EAAG,KAAK,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAGX,EAAIe,GAAGf,EAAIzB,OAAO+e,OAAOvjB,YAA6SkG,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,gDAAgD,CAACN,EAAG,MAAM,CAACM,YAAY,yCAAyC,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIzB,OAAO+e,OAAOxiB,WAAWmF,EAAG,MAAM,CAACM,YAAY,yCAAyC,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,mBAAmBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAI67B,0BAA0B57B,EAAG,MAAM,CAACM,YAAY,yCAAyC,CAAEP,EAAIzB,OAAO+e,OAAOgb,gBAAiBr4B,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,aAAaX,EAAII,KAAKH,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAG5Z,KAAKoxC,SAASv4B,EAAIzB,OAAO+e,OAAOgb,gBAAiBt4B,EAAIzB,OAAO+e,OAAOviB,eAAekF,EAAG,MAAM,CAACM,YAAY,yCAAyC,CAAEP,EAAIzB,OAAO+e,OAAOviB,QAASkF,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,YAAYX,EAAII,KAAKH,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAG5Z,KAAKqxC,gBAAgBx4B,EAAIzB,OAAO+e,OAAOgb,gBAAiBt4B,EAAIzB,OAAO+e,OAAOviB,qBAAsBiF,EAAIzB,OAAO+e,OAAO+a,mBAAqBr4B,EAAIzB,OAAO+e,OAAO+a,mBAAqBr4B,EAAIzB,OAAO+e,OAAOvjB,MAAOkG,EAAG,QAAQ,CAACM,YAAY,+BAA+BD,MAAM,CAAC,KAAO,IAAI,GAAK,MAAM,CAACL,EAAG,iBAAiB,CAACM,YAAY,mBAAmBD,MAAM,CAAC,MAAQN,EAAIzB,OAAOxE,MAAM,iBAAmBhW,SAASic,EAAIzB,OAAO+e,OAAO+a,kBAAkB,GAAG17B,UAAU,IAAI,oBAAsB5Y,SAASic,EAAIzB,OAAO+e,OAAOsa,MAAM,MAAQ,KAAK,OAAS,SAAS,GAAG53B,EAAII,MAAM,GAAKJ,EAAIvK,qBAA8pC,CAACwK,EAAG,QAAQ,CAACM,YAAY,qFAAqFD,MAAM,CAAC,KAAO,GAAG,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAAEN,EAAIzB,OAAO+e,OAAOsa,KAAM33B,EAAG,IAAI,CAACM,YAAY,yDAAyDD,MAAM,CAAC,KAAO,GAAGN,EAAIuD,iBAAiBvD,EAAIzB,OAAO+e,OAAOsa,UAAU,CAAC53B,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,2CAA2CP,EAAII,QAA5jD,CAACH,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,oBAAoBD,MAAM,CAAC,KAAO,KAAK,GAAK,GAAG,MAAQ,IAAI,WAAW,MAAM,CAAEN,EAAIkB,QAAQN,OAAQX,EAAG,aAAa,CAACM,YAAY,sDAAsDD,MAAM,CAAC,MAAQN,EAAIkB,QAAQiC,SAAS,IAAMnD,EAAIkB,QAAQkC,SAAS,OAAS,WAAWpD,EAAII,MAAM,IAAKJ,EAAIkB,QAAQN,QAAUZ,EAAIkB,QAAQ6C,gBAAkB/D,EAAIkB,QAAQhT,WAAa8R,EAAIkB,QAAQuC,SAAUxD,EAAG,QAAQ,CAACM,YAAY,qFAAqFD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,MAAQ,IAAI,WAAW,MAAM,CAACL,EAAG,gBAAgB,CAACM,YAAY,gCAAgCD,MAAM,CAAC,QAAUN,EAAIkB,QAAQ,cAAgBlB,EAAIkB,QAAQuC,aAAa,GAAGxD,EAAG,QAAQ,CAACM,YAAY,gFAAgFD,MAAM,CAAC,GAAK,cAAc,MAAQ,IAAI,WAAW,MAAM,CAACL,EAAG,cAAc,CAACM,YAAY,yDAAyDD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBmQ,EAAIzB,OAAO+e,OAAOjhB,SAAS,CAAC2D,EAAIW,GAAG,iBAAiBV,EAAG,IAAI,CAACM,YAAY,4CAA4C,IAAI,KAAic,IAAI,EACpqI,EACIF,GAAkB,GC0GtB,IACAhf,KAAA,wBACA6nB,OAAA,CAAAE,GAAAD,IACA5C,WAAA,CACAiD,eAAA,GACAH,cAAAA,IAEA3E,MAAA,CACAnG,OAAAoG,OACA4rB,WAAAzzB,OACA8e,MAAA/W,OACAkxB,QAAAlxB,QAEA3a,IAAAA,GACA,OACA28B,UAAAliB,OACAg0B,mBAAA,GACAC,SAAA,GACAnhB,KAAA,GACAohB,SAAA,KAAAjd,MAEA,EAEAnT,OAAAA,GACA,KAAArB,MAAA,gBACA,EAaA9F,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,uBAGAyL,OAAAA,GACA,IAAA43B,EAAA,GAwBA,OAtBAA,EAAA5/B,UAAA,KAAAqF,OAAA+e,OAAA6a,kBACAW,EAAA3/B,QAAA,KAAAoF,OAAA+e,OAAA8a,gBACAU,EAAA//B,GAAA,KAAAwF,OAAA+e,OAAAnrB,iBACA2mC,EAAA1zB,aAAA,KACA0zB,EAAAC,MACA,KAAAx6B,OAAA+e,OAAAgb,iBAAA,KAAA/5B,OAAA+e,OAAAviB,QAAA,KAAAwD,OAAA+e,OAAAgb,gBAAA,SAAA/5B,OAAA+e,OAAAviB,QAAA,YACA+9B,EAAA7zB,gBAAA,KAAA1G,OAAA+e,OAAAlY,cAAA,UAAA7G,OAAA+e,OAAAlY,aACA0zB,EAAAE,oBAAA,KAAAz6B,OAAA+e,OAAAU,cACA8a,EAAA/0B,eAAA,EACA+0B,EAAAl4B,OAAAk4B,GAAA5/B,WAAA,KAAAq3B,YAAAuI,GAAA3/B,QAAA,KAAAo3B,WACAuI,EAAAr1B,SACAq1B,GAAA5/B,UAAA,KAAAq3B,YACAuI,GAAA3/B,QAAA,KAAAo3B,YACAuI,GAAAE,0BACA/wC,IAAA6wC,GAAAE,qBACA,OAAAF,GAAAE,qBACA,KAAAF,GAAAE,oBACAF,EAAA11B,SAAA01B,GAAA3/B,QAAA2/B,GAAA5/B,UACA4/B,EAAAJ,gBAAAI,GAAA11B,SAAA,IACA01B,EAAA31B,SAAA,KAAAotB,WAAAuI,GAAA5/B,UACA4/B,EAAA19B,oBAAA,KAAAmD,OAAA+e,OAAAsa,KACAkB,EAAA5qC,UAAA,KAAAqQ,OAAA+e,OAAApvB,UACA4qC,CACA,GAEAt3B,QAAA,CAcAy3B,uBAAAA,CAAAC,GACA,IAAAC,EAAAD,EACA,OAAAC,CACA,EACAZ,QAAAA,CAAAa,EAAAr+B,GACA,IAAAs+B,EAAA,YAKA,OAJAD,GAAAr+B,KACAs+B,EAAAD,GAAA,IAGAC,CACA,EACAb,eAAAA,CAAAY,EAAAr+B,GACA,IAAAs+B,EAAA,GAMA,OALAt+B,IACAA,EAAAA,EAAA,YACAs+B,EAAAt+B,GAGAs+B,CACA,EAEAC,oBAAAA,CAAAC,GACA,OAAAhsB,GAAAC,mBAAA+rB,EACA,EACA7vB,iBAAAA,CAAAf,GACAA,EAAAgB,OAAAC,QAAA,8DAGA,KAAAtE,QAAApe,KAAA,SAAA2I,aAAA,KAAA0O,OAAA+e,OAAA4R,aACA,EACA2M,iBAAAA,GACA,QAAAt9B,OAAA+e,OAAApkB,WAAA,KAAAqF,OAAA+e,OAAAnkB,QAAA,CACA,MAAA4mB,EAAA,IAAAl8B,KAAA,KAAA0a,OAAA+e,OAAApkB,WACA4iC,EAAA,IAAAj4C,KAAA,KAAA0a,OAAA+e,OAAAnkB,SACA4iC,EAAAD,EAAA/b,EACAic,EAAAD,EAAA,IACA,SAAAC,QACA,CACA,EAEAvD,sBAAAA,CAAAv3B,GACA,gBAAAA,EAAA04B,aAAA,+BAAA7D,QACA,QAEA,IC/O6N,MCQzN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bl2B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACM,YAAY,WAAWD,MAAM,CAAC,gBAAgBN,EAAIi8B,aAAa,gBAAgBj8B,EAAIk8B,WAAW,CAAEl8B,EAAIm8B,uBAAuB/rC,OAAQ6P,EAAG,MAAM,CAACM,YAAY,sBAAsBqR,MAAM5R,EAAIk8B,SAAW,QAAU,QAAQ,CAACj8B,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAAEP,EAAIo8B,YAAc,EAAGn8B,EAAG,MAAM,CAACA,EAAG,aAAa,CAACmI,IAAI,mBAAmB9H,MAAM,CAAC,SAAW,GAAG4D,GAAG,CAAC,gBAAgBlE,EAAIq8B,aAAa,cAAcr8B,EAAIs8B,aAAat8B,EAAIiB,GAAIjB,EAAIo8B,aAAa,SAASG,GAAa,OAAOt8B,EAAG,mBAAmB,CAACkB,IAAIo7B,EAAY95B,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,MAAMwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,QAAQ,CAACM,YAAY,gCAAgCD,MAAM,CAAC,8BAA8B,MAAM,CAAEN,EAAIw8B,oBAAqBv8B,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,MAAM,CAACM,YAAY,gDAAgDqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAYx4B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI28B,qBAAqB,IAAI,CAAC18B,EAAG,IAAI,CAACM,YAAY,4CAA4CP,EAAII,KAAKJ,EAAIiB,GAAIjB,EAAI48B,mBAAmBL,IAAc,SAASxhC,GAAS,OAAOkF,EAAG,QAAQ,CAACkB,IAAIpG,EAAQhC,IAAI,CAACkH,EAAG,OAAO,CAACM,YAAY,qBAAqB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI0O,SAASC,QAAQkuB,kBAAkB9hC,EAAQ1Z,WAAW,IAAI2e,EAAIw8B,oBAAqBv8B,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,MAAM,CAACM,YAAY,4CAA4CqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAYp8B,MAAM,CAAC,uBAAuB,KAAK4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI88B,qBAAqB,IAAI,CAAC78B,EAAG,IAAI,CAACM,YAAY,6CAA6CP,EAAII,MAAM,GAAGH,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,QAAQ,CAACM,YAAY,eAAeC,MAAO,cAAc,GAAKR,EAAI+8B,aAAe,IAAO/8B,EAAIg9B,oBAAqB18B,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,uBAAuBN,EAAIiB,GAAIta,KAAKG,KAAKkZ,EAAI+8B,YAAc,OAAmB,SAAS17B,GAAO,OAAOpB,EAAG,WAAW,CAACkB,IAAIE,GAAO,CAACpB,EAAG,MAAM,CAACM,YAAY,gBAAgBC,MAAO,iCAAkC,MAAmB,IAAOR,EAAIg9B,sBAAuB,CAAEh9B,EAAIi9B,kBAAkB57B,GAAQpB,EAAG,MAAM,CAACkG,YAAY,CAAC,UAAU,IAAI,SAAW,WAAW,MAAQ,OAAO,aAAa,uBAAuBnG,EAAII,KAAKH,EAAG,OAAO,CAACkG,YAAY,CAAC,UAAU,IAAI,OAAS,YAAY,CAACnG,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAkCA,EAAIk9B,aAA6B,KAAb77B,EAAQ,GAAY,GAAK,QAASpB,EAAG,MAAM,CAACM,YAAY,6BAA6B,IAAG,GAAGP,EAAIiB,GAAIjB,EAAI48B,mBAAmBL,IAAc,SAASxhC,EAAQoiC,GAAkB,OAAOl9B,EAAG,QAAQ,CAACkB,IAAIpG,EAAQhC,GAAGwH,YAAY,oBAAoB,CAACN,EAAG,MAAM,CAACM,YAAY,OAAOC,MAAO,wDACnmFzF,EAAQq0B,MAAM,GAAGl2B,UAAY8G,EAAIk9B,eAAiB,IAAOl9B,EAAIg9B,8BAChD,CAAC/8B,EAAG,MAAM,CAACM,YAAY,SAAS4F,YAAY,CAAC,OAAS,YAAYnG,EAAIiB,GAAIlG,EAAQq0B,OAAO,SAASgO,GAAM,OAAOn9B,EAAG,MAAM,CAACkB,IAAIi8B,EAAKrkC,GAAGwH,YAAY,4BAA4BC,MAAO,mDAAmD48B,EAAKjkC,QAAUikC,EAAKlkC,YAAc,IAAO8G,EAAIg9B,iCACjSI,EAAKjkC,QAAUikC,EAAKlkC,YAAc,IAAO8G,EAAIg9B,0BACrCI,EAAKlkC,UAAY8G,EAAIk9B,eAAiB,IAAOl9B,EAAIg9B,sBAAuB,CAAC/8B,EAAG,SAAS,CAAC2R,MAAM,wCAAwCtR,MAAM,CAAC,UAAU,KAAK,CAAGN,EAAIvK,qBAAkKwK,EAAG,IAAI,CAACM,YAAY,yBAAyB4F,YAAY,CAAC,OAAS,KAAK7F,MAAM,CAAC,KAAO,GAAGN,EAAIuD,iBAAiB65B,EAAKhiC,0BAA/P6E,EAAG,cAAc,CAACM,YAAY,yBAAyB4F,YAAY,CAAC,OAAS,KAAK7F,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuButC,EAAK/gC,UAAuJ4D,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACN,EAAG,iBAAiB,CAACK,MAAM,CAAC,MAAQ88B,EAAKrjC,MAAM,iBAAmBhW,SAASq5C,EAAKjrC,kBAAkB,oBAAsBirC,EAAKC,MAAM,MAAQ,KAAK,OAAS,KAAK,qBAAqB,QAAQ,GAAGp9B,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCo9B,EAAKlkC,YAAY,MAAM8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCo9B,EAAKjkC,UAAU,OAAQ6G,EAAItJ,eAAiB0mC,EAAKx8B,OAAQX,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,YAAYX,EAAII,KAAMg9B,EAAKxyB,SAAU3K,EAAG,OAAO,CAACM,YAAY,2EAA2E,CAACN,EAAG,OAAO,CAACM,YAAY,4BAA4BD,MAAM,CAAC,kBAAkB,KAAK,CAACN,EAAIW,GAAG,YAAYX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAG,cAAcX,EAAII,OAASJ,EAAIw5B,mBAAmB4D,GAAgNn9B,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACN,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,MAAM,CAACM,YAAY,uCAAuC,CAACP,EAAIW,GAAG,wBAAwBV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,MAAM,CAACM,YAAY,uCAAuC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKrjC,OAAO,OAAOkG,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKt5B,UAAU,aAArmB7D,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,uCAAuC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKrjC,OAAO,OAAOkG,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKt5B,UAAU,SAAob9D,EAAIvK,uBAAyB2nC,EAAKx8B,SAAUw8B,EAAK35B,SAAsQzD,EAAII,KAA/PH,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACK,MAAM,CAAC,QAAU88B,EAAK,cAAgBA,EAAK35B,YAAa25B,EAAKx8B,OAAQX,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ88B,EAAKj6B,SAAS,IAAMi6B,EAAKh6B,SAAS,OAAS,YAAY,GAAGpD,EAAII,MAAM,IAAa,IAAI,EAAE,IAAGH,EAAG,MAAM,CAACM,YAAY,OAAOC,MAAO,wDAC3yER,EAAIs9B,WAAaviC,EAAQq0B,MAAMr0B,EAAQq0B,MAAMh/B,OAAS,GAAG+I,UAAY,IAAO6G,EAAIg9B,0BACxEjiC,EAAQq0B,MAAMr0B,EAAQq0B,MAAMh/B,OAAS,GAAG+I,QAAU6G,EAAIk9B,eAAiB,IAAOl9B,EAAIg9B,sBAAuB,CAAC/8B,EAAG,MAAM,CAACM,YAAY,SAAS4F,YAAY,CAAC,OAAS,YAAsCnG,EAAIuwB,YAAcvwB,EAAIk9B,cAAgBl9B,EAAIuwB,YAAcvwB,EAAIs9B,WAAar9B,EAAG,MAAM,CAACmI,IAAI,gBAAgB2sB,UAAS,EAAKx0B,YAAY,8BAA8BC,MAAO,QAAQR,EAAIuwB,WAAavwB,EAAIk9B,eAAiB,IAAOl9B,EAAIg9B,qBAAsB18B,MAAM,CAAC,GAAK,kBAAkBN,EAAII,MAAM,EAAE,IAAGH,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,wBAAwB,IAAI,GAAG,EAAE0C,OAAM,IAAO,MAAK,IAAO,IAAG,IAAI,GAAGhD,EAAII,SAASJ,EAAII,KAAOJ,EAAI6jB,SAAqI7jB,EAAII,KAA/HH,EAAG,SAAS,CAACK,MAAM,CAAC,KAAO,uBAAuB,MAAQN,EAAIikB,MAAM,UAAYjkB,EAAI+jB,UAAU,OAAS/jB,EAAIgkB,iBAA0B,EACjxB,EACI3jB,GAAkB,GC+JtB,IACAhf,KAAA,wBACA6nB,OAAA,CAAAC,GAAA0c,GAAAC,GAAA1c,IACA7C,WAAA,CACA8C,cAAA,GACAG,eAAAA,IAEA9E,MAAA,CACAxW,UAAA4O,OACAygC,SAAA34B,QACAs3B,SAAA,CACAn3B,SAAA,EACAjK,KAAA8J,SAEA/G,QAAA7W,MACAsoC,YAAAzrC,KACA+3B,MAAA/W,OACAwwB,6BAAA,CACA3nC,KAAA,GACA8vC,MAAA,GACAxjB,OAAA,GACAyjB,OAAA,GACAvL,QAAA,GACA9gC,aAAA,IAEA2kC,QAAAlxB,OACApX,SAAAzG,MACAupC,WAAAzzB,QAEA5S,IAAAA,GACA,OACAiyC,uBAAA,GACAuB,yBAAA,EACAhB,WAAA,EACAiB,cAAA,EACAC,kBAAA,EACAb,YAAA,EACAG,aAAA,EACAI,WAAA,EACAO,MAAA,GACA7Z,cAAA,EACAC,MAAA,CACA,CACAta,OAAA,oCACA+c,OAAA,CACA,EAEAnlC,QAAA,mCACAqK,OAAA,CACA+6B,UAAA,SACAE,WAAA,EACAD,iBAAA,KAIA7C,UAAA,CACA+C,OAAAA,IAAA,KAAArB,gBAAA,kBACAsB,SAAAA,IAAA,KAAAtB,gBAAA,mBAGA,EACAnkB,SAAA,CACAw8B,gBAAAA,GACA,IAAA7uB,EAOA,OANA,KAAAC,QAAAC,IAAAF,EAAA,EACA,KAAAC,QAAAE,GAAAH,EAAA,EACA,KAAAC,QAAAG,GAAAJ,EAAA,EACA,KAAAC,QAAAI,GAAAL,EAAA,EACA,KAAAC,QAAAK,GAAAN,EAAA,EACA,KAAAC,QAAAM,KAAAP,EAAA,GACAA,CACA,EACA+tB,cAAAA,GACA,OAAA/iD,EAAA6D,gBACA,EACAs+C,WAAAA,GACA,YAAA2B,cAAA,QAAAA,aAAA3tC,OAEAzJ,KAAAG,KAAA,KAAAi3C,aAAA3tC,OAAA,KAAA0tC,kBAFA,CAGA,EAEA7B,YAAAA,GACA,YAAAsB,SAAA,sBACA,EACAf,mBAAAA,GACA,YAAAuB,aAAA3tC,OAAA,KAAA0tC,gBACA,EACAE,6BAAAA,GACA,OAAAj6C,SAAAf,QACA,EACA6gC,QAAAA,GACA,kBAAA3U,QAAAgY,YAAA,YAAAhY,QAAAgY,YAAA,YAAAhY,QAAAgY,UACA,MACAjc,EAAAA,EAAAA,IAAA,0DACA1J,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAsF,eAAA5R,GAAAA,EAAAC,IAAA2R,eACAC,aAAA7R,GAAAA,EAAAC,IAAA4R,aACAW,YAAAxS,GAAAA,EAAAC,IAAAuS,YACAN,qBAAAlS,GAAAA,EAAAC,IAAAiS,uBAEAwoC,WAAAA,GACA,YAAApgC,OACA,EACAqgC,gBAAAA,GACA,MAAAC,EAAA,KAAAb,WAAA,KAAAJ,aACA,YAAA3M,WAAA,KAAA2M,cAAAiB,EAAA,GACA,EACAJ,YAAAA,GACA,IAAAK,EAAA,GAqCA,OApCA,KAAAjC,uBAAAtU,SAAA9sB,IACA,IAAAsjC,EAAAtjC,EAAAq0B,MAAA7vB,KAAA1G,IACA,CACAkB,MAAAlB,EAAAkB,MACA+J,SAAAjL,EAAAiL,SACA3R,iBAAA0G,EAAA1G,iBACAkrC,MAAAxkC,EAAAwkC,MACAzyB,SAAA/R,EAAA+R,SACA1R,UAAAL,EAAAs/B,kBACAh/B,QAAAN,EAAAu/B,gBACAr/B,GAAAF,EAAA1G,iBACAiT,aAAA,KACA2zB,MAAAlgC,EAAAugC,MAAAvgC,EAAAkC,QAAAlC,EAAAugC,KAAA,IAAAvgC,EAAAkC,QAAA,YACAkK,gBAAApM,EAAAuM,cAAA,KAAAvM,EAAAuM,aACA4zB,oBAAAngC,EAAAmlB,cACAja,eAAA,EACAnD,OAAA/H,EAAAs/B,mBAAA,KAAA5H,YAAA13B,EAAAu/B,gBAAA,KAAA7H,WACA9sB,SACA5K,EAAAs/B,kBAAA,KAAA5H,YACA13B,EAAAu/B,gBAAA,KAAA7H,YACA13B,EAAAmlB,oBACA/1B,IAAA4Q,EAAAmlB,eACA,OAAAnlB,EAAAmlB,eACA,KAAAnlB,EAAAmlB,cACA5a,SAAAvK,EAAAu/B,gBAAAv/B,EAAAs/B,kBACAO,gBAAA7/B,EAAAylC,mBACAn7B,SAAA,KAAAotB,WAAA13B,EAAAs/B,kBACA/8B,oBAAAvC,EAAA++B,KACA1pC,UAAA2K,EAAA3K,UACAutB,WAAA5iB,EAAA4iB,WACApf,KAAAxD,EAAAwD,SAGA+hC,EAAAl3C,KAAA,CAAAgH,UAAA6M,EAAA7M,UAAA7M,KAAA0Z,EAAA1Z,KAAAk9C,MAAAxjC,EAAAwjC,MAAAnP,MAAAiP,GAAA,IAEAD,EAAAA,EAAAlkC,QAAArB,GAAAA,EAAAu2B,MAAAh/B,OAAA,IACAguC,CACA,GAEA33B,MAAA,CACA,aAAA5I,CAAA69B,EAAA8C,GACA9C,GAAAA,IAAA8C,SAAA,KAAAC,mBACA,GAEA,aAAAh2B,SACA,KAAAg2B,oBACA,KAAA73B,WAAA,KACA,KAAAid,UAAA,KAAAG,eACA,KAAAA,cAAA,EACA,KAAAiB,OAAA,KAAAA,MAAAI,gBAAA,KAAAmC,OAAA,wBAAAzH,QACA,GAEA,EACAve,QAAA,CACAmtB,aAAAA,CAAA7vB,GACA,YAAA4P,SAAAC,QAAAshB,sBAAAnxB,KAAA,KAAA4P,SAAAC,QAAAshB,sBAAA,KAAAC,cACA,EACA+M,iBAAAA,CAAA57B,GACA,OAAAjc,GAAA0C,YAAA,KAAAo1C,eAAA77B,EAAA,OAAAjc,GAAA0C,YAAA,KAAAo1C,eAAA77B,EAAA,IACA,EACAm4B,kBAAAA,CAAAt4B,GACA,OAAAA,GAAAA,GAAAua,YAAA,+BAAAsa,OACA,EACA2I,oBAAAA,CAAAx9B,GACA,IAAAy9B,EAAA,kBAGA,OAFAz9B,GAAAA,GAAAua,aAAAkjB,EAAA,qBAEAA,CACA,EACA,uBAAAF,GACA,KAAAr3B,MAAA,iBACA,KAAA+0B,uBAAA,GACA,KAAA1uC,UAAA2C,QAAA,KAAAyN,SAAAzN,SACA,KAAA3C,SAAAo6B,SAAA9sB,IACA,IAAAsjC,EAAA,KAAAxgC,QAAA3D,QAAArB,GAAAA,EAAAykB,OAAA8b,MAAAr+B,EAAAhC,KACAslC,EAAAA,EAAA9+B,KAAA1G,GAAAA,EAAAykB,SACA,KAAA6e,uBAAAj1C,KAAA,CAAAgH,UAAA6M,EAAAhC,GAAA1X,KAAA0Z,EAAAhC,GAAAwlC,MAAAxjC,EAAAwjC,MAAAnP,MAAAiP,GAAA,IAEA,KAAAlC,uBAAA,KAAAA,uBAAAjiC,QAAArB,GAAAA,EAAAu2B,MAAAh/B,OAAA,IAoEA,KAAA8sC,aAAA,KAAAr/B,SAAA2B,QAAA,CAAAo/B,EAAAC,IAAAD,EAAAthB,OAAA6a,kBAAA0G,EAAAvhB,OAAA6a,kBAAAyG,EAAAC,IAAAvhB,OAAA6a,kBACA,KAAAmF,WAAA,KAAAz/B,SAAA2B,QAAA,CAAAo/B,EAAAC,IAAAD,EAAAthB,OAAA8a,gBAAAyG,EAAAvhB,OAAA8a,gBAAAwG,EAAAC,IAAAvhB,OAAA8a,gBAEA,KAAA8E,aAAA93C,GAAAgC,eAAA,KAAA81C,cACA,KAAAI,WAAAl4C,GAAAuC,gBAAA,KAAA21C,YACA,KAAAP,YAAA,KAAAO,WAAA,KAAAJ,aAEA,KAAA91B,MAAA,iBAEA,EAGA4K,eAAA,WACA,KAAA5K,MAAA,kBACA,EAEAw1B,kBAAAA,CAAAL,GACA,MAAAuC,EAAAvC,EAAA,EAEAwC,EAAAD,EAAA,KAAAhB,iBACA,IAAAkB,EAAAD,EAAA,KAAAjB,iBAGA,OAFAkB,EAAA,KAAAjB,aAAA3tC,SAAA4uC,EAAA,KAAAjB,aAAA3tC,QAEA,KAAA2tC,aAAAp+B,MAAAo/B,EAAAC,EACA,EACArC,mBAAAA,GACA,KAAAsC,MAAAC,iBAAAC,MACA,EACArC,mBAAAA,GACA,KAAAmC,MAAAC,iBAAAE,MACA,EACA/C,YAAAA,GACA,KAAAK,WAAA,CACA,EACAJ,UAAAA,GACA,KAAAI,WAAA,CACA,IC3c6N,MCQzN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QC4EhC,IACAr7C,KAAA,qBACAklB,WAAA,CACA84B,mBAAA,GACAC,sBAAA,GACAC,sBAAAA,IAEA76B,MAAA,CACA2xB,aAAAv5B,OACA0iC,aAAA36B,OACAyyB,WAAAzyB,OACAhH,QAAA7W,MACA40B,MAAA/W,OACA0rB,WAAAzzB,OACA23B,cAAA5vB,OACAkxB,QAAAlxB,OACA4pB,UAAAznC,MACAwvC,cAAA7xB,OACAiyB,UAAA,CACA97B,KAAA8J,QACAG,SAAA,GAEA2xB,SAAA,CACA57B,KAAA8J,QACAG,SAAA,GAEA4xB,aAAA,CACA77B,KAAA8J,QACAG,SAAA,GAEAuqB,YAAA,CACAx0B,KAAAjX,KACAkhB,QAAA,MAEAtX,SAAAzG,OAEAkD,IAAAA,GACA,OACAyxC,4BAAA,KACA3D,sBAAA,EACAR,YAAA,KAEA,EACAl2B,SAAA,KACA2J,EAAAA,EAAAA,IAAA,uCACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAyJ,eAAA5R,GAAAA,EAAAC,IAAA2R,eACAC,aAAA7R,GAAAA,EAAAC,IAAA4R,eAEAuiC,cAAAA,GACA,YAAA95B,SAAA2B,QAAA,CAAAigC,EAAAlhC,KACA,MAAAzY,EAAAyY,EAAA+e,OAAA6a,kBAAA,KAAAuH,uBAAAnhC,EAAA+e,OAAA6a,mBAAA,YAKA,OAJAsH,EAAA35C,KACA25C,EAAA35C,GAAA,IAEA25C,EAAA35C,GAAAoB,KAAAqX,GACAkhC,CAAA,GACA,GACA,EACAlI,WAAAA,GACA,YAAAI,eAAAhzB,OAAA6wB,KAAA,KAAAmC,gBAAAgI,MAAA,CAAAf,EAAAC,IAAA,IAAAh7C,KAAA,cAAA+6C,KAAA,IAAA/6C,KAAA,cAAAg7C,OACA,CACA,EACAhb,QAAAA,GACA,kBAAA3U,QAAAgY,YAAA,YAAAhY,QAAAgY,YAAA,YAAAhY,QAAAgY,UACA,GAcAze,OAAAA,GAAA,EACAjH,QAAA,CACA01B,kBAAAA,GACA,MAAA0I,EAAA,CAAAhJ,WAAA,EAAAF,UAAA,EAAAC,cAAA,GACA,KAAAvvB,MAAA,eAAAw4B,EACA,EACAzI,iBAAAA,GACA,MAAAyI,EAAA,CAAAhJ,WAAA,EAAAF,UAAA,EAAAC,cAAA,GACA,KAAAvvB,MAAA,eAAAw4B,EAMA,EACAxI,qBAAAA,GACA,MAAAwI,EAAA,CAAAhJ,WAAA,EAAAF,UAAA,EAAAC,cAAA,GACA,KAAAvvB,MAAA,eAAAw4B,EACA,EACA3I,WAAAA,CAAA4I,GACA,OAAAA,GACA,gBACA,YAAAjJ,UAAA,4BACA,eACA,YAAAF,SAAA,4BACA,mBACA,YAAAC,aAAA,4BAEA,EACAhI,aAAAA,CAAA7vB,GACA,YAAA4P,SAAAC,QAAAshB,sBAAAnxB,KAAA,KAAA4P,SAAAC,QAAAshB,sBAAA,KAAAX,YACA,EACAa,cAAAA,CAAArxB,GACA,KAAAsI,MAAA,aAAAtI,EACA,EACAgwB,UAAAA,CAAA7oC,EAAAjE,GACA,QAAAq1C,eAAApxC,GAAAjE,EAAAqiB,iBACA,KAAAsqB,cAAA1oC,IAAA,KAAAkqC,eAAAlqC,EACA,EACAgqC,qBAAAA,CAAAnnC,GAKA,MAAA7C,EAAA,KAAAyoB,SAAAC,QAAAshB,sBAAAnnC,GAEA,OAAA7C,CACA,EACAy5C,sBAAAA,CAAA52C,GACA,MAAA7C,EAAA,KAAAyoB,SAAAC,QAAA+wB,uBAAA52C,GAEA,OAAA7C,CACA,EACAoxC,cAAAA,CAAAv4B,GACA,YAAA03B,eAAA9oC,MAAA8a,MAAA3P,GAAAzT,GAAAyD,eAAAgQ,EAAAoE,OAAA7W,WAAA0Y,EAAA1Y,aAAAqnB,MAAA,CACA,EACAupB,cAAAA,CAAA/hC,GAEA,KAAAmS,MAAA,aAAAnS,EACA,EACA6qC,mBAAAA,GAGA,KAAApxB,SAAAC,QAAAshB,sBAAA,KAAAM,cAAA,KAAA7hB,SAAAC,QAAAshB,sBAAA,KAAAX,cACA,KAAAiB,YAAA,KAAAp7B,gBACA,KAAAo7B,YAAA,KAAAn7B,eAEA,KAAAoiC,YAAA,KAAAuI,eAAA,KAAArxB,SAAAC,QAAA+wB,uBAAA,KAAAnP,aACA,KAAAiH,aACA,KAAA5wB,WAAA,KAEA,MAAAo5B,EAAA34B,SAAAmY,eAAA,gBACAwgB,GACAA,EAAAC,uBAAA,CACAC,SAAA,SACAC,MAAA,QACAC,WAAA,KAAAzJ,aAAA,OACA0J,WAAA,EACAC,eAAA,KAAAzc,UAEA,IAIA,EACAkc,cAAAA,CAAAj6C,GAGA,MAAAy6C,EAAA,KAAAhJ,YAAAr9B,QAAAsmC,GAAAA,GAAA16C,IAEA,OAAAy6C,GAAAA,EAAAnwC,OAAA,EAAAmwC,EAAAA,EAAAnwC,OAAA,QAAAmnC,YAAA,EACA,IC1Q0N,MCQtN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCmJhC,IACAl2C,KAAA,SACAklB,WAAA,CACAksB,WAAA,KACAgO,mBAAAA,IAEA/7B,MAAA,CACA+vB,cAAA5vB,QAEA4B,MAAA,CACAhM,gBAAAA,CAAAD,GACAA,GAEA,KAAAg1B,WAEA,EACA8F,yBAAAA,CAAAr4B,GACA,IAAAA,EACA,QAAA3B,gBAAA,KAAAA,eAAAolC,EACA7+C,OAAA8+C,SAAA,CACA5oC,IAAA,KAAAuD,eAAAolC,EACAE,OAAA,KAAAtlC,eAAAslC,QAAA,IAEAt9C,GAAA+G,SAAAnF,GAAA,WAEA,QAAAoW,gBAAA,KAAAA,eAAAulC,SAAA,CACA,IAAAb,EAAA34B,SAAAsjB,cAAA,KAAArvB,eAAAulC,UACAb,GACAA,EAAAC,uBAAA,CAAAC,SAAA,SAAAC,MAAA,QAAAC,WAAA,GAAAC,WAAA,EAAAC,eAAA,IAEAh9C,GAAA+G,SAAAnF,GAAA,KACA,MAEA,KAAA+5C,MAAAO,aAAA,GAAAM,sBAGA,KAAA14B,MAAA,aAAAnK,EACA,GAoBA/S,IAAAA,GACA,OACA+K,WAAA,EACA6rC,gBAAA,EACAvQ,WAAA,KACAhB,eAAA,KACA+C,QAAA,GACA+D,aAAA,EACA0K,YAAA,EACAC,UAAA,EACAC,mBAAA,EACArlB,MAAA,GACAga,SAAA,GACAU,gBAAA,KACAT,qBAAA,EACAqL,aAAA,GACAC,uBAAA,GACA5K,8BAAA,GACA6K,mCAAA,GACAC,qBAAA,GACAC,4BAAA,GACAC,yBAAA,GACAC,2BAAA,GACAC,YAAA,GACAC,kBAAA,GACAC,cAAA,GACAC,iBAAA,GACAC,uBAAA,KACA7M,8BAAA,CACAtnC,KAAA,GACA8vC,MAAA,GACAxjB,OAAA,GACAyjB,OAAA,GACAvL,QAAA,GACA9gC,aAAA,GACA2nC,MAAA,IAEA1D,6BAAA,CACA3nC,KAAA,GACA8vC,MAAA,GACAxjB,OAAA,GACAyjB,OAAA,GACAvL,QAAA,GACA9gC,aAAA,GACA2nC,MAAA,IAEAvG,YAAA,EACAX,UAAA,EACAiQ,aAAA,KACAC,UAAA,KAAAnmB,MACAgb,WAAA,EACAtH,YAAA,KACA0S,cAAA,KACAtL,UAAA,EACAC,cAAA,EACAH,cAAA,KACAyL,gBAAA,GACA1N,iBAAA,EACAoL,KAAA,eAEA,EACAr+B,SAAA,KACA2J,EAAAA,EAAAA,IAAA,2CACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAyJ,eAAA5R,GAAAA,EAAAC,IAAA2R,eACAC,aAAA7R,GAAAA,EAAAC,IAAA4R,aACAc,qBAAA3S,GAAAA,EAAAC,IAAA0S,qBACAC,eAAA5S,GAAAA,EAAAC,IAAA2S,eACAC,gBAAA7S,GAAAA,EAAAC,IAAA4S,gBACAC,kBAAA9S,GAAAA,EAAAC,IAAA6S,kBACAC,sBAAA/S,GAAAA,EAAAC,IAAA8S,sBACAC,cAAAhT,GAAAA,EAAAC,IAAA+S,cACAmB,WAAAnU,GAAAA,EAAAC,IAAAkU,WACArC,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAI,qBAAAlS,GAAAA,EAAAC,IAAAiS,uBAEAysC,kBAAAA,GACA,YAAAx2C,SAAAzR,EAAA+G,oBACA,KAAA0K,SAAAzR,EAAA0G,iBACA,EACAwhD,mBAAAA,GACA,YAAAz2C,SAAAzR,EAAA0G,iBACA,EACAyhD,mBAAAA,GACA,OAAAr+C,SAAAf,QACA,EACAsD,SAAAA,GACA,OAAAlB,GAAAyD,eAAA,KAAAsM,eACA,EACA5O,OAAAA,GACA,OAAAnB,GAAAyD,eAAA,KAAAuM,aACA,EACAqhC,UAAAA,GACA,OAAArxC,GAAAiB,SAAA,KAAAC,UAAA,KAAAC,QACA,EACAmvC,UAAAA,GACA,YAAAE,UAAA,KAAAA,SAAAyM,MAAAxpC,GAAAA,EAAAV,MAAA,GACA,EACAmqC,WAAAA,GACA,YAAAL,iBAAA,KAAAA,gBAAA7xC,OAAA,CACA,EACAskC,iBAAAA,GACA,6BAAAD,cAAA,oCACA,EACAkB,qBAAAA,GACA,YAAAC,SAAAyM,MAAAtM,GAAAA,EAAA59B,MAAA,GACA,EACA0+B,YAAAA,GACA,WAAAhzC,KAAA,KAAAyrC,YACA,EACAiT,UAAAA,GACA,mBAAA9N,eAAA,iBAAAA,cAAA,CACA,MAAAlE,EAAA,KAAAhB,eAAAnqC,GAAAyD,eAAA,KAAA0mC,gBAAA,KACA,GAAAgB,GAAAnrC,GAAAyD,eAAA,KAAAsM,iBAAAo7B,GAAAnrC,GAAAyD,eAAA,KAAAuM,cAAA,CACA,MAAA0K,EAAAywB,EAAA9nC,cACAoW,EAAAgG,OAAA0rB,EAAA7nC,WAAA,GAAAC,SAAA,OACAmW,EAAA+F,OAAA0rB,EAAAnqC,WAAAuC,SAAA,OACA,SAAAmX,KAAAjB,KAAAC,GACA,EACA,MAAAgB,EAAA,KAAA22B,WAAA,GAAAhuC,cACAoW,EAAAgG,OAAA,KAAA4xB,WAAA,GAAA/tC,WAAA,GAAAC,SAAA,OACAmW,EAAA+F,OAAA,KAAA4xB,WAAA,GAAArwC,WAAAuC,SAAA,OACA,SAAAmX,KAAAjB,KAAAC,GACA,CACA,CACA,WAEA,EACAw2B,yBAAAA,GACA,YAAArgC,WAAA,KAAA6rC,cACA,GAEA55B,OAAAA,GACArlB,OAAA2gD,iBAAA,cAAAC,aACA,EACAC,SAAAA,GACA7gD,OAAA8gD,oBAAA,cAAAF,aACA,EACA,aAAAh6B,SAGA,KAAA+mB,YACA,KAAAoT,wBACA,KAAAjzC,2BACA,KAAAssB,sBAAA,CAAAuW,YAAA,KAAAA,cAGA,KAAAsP,aAAAz2B,aAAA,KACA,KAAA5Q,kBAEA,KAAA+0B,WACA,GACA,KAAA4S,oBACA,EACA92B,aAAAA,GACAC,cAAA,KAAAu2B,aACA,EACAtgC,QAAA,CACA,eAAAguB,GACA,WAAAtlC,SAAAZ,GAAAxF,UACA,KAAAyrC,eAAArlC,CAEA,EAEA24C,aAAAA,GACA,KAAAxM,cAAA,CACA,EACA,kBAAAyM,SAEA,KAAA7mB,sBAAA,CAAAuW,YAAA,GACA,EACA,gBAAAwD,CAAAD,EAAAptB,GACA,IAAAotB,EAAA59B,OAKA,KAAAlD,WAAA,EACA,KAAAksC,uBAAA,SAGA,IAAA4B,SAAAC,GAAA9lB,WAAA8lB,EAAA,OAQA,KAAA1M,gBAAA,KAAAV,SAAA,KAAAC,sBAAA54B,YAEA,KAAAgf,sBAAA,CAAAuW,YAAA,KAlBA7pB,EAAAtE,gBAqBA,EACAoxB,YAAAA,GAOA,KAAAJ,6BAAA,WACA,KAAAA,6BAAA,YACA,KAAAA,6BAAA,aACA,KAAAA,6BAAA,aACA,KAAAA,6BAAA,cACA,KAAAA,6BAAA,mBACA,KAAAA,6BAAA,YACA,KAAA4N,kBACA,EACA1N,aAAAA,CAAA2N,EAAAhpC,GACA,QAAAm7B,6BAAA6N,GAAA,CACA,MAAA7hC,EAAA,KAAAg0B,6BAAA6N,GAAA5mC,QAAApC,IACA,IAAAmH,GACA,KAAAg0B,6BAAA6N,GAAAlqC,OAAAqI,EAAA,EAEA,CACA,EACA4hC,gBAAAA,GACA,MAAAE,EAAA,KAAAlE,MAAAkE,iBACAA,GAAA,KAAA9N,6BAAA,WACA8N,EAAAC,yBAAAC,IACAA,EAAAC,WACAD,EAAAE,YAAA,EACA,GAGA,EACAC,iBAAAA,GACA,IAAAC,EAAA,KACAC,EAAA,KAAAzE,MAAAwE,eAEA,OADAC,GAAAA,EAAAtzC,OAAA,IAAAqzC,EAAAC,EAAA,IACAD,CACA,EACAE,kBAAAA,GACA,IAAAC,EAAA,KACAC,EAAA,KAAA5E,MAAA2E,gBAEA,OADAC,GAAAA,EAAAzzC,OAAA,IAAAwzC,EAAAC,EAAA,IACAD,CACA,EACAE,mBAAAA,GACA,IAAAC,EAAA,KACAC,EAAA,KAAA/E,MAAA8E,iBAEA,OADAC,GAAAA,EAAA5zC,OAAA,IAAA2zC,EAAAC,EAAA,IACAD,CACA,EACAE,mBAAAA,GACA,IAAAC,EAAA,KACAC,EAAA,KAAAlF,MAAAiF,iBAEA,OADAC,GAAAA,EAAA/zC,OAAA,IAAA8zC,EAAAC,EAAA,IACAD,CACA,EACAE,sBAAAA,GACA,IAAAC,EAAA,KACAC,EAAA,KAAArF,MAAAsF,kBAEA,OADAD,GAAAA,EAAAl0C,OAAA,IAAAi0C,EAAAC,EAAA,IACAD,CACA,EACAG,yBAAAA,GACA,IAAAC,EAAA,KACAC,EAAA,KAAAzF,MAAAwF,uBAEA,OADAC,GAAAA,EAAAt0C,OAAA,IAAAq0C,EAAAC,EAAA,IACAD,CACA,EACAE,kBAAAA,GACA,IAAAC,EAAA,KACAC,EAAA,KAAA5F,MAAA2F,gBAEA,OADAC,GAAAA,EAAAz0C,OAAA,IAAAw0C,EAAAC,EAAA,IACAD,CACA,EACA,kBAAArS,CAAAc,SAEA,KAAApX,sBAAA,CAAAuW,YAAAa,IAAA,EACA,EACA,uBAAAnnB,SAEA,KAAA+P,sBAAA,CAAAuW,YAAA,GAOA,EAEA,mBAAAb,GACA,IAAAmT,EAAA,KAAArzB,OAAAmK,MAAAnO,KAAA,KAAAgE,OAAAmK,MAAAnO,KAAA,GACAq3B,IAAA,KAAAlpB,OAAA,UAAAA,QACA,KAAA0T,YAAA,KAAAiT,WACA,KAAA/N,0BACA,KAAAsO,eAGA,EACAiC,UAAAA,GACA,IAAAD,EAAA,KAAArzB,OAAAmK,MAAAnO,KAEA,OACA,KAAAmO,OAAAkpB,GACA,KAAAzP,6BAAA,cAAAA,6BAAA,QAAAjlC,OAAA,GACA,KAAAilC,6BAAA,eAAAA,6BAAA,SAAAjlC,OAAA,GACA,KAAAilC,6BAAA,gBAAAA,6BAAA,UAAAjlC,OAAA,GACA,KAAAilC,6BAAA,gBAAAA,6BAAA,UAAAjlC,OAAA,GACA,KAAAilC,6BAAA,iBAAAA,6BAAA,WAAAjlC,OAAA,GAEA,KAAAilC,6BAAA,sBAAAA,6BAAA,gBAAAjlC,OAAA,GACA,KAAAilC,6BAAA,eAAAA,6BAAA,SAAAjlC,OAAA,CAEA,EACA40C,iBAAAA,GACA,IAAAppB,EAAA,KACAqpB,EAAA,GACAA,EAAA,KAAAvO,SAAA,OACA,KAAAC,aAAA,WACA,QACA/a,EAAA,CACAnO,KAAA,KAAAmO,MACAma,QAAA,KAAAO,gBACA5oC,KAAA,KAAA4hC,YACA4V,aAAA,KAAA7P,6BAAA,SACArb,OAAA,KAAAqb,6BAAA,UACAoI,OAAA,KAAApI,6BAAA,UACAnD,QAAA,KAAAmD,6BAAA,WACAjkC,aAAA,KAAAikC,6BAAA,gBACA0D,MAAA,KAAA1D,6BAAA,SACAhC,KAAA,KAAAb,YACA2S,IAAAF,GAGA,KAAA3/B,QAAApe,KAAA,CAAA00B,UAEA,KAAAlT,KAAAxhB,KAAA,CAAAyhB,MAAA,oBAAAjd,QAAA,KAAAA,WAAAkwB,GACA,EACAgnB,eAAAA,GACA,MAAAwC,EAAA,KAAA3zB,OAAAmK,MAAAnO,KAEA,KAAAmO,MADAwpB,GAGA,GAGA,MAAAC,EAAA,KAAA5zB,OAAAmK,MAAAyX,KACAgS,IAAA,KAAA7S,YAAAzuC,SAAAshD,IAQA,MAAAC,EAAA,KAAA7zB,OAAAmK,MAAAma,QAEA,KAAAO,gBADAgP,EACA,kBAAAA,EAAAA,EACAA,EAAA5b,WAEA,MAGA,MAAA6b,EAAA,KAAA9zB,OAAAmK,MAAAluB,KAEA,KAAA4hC,YADAiW,GAGA,KAAAhD,WAGA,MAAAiD,EAAA,KAAA/zB,OAAAmK,MAAAspB,aACAM,IACA,kBAAAA,EAAA,KAAAnQ,6BAAA,SAAAnuC,KAAAs+C,GACA,KAAAnQ,6BAAA,SAAA1wB,OAAA+1B,OAAA8K,IAEA,MAAAC,EAAA,KAAAh0B,OAAAmK,MAAA5B,OACAyrB,IACA,kBAAAA,EAAA,KAAApQ,6BAAA,UAAAnuC,KAAAu+C,GACA,KAAApQ,6BAAA,UAAA1wB,OAAA+1B,OAAA+K,IAEA,MAAAC,EAAA,KAAAj0B,OAAAmK,MAAA6hB,OACAiI,IACA,kBAAAA,EAAA,KAAArQ,6BAAA,UAAAnuC,KAAAw+C,GACA,KAAArQ,6BAAA,UAAA1wB,OAAA+1B,OAAAgL,IAEA,MAAAC,EAAA,KAAAl0B,OAAAmK,MAAAsW,QACAyT,IACA,kBAAAA,EAAA,KAAAtQ,6BAAA,WAAAnuC,KAAAy+C,GACA,KAAAtQ,6BAAA,WAAA1wB,OAAA+1B,OAAAiL,IAEA,MAAAC,EAAA,KAAAn0B,OAAAmK,MAAAxqB,aACAw0C,IACA,kBAAAA,EAAA,KAAAvQ,6BAAA,gBAAAnuC,KAAA0+C,GACA,KAAAvQ,6BAAA,gBAAA1wB,OAAA+1B,OAAAkL,IAEA,MAAAC,EAAA,KAAAp0B,OAAAmK,MAAAmd,MACA8M,IACA,kBAAAA,EAAA,KAAAxQ,6BAAA,SAAAnuC,KAAA2+C,GACA,KAAAxQ,6BAAA,SAAA1wB,OAAA+1B,OAAAmL,IAGA,MAAAC,EAAA,KAAAr0B,OAAAmK,MAAAupB,IACA,QAAAW,GACA,KAAAxT,QAAA,IACA,KAAAqN,KAAA,WACA,KAAA/I,WAAA,EACA,KAAAF,UAAA,EACA,KAAAC,cAAA,GACA,YAAAmP,GACA,KAAAxT,QAAA,IACA,KAAAqN,KAAA,WACA,KAAA/I,WAAA,EACA,KAAAF,UAAA,EACA,KAAAC,cAAA,IAEA,KAAArE,QAAA,GACA,KAAAqN,KAAA,eACA,KAAA/I,WAAA,EACA,KAAAF,UAAA,EACA,KAAAC,cAAA,EAEA,EACAoP,qBAAAA,CAAAhQ,GACA,KAAAO,gBAAAP,GAAA,KAAA8L,uBACA,KAAAhM,qBAAA,KAAAD,SAAAh9B,WAAAC,GAAAA,EAAAoE,OAAA84B,GACA,EACAiQ,YAAAA,GAEA,IAAAC,EAIA,GAHA,KAAAvE,mBAAAxP,UACA+T,EAAA,KAAAvE,mBAAAxP,SAEA,KAAAuP,YAAA,CACA,KAAAzM,8BAAA,WACA,KAAAA,8BAAA,YACA,KAAAA,8BAAA,aACA,KAAAA,8BAAA,aACA,KAAAA,8BAAA,cACA,KAAAA,8BAAA,mBACA,KAAAA,8BAAA,YACA,uBAAAsB,kBAAA,KAAAmL,YAAA,eAAAA,YAAA,YAEA,MAAAyE,EAAA,KAAAzE,YACA,QAAA0E,KAAAD,EAAA,CACA,MAAAhD,EAAAiD,EAEAC,EAAAF,EAAAC,GACA,OAAAjD,GACA,WAEA,QAAAmD,KAAAD,EAAA,CACA,MAAAE,EAAAF,EAAAC,GACA,KAAArR,8BAAAkO,GAAAh8C,KAAA,CACA6R,GAAAutC,EAAArpC,MACAiW,MAAAozB,EAAA74B,MAEA,CAEA,MACA,aAEA,QAAA44B,KAAAD,EAAA,CACA,MAAAE,EAAAF,EAAAC,GACA,KAAArR,8BAAAkO,GAAAh8C,KAAA,CACA6R,GAAAutC,EAAArpC,MACAiW,MAAAozB,EAAA74B,MAEA,CAEA,MACA,YAEA,QAAA44B,KAAAD,EAAA,CACA,MAAAE,EAAAF,EAAAC,GACA,KAAArR,8BAAAkO,GAAAh8C,KAAA,CACA6R,GAAAutC,EAAArpC,MACAiW,MAAAozB,EAAA74B,MAEA,CAEA,MACA,aAEA,QAAA44B,KAAAD,EAAA,CACA,MAAAE,EAAAF,EAAAC,GAEAE,EAAAD,EAAAvtC,GAEAytC,EAAA,CACAnlD,KAAA,YACA0X,GAAAwtC,EACArzB,MAAAozB,EAAApzB,MACAiQ,SAAAmjB,EAAAnjB,UAEA,KAAA6R,8BAAAkO,GAAAh8C,KAAAs/C,EACA,CAEA,MACA,cAEA,QAAAH,KAAAD,EAAA,CACA,MAAAE,EAAAF,EAAAC,GACA,KAAArR,8BAAA,WAAA9tC,KAAA,CACA6R,GAAAutC,EAAArpC,MACAiW,MAAAozB,EAAA74B,MAEA,CAEA,MACA,mBAEA,QAAA44B,KAAAD,EAAA,CACA,MAAAE,EAAAF,EAAAC,GACA,KAAArR,8BAAAkO,GAAAh8C,KAAA,CACA6R,GAAAutC,EAAArpC,MACAiW,MAAAozB,EAAA74B,MAEA,CAEA,MACA,YAEA,QAAA44B,KAAAD,EAAA,CACA,MAAAE,EAAAF,EAAAC,GACA,KAAArR,8BAAAkO,GAAAh8C,KAAA,CACA6R,GAAAutC,EAAArpC,MACAiW,MAAAozB,EAAA74B,MAEA,CAEA,MAEA,CACA,GAAAw4B,GAAA,gBAAA3P,gBAAA,CACA,KAAAtB,8BAAA,cACAiR,EAAAA,EAAA1mC,KAAAsc,IAAA,CACA9iB,GAAA8iB,EAAA5e,MACAiW,MAAA2I,EAAApO,SAEA,QAAAg5B,KAAAR,EAAA,CACA,MAAAK,EAAAL,EAAAQ,GACA,KAAAzR,8BAAA,WAAA9tC,KAAAo/C,EACA,CACA,CACA,CAEA,EAEA,2BAAArqB,EAAA,YAAAuW,IACA,KAAAv9B,WAAA,EACA,KAAAu9B,YAAAA,EACA,IAAAkU,EAAA,KAAAC,cAAAnU,GACA,KAAAwS,oBACA17C,GAAAkF,4BAAAk4C,GAAAlvC,MAAA,OAAAtN,WAmBA,GAlBA,KAAAqsC,8BAAArsC,EAAA08C,uBACA,KAAAxF,mCAAAl3C,EAAA08C,uBACA,KAAA1F,aAAA,KAAA3K,8BACA,KAAAC,cAAAtsC,EAAAg8C,OACA,KAAArU,UAAA3nC,EAAA28C,MAEA,uBAAAvQ,kBACA,KAAAC,8BAAArsC,EAAA48C,WACA,KAAAjV,UAAA,KAAA0E,8BAAAnmC,QAGA,KAAAqxC,YAAAv3C,EAAAg8C,OACA,KAAAxE,kBAAAx3C,EAAAg8C,OACA,KAAAa,eAAA,KAAAtF,mBACA,IAAAsB,SAAAC,GAAA9lB,WAAA8lB,EAAA,OACA,KAAAgD,eAGA,KAAAnU,UAAA,EAEA,QAAA+D,SAAA,KAAAC,sBAAA19B,MAAA,GACA,MAAA6uC,EAAA,KAAApR,SAAAptB,MAAA3P,GAAAA,EAAAV,MAAA,IACA,GAAA6uC,EAGA,OAFA,KAAAjB,sBAAAiB,EAAA/pC,kBACA,KAAAgf,sBAAA,CAAAuW,YAAA,GAGA,KAEA,CACA,MAAAyU,EAAA/8C,EAAAg8C,OAAAx4C,KAAA8a,MAAA3P,GAAAA,EAAA4U,KAAA,IACA,GAAAw5B,EAAA,CACA,MAAAC,EAAA9hD,GAAAyD,eAAAo+C,EAAAhqC,OACA6C,EAAAonC,EAAAz+C,cACAoW,EAAAgG,OAAAqiC,EAAAx+C,WAAA,GAAAC,SAAA,OACAmW,EAAA+F,OAAAqiC,EAAA9gD,WAAAuC,SAAA,OAGA,OAFA,KAAA2mC,YAAA,GAAAxvB,KAAAjB,KAAAC,eACA,KAAAmd,sBAAA,CAAAuW,YAAA,GAEA,CACA,MAEA,KAAAuT,sBAAA,KAAAzP,iBAGA,KAAA1vB,WAAA,KACA,KAAA3R,WAAA,IACA,GAEA,EAEA,wBAAAtF,GACArG,GAAAqG,mBAAA,KAAAjE,SAAA8L,MAAA,EAAAtN,WACAA,IACA,KAAA+3C,gBAAA/3C,EACA,GAEA,EAEA68C,cAAAA,CAAAtF,GAGA,KAAAE,cAAA,GACAF,GAAA3G,UAAA1qC,OAAA,EACA,KAAAuxC,cAAAz6C,KAAA,CAAA+V,MAAAwkC,EAAA3G,SAAA,GAAA79B,MAAA9E,MAAAspC,EAAA3G,SAAA,GAAArtB,OAEA,KAAAk0B,cAAAz6C,KAAA,CAAA+V,MAAA,WAAA9E,MAAA,IAGAspC,GAAA0F,YAAA/2C,OAAA,EACA,KAAAuxC,cAAAz6C,KAAA,CAAA+V,MAAAwkC,EAAA0F,WAAA,GAAAlqC,MAAA9E,MAAAspC,EAAA0F,WAAA,GAAA15B,OAEA,KAAAk0B,cAAAz6C,KAAA,CAAA+V,MAAA,aAAA9E,MAAA,IAGAspC,GAAA2F,gBAAAh3C,OAAA,EACA,KAAAuxC,cAAAz6C,KAAA,CAAA+V,MAAAwkC,EAAA2F,eAAA,GAAAnqC,MAAA9E,MAAAspC,EAAA2F,eAAA,GAAA35B,OAEA,KAAAk0B,cAAAz6C,KAAA,CAAA+V,MAAA,iBAAA9E,MAAA,IAGAspC,GAAA4F,8BAAAj3C,OAAA,EACA,KAAAuxC,cAAAz6C,KAAA,CAAA+V,MAAAwkC,EAAA4F,6BAAA,GAAApqC,MAAA9E,MAAAspC,EAAA4F,6BAAA,GAAA55B,OAEA,KAAAk0B,cAAAz6C,KAAA,CAAA+V,MAAA,+BAAA9E,MAAA,IAGAspC,GAAA6F,qBAAAl3C,OAAA,EACA,KAAAuxC,cAAAz6C,KAAA,CAAA+V,MAAAwkC,EAAA6F,oBAAA,GAAArqC,MAAA9E,MAAAspC,EAAA6F,oBAAA,GAAA75B,OAEA,KAAAk0B,cAAAz6C,KAAA,CAAA+V,MAAA,sBAAA9E,MAAA,IAGAspC,GAAA8F,wBAAAn3C,OAAA,EACA,KAAAuxC,cAAAz6C,KAAA,CAAA+V,MAAAwkC,EAAA8F,uBAAA,GAAAtqC,MAAA9E,MAAAspC,EAAA8F,uBAAA,GAAA95B,OAEA,KAAAk0B,cAAAz6C,KAAA,CAAA+V,MAAA,yBAAA9E,MAAA,IAIAspC,EAAA+F,cACA,KAAA7F,cAAAz6C,KAAA,CAAA+V,MAAAwkC,EAAA+F,cAAA,GAAAvqC,MAAA9E,MAAAspC,EAAA+F,cAAA,GAAA/5B,OAEA,KAAAk0B,cAAAz6C,KAAA,CAAA+V,MAAA,gBAAA9E,MAAA,IAUAspC,GAAAgG,SAAAr3C,OAAA,EACA,KAAAuxC,cAAAz6C,KAAA,CAAA+V,MAAAwkC,EAAAgG,QAAA,GAAAxqC,MAAA9E,MAAAspC,EAAAgG,QAAA,GAAAh6B,OAEA,KAAAk0B,cAAAz6C,KAAA,CAAA+V,MAAA,UAAA9E,MAAA,IAIA,KAAAuvC,qBAAA,KAAA/F,cAAA,KAAArL,gBAEA,EACAoR,oBAAAA,CAAAC,GAEA,GAAAA,EAAA,CACA,IAAAC,EAAAD,EACA,GAAAC,EAAAx3C,OAAA,EACA,YAAAqkC,eACA,sBACA,MAAAoT,EAAAD,EAAAp/B,MAAA3P,GAAA,OAAAA,EAAAoE,QACA4qC,GAAAD,EAAA1gD,KAAA,CAAA+V,MAAA,MAAA9E,MAAA,IAEA,MAAA2vC,EAAAF,EAAAp/B,MAAA3P,GAAA,kBAAAA,EAAAoE,QACA6qC,GAAAF,EAAA1gD,KAAA,CAAA+V,MAAA,iBAAA9E,MAAA,IAEA,MAAA4vC,EAAAH,EAAAp/B,MAAA3P,GAAA,0BAAAA,EAAAoE,QACA8qC,GAAAH,EAAA1gD,KAAA,CAAA+V,MAAA,yBAAA9E,MAAA,IAEA,MAAA6vC,EAAAJ,EAAAp/B,MAAA3P,GAAA,gCAAAA,EAAAoE,QACA+qC,GAAAJ,EAAA1gD,KAAA,CAAA+V,MAAA,+BAAA9E,MAAA,IAEA,MAAA8vC,EAAAL,EAAAp/B,MAAA3P,GAAA,uBAAAA,EAAAoE,QACAgrC,GAAAL,EAAA1gD,KAAA,CAAA+V,MAAA,sBAAA9E,MAAA,IACA,MAAA+vC,EAAAN,EAAAp/B,MAAA3P,GAAA,iBAAAA,EAAAoE,QACAirC,GAAAN,EAAA1gD,KAAA,CAAA+V,MAAA,gBAAA9E,MAAA,IAEAyvC,EAAAA,EAAA1tC,QACArB,GACA,QAAAA,EAAAoE,OACA,KAAA/G,sBAAA,kBAAA2C,EAAAoE,OACA,KAAA7G,iBAAA,2BAAAyC,EAAAoE,QACA,KAAA5G,mBAAA,KAAAC,wBAAA,mBAAAuC,EAAAoE,QACA,KAAA5G,mBAAA,KAAAC,wBACA,KAAA4rC,oBACA,wBAAArpC,EAAAoE,QACA,KAAA5G,mBAAA,KAAAC,wBACA,KAAA6rC,qBACA,iCAAAtpC,EAAAoE,QAGA,KACA,CAEA,eACA,MAAAkrC,EAAAP,EAAAp/B,MAAA3P,GAAA,WAAAA,EAAAoE,QACAkrC,GAAAP,EAAA1gD,KAAA,CAAA+V,MAAA,UAAA9E,MAAA,IAEAyvC,EAAAA,EAAA1tC,QAAArB,GAAA,KAAAtC,eAAA,YAAAsC,EAAAoE,QACA,KACA,CAEA,gBACA,MAAAmrC,EAAAR,EAAAp/B,MAAA3P,GAAA,YAAAA,EAAAoE,QACAmrC,GAAAR,EAAA1gD,KAAA,CAAA+V,MAAA,WAAA9E,MAAA,IAEAyvC,EAAAA,EAAA1tC,QAAArB,GAAA,KAAA1C,gBAAA,aAAA0C,EAAAoE,QACA,KACA,EAIA,MAAAorC,EAAA,CACA,CAAAhnD,KAAA,MAAAk9C,MAAA,GACA,CAAAl9C,KAAA,iBAAAk9C,MAAA,GACA,CAAAl9C,KAAA,sBAAAk9C,MAAA,IACA,CAAAl9C,KAAA,+BAAAk9C,MAAA,IACA,CAAAl9C,KAAA,yBAAAk9C,MAAA,IACA,CAAAl9C,KAAA,UAAAk9C,MAAA,IACA,CAAAl9C,KAAA,WAAAk9C,MAAA,IACA,CAAAl9C,KAAA,gBAAAk9C,MAAA,KAGA,KAAA3I,SAAAgS,EAAAjI,MAAA,CAAAf,EAAAC,IAAAwJ,EAAA7/B,MAAA3P,GAAAA,EAAAxX,MAAAu9C,EAAA3hC,SAAAshC,MAAA8J,EAAA7/B,MAAA3P,GAAAA,EAAAxX,MAAAw9C,EAAA5hC,SAAAshC,OAoBA,MACA,KAAA3I,SAAA,EAGA,EAEA+Q,aAAAA,CAAAnU,GACA,YAAAiC,eACA,qBACA,KAAAuN,cAAA/nD,EAAAwB,+CACA,MACA,cACA,KAAAumD,cAAA/nD,EAAAyB,6CACA,MACA,eACA,KAAAsmD,cAAA/nD,EAAA0B,8CACA,MAGA,IAAA2sD,EAAA,KAAAtG,cACAl2C,QAAA,kBAAA5I,mBAAA,KAAA04B,QACA9vB,QAAA,SAAA0mC,GACA1mC,QAAA,cAAA6zC,MACA7zC,QAAA,iBAAA4L,YACA5L,QAAA,sBAAAJ,SACAI,QAAA,iBAAAwqC,iBAuCA,OArCA,KAAAjB,6BAAA,gBAAAA,6BAAA,UAAAjlC,OAAA,IACAk4C,EAAAA,EAAArlD,OACA,gBAAAoyC,6BAAA,UAAA91B,KAAA1G,GAAA3V,mBAAA2V,KAAAjQ,KAAA,gBAIA,KAAAysC,6BAAA,sBAAAA,6BAAA,gBAAAjlC,OAAA,IACAk4C,EAAAA,EAAArlD,OACA,sBAAAoyC,6BAAA,gBAAA91B,KAAA1G,GAAA3V,mBAAA2V,KAAAjQ,KAAA,sBAIA,KAAA0mC,cACAgZ,EAAAA,EAAArlD,OAAA,SAAAC,mBAAA,KAAAosC,iBAEA,KAAA+F,6BAAA,iBAAAA,6BAAA,WAAAjlC,OAAA,IACAk4C,EAAAA,EAAArlD,OACA,iBAAAoyC,6BAAA,WAAA91B,KAAA1G,GAAA3V,mBAAA2V,KAAAjQ,KAAA,iBAGA,KAAAysC,6BAAA,eAAAA,6BAAA,SAAAjlC,OAAA,IACAk4C,EAAAA,EAAArlD,OACA,eAAAoyC,6BAAA,SAAA91B,KAAA1G,GAAA3V,mBAAA2V,KAAAjQ,KAAA,eAGA,KAAAysC,6BAAA,gBAAAA,6BAAA,UAAAjlC,OAAA,IACAk4C,EAAAA,EAAArlD,OACA,gBAAAoyC,6BAAA,UAAA91B,KAAA1G,GAAA3V,mBAAA2V,KAAAjQ,KAAA,gBAGA,KAAAysC,6BAAA,eAAAA,6BAAA,SAAAjlC,OAAA,IACAk4C,EAAAA,EAAArlD,OACA,eAAAoyC,6BAAA,SAAA91B,KAAA1G,GAAA3V,mBAAA2V,KAAAjQ,KAAA,eAGA0/C,EAAAA,EAAArlD,OAAA,kBAAAqvC,WAEAgW,CACA,EACAxT,qBAAAA,CAAA73B,GACA,OAAAA,GACA,WACA,OACAsrC,YAAA,EACAh5B,GAAA,EACA0lB,UAAA,EACAC,YAAA,OACAC,MAAA,EACAC,UAAAj9B,GAAA,SAAAA,KACAqwC,SAAA,GAEA,YACA,OACAD,YAAA,EACAh5B,GAAA,EACA0lB,UAAA,EACAC,YAAA,QACAC,MAAA,EACAC,UAAAj9B,GAAA,UAAAA,KACAqwC,SAAA,GAEA,YACA,OACAD,YAAA,EACAh5B,GAAA,EACA0lB,UAAA,EACAC,YAAA,QACAC,MAAA,EACAC,UAAAj9B,GAAA,UAAAA,KACAqwC,SAAA,GAEA,aACA,OACAD,YAAA,EACAh5B,GAAA,EACA0lB,UAAA,EACAC,YAAA,SACAC,MAAA,EACAC,UAAAj9B,GAAA,WAAAA,KACAqwC,SAAA,GAEA,aACA,OACAD,YAAA,EACAh5B,GAAA,EACA0lB,UAAA,EACAC,YAAA,SACAC,MAAA,EACAC,UAAAj9B,GAAA,WAAAA,KACAqwC,SAAA,GAEA,cACA,OACAD,YAAA,EACAtT,UAAA,EACAC,YAAA,oBACAC,MAAA,EACAC,UAAAj9B,GAAA,sBAAAA,KACAqwC,SAAA,GAEA,mBACA,OACAD,YAAA,EACAtT,UAAA,EACAC,YAAA,WACAC,MAAA,EACAC,UAAAj9B,GAAA,YAAAA,KACAqwC,SAAA,GAGA,EACA7T,gBAAAA,CAAA13B,EAAAwrC,GAAA,GACA,MAAAC,EAAA,GACA,UAAAziD,KAAA,KAAAwwC,WAAA,CACA,MAAAnwC,EAAA85B,GAAAA,GAAAuoB,WAAA1iD,GAAA7B,IAAA,CAAA2a,KAAA,EAAAC,OAAA,EAAAgS,QAAA,IACAzqB,EAAAD,EAAAlC,IAAA,CAAA2a,KAAA,GAAAC,OAAA,GAAAgS,QAAA,KACA03B,EAAAxhD,KAAA,CACA0hD,KAAAtiD,EAAAuiD,QACAtkB,GAAAh+B,EAAAsiD,QACAxnD,KAAAiF,EAAAwiD,UAAA,SAAA5/C,eAAA,CAAA2V,MAAA,OAAAC,IAAA,aAEA,CAEA,IAAAiqC,EAAA,GAEA,OAAA9rC,GACA,qBACA8rC,EAAA,CACAvL,MAAA,EAAA1iC,KAAA,QAAAzZ,KAAA,QAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SACA+c,OAAA,EAAAlf,KAAA,QAAAzZ,KAAA,SAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SACAwgC,OAAA,EAAA3iC,KAAA,QAAAzZ,KAAA,SAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SACA87B,MAAA,EAAAj+B,KAAA,QAAAzZ,KAAA,QAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,UAGAwrC,IAAAM,EAAA/uB,OAAA,EAAAlf,KAAA,QAAAzZ,KAAA,SAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,UACA,MAEA,6BACA8rC,EAAA,CACAvL,MAAA,EAAA1iC,KAAA,QAAAzZ,KAAA,QAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SACA+c,OAAA,EAAAlf,KAAA,QAAAzZ,KAAA,SAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SACAwgC,OAAA,EAAA3iC,KAAA,QAAAzZ,KAAA,SAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SACA87B,MAAA,EAAAj+B,KAAA,QAAAzZ,KAAA,QAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,UAEA,MAEA,mCACA8rC,EAAA,GACA,MAEA,0BACAA,EAAA,GACA,MAEA,cACAA,EAAA,CACA7W,QAAA,EAAAp3B,KAAA,QAAAzZ,KAAA,UAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,UAEA,MAEA,eACA8rC,EAAA,CACAtL,OAAA,EAAA3iC,KAAA,QAAAzZ,KAAA,SAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SACAi1B,QAAA,EAAAp3B,KAAA,QAAAzZ,KAAA,UAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,UAEA,MAEA,oBAEA8rC,EAAA,CAGAtL,OAAA,EAAA3iC,KAAA,QAAAzZ,KAAA,SAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SAEA7L,aAAA,EAAA0J,KAAA,QAAAzZ,KAAA,eAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,SACA87B,MAAA,EAAAj+B,KAAA,QAAAzZ,KAAA,QAAAuuB,KAAA,IAAA+vB,KAAA,CAAA1iC,MAAA,UAGA,MAEA,OAAA8rC,CACA,EACA3S,gBAAAA,CAAAn5B,GACA,OAAAA,GACA,UACA,qBACA,qBACA,4BACA,6BACA,0BACA,mCACA,yBACA,0BACA,eACA,cACA,6BACA,eACA,kBACA,oBACA,0BACA,QACA,OAAAA,EAEA,EACA+rC,kBAAAA,CAAAC,EAAAzC,EAAA0C,GACA,MAAAC,EAAAD,EAAA1gC,MAAA3P,GAAAA,EAAAE,IAAAkwC,IACA,GAAAE,EACAA,EAAAhmB,WAAAgmB,EAAAhmB,SAAA,IAEAgmB,EAAAhmB,SAAAj8B,KAAAs/C,QAEA,QAAAv/C,EAAA,EAAAA,EAAAiiD,EAAA94C,OAAAnJ,IAAA,CACA,MAAAqzC,EAAA4O,EAAAjiD,GACAqzC,EAAAnX,UAAA,KAAA6lB,mBAAAC,EAAAzC,EAAAlM,EAAAnX,SACA,CAEA,EAEAkO,kBAAAA,CAAArvC,GACA,KAAAA,EAAA8wC,OACA,KAAAnB,eAGA,EAEA,oBAAAmF,CAAAsS,GACA,KAAAxS,WAAA,EACA,KAAAF,UAAA,EACA,KAAAC,cAAA,EACAyS,EAAA1S,UAAA0S,EAAAzS,cACA,KAAArE,QAAA,IACA,KAAAqN,KAAA,aAEA,KAAArN,QAAA,GACA,KAAAqN,KAAA,gBAEA,KAAA/I,UAAAwS,EAAAxS,UACA,KAAAF,SAAA0S,EAAA1S,SACA,KAAAC,aAAAyS,EAAAzS,mBAEA,KAAA1a,sBAAA,CAAAuW,YAAA,GACA,EAEA,YAAAuE,CAAAsS,GACA,MAAAvpC,EAAAupC,EAAA5gD,cACAoW,EAAAgG,OAAAwkC,EAAA3gD,WAAA,GAAAC,SAAA,OACAmW,EAAA+F,OAAAwkC,EAAAjjD,WAAAuC,SAAA,OACA,KAAA2mC,YAAA,GAAAxvB,KAAAjB,KAAAC,UAEA,KAAAmd,sBAAA,CAAAuW,YAAA,GACA,EAEAsD,aAAAA,CAAAwT,EAAAC,EAAAC,GACA,QAAA5T,SAAA0T,GAAAnxC,OAAAqxC,EAAAnlC,gBACA,EACA2yB,cAAAA,CAAA/hC,GAEA,KAAA6rC,eAAA7rC,CACA,EACAwtC,YAAAA,GACA,KAAAlO,gBAAA1yC,OAAA4nD,QAAA,EACA,EACAjV,iBAAAA,GACA,KAAAyK,MAAAyK,WAAAzJ,uBAAA,CAAAC,SAAA,SAAAC,MAAA,QAAAC,WAAA,GAAAC,WAAA,EAAAC,eAAA,GACA,IC9vC8M,MCQ1M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QC+DhC,IACAj/C,KAAA,WACA6nB,OAAA,CAAA2c,GAAAC,IACAvf,WAAA,CACAkqB,WAAA,GACAC,gBAAA,GACAiZ,OAAA,GACA55B,oBAAA,GACA4gB,oBAAA,GACA3gB,oBAAAA,IAEA9lB,IAAAA,GACA,OACA85B,cAAA,EACAC,MAAA,CACA,CACAta,OAAA,2BACA+c,OAAA,CACA,EAEAnlC,QAAA,mDACAqK,OAAA,CACA+6B,UAAA,MACAC,iBAAA,EACAC,WAAA,IAGA,CACAld,OAAA,2BACA+c,OAAA,CACA,EAEAnlC,QAAA,mGACAqK,OAAA,CACA+6B,UAAA,SACAC,iBAAA,EACAC,WAAA,IAGA,CACAld,OAAA,2BACA+c,OAAA,CACA,EAEAnlC,QAAA,8FACAqK,OAAA,CACA+6B,UAAA,MACAE,WAAA,EACAD,iBAAA,IAGA,CACAjd,OAAA,2BACA+c,OAAA,CACA,EAEAnlC,QAAA,qCACAqK,OAAA,CACA+6B,UAAA,SACAE,WAAA,EACAD,iBAAA,IAGA,CACAjd,OAAA,2BACA+c,OAAA,CACA,EAEAnlC,QAAA,4FACAqK,OAAA,CACA+6B,UAAA,MACAE,WAAA,EACAD,iBAAA,KAIA7C,UAAA,CACA+C,OAAAA,IAAA,KAAArB,gBAAA,UACAsB,SAAAA,IAAA,KAAAtB,gBAAA,WAEAmkB,UAAA,GACAC,cAAA,GACAC,aAAA,GACA1d,aAAA,EACAD,iBAAA,EACAE,eAAA,EACAY,2BAAA,KACAC,oBAAA,KACAZ,mBAAA,KAEA,EACAhrB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAuH,WAAA7T,GAAAA,EAAAC,IAAAwR,QACA2C,cAAApU,GAAAA,EAAAC,IAAAmU,cACApC,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAO,YAAAxS,GAAAA,EAAAC,IAAAuS,kBAEAkV,EAAAA,EAAAA,IAAA,8DAEA2d,eAAAA,GACA,MAAAE,EAAA,CACA,GAAA7uC,EAAAmF,oBAAAnF,EAAAoF,4BACA,GAAApF,EAAAmF,oBAAAnF,EAAAqF,iCACA,GAAArF,EAAAmF,oBAAAnF,EAAAsF,kCAEA,OAAAupC,EAAAvpB,KAAA1G,GAAA,SAAAhJ,cAAAgJ,MAAAoP,SAAA,KAAAwJ,OAAA0V,KACA,EACAtD,QAAAA,GACA,kBAAA3U,QAAAgY,YAAA,YAAAhY,QAAAgY,YAAA,YAAAhY,QAAAgY,UACA,EACA2B,UAAAA,GACA,YAAApX,OAAA0V,OAAA,SAAAt3B,cAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,eAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,iBACA,GAEA,aAAA4Y,GAAA,EACAjH,QAAA,CACAorB,YAAAA,GACA,YAAAN,mBAAAC,cAAA,KAAAD,mBAAAC,aAAAC,UAAA,KAAAF,mBAAAC,aAAAC,SAAAp8B,OAAA,CACA,EACAy8B,gBAAAA,GACA,YAAAP,mBAAAI,UAAA,KAAAJ,mBAAAI,SAAAF,UAAA,KAAAF,mBAAAI,SAAAF,SAAAp8B,OAAA,CACA,EACA08B,eAAAA,GACA,YAAAR,mBAAAG,YAAA,KAAAH,mBAAAG,WAAAD,UAAA,KAAAF,mBAAAG,WAAAD,SAAAp8B,OAAA,CACA,EACAo9B,WAAAA,CAAAC,GACA,OAAAA,EAAAvzB,QAAA,CAAAwzB,EAAAC,EAAAC,IACA,OAAAF,EAAA,iBAAAA,EAAA,YAAAE,EAAAruB,KAAAsuB,GAAAA,EAAA,aAAAvxB,QAAAoxB,EAAA,cAAAC,GAEA,EACAG,UAAAA,CAAAC,GACA,OAAAA,EACAA,EAAApxB,UAAA,EAAAoxB,EAAA39B,QADA,GAEA,EACA49B,SAAAA,CAAAC,GACA,OAAAA,EACAC,WAAAD,GADA,GAEA,EACAE,YAAAA,CAAAF,GACA,OAAAA,EACAA,EAAAniC,QAAAoiC,WAAAD,GAAA,IADA,GAEA,EACAqG,SAAAA,CAAAr/B,GACAA,GACA,KAAA2R,WAAA,KACA,KAAAid,UAAA,KAAAG,eACA,KAAAA,cAAA,EACA,KAAAiB,OAAA,KAAAA,MAAAC,QAAA,KAAAsC,OAAA,eAAAzH,QACA,GAGA,IC7OgN,MCQ5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BlgB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,QAAQ,CAACM,YAAY,gBAAgB,CAAGP,EAAI4oB,iBAAoB5oB,EAAI6oB,WAAwc7oB,EAAII,KAAhcH,EAAG,QAAQ,CAACM,YAAY,yDAAyDC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,0BAA0BV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,6GAAsH,GAAGV,EAAG,cAAc,CAACM,YAAY,YAAYqR,MAAM5R,EAAI3I,mBAAqB,oBAAsB,UAAUiJ,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,eAAe,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAKN,EAAImsB,iBAAmBnsB,EAAIosB,aAAepsB,EAAIqsB,cAAgB,EAAI,KAAK,CAACpsB,EAAG,SAAS,CAACK,MAAM,CAAC,cAAgB,cAAc,GAAGL,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,wBAAwB,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,oBAAoB,IAAI,IAAI,IAAI,EAC5tC,EACII,GAAkB,GC4DtB,IACAhf,KAAA,WACA6nB,OAAA,CAAA2c,GAAAC,IACAvf,WAAA,CACAkqB,WAAA,GACAC,gBAAA,GACAiZ,OAAA,GACA55B,oBAAAA,IAEA7lB,IAAAA,GACA,OA+EA0/C,UAAA,GACAC,cAAA,GACAC,aAAA,GACA1d,aAAA,EACAD,iBAAA,EACAE,eAAA,EACAY,2BAAA,KACAC,oBAAA,KACAZ,mBAAA,KAEA,EACAhrB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAuH,WAAA7T,GAAAA,EAAAC,IAAAwR,QACA2C,cAAApU,GAAAA,EAAAC,IAAAmU,oBAEAsT,EAAAA,EAAAA,IAAA,8DAEA2d,eAAAA,GACA,MAAAE,EAAA,CACA,GAAA7uC,EAAAmF,oBAAAnF,EAAAoF,4BACA,GAAApF,EAAAmF,oBAAAnF,EAAAqF,iCACA,GAAArF,EAAAmF,oBAAAnF,EAAAsF,kCAEA,OAAAupC,EAAAvpB,KAAA1G,GAAA,SAAAhJ,cAAAgJ,MAAAoP,SAAA,KAAAwJ,OAAA0V,KACA,EAEA0B,UAAAA,GACA,YAAApX,OAAA0V,OAAA,SAAAt3B,cAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,eAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,iBACA,GAEA,aAAA4Y,GAEA,EACAjH,QAAA,CACAorB,YAAAA,GACA,YAAAN,mBAAAC,cAAA,KAAAD,mBAAAC,aAAAC,UAAA,KAAAF,mBAAAC,aAAAC,SAAAp8B,OAAA,CACA,EACAy8B,gBAAAA,GACA,YAAAP,mBAAAI,UAAA,KAAAJ,mBAAAI,SAAAF,UAAA,KAAAF,mBAAAI,SAAAF,SAAAp8B,OAAA,CACA,EACA08B,eAAAA,GACA,YAAAR,mBAAAG,YAAA,KAAAH,mBAAAG,WAAAD,UAAA,KAAAF,mBAAAG,WAAAD,SAAAp8B,OAAA,CACA,EAGAo9B,WAAAA,CAAAC,GACA,OAAAA,EAAAvzB,QAAA,CAAAwzB,EAAAC,EAAAC,IACA,OAAAF,EAAA,iBAAAA,EAAA,YAAAE,EAAAruB,KAAAsuB,GAAAA,EAAA,aAAAvxB,QAAAoxB,EAAA,cAAAC,GAEA,EACAG,UAAAA,CAAAC,GACA,OAAAA,EACAA,EAAApxB,UAAA,EAAAoxB,EAAA39B,QADA,GAEA,EACA49B,SAAAA,CAAAC,GACA,OAAAA,EACAC,WAAAD,GADA,GAEA,EACAE,YAAAA,CAAAF,GACA,OAAAA,EACAA,EAAAniC,QAAAoiC,WAAAD,GAAA,IADA,GAEA,EACAG,OAAAA,CAAAb,GACA,IAAAc,EAAA,GAMA,OAJAA,EADAd,EAAAn9B,OAAA,EACAm9B,EAAAA,EAAAn9B,OAAA,GAEAm9B,EAAA,GAEAc,CACA,EACAC,eAAAA,CAAAf,GACA,IAAAc,EAAA,GAMA,OAJAA,EADAd,EAAAn9B,OAAA,EACAm9B,EAAA,GAEAA,EAAA,GAEAc,CACA,ICzOgN,MCQ5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BxuB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,SAAS,CAACN,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,QAAQ,CAACM,YAAY,yDAAyDC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBsU,EAAIhL,aAAesL,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,wBAAwBV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,sGAAsGV,EAAG,MAAM,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,wEAAwEX,EAAIe,GAAGf,EAAIiiB,OAAO,YAAY,GAAGhiB,EAAG,cAAc,CAACM,YAAY,UAAUD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACL,EAAG,MAAM,CAACM,YAAY,mBAAmBD,MAAM,CAAC,GAAK,kBAAkB,CAACL,EAAG,QAAQ,CAACM,YAAY,uBAAuBP,EAAIiB,GAAIjB,EAAIyuB,WAAW,SAAS3vB,EAAIuC,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIrC,EAAI4qB,WAAWnpB,YAAY,aAAaqR,MAAM,CAAE,SAAavQ,IAAUrB,EAAI+pC,wBAAwB,CAAC9pC,EAAG,OAAO,CAACM,YAAY,UAAU2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIgqC,UAAU3oC,EAAM,IAAI,CAACrB,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgClB,QAAU,IAAG,IAAI,GAAGmB,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,cAAc,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,KAAK,CAAEN,EAAI/K,UAAWgL,EAAG,MAAM,CAACM,YAAY,qCAAqC,CAACN,EAAG,YAAY,CAACkG,YAAY,CAAC,MAAQ,OAAO,OAAS,QAAQ7F,MAAM,CAAC,QAAU,WAAW,MAAQ,cAAc,GAAGN,EAAIiB,GAAIjB,EAAIiqC,WAAW,SAASC,GAAU,OAAOjqC,EAAG,MAAM,CAACkB,IAAI+oC,EAASnxC,GAAGwH,YAAY,qBAAqB,CAAE2pC,EAASC,MAAM/5C,OAAS,EAAG6P,EAAG,QAAQ,CAACM,YAAY,uCAAuCqR,MAAM,CAAE,yBAA0B5R,EAAIoqC,aAAc,CAACnqC,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,UAAU,CAACN,EAAG,KAAK,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAGX,EAAIe,GAAGmpC,EAASG,gBAAgBpqC,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACM,YAAY,gDAAgD,CAACN,EAAG,MAAM,CAACM,YAAY,+CAA+C,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAG,gBAAiBupC,EAASI,gBAAkB,EAAGrqC,EAAG,MAAM,CAACM,YAAY,+CAA+C,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,mBAAmBX,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGmpC,EAASI,iBAAiB,aAAatqC,EAAII,KAAM8pC,EAAS9Q,KAAMn5B,EAAG,MAAM,CAACM,YAAY,+CAA+C,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,aAAaV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGmpC,EAAS9Q,WAAWp5B,EAAII,WAAY8pC,EAASjxC,MAAOgH,EAAG,QAAQ,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACN,EAAIW,GAAG,KAAKX,EAAIe,GAAGmpC,EAASjxC,OAAO,eAAe+G,EAAII,MAAM,GAAGH,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACM,YAAY,yCAAyC,CAACN,EAAG,QAAQ,CAACD,EAAIW,GAAG,IAAIX,EAAIe,GAAGmpC,EAASK,aAAa,SAAStqC,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAAE2pC,EAASM,WAAaxqC,EAAIyqC,mBAAoB,CAACxqC,EAAG,UAAU,CAACM,YAAY,0BAA0BD,MAAM,CAAC,KAAO,GAAG,QAAU,YAAY,CAACN,EAAIW,GAAG,sDAAsDX,EAAIiB,GAAIipC,EAASC,OAAO,SAAS1mB,GAAM,OAAOxjB,EAAG,OAAO,CAACkB,IAAIsiB,EAAK1qB,GAAGuH,MAAM,CAAC,GAAK,kBAAkBmjB,EAAK1qB,OAAO,CAACkH,EAAG,WAAW,CAACM,YAAY,+EAA+EqR,MAAM,CAAE,eAAgB6R,EAAKinB,QAAS,aAAcjnB,EAAKinB,SAAUpqC,MAAM,CAAC,KAAO,GAAG,KAAO,KAAK,SAAWN,EAAIoqC,YAAc3mB,EAAKknB,eAAiB,IAAM3qC,EAAIzG,WAAayG,EAAIyqC,oBAAoBvmC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI4qC,WAAWV,EAAUzmB,EAAK,IAAI,CAACxjB,EAAG,OAAO,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAGX,EAAIe,GAAG0iB,EAAKvqB,UAAUyD,UAAU,EAAG8mB,EAAKvqB,UAAUuE,YAAY,UAAUuC,EAAIW,GAAG,KAAKV,EAAG,kBAAkB,CAACM,YAAY,OAAOD,MAAM,CAAC,SAAW,GAAG,QAAUmjB,EAAKinB,SAASxmC,GAAG,CAAC,OAAS,SAASC,GAAQsf,EAAKinB,SAAWjnB,EAAKinB,OAAO,KAAKzqC,EAAG,YAAY,CAACK,MAAM,CAAC,OAAS,kBAAkBmjB,EAAK1qB,KAAK,SAAW,QAAQ,UAAY,aAAa,CAAGiH,EAAIoqC,WAA4OpqC,EAAII,KAApO,CAAGJ,EAAIzG,SAAqDyG,EAAIyqC,mBAAuFhnB,EAAKknB,eAAiB,EAAG,CAAC3qC,EAAIW,GAAG,8BAA8BX,EAAII,KAAtI,CAACJ,EAAIW,GAAG,0DAA3E,CAACX,EAAIW,GAAG,mCAAiN,IAAI,IAAI,EAAE,KAAI,MAAM,IAAI,GAAGX,EAAII,MAAM,EAAE,KAAI,IAAI,IAAI,IAAI,GAAGH,EAAG,UAAU,CAACK,MAAM,CAAC,GAAK,uBAAuB,cAAc,GAAG,cAAc,GAAG,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,uDAAuD,CAACN,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,QAAQ,OAAS,QAAQ,IAAM,QAAQ,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,QAAQ,OAAS,QAAQ,IAAM,OAAO,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,QAAQ,OAAS,QAAQ,IAAM,QAAQ,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,QAAQ,OAAS,QAAQ,IAAM,OAAO,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,OAAO,OAAS,OAAO,IAAM,QAAQ,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,OAAO,OAAS,OAAO,IAAM,OAAO,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,iDAAiD,CAACP,EAAIW,GAAG,mCAAmCV,EAAG,MAAM,CAACM,YAAY,sCAAsC,CAACN,EAAG,QAAQ,CAACD,EAAIW,GAAG,4FAA4FV,EAAG,MAAM,CAACA,EAAG,WAAW,CAACM,YAAY,0CAA0CD,MAAM,CAAC,KAAO,IAAI4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI6qC,SAASC,KAAK,uBAAuB,IAAI,CAAC9qC,EAAIW,GAAG,YAAY,SAASV,EAAG,UAAU,CAACK,MAAM,CAAC,GAAK,mBAAmB,cAAc,KAAK,CAACL,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,IAAI,CAACD,EAAIW,GAAG,gDAAgDV,EAAG,KAAKD,EAAIiB,GAAIjB,EAAI+qC,iBAAiB,SAAS3N,GAAM,OAAOn9B,EAAG,KAAK,CAACkB,IAAIi8B,EAAKrkC,IAAI,CAACiH,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAK/7C,MAAM,SAAS2e,EAAIe,GAAGq8B,EAAKlkC,UAAUyD,UAAU,EAAGygC,EAAKlkC,UAAUuE,YAAY,OAAO,OAAOuC,EAAIe,GAAGq8B,EAAKjkC,QAAQwD,UAAU,EAAGygC,EAAKjkC,QAAQsE,YAAY,OAAO,MAAM,IAAG,GAAGwC,EAAG,MAAM,CAACA,EAAG,WAAW,CAACM,YAAY,kCAAkCD,MAAM,CAAC,KAAO,IAAI4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI6qC,SAASC,KAAK,mBAAmB,IAAI,CAAC9qC,EAAIW,GAAG,UAAWX,EAAIgrC,cAAc56C,OAAS4P,EAAI+qC,gBAAgB36C,OAAS,EAAG6P,EAAG,WAAW,CAACM,YAAY,kCAAkCD,MAAM,CAAC,KAAO,IAAI4D,GAAG,CAAC,MAAQlE,EAAIirC,qBAAqB,CAACjrC,EAAIW,GAAG,cAAcX,EAAII,MAAM,OAAOH,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAAEN,EAAIkrC,qBAAsB,CAAGlrC,EAAIzG,SAA8wCyG,EAAIyqC,mBAAyGxqC,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACP,EAAIW,GAAG,oBAAqBX,EAAIgrC,cAAc56C,OAAS,EAAG,CAAC4P,EAAIiB,GAAIjB,EAAIgrC,eAAe,SAAS5N,GAAM,OAAOn9B,EAAG,MAAM,CAACkB,IAAIi8B,EAAKrkC,GAAGwH,YAAY,iBAAiB,CAACN,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,QAAQ,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAGX,EAAIe,GAAGq8B,EAAK/7C,WAAW4e,EAAG,QAAQ,CAACM,YAAY,uBAAuBD,MAAM,CAAC,KAAO,MAAM,CAACN,EAAIW,GAAG,KAAKX,EAAIe,GAAGq8B,EAAKnkC,OAAO,QAAQ,GAAGgH,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,aAAaD,MAAM,CAAC,KAAO,MAAM,CAACL,EAAG,QAAQ,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,kCAAP7C,CAA0Co9B,EAAKn3C,OAAO,MAAM+Z,EAAIe,GAAGq8B,EAAKlkC,UAAUyD,UAAU,EAAGygC,EAAKlkC,UAAUuE,YAAY,OAAO,OAAOuC,EAAIe,GAAGq8B,EAAKjkC,QAAQwD,UAAU,EAAGygC,EAAKjkC,QAAQsE,YAAY,YAAYwC,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,MAAM,CAACL,EAAG,MAAM,CAACM,YAAY,cAAc,CAACN,EAAG,SAAS,CAACM,YAAY,aAAa2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAImrC,WAAW/N,EAAK,IAAI,CAACn9B,EAAG,OAAO,CAACM,YAAY,4CAA4C4F,YAAY,CAAC,YAAY,SAAS,CAACnG,EAAIW,GAAG,cAAcX,EAAIW,GAAG,KAAKV,EAAG,QAAQ,CAACD,EAAIW,GAAG,eAAe,MAAM,GAAGV,EAAG,MAAM,CAACM,YAAY,4BAA4B,EAAE,IAAGN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,aAAaD,MAAM,CAAC,KAAO,OAAO,CAACN,EAAIW,GAAG,oBAAoBV,EAAG,QAAQ,CAACM,YAAY,wBAAwBD,MAAM,CAAC,KAAO,MAAM,CAACN,EAAIW,GAAG,KAAKX,EAAIe,GAAGf,EAAIgrC,cAAcxrC,QAAO,CAACqnC,EAAOzJ,IAASyJ,EAAQzJ,EAAKnkC,OAAO,IAAI,QAAQ,IAAI,GAAGgH,EAAG,MAAM,CAACA,EAAG,WAAW,CAACM,YAAY,+CAA+CD,MAAM,CAAC,KAAO,IAAI4D,GAAG,CAAC,MAAQlE,EAAIorC,eAAe,CAACprC,EAAIW,GAAG,kBAAkB,IAAI,CAACV,EAAG,IAAI,CAACD,EAAIW,GAAG,2BAA2B,GAAxuDV,EAAG,sBAAsB,CAACK,MAAM,CAAC,0BAA0BN,EAAIyqC,sBAA31CxqC,EAAG,MAAM,CAACM,YAAY,uDAAuD,CAACN,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,QAAQ,OAAS,QAAQ,IAAM,QAAQ,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,QAAQ,OAAS,QAAQ,IAAM,OAAO,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,QAAQ,OAAS,QAAQ,IAAM,QAAQ,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,QAAQ,OAAS,QAAQ,IAAM,OAAO,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,OAAO,OAAS,OAAO,IAAM,QAAQ,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,iCAAiC4F,YAAY,CAAC,MAAQ,OAAO,OAAS,OAAO,IAAM,OAAO,MAAQ,UAAUlG,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,iDAAiD,CAACP,EAAIW,GAAG,oBAAoBV,EAAG,MAAM,CAACM,YAAY,sCAAsC,CAACP,EAAIW,GAAG,uEAAuEV,EAAG,MAAM,CAACA,EAAG,WAAW,CAACM,YAAY,kCAAkCD,MAAM,CAAC,KAAO,IAAI4D,GAAG,CAAC,MAAQlE,EAAIzd,QAAQ,CAACyd,EAAIW,GAAG,gBAAgB,OAA6wDX,EAAIqrC,cAAcz7B,KAAO,GAAK5P,EAAIyqC,mBAAoBxqC,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACP,EAAIW,GAAG,uCAAuCV,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAKN,EAAIiB,GAAIjB,EAAIqrC,eAAe,UAAUlqC,EAAKlE,IAAQ,OAAOgD,EAAG,MAAM,CAACkB,IAAIA,EAAIZ,YAAY,SAAS,CAACN,EAAG,MAAM,CAACM,YAAY,mCAAmC,CAACN,EAAG,UAAU,CAACK,MAAM,CAAC,KAAO,GAAG,QAAU,sBAAsB,CAACN,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,kCAAP7C,CAA0C,IAAInc,KAAKsd,SAAW,GAAGnB,EAAIiB,GAAIhE,GAAO,SAASmgC,GAAM,OAAOn9B,EAAG,QAAQ,CAACkB,IAAIi8B,EAAKrkC,IAAI,CAACkH,EAAG,QAAQ,CAACM,YAAY,0CAA0CD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACD,EAAIW,GAAGX,EAAIe,GAAGq8B,EAAKlkC,UAAUyD,UAAU,EAAGygC,EAAKlkC,UAAUuE,YAAY,cAAqHuC,EAAII,KAAKH,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,OAAO,CAACL,EAAG,cAAc,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,MAAM,CAACM,YAAY,eAAe,CAACN,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAGX,EAAIe,GAAGq8B,EAAKiN,uBAAuB,IAAI,EAAE,KAAI,EAAE,IAAG,IAAI,GAAGrqC,EAAII,MAAMJ,EAAII,MAAM,IAAI,IAAI,IAAI,EACjkW,EACIC,GAAkB,GCuPtB,IACAhf,KAAA,oBACAklB,WAAA,CACAwJ,oBAAAA,IAEAzO,SAAA,KACA2J,EAAAA,EAAAA,IAAA,gCACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACApF,UAAA/C,GAAAA,EAAAC,IAAA2R,eACA5O,QAAAhD,GAAAA,EAAAC,IAAA4R,aACArS,SAAAQ,GAAAA,EAAAC,IAAAT,SACAiS,QAAAzR,GAAAA,EAAAC,IAAAwR,QACAiC,SAAA1T,GAAAA,EAAAC,IAAAyT,SACA+zC,cAAAznD,GAAAA,EAAAC,IAAA0T,aACAlB,YAAAzS,GAAAA,EAAAC,IAAAwS,cAEAisB,KAAAA,GACA,YAAAjsB,aAAAisB,KACA,EACAmoB,UAAAA,GACA,YAAAkB,YAAA,IAAAznD,KAAA,KAAA4qC,UAAA,KAAAsb,uBAAAwB,gBAAA,IAAA1nD,KAAA,KAAAynD,WAAAC,eACA,EACAnxB,SAAAA,GACA,OAAAv4B,OAAAkB,SAAAK,OAAA,KAAAquB,OAAA4I,QACA,EACAmxB,QAAAA,GACA,MAAAA,EAAA,CACArB,MAAA,GACAsB,WAAA,GAGAC,EAAA,IAAAC,IAAA,KAAAX,eACA,UAAA7pC,EAAAlE,KAAAyuC,EAAAE,UAAA,CACA,MAAAC,EAAA,KAAA5B,UAAAzhC,MAAA3P,GAAAA,EAAAE,IAAAoI,EAAAvJ,MAAA,UACA4zC,EAAArB,MAAAjjD,KAAA,CACA6R,GAAAkE,EAAAlE,GACAX,WAAAyzC,EAAA9yC,GACA1X,KAAAwqD,EAAAxB,YACApxC,MAAA4yC,EAAA5yC,MACAhT,KAAA,IAAApC,KAAAoZ,EAAAhX,MACAiT,UAAA+D,EAAA/D,WAEA,CAQA,OAPAsyC,EAAAC,WAAAD,EAAArB,MAAA3qC,QAAA,CAAAqnC,EAAAzJ,IAAAyJ,EAAAzJ,EAAAnkC,OAAA,GACAuyC,EAAArB,MAAAxK,MAAA,CAAAf,EAAAC,IACAD,EAAA34C,KAAA44C,EAAA54C,OAAA,EACA24C,EAAA34C,KAAA44C,EAAA54C,KAEA24C,EAAA1lC,UAAA4yC,cAAAjN,EAAA3lC,aAEAsyC,CACA,GAEAhqC,QAAA,CACAjf,KAAAA,GACAA,EAAA,KAAA63B,WAAA,EACA,EACA,uBAAA2xB,CAAA9lD,GACA,KAAAgP,WAAA,EACA,IACA,MAAA42C,SAAAviD,GAAA2G,aAAA,KAAAvE,QAAAtG,GAAAoD,cAAAvC,GAAA,KAAAuT,aAAApN,QAAAlC,KAAAy1C,MAAA,CAAAf,EAAAC,IAAAD,EAAAyL,YAAAyB,cAAAjN,EAAAwL,eACA,UAAAH,KAAA2B,EACA3B,EAAAM,WAAA,EACAN,EAAAC,MAAA5qC,KAAAkkB,IACA,MAAAuoB,EAAA,KAAAhB,cAAAxiC,MAAA3P,GAAAA,EAAAT,YAAA8xC,EAAAnxC,IAAAF,EAAAE,IAAA0qB,EAAA1qB,KAKA,OAJA0qB,EAAAinB,QAAA,MAAAsB,GACA9B,EAAAM,WAAA,KAAAa,cAAAz7B,KAAA,IACAs6B,EAAAM,UAAA,WAAAa,cAAA1/C,IAAA83B,EAAAx9B,OAAAuiB,MAAA3P,GAAAA,EAAAE,IAAA0qB,EAAA1qB,MAEA0qB,CAAA,IAEAymB,EAAAC,MAAAxK,MAAA,CAAAf,EAAAC,IAAAD,EAAA1lC,UAAA4yC,cAAAjN,EAAA3lC,aAEA,KAAA+wC,UAAA4B,CACA,OAAA7gD,GACAb,QAAAJ,MAAAiB,EACA,SAEA,KAAAiK,WAAA,CACA,CACA,EACA,mCAAAg3C,GACA,QAAAzyC,aAAApN,MACA,IACA,MAAA8/C,SAAA5iD,GAAAkH,qBAAA,KAAA9E,QAAA,KAAA8N,YAAApN,QAAAlC,KACAiiD,EAAA,IAAAR,IACA,UAAAS,KAAAF,EACAC,EAAAE,IAAAD,EAAAnmD,MAGAkmD,EAAAxgD,IAAAygD,EAAAnmD,MAAAiB,KAAAklD,GAFAD,EAAA/nD,IAAAgoD,EAAAnmD,KAAA,CAAAmmD,IAKA,MAAAE,EAAA,IAAAX,IAAA,IAAAQ,EAAAP,WAAAjM,MAAA,CAAAf,EAAAC,IAAA,IAAAh7C,KAAA+6C,EAAA,QAAA/6C,KAAAg7C,EAAA,OACA,WAAA5hC,KAAAqvC,EAAAV,UACA3uC,EAAA0iC,MAAA,CAAAf,EAAAC,IAAAD,EAAA1lC,UAAA4yC,cAAAjN,EAAA3lC,aAGA,KAAAmyC,cAAAiB,CACA,OAAAthD,GACAb,QAAAJ,MAAAiB,EACA,CAEA,EACA,eAAAg/C,CAAA3oC,GACA,KAAA0oC,wBAAA1oC,IACA,KAAA0oC,sBAAA1oC,QACA,KAAA0qC,kBAAA,KAAAtd,UAAAptB,IAEA,EACAupC,UAAAA,CAAAV,EAAAzmB,GACA,KAAA8oB,0BAAArC,EAAAzmB,KAGA,KAAApe,OAAA9N,OAAA5C,GAAA,CAAAyD,WAAA8xC,EAAAnxC,GAAAV,aAAA6xC,EAAAG,YAAA/xC,cAAA4xC,EAAAjxC,MAAAV,OAAAkrB,EAAA1qB,GAAAP,SAAAirB,EAAAx9B,KAAAwS,cAAAgrB,EAAAvqB,UAAAR,YAAA+qB,EAAAtqB,UACA+wC,EAAAC,MAAA5qC,KAAAkkB,IACA,MAAAuoB,EAAA,KAAAhB,cAAAxiC,MAAA3P,GAAAA,EAAAT,YAAA8xC,EAAAnxC,IAAAF,EAAAE,IAAA0qB,EAAA1qB,KAEA,OADA0qB,EAAAinB,QAAA,MAAAsB,EACAvoB,CAAA,IAEA,EACA0nB,UAAAA,CAAAqB,GACA,KAAAnnC,OAAA9N,OAAA5C,GAAA,CAAAyD,WAAAo0C,EAAAp0C,WAAAC,aAAAm0C,EAAAnrD,KAAAiX,cAAAk0C,EAAAvzC,MAAAV,OAAAi0C,EAAAzzC,GAAAP,SAAAg0C,EAAAvmD,KAAAwS,cAAA+zC,EAAAtzC,UAAAR,YAAA8zC,EAAArzC,UACA,UAAA+wC,KAAA,KAAAD,UACAC,EAAAC,MAAA5qC,KAAAkkB,IACA,MAAAuoB,EAAA,KAAAhB,cAAAxiC,MAAA3P,GAAAA,EAAAT,YAAAo0C,EAAAp0C,YAAAS,EAAAE,IAAAyzC,EAAAzzC,KAEA,OADA0qB,EAAAinB,QAAA,MAAAsB,EACAvoB,CAAA,GAGA,EACA8oB,yBAAAA,CAAArC,EAAAzmB,GACA,IAAAgpB,EAAA,KAAAC,2BAAAxC,EAAAzmB,GAAAxgC,OAAA,KAAA0pD,kCAAAzC,EAAAzmB,IACA,OAAAgpB,EAAAr8C,OAAA,IACA,KAAAy6C,SAAAjwC,KAAA,yBACA,EAGA,EACA+xC,iCAAAA,CAAAzC,EAAAzmB,GACA,MAAAmpB,EAAA,GACAC,EAAA7lD,MAAA4hD,KAAA,KAAAyC,cAAA3Q,UAAAoS,OAAAtkC,MAAA3P,GAAAA,EAAAT,YAAA8xC,EAAAnxC,KACAg0C,EAAA,KAAA/B,cAAAxiC,MAAA3P,GAAAA,EAAAT,aAAA8xC,EAAAnxC,IAAAF,EAAA5S,KAAAnC,YAAA,IAAAD,KAAA4/B,EAAAx9B,MAAAnC,YAQA,OAPA+oD,GAAAE,IACAH,EAAA1lD,KAAA,CACA6R,GAAA8zC,GAAA9zC,IAAAg0C,EAAAh0C,GACA1X,KAAAwrD,GAAAxC,aAAA0C,EAAA1rD,KACA4E,KAAA4mD,GAAA5mD,MAAA8mD,EAAA9mD,OAGA2mD,CACA,EACAF,0BAAAA,CAAAxC,EAAAzmB,GACA,MAAAupB,EAAA,CACAjtB,MAAA,KAAAktB,qBAAAxpB,EAAAvqB,WACA4iC,IAAA,KAAAmR,qBAAAxpB,EAAAtqB,UAGA+zC,EAAA,GACAC,EAAA,KAAAnC,cAAA9wC,QAAArB,GAAAA,EAAAT,aAAA8xC,EAAAnxC,IAAAF,EAAA5S,KAAAnC,YAAA,IAAAD,KAAA4/B,EAAAx9B,MAAAnC,YACAspD,EAAA,KAAA/B,cAAA1/C,IAAA83B,EAAAx9B,OAAA,GAEA,UAAAonD,KAAAF,EACA,KAAAG,eAAAN,EAAAjtB,MAAAitB,EAAAlR,IAAA,KAAAmR,qBAAAI,EAAAn0C,WAAA,KAAA+zC,qBAAAI,EAAAl0C,WACA+zC,EAAAhmD,KAAA,CAAA6R,GAAAs0C,EAAAt0C,GAAA1X,KAAAgsD,EAAAhsD,KAAA4E,KAAAonD,EAAApnD,OAIA,UAAAsnD,KAAAH,EACA,KAAAE,eAAAN,EAAAjtB,MAAAitB,EAAAlR,IAAA,KAAAmR,qBAAAM,EAAAr0C,WAAA,KAAA+zC,qBAAAM,EAAAp0C,WACA+zC,EAAAhmD,KAAA,CAAA6R,GAAAw0C,EAAAx0C,GAAA1X,KAAAksD,EAAAlD,YAAApkD,KAAAsnD,EAAAtnD,OAGA,OAAAinD,CACA,EACA,kBAAA9B,GACA,KAAAL,gBAAA,GACA,IACA,MAAAxsC,QAAAjV,GAAA4G,iBAAA,KAAAxE,QAAA,KAAAs/C,cAAAzrC,KAAA1G,GAAAA,EAAAE,MACAy0C,EAAAjvC,EAAArU,KAAAgQ,QAAArB,GAAAA,EAAA8xC,eAAA,IACA,GAAA6C,EAAAp9C,OAAA,GACA,KAAA26C,gBAAAyC,EACA,MAAAC,EAAAD,EAAAjuC,KAAA1G,GAAAA,EAAAE,KACA,KAAAsM,OAAA9N,OAAA3C,GAAA,KAAAo2C,cAAA9wC,QAAArB,IAAA40C,EAAAxlC,SAAApP,EAAAE,OACA,UAAAmxC,KAAA,KAAAD,UACAC,EAAAC,MAAA5qC,KAAAkkB,IACAA,EAAAinB,QAAA,KAAAM,cAAA3I,MAAAxpC,GAAAA,EAAAT,YAAAqrB,EAAArrB,YAAAS,EAAAE,IAAA0qB,EAAA1qB,KACA0qB,KAGA,KAAAonB,SAAAjwC,KAAA,mBACA,MACA,KAAAqwC,oBAEA,OAAAjgD,GACAb,QAAAJ,MAAAiB,EACA,CACA,EACAiiD,oBAAAA,CAAAnnD,GACA,MAAA4nD,EAAA5nD,EAAA8R,MAAA,KACA,YAAAkF,OAAA4wC,EAAA,OAAA5wC,OAAA4wC,EAAA,IAAA5wC,OAAA4wC,EAAA,GAEA,EACAJ,cAAAA,CAAAK,EAAAC,EAAAC,EAAAC,GACA,OAAAH,EAAAG,GAAAD,EAAAD,CACA,EACA3C,kBAAAA,GACA,MAAA96C,EAAA,KAAA66C,cAAAzrC,KAAA1G,GAAAA,EAAAE,KACAqhB,EAAAv4B,OAAAkB,SAAAK,OAAA,KAAAquB,OAAA0V,KACAzkC,EAAA,+DAAA03B,aAAAjqB,EAAAvH,KAAA,OACA/G,OAAAkB,SAAAL,CACA,GAEAwH,IAAAA,GACA,OACA+/C,UAAA,GACAoB,cAAA,IAAAM,IACAld,UAAA,GACAsb,2BAAA9hD,EACA8iD,gBAAA,GACAN,oBAAA,EACAS,sBAAA,EACAI,WAAA,KACAr2C,WAAA,EAEA,EACA,aAAAwT,GAEA,GADA,KAAAgmB,UAAArpC,GAAAiB,SAAAjB,GAAAyD,eAAA,KAAAvC,WAAAlB,GAAAyD,eAAA,KAAAtC,UACA,KAAA0Q,UAAA,KAAAA,SAAAsV,aACA,IACA,MAAAwhC,SAAAzkD,GAAAuC,eAAA,KAAAH,UAAAxB,KACA,KAAAugD,mBAAA,WAAAsD,EAAAC,gBACA,OAAAhjD,GACA,KAAAy/C,oBAAA,CACA,CAEA,KAAAS,sBAAA,EACA,IACA,WAAAhhD,SAAAZ,GAAAxF,UACA,KAAAwnD,WAAAlmD,GAAAyD,eAAAqB,GACA,KAAA6/C,sBAAApjD,KAAAsnD,IAAA,OAAAxf,UAAA71B,WAAAC,GAAAA,EAAA0yC,iBAAA,KAAAD,WAAAC,wBACA,KAAAU,sCACA,KAAAF,kBAAA,KAAAtd,UAAA,KAAAsb,uBACA,OAAA/+C,GACAb,QAAAJ,MAAAiB,GACA,KAAA++C,sBAAA,CACA,CACA,GCjfmN,MCQ/M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BlqC,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,SAAS,CAACN,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,QAAQ,CAACM,YAAY,yDAAyDC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBsU,EAAIhL,aAAesL,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACN,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,cAAcD,MAAM,CAAC,IAAM,GAAGN,EAAIU,wBAAwBV,EAAItU,sBAAsBvE,KAAKiQ,aAAa,IAAM,qBAAqB6I,EAAG,KAAK,CAACD,EAAIW,GAAG,0BAA0BV,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,WAAW,CAACM,YAAY,wBAAwBD,MAAM,CAAC,KAAO,GAAG,KAAO,0CAA0CN,EAAItP,aAAa,CAACsP,EAAIW,GAAG,YAAY,MAAM,GAAKX,EAAIkuC,aAA0/BjuC,EAAG,cAAc,CAACA,EAAG,sBAAsB,GAAvhCA,EAAG,cAAc,CAACM,YAAY,UAAUD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAKN,EAAIiB,GAAIjB,EAAIiqC,WAAW,SAASC,GAAU,OAAOjqC,EAAG,QAAQ,CAACkB,IAAI+oC,EAASnxC,GAAGwH,YAAY,mCAAmCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,SAAS,CAACM,YAAY,gBAAgBD,MAAM,CAAC,MAAQ4pC,EAASG,aAAa5nC,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,mCAAmC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCkqC,EAASjkD,OAAO,MAAM+Z,EAAIe,GAAGf,EAAI6C,GAAG,aAAP7C,CAAqBkqC,EAAShxC,YAAY,MAAM8G,EAAIe,GAAGf,EAAI6C,GAAG,aAAP7C,CAAqBkqC,EAAS/wC,UAAU,OAAO8G,EAAG,MAAM,CAACM,YAAY,mCAAmC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGmpC,EAASiE,UAAU,SAAS,EAAEnrC,OAAM,IAAO,MAAK,IAAO,CAAC/C,EAAG,cAAc,CAACA,EAAG,eAAeD,EAAIiB,GAAIipC,EAASkE,UAAU,SAASC,GAAS,OAAOpuC,EAAG,oBAAoB,CAACkB,IAAIktC,EAAQC,OAAO,CAACtuC,EAAIW,GAAG,IAAIX,EAAIe,GAAGstC,EAAQhtD,MAAM,MAAM,IAAG,IAAI,IAAI,IAAI,EAAE,IAAG,IAAI,IAAkD,EACr0D,EACIgf,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAQ6Y,EAAIE,MAAMD,GAAG,OAAOD,EAAI2Q,GAAG,EAC1E,EACItQ,GAAkB,CAAC,WAAY,IAAIL,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACN,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,MAAM,CAACM,YAAY,qBAAqBD,MAAM,CAAC,KAAO,UAAU,CAACL,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,OAAO,CAACM,YAAY,4BAA4B,CAACP,EAAIW,GAAG,eAAeV,EAAG,MAAM,CAACM,YAAY,SAAS,CAACN,EAAG,OAAO,CAACM,YAAY,mCAAmC,CAACP,EAAIW,GAAG,oBAAoBX,EAAIW,GAAG,iNAC5d,GCFIgS,GAAS,CAAC,EAMV,IAAY,QACdA,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCsChC,IACAtxB,KAAA,oBACAklB,WAAA,CACAgoC,kBAAAA,IAEAjtC,SAAA,CACAZ,UAAAA,GACA,MAAA1d,YACA,MACAioB,EAAAA,EAAAA,IAAA,gCACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACApF,UAAA/C,GAAAA,EAAAC,IAAA2R,eACA5O,QAAAhD,GAAAA,EAAAC,IAAA4R,aACAJ,QAAAzR,GAAAA,EAAAC,IAAAwR,QACAoC,WAAA7T,GAAAA,EAAAC,IAAAwR,WAGA9K,IAAAA,GACA,OACA+/C,UAAA,GACAuE,WAAA,KACAC,UAAA,KACAx5C,WAAA,EACAvE,SAAA,KACAw9C,cAAA,EAEA,EACA,aAAAzlC,GACA,KAAAimC,yBACA,KAAA3C,oBAEA,KAAAyC,WAAAnjC,aAAA,KACA,KAAAojC,UAAAvxB,YAAA,gBACA,KAAA6uB,mBAAA,GACA,OACA,IACA,EACAzgC,aAAAA,GACA,KAAAkjC,YACAjjC,cAAA,KAAAijC,YAEA,KAAAC,WACAtxB,aAAA,KAAAsxB,UAEA,EACAjtC,QAAA,CACA,uBAAAuqC,GACA,KAAA92C,WAAA,EACA3L,GAAAmH,4BAAA,KAAA/E,QAAA,KAAAgF,UAAA8G,MAAA,OAAAtN,WACA,KAAA+/C,UAAA//C,EAAAA,KACA,KAAAgkD,cAAAhkD,EAAAykD,QAEA,KAAA15C,WAAA,IAEA,EACAy5C,gBAAAA,GACA,KAAAh+C,SAAA,KAAA+gB,OAAAmK,MAAAlrB,QACA,IClHuN,MCQnN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BmP,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,SAAS,CAACN,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,QAAQ,CAACM,YAAY,yDAAyDC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBsU,EAAIhL,aAAesL,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACN,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,cAAcD,MAAM,CAAC,IAAM,GAAGN,EAAIU,wBAAwBV,EAAItU,sBAAsBvE,KAAKiQ,aAAa,IAAM,qBAAqB6I,EAAG,KAAK,CAACD,EAAIW,GAAG,0BAA0BV,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,WAAW,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,GAAG,KAAO,oCAAoCN,EAAItP,aAAa,CAACsP,EAAIW,GAAG,uBAAuB,GAAKX,EAAIkuC,aAAoeluC,EAAII,KAA1dH,EAAG,MAAM,CAACM,YAAY,yBAAyB,CAACN,EAAG,eAAe,CAACA,EAAG,aAAa,CAACA,EAAG,eAAe,CAACM,YAAY,uBAAuBD,MAAM,CAAC,KAAO,SAAS,YAAc,uBAAuB4D,GAAG,CAAC,QAAU,SAASC,GAAQ,IAAIA,EAAOrJ,KAAKwB,QAAQ,QAAQ0D,EAAI4uC,GAAGzqC,EAAO0qC,QAAQ,QAAQ,GAAG1qC,EAAOhD,IAAI,SAAS,OAAO,KAAKgD,EAAOE,gBAAiB,GAAGiR,MAAM,CAACrY,MAAO+C,EAAI8uC,YAAav5B,SAAS,SAAUC,GAAMxV,EAAI8uC,YAAYt5B,CAAG,EAAEtP,WAAW,kBAAkB,IAAI,IAAI,MAAe,GAAKlG,EAAIkuC,aAA4uDjuC,EAAG,cAAc,CAACA,EAAG,sBAAsB,GAAzwDA,EAAG,cAAc,CAACM,YAAY,UAAUD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,mBAAmBD,MAAM,CAAC,GAAK,kBAAkB,CAACL,EAAG,QAAQ,CAACM,YAAY,uBAAuBP,EAAIiB,GAAIjB,EAAIyuB,WAAW,SAAS3vB,EAAIuC,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIrC,EAAI4qB,WAAWnpB,YAAY,aAAaqR,MAAM,CAAEyN,SAAUhe,IAAUrB,EAAI+pC,wBAAyB,CAAC9pC,EAAG,OAAO,CAACM,YAAY,UAAU2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIgqC,UAAU3oC,EAAM,IAAI,CAACrB,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgClB,QAAU,IAAG,IAAI,MAAM,GAAGmB,EAAG,cAAc,CAACM,YAAY,YAAYD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAK,CAAEN,EAAI/K,UAAWgL,EAAG,MAAM,CAACM,YAAY,qCAAqC,CAACN,EAAG,YAAY,CAACkG,YAAY,CAAC,MAAQ,OAAO,OAAS,QAAQ7F,MAAM,CAAC,QAAU,WAAW,MAAQ,cAAc,GAAGN,EAAIiB,GAAIjB,EAAIiqC,WAAW,SAASC,GAAU,OAAOjqC,EAAG,QAAQ,CAACkB,IAAI+oC,EAASnxC,GAAGwH,YAAY,mCAAmCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,SAAS,CAACM,YAAY,gBAAgBD,MAAM,CAAC,MAAQ4pC,EAASG,aAAa5nC,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,SAASwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,MAAM,CAACM,YAAY,mCAAmC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCkqC,EAASjkD,OAAO,MAAM+Z,EAAIe,GAAGf,EAAI6C,GAAG,aAAP7C,CAAqBkqC,EAAShxC,YAAY,MAAM8G,EAAIe,GAAGf,EAAI6C,GAAG,aAAP7C,CAAqBkqC,EAAS/wC,UAAU,OAAO8G,EAAG,MAAM,CAACM,YAAY,mCAAmC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGmpC,EAASiE,UAAU,SAAS,EAAEnrC,OAAM,IAAO,MAAK,IAAO,CAAC/C,EAAG,cAAc,CAACA,EAAG,eAAeD,EAAIiB,GAAIipC,EAASkE,UAAU,SAASC,GAAS,OAAOpuC,EAAG,oBAAoB,CAACkB,IAAIktC,EAAQC,OAAO,CAACtuC,EAAIW,GAAG,IAAIX,EAAIe,GAAGstC,EAAQhtD,MAAM,MAAM,IAAG,IAAI,IAAI,IAAI,EAAE,KAAI,IAAI,IAAI,IAAkD,EAC7iG,EACIgf,GAAkB,GCgFtB,IACAhf,KAAA,oBACAklB,WAAA,CACAgoC,kBAAAA,IAEAjtC,SAAA,CACAZ,UAAAA,GACA,MAAA1d,YACA,MACAioB,EAAAA,EAAAA,IAAA,gCACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACApF,UAAA/C,GAAAA,EAAAC,IAAA2R,eACA5O,QAAAhD,GAAAA,EAAAC,IAAA4R,aACArS,SAAAQ,GAAAA,EAAAC,IAAAT,SACAiS,QAAAzR,GAAAA,EAAAC,IAAAwR,QACAiC,SAAA1T,GAAAA,EAAAC,IAAAyT,SACA+zC,cAAAznD,GAAAA,EAAAC,IAAA0T,aACAlB,YAAAzS,GAAAA,EAAAC,IAAAwS,YACAoB,WAAA7T,GAAAA,EAAAC,IAAAwR,UAEAo1C,UAAAA,GACA,YAAAkB,YAAA,IAAAznD,KAAA,KAAA4qC,UAAA,KAAAsb,uBAAAwB,gBAAA,IAAA1nD,KAAA,KAAAynD,WAAAC,eACA,EACAnxB,SAAAA,GACA,OAAAv4B,OAAAkB,SAAAK,OAAA,KAAAquB,OAAA4I,QACA,GAEAnwB,IAAAA,GACA,OACA+/C,UAAA,GACA8E,aAAA,GACAtgB,UAAA,GACAsb,2BAAA9hD,EACAqjD,WAAA,KACAr2C,WAAA,EACA65C,YAAA,GACAp+C,SAAA,KACAw9C,cAAA,EAEA,EACAznC,MAAA,CACAqoC,WAAAA,GACA,KAAAE,aACA,GAEA,aAAAvmC,GACA,KAAAimC,mBAEA,KAAAjgB,UAAArpC,GAAAiB,SAAAjB,GAAAyD,eAAA,KAAAvC,WAAAlB,GAAAyD,eAAA,KAAAtC,UACA,IACA,WAAA2D,SAAAZ,GAAAxF,UACA,KAAAwnD,WAAAlmD,GAAAyD,eAAAqB,GACA,KAAA6/C,sBAAApjD,KAAAsnD,IACA,EACA,KAAAxf,UAAA71B,WAAAC,GAAAA,EAAA0yC,iBAAA,KAAAD,WAAAC,wBAGA,KAAAQ,kBAAA,KAAAtd,UAAA,KAAAsb,uBACA,OAAA/+C,GACAb,QAAAJ,MAAAiB,GACA,KAAA++C,sBAAA,CACA,CACA,EACAvoC,QAAA,CACAktC,gBAAAA,GACA,KAAAh+C,SAAA,KAAA+gB,OAAAmK,MAAAlrB,QACA,EAEA,uBAAAq7C,CAAA9lD,GACA,KAAAgP,WAAA,EAEA3L,GAAAsH,sBAAA,KAAAlF,QAAAtG,GAAAoD,cAAAvC,GAAA,KAAAyK,UAAA8G,MAAA,OAAAtN,WACA,KAAA6kD,aAAA7kD,EAAAA,KACA,KAAA+K,WAAA,EACA,KAAAi5C,cAAAhkD,EAAAykD,QACA,KAAAK,aAAA,GAEA,EAEAC,eAAAA,GACA,KAAAlD,kBAAA,KAAAtd,UAAA,KAAAsb,uBACA,EAEAiF,WAAAA,GACA,KAAAF,YAIA,KAAA7E,UAAA,KAAA8E,aAAA70C,QAAAgwC,GAAAA,EAAAkE,SAAA/L,MAAAgM,GAAAA,EAAAllB,OAAAklB,EAAAllB,MAAAlhB,SAAA,KAAA6mC,iBAHA,KAAA7E,UAAA,KAAA8E,YAIA,EAEA,eAAA/E,CAAA3oC,GACA,KAAA0oC,wBAAA1oC,IACA,KAAA0oC,sBAAA1oC,QACA,KAAA0qC,kBAAA,KAAAtd,UAAAptB,IAEA,EAEA4rC,oBAAAA,CAAAnnD,GACA,MAAA4nD,EAAA5nD,EAAA8R,MAAA,KACA,YAAAkF,OAAA4wC,EAAA,OAAA5wC,OAAA4wC,EAAA,IAAA5wC,OAAA4wC,EAAA,GACA,EAEAJ,cAAAA,CAAAK,EAAAC,EAAAC,EAAAC,GACA,OAAAH,EAAAG,GAAAD,EAAAD,CACA,EAEA3C,kBAAAA,GACA,MAAA96C,EAAA,KAAA66C,cAAAzrC,KAAA1G,GAAAA,EAAAE,KACArW,EAAA,oEAAA03B,qBAAAjqB,EAAAvH,KAAA,OACA/G,OAAAkB,SAAAL,CACA,IClM4N,MCQxN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bmd,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,QAAQ,CAACM,YAAY,gBAAgB,CAAGP,EAAI4oB,iBAAoB5oB,EAAI6oB,WAAqlB7oB,EAAII,KAA7kBH,EAAG,QAAQ,CAACM,YAAY,8DAA8DC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,eAAeV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,qGAAqGV,EAAG,MAAM,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,yEAAyEX,EAAIe,GAAGf,EAAIrI,eAAe,aAAsB,GAAGsI,EAAG,cAAc,CAACM,YAAY,YAAYqR,MAAM5R,EAAI3I,mBAAqB,oBAAsB,UAAUiJ,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,eAAe,GAAGA,EAAG,QAAQ,CAACM,YAAY,yBAAyBD,MAAM,CAAC,KAAO,KAAK,GAAKN,EAAImsB,iBAAmBnsB,EAAIosB,aAAepsB,EAAIqsB,cAAgB,EAAI,KAAK,CAACpsB,EAAG,SAAS,CAACK,MAAM,CAAC,cAAgB,eAAe,GAAGL,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,wBAAwB,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,oBAAoB,IAAI,IAAI,IAAI,EAC53C,EACII,GAAkB,GC0DtB,IACAhf,KAAA,WACA6nB,OAAA,CAAA2c,GAAAC,IACAvf,WAAA,CACAkqB,WAAA,GACAC,gBAAA,GACAiZ,OAAA,GACA55B,oBAAAA,IAEA7lB,IAAAA,GACA,OACA0/C,UAAA,GACAC,cAAA,GACAC,aAAA,GACA1d,aAAA,EACAD,iBAAA,EACAE,eAAA,EACAY,2BAAA,KACAC,oBAAA,KACAZ,mBAAA,KAEA,EACAhrB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QAAAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAuH,WAAA7T,GAAAA,EAAAC,IAAAwR,QACA2C,cAAApU,GAAAA,EAAAC,IAAAmU,oBAEAsT,EAAAA,EAAAA,IAAA,8DAEA2d,eAAAA,GACA,MAAAE,EAAA,CACA,GAAA7uC,EAAAmF,oBAAAnF,EAAAoF,4BACA,GAAApF,EAAAmF,oBAAAnF,EAAAqF,iCACA,GAAArF,EAAAmF,oBAAAnF,EAAAsF,kCAEA,OAAAupC,EAAAvpB,KAAA1G,GAAA,SAAAhJ,cAAAgJ,MAAAoP,SAAA,KAAAwJ,OAAA0V,KACA,EAEA0B,UAAAA,GACA,YAAApX,OAAA0V,OAAA,SAAAt3B,cAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,eAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,iBACA,GAEA,aAAA4Y,GAAA,EACAjH,QAAA,CACAorB,YAAAA,GACA,YAAAN,mBAAAC,cAAA,KAAAD,mBAAAC,aAAAC,UAAA,KAAAF,mBAAAC,aAAAC,SAAAp8B,OAAA,CACA,EACAy8B,gBAAAA,GACA,YAAAP,mBAAAI,UAAA,KAAAJ,mBAAAI,SAAAF,UAAA,KAAAF,mBAAAI,SAAAF,SAAAp8B,OAAA,CACA,EACA08B,eAAAA,GACA,YAAAR,mBAAAG,YAAA,KAAAH,mBAAAG,WAAAD,UAAA,KAAAF,mBAAAG,WAAAD,SAAAp8B,OAAA,CACA,EAEAo9B,WAAAA,CAAAC,GACA,OAAAA,EAAAvzB,QAAA,CAAAwzB,EAAAC,EAAAC,IACA,OAAAF,EAAA,iBAAAA,EAAA,YAAAE,EAAAruB,KAAAsuB,GAAAA,EAAA,aAAAvxB,QAAAoxB,EAAA,cAAAC,GAEA,EACAG,UAAAA,CAAAC,GACA,OAAAA,EACAA,EAAApxB,UAAA,EAAAoxB,EAAA39B,QADA,GAEA,EACA49B,SAAAA,CAAAC,GACA,OAAAA,EACAC,WAAAD,GADA,GAEA,EACAE,YAAAA,CAAAF,GACA,OAAAA,EACAA,EAAAniC,QAAAoiC,WAAAD,GAAA,IADA,GAEA,EACAG,OAAAA,CAAAb,GACA,IAAAc,EAAA,GAMA,OAJAA,EADAd,EAAAn9B,OAAA,EACAm9B,EAAAA,EAAAn9B,OAAA,GAEAm9B,EAAA,GAEAc,CACA,EACAC,eAAAA,CAAAf,GACA,IAAAc,EAAA,GAMA,OAJAA,EADAd,EAAAn9B,OAAA,EACAm9B,EAAA,GAEAA,EAAA,GAEAc,CACA,ICrJgN,MCQ5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BxuB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,QAAQ,CAACM,YAAY,gBAAgB,CAAGP,EAAI4oB,iBAAoB5oB,EAAI6oB,WAA4Z7oB,EAAII,KAApZH,EAAG,QAAQ,CAACM,YAAY,yDAAyDC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,YAAYV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,+EAAwF,GAAGV,EAAG,cAAc,CAACM,YAAY,YAAYqR,MAAM5R,EAAI3I,mBAAqB,oBAAsB,UAAUiJ,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,eAAe,GAAGA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,aAAa,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,wBAAwB,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,oBAAoB,IAAI,IAAI,IAAI,EACjjC,EACII,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,SAAS,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,OAASN,EAAIxK,mBAAmB,CAACyK,EAAG,UAAU,CAACK,MAAM,CAAC,KAAON,EAAIxK,iBAAiB,QAAU,aAAa,CAACyK,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK4O,YAAYm5C,gCAAgC,MAAM,GAAGjvC,EAAG,gBAAgB,CAACK,MAAM,CAAC,QAAUnZ,KAAKuE,QAAQ,KAAO,aAAa,IAAI,EAC3d,EACI2U,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAGD,EAAI/K,WAAc+K,EAAIkK,iBAA0hBlK,EAAII,KAA5gBH,EAAG,MAAM,CAACA,EAAG,UAAU,CAACK,MAAM,CAAC,KAAON,EAAIY,OAAO,QAAU,aAAa,CAACX,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,yDAAyD,GAAGV,EAAG,UAAU,CAACK,MAAM,CAAC,KAAON,EAAIyD,SAAS,QAAU,aAAa,CAACxD,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,6DAA6D,IAAI,GAAaX,EAAIyD,UAAYzD,EAAIiK,oBAAqBhK,EAAG,MAAM,CAACM,YAAY,iCAAiC2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI6L,gBAAgB,IAAI,CAAC5L,EAAG,UAAU,CAACM,YAAY,cAAcD,MAAM,CAAC,KAAO,GAAG,QAAU,aAAa,CAACN,EAAIW,GAAG,mEAAmEV,EAAG,oBAAoB,CAACM,YAAY,mBAAmBD,MAAM,CAAC,KAAO,OAAO,KAAO,SAAS,IAAI,GAAGN,EAAII,KAAKH,EAAG,MAAM,CAAED,EAAI/K,UAAW+K,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,mCAAmCD,MAAM,CAAC,KAAO,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,YAAY,EAAE,IAAGN,EAAII,KAAOJ,EAAI/K,UAAo5E+K,EAAII,KAA74E,CAAEJ,EAAIyD,SAAUxD,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,4BAA4BD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,aAAa,CAACK,MAAM,CAAC,QAAUN,EAAIwK,YAAY,UAAW,EAAK,YAAc,OAAO,cAAe,EAAK,MAAQ,EAAE,UAAarS,GAAU,SAASA,cAAkB+L,GAAG,CAAC,MAAQlE,EAAIkM,mBAAmBoJ,MAAM,CAACrY,MAAO+C,EAAIuK,WAAYgL,SAAS,SAAUC,GAAMxV,EAAIuK,WAAWiL,CAAG,EAAEtP,WAAW,iBAAiB,GAAGjG,EAAG,QAAQ,CAACM,YAAY,4BAA4BD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,aAAa,CAACK,MAAM,CAAC,QAAUN,EAAIsK,eAAe,UAAW,EAAK,YAActK,EAAI+K,mBAAmB,cAAe,EAAK,MAAQ,EAAE,UAAa5S,GAAU,GAAG6H,EAAI+K,uBAAuB5S,cAAkB+L,GAAG,CAAC,MAAQlE,EAAIkM,mBAAmBoJ,MAAM,CAACrY,MAAO+C,EAAIqK,cAAekL,SAAS,SAAUC,GAAMxV,EAAIqK,cAAcmL,CAAG,EAAEtP,WAAW,oBAAoB,IAAI,GAAGlG,EAAII,KAAMJ,EAAIY,OAAQX,EAAG,MAAM,CAAED,EAAIgB,gBAAkBhB,EAAIgB,eAAe5Q,OAAS,EAAG6P,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,OAAO,CAACM,YAAY,oCAAoC,CAACP,EAAIW,GAAG,cAAcX,EAAIiB,GAAIjB,EAAIgB,gBAAgB,SAASE,GAAS,OAAOjB,EAAG,QAAQ,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,mCAAmCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,KAAK,oBAAqB,EAAK,cAAgBF,EAAQN,OAAO,eAAgB,MAAS,EAAE,KAAI,GAAGZ,EAAII,KAAMJ,EAAI6K,gBAAkB7K,EAAI6K,eAAeza,OAAS,EAAG6P,EAAG,QAAQ,CAACM,YAAY,QAAQ,CAACN,EAAG,QAAQ,CAACM,YAAY,sBAAsBD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,OAAO,CAACM,YAAY,oCAAoC,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIvJ,mBAAmBuJ,EAAIiB,GAAIjB,EAAI6K,gBAAgB,SAAS3J,GAAS,OAAOjB,EAAG,QAAQ,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,mCAAmCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,KAAK,oBAAqB,EAAM,eAAgB,EAAK,iBAAkB,EAAK,eAAgB,MAAS,EAAE,KAAI,GAAGpB,EAAII,MAAM,GAAGH,EAAG,MAAM,CAACA,EAAG,QAAQD,EAAIiB,GAAIjB,EAAI+J,UAAU,SAAS7I,GAAS,OAAOjB,EAAG,QAAQ,CAACkB,IAAID,EAAQnI,GAAGwH,YAAY,mCAAmCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiBY,EAAQ,OAASA,EAAQN,OAAO,KAAOZ,EAAIoB,SAAS,EAAE,IAAG,IAAI,IAAcpB,EAAI8J,cAAe,CAAC7J,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,QAAQN,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,sCAAsCD,MAAM,CAAC,KAAO,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,YAAY,EAAE,KAAIN,EAAII,KAAKH,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAAEN,EAAIkK,kBAAoBlK,EAAIgK,kBAAoBhK,EAAI8J,cAAe7J,EAAG,WAAW,CAACK,MAAM,CAAC,KAAO,GAAG,QAAU,YAAY4D,GAAG,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAOE,iBAAwBrE,EAAI8L,UAAU,IAAI,CAAC9L,EAAIW,GAAG,eAAeV,EAAG,IAAI,CAACM,YAAY,kBAAkBP,EAAII,MAAM,IAAI,IAClxI,EACIC,GAAkB,GCiItB,IACAhf,KAAA,gBACA6nB,OAAA,CAAAC,IACAzE,MAAA,CAEAtD,KAAA,CACAtG,KAAA+J,OACAE,QAAA,OACAC,UAAA,SAAA/H,GAEA,cAAAA,IAAA,+BAAAX,QAAAW,EACA,IAGAsJ,WAAA,CACAsD,YAAA,GACA4oB,WAAAA,MAEAvoC,IAAAA,GACA,OACA+K,WAAA,EACA6U,eAAA,EACAC,SAAA,GACApd,KAAA,EACAqd,iBAAA,EACAC,qBAAA,EACAC,kBAAA,EACAC,wBAAA,KACAC,uBAAA,KACAC,cAAA,KACAC,eAAA,GACAC,WAAA,KACAC,YAAA,GAEA,EACAlJ,SAAA,CACAmC,QAAAA,GACA,qBAAArC,IACA,EACAqI,QAAAA,GACA,qBAAArI,IACA,EACAR,MAAAA,GACA,mBAAAQ,IACA,EACAqJ,2BAAAA,GACA,OAAA1mB,SAAAf,QACA,EACA0nB,6BAAAA,GACA,OAAA3mB,SAAAf,QACA,EACAge,cAAAA,GACA,OACA,KAAAxK,iBAAAvc,EAAA0F,uBAAA,KAAA6W,iBAAAvc,EAAA2F,wBACA,KAAAmqB,UAAA7P,QAAAyQ,GAAAA,EAAAC,UAEA,EACAC,cAAAA,GACA,OACA,KAAArU,iBAAAvc,EAAAyF,uBAAA,KAAA8W,iBAAAvc,EAAA2F,wBACA,KAAAmqB,UAAA7P,QAAAyQ,GAAAA,EAAAG,UAEA,EACAC,kBAAAA,GACA,YAAApU,kBAAA,kBACA,MACAsU,EAAAA,EAAAA,IAAA,uBAEAxE,MAAA,CACAhM,gBAAAA,CAAAD,GACAA,IACA,KAAAoG,QAAA,KAAAsK,uBACA,KAAAzB,UAAA,KAAA0B,sBACA,KAAA1H,UAAA,KAAA2H,sBAEA,GAEA3C,OAAAA,GACA,KAAA7H,SACA,KAAAsK,uBAGA,KAAAf,wBAAAkB,aAAA,KACA,KAAA5Q,kBACA,KAAAyQ,sBACA,GACA,KAAAT,8BAGA,KAAAhB,UAAA,KAAA0B,sBAEA,KAAA1H,WACA,KAAA9T,qBACA,KAAAK,iBAEA,KAAAob,sBAGA,KAAAhB,uBAAAiB,aAAA,KACA,KAAA5Q,kBACA,KAAA2Q,qBACA,GACA,KAAAV,+BAEA,EACAY,aAAAA,GACAC,cAAA,KAAApB,yBACAoB,cAAA,KAAAnB,uBACA,EACA5I,QAAA,CACA0J,oBAAAA,GACA5hB,GAAA+C,sBAAA,KAAAX,SAAA8L,MAAA,EAAAtN,WAEA,GADA,KAAA+K,WAAA,EACA/K,EAAA,CAEA,KAAA6f,SAAA7f,EACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA8Z,iBAAAsB,EAAA,CACA,IAEA,EACAL,mBAAAA,GACA7hB,GAAAuD,kBAAA,KAAAnB,QAAA,KAAAiB,KAAA1S,EAAA2D,yBAAA,MAAA4Z,MAAA,EAAAtN,WAEA,GADA,KAAA+K,WAAA,EACA/K,EAAA,CAEA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA7f,EACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,0BACA,KAAAssB,iBAAAsB,EAAA,CACA,IAEA,EACAJ,mBAAAA,GAGA,MAAAM,EAAA,KAAArB,cACAsB,EAAA,KAAApB,WAGA,KAAAL,iBA0BA,KAAAjV,WAAA,KAAA2W,2BAzBAtiB,GAAAkE,kBACA,KAAA9B,QACA,KAAAiB,KACA1S,EAAA2D,yBAAA,EACA8tB,GAAAtb,OAAA,EAAAsb,EAAA,KACAC,GAAAvb,OAAA,EAAAub,EAAA,MACAnU,MAAA,EAAAtN,WAEA,GADA,KAAA+K,WAAA,EACA/K,EAAA,CACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA7f,EACA,KAAAggB,iBAAAsB,EAAA,EACA,KAAAtB,mBACA,KAAAvd,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,0BAEA,IAeA,EAEAguB,wBAAAA,GACA,MAAAF,EAAA,KAAArB,cACAsB,EAAA,KAAApB,WACAjhB,GAAAkE,kBACA,KAAA9B,QACA,EACA,EACAggB,GAAAtb,OAAA,EAAAsb,EAAA,KACAC,GAAAvb,OAAA,EAAAub,EAAA,MACAnU,MAAA,EAAAtN,WACAA,GAAAA,EAAAkG,OAAA,IAGA,KAAA6Z,oBAAA/f,EAAA,GAAA6O,IAAA,KAAAgR,SAAA,GAAAhR,GACA,GAEA,EAEA8S,cAAAA,GAEA,KAAA5W,WAAA,EACA,KAAAiV,kBAAA,EACA,KAAAvd,KAAA,EACA,KAAAsd,qBAAA,EACA,KAAAmB,qBACA,EAUAU,QAAAA,GACA,aAAA1K,MACA,KAAA2K,0BAEA,eAAA3K,MACA,KAAA4K,yBAEA,eAAA5K,MACA,KAAA6K,wBAEA,EACAF,uBAAAA,GACA,KAAAjC,eAAA,EACAxgB,GAAAoD,mBAAA,KAAAhB,QAAA,KAAAiB,KAAA1S,EAAA2D,yBAAA,MAAA4Z,MAAA,EAAAtN,WAEA,GADA,KAAA4f,eAAA,EACA5f,EAAA,CACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA,SAAAA,YAAA7f,GACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,yBACA,IAEA,EACAouB,sBAAAA,GACA,KAAAlC,eAAA,EACAxgB,GAAAuD,kBAAA,KAAAnB,QAAA,KAAAiB,KAAA1S,EAAA2D,yBAAA,MAAA4Z,MAAA,EAAAtN,WAEA,GADA,KAAA4f,eAAA,EACA5f,EAAA,CACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA,SAAAA,YAAA7f,GACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,yBACA,IAEA,EACAquB,sBAAAA,GACA,KAAAnC,eAAA,EACA,MAAA4B,EAAA,KAAArB,cACAsB,EAAA,KAAApB,WACAjhB,GAAAkE,kBACA,KAAA9B,QACA,KAAAiB,KACA1S,EAAA2D,yBAAA,EACA8tB,GAAAtb,OAAA,EAAAsb,EAAA,KACAC,GAAAvb,OAAA,EAAAub,EAAA,MACAnU,MAAA,EAAAtN,WAEA,GADA,KAAA4f,eAAA,EACA5f,EAAA,CACA,IAAAshB,EAAAthB,EAAAkG,OACA,KAAA4Z,gBAAAwB,EAAAvxB,EAAA2D,yBACA,KAAAosB,iBACA9f,EAAA8O,QAAA,KAEA,KAAA+Q,SAAA,SAAAA,YAAA7f,GACA,KAAAyC,MAAAhG,KAAA8kB,IAAAD,EAAAvxB,EAAA2D,yBACA,IAEA,EACA+R,kBAAAA,GACArG,GAAAqG,mBAAA,KAAAjE,SAAA8L,MAAA,EAAAtN,WACAA,IACA,KAAAogB,eAAApgB,EACA,GAEA,EACAgiB,iBAAAA,GACA,KAAAhC,kBAAA,EACA,KAAAvd,KAAA,EACA,KAAAye,qBACA,EACApb,cAAAA,GACA1G,GAAA0G,eAAA,KAAAtE,SAAA8L,MAAA,EAAAtN,WACAA,IACA,KAAAsgB,YAAAtgB,EACA,GAEA,IC7aqN,MCQjN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCGhC,IACA7I,KAAA,WACAklB,WAAA,CACA4oC,cAAAA,IAEAzqC,MAAA,CACAhZ,QAAAoR,QAEA5S,IAAAA,GACA,OACAklD,qBAAA,KACAC,oBAAA,KACAC,cAAA,KAEA,EACAhuC,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAlM,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAG,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAO,YAAAxS,GAAAA,EAAAC,IAAAuS,eAGA0S,OAAAA,GACA,EAEAjH,QAAA,IC/CgN,MCQ5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QC0ChC,IACAngB,KAAA,WACA6nB,OAAA,CAAA2c,GAAAC,IACAvf,WAAA,CACAkqB,WAAA,GACAC,gBAAA,GACA6e,SAAA,GACAx/B,oBAAAA,IAEA7lB,IAAAA,GACA,OACA0/C,UAAA,GACAC,cAAA,GACAC,aAAA,GACA1d,aAAA,EACAD,iBAAA,EACAE,eAAA,EACAY,2BAAA,KACAC,oBAAA,KACAZ,mBAAA,KAEA,EACAhrB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAuH,WAAA7T,GAAAA,EAAAC,IAAAwR,QACA2C,cAAApU,GAAAA,EAAAC,IAAAmU,oBAEAsT,EAAAA,EAAAA,IAAA,8DAEA2d,eAAAA,GACA,MAAAE,EAAA,CACA,GAAA7uC,EAAAmF,oBAAAnF,EAAAoF,4BACA,GAAApF,EAAAmF,oBAAAnF,EAAAqF,iCACA,GAAArF,EAAAmF,oBAAAnF,EAAAsF,kCAEA,OAAAupC,EAAAvpB,KAAA1G,GAAA,SAAAhJ,cAAAgJ,MAAAoP,SAAA,KAAAwJ,OAAA0V,KACA,EAEA0B,UAAAA,GACA,YAAApX,OAAA0V,OAAA,SAAAt3B,cAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,eAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,iBACA,GAEA,aAAA4Y,GAEA,EACAjH,QAAA,CACAorB,YAAAA,GACA,YAAAN,mBAAAC,cAAA,KAAAD,mBAAAC,aAAAC,UAAA,KAAAF,mBAAAC,aAAAC,SAAAp8B,OAAA,CACA,EACAy8B,gBAAAA,GACA,YAAAP,mBAAAI,UAAA,KAAAJ,mBAAAI,SAAAF,UAAA,KAAAF,mBAAAI,SAAAF,SAAAp8B,OAAA,CACA,EACA08B,eAAAA,GACA,YAAAR,mBAAAG,YAAA,KAAAH,mBAAAG,WAAAD,UAAA,KAAAF,mBAAAG,WAAAD,SAAAp8B,OAAA,CACA,EAGAo9B,WAAAA,CAAAC,GACA,OAAAA,EAAAvzB,QAAA,CAAAwzB,EAAAC,EAAAC,IACA,OAAAF,EAAA,iBAAAA,EAAA,YAAAE,EAAAruB,KAAAsuB,GAAAA,EAAA,aAAAvxB,QAAAoxB,EAAA,cAAAC,GAEA,EACAG,UAAAA,CAAAC,GACA,OAAAA,EACAA,EAAApxB,UAAA,EAAAoxB,EAAA39B,QADA,GAEA,EACA49B,SAAAA,CAAAC,GACA,OAAAA,EACAC,WAAAD,GADA,GAEA,EACAE,YAAAA,CAAAF,GACA,OAAAA,EACAA,EAAAniC,QAAAoiC,WAAAD,GAAA,IADA,GAEA,EACAG,OAAAA,CAAAb,GACA,IAAAc,EAAA,GAMA,OAJAA,EADAd,EAAAn9B,OAAA,EACAm9B,EAAAA,EAAAn9B,OAAA,GAEAm9B,EAAA,GAEAc,CACA,EACAC,eAAAA,CAAAf,GACA,IAAAc,EAAA,GAMA,OAJAA,EADAd,EAAAn9B,OAAA,EACAm9B,EAAA,GAEAA,EAAA,GAEAc,CACA,IC1JgN,MCQ5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BxuB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,OAAO,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,WAAW,CAACK,MAAM,CAAC,QAAUN,EAAItU,QAAQ,UAAW,EAAK,UAAW,EAAM,OAAS,cAAc,IAAI,GAAGuU,EAAG,SAAS,CAACK,MAAM,CAAC,KAAO,gBAAgB,MAAQN,EAAIikB,MAAM,UAAYjkB,EAAI+jB,cAAc,EACjZ,EACI1jB,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACM,YAAY,WAAWD,MAAM,CAAC,gBAAgBN,EAAIi8B,aAAa,gBAAgBj8B,EAAIk8B,WAAW,CAACj8B,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,MAAM,CAACM,YAAY,yBAAyB,CAAEP,EAAIwvC,cAAe,CAACvvC,EAAG,IAAI,CAACM,YAAY,uDAAuDP,EAAIW,GAAG,yBAAyBX,EAAII,KAAOJ,EAAIwvC,cAAg1DxvC,EAAII,KAAr0D,CAAGJ,EAAIu9B,SAAgI,CAAEv9B,EAAIkP,QAAQG,IAAMrP,EAAIkP,QAAQE,IAAMpP,EAAIkP,QAAQC,IAAKlP,EAAG,MAAM,CAACM,YAAY,oBAAoBD,MAAM,CAAC,WAAW,MAAM,CAACN,EAAIiB,GAAIjB,EAAIyuB,WAAW,SAASC,EAASrtB,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIutB,EAAShF,WAAWnpB,YAAY,aAAaqR,MAAM,CAAEyN,SAAUrf,EAAI2uB,cAAcD,IAAYluB,MAAO,CAAEouB,OAAS5uB,EAAI08B,WAAc18B,EAAI/K,WAAc+K,EAAI2uB,cAAcD,GAAwB,KAAZ,WAAoBpuB,MAAM,CAAC,uBAAgC,GAATe,IAAerB,EAAIkP,QAAQG,IAAMrP,EAAIkP,QAAQE,IAAMpP,EAAIkP,QAAQC,KAAO,EAAI,OAAO,CAAClP,EAAG,OAAO,CAACiE,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI8uB,WAAWJ,EAAS,IAAI,CAAC1uB,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgC0uB,QAAe,IAAIvnC,KAAK4O,aAAe5O,KAAK4O,YAAYs+B,UAAYltC,KAAK4O,YAAYs+B,SAASjmB,SAAUnO,EAAG,IAAI,CAACM,YAAY,mBAAmBD,MAAM,CAAC,KAAOnZ,KAAK4O,YAAYs+B,SAASjmB,SAAS,OAAS,WAAW,CAACpO,EAAIW,GAAG,wCAAwCX,EAAII,MAAM,GAAGJ,EAAII,KAAKH,EAAG,MAAM,CAACM,YAAY,YAAYD,MAAM,CAAC,MAAQ,MAAM,CAACL,EAAG,OAAO,CAACM,YAAY,wCAAwCqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAa18B,EAAI/K,YAAc+K,EAAI49B,kBAAmB15B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyvC,oBAAoB,IAAI,CAACxvC,EAAG,IAAI,CAACM,YAAY,uDAAuDN,EAAG,OAAO,CAACM,YAAY,aAAaD,MAAM,CAAC,uBAAuBN,EAAIkP,QAAQM,IAAMxP,EAAIkP,QAAQK,IAAMvP,EAAIkP,QAAQI,GAAK,EAAI,OAAO,CAACtP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIkwB,gBAAgB,OAAOjwB,EAAG,OAAO,CAACM,YAAY,oCAAoCqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAa18B,EAAI/K,YAAc+K,EAAI29B,cAAez5B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI0vC,gBAAgB,IAAI,CAACzvC,EAAG,IAAI,CAACM,YAAY,2DAApvD,CAACN,EAAG,OAAO,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIuvB,iBAAiB,UAA4sD,GAAIvvB,EAAIk8B,SAAUj8B,EAAG,MAAM,CAACM,YAAY,yBAAyB2D,GAAG,CAAC,MAAQlE,EAAIgS,iBAAiB,CAAC/R,EAAG,IAAI,CAACM,YAAY,iEAAiEN,EAAG,IAAI,CAACM,YAAY,iEAAiEN,EAAG,IAAI,CAACM,YAAY,8DAA8DP,EAAII,OAAOH,EAAG,MAAM,CAACM,YAAY,sBAAsBqR,MAAM5R,EAAIk8B,SAAW,QAAU,QAAQ,CAACj8B,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAAEP,EAAI/K,UAAW+K,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,iCAAiC,CAACN,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,eAAe,GAAGA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,kBAAkB,CAACL,EAAG,MAAM,CAACM,YAAY,sBAAsB,CAACN,EAAG,eAAe,GAAGA,EAAG,MAAM,CAACM,YAAY,oBAAoBN,EAAG,QAAQ,CAACM,YAAY,2BAA2B,CAACN,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACN,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,GAAGL,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACN,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,MAAM,EAAE,IAAGN,EAAII,KAAOJ,EAAI/K,UAA41C+K,EAAII,KAAr1CJ,EAAIiB,GAAIjB,EAAI2vC,UAAU,SAASC,GAAqB,OAAO3vC,EAAG,QAAQ,CAACkB,IAAIyuC,EAAoBC,GAAGtvC,YAAY,iCAAiC,CAACN,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,iBAAiB,CAAEN,EAAItJ,eAAiBk5C,EAAoBhvC,OAAQX,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,UAAUX,EAAII,OAAOH,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,kBAAkB,CAACL,EAAG,MAAM,CAACM,YAAY,iBAAiB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiC4vC,EAAoB12C,YAAY,OAAO+G,EAAG,MAAM,CAACM,YAAY,oBAAoBN,EAAG,QAAQ,CAACM,YAAY,2BAA2B,CAAEqvC,EAAoB9kC,SAAU7K,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACN,EAAG,IAAI,CAACM,YAAY,+BAA+BP,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIvJ,mBAAmBuJ,EAAII,KAAMwvC,EAAoBhlC,SAAU3K,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACN,EAAG,IAAI,CAACM,YAAY,4BAA4BP,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAG,cAAcX,EAAII,KAAKH,EAAG,MAAM,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAGX,EAAIe,GAAG6uC,EAAoB71C,UAAW61C,EAAoBrF,YAAatqC,EAAG,MAAM,CAACM,YAAY,8BAA8B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAG6uC,EAAoBrF,aAAa,OAAOvqC,EAAII,KAAMwvC,EAAoB9rC,SAAU7D,EAAG,MAAM,CAACM,YAAY,2BAA2B,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAG6uC,EAAoB9rC,UAAU,OAAO9D,EAAII,QAAQ,EAAE,KAAa,GAAGH,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAAEP,EAAI/K,UAAW,CAACgL,EAAG,aAAa,CAACK,MAAM,CAAC,SAAW,KAAK,CAACL,EAAG,mBAAmB,CAACwC,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,MAAMwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,QAAQ,CAACM,YAAY,iCAAiC,CAACN,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,MAAM,CAACM,YAAY,iDAAiD,CAACN,EAAG,IAAI,CAACM,YAAY,qDAAqDP,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,GAAO,CAACpB,EAAG,aAAa,CAACM,YAAY,UAAUD,MAAM,CAAC,MAAQ,MAAM,OAAS,WAAW,EAAE,IAAGL,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,MAAM,CAACM,YAAY,6CAA6C,CAACN,EAAG,IAAI,CAACM,YAAY,uDAAuD,GAAGN,EAAG,QAAQ,CAACM,YAAY,gBAAgB,CAACN,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,uBAAuBN,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,oBAAoBP,EAAIiB,GAAI,GAAG,SAAS6uC,GAAW,OAAO7vC,EAAG,MAAM,CAACkB,IAAI2uC,EAAUvvC,YAAY,6BAA6B,CAACN,EAAG,SAAS,CAACM,YAAY,YAAYD,MAAM,CAAC,UAAU,GAAG,aAAa,UAAU,CAACL,EAAG,MAAM,CAACA,EAAG,aAAa,CAACM,YAAY,sBAAsBD,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACM,YAAY,iBAAiBD,MAAM,CAAC,MAAQ,SAAS,GAAGL,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,MAAM,EAAE,IAAG,EAAE,IAAGL,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,wBAAwB,GAAG,EAAE0C,OAAM,IAAO,MAAK,EAAM,eAAe,IAAIhD,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAIo8B,YAAc,EAAGn8B,EAAG,MAAM,CAACA,EAAG,aAAa,CAACmI,IAAI,mBAAmB9H,MAAM,CAAC,SAAW,GAAG4D,GAAG,CAAC,gBAAgBlE,EAAIq8B,aAAa,cAAcr8B,EAAIs8B,aAAat8B,EAAIiB,GAAIjB,EAAIo8B,aAAa,SAASG,GAAa,OAAOt8B,EAAG,mBAAmB,CAACkB,IAAIo7B,EAAY95B,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,MAAMwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,QAAQ,CAACM,YAAY,iCAAiC,CAAEP,EAAIw8B,oBAAqBv8B,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,MAAM,CAACM,YAAY,gDAAgDqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAYx4B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI28B,qBAAqB,IAAI,CAAC18B,EAAG,IAAI,CAACM,YAAY,qDAAqDP,EAAII,KAAKJ,EAAIiB,GAAIjB,EAAI48B,mBAAmBL,IAAc,SAASxhC,GAAS,OAAOkF,EAAG,QAAQ,CAACkB,IAAIpG,EAAQhC,IAAI,CAACkH,EAAG,OAAO,CAACM,YAAY,qBAAqB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI0O,SAASC,QAAQkuB,kBAAkB9hC,EAAQ1Z,WAAW,IAAI2e,EAAIw8B,oBAAqBv8B,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,MAAM,CAACM,YAAY,4CAA4CqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAYp8B,MAAM,CAAC,uBAAuB,KAAK4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI88B,qBAAqB,IAAI,CAAC78B,EAAG,IAAI,CAACM,YAAY,sDAAsDP,EAAII,MAAM,GAAGH,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,QAAQ,CAACM,YAAY,eAAeC,MAAO,+BAA+B,GAAKR,EAAI+8B,aAAe,IAAO/8B,EAAIg9B,oBAAqB18B,MAAM,CAAC,UAAU,WAAW,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,uBAAuBN,EAAIiB,GAAIta,KAAKG,KAAKkZ,EAAI+8B,YAAc,OAAmB,SAAS17B,GAAO,OAAOpB,EAAG,WAAW,CAACkB,IAAIE,GAAO,CAACpB,EAAG,MAAM,CAACM,YAAY,gBAAgBC,MAAO,iCAAkC,MAAmB,IAAOR,EAAIg9B,sBAAuB,CAAEh9B,EAAIi9B,kBAAkB57B,GAAQpB,EAAG,MAAM,CAACkG,YAAY,CAAC,UAAU,IAAI,SAAW,WAAW,MAAQ,OAAO,aAAa,uBAAuBnG,EAAII,KAAKH,EAAG,OAAO,CAACkG,YAAY,CAAC,UAAU,IAAI,OAAS,YAAY,CAACnG,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAkCA,EAAIk9B,aAA6B,KAAb77B,EAAQ,GAAY,GAAK,QAASpB,EAAG,MAAM,CAACM,YAAY,6BAA6B,IAAG,GAAGP,EAAIiB,GAAIjB,EAAI48B,mBAAmBL,IAAc,SAASxhC,GAAS,OAAOkF,EAAG,QAAQ,CAACkB,IAAIpG,EAAQhC,GAAGwH,YAAY,oBAAoB,CAACN,EAAG,MAAM,CAACM,YAAY,OAAOC,MAAO,wDAAwDzF,EAAQq0B,MAAM,GAAGl2B,UAAY8G,EAAIk9B,eAAiB,IAAOl9B,EAAIg9B,8BAA+B,CAAC/8B,EAAG,MAAM,CAACM,YAAY,SAAS4F,YAAY,CAAC,OAAS,YAAYnG,EAAIiB,GAAIlG,EAAQq0B,OAAO,SAASgO,GAAM,OAAOn9B,EAAG,MAAM,CAACkB,IAAIi8B,EAAKrkC,GAAGwH,YAAY,4BAA4BC,MAAO,mEAAmE48B,EAAKjkC,QAAUikC,EAAKlkC,YAC5xR,IAAO8G,EAAIg9B,iCAAiCI,EAAKjkC,QAAUikC,EAAKlkC,YAAc,IAAO8G,EAAIg9B,0BAA0BI,EAAKlkC,UACzH8G,EAAIk9B,eACH,IAAOl9B,EAAIg9B,qBAAsB94B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI+vC,mBAAmB3S,EAAK,IAAI,CAACn9B,EAAG,SAAS,CAAC2R,MAAM,8BAA8BtR,MAAM,CAAC,UAAU,KAAK,CAACL,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACN,EAAG,iBAAiB,CAACK,MAAM,CAAC,MAAQ88B,EAAKrjC,MAAM,iBAAmBqjC,EAAKrkC,GAAG,oBAAsBqkC,EAAKhiC,oBAAoB,MAAQ,KAAK,OAAS,SAAS,GAAG6E,EAAG,MAAM,CAACA,EAAG,OAAO,CAACM,YAAY,iBAAiB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCo9B,EAAKlkC,YAAY,OAAO+G,EAAG,OAAO,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKh6B,UAAU,SAAUpD,EAAItJ,eAAiB0mC,EAAKx8B,OAAQX,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,YAAYX,EAAII,KAAMg9B,EAAKtyB,SAAU7K,EAAG,OAAO,CAACM,YAAY,kCAAkC,CAACN,EAAG,IAAI,CAACM,YAAY,+BAA+BP,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAIvJ,mBAAmBuJ,EAAII,KAAMg9B,EAAKxyB,SAAU3K,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACN,EAAG,IAAI,CAACM,YAAY,4BAA4BP,EAAIW,GAAG,KAAKV,EAAG,OAAO,CAACD,EAAIW,GAAG,cAAcX,EAAII,OAASJ,EAAIw5B,mBAAmB4D,GAAsLn9B,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACN,EAAG,MAAM,CAACM,YAAY,mBAAmB,CAACN,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,wBAAwBV,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKrjC,OAAO,OAAOkG,EAAG,MAAM,CAACM,YAAY,sBAAsB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKt5B,UAAU,aAA5hB7D,EAAG,MAAM,CAACA,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKrjC,OAAO,OAAOkG,EAAG,MAAM,CAACM,YAAY,sBAAsB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGq8B,EAAKt5B,UAAU,SAAmY7D,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACK,MAAM,CAAC,QAAU88B,KAASA,EAAKx8B,OAAQX,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAACN,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ88B,EAAKj6B,SAAS,IAAMi6B,EAAKh6B,SAAS,OAAS,YAAY,GAAGpD,EAAII,MAAM,MAAM,EAAE,IAAGH,EAAG,MAAM,CAACM,YAAY,OAAOC,MAAO,wDAAwDR,EAAIs9B,WAAaviC,EAAQq0B,MAAMr0B,EAAQq0B,MAAMh/B,OAAS,GAAG+I,UAC3+D,IAAO6G,EAAIg9B,0BAA0BjiC,EAAQq0B,MAAMr0B,EAAQq0B,MAAMh/B,OAAS,GAAG+I,QAAU6G,EAAIk9B,eAAiB,IAAOl9B,EAAIg9B,sBAAuB,CAAC/8B,EAAG,MAAM,CAACM,YAAY,SAAS4F,YAAY,CAAC,OAAS,aAAa,EAAE,IAAGlG,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,wBAAwB,IAAI,GAAIN,EAAIgwC,qBAAsB/vC,EAAG,QAAQ,CAACM,YAAY,iCAAiC,CAAEP,EAAIw8B,oBAAqBv8B,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,MAAM,CAACM,YAAY,gDAAgDqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAYx4B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI28B,qBAAqB,IAAI,CAAC18B,EAAG,IAAI,CAACM,YAAY,qDAAqDP,EAAII,KAAKJ,EAAIiB,GAAIjB,EAAI48B,mBAAmBL,IAAc,SAASxhC,GAAS,OAAOkF,EAAG,QAAQ,CAACkB,IAAIpG,EAAQhC,IAAI,CAACkH,EAAG,OAAO,CAACM,YAAY,qBAAqB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAI0O,SAASC,QAAQkuB,kBAAkB9hC,EAAQ1Z,WAAW,IAAI2e,EAAIw8B,oBAAqBv8B,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,sBAAsB,CAACL,EAAG,MAAM,CAACM,YAAY,4CAA4CqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAYp8B,MAAM,CAAC,uBAAuB,KAAK4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI88B,qBAAqB,IAAI,CAAC78B,EAAG,IAAI,CAACM,YAAY,sDAAsDP,EAAII,MAAM,GAAGJ,EAAII,KAAK,EAAE4C,OAAM,IAAO,MAAK,IAAO,IAAG,IAAI,GAAGhD,EAAII,MAAM,GAAIJ,EAAIgwC,qBAAsB/vC,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,MAAM,CAACM,YAAY,yBAAyB,CAAEP,EAAIwvC,cAAe,CAACvvC,EAAG,IAAI,CAACM,YAAY,uDAAuDP,EAAIW,GAAG,yBAAyBX,EAAII,KAAOJ,EAAIwvC,cAAg1DxvC,EAAII,KAAr0D,CAAGJ,EAAIu9B,SAAgI,CAAEv9B,EAAIkP,QAAQG,IAAMrP,EAAIkP,QAAQE,IAAMpP,EAAIkP,QAAQC,IAAKlP,EAAG,MAAM,CAACM,YAAY,oBAAoBD,MAAM,CAAC,WAAW,MAAM,CAACN,EAAIiB,GAAIjB,EAAIyuB,WAAW,SAASC,EAASrtB,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIutB,EAAShF,WAAWnpB,YAAY,aAAaqR,MAAM,CAAEyN,SAAUrf,EAAI2uB,cAAcD,IAAYluB,MAAO,CAAEouB,OAAS5uB,EAAI08B,WAAc18B,EAAI/K,WAAc+K,EAAI2uB,cAAcD,GAAwB,KAAZ,WAAoBpuB,MAAM,CAAC,uBAAgC,GAATe,IAAerB,EAAIkP,QAAQG,IAAMrP,EAAIkP,QAAQE,IAAMpP,EAAIkP,QAAQC,KAAO,EAAI,OAAO,CAAClP,EAAG,OAAO,CAACiE,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI8uB,WAAWJ,EAAS,IAAI,CAAC1uB,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgC0uB,QAAe,IAAIvnC,KAAK4O,aAAe5O,KAAK4O,YAAYs+B,UAAYltC,KAAK4O,YAAYs+B,SAASjmB,SAAUnO,EAAG,IAAI,CAACM,YAAY,mBAAmBD,MAAM,CAAC,KAAOnZ,KAAK4O,YAAYs+B,SAASjmB,SAAS,OAAS,WAAW,CAACpO,EAAIW,GAAG,wCAAwCX,EAAII,MAAM,GAAGJ,EAAII,KAAKH,EAAG,MAAM,CAACM,YAAY,YAAYD,MAAM,CAAC,MAAQ,MAAM,CAACL,EAAG,OAAO,CAACM,YAAY,wCAAwCqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAa18B,EAAI/K,YAAc+K,EAAI49B,kBAAmB15B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAIyvC,oBAAoB,IAAI,CAACxvC,EAAG,IAAI,CAACM,YAAY,uDAAuDN,EAAG,OAAO,CAACM,YAAY,aAAaD,MAAM,CAAC,uBAAuBN,EAAIkP,QAAQM,IAAMxP,EAAIkP,QAAQK,IAAMvP,EAAIkP,QAAQI,GAAK,EAAI,OAAO,CAACtP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIkwB,gBAAgB,OAAOjwB,EAAG,OAAO,CAACM,YAAY,oCAAoCqR,MAAM,CAAE6qB,UAAWz8B,EAAI08B,WAAa18B,EAAI/K,YAAc+K,EAAI29B,cAAez5B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI0vC,gBAAgB,IAAI,CAACzvC,EAAG,IAAI,CAACM,YAAY,2DAApvD,CAACN,EAAG,OAAO,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIuvB,iBAAiB,UAA4sD,GAAIvvB,EAAIk8B,SAAUj8B,EAAG,MAAM,CAACM,YAAY,yBAAyB2D,GAAG,CAAC,MAAQlE,EAAIgS,iBAAiB,CAAC/R,EAAG,IAAI,CAACM,YAAY,iEAAiEN,EAAG,IAAI,CAACM,YAAY,iEAAiEN,EAAG,IAAI,CAACM,YAAY,8DAA8DP,EAAII,OAAOJ,EAAII,QAClyH,EACIC,GAAkB,GC4XtB,IACAhf,KAAA,WACA6nB,OAAA,CAAAC,IACA5C,WAAA,CACA8C,cAAA,GACAG,eAAAA,IAEA9E,MAAA,CAEAxW,UAAA4O,OAEAnO,OAAA,CACAmM,KAAA+J,OACAC,UAAA,EACAE,UAAA,SAAA/H,GAEA,cAAAA,IAAA,0BAAAX,QAAAW,EACA,GAEAsgC,SAAA34B,QACAs3B,SAAA,CACAn3B,SAAA,EACAjK,KAAA8J,UAGA1a,IAAAA,GACA,OACA8lD,sBAAA,EACAR,eAAA,EACAv6C,WAAA,EACA06C,SAAA,GACA5R,aAAA,GACAL,yBAAA,EACAnO,eAAA,KACAW,cAAA,KACA+f,iBAAA,KACAvT,WAAA,EACAiB,cAAA,EACAC,kBAAA,EACAb,YAAA,EACAG,aAAA,EACAI,WAAA,EACA7O,UAAA,GACAoP,MAAA,GAEA,EACAv8B,SAAA,CACAw8B,gBAAAA,GACA,IAAA7uB,EAOA,OANA,KAAAC,QAAAC,IAAAF,EAAA,EACA,KAAAC,QAAAE,GAAAH,EAAA,EACA,KAAAC,QAAAG,GAAAJ,EAAA,EACA,KAAAC,QAAAI,GAAAL,EAAA,EACA,KAAAC,QAAAK,GAAAN,EAAA,EACA,KAAAC,QAAAM,KAAAP,EAAA,GACAA,CACA,EACA+tB,cAAAA,GACA,OAAA/iD,EAAA6D,gBACA,EACAs+C,WAAAA,GACA,YAAA2B,cAAA,QAAAA,aAAA3tC,OAEAzJ,KAAAG,KAAA,KAAAi3C,aAAA3tC,OAAA,KAAA0tC,kBAFA,CAGA,EAEA7B,YAAAA,GACA,YAAAsB,SAAA,sBACA,EACAf,mBAAAA,GACA,YAAAuB,aAAA3tC,OAAA,KAAA0tC,gBACA,EACAE,6BAAAA,GACA,OAAAj6C,SAAAf,QACA,MACAioB,EAAAA,EAAAA,IAAA,0DACA1J,EAAAA,EAAAA,IAAA,CACA1R,WAAAtM,GAAAA,EAAAC,IAAAqM,WACAsF,eAAA5R,GAAAA,EAAAC,IAAA2R,eACAC,aAAA7R,GAAAA,EAAAC,IAAA4R,aACAW,YAAAxS,GAAAA,EAAAC,IAAAuS,eAGA0Q,MAAA,CACAhM,gBAAAA,CAAAD,GACAA,IAEA,KAAAg1B,YAEA,KAAA0gB,gBAGA,KAAA3S,UAAA,KAAAkB,oBAEA,EAMAlB,QAAAA,CAAAgG,GAGAA,IACA,KAAA7F,0BACA,KAAAA,yBAAA,EACA,KAAAzoC,WAAA,GAEA,KAAAwpC,oBAEA,GAEA,aAAAh2B,GAEA,KAAAgJ,OAAA0V,KAAAlf,SAAAhuB,EAAAmE,gBACA,KAAA4xD,sBAAA,EAEA,KAAAA,sBAAA,QAEA,KAAAxgB,YACA,MAAA2gB,EAAA,KAAA1+B,OAAAmK,MAAA9c,IACA1Z,GAAA2C,YAAAooD,KAAA,KAAAjgB,cAAApzB,OAAAqzC,IACA,KAAAjgB,gBAAA,KAAAA,cAAA,KAAAX,gBAEA,KAAAG,kBACA,KAAA0gB,sBAGA,KAAAF,gBAEA,KAAA3S,UAAA,KAAAkB,oBAGA,KAAAwR,iBAAA5kC,aAAA,KACA,KAAA5Q,mBAEA,KAAA+0B,YAEA,KAAA0gB,gBAEA,KAAA3S,UAAA,KAAAkB,oBACA,GACA,KAAAT,8BACA,EACA1yB,aAAAA,GACAC,cAAA,KAAA0kC,iBACA,EACAzuC,QAAA,CACAmtB,aAAAA,CAAA7vB,GAEA,OACA,KAAA4P,SAAAC,QAAAshB,sBAAAnxB,KAAA,KAAA4P,SAAAC,QAAAshB,sBAAA,KAAAC,cAGA,EACA+M,iBAAAA,CAAA57B,GACA,OAAAjc,GAAA0C,YAAA,KAAAo1C,eAAA77B,EAAA,OAAAjc,GAAA0C,YAAA,KAAAo1C,eAAA77B,EAAA,IACA,EACAm4B,kBAAAA,CAAAt4B,GAKA,OAAAA,GAAAA,GAAAua,UACA,EACAijB,oBAAAA,CAAAx9B,GACA,IAAAy9B,EAAA,kBAGA,OAFAz9B,GAAAA,GAAAua,aAAAkjB,EAAA,qBAEAA,CACA,EACA0R,cAAAA,CAAArV,GAEA,MAAAsV,EAAA,QAEA,QAAArpD,EAAA,EAAAA,EAAA,GAAAA,IACAqpD,EAAArpD,EAAA,OACAqpD,EAAArpD,EAAA,MAAA+zC,EACAA,IAAA,EAGA,UAAAsV,EAAA9wC,QAAA,CAAAo/B,EAAA/iB,KAAAA,EAAA,GAAAA,EAAA6N,SAAA,QAAA7N,EAAA6N,SAAA,KAAAkV,GAAA,GACA,EACAsR,aAAAA,GACA5mD,GAAAoF,kBAAA,KAAAhD,QAAA,KAAAiD,OAAA,KAAAT,UAAA9I,GAAA4D,gBAAA,KAAAumC,iBAAA/3B,MAAA,EAAAtN,WACA,KAAA+K,WAAA,EACA/K,IAAA,KAAAylD,SAAAzlD,EAAA,GAEA,EACA,eAAAslC,GACA,WAAAtlC,SAAAZ,GAAAmG,yBAAA,KAAA/D,SACA,KAAA6jC,eAAArlC,EACA,KAAAslD,eAAA,CAGA,EACA/Q,iBAAAA,GACAn1C,GAAA4F,gBAAA,KAAAxD,QAAAtG,GAAA4D,gBAAA,KAAAknC,gBAAA14B,MAAA,EAAAtN,WAEA,GADA,KAAA+K,WAAA,EACA/K,EAAA,CACA,KAAA6zC,aAAA7zC,EAGA,IAAAqmD,EAAA,KAAAxS,aAAAv+B,QAAA,CAAAstC,EAAA1N,IAAA0N,EAAA7pD,OAAAm8C,EAAAhQ,MAAA,SACAohB,EAAA,KAAAzS,aAAAv+B,QAAA,CAAAstC,EAAA1N,IAAA0N,EAAA7pD,OAAAm8C,EAAAhQ,MAAAgQ,EAAAhQ,MAAAh/B,OAAA,SAEA,KAAA8sC,aAAAqT,EAAA/wC,QAAA,CAAAo/B,EAAAC,IAAAD,EAAA1lC,UAAA2lC,EAAA3lC,UAAA0lC,EAAAC,IAAA3lC,UACA,KAAAokC,WAAAkT,EAAAhxC,QAAA,CAAAo/B,EAAAC,IAAAD,EAAAzlC,QAAA0lC,EAAA1lC,QAAAylC,EAAAC,IAAA1lC,QAEA,KAAA+jC,aAAA93C,GAAAgC,eAAA,KAAA81C,cACA,KAAAI,WAAAl4C,GAAAuC,gBAAA,KAAA21C,YAIA,KAAAP,YAAA,KAAAO,WAAA,KAAAJ,YAGA,IAEA,EAEAlrB,eAAA,WACA,KAAAg+B,sBAAA,KAAAA,qBACA,KAAA5oC,MAAA,kBACA,EAEAw1B,kBAAAA,CAAAL,GACA,MAAAuC,EAAAvC,EAAA,EAEAwC,EAAAD,EAAA,KAAAhB,iBACA,IAAAkB,EAAAD,EAAA,KAAAjB,iBAGA,OAFAkB,EAAA,KAAAjB,aAAA3tC,SAAA4uC,EAAA,KAAAjB,aAAA3tC,QAEA,KAAA2tC,aAAAp+B,MAAAo/B,EAAAC,EACA,EACArC,mBAAAA,GACA,KAAAsC,MAAAC,iBAAAC,MACA,EACArC,mBAAAA,GACA,KAAAmC,MAAAC,iBAAAE,MACA,EAEAqR,SAAAA,CAAAC,GACA,KAAAz7C,WAAA,EACA,KAAAi7B,cAAA9qC,GAAAS,cAAA,KAAAqqC,cAAAwgB,GACA,KAAAj/B,OAAA0V,KAAAlf,SAAAhuB,EAAAmE,iBAAA,KAAAqzB,OAAAmK,MAAA9c,KAAA,KAAAoxB,eAEA,KAAA5qB,QAAApe,KAAA,CAAA00B,MAAA,CAAA9c,IAAA,KAAAoxB,iBAEA,KAAAkgB,sBACA,KAAA3R,mBACA,EACA2R,mBAAAA,GACA,MAAAO,EAAAvrD,GAAAC,oBAAA,KAAA6qC,cAAA,KAAA/6B,gBACAy7C,EAAAxrD,GAAAC,oBAAA,KAAA6qC,cAAA,KAAA96B,cACA,KAAAwoC,iBAAA+S,EAAA,EACA,KAAAhT,aAAAiT,EAAA,CACA,EACAlhB,eAAAA,GACA,MAAAppC,EAAAlB,GAAA4D,gBAAA,KAAAmM,gBACA5O,EAAAnB,GAAA4D,gBAAA,KAAAoM,cACA,KAAAq5B,UAAArpC,GAAAiB,SAAAC,EAAAC,EASA,EACA4pC,cAAAA,CAAArxB,GACA,KAAA7J,WAAA,EACA,KAAAi7B,cAAApxB,EAAAhb,UACA,KAAA2tB,OAAA0V,KAAAlf,SAAAhuB,EAAAmE,iBAAA,KAAAqzB,OAAAmK,MAAA9c,KAAA,KAAAoxB,eAEA,KAAA5qB,QAAApe,KAAA,CAAA00B,MAAA,CAAA9c,IAAA,KAAAoxB,iBAEA,KAAAuO,mBACA,EACApC,YAAAA,GACA,KAAAK,WAAA,CACA,EACAJ,UAAAA,GACA,KAAAI,WAAA,CACA,EACA+S,kBAAAA,GACA,KAAAgB,WAAA,EACA,EACAf,cAAAA,GACA,KAAAe,UAAA,EACA,EACA3hB,UAAAA,CAAA7oC,GACA,KAAAy2C,WAAA,KAAAznC,WAAA,KAAA05B,cAAA1oC,IAAA,KAAAkqC,eAAAlqC,EACA,EACA8pD,kBAAAA,CAAA3S,GASA,KAAA93B,QAAApe,KAAA,CAAAigC,KAAA,SAAAt3B,aAAAxO,KAAA,kBAAAuK,OAAA,CAAAilD,YAAAzT,EAAA/gC,OACA,ICnrBgN,MCQ5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCEhC,IACAhb,KAAA,WACA6nB,OAAA,CAAA2c,GAAAC,IACAvf,WAAA,CACAuqC,SAAAA,IAEA5mD,IAAAA,GACA,OACA0xB,MAAA,GACAqI,MAAA,CACA,CACAta,OAAA,6BACA+c,OAAA,CACA,EAEAnlC,QAAA,6GACAqK,OAAA,CACA+6B,UAAA,SACAC,iBAAA,EACAC,WAAA,IAGA,CACAld,OAAA,6BACA+c,OAAA,CACA,EAEAnlC,QAAA,qCACAqK,OAAA,CACA+6B,UAAA,SACAC,iBAAA,EACAC,WAAA,KAIA9C,UAAA,CACA+C,OAAAA,IAAA,KAAArB,gBAAA,YACAsB,SAAAA,IAAA,KAAAtB,gBAAA,aAGA,EACAnkB,SAAA,KACA2J,EAAAA,EAAAA,IAAA,4BACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,WAGA+c,OAAAA,GACA,KAAAwc,OAAA,KAAAA,MAAAK,UACA,KAAA1e,WAAA,KACA,KAAA4gB,OAAA,iBAAAzH,OAAA,GAGA,EACAve,QAAA,CACAuvC,iBAAAA,CAAAn1B,GACA,KAAAA,MAAAA,CACA,IC9EgN,MCQ5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B/b,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,MAAM,CAACM,YAAY,gDAAgD,CAACN,EAAG,WAAW,CAACM,YAAY,uEAAuED,MAAM,CAAC,KAAO,GAAG,QAAU,QAAQ,KAAO,MAAM4D,GAAG,CAAC,MAAQlE,EAAIoG,cAAc,CAACnG,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,aAAa,GAAGV,EAAG,QAAQ,CAACM,YAAY,+BAA+BqR,MAAM5R,EAAI3I,mBAAqB,SAAW,UAAUiJ,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,eAAe,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACN,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACN,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,KAAK,CAACM,YAAY,oCAAoC,CAAEP,EAAI+W,qBAAsB,CAAC9W,EAAG,aAAa,CAACK,MAAM,CAAC,OAAS,OAAO,MAAQ,UAAUN,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAIgX,mBAAmBjd,MAAO,CAACiG,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIgX,mBAAmBjd,OAAO,MAAMiG,EAAII,MAAM,KAAMJ,EAAIgX,oBAAsBhX,EAAIgX,mBAAmBg6B,YAAchxC,EAAIgX,mBAAmBg6B,WAAW5gD,OAAS,EAAG6P,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,IAAM,MAAM,CAACL,EAAG,OAAO,CAACM,YAAY,kBAAkBP,EAAIiB,GAAIjB,EAAIgX,mBAAmBg6B,YAAY,SAASC,EAAU5vC,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIE,GAAO,CAAErB,EAAIkxC,eAAeD,GAAYhxC,EAAG,MAAM,CAACM,YAAY,4CAA4CD,MAAM,CAAC,IAAMN,EAAIkxC,eAAeD,GAAW,IAAMA,EAAU1G,eAAevqC,EAAII,MAAM,IAAG,KAAKJ,EAAII,MAAM,GAAIJ,EAAIgX,qBAAuBhX,EAAIgX,mBAAmBlT,UAAY9D,EAAIgX,mBAAmBX,cAAgBrW,EAAIgX,mBAAmB0U,cAAezrB,EAAG,KAAK,CAACM,YAAY,mBAAmB,CAAEP,EAAI+W,qBAAsB,CAAC9W,EAAG,aAAa,CAACK,MAAM,CAAC,OAAS,OAAO,MAAQ,UAAUN,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAIgX,mBAAmBlT,SAAU,CAAC9D,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIgX,mBAAmBlT,UAAU,MAAM9D,EAAII,KAAOJ,EAAI+W,sBAAyB/W,EAAIzK,kBAAmByK,EAAIgX,mBAAmBX,aAA4TrW,EAAII,KAAlT,CAACH,EAAG,IAAI,CAACM,YAAY,gBAAgBD,MAAM,CAAC,KAAON,EAAIgX,mBAAmBX,aAAa,OAAS,WAAW,CAACpW,EAAG,WAAW,CAACM,YAAY,mBAAmBD,MAAM,CAAC,QAAU,QAAQ,KAAO,OAAO,CAACL,EAAG,IAAI,CAACM,YAAY,mDAAmDP,EAAIW,GAAG,0BAA0B,IAAeX,EAAI+W,sBAAyB/W,EAAIzK,kBAAmByK,EAAIgX,mBAAmB0U,aAAmT1rB,EAAII,KAAzS,CAACH,EAAG,IAAI,CAACM,YAAY,gBAAgBD,MAAM,CAAC,KAAON,EAAIgX,mBAAmB0U,aAAa,OAAS,WAAW,CAACzrB,EAAG,WAAW,CAACM,YAAY,mBAAmBD,MAAM,CAAC,QAAU,QAAQ,KAAO,OAAO,CAACL,EAAG,IAAI,CAACM,YAAY,mDAAmDP,EAAIW,GAAG,iBAAiB,KAAc,GAAGX,EAAII,KAAKH,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAAEN,EAAI+W,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACN,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAU,IAAIN,EAAII,KAAOJ,EAAI+W,qBAA0nF/W,EAAII,KAAxmF,CAAEJ,EAAIgX,mBAAmBpW,QAAUZ,EAAIgX,mBAAmBjT,eAAiB/D,EAAIgX,mBAAmBvT,SAAUxD,EAAG,MAAM,CAACM,YAAY,aAAa,CAAEP,EAAIgX,mBAAmBpW,QAAUZ,EAAIgX,mBAAmBjT,eAAiB/D,EAAIgX,mBAAmBvT,SAAUxD,EAAG,gBAAgB,CAACM,YAAY,gCAAgCD,MAAM,CAAC,SAAW,SAAS,QAAUN,EAAIgX,mBAAmB,cAAgBhX,EAAIgX,mBAAmBvT,YAAYzD,EAAII,KAAMJ,EAAIgX,mBAAmBpW,OAAQX,EAAG,aAAa,CAACM,YAAY,yBAAyBD,MAAM,CAAC,MAAQN,EAAIgX,mBAAmB7T,SAAS,IAAMnD,EAAIgX,mBAAmB5T,SAAS,OAAS,WAAWpD,EAAII,MAAM,GAAGJ,EAAII,KAAKH,EAAG,MAAM,CAACM,YAAY,yDAAyD,EAAGP,EAAIgX,mBAAmBpU,YAAc5C,EAAIgX,mBAAmB9d,UAAW+G,EAAG,MAAM,CAACM,YAAY,4EAA4E,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,sBAAsBV,EAAG,OAAO,CAACM,YAAY,iBAAiBP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCA,EAAIgX,mBAAmB9d,YAAY,SAAS8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIgX,mBAAmB9d,YAAY,OAAO8G,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCA,EAAIgX,mBAAmB7d,UAAU,OAAO6G,EAAII,KAAOJ,EAAIrJ,mBAAsBqJ,EAAIgX,mBAAmBpU,aAAc5C,EAAIgX,mBAAmBjU,yBAAmR/C,EAAII,KAA7PH,EAAG,MAAM,CAACM,YAAY,4EAA4E,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,aAAaX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIgX,mBAAmBjU,0BAA0B,OAAiB/C,EAAIrJ,oBAAsBqJ,EAAIgX,mBAAmBpU,YAAc5C,EAAIgX,mBAAmBjc,QAASkF,EAAG,MAAM,CAACM,YAAY,4EAA4E,CAACN,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,YAAYV,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,eAAeX,EAAII,KAAMJ,EAAIgX,mBAAmBlU,aAA6D,KAA9C9C,EAAIgX,mBAAmBlU,YAAYjL,OAAeoI,EAAG,MAAM,CAACM,YAAY,4EAA4E,CAACN,EAAG,OAAO,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIgX,mBAAmBlU,aAAa,OAAO9C,EAAII,KAAMJ,EAAIgX,mBAAmBsjB,OAAiD,KAAxCt6B,EAAIgX,mBAAmBsjB,MAAMziC,OAAeoI,EAAG,MAAM,CAACM,YAAY,4EAA4E,CAACN,EAAG,OAAO,CAACM,YAAY,iCAAiC,CAACP,EAAIW,GAAG,iBAAiBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIgX,mBAAmBsjB,OAAO,OAAOt6B,EAAII,SAAkB,IAAI,GAAGH,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,oCAAoC,CAAEP,EAAIgX,mBAAoB/W,EAAG,iBAAiB,CAACK,MAAM,CAAC,MAAQN,EAAIgX,mBAAmBjd,MAAM,iBAAmBiG,EAAIlS,UAAU,oBAAsBkS,EAAIgX,mBAAmB5b,oBAAoB,KAAO,QAAQ,MAAQ,KAAK,OAAS,QAAQ4E,EAAII,MAAM,MAAM,GAAGH,EAAG,QAAQ,CAAED,EAAIgX,oBAAsBhX,EAAIgX,mBAAmBpB,YAA2D,KAA7C5V,EAAIgX,mBAAmBpB,WAAW/d,OAAeoI,EAAG,QAAQ,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,uBAAuB,CAACN,EAAG,UAAU,CAACK,MAAM,CAAC,KAAO,GAAG,QAAU,UAAU,CAACL,EAAG,OAAO,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,kBAAkBV,EAAG,OAAO,CAACM,YAAY,mBAAmB6L,SAAS,CAAC,UAAYpM,EAAIe,GAAGf,EAAIgX,mBAAmBpB,kBAAkB,KAAK5V,EAAII,MAAM,GACjoNJ,EAAI+W,sBACJ/W,EAAIgX,mBAAmBC,aAAa7mB,OAAS,GACQ,KAArD4P,EAAIgX,mBAAmBE,mBAAmBrf,QAC1CmI,EAAIgX,mBAAmBm6B,gBACvBlxC,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAAEN,EAAI+W,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,IAAIN,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAIgX,mBAAmBC,aAAa7mB,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACD,EAAIW,GAAG,kBAAkBV,EAAG,IAAI,CAACM,YAAY,kBAAkBP,EAAIiB,GAAI9Z,KAAK6vB,mBAAmBC,cAAc,SAASG,EAAM/V,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIE,EAAMd,YAAY,mCAAmC,CAACN,EAAG,cAAc,CAACM,YAAY,sBAAsBD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBunB,EAAM9oB,WAAW,CAAC0R,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIqX,oBAAoBD,IAAQ,OAAQA,EAAMg6B,WAAah6B,EAAMib,WAAY,CAACpyB,EAAG,IAAI,CAACK,MAAM,CAAC,KAAO8W,EAAMib,WAAW,OAAS,WAAW,CAACpyB,EAAG,OAAO,CAACM,YAAY,oCAAoC,CAACN,EAAG,MAAM,CAACK,MAAM,CAAC,OAAS,KAAK,IAAMiC,EAAQ,OAAuC,IAAM,cAActC,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAGX,EAAIe,GAAGqW,EAAMg6B,iBAAiBpxC,EAAII,MAAM,EAAE,IAAG,IAAIJ,EAAII,KAAMJ,EAAI+W,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,IAAIN,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAIgX,mBAAmBq6B,aAAajhD,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACD,EAAIW,GAAG,kBAAkBV,EAAG,IAAI,CAACM,YAAY,aAAaP,EAAIiB,GAAI9Z,KAAK6vB,mBAAmBq6B,cAAc,SAASC,EAAMjwC,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIE,EAAMd,YAAY,sBAAsB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIqX,oBAAoBi6B,IAAQ,KAAMA,EAAMF,WAAaE,EAAMjf,WAAY,CAACpyB,EAAG,IAAI,CAACK,MAAM,CAAC,KAAOgxC,EAAMjf,WAAW,OAAS,WAAW,CAACpyB,EAAG,OAAO,CAACM,YAAY,oCAAoC,CAACN,EAAG,MAAM,CAACK,MAAM,CAAC,OAAS,KAAK,IAAMiC,EAAQ,OAAuC,IAAM,cAActC,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAGX,EAAIe,GAAGuwC,EAAMF,iBAAiBpxC,EAAII,MAAM,EAAE,IAAG,IAAIJ,EAAII,KAAMJ,EAAI+W,qBAAsB,CAAC9W,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,SAASL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,IAAIN,EAAII,KAAOJ,EAAI+W,sBAA6E,KAArD/W,EAAIgX,mBAAmBE,mBAAmBrf,OAAsfmI,EAAII,KAA3e,CAACH,EAAG,KAAK,CAACD,EAAIW,GAAG,yBAAyBV,EAAG,IAAI,CAACM,YAAY,uCAAuC,CAACN,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6C,GAAG,OAAP7C,CAAeA,EAAIgX,mBAAmBE,yBAA0BlX,EAAIzK,iBAAmByK,EAAIgX,mBAAmBm6B,gBAAiBlxC,EAAG,OAAO,CAACM,YAAY,4BAA4B,CAACN,EAAG,IAAI,CAACM,YAAY,gCAAgCD,MAAM,CAAC,KAAON,EAAIgX,mBAAmBm6B,kBAAkB,CAACnxC,EAAIW,GAAG,sDAAsDX,EAAII,SAAkB,IAAI,GAAGJ,EAAII,KAAMJ,EAAI+W,qBAAsB,CAAC9W,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAUL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAUL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,WAAWN,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAIgX,mBAAmBG,eAAiBnX,EAAIgX,mBAAmBG,cAAc/mB,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,mBAAmBX,EAAIiB,GAAIjB,EAAIgX,mBAAmBG,eAAe,SAASG,EAAajW,GAAO,OAAOpB,EAAG,MAAM,CAACkB,IAAIE,EAAMd,YAAY,4CAA4C,EAAGP,EAAIgX,mBAAmBpU,YAAc0U,EAAape,UAAY,EAAG+G,EAAG,OAAO,CAACM,YAAY,wDAAwD,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCsX,EAAape,YAAY,OAAO8G,EAAII,KAAKH,EAAG,OAAO,CAACM,YAAY,oDAAoD,CAACP,EAAIW,GAAGX,EAAIe,GAAGuW,EAAavd,UAAUiG,EAAIiB,GAAIqW,EAAaC,SAAS,SAASC,EAAOnW,GAAO,OAAOpB,EAAG,OAAO,CAACkB,IAAIE,EAAMd,YAAY,yCAAyCD,MAAM,CAAC,QAAU,SAAS,CAACN,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI8X,cAAcN,EAAOC,OAAO,MAAMxX,EAAG,cAAc,CAACM,YAAY,sBAAsBD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuB2nB,EAAOlpB,WAAW,CAAC0R,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAIqX,oBAAoBG,IAAS,OAAQA,EAAO45B,UAAW,CAACnxC,EAAG,IAAI,CAACK,MAAM,CAAC,KAAOkX,EAAO6a,WAAW,OAAS,WAAW,CAACpyB,EAAG,OAAO,CAACM,YAAY,oCAAoC,CAACN,EAAG,MAAM,CAACK,MAAM,CAAC,OAAS,KAAK,IAAMiC,EAAQ,OAAuC,IAAM,cAActC,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAGX,EAAIe,GAAGyW,EAAO45B,iBAAiBpxC,EAAII,MAAM,EAAE,IAAIJ,EAAI7J,gBAAkBmhB,EAAatO,0BAA4BsO,EAAai6B,qBAAsBtxC,EAAG,OAAO,CAACM,YAAY,6DAA6D2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI63B,eAAevgB,EAAatO,yBAAyB,IAAI,CAAC/I,EAAG,IAAI,CAACM,YAAY,wCAAwCP,EAAIW,GAAG,qBAAqBX,EAAII,MAAM,EAAE,KAAIJ,EAAII,MAAM,OAAOH,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,wBAAwB,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,oBAAoB,IAAI,IAAI,GAAGA,EAAG,gBAAgB,CAACK,MAAM,CAAC,eAAiBN,EAAI+3B,mCAAmC,QAAU/3B,EAAIg4B,sBAAsB9zB,GAAG,CAAC,uBAAuBlE,EAAIi4B,qBAAqB,wBAAwBj4B,EAAIk4B,0BAA0B,EAC/3K,EACI73B,GAAkB,GCuVtB,IACAhf,KAAA,iBACA6nB,OAAA,CAAAwR,GAAAmL,GAAA1c,GAAAC,IACA7C,WAAA,CACAkqB,WAAA,GACAC,gBAAA,GACAlnB,eAAA,GACAuG,oBAAA,GACA1G,cAAA,GACAoyB,cAAAA,IAEAvxC,IAAAA,GACA,OACA6sB,sBAAA,EACAjpB,UAAA,KACAkpB,mBAAA,KACAghB,sBAAA,EACAD,mCAAA,KAEA,EACAz2B,SAAA,KACA2J,EAAAA,EAAAA,IAAA,4BACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA0F,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAC,qBAAAlS,GAAAA,EAAAC,IAAAiS,qBACAU,eAAA5S,GAAAA,EAAAC,IAAA2S,iBAEAylC,kBAAA,CACAjwC,GAAAA,GACA,YAAAqsC,oBACA,EACA5zC,GAAAA,CAAAwW,GACA,KAAAo9B,sBAAAp9B,IAAA,KAAAo9B,qBAAAp9B,EACA,IAGA6L,MAAA,CACA,8BACA,KAAA+qC,cACA,GAEAC,gBAAAA,CAAAltB,EAAAqkB,EAAAxJ,GACAA,GAAAsS,IACAA,EAAAC,UAAA/I,CAAA,GAEA,EACAngC,OAAAA,GACA,KAAA+oC,cACA,EACAhwC,QAAA,CACAgwC,YAAAA,GACA,KAAAz6B,sBAAA,EACA,MAAA85B,EAAA,KAAAp/B,OAAA7lB,QAAAilD,YACA/iD,EAAAqO,GAAAU,iBAAAg0C,GACA/iD,GAAAA,EAAA,IACA,KAAAA,UAAAA,EACAxE,GAAA6E,sBAAAL,GAAA0J,MAAA,EAAAtN,WACAA,IACA,KAAA8sB,mBAAA9sB,EACA,KAAA6sB,sBAAA,EACA,IAGA,EACA3Q,WAAAA,GACAvkB,OAAAg+B,QAAA+xB,MACA,EACAV,cAAAA,CAAAD,GACA,IACA,OAAA1uC,EAAAA,MAAAA,CAAA,UAAA7W,WAAAulD,EAAA/d,WACA,OAAAloC,GACA,WACA,CACA,EAEAitC,oBAAAA,GACA,KAAAF,mCAAA,KACA,KAAA6D,mBAAA,CACA,EACA/D,cAAAA,CAAA71C,GAEA,KAAA+1C,mCAAA/1C,EACA,KAAA45C,mBAAA,CAUA,EACA1D,qBAAAA,GACA,KAAAH,mCAAA,KACA,KAAA6D,mBAAA,CACA,ICjcsN,MCQlN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B/7B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,cAAc,CAACK,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,MAAM,CAACM,YAAY,gDAAgD,CAACN,EAAG,WAAW,CAACM,YAAY,uEAAuED,MAAM,CAAC,KAAO,GAAG,QAAU,QAAQ,KAAO,MAAM4D,GAAG,CAAC,MAAQlE,EAAIoG,cAAc,CAACnG,EAAG,OAAO,CAACM,YAAY,6BAA6B,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,aAAa,GAAGV,EAAG,QAAQ,CAACM,YAAY,+BAA+BqR,MAAM5R,EAAI3I,mBAAqB,SAAW,UAAUiJ,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,eAAe,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,6BAA6B,CAACN,EAAG,MAAM,CAACM,YAAY,4BAA4B,CAACN,EAAG,MAAM,CAACM,YAAY,UAAU,CAACN,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,QAAQ,CAACM,YAAY,uCAAuCD,MAAM,CAAC,IAAMN,EAAI8xB,SAAW9xB,EAAI8xB,SAAW9xB,EAAI85B,eAAe,MAAQ,GAAG,IAAM,wBAAwB,GAAG75B,EAAG,MAAM,CAACM,YAAY,SAAS,CAACN,EAAG,KAAK,CAACM,YAAY,yCAAyC,CAAEP,EAAI+W,qBAAsB,CAAC9W,EAAG,aAAa,CAACK,MAAM,CAAC,OAAS,OAAO,MAAQ,UAAUN,EAAII,KAAOJ,EAAI+W,qBAAqH/W,EAAII,KAAnG,CAACJ,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6xC,eAAen4C,WAAW,IAAIsG,EAAIe,GAAGf,EAAI6xC,eAAel4C,UAAU,OAAgB,GAAIqG,EAAI+W,sBAAwB/W,EAAI6xC,eAAel6B,QAAS1X,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAAGP,EAAI+W,qBAAqG/W,EAAII,KAAnF,CAACJ,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI4X,qBAAqB5X,EAAI6xC,eAAel6B,UAAU,OAAgB,GAAG3X,EAAII,KAAK,CAACH,EAAG,eAAe,CAACM,YAAY,sBAAsBD,MAAM,CAAC,WAAa,OAAO,CAAEN,EAAI6xC,gBAAkB7xC,EAAI8xC,iBAAkB7xC,EAAG,oBAAoB,CAACA,EAAG,QAAQ,CAACA,EAAG,IAAI,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAON,EAAI8xC,iBAAiB,OAAS,WAAW,CAAC7xC,EAAG,OAAO,CAACM,YAAY,sBAAsB,CAACN,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAA8C,IAAM,gBAAgBtC,EAAG,OAAO,CAACD,EAAIW,GAAG,2BAA2BX,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAI6xC,eAAeT,UAAWnxC,EAAG,oBAAoB,CAACA,EAAG,QAAQ,CAACA,EAAG,IAAI,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAON,EAAI6xC,eAAexf,WAAW,OAAS,WAAW,CAACpyB,EAAG,OAAO,CAACM,YAAY,0BAA0B,CAACN,EAAG,MAAM,CAACK,MAAM,CAAC,IAAMiC,EAAQ,OAAuC,IAAM,cAActC,EAAG,OAAO,CAACD,EAAIW,GAAGX,EAAIe,GAAGf,EAAI6xC,eAAeT,oBAAoBpxC,EAAII,MAAM,KAAK,OAAOH,EAAG,MAAM,CAACM,YAAY,kCAAkC,CAACN,EAAG,KAAK,CAACM,YAAY,oCAAoC,CAAEP,EAAI+W,qBAAsB,CAAC9W,EAAG,aAAa,CAACK,MAAM,CAAC,OAAS,OAAO,MAAQ,UAAUN,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAI6xC,eAAezgD,aAAc,CAAC4O,EAAIW,GAAG,mBAAmBX,EAAII,MAAM,GAAGH,EAAG,MAAM,CAACM,YAAY,gBAAgB,EAAGP,EAAI+W,sBAAwB/W,EAAI6xC,eAAezgD,aAAc,CAAC4O,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6xC,eAAezgD,cAAc,MAAM4O,EAAII,MAAM,GAAIJ,EAAI+W,qBAAsB,CAAC9W,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAUL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAUL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,WAAWN,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAI6xC,eAAe16B,eAAiBnX,EAAI6xC,eAAe16B,cAAc/mB,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,mBAAmBX,EAAIiB,GAAIjB,EAAI6xC,eAAe16B,eAAe,SAASG,EAAajW,GAAO,OAAOpB,EAAG,MAAM,CAACkB,IAAIE,EAAMd,YAAY,4CAA4C,CAAE+W,EAAay6B,sBAAuB9xC,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCsX,EAAay6B,wBAAwB,MAAM/xC,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCsX,EAAay6B,wBAAwB,OAAO/xC,EAAII,KAAMkX,EAAa06B,mBAA+D,KAA1C16B,EAAa06B,kBAAkBn6C,OAAeoI,EAAG,OAAO,CAACM,YAAY,yCAAyC,CAACP,EAAIW,GAAGX,EAAIe,GAAGuW,EAAa06B,sBAAsBhyC,EAAII,KAAMkX,EAAa26B,cAAqD,KAArC36B,EAAa26B,aAAap6C,OAAeoI,EAAG,MAAM,CAACM,YAAY,QAAQ,CAACN,EAAG,OAAO,CAACM,YAAY,6DAA6DD,MAAM,CAAC,QAAU,SAAS,CAACN,EAAIW,GAAG,cAAcV,EAAG,cAAc,CAACM,YAAY,sBAAsBD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBynB,EAAanlB,qBAAqB,CAAC6N,EAAIW,GAAG,IAAIX,EAAIe,GAAGuW,EAAa26B,cAAc,QAAQ,KAAKjyC,EAAII,KAAKH,EAAG,MAAM,CAAEqX,EAAaxU,aAAmD,KAApCwU,EAAaxU,YAAYjL,OAAeoI,EAAG,MAAM,CAACM,YAAY,iDAAiD,CAACN,EAAG,OAAO,CAACM,YAAY,iCAAiC,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGuW,EAAaxU,aAAa,OAAO9C,EAAII,OAAOH,EAAG,MAAM,CAAEqX,EAAa46B,mBAA+D,KAA1C56B,EAAa46B,kBAAkBr6C,OAAeoI,EAAG,MAAM,CAACM,YAAY,iDAAiD,CAACN,EAAG,OAAO,CAACM,YAAY,iCAAiC,CAACP,EAAIW,GAAG,iBAAiBX,EAAIW,GAAG,UAAUX,EAAIe,GAAGuW,EAAa46B,mBAAmB,OAAOlyC,EAAII,OAAQkX,EAAa66B,mBAA+D,KAA1C76B,EAAa66B,kBAAkBt6C,OAAeoI,EAAG,MAAM,CAACA,EAAG,IAAI,CAACM,YAAY,2CAA2CN,EAAG,OAAO,CAACM,YAAY,gBAAgB,CAACP,EAAIW,GAAG,WAAWX,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI8X,cAAcR,EAAa66B,oBAAoB,OAAOnyC,EAAII,KAAMkX,EAAai6B,sBAAwBvxC,EAAIvK,qBAAsBwK,EAAG,MAAM,CAACM,YAAY,yBAAyB,CAACN,EAAG,WAAW,CAACM,YAAY,6BAA6B2D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOnE,EAAI63B,eAAevgB,EAAa,IAAI,CAACtX,EAAIW,GAAG,4BAA4B,GAAGX,EAAII,MAAM,KAAIJ,EAAII,KAAMJ,EAAI+W,qBAAsB,CAAC9W,EAAG,aAAa,CAACM,YAAY,OAAOD,MAAM,CAAC,MAAQ,SAASL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAUL,EAAG,iBAAiB,CAACM,YAAY,OAAOD,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,UAAUL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,OAAO,MAAQ,WAAWN,EAAII,MAAOJ,EAAI+W,sBAAwB/W,EAAI6xC,eAAe9nC,UAAY/J,EAAI6xC,eAAe9nC,SAAS3Z,OAAS,EAAG,CAAC6P,EAAG,KAAK,CAACM,YAAY,QAAQ,CAACP,EAAIW,GAAG,cAAcX,EAAIiB,GAAIjB,EAAI6xC,eAAe9nC,UAAU,SAAS7I,EAAQG,GAAO,OAAOpB,EAAG,MAAM,CAACkB,IAAIE,EAAMd,YAAY,4CAA4C,CAAEW,EAAQkxC,iBAAkBnyC,EAAG,MAAM,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAG,IAAIX,EAAIe,GAAGf,EAAI6C,GAAG,wBAAP7C,CAAgCkB,EAAQkxC,mBAAmB,MAAMpyC,EAAIe,GAAGf,EAAI6C,GAAG,yBAAP7C,CAAiCkB,EAAQkxC,mBAAmB,OAAOpyC,EAAII,KAAKH,EAAG,cAAc,CAACM,YAAY,sBAAsBD,MAAM,CAAC,GAAK,IAAIN,EAAInQ,uBAAuBqR,EAAQpT,cAAc,CAAEoT,EAAQ+wC,cAAgD,KAAhC/wC,EAAQ+wC,aAAap6C,OAAeoI,EAAG,OAAO,CAACM,YAAY,8CAA8C,CAACP,EAAIW,GAAGX,EAAIe,GAAGG,EAAQ+wC,iBAAiBjyC,EAAII,OAAOH,EAAG,MAAM,CAAEiB,EAAQ4B,aAA8C,KAA/B5B,EAAQ4B,YAAYjL,OAAeoI,EAAG,MAAM,CAACM,YAAY,iDAAiD,CAACN,EAAG,OAAO,CAACM,YAAY,iCAAiC,CAACP,EAAIW,GAAG,kBAAkBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGG,EAAQ4B,aAAa,OAAO9C,EAAII,OAAOH,EAAG,MAAM,CAAEiB,EAAQmxC,cAAgD,KAAhCnxC,EAAQmxC,aAAax6C,OAAeoI,EAAG,MAAM,CAACM,YAAY,iDAAiD,CAACN,EAAG,OAAO,CAACM,YAAY,iCAAiC,CAACP,EAAIW,GAAG,iBAAiBX,EAAIW,GAAG,IAAIX,EAAIe,GAAGG,EAAQmxC,cAAc,OAAOryC,EAAII,QAAQ,EAAE,KAAIJ,EAAII,MAAM,OAAOH,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,wBAAwB,GAAGA,EAAG,QAAQ,CAACM,YAAY,OAAOD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,OAAS,IAAI,YAAY,MAAM,CAACL,EAAG,oBAAoB,IAAI,IAAI,GAAGA,EAAG,gBAAgB,CAACK,MAAM,CAAC,eAAiBN,EAAI+3B,mCAAmC,QAAU/3B,EAAIg4B,sBAAsB9zB,GAAG,CAAC,uBAAuBlE,EAAIi4B,qBAAqB,wBAAwBj4B,EAAIk4B,0BAA0B,EAC13P,EACI73B,GAAkB,GCgOtB,IACAhf,KAAA,iBACA6nB,OAAA,CAAAwR,GAAAmL,GAAAzc,IACA7C,WAAA,CACAkqB,WAAA,GACAC,gBAAA,GAEA3gB,oBAAA,GACA0rB,cAAAA,IAEAvxC,IAAAA,GACA,OACA6sB,sBAAA,EACAzoB,OAAA,KACAujD,eAAA,KACA/X,eAAAE,GACA2B,4BAAA,KACA3D,sBAAA,EAEA,EACA12B,SAAA,KACA2J,EAAAA,EAAAA,IAAA,4BACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACAmE,WAAAtM,GAAAA,EAAAC,IAAAqM,WACA4F,qBAAAlS,GAAAA,EAAAC,IAAAiS,uBAEAq8B,QAAAA,GACA,YAAA+f,gBAAA/f,QACA,EACAggB,gBAAAA,GACA,YAAAhpC,gBAAA,KAAAxa,OACA,EAEAstC,kBAAA,CACAjwC,GAAAA,GACA,YAAAqsC,oBACA,EACA5zC,GAAAA,CAAAwW,GACA,KAAAo9B,sBAAAp9B,IAAA,KAAAo9B,qBAAAp9B,EACA,GAEAm9B,mCAAA,CACApsC,GAAAA,GACA,YAAAgwC,2BACA,EACAv3C,GAAAA,CAAAiO,GACA,KAAAspC,6BAAAtpC,IAAA,KAAAspC,4BAAAtpC,EACA,IAGAo/C,gBAAAA,CAAAltB,EAAAqkB,EAAAxJ,GACAA,GAAAsS,IACAA,EAAAC,UAAA/I,CAAA,GAEA,EACAngC,OAAAA,GACA,MAAA6pC,EAAA,KAAA7gC,OAAA7lB,QAAA0mD,YAEAhkD,EAAA6N,GAAAU,iBAAAy1C,GAGAhkD,GAAAA,EAAA,IACA,KAAAA,OAAAA,EACAhF,GAAA+E,sBAAA,KAAA3C,QAAA4C,GAAAkJ,MAAA,EAAAtN,WACAA,IAEA,KAAA2nD,eAAA3nD,EACA,KAAA6sB,sBAAA,EACA,IAGA,EACAvV,QAAA,CACA4E,WAAAA,GACAvkB,OAAAg+B,QAAA+xB,MACA,EACA3Z,oBAAAA,GAEA,KAAAF,mCAAA,KACA,KAAA6D,mBAAA,CACA,EACA/D,cAAAA,CAAA71C,GAGA,KAAA+1C,mCAAA/1C,EAAAqQ,eACA,KAAAupC,mBAAA,CACA,EACA1D,qBAAAA,GAEA,KAAAH,mCAAA,KACA,KAAA6D,mBAAA,CACA,IC9TsN,MCQlN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B/7B,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACM,YAAY,6BAA6BqR,MAAM5R,EAAI3I,mBAAqB,oBAAsB,UAAUiJ,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAON,EAAIxK,iBAAmB,GAAK,GAAG,GAAK,KAAK,OAASwK,EAAIxK,iBAAmB,EAAI,EAAE,YAAY,MAAM,CAACyK,EAAG,eAAe,GAAGA,EAAG,MAAM,CAACM,YAAY,gCAAgC,CAACN,EAAG,QAAQ,CAACK,MAAM,CAAC,IAAMN,EAAIuyC,aAAa,MAAQ,GAAG,IAAM,uBAAuB,GAAGtyC,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,YAAY,MAAM,CAACL,EAAG,oBAAoB,IAAI,IAAI,EACroB,EACII,GAAkB,GC8BtB,IACAhf,KAAA,gBACA6nB,OAAA,CAAA2c,IACAtf,WAAA,CACAkqB,WAAA,GACAC,gBAAAA,IAEApvB,SAAA,KACA2J,EAAAA,EAAAA,IAAA,4BACA1J,EAAAA,EAAAA,IAAA,CACA7V,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA8J,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAD,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACA6B,WAAA7T,GAAAA,EAAAC,IAAAwR,UAEAu9C,YAAAA,GACA,OAAAhwC,EAAAA,MAAAA,CAAA,UAAA7W,6BACA,ICjDqN,MCQjN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BmU,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,QAAQ,CAACM,YAAY,kDAAkDqR,MAAM5R,EAAI3I,mBAAqB,oBAAsB,qBAAqBiJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAAGP,EAAI4oB,iBAAoB5oB,EAAI6oB,WAAse7oB,EAAII,KAA9dH,EAAG,QAAQ,CAACM,YAAY,yDAAyDC,MAAO,CAAEC,gBAAiB,6BAA6BT,EAAItU,yBAAyBvE,KAAKiQ,gBAAkBkJ,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,MAAM,CAACM,YAAY,aAAa,CAACN,EAAG,KAAK,CAACD,EAAIW,GAAG,mBAAmBV,EAAG,MAAM,CAACM,YAAY,mBAAmBN,EAAG,MAAM,CAACM,YAAY,aAAa,CAACP,EAAIW,GAAG,wEAAwEX,EAAIe,GAAGf,EAAIrI,eAAe,YAAqB,GAAGsI,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAON,EAAIxK,iBAAmB,GAAK,GAAG,GAAK,KAAK,OAASwK,EAAIxK,iBAAmB,EAAI,EAAE,YAAY,MAAM,CAACyK,EAAG,aAAa,CAACK,MAAM,CAAC,OAAS,WAAW,IAAI,GAAGL,EAAG,QAAQ,CAACM,YAAY,cAAc,CAACN,EAAG,QAAQ,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,WAAW,CAACK,MAAM,CAAC,QAAUnZ,KAAKuE,YAAY,IAAI,GAAGuU,EAAG,QAAQ,CAACK,MAAM,CAAC,aAAa,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,YAAYD,MAAM,CAAC,KAAO,KAAK,GAAK,KAAK,YAAY,MAAM,CAACL,EAAG,kBAAkB,CAACK,MAAM,CAAC,OAAS,WAAW,IAAI,GAAGL,EAAG,QAAQ,CAACM,YAAY,yBAAyB,CAACN,EAAG,QAAQ,CAACM,YAAY,wBAAwBD,MAAM,CAAC,KAAO,OAAO,CAAEN,EAAIwyC,gBAAiBvyC,EAAG,eAAe,CAACK,MAAM,CAAC,gBAAkBN,EAAIyyC,gBAAgB,KAAO,QAAQzyC,EAAII,MAAM,IAAI,IAAI,EAC/hD,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,kBAAkB,CAACN,EAAG,MAAM,CAACM,YAAY,oBAAoB,CAACN,EAAG,MAAM,CAACM,YAAY,YAAYC,MAAO,CAAEC,gBAAiB,QAAQT,EAAIU,wBAAwBV,EAAItU,2BAA2BvE,KAAKiQ,kBAAoB6I,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACM,YAAY,6BAA6BD,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACL,EAAG,MAAM,CAACM,YAAY,kDAAkD,CAACN,EAAG,KAAK,CAACM,YAAY,gCAAgC,CAACP,EAAIW,GAAG,0BAA0BV,EAAG,IAAI,CAACM,YAAY,wBAAwB,CAACP,EAAIW,GAAG,sFAAsFV,EAAG,MAAM,CAACM,YAAY,0BAA0B,CAAEP,EAAIyyC,gBAAiBxyC,EAAG,IAAI,CAACM,YAAY,iCAAiCD,MAAM,CAAC,KAAON,EAAIyyC,gBAAgB,OAAS,WAAW,CAACzyC,EAAIW,GAAG,uBAAuBV,EAAG,IAAI,CAACM,YAAY,sCAAsCP,EAAII,WAAWH,EAAG,MAAM,CAACM,YAAY,kDAAkD,CAACN,EAAG,MAAM,CAACM,YAAY,+CAA+C,CAACN,EAAG,YAAY,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAON,EAAI/K,YAAY,CAACgL,EAAG,MAAM,CAACK,MAAM,CAAC,GAAK,YAAY4D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAGA,EAAOwF,SAAWxF,EAAOuuC,cAAqB,MAAa1wD,IACj0CA,EAAEoiB,iBACH,GAAEG,MAAM,KAAMC,UAAU,KAAKvE,EAAG,SAAS,CAACmI,IAAI,eAAe7H,YAAY,wBAAwBqR,MAAM,CAAE,SAAU5R,EAAI/K,WAAYqL,MAAM,CAAC,gBAAkB,SAAS,GAAKN,EAAI2yC,SAAS,IAAM3yC,EAAI4yC,iBAAiB1uC,GAAG,CAAC,KAAOlE,EAAI4d,qBAAqB,MAAM,IAAI,IAAI,IACvR,EACIvd,GAAkB,GCiDtB,IACAhf,KAAA,eACAqjB,MAAA,CACAmuC,KAAA,CACA/3C,KAAA+J,OACAE,QAAA,MAEA0tC,gBAAA,CACA33C,KAAA+J,SAGA3a,IAAAA,GACA,OACAyoD,SAAA,eACA19C,WAAA,EACAyL,WAAA1d,aAEA,EACAse,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAnK,WAAA7T,GAAAA,EAAAC,IAAAwR,QACAtJ,QAAAnI,GAAAA,EAAAC,IAAAkI,UAEAknD,eAAAA,GACA,sDAAAC,MACA,GAOArxC,QAAA,CACAoc,cAAAA,GAEA,KAAA3oB,WAAA,EACA,KAAAmS,MAAA,SACA,IC1FoN,MCQhN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BvH,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,gBAAgB,CAACN,EAAG,SAAS,CAACK,MAAM,CAAC,gBAAgB,OAAO,KAAO,KAAK,CAACL,EAAG,QAAQ,CAACK,MAAM,CAAC,MAAQ,GAAG,QAAUN,EAAIxK,kBAAkBiN,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,QAAQwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,eAAe,CAACA,EAAG,OAAO,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAG,uBAAuB,EAAEqC,OAAM,MAAS,CAAC/C,EAAG,UAAU,CAACK,MAAM,CAAC,KAAON,EAAIxK,iBAAiB,QAAU,aAAa,CAACyK,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK4O,YAAY+8C,oCAAoC,MAAM,GAAK9yC,EAAIxK,iBAAmGwK,EAAII,KAArFH,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACK,MAAM,CAAC,QAAUnZ,KAAKuE,QAAQ,KAAO,WAAW,IAAa,GAAGuU,EAAG,QAAQ,CAACwC,YAAYzC,EAAI0C,GAAG,CAAC,CAACvB,IAAI,QAAQwB,GAAG,WAAW,MAAO,CAAC1C,EAAG,eAAe,CAACA,EAAG,OAAO,CAACM,YAAY,cAAc,CAACP,EAAIW,GAAG,qBAAqB,EAAEqC,OAAM,MAAS,CAAC/C,EAAG,UAAU,CAACK,MAAM,CAAC,KAAON,EAAIxK,iBAAiB,QAAU,aAAa,CAACyK,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,IAAIX,EAAIe,GAAG5Z,KAAK4O,YAAYg9C,kCAAkC,MAAM,GAAK/yC,EAAIxK,iBAAyGwK,EAAII,KAA3FH,EAAG,MAAM,CAACA,EAAG,uBAAuB,CAACK,MAAM,CAAC,QAAUnZ,KAAKuE,QAAQ,SAAW,MAAM,IAAa,IAAI,IAAI,EACj0C,EACI2U,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,EAAGD,EAAI/K,WAAa+K,EAAIvS,UAAmC,GAAvBuS,EAAIvS,SAAS2C,OAAa6P,EAAG,MAAM,CAACA,EAAG,UAAU,CAACK,MAAM,CAAC,MAAO,EAAK,QAAU,aAAa,CAACL,EAAG,oBAAoB,CAACM,YAAY,yCAAyCD,MAAM,CAAC,KAAO,cAAc,KAAO,QAAQN,EAAIW,GAAG,uCAAuC,IAAI,GAAGX,EAAII,KAAMJ,EAAI/K,UAAW,CAACgL,EAAG,QAAQ,CAACM,YAAY,eAAe,CAACN,EAAG,QAAQ,CAACM,YAAY,iBAAiBD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,aAAa,CAACK,MAAM,CAAC,MAAQ,UAAU,GAAGN,EAAIiB,GAAI,GAAG,SAASI,GAAO,OAAOpB,EAAG,QAAQ,CAACkB,IAAIE,EAAMd,YAAY,4BAA4BD,MAAM,CAAC,KAAO,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,iBAAiB,CAACK,MAAM,CAAC,YAAY,GAAG,OAAS,YAAY,EAAE,KAAI,IAAIN,EAAII,MAAOJ,EAAI/K,WAAa+K,EAAIvS,UAAYuS,EAAIvS,SAAS2C,OAAS,EAAG4P,EAAIiB,GAAIjB,EAAIvS,UAAU,SAASsN,GAAS,OAAOkF,EAAG,QAAQ,CAACkB,IAAIpG,EAAQhC,GAAGwH,YAAY,oBAAoB,CAACN,EAAG,QAAQ,CAACM,YAAY,4BAA4BD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,OAAO,CAACM,YAAY,qBAAqB,CAACP,EAAIW,GAAGX,EAAIe,GAAGhG,EAAQ1Z,WAAW2e,EAAIiB,GAAIlG,EAAQq0B,OAAO,SAASgO,GAAM,OAAOn9B,EAAG,QAAQ,CAACkB,IAAIi8B,EAAKrkC,GAAGwH,YAAY,mCAAmCD,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,IAAI,GAAK,MAAM,CAACL,EAAG,cAAc,CAACK,MAAM,CAAC,eAAiB88B,EAAK,OAASA,EAAK4V,UAAU,KAAO,aAAa,EAAE,KAAI,EAAE,IAAGhzC,EAAII,MAAM,EACt1C,EACIC,GAAkB,GCyCtB,IACAhf,KAAA,uBACAqjB,MAAA,CACAhZ,QAAAoR,OACAtN,SAAAsN,QAEAyJ,WAAA,CACAsD,YAAAA,IAEA3f,IAAAA,GACA,OACA+K,WAAA,EACAxH,SAAA,KACAwlD,uBAAA,KAEA,EACA3xC,SAAA,CACAmJ,2BAAAA,GACA,OAAA1mB,SAAAf,QACA,MACAioB,EAAAA,EAAAA,IAAA,uBAEAxC,OAAAA,GACA,KAAA0C,sBAEA,KAAA8nC,uBAAA5nC,aAAA,KACA,KAAA5Q,kBACA,KAAA0Q,qBACA,GACA,KAAAV,4BACA,EACAjJ,QAAA,CACA2J,mBAAAA,GACA7hB,GAAAiG,kBAAA,KAAA7D,QAAA,KAAA8D,UAAAgI,MAAA,EAAAtN,WACA,KAAA+K,WAAA,EACA/K,IACA,KAAAuD,SAAAvD,EACA,GAEA,GAEAuc,MAAA,CACAhM,gBAAAA,CAAAD,GACAA,GACA,KAAA2Q,qBAEA,GAEAG,aAAAA,GACAC,cAAA,KAAA0nC,uBACA,GC7F4N,MCQxN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCwChC,IACA5xD,KAAA,WACAklB,WAAA,CACA4oC,cAAA,GACA+D,qBAAAA,IAEAxuC,MAAA,CACAhZ,QAAAoR,QAEA5S,IAAAA,GACA,OACAklD,qBAAA,KACAC,oBAAA,KACAC,cAAA,KAEA,EACAhuC,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAlM,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAG,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAO,YAAAxS,GAAAA,EAAAC,IAAAuS,eAGA0S,OAAAA,GACA,EAEAjH,QAAA,ICrFsN,MCQlN,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCkDhC,IACAngB,KAAA,OACA6nB,OAAA,CAAA2c,IACAtf,WAAA,CACAkqB,WAAA,GACAC,gBAAA,GACAyiB,SAAA,GACAC,aAAAA,IAEAlpD,IAAAA,GACA,OACAwW,WAAA1d,aAEA,EACAse,SAAA,KACA2J,EAAAA,EAAAA,IAAA,4BACA1J,EAAAA,EAAAA,IAAA,CACAnK,WAAA7T,GAAAA,EAAAC,IAAAwR,QACAtJ,QAAAnI,GAAAA,EAAAC,IAAAkI,QACA8J,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACAD,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAS,YAAAzS,GAAAA,EAAAC,IAAAwS,YACAa,sBAAAtT,GAAAA,EAAAC,IAAAqT,sBACAc,cAAApU,GAAAA,EAAAC,IAAAmU,gBAEA66C,eAAAA,GACA,YAAA37C,uBAAA,KAAAA,sBAAAw8C,eAAA,KAAAx8C,sBAAAw8C,eAAA,KAAA3nD,OACA,EACA+mD,eAAAA,GACA,WACA,EACA5pB,UAAAA,GACA,YAAApX,OAAA0V,OAAA,SAAAt3B,cAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,eAAA,KAAA4hB,OAAA0V,OAAA,SAAAt3B,iBACA,EACA+4B,eAAAA,GACA,MAAAE,EAAA,CACA,GAAA7uC,EAAAmF,oBAAAnF,EAAAoF,4BACA,GAAApF,EAAAmF,oBAAAnF,EAAAqF,iCACA,GAAArF,EAAAmF,oBAAAnF,EAAAsF,kCAEA,OAAAupC,EAAAvpB,KAAA1G,GAAA,SAAAhJ,cAAAgJ,MAAAoP,SAAA,KAAAwJ,OAAA0V,KACA,IC9G4M,MCQxM,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BtnB,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAASD,EAAI/K,WAAc+K,EAAI8zB,gBAAuI9zB,EAAII,KAA1HH,EAAG,WAAW,CAAED,EAAI8zB,gBAAiB7zB,EAAG,mBAAmB,CAACK,MAAM,CAAC,UAAYN,EAAI8zB,gBAAgB/6B,MAAMiH,EAAII,MAAM,EAC/N,EACIC,GAAkB,GCFlBR,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,cAAc,CAACM,YAAY,+BAA+BD,MAAM,CAAC,MAAQ,KAAK,CAACL,EAAG,QAAQ,CAACM,YAAY,kBAAkBD,MAAM,CAAC,KAAO,OAAO,CAAGN,EAAI0V,kBAA64E1V,EAAII,KAA93E,CAACH,EAAG,QAAQ,CAAiND,EAAII,KAAgRJ,EAAII,KAAgSJ,EAAII,KAAOJ,EAAIzG,SAAwdyG,EAAIkF,UAA8lB,CAACjF,EAAG,QAAQ,CAACM,YAAY,eAAeD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,mBAAmB,CAACkB,IAAIha,KAAK0uB,QAAQzN,IAAI,WAAW7H,YAAY,uBAAuBD,MAAM,CAAC,UAAYnZ,KAAKuO,oBAAoB,SAAWvO,KAAKwO,mBAAmB,QAAUxO,KAAK0uB,SAAS3R,GAAG,CAAC,OAASlE,EAAI8V,6BAA6B,GAAgO9V,EAAII,MAApmC,CAACH,EAAG,QAAQ,CAACM,YAAY,UAAUD,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,iBAAiB,CAACkG,YAAY,CAAC,WAAa,UAAU,gBAAgB,UAAU7F,MAAM,CAAC,WAAa,+CAA+C,SAAYN,EAAIxK,iBAAoF,4DAAjE,+DAA6H,WAAcwK,EAAIxK,iBAAoC,GAAjB,eAAoB,YAAcwK,EAAIxK,iBAAiB,QAAU,4EAA4E,kBAAoBwK,EAAIoW,sBAAsB,IAA5iC,CAACnW,EAAG,QAAQ,CAACK,MAAM,CAAC,KAAO,OAAO,CAACL,EAAG,eAAe,CAACM,YAAY,kBAAkB4F,YAAY,CAAC,WAAa,UAAU,gBAAgB,UAAU7F,MAAM,CAAC,kBAAmB,EAAK,WAAa,+CAA+C,WAAa,UAAU,QAAWN,EAAIxK,iBAA8F,yCAA3E,yEAAoH,kBAAoBwK,EAAIoW,sBAAsB,KAAgoC,KAAc,IAAI,EACtnF,EACI/V,GAAkB,GC2FtB,IACAhf,KAAA,mBACA6nB,OAAA,CAAAwR,IACAnU,WAAA,CACAqU,iBAAA,GACAkD,aAAA,GACAjD,aAAA,GACAC,eAAAA,IAEApW,MAAA,CACAxW,UAAA,CACA4M,KAAAgC,OACAgI,UAAA,IAGA5a,IAAAA,GACA,OACAwrB,mBAAA,EACAqF,iBAAA,EACAhE,sBAAA,EACAiE,2BAAA,EACAC,kBAAA,EACAC,mBAAA,EACAhW,WAAA,EACAhE,QAAA,KACA8V,mBAAA,KACAgB,eAAA,KACAmD,2BAAA,KACA7E,SAAA,CACA,CAAAC,QAAA,WAAAl1B,KAAA,WAAAs1B,KAAApU,EAAA,QACA,CAAAgU,QAAA,UAAAl1B,KAAA,UAAAs1B,KAAApU,EAAA,QACA,CAAAgU,QAAA,WAAAl1B,KAAA,WAAAs1B,KAAApU,EAAA,SAGA,EACA6Y,QAAAA,GACA,QAAAla,QACA,OACAwQ,KAAA,CACA,CAAArwB,KAAA,cAAAC,KAAA,cAAAC,QAAA,KAAAm1B,iBAEA,CAAA2E,SAAA,WAAA/5B,KAAA,WAAAC,QAAA,KAAAk1B,WACA,CAAA4E,SAAA,iBAAA/5B,KAAA,iBAAAC,QAAA,KAAAm1B,iBACA,CAAA2E,SAAA,UAAA/5B,KAAA,UAAAC,QAAA,eACA,CAAA85B,SAAA,SAAA/5B,KAAA,SAAAC,QAAA,KAAAi1B,SAEA,CAAA6E,SAAA,gBAAA/5B,KAAA,gBAAAC,QAAA,KAAAk1B,WACA,CAAA4E,SAAA,sBAAA/5B,KAAA,sBAAAC,QAAA,KAAAm1B,kBAIA,EACApV,SAAA,KACA2J,EAAAA,EAAAA,IAAA,qBACA1J,EAAAA,EAAAA,IAAA,CACAhI,SAAAhW,GAAAA,EAAAoY,KAAAtC,SACAhE,eAAA9R,GAAAA,EAAAC,IAAA6R,eACAK,oBAAAnS,GAAAA,EAAAC,IAAAkS,oBACAC,mBAAApS,GAAAA,EAAAC,IAAAmS,mBACAJ,gBAAAhS,GAAAA,EAAAC,IAAA+R,gBACAC,iBAAAjS,GAAAA,EAAAC,IAAAgS,iBACA3F,WAAAtM,GAAAA,EAAAC,IAAAqM,aAEA4mB,SAAAA,GACA,cAAAphB,oBAAA,KAAA6L,QAAAnH,OACA,EACA2c,eAAAA,GACA,cAAAxV,QAAAnH,oBAAA,KAAA1E,gBACA,EACA4P,eAAAA,GACA,YAAA/D,QAAA+D,eACA,EACAnX,SAAAA,GACA,YAAAoT,SAAAnI,EACA,EACA8c,OAAAA,GACA,YAAA3U,SAAAqa,WACA,EACAnF,iBAAAA,GACA,MAAAoF,EAAA,sBACA,OAAAA,EAAAvT,SAAA,KAAA/G,SAAAnI,GACA,EACA4c,aAAAA,GACA,gBAAAzU,QAAAyU,eAAA,IAAAvlB,OACA,KAAA8Q,QAAAua,WACAxhC,EAAAkH,4BACA,KACA,KAAA+f,QAAAyU,aACA,GAEAlP,MAAA,CAEAwU,gBAAAA,CAAAe,GACAA,GAAA,KAAAd,mBAAA,KAAA7V,OAAAhb,SAAAxF,EACA,GAEA4jB,OAAAA,GAEA,KAAApD,OAAAhb,SAAA5F,GAGA,KAAAw3B,uBACA,EACA3Q,aAAAA,GAEA,KAAAjG,OAAAhb,SAAA7F,GAGA,KAAA03B,aAGA,KAAAC,4BACA,EACA3a,QAAA,CACAiU,KAAAA,IACA,KAAAlc,UAAA,KAAAmc,mBAAA,KAAAuF,mBAAA,KAAA/V,UAAA,KAAAG,OAAAhb,SAAAxF,GACA,KAAAq2B,mBAAA,CACA,EACAe,qBAAAA,GACA3yB,GAAA2E,2BAAA,KAAAC,WAAAsJ,MAAA,OAAAtN,WACA,GAAAA,EAAA,CACA,KAAAgb,UAAAhb,GAAAgb,YAAA,EACA,KAAAhE,QAAAhX,EAEA,KAAAgb,WAAA,KAAAkX,kBACA,KAAA1G,mBAAA,EAEA,MAAAzQ,EAAA/a,GAAA+a,gBACA,GAAAA,GAAA,KAAAC,UAAA,CACA,MAAAE,EAAAlb,GAAAkb,aACAvjB,OAAAsjB,KAAAC,EAAA,UACA,KAAAqQ,OACA,MACA,KAAA4G,6BAEA,IAEA,EACAC,uBAAAA,GACA,IAAAC,EAAA,KAAA1G,QAEAvsB,GAAA2E,2BAAA,KAAAC,WACAsJ,MAAA,OAAAtN,WACA,GAAAA,EAAA,CAEA,KAAAgyB,aACA,KAAAhX,UAAAhb,GAAAgb,YAAA,EACA,KAAAhE,QAAAhX,EACA,KAAAwrB,mBAAA,EACA,KAAA2G,8BACA,KAAAnX,WAAA,KAAAkX,kBACA,MAAAnX,EAAA/a,GAAA+a,gBAKA,GAFAA,GAAA,KAAA4Q,SAAA0G,IAAA,KAAAtB,kBAAA,GAEAhW,GAAA,KAAAC,UAAA,CACA,MAAAE,EAAAlb,GAAAkb,aACAvjB,OAAAsjB,KAAAC,EAAA,UACA,KAAAqQ,OACA,CAGA,KAEA+G,OAAAxxB,IACA,KAAAA,GAAApB,UAAAI,QAEA,KAAAyrB,OACA,GAEA,EACAqB,kBAAAA,GACA,KAAAkE,4BAEA,KAAAA,2BAAA,EAEA1xB,GAAA6E,sBAAA,KAAAL,WAAA0J,MAAA,EAAAtN,WACAA,IACA,KAAA6sB,sBAAA,EACA,KAAAC,mBAAA9sB,EACA,IAEA,EACA4rB,wBAAAA,GACA,KAAAmF,kBAAA,CACA,EACAwB,oBAAAA,GACA,EAEAJ,2BAAAA,GACA,MAAAK,EAAAt3B,GAAA4D,kBAAAlF,UACAqV,EAAA,KAAA+H,QAAA/H,QAEA,IAAAwjB,EAAA,KAAAzb,QAAAyb,gBACAA,IAAAA,EAAAxjB,GAEA,IAAAyjB,EAAA,KAAA1b,QAAA0b,iBACAA,IAAAA,EAAAD,EAAAD,GAEAE,GAAA,IAAAA,EAAA,KAGAzyB,QAAA0yB,MAAA,+BAAAnO,SAAAC,QAAAmO,6BAAAH,KAAAviB,GAAAC,MACAlQ,QAAA0yB,MAAA,sBAAAE,GAAAA,GAAAC,WAAAJ,GAAAK,SAAA,cAAA7iB,GAAAC,MAGA,KAAA8hB,6BAGAS,GAAA,aAAAA,EAAA,YAEA,KAAAzB,2BAAA+B,WAAA,KAAAZ,wBAAAM,EACA,EACAT,0BAAAA,GACA,KAAAhB,6BACAgC,aAAA,KAAAhC,4BACA,KAAAA,2BAAA,KAEA,EACAe,UAAAA,GACA,KAAAhX,WAAA,EAEA,KAAA+V,kBAAA,EACA,KAAAC,mBAAA,EAEA,KAAAxF,mBAAA,EACA,KAAAqB,sBAAA,EAEA,KAAAiE,2BAAA,EAEA,KAAA9Z,QAAA,IACA,EACAkb,eAAAA,GACA,QAAAgB,cAAA,KAAA5jB,YAAA,CACA,MAAA6jB,EAAA,CACAjxB,MAAA,KAAAoN,aAAApN,MACA8B,UAAA,KAAAA,UACAJ,UAAA,KAAAA,UACA+nB,QAAA,KAAAA,QACAyH,OAAA,oBAEAnzB,QAAAuQ,KAAA,kCAAA/Y,KAAAS,UAAAi7B,KAAAjjB,GAAAE,UACA,KAAA8iB,cAAAG,WAAA,CAAAl8B,KAAA,kBAAAm8B,WAAAH,GACA,CACA,IClV+M,MCQ3M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCNhC,IACAh8B,KAAA,oBACAklB,WAAA,CACA+sC,iBAAAA,IAEAppD,IAAAA,GACA,OACA4pC,gBAAA,KAEA,EACAxyB,SAAA,KACAC,EAAAA,EAAAA,IAAA,CACAtM,UAAA1R,GAAAA,EAAAC,IAAAyR,aAGAiS,OAAAA,GAQA,EAMAoE,aAAAA,GACA,EAOA7C,OAAAA,GACA,MAAA1V,EAAAlR,OAAAkB,SAAAmiC,OAEAnyB,EACAzJ,GAAA0J,gBAAAD,GAAAyE,MAAA,EAAAtN,WACAA,IAEA,KAAA4pC,gBAAA5pC,GAGA,KAAA2pC,aAAA,IAGA,KAAAA,aAGA,EACAryB,QAAA,CACAqyB,WAAAA,GACA,KAAAxuB,OAAA9N,OAAAjE,IAAA,EACA,ICtEgN,MCO5M,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,YClBhC,SAASigD,GAAmBC,EAASC,EAAYpyC,GAC/C,MAAMqyC,EAAiBD,EAAWpyC,GAElC,OAAKqyC,EAIE,KACL,MAAMC,EAAeJ,GAAmBC,EAASC,EAAYpyC,EAAQ,GACrEqyC,EAAe,IAAKF,EAASpU,KAAMuU,GAAe,EAL3CH,EAAQpU,IAOnB,CC4BA,MAAMwU,GAAeC,GAAAA,GAAOC,UAAU5sD,KACtC2sD,GAAAA,GAAOC,UAAU5sD,KAAO,SAAcnE,GACpC,OAAO6wD,GAAaG,KAAK5sD,KAAMpE,GAAUy5B,OAAOxxB,GAAQA,GAC1D,EAEAwQ,EAAAA,WAAI3R,IAAIgqD,GAAAA,IAED,MAAM3oB,GAAS,IAAI2oB,GAAAA,GAAO,CAC/BzyC,KAAM,UAEN4yC,OAAQ,CACN,CACE7sB,KAAM,WACN9lC,KAAM,iBACNmkB,UAAWyuC,GACXviC,KAAM,CAAEwiC,cAAc,GACtB/wB,SAAU,CACR,CAAEgE,KAAM,SAAU9lC,KAAM,SAAUmkB,UAAW2uC,IAC7C,CAAEhtB,KAAM,qBAAsB9lC,KAAM,qBAAsBmkB,UAAW4uC,IACrE,CAAEjtB,KAAM,cAAe9lC,KAAM,QAASmkB,UAAW6uC,IACjD,CACEltB,KAAM,kBACNmtB,MAAOr6D,EAAUs6D,8BACjBlzD,KAAM,YACNmkB,UAAWgvC,GACX9iC,KAAM,CAAE+iC,uBAAuB,MAIrC,CACEttB,KAAM,0BACN9lC,KAAM,qBACNmkB,UAAWkvC,GACXhwC,MAAO,CACL8M,YAAY,EACZc,YAAY,EACZf,qBAAqB,GAEvBG,KAAM,CAAEwiC,cAAc,GACtB/wB,SAAU,CACR,CACEgE,KAAMltC,EAAUoF,0BAChBgC,KAAM,mBACNmkB,UAAWmvC,GACXjwC,MAAO,CACLvE,WAAW,IAGf,CAAEgnB,KAAMltC,EAAUqF,+BAAgC+B,KAAM,wBAAyBmkB,UAAW8L,IAC5F,CAAE6V,KAAMltC,EAAUsF,+BAAgC8B,KAAM,yBAA0BmkB,UAAWovC,IAC7F,CAAEztB,KAAMltC,EAAUwF,0BAA2B4B,KAAM,oBAAqBmkB,UAAWqvC,IACnF,CAAE1tB,KAAMltC,EAAUuF,oCAAqC6B,KAAM,6BAA8BmkB,UAAWsvC,MAG1G,CACE3tB,KAAM,eACN9lC,KAAM,eACNmkB,UAAWkvC,GACXhjC,KAAM,CAAEwiC,cAAc,GACtB/wB,SAAU,CACR,CAAEgE,KAAM,GAAImtB,MAAOr6D,EAAU8D,WAAYsD,KAAM,OAAQmkB,UAAWmvC,IAClE,CAAExtB,KAAMltC,EAAUkF,WAAYkC,KAAM,OAAQmkB,UAAWuvC,IACvD,CAAE5tB,KAAMltC,EAAUmE,eAAgBiD,KAAM,WAAYmkB,UAAWwvC,IAC/D,CACE7tB,KAAMltC,EAAUsE,mBAChB8C,KAAM,cACNmkB,UAAWyvC,IAEb,CACE9tB,KAAMltC,EAAU+D,gBAChBqD,KAAM,YACNmkB,UAAW0vC,IAEb,CACE/tB,KAAMltC,EAAUgE,cAChBoD,KAAM,UACNmkB,UAAW2vC,IAEb,CACEhuB,KAAMltC,EAAUuE,yBAChB6C,KAAM,qBACNmkB,UAAW4vC,IAEb,CACEjuB,KAAMltC,EAAUwE,8BAChB4C,KAAM,2BACNmkB,UAAW6vC,GACX3jC,KAAM,CAAEC,kBAAkB,IAE5B,CACEwV,KAAMltC,EAAUyE,oCAChB2C,KAAM,gCACNmkB,UAAW8vC,GACX5jC,KAAM,CAAEC,kBAAkB,IAE5B,CACEwV,KAAMltC,EAAUiE,eAChBmD,KAAM,WACNmkB,UAAW+vC,IAEb,CACEpuB,KAAMltC,EAAUkE,eAChBkD,KAAM,WACNmkB,UAAWgwC,IAEb,CAAEruB,KAAMltC,EAAUoE,sBAAuBgD,KAAM,kBAAmBmkB,UAAWiwC,IAC7E,CAAEtuB,KAAMltC,EAAU0E,sBAAuB0C,KAAM,kBAAmBmkB,UAAWkwC,IAE7E,CAAEvuB,KAAMltC,EAAU8E,wBAAyBsC,KAAM,oBAAqBmkB,UAAWmwC,IACjF,CAAExuB,KAAMltC,EAAU+E,0BAA2BqC,KAAM,sBAAuBmkB,UAAWowC,IACrF,CAAEzuB,KAAMltC,EAAUiF,YAAamC,KAAM,iBAAkBmkB,UAAWqwC,IAClE,CACE1uB,KAAM,IACN2uB,YAAaA,CAACvxB,EAAIqkB,EAAMxJ,KACtBA,EAAK7a,EAAG34B,OAAOiE,WAAW,KAKlC,CACEs3B,KAAM,IACN2uB,YAAaA,CAACvxB,EAAIqkB,EAAMxJ,KACtBA,EAAK/pB,KAAkB,IAI7B0gC,cAAAA,CAAexxB,EAAIqkB,EAAMoN,GACvB,OAAIA,OAEF1yD,GAAM+G,SAASnF,GAAwB8wD,GAE9BzxB,EAAG0xB,KAEL,CACLpV,SAAUtc,EAAG0xB,KACb/V,SAAU,UAEH3b,EAAG4C,OAASyhB,EAAKzhB,KAEnB,CAAEtuB,EAAG,EAAG6nC,EAAG,GACQ,UAAjBnc,EAAG3I,MAAMupB,KAAmB5gB,EAAG3I,MAAMyX,MAAQuV,EAAKhtB,MAAMyX,MAAQ9O,EAAG3I,MAAMyX,OAASuV,EAAKhtB,MAAMyX,UAEtG/vC,GAAM+G,SAASnF,GAAwB,CACrC27C,SAAU,UACVX,SAAU,gBAKZ,CAEJ,IAGFhV,GAAOgrB,YAAWpsD,MAAOy6B,EAAIqkB,EAAMxJ,KACjC,MAAMxlC,EAAY,IAAIu8C,gBAAgBt0D,OAAOkB,SAASmiC,QAGlDX,EAAG6xB,QAAQ/T,MAAMgU,GAAWA,EAAO3kC,KAAKwiC,sBACpC7qB,GAAuB9E,EAAIqkB,GAI/BhvC,EAAUyyC,IAAI,gBAGV/oD,GAAM+G,SAAShG,EAAOuV,GAI1BA,EAAUyyC,IAAI,WAEhBpoD,EAAsB2V,EAAUjO,IAAI,WAsBtC,IAAI2qD,EAAU1yD,IAEV2gC,EAAG4C,KAAKovB,SAAS,aACnBD,GAAU,GAGRA,SAAehzD,GAAM+G,SAAS/F,GAElC,MAAMmvD,EAAalvB,EAAG7S,KAAK+hC,WAC3B,IAAKA,EAAY,OAAOrU,IAExB,MAAMoU,EAAU,CACdtoB,UACA3G,KACAqkB,OACAxJ,OACA97C,MAAKA,IAGP,OAAOmwD,EAAW,GAAG,IAChBD,EACHpU,KAAMmU,GAAmBC,EAASC,EAAY,IAC9C,IAGJvoB,GAAOsrB,WAAWjyB,IAChB,MAAM3I,EAAQ2I,EAAG3I,MACjB,GAAIA,EAAM5hB,OAAS4hB,EAAM66B,KAAO76B,EAAM86B,KAAO96B,EAAM13B,OAAQ,CACzD,IAAIyyD,EAAYhyC,OAAOoX,OAAO,CAAC,EAAGH,GAgBlC,cAfO+6B,EAAU38C,aACV28C,EAAU3yD,eACV2yD,EAAUvqD,aACVuqD,EAAU78C,aACV68C,EAAU58C,aACV48C,EAAU58C,aACV48C,EAAUj9C,iBACVi9C,EAAUh9C,gBACVg9C,EAAUF,WACVE,EAAUD,WACVC,EAAUC,WACVD,EAAUE,WACVF,EAAUG,gBACVH,EAAUzyD,OAEVgnC,GAAOp/B,QAAQ,CACpBq7B,KAAM5C,EAAG4C,KACTvL,MAAO+6B,GAEX,KCzRF,IAAI92C,GAAS,WAAkB,IAAIG,EAAI7Y,KAAK8Y,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACM,YAAY,oBAAoBD,MAAM,CAAC,GAAK,iBAAiB,CAACL,EAAG,YAAY,CAACO,MAAO,CAAE8H,OAAQtI,EAAI/K,UAAY,QAAU,QAAUqL,MAAM,CAAC,KAAON,EAAI/K,UAAU,QAAU,EAAE,eAAe,SAAS,CAACgL,EAAG,gBAAgB,IAAI,EACxS,EACII,GAAkB,GCEf,MAAM02C,GAAmB,CAC9B7sD,IAAAA,GACE,MAAO,CACL8sD,YAAa,kCACbC,YAAY,EACZC,QAAS,GAEb,EACA51C,SAAU,CACR61C,gBAAAA,GACE,MAAOn0D,uBACT,GAEFwe,QAAS,CACP41C,gBAAAA,CAAiBC,GACfhsC,aAAY,KACVlkB,KAAKmwD,cAAc,GAClBD,EACL,EACA,kBAAMC,GACJ,IACE,MAAMC,QAAqB9tD,IAAAA,OAAa,CACtCC,QAAS,GAAG7H,OAAOkB,SAASK,SAC5BkI,QAAS,CACP,eAAgB,sBAEjBK,IAAI,IAAMxE,KAAKgwD,iBAAmB,OAAQ,IAAItzD,MAAOC,WAExDqD,KAAK+vD,QAAUK,EAAartD,KAAK+rD,KAEjC9uD,KAAK8vD,WAAa9vD,KAAKqwD,eAAerwD,KAAK6vD,YAAa7vD,KAAK+vD,SACzD/vD,KAAK8vD,YACP9sD,QAAQ0yB,MAAM,iBAAiBl7B,KAAKS,UAAU,CAAE40D,YAAa7vD,KAAK6vD,YAAaE,QAAS/vD,KAAK+vD,YAC3F98C,GAAcG,OACpB,CAAE,MAAOxQ,GACFA,EAAMH,SAGTzC,KAAKswD,YAAc1tD,EAAMH,SAASM,KAAKD,QAFvC9C,KAAKswD,YAAc,sBAIvB,CACF,EACAD,cAAAA,CAAeR,EAAaE,GAC1B,OAAKF,GAA+B,oCAAhBA,GAIbA,IAAgBE,CACzB,EACAQ,SAAAA,GACEvwD,KAAK6vD,YAAc7vD,KAAK+vD,QACxBr1D,OAAOkB,SAAS40D,QAClB,ICvCJ,QACAt2D,KAAA,MACA6nB,OAAA,CAAA6tC,IACA7sD,IAAAA,GACA,OACAy+B,QAAA,EAEA,EACArnB,SAAA,KACA2J,EAAAA,EAAAA,IAAA,wEACA1J,EAAAA,EAAAA,IAAA,CACAtM,UAAA1R,GAAAA,EAAAC,IAAAyR,aAGAwR,MAAA,CACAkiB,MAAAA,CAAAA,GACAx+B,QAAAuQ,KAAA,oBAAA/Y,KAAAS,UAAAumC,KAAAvuB,GAAAG,QAGA,KAAAS,kBAAA,KAAAC,mBASA9Q,QAAAuQ,KAAA,qCAAAN,GAAAG,QARAouB,EAIA,KAAAtjB,OAAAhb,SAAA7F,GAHA,KAAA6gB,OAAAhb,SAAA5F,EASA,EACAwyD,UAAAA,CAAAA,GACAA,GAAA,KAAA71B,SAAAxmB,KAAA,oBACA,GAEA,aAAA6N,GACA,QAAA2U,aAAA,CACA,MAAAw6B,EAAA,CAAA5iD,QAAA,KAAAoC,YACAjN,QAAAuQ,KAAA,8BAAA/Y,KAAAS,UAAAw1D,KAAAx9C,GAAAE,UACA,KAAA8iB,cAAAG,WAAA,CAAAl8B,KAAA,cAAAm8B,WAAAo6B,GACA,CAGA,MAAAC,EAAA9zD,SAAAf,YACA,KAAAo0D,iBAAAS,GAGA,KAAA/1B,MAAAg2B,IAAA,wBACA,KAAAJ,WAAA,IAsBA,KAAAK,gBACA,EACAv2C,QAAA,CACAu2C,cAAAA,GAEA,MAAAjlC,EAAA,KAEAklC,EAAAh2D,IAEA,IAAAi2D,MAAA,EAAAC,SAAA,GAAAl2D,EAAA8Y,MAAA,CAEA,GAAAgY,EAAA6V,OAAA,OACA,KAAAwvB,UAAA,EACArlC,EAAA6V,QAAA,CACA,MAAA7V,EAAA6V,SAEA,KAAAwvB,UAAA,KAAAA,SACArlC,EAAA6V,QAAA,EACA,EAGA9mC,OAAA2gD,iBAAA,QAAAwV,GACAn2D,OAAA2gD,iBAAA,OAAAwV,GACAn2D,OAAA2gD,iBAAA,WAAAwV,GACAn2D,OAAA2gD,iBAAA,WAAAwV,EACA,IChHqM,MCQjM,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,YCQhCz1C,EAAQ,OA0BR,MAAM61C,GAAiBA,KACrB,MAAMC,EAAShxC,SAASsjB,cAAc,WACtC0tB,EAAO73C,MAAMgoC,QAAU,MAAM,EAG/B8P,YAAYxE,UAAU7T,uBAAyB,SAAUmJ,GAEvD,IAAIpJ,EAAU74C,KACd,GAAI64C,GAAWA,aAAmBsY,YAAa,CAE7C,IAAIC,EAAenP,EAAKhJ,WACxB,GAAIgJ,EAAK/I,UAAW,CAElB,MAAMmY,EAAenxC,SAASmY,eAAe,gBACzCg5B,IACFD,GAAgBC,EAAaC,aAEjC,CAEA,GAAIrP,EAAK9I,cAAe,CACtB,MAAMoY,EAAgBrxC,SAASmY,eAAe,iBAC1Ck5B,IACFH,GAAgBG,EAAcD,aAElC,CAEAzY,EAAQx/B,MAAMm4C,gBAAkB,GAAGJ,MAEnCvY,EAAQ4Y,eAAe,CAAE1Y,SAASkJ,EAAKlJ,UAAU,SAAUC,MAAOiJ,EAAKjJ,OAAO,SAChF,CACF,EAGA,IAAI32C,GAAc,KAClB,MAAMqvD,GAAqB71D,uCACvB61D,KAGFrvD,GAAc,IAAIsvD,EAAAA,EAAoB,CACpCC,OAAQ,CACNF,mBAAoBA,MAIxBrvD,GAAcA,GAAYwvD,kBAC1BxvD,GAAYyvD,iBAMd3vD,GAAgBC,KAAKC,IASjBqvD,IACFr9C,EAAAA,WAAI3R,IAAIqvD,EAAAA,EAAgB,CACtB1vD,YAAaA,GACb2vD,SAAU,gBACVpgD,GAAI8/C,GACJ3tB,OAAMA,KAKV1vB,EAAAA,WAAI3R,IAAIuvD,GAAAA,YAGR59C,EAAAA,WAAI3R,IAAIwvD,EAAAA,KACR79C,EAAAA,WAAI3R,IAAIyvD,EAAAA,EAAW,aAGnBC,EAAAA,GAAQ/xC,IAAI,CAACgyC,EAAAA,IAAcC,EAAAA,IAAqBC,EAAAA,IAAcC,EAAAA,IAAWC,EAAAA,IAASC,EAAAA,IAAQC,EAAAA,MAC1Ft+C,EAAAA,WAAIgK,UAAU,oBAAqBu0C,EAAAA,IAGnCv+C,EAAAA,WAAI3R,IAAImwD,KAGRx+C,EAAAA,WAAI3R,IAAIowD,EAAAA,GAGRz+C,EAAAA,WAAI3R,IAAIqwD,EAAAA,EAAS,CACfC,yBAAyB,IA+C3B3+C,EAAAA,WAAI3R,IAAIuwD,KAGR5+C,EAAAA,WAAI3R,IAAIwwD,EAAAA,EAAe,CACrBC,MAAOt3D,eAITwY,EAAAA,WAAI3R,IAAI0wD,EAAAA,IAGR/+C,EAAAA,WAAIu9C,OAAOyB,eAAgB,EAC3Bh/C,EAAAA,WAAIu9C,OAAO0B,gBAAkB,CAAC,YAG9Bj/C,EAAAA,WAAIs4C,UAAU4G,MAAQC,IAAQ,QAG9Bn/C,EAAAA,WAAI3R,IAAI+wD,EAAAA,GAGRp/C,EAAAA,WAAI3R,IAAIgxD,KAGRzC,KAEA,IAAI58C,EAAAA,WAAI,CACNqlB,GAAI,gBAMJqK,OAAM,GACN5nC,MAAK,GACLuc,OAAQi7C,GAAKA,EAAEC,K,wBC/NjB,IAAIx7C,EAAM,CACT,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,KACX,aAAc,KACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,KACX,aAAc,KACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,WAAY,KACZ,cAAe,KACf,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,WAAY,MACZ,cAAe,MACf,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,YAAa,KACb,eAAgB,KAChB,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,QAAS,MACT,aAAc,MACd,gBAAiB,MACjB,WAAY,MACZ,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,YAAa,MACb,eAAgB,MAChB,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,KACX,aAAc,KACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,OAIf,SAASy7C,EAAeC,GACvB,IAAIliD,EAAKmiD,EAAsBD,GAC/B,OAAOE,EAAoBpiD,EAC5B,CACA,SAASmiD,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE77C,EAAK07C,GAAM,CACpC,IAAIj5D,EAAI,IAAImJ,MAAM,uBAAyB8vD,EAAM,KAEjD,MADAj5D,EAAEkxC,KAAO,mBACHlxC,CACP,CACA,OAAOud,EAAI07C,EACZ,CACAD,EAAexlB,KAAO,WACrB,OAAO7wB,OAAO6wB,KAAKj2B,EACpB,EACAy7C,EAAehY,QAAUkY,EACzBG,EAAOC,QAAUN,EACjBA,EAAejiD,GAAK,K,wBCvSpB,IAAIwG,EAAM,CACT,4BAA6B,MAC7B,4BAA6B,MAC7B,4BAA6B,MAC7B,4BAA6B,MAC7B,4BAA6B,MAC7B,6BAA8B,MAC9B,sBAAuB,MACvB,2BAA4B,MAC5B,oBAAqB,MACrB,2BAA4B,MAC5B,2BAA4B,MAC5B,2BAA4B,OAI7B,SAASy7C,EAAeC,GACvB,IAAIliD,EAAKmiD,EAAsBD,GAC/B,OAAOE,EAAoBpiD,EAC5B,CACA,SAASmiD,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE77C,EAAK07C,GAAM,CACpC,IAAIj5D,EAAI,IAAImJ,MAAM,uBAAyB8vD,EAAM,KAEjD,MADAj5D,EAAEkxC,KAAO,mBACHlxC,CACP,CACA,OAAOud,EAAI07C,EACZ,CACAD,EAAexlB,KAAO,WACrB,OAAO7wB,OAAO6wB,KAAKj2B,EACpB,EACAy7C,EAAehY,QAAUkY,EACzBG,EAAOC,QAAUN,EACjBA,EAAejiD,GAAK,K,wBCjCpB,IAAIwG,EAAM,CACT,4BAA6B,MAC7B,4BAA6B,MAC7B,4BAA6B,MAC7B,4BAA6B,MAC7B,4BAA6B,MAC7B,2BAA4B,MAC5B,2BAA4B,MAC5B,2BAA4B,OAI7B,SAASy7C,EAAeC,GACvB,IAAIliD,EAAKmiD,EAAsBD,GAC/B,OAAOE,EAAoBpiD,EAC5B,CACA,SAASmiD,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE77C,EAAK07C,GAAM,CACpC,IAAIj5D,EAAI,IAAImJ,MAAM,uBAAyB8vD,EAAM,KAEjD,MADAj5D,EAAEkxC,KAAO,mBACHlxC,CACP,CACA,OAAOud,EAAI07C,EACZ,CACAD,EAAexlB,KAAO,WACrB,OAAO7wB,OAAO6wB,KAAKj2B,EACpB,EACAy7C,EAAehY,QAAUkY,EACzBG,EAAOC,QAAUN,EACjBA,EAAejiD,GAAK,K,0ocC5BhBwiD,EAA2B,CAAC,EAGhC,SAASJ,EAAoBK,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBvzD,IAAjBwzD,EACH,OAAOA,EAAaH,QAGrB,IAAID,EAASE,EAAyBC,GAAY,CACjDziD,GAAIyiD,EACJh1C,QAAQ,EACR80C,QAAS,CAAC,GAUX,OANAI,EAAoBF,GAAUzH,KAAKsH,EAAOC,QAASD,EAAQA,EAAOC,QAASH,GAG3EE,EAAO70C,QAAS,EAGT60C,EAAOC,OACf,CAGAH,EAAoBQ,EAAID,E,WC5BxB,IAAIE,EAAW,GACfT,EAAoBU,EAAI,SAASt9C,EAAQu9C,EAAUn5C,EAAIo5C,GACtD,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASh1D,EAAI,EAAGA,EAAI20D,EAASxrD,OAAQnJ,IAAK,CACrC60D,EAAWF,EAAS30D,GAAG,GACvB0b,EAAKi5C,EAAS30D,GAAG,GACjB80D,EAAWH,EAAS30D,GAAG,GAE3B,IAJA,IAGIi1D,GAAY,EACPC,EAAI,EAAGA,EAAIL,EAAS1rD,OAAQ+rD,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAap3C,OAAO6wB,KAAK2lB,EAAoBU,GAAGO,OAAM,SAASj7C,GAAO,OAAOg6C,EAAoBU,EAAE16C,GAAK26C,EAASK,GAAK,IAChKL,EAAS9iD,OAAOmjD,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbN,EAAS5iD,OAAO/R,IAAK,GACrB,IAAI03B,EAAIhc,SACE1a,IAAN02B,IAAiBpgB,EAASogB,EAC/B,CACD,CACA,OAAOpgB,CArBP,CAJCw9C,EAAWA,GAAY,EACvB,IAAI,IAAI90D,EAAI20D,EAASxrD,OAAQnJ,EAAI,GAAK20D,EAAS30D,EAAI,GAAG,GAAK80D,EAAU90D,IAAK20D,EAAS30D,GAAK20D,EAAS30D,EAAI,GACrG20D,EAAS30D,GAAK,CAAC60D,EAAUn5C,EAAIo5C,EAwB/B,C,eC5BAZ,EAAoBngB,EAAI,SAASqgB,GAChC,IAAIgB,EAAShB,GAAUA,EAAOiB,WAC7B,WAAa,OAAOjB,EAAO,UAAY,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAF,EAAoBnzD,EAAEq0D,EAAQ,CAAEzd,EAAGyd,IAC5BA,CACR,C,eCNAlB,EAAoBnzD,EAAI,SAASszD,EAASiB,GACzC,IAAI,IAAIp7C,KAAOo7C,EACXpB,EAAoBC,EAAEmB,EAAYp7C,KAASg6C,EAAoBC,EAAEE,EAASn6C,IAC5EwD,OAAO63C,eAAelB,EAASn6C,EAAK,CAAEs7C,YAAY,EAAM9wD,IAAK4wD,EAAWp7C,IAG3E,C,eCPAg6C,EAAoBuB,EAAI,WACvB,GAA0B,kBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOx1D,MAAQ,IAAIy1D,SAAS,cAAb,EAChB,CAAE,MAAO56D,GACR,GAAsB,kBAAXH,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,eCAxBs5D,EAAoB0B,IAAM,SAASxB,GASlC,OARAA,EAAS12C,OAAOm4C,OAAOzB,GAClBA,EAAOl4B,WAAUk4B,EAAOl4B,SAAW,IACxCxe,OAAO63C,eAAenB,EAAQ,UAAW,CACxCoB,YAAY,EACZr4D,IAAK,WACJ,MAAM,IAAI+G,MAAM,0FAA4FkwD,EAAOtiD,GACpH,IAEMsiD,CACR,C,eCVAF,EAAoBC,EAAI,SAAS1tB,EAAKqvB,GAAQ,OAAOp4C,OAAOmvC,UAAUkJ,eAAejJ,KAAKrmB,EAAKqvB,EAAO,C,eCCtG5B,EAAoBx8B,EAAI,SAAS28B,GACX,qBAAX2B,QAA0BA,OAAOC,aAC1Cv4C,OAAO63C,eAAelB,EAAS2B,OAAOC,YAAa,CAAEjgD,MAAO,WAE7D0H,OAAO63C,eAAelB,EAAS,aAAc,CAAEr+C,OAAO,GACvD,C,eCNAk+C,EAAoBgC,IAAM,SAAS9B,GAGlC,OAFAA,EAAO+B,MAAQ,GACV/B,EAAOl4B,WAAUk4B,EAAOl4B,SAAW,IACjCk4B,CACR,C,eCJAF,EAAoBkC,EAAI,Y,eCKxB,IAAIC,EAAkB,CACrB,IAAK,GAaNnC,EAAoBU,EAAEM,EAAI,SAASoB,GAAW,OAAoC,IAA7BD,EAAgBC,EAAgB,EAGrF,IAAIC,EAAuB,SAASC,EAA4BvzD,GAC/D,IAKIsxD,EAAU+B,EALVzB,EAAW5xD,EAAK,GAChBwzD,EAAcxzD,EAAK,GACnByzD,EAAUzzD,EAAK,GAGIjD,EAAI,EAC3B,GAAG60D,EAASzZ,MAAK,SAAStpC,GAAM,OAA+B,IAAxBukD,EAAgBvkD,EAAW,IAAI,CACrE,IAAIyiD,KAAYkC,EACZvC,EAAoBC,EAAEsC,EAAalC,KACrCL,EAAoBQ,EAAEH,GAAYkC,EAAYlC,IAGhD,GAAGmC,EAAS,IAAIp/C,EAASo/C,EAAQxC,EAClC,CAEA,IADGsC,GAA4BA,EAA2BvzD,GACrDjD,EAAI60D,EAAS1rD,OAAQnJ,IACzBs2D,EAAUzB,EAAS70D,GAChBk0D,EAAoBC,EAAEkC,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOpC,EAAoBU,EAAEt9C,EAC9B,EAEIq/C,EAAqBvkC,KAAK,oCAAsCA,KAAK,qCAAuC,GAChHukC,EAAmB/1B,QAAQ21B,EAAqBK,KAAK,KAAM,IAC3DD,EAAmB12D,KAAOs2D,EAAqBK,KAAK,KAAMD,EAAmB12D,KAAK22D,KAAKD,G,IC/CvF,IAAIE,EAAsB3C,EAAoBU,OAAE5zD,EAAW,CAAC,MAAM,WAAa,OAAOkzD,EAAoB,MAAQ,IAClH2C,EAAsB3C,EAAoBU,EAAEiC,E","sources":["webpack://media-platform-front/./src/constants/index.js","webpack://media-platform-front/./src/services/auth.js","webpack://media-platform-front/./src/store/actions.js","webpack://media-platform-front/./src/utils/date-helper.js","webpack://media-platform-front/./src/services/media-api.js","webpack://media-platform-front/./src/store/mutations.js","webpack://media-platform-front/./src/store/modules/app.js","webpack://media-platform-front/./src/store/modules/auth.js","webpack://media-platform-front/./src/utils/console-color.js","webpack://media-platform-front/./src/store/modules/pooling.js","webpack://media-platform-front/./src/store/modules/modal.js","webpack://media-platform-front/./src/store/modules/scroll.js","webpack://media-platform-front/./src/store/modules/partner.js","webpack://media-platform-front/./src/store/index.js","webpack://media-platform-front/./src/enums/media-type.js","webpack://media-platform-front/./src/utils/query-helper.js","webpack://media-platform-front/./src/services/storyblok.js","webpack://media-platform-front/./src/utils/filters.js","webpack://media-platform-front/./src/components/Selectors/HomeSelector.vue","webpack://media-platform-front/./src/views/MobileApp/HappeningNow.vue","webpack://media-platform-front/./src/components/Blocks/HappeningNow.vue","webpack://media-platform-front/./src/mixins/hybridEventMixin.js","webpack://media-platform-front/./src/components/Cards/SessionCard.vue","webpack://media-platform-front/./src/components/Buttons/SessionButton.vue","webpack://media-platform-front/src/components/Buttons/SessionButton.vue","webpack://media-platform-front/./src/components/Buttons/SessionButton.vue?d059","webpack://media-platform-front/./src/components/Buttons/SessionButton.vue?4b69","webpack://media-platform-front/./src/components/Buttons/SessionVoteButton.vue","webpack://media-platform-front/./src/components/Modals/IframeModal.vue","webpack://media-platform-front/src/components/Modals/IframeModal.vue","webpack://media-platform-front/./src/components/Modals/IframeModal.vue?bfe0","webpack://media-platform-front/./src/components/Modals/IframeModal.vue?c2eb","webpack://media-platform-front/src/components/Buttons/SessionVoteButton.vue","webpack://media-platform-front/./src/components/Buttons/SessionVoteButton.vue?a86e","webpack://media-platform-front/./src/components/Buttons/SessionVoteButton.vue?6024","webpack://media-platform-front/./src/components/Buttons/AskQuestionButton.vue","webpack://media-platform-front/src/components/Buttons/AskQuestionButton.vue","webpack://media-platform-front/./src/components/Buttons/AskQuestionButton.vue?a6c6","webpack://media-platform-front/./src/components/Buttons/AskQuestionButton.vue?20cd","webpack://media-platform-front/./src/components/Buttons/FavoriteButton.vue","webpack://media-platform-front/src/components/Buttons/FavoriteButton.vue","webpack://media-platform-front/./src/components/Buttons/FavoriteButton.vue?48c0","webpack://media-platform-front/./src/components/Buttons/FavoriteButton.vue?fb14","webpack://media-platform-front/./src/mixins/esc365Mixin.js","webpack://media-platform-front/src/components/Cards/SessionCard.vue","webpack://media-platform-front/./src/components/Cards/SessionCard.vue?91b1","webpack://media-platform-front/./src/components/Cards/SessionCard.vue?e8b3","webpack://media-platform-front/src/components/Blocks/HappeningNow.vue","webpack://media-platform-front/./src/components/Blocks/HappeningNow.vue?5953","webpack://media-platform-front/./src/components/Blocks/HappeningNow.vue?682d","webpack://media-platform-front/src/views/MobileApp/HappeningNow.vue","webpack://media-platform-front/./src/views/MobileApp/HappeningNow.vue?1f06","webpack://media-platform-front/./src/views/MobileApp/HappeningNow.vue?4138","webpack://media-platform-front/./src/views/PreHome/PreHomeV2.vue","webpack://media-platform-front/./src/components/Widgets/TakeQuizzMobileWidget.vue","webpack://media-platform-front/src/components/Widgets/TakeQuizzMobileWidget.vue","webpack://media-platform-front/./src/components/Widgets/TakeQuizzMobileWidget.vue?5fb8","webpack://media-platform-front/./src/components/Widgets/TakeQuizzMobileWidget.vue?9d07","webpack://media-platform-front/./src/components/Widgets/RegisterPromoWidget.vue","webpack://media-platform-front/./src/utils/html-helper.js","webpack://media-platform-front/src/components/Widgets/RegisterPromoWidget.vue","webpack://media-platform-front/./src/components/Widgets/RegisterPromoWidget.vue?e662","webpack://media-platform-front/./src/components/Widgets/RegisterPromoWidget.vue?14c1","webpack://media-platform-front/./src/components/Blocks/AuthoredSlidesBlock.vue","webpack://media-platform-front/src/components/Blocks/AuthoredSlidesBlock.vue","webpack://media-platform-front/./src/components/Blocks/AuthoredSlidesBlock.vue?1dc2","webpack://media-platform-front/./src/components/Blocks/AuthoredSlidesBlock.vue?8d4b","webpack://media-platform-front/./src/components/Blocks/HappeningNowBlock.vue","webpack://media-platform-front/src/components/Blocks/HappeningNowBlock.vue","webpack://media-platform-front/./src/components/Blocks/HappeningNowBlock.vue?f896","webpack://media-platform-front/./src/components/Blocks/HappeningNowBlock.vue?21f9","webpack://media-platform-front/src/views/PreHome/PreHomeV2.vue","webpack://media-platform-front/./src/views/PreHome/PreHomeV2.vue?b05b","webpack://media-platform-front/./src/views/PreHome/PreHomeV2.vue?1476","webpack://media-platform-front/./src/views/MobileApp/PreHome.vue","webpack://media-platform-front/./src/components/Widgets/PreHomeCountDownWidget.vue","webpack://media-platform-front/src/components/Widgets/PreHomeCountDownWidget.vue","webpack://media-platform-front/./src/components/Widgets/PreHomeCountDownWidget.vue?d112","webpack://media-platform-front/./src/components/Widgets/PreHomeCountDownWidget.vue?24f1","webpack://media-platform-front/src/views/MobileApp/PreHome.vue","webpack://media-platform-front/./src/views/MobileApp/PreHome.vue?e9f0","webpack://media-platform-front/./src/views/MobileApp/PreHome.vue?aa73","webpack://media-platform-front/src/components/Selectors/HomeSelector.vue","webpack://media-platform-front/./src/components/Selectors/HomeSelector.vue?971b","webpack://media-platform-front/./src/components/Selectors/HomeSelector.vue?900a","webpack://media-platform-front/./src/layout/EventWrapper.vue","webpack://media-platform-front/./src/assets/scripts/sf-chatbot.js","webpack://media-platform-front/./src/router/default.js","webpack://media-platform-front/./src/components/Modals/ChannelModal.vue","webpack://media-platform-front/./src/mixins/personsMixin.js","webpack://media-platform-front/./src/components/Banners/ModalBanners.vue","webpack://media-platform-front/./src/components/Banners/Banners.vue","webpack://media-platform-front/src/components/Banners/Banners.vue","webpack://media-platform-front/./src/components/Banners/Banners.vue?e1ed","webpack://media-platform-front/./src/components/Banners/Banners.vue?4933","webpack://media-platform-front/src/components/Banners/ModalBanners.vue","webpack://media-platform-front/./src/components/Banners/ModalBanners.vue?8f2c","webpack://media-platform-front/./src/components/Banners/ModalBanners.vue?5d1b","webpack://media-platform-front/./src/components/Players/BrightcovePlayer.vue","webpack://media-platform-front/src/components/Players/BrightcovePlayer.vue","webpack://media-platform-front/./src/components/Players/BrightcovePlayer.vue?ae7f","webpack://media-platform-front/./src/components/Players/BrightcovePlayer.vue?5771","webpack://media-platform-front/./src/components/Widgets/LogginWidget.vue","webpack://media-platform-front/src/components/Widgets/LogginWidget.vue","webpack://media-platform-front/./src/components/Widgets/LogginWidget.vue?4f77","webpack://media-platform-front/./src/components/Widgets/LogginWidget.vue?47a1","webpack://media-platform-front/./src/components/Widgets/RegisterWidget.vue","webpack://media-platform-front/src/components/Widgets/RegisterWidget.vue","webpack://media-platform-front/./src/components/Widgets/RegisterWidget.vue?00ab","webpack://media-platform-front/./src/components/Widgets/RegisterWidget.vue?5050","webpack://media-platform-front/src/components/Modals/ChannelModal.vue","webpack://media-platform-front/./src/components/Modals/ChannelModal.vue?a79a","webpack://media-platform-front/./src/components/Modals/ChannelModal.vue?267b","webpack://media-platform-front/./src/components/Modals/MediaModal.vue","webpack://media-platform-front/./src/components/Widgets/PigeonWidget.vue","webpack://media-platform-front/src/components/Widgets/PigeonWidget.vue","webpack://media-platform-front/./src/components/Widgets/PigeonWidget.vue?207e","webpack://media-platform-front/./src/components/Widgets/PigeonWidget.vue?a1e4","webpack://media-platform-front/src/components/Modals/MediaModal.vue","webpack://media-platform-front/./src/components/Modals/MediaModal.vue?f46f","webpack://media-platform-front/./src/components/Modals/MediaModal.vue?7c4b","webpack://media-platform-front/./src/components/NetworkingChat/index.vue","webpack://media-platform-front/src/components/NetworkingChat/index.vue","webpack://media-platform-front/./src/components/NetworkingChat/index.vue?61c1","webpack://media-platform-front/./src/components/NetworkingChat/index.vue?5125","webpack://media-platform-front/./src/components/Toasts/IndustryToastManager.vue","webpack://media-platform-front/src/components/Toasts/IndustryToastManager.vue","webpack://media-platform-front/./src/components/Toasts/IndustryToastManager.vue?b052","webpack://media-platform-front/./src/components/Toasts/IndustryToastManager.vue?a570","webpack://media-platform-front/./src/components/Toasts/NewVersionToast.vue","webpack://media-platform-front/src/components/Toasts/NewVersionToast.vue","webpack://media-platform-front/./src/components/Toasts/NewVersionToast.vue?fe35","webpack://media-platform-front/./src/components/Toasts/NewVersionToast.vue?87d3","webpack://media-platform-front/./src/layout/Footer/Footer.vue","webpack://media-platform-front/src/layout/Footer/Footer.vue","webpack://media-platform-front/./src/layout/Footer/Footer.vue?9a21","webpack://media-platform-front/./src/layout/Footer/Footer.vue?77f0","webpack://media-platform-front/./src/layout/Navbar/Navbar.vue","webpack://media-platform-front/./src/layout/Navbar/TakeQuizzWidget.vue","webpack://media-platform-front/src/layout/Navbar/TakeQuizzWidget.vue","webpack://media-platform-front/./src/layout/Navbar/TakeQuizzWidget.vue?52b7","webpack://media-platform-front/./src/layout/Navbar/TakeQuizzWidget.vue?e990","webpack://media-platform-front/./src/layout/Navbar/CrossLinkWidget.vue","webpack://media-platform-front/src/layout/Navbar/CrossLinkWidget.vue","webpack://media-platform-front/./src/layout/Navbar/CrossLinkWidget.vue?936c","webpack://media-platform-front/./src/layout/Navbar/CrossLinkWidget.vue?bdca","webpack://media-platform-front/./src/mixins/openModalMixin.js","webpack://media-platform-front/./src/mixins/toursManagerMixin.js","webpack://media-platform-front/src/layout/Navbar/Navbar.vue","webpack://media-platform-front/./src/layout/Navbar/Navbar.vue?c51b","webpack://media-platform-front/./src/layout/Navbar/Navbar.vue?111d","webpack://media-platform-front/src/layout/EventWrapper.vue","webpack://media-platform-front/./src/layout/EventWrapper.vue?0839","webpack://media-platform-front/./src/layout/EventWrapper.vue?6605","webpack://media-platform-front/./src/layout/PartnerWrapper.vue","webpack://media-platform-front/src/layout/PartnerWrapper.vue","webpack://media-platform-front/./src/layout/PartnerWrapper.vue?ed39","webpack://media-platform-front/./src/layout/PartnerWrapper.vue?fe3c","webpack://media-platform-front/./src/services/eventConfig.js","webpack://media-platform-front/./src/views/MobileApp/Interactivity.vue","webpack://media-platform-front/./src/components/Blocks/Interactivity.vue","webpack://media-platform-front/src/components/Blocks/Interactivity.vue","webpack://media-platform-front/./src/components/Blocks/Interactivity.vue?5417","webpack://media-platform-front/./src/components/Blocks/Interactivity.vue?d432","webpack://media-platform-front/src/views/MobileApp/Interactivity.vue","webpack://media-platform-front/./src/views/MobileApp/Interactivity.vue?d0da","webpack://media-platform-front/./src/views/MobileApp/Interactivity.vue?086f","webpack://media-platform-front/./src/views/MobileApp/InteractivityDemo.vue","webpack://media-platform-front/src/views/MobileApp/InteractivityDemo.vue","webpack://media-platform-front/./src/views/MobileApp/InteractivityDemo.vue?e0ca","webpack://media-platform-front/./src/views/MobileApp/InteractivityDemo.vue?8bb0","webpack://media-platform-front/./src/views/MyProgramme/Overview.vue","webpack://media-platform-front/./src/components/Banners/EscBanners.vue","webpack://media-platform-front/src/components/Banners/EscBanners.vue","webpack://media-platform-front/./src/components/Banners/EscBanners.vue?6084","webpack://media-platform-front/./src/components/Banners/EscBanners.vue?22e7","webpack://media-platform-front/./src/components/Banners/IndustryBanners.vue","webpack://media-platform-front/src/components/Banners/IndustryBanners.vue","webpack://media-platform-front/./src/components/Banners/IndustryBanners.vue?dbd1","webpack://media-platform-front/./src/components/Banners/IndustryBanners.vue?2d78","webpack://media-platform-front/./src/components/Blocks/RecommendationBlock.vue","webpack://media-platform-front/src/components/Blocks/RecommendationBlock.vue","webpack://media-platform-front/./src/components/Blocks/RecommendationBlock.vue?2b22","webpack://media-platform-front/./src/components/Blocks/RecommendationBlock.vue?80ee","webpack://media-platform-front/./src/views/MyProgramme/components/OverviewTabs.vue","webpack://media-platform-front/./src/components/Blocks/ListSessionBlock.vue","webpack://media-platform-front/./src/components/Cards/ListSessionCard.vue","webpack://media-platform-front/src/components/Cards/ListSessionCard.vue","webpack://media-platform-front/./src/components/Cards/ListSessionCard.vue?584e","webpack://media-platform-front/./src/components/Cards/ListSessionCard.vue?88ea","webpack://media-platform-front/src/components/Blocks/ListSessionBlock.vue","webpack://media-platform-front/./src/components/Blocks/ListSessionBlock.vue?c36e","webpack://media-platform-front/./src/components/Blocks/ListSessionBlock.vue?e9b5","webpack://media-platform-front/src/views/MyProgramme/components/OverviewTabs.vue","webpack://media-platform-front/./src/views/MyProgramme/components/OverviewTabs.vue?692a","webpack://media-platform-front/./src/views/MyProgramme/components/OverviewTabs.vue?d5ae","webpack://media-platform-front/src/views/MyProgramme/Overview.vue","webpack://media-platform-front/./src/views/MyProgramme/Overview.vue?4b8c","webpack://media-platform-front/./src/views/MyProgramme/Overview.vue?3121","webpack://media-platform-front/./src/views/Networking/NetworkingMessages.vue","webpack://media-platform-front/./src/components/NetworkingConsent/index.vue","webpack://media-platform-front/src/components/NetworkingConsent/index.vue","webpack://media-platform-front/./src/components/NetworkingConsent/index.vue?b0f0","webpack://media-platform-front/./src/components/NetworkingConsent/index.vue?323c","webpack://media-platform-front/./src/components/Widgets/NetworkingNoAccessWidget.vue","webpack://media-platform-front/src/components/Widgets/NetworkingNoAccessWidget.vue","webpack://media-platform-front/./src/components/Widgets/NetworkingNoAccessWidget.vue?05e3","webpack://media-platform-front/./src/components/Widgets/NetworkingNoAccessWidget.vue?f834","webpack://media-platform-front/src/views/Networking/NetworkingMessages.vue","webpack://media-platform-front/./src/views/Networking/NetworkingMessages.vue?c347","webpack://media-platform-front/./src/views/Networking/NetworkingMessages.vue?ed41","webpack://media-platform-front/./src/views/Networking/NetworkingSearch.vue","webpack://media-platform-front/src/views/Networking/NetworkingSearch.vue","webpack://media-platform-front/./src/views/Networking/NetworkingSearch.vue?ee9b","webpack://media-platform-front/./src/views/Networking/NetworkingSearch.vue?fcd9","webpack://media-platform-front/./src/views/Partner/Health.vue","webpack://media-platform-front/src/views/Partner/Health.vue","webpack://media-platform-front/./src/views/Partner/Health.vue?41eb","webpack://media-platform-front/./src/views/Partner/Health.vue?6c05","webpack://media-platform-front/./src/views/Partner/RegistrationStatus.vue","webpack://media-platform-front/src/views/Partner/RegistrationStatus.vue","webpack://media-platform-front/./src/views/Partner/RegistrationStatus.vue?e76d","webpack://media-platform-front/./src/views/Partner/RegistrationStatus.vue?229f","webpack://media-platform-front/./src/views/Partner/Media/Video.vue","webpack://media-platform-front/./src/components/Players/BrightcovePartnerPlayer.vue","webpack://media-platform-front/src/components/Players/BrightcovePartnerPlayer.vue","webpack://media-platform-front/./src/components/Players/BrightcovePartnerPlayer.vue?589b","webpack://media-platform-front/./src/components/Players/BrightcovePartnerPlayer.vue?fdb4","webpack://media-platform-front/src/views/Partner/Media/Video.vue","webpack://media-platform-front/./src/views/Partner/Media/Video.vue?7b50","webpack://media-platform-front/./src/views/Partner/Media/Video.vue?15fc","webpack://media-platform-front/./src/views/Partner/Media/Resources.vue","webpack://media-platform-front/src/views/Partner/Media/Resources.vue","webpack://media-platform-front/./src/views/Partner/Media/Resources.vue?f566","webpack://media-platform-front/./src/views/Partner/Media/Resources.vue?3d66","webpack://media-platform-front/./src/views/Programme/Overview.vue","webpack://media-platform-front/./src/components/Search/Search.vue","webpack://media-platform-front/./src/components/Blocks/SearchResultsBlock.vue","webpack://media-platform-front/./src/components/Search/SearchResultsCards.vue","webpack://media-platform-front/./src/components/Cards/SessionResultCard.vue","webpack://media-platform-front/src/components/Cards/SessionResultCard.vue","webpack://media-platform-front/./src/components/Cards/SessionResultCard.vue?5fc9","webpack://media-platform-front/./src/components/Cards/SessionResultCard.vue?b99a","webpack://media-platform-front/./src/components/Cards/SpeakerResultCard.vue","webpack://media-platform-front/src/components/Cards/SpeakerResultCard.vue","webpack://media-platform-front/./src/components/Cards/SpeakerResultCard.vue?b025","webpack://media-platform-front/./src/components/Cards/SpeakerResultCard.vue?0def","webpack://media-platform-front/./src/components/Cards/AbstractResultCard.vue","webpack://media-platform-front/src/components/Cards/AbstractResultCard.vue","webpack://media-platform-front/./src/components/Cards/AbstractResultCard.vue?20ef","webpack://media-platform-front/./src/components/Cards/AbstractResultCard.vue?6379","webpack://media-platform-front/./src/components/Cards/IndustryStandResultCard.vue","webpack://media-platform-front/src/components/Cards/IndustryStandResultCard.vue","webpack://media-platform-front/./src/components/Cards/IndustryStandResultCard.vue?b2f1","webpack://media-platform-front/./src/components/Cards/IndustryStandResultCard.vue?9389","webpack://media-platform-front/./src/components/Modals/AbstractModal.vue","webpack://media-platform-front/src/components/Modals/AbstractModal.vue","webpack://media-platform-front/./src/components/Modals/AbstractModal.vue?b06c","webpack://media-platform-front/./src/components/Modals/AbstractModal.vue?990e","webpack://media-platform-front/src/components/Search/SearchResultsCards.vue","webpack://media-platform-front/./src/components/Search/SearchResultsCards.vue?19cf","webpack://media-platform-front/./src/components/Search/SearchResultsCards.vue?6ee4","webpack://media-platform-front/./src/components/Search/SearchResultsTimeline.vue","webpack://media-platform-front/src/components/Search/SearchResultsTimeline.vue","webpack://media-platform-front/./src/components/Search/SearchResultsTimeline.vue?d6d8","webpack://media-platform-front/./src/components/Search/SearchResultsTimeline.vue?5483","webpack://media-platform-front/./src/components/Search/SearchResultsCalendar.vue","webpack://media-platform-front/src/components/Search/SearchResultsCalendar.vue","webpack://media-platform-front/./src/components/Search/SearchResultsCalendar.vue?a0aa","webpack://media-platform-front/./src/components/Search/SearchResultsCalendar.vue?16d5","webpack://media-platform-front/src/components/Blocks/SearchResultsBlock.vue","webpack://media-platform-front/./src/components/Blocks/SearchResultsBlock.vue?8159","webpack://media-platform-front/./src/components/Blocks/SearchResultsBlock.vue?43e2","webpack://media-platform-front/src/components/Search/Search.vue","webpack://media-platform-front/./src/components/Search/Search.vue?9452","webpack://media-platform-front/./src/components/Search/Search.vue?5f7d","webpack://media-platform-front/src/views/Programme/Overview.vue","webpack://media-platform-front/./src/views/Programme/Overview.vue?9df8","webpack://media-platform-front/./src/views/Programme/Overview.vue?fded","webpack://media-platform-front/./src/views/Faculty/Overview.vue","webpack://media-platform-front/src/views/Faculty/Overview.vue","webpack://media-platform-front/./src/views/Faculty/Overview.vue?95ca","webpack://media-platform-front/./src/views/Faculty/Overview.vue?c45f","webpack://media-platform-front/./src/views/SimuVillage/SimuVillage.vue","webpack://media-platform-front/src/views/SimuVillage/SimuVillage.vue","webpack://media-platform-front/./src/views/SimuVillage/SimuVillage.vue?f7a5","webpack://media-platform-front/./src/views/SimuVillage/SimuVillage.vue?bfbe","webpack://media-platform-front/./src/views/SimuVillage/SimuVillageHost.vue","webpack://media-platform-front/./src/components/Blocks/AccessDeniedBlock.vue","webpack://media-platform-front/./src/components/Blocks/AccessDeniedBlock.vue?6072","webpack://media-platform-front/src/views/SimuVillage/SimuVillageHost.vue","webpack://media-platform-front/./src/views/SimuVillage/SimuVillageHost.vue?2405","webpack://media-platform-front/./src/views/SimuVillage/SimuVillageHost.vue?e1b4","webpack://media-platform-front/./src/views/SimuVillage/SimuVillageHostAdmin.vue","webpack://media-platform-front/src/views/SimuVillage/SimuVillageHostAdmin.vue","webpack://media-platform-front/./src/views/SimuVillage/SimuVillageHostAdmin.vue?5353","webpack://media-platform-front/./src/views/SimuVillage/SimuVillageHostAdmin.vue?7e44","webpack://media-platform-front/./src/views/Abstract/Overview.vue","webpack://media-platform-front/src/views/Abstract/Overview.vue","webpack://media-platform-front/./src/views/Abstract/Overview.vue?2109","webpack://media-platform-front/./src/views/Abstract/Overview.vue?3912","webpack://media-platform-front/./src/views/OnDemand/Overview.vue","webpack://media-platform-front/./src/views/OnDemand/OnDemand.vue","webpack://media-platform-front/./src/components/Blocks/SessionsBlock.vue","webpack://media-platform-front/src/components/Blocks/SessionsBlock.vue","webpack://media-platform-front/./src/components/Blocks/SessionsBlock.vue?5d3e","webpack://media-platform-front/./src/components/Blocks/SessionsBlock.vue?4c04","webpack://media-platform-front/src/views/OnDemand/OnDemand.vue","webpack://media-platform-front/./src/views/OnDemand/OnDemand.vue?eb97","webpack://media-platform-front/./src/views/OnDemand/OnDemand.vue?4155","webpack://media-platform-front/src/views/OnDemand/Overview.vue","webpack://media-platform-front/./src/views/OnDemand/Overview.vue?8cb7","webpack://media-platform-front/./src/views/OnDemand/Overview.vue?3431","webpack://media-platform-front/./src/views/Programme/Schedule.vue","webpack://media-platform-front/./src/components/Timeline/Schedule.vue","webpack://media-platform-front/src/components/Timeline/Schedule.vue","webpack://media-platform-front/./src/components/Timeline/Schedule.vue?0068","webpack://media-platform-front/./src/components/Timeline/Schedule.vue?de9d","webpack://media-platform-front/src/views/Programme/Schedule.vue","webpack://media-platform-front/./src/views/Programme/Schedule.vue?b653","webpack://media-platform-front/./src/views/Programme/Schedule.vue?84fb","webpack://media-platform-front/./src/views/Programme/SessionDetails.vue","webpack://media-platform-front/src/views/Programme/SessionDetails.vue","webpack://media-platform-front/./src/views/Programme/SessionDetails.vue?f1d7","webpack://media-platform-front/./src/views/Programme/SessionDetails.vue?16f8","webpack://media-platform-front/./src/views/Programme/SpeakerDetails.vue","webpack://media-platform-front/src/views/Programme/SpeakerDetails.vue","webpack://media-platform-front/./src/views/Programme/SpeakerDetails.vue?c01c","webpack://media-platform-front/./src/views/Programme/SpeakerDetails.vue?18f5","webpack://media-platform-front/./src/views/Venue/VenueOverview.vue","webpack://media-platform-front/src/views/Venue/VenueOverview.vue","webpack://media-platform-front/./src/views/Venue/VenueOverview.vue?e702","webpack://media-platform-front/./src/views/Venue/VenueOverview.vue?9f23","webpack://media-platform-front/./src/views/Home/Home.vue","webpack://media-platform-front/./src/components/Widgets/MosaicWidget.vue","webpack://media-platform-front/src/components/Widgets/MosaicWidget.vue","webpack://media-platform-front/./src/components/Widgets/MosaicWidget.vue?52c5","webpack://media-platform-front/./src/components/Widgets/MosaicWidget.vue?e00f","webpack://media-platform-front/./src/views/Home/components/HomeTabs.vue","webpack://media-platform-front/./src/components/Blocks/ChannelSessionsBlock.vue","webpack://media-platform-front/src/components/Blocks/ChannelSessionsBlock.vue","webpack://media-platform-front/./src/components/Blocks/ChannelSessionsBlock.vue?da34","webpack://media-platform-front/./src/components/Blocks/ChannelSessionsBlock.vue?3d2f","webpack://media-platform-front/src/views/Home/components/HomeTabs.vue","webpack://media-platform-front/./src/views/Home/components/HomeTabs.vue?2937","webpack://media-platform-front/./src/views/Home/components/HomeTabs.vue?c014","webpack://media-platform-front/src/views/Home/Home.vue","webpack://media-platform-front/./src/views/Home/Home.vue?3aff","webpack://media-platform-front/./src/views/Home/Home.vue?5a52","webpack://media-platform-front/./src/views/MobileApp/Resource.vue","webpack://media-platform-front/./src/components/MobileApp/Channel.vue","webpack://media-platform-front/src/components/MobileApp/Channel.vue","webpack://media-platform-front/./src/components/MobileApp/Channel.vue?9247","webpack://media-platform-front/./src/components/MobileApp/Channel.vue?d5aa","webpack://media-platform-front/src/views/MobileApp/Resource.vue","webpack://media-platform-front/./src/views/MobileApp/Resource.vue?128c","webpack://media-platform-front/./src/views/MobileApp/Resource.vue?85aa","webpack://media-platform-front/./src/router/middlewarePipeline.js","webpack://media-platform-front/./src/router/index.js","webpack://media-platform-front/./src/layout/App.vue","webpack://media-platform-front/./src/mixins/refreshPageMixin.js","webpack://media-platform-front/src/layout/App.vue","webpack://media-platform-front/./src/layout/App.vue?cd80","webpack://media-platform-front/./src/layout/App.vue?0ea8","webpack://media-platform-front/./src/main.js","webpack://media-platform-front/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://media-platform-front/./src/assets/images/congress/ sync ^\\.\\/.*\\/.*\\.png$","webpack://media-platform-front/./src/assets/images/congress/ sync ^\\.\\/.*\\/venue\\/overview\\.png$","webpack://media-platform-front/webpack/bootstrap","webpack://media-platform-front/webpack/runtime/chunk loaded","webpack://media-platform-front/webpack/runtime/compat get default export","webpack://media-platform-front/webpack/runtime/define property getters","webpack://media-platform-front/webpack/runtime/global","webpack://media-platform-front/webpack/runtime/harmony module decorator","webpack://media-platform-front/webpack/runtime/hasOwnProperty shorthand","webpack://media-platform-front/webpack/runtime/make namespace object","webpack://media-platform-front/webpack/runtime/node module decorator","webpack://media-platform-front/webpack/runtime/publicPath","webpack://media-platform-front/webpack/runtime/jsonp chunk loading","webpack://media-platform-front/webpack/startup"],"sourcesContent":["export const constants = {\r\n // LocalStorage\r\n LOCAL_USER_KEY: 'user',\r\n LOCAL_TOURS_KEY: 'tours',\r\n LOCAL_NOTIFS_HISTORY_KEY: 'notifs',\r\n\r\n // MediaAPI\r\n MEDIA_API_USER_BADGES_ENDPOINT: 'User/Badges',\r\n MEDIA_API_USER_HASACCESS_ENDPOINT: 'User/HasAccess',\r\n MEDIA_API_USER_DECRYPT_ENDPOINT: '/User/Decrypt',\r\n MEDIA_API_USER_CHAT_CONFIG_ENDPOINT: 'User/ParticipantChatConfig',\r\n MEDIA_API_USER_INFO_ENDPOINT: 'User/userInfo',\r\n MEDIA_API_USER_REGTYPE_ENDPOINT: 'User/registration-type/{eventId}',\r\n\r\n MEDIA_API_LIVE_SESSIONS_LIST_ENDPOINT: 'Sessions/Live',\r\n MEDIA_API_SESSIONS_TIMELINE_ENDPOINT: 'Sessions/TimeLine',\r\n MEDIA_API_REPLAY_SESSIONS_LIST_ENDPOINT: 'Sessions/Replay',\r\n MEDIA_API_SESSION_DETAILS_ENDPOINT: 'Sessions/{SessionId}',\r\n MEDIA_API_SESSION_EXTERNAL_LINK_ENDPOINT: 'Sessions/{SessionId}/ExternalLink',\r\n MEDIA_API_NEXT_SESSION_DETAILS_ENDPOINT: 'Sessions/{SessionId}/Next',\r\n MEDIA_API_SESSION_MORE_DETAILS_ENDPOINT: 'Sessions/{SessionId}/Details',\r\n MEDIA_API_SCIENTIFIC_SESSION_DETAILS_ENDPOINT: 'Sessions/{SessionId}/ScientificSession',\r\n MEDIA_API_SESSION_DETAILS_BY_CHANNEL_ENDPOINT: 'Sessions/Channels/{ChannelId}',\r\n MEDIA_API_ALL_SESSION_ELASTIC_ENDPOINT: 'search/search',\r\n MEDIA_API_SPEAKER_MORE_DETAILS_ENDPOINT: 'Persons/Details',\r\n MEDIA_API_PRESENTATION_ABSTRACT_ENDPOINT: 'Presentation/{PresentationId}/Abstract',\r\n ESC365_API_SCIENTIFIC_CONTENT_SEARCH:\r\n 'Search/Search?fulltextquery={fulltextquery}&page={page}&eventId={eventId}&escolEventId={escolEventId}&docType={docType}&sort={sort}',\r\n ESC365_API_SCIENTIFIC_CONTENT_SEARCH_SPEAKERS: 'Search/Contributors?fulltextquery={fulltextquery}&page={page}&eventId={eventId}&sort={sort}',\r\n ESC365_API_SCIENTIFIC_CONTENT_SEARCH_PROGRAMME:\r\n 'Search/Programme?fulltextquery={fulltextquery}&page={page}&eventId={eventId}&escolEventId={escolEventId}&docType={docType}&sort={sort}',\r\n ESC365_API_SCIENTIFIC_CONTENT_SEARCH_FACULTY:\r\n 'Search/Faculty?fulltextquery={fulltextquery}&page={page}&eventId={eventId}&escolEventId={escolEventId}&docType={docType}&sort={sort}',\r\n ESC365_API_SCIENTIFIC_CONTENT_SEARCH_ABSTRACT:\r\n 'Search/Abtract?fulltextquery={fulltextquery}&page={page}&eventId={eventId}&escolEventId={escolEventId}&docType={docType}&sort={sort}',\r\n MEDIA_API_TIMELINE_TIME_ENDPOINT: 'TimeLine/Time',\r\n MEDIA_API_TIMELINE_TIME_TO_DISPLAY_ENDPOINT: 'TimeLine/{EventId}/TimeToDisplay',\r\n MEDIA_API_TIMELINE_DIGEST_ENDPOINT: 'TimeLine/Digest',\r\n MEDIA_API_TIMELINE_FULL_ENDPOINT: 'TimeLine/Full',\r\n MEDIA_API_TIMELINE_FULLV2_ENDPOINT: 'TimeLine/FullV2',\r\n MEDIA_API_TIMELINE_COMING_ENDPOINT: 'TimeLine/Coming',\r\n SESSION_ID_PREFIX: 'SESS',\r\n DIGITAL_SESSION_ID_PREFIX: 'S',\r\n MEDIA_API_CHANNELS_LIST_ENDPOINT: 'Channels/List',\r\n MEDIA_API_CHANNELS_LIST_OPTIONS_ENDPOINT: 'Channels/ListOptions',\r\n\r\n MEDIA_API_CONGRESS_CONFIG_ENDPOINT: 'Congress/Config',\r\n MEDIA_API_CONGRESS_BANNERS_ENDPOINT: 'Congress/{EventId}/Banners',\r\n MEDIA_API_CONGRESS_DAYS_ENDPOINT: 'Congress/{EventId}/Days',\r\n\r\n MEDIA_API_WORKSHOPS: 'Workshop/{eventId}',\r\n MEDIA_API_WORKSHOP_SLOTS: 'Workshop/{eventId}/Slots',\r\n MEDIA_API_WORKSHOP_USER_SLOTS: 'Workshop/{eventId}/Slots/{escId}',\r\n MEDIA_API_CURRENT_WORKSHOP_SESSIONS: 'Workshop/{eventId}/Slots/current',\r\n MEDIA_API_ALL_WORKSHOP_BY_DATE: 'Workshop/{eventId}/Slots/date',\r\n\r\n MEDIA_API_NETWORKING_COUNTRIES_LIST: 'Networking/CountriesList',\r\n MEDIA_API_NETWORKING_SPECIALITIES_LIST: 'Networking/SpecialitiesList',\r\n MEDIA_API_NETWORKING_PARTICIPANTS: 'Networking/Participants',\r\n MEDIA_API_NETWORKING_GET_PARTICIPANT: 'Networking/Participants/{ParticipantId}',\r\n MEDIA_API_NETWORKING_GET_SIGNATURE: 'Networking/Signature',\r\n MEDIA_API_NETWORKING_ALTER_CHAT_AGREEMENT: 'Networking/AlterChatAgreement',\r\n\r\n MEDIA_API_LIST_FAVORITES_ENDPOINT: 'Favorites',\r\n MEDIA_API_ADD_FAVORITE_ENDPOINT: 'Favorites/Add',\r\n MEDIA_API_REMOVE_FAVORITE_ENDPOINT: 'Favorites/Remove',\r\n\r\n MEDIA_API_PARTNER_HASACCESS_ENDPOINT: 'Partner/HasAccess',\r\n MEDIA_API_PARTNER_GETVIDEO_ENDPOINT: 'Partner/GetVideo',\r\n MEDIA_API_PARTNER_GETREGISTRATIONSTATUS_ENDPOINT: 'Partner/RegistrationStatus',\r\n\r\n // Reco API (direct call to hurence endpoint removed)\r\n //RECO_API_USER_RECOMMENDATIONS_ENDPOINT: 'users/{UserId}/recommendations',\r\n\r\n // Reco\r\n ESC365_API_GET_USER_RECOMMENDATIONS: 'Recommendation/UserRecommendations?v=1',\r\n ESC365_API_GET_ITEM_RECOMMENDATIONS: 'Recommendation/ItemRecommendations?uniqId={uniqId}',\r\n\r\n // Load more take\r\n LOAD_MORE_SESSIONS_COUNT: 8,\r\n\r\n // Full Timeline\r\n CHANNELS_COUNT_BY_SLIDE: 3,\r\n //CHANNELS_COUNT_BY_SLIDE_POC: 5,\r\n STEP_SIZE_FACTOR: 22,\r\n\r\n // Named Routes\r\n ROUTE_HOME: 'home',\r\n ROUTE_PROGRAMME: 'programme',\r\n ROUTE_FACULTY: 'Faculty',\r\n ROUTE_ABSTRACT: 'abstract',\r\n ROUTE_ONDEMAND: 'Replay',\r\n ROUTE_SCHEDULE: 'schedule',\r\n ROUTE_SESSION_DETAILS: 'sessions/:sessionFurl',\r\n ROUTE_VIDEO: 'video',\r\n ROUTE_MY_PROGRAMME: 'my-programme',\r\n ROUTE_SIMULATION_VILLAGE: 'simulation-village',\r\n ROUTE_SIMULATION_VILLAGE_HOST: 'simulation-village-host',\r\n ROUTE_SIMULATION_VILLAGE_HOST_ADMIN: 'simulation-village-host-admin',\r\n ROUTE_SPEAKER_DETAILS: 'speakers/:speakerFurl',\r\n ROUTE_PARTNER_MEDIA_VIDEO: 'media/video',\r\n ROUTE_PARTNER_HEALTH: 'health',\r\n ROUTE_ZOOMS_LIST: 'zooms',\r\n ROUTE_NETWORKING_SEARCH: 'networking/search',\r\n ROUTE_NETWORKING_MESSAGES: 'networking/messages',\r\n ROUTE_NETWORKING_HOT_DISCUSSIONS: 'networking/hot-discussions',\r\n ROUTE_VENUE: 'venue-overview',\r\n ROUTE_LIVE: 'live',\r\n\r\n ROUTE_MOBILE_APP: 'mobile-app',\r\n ROUTE_MOBILE_APP_PRE_HOME: 'pre-home',\r\n ROUTE_MOBILE_APP_HAPPENING_NOW: 'happening-now',\r\n ROUTE_MOBILE_APP_INTERACTIVITY: 'interactivity',\r\n ROUTE_MOBILE_APP_INTERACTIVITY_DEMO: 'interactivity/demo',\r\n ROUTE_MOBILE_APP_RESOURCE: 'resource',\r\n\r\n // Event Location Types\r\n EVENT_LOCATION_ONSITE: 9601,\r\n EVENT_LOCATION_ONLINE: 9602,\r\n EVENT_LOCATION_HYBRID: 9603,\r\n\r\n HF_2022_EVENT_ID: 986,\r\n ACNAP_2022_EVENT_ID: 995,\r\n ESC_2022_EVENT_ID: 991,\r\n ESC_ASIA_2022_EVENT_ID: 1243,\r\n ACVC_2023_EVENT_ID: 1274,\r\n EHRA_2023_EVENT_ID: 1256,\r\n EACVI_2023_EVENT_ID: 1304,\r\n EAPC_2023_EVENT_ID: 1327,\r\n HF_2023_EVENT_ID: 1322,\r\n ACNAP_2023_EVENT_ID: 1546,\r\n ESC_2023_EVENT_ID: 1334,\r\n ACVC_2024_EVENT_ID: 2078,\r\n EHRA_2024_EVENT_ID: 2102,\r\n PREV_2024_EVENT_ID: 2113,\r\n ESC_2024_EVENT_ID: 2334,\r\n HF_2024_EVENT_ID: 2152,\r\n EE_2024_EVENT_ID: 2491,\r\n ICNC_2024_EVENT_ID: 2362,\r\n ACVC_2025_EVENT_ID: 2657,\r\n EHRA_2025_EVENT_ID: 2660,\r\n PREV_2025_EVENT_ID: 2661,\r\n ESC_2025_EVENT_ID: 2811,\r\n\r\n //Default Disclaimer\r\n INDUSTRY_DEFAULT_DISCLAIMER:\r\n 'This industry organised session does not necessarily reflect the opinion of the European Society of Cardiology. Please be aware that your profile information and details will be shared with the sponsor of the Industry Session you choose to view. When accessing an Industry Session, the following data will be shared with the corresponding industry: title, first name, family name, age, gender, country, state/province, email address and profile information.',\r\n\r\n //Download mobile app meta\r\n NO_BANNER_SMART_BANNER_META: [{ name: 'smartbanner:enabled-platforms', vmid: 'smartbanner:enabled-platforms', content: 'none' }],\r\n EHRA_2025_SMART_BANNER_META: [\r\n { name: 'smartbanner:title', vmid: 'smartbanner:title', content: 'Joining us in Vienna?' },\r\n { name: 'smartbanner:author', vmid: 'smartbanner:author', content: 'Download the EHRA 2025 mobile app' },\r\n { name: 'smartbanner:price', vmid: 'smartbanner:price', content: 'so that you have the schedule to hand' },\r\n { name: 'smartbanner:price-suffix-apple', vmid: 'smartbanner:price-suffix-apple', content: '.' },\r\n { name: 'smartbanner:price-suffix-google', vmid: 'smartbanner:price-suffix-google', content: '.' },\r\n { name: 'smartbanner:icon-apple', vmid: 'smartbanner:icon-apple', content: `${process.env.BASE_URL}img/events/2660/app-logo.png` },\r\n { name: 'smartbanner:icon-google', vmid: 'smartbanner:icon-google', content: `${process.env.BASE_URL}img/events/2660/app-logo.png` },\r\n { name: 'smartbanner:button', vmid: 'smartbanner:button', content: 'Download' },\r\n {\r\n name: 'smartbanner:button-url-apple',\r\n vmid: 'smartbanner:button-url-apple',\r\n content: 'https://apps.apple.com/ca/app/ehra-2025/id6742484912',\r\n },\r\n {\r\n name: 'smartbanner:button-url-google',\r\n vmid: 'smartbanner:button-url-google',\r\n content: 'https://play.google.com/store/apps/details?id=com.shapper.ehra2025',\r\n },\r\n { name: 'smartbanner:enabled-platforms', vmid: 'smartbanner:enabled-platforms', content: 'android,ios' },\r\n { name: 'smartbanner:close-label', vmid: 'smartbanner:close-label', content: 'Close' },\r\n { name: 'smartbanner:api', vmid: 'smartbanner:api', content: 'false' },\r\n { name: 'smartbanner:hide-path', vmid: 'smartbanner:hide-path', content: '/EHRA-Congress' },\r\n ],\r\n PREV_2025_SMART_BANNER_META: [\r\n { name: 'smartbanner:title', vmid: 'smartbanner:title', content: 'Joining us in Milan?' },\r\n { name: 'smartbanner:author', vmid: 'smartbanner:author', content: 'Download the ESC Preventive 2025 mobile app' },\r\n { name: 'smartbanner:price', vmid: 'smartbanner:price', content: 'so that you have the schedule to hand' },\r\n { name: 'smartbanner:price-suffix-apple', vmid: 'smartbanner:price-suffix-apple', content: '.' },\r\n { name: 'smartbanner:price-suffix-google', vmid: 'smartbanner:price-suffix-google', content: '.' },\r\n { name: 'smartbanner:icon-apple', vmid: 'smartbanner:icon-apple', content: `${process.env.BASE_URL}img/events/2661/app-logo.png` },\r\n { name: 'smartbanner:icon-google', vmid: 'smartbanner:icon-google', content: `${process.env.BASE_URL}img/events/2661/app-logo.png` },\r\n { name: 'smartbanner:button', vmid: 'smartbanner:button', content: 'Download' },\r\n {\r\n name: 'smartbanner:button-url-apple',\r\n vmid: 'smartbanner:button-url-apple',\r\n content: 'https://apps.apple.com/ca/app/esc-preventive-cardiology-2025/id6742488804',\r\n },\r\n {\r\n name: 'smartbanner:button-url-google',\r\n vmid: 'smartbanner:button-url-google',\r\n content: 'https://play.google.com/store/apps/details?id=com.shapper.preventive2025',\r\n },\r\n { name: 'smartbanner:enabled-platforms', vmid: 'smartbanner:enabled-platforms', content: 'android,ios' },\r\n { name: 'smartbanner:close-label', vmid: 'smartbanner:close-label', content: 'Close' },\r\n { name: 'smartbanner:api', vmid: 'smartbanner:api', content: 'false' },\r\n { name: 'smartbanner:hide-path', vmid: 'smartbanner:hide-path', content: '/Preventive-Cardiology' },\r\n ],\r\n};\r\n","import { constants } from 'src/constants';\r\nimport { MediaApiService } from 'src/services/media-api';\r\nimport { store } from 'src/store';\r\nimport { LOGIN, LOGOUT } from 'src/store/actions';\r\nimport Cookies from 'js-cookie';\r\n\r\nexport function getUser() {\r\n try {\r\n return JSON.parse(window.localStorage.getItem(constants.LOCAL_USER_KEY));\r\n } catch (e) {\r\n return null;\r\n }\r\n}\r\n\r\nexport function saveUser(user) {\r\n try {\r\n window.localStorage.setItem(constants.LOCAL_USER_KEY, JSON.stringify(user));\r\n } catch (e) {\r\n return;\r\n }\r\n}\r\n\r\nexport function destroyUser() {\r\n try {\r\n window.localStorage.removeItem(constants.LOCAL_USER_KEY);\r\n } catch (e) {\r\n return;\r\n }\r\n}\r\n\r\nexport function login(backUrl, forceCheckAccess) {\r\n //window.location = process.env.VUE_APP_SSO_URL.concat(`?ReturnUrl=${encodeURI(backUrl)}`);\r\n //console.log('login ' + forceSalesforceCheckAccess);\r\n\r\n //add forceCheckAccess query parameter\r\n //Diabled for modal rework\r\n forceCheckAccess = false;\r\n if (forceCheckAccess) {\r\n var url = new URL(backUrl);\r\n url.searchParams.append('fca', 1);\r\n backUrl = url.href;\r\n }\r\n //Redirect to login\r\n window.location = process.env.VUE_APP_SSO_URL.concat(`?ReturnUrl=${encodeURIComponent(backUrl)}`);\r\n}\r\n\r\nexport function redirectNoAccess(redirectUrl, backUrl) {\r\n window.location = redirectUrl.concat(`&ReturnUrl=${encodeURIComponent(backUrl)}`);\r\n}\r\n\r\nexport function redirectMaintenance() {\r\n window.location = 'https://www.escardio.org/static-resources/';\r\n}\r\n\r\nexport function redirectErrorNotFound() {\r\n window.location = `${window.location.origin}/error404.html`;\r\n}\r\n\r\nexport function redirectErrorNoAccess() {\r\n window.location = `${window.location.origin}/errorNoAccess.html`;\r\n}\r\n\r\nexport function redirectError() {\r\n window.location = `${window.location.origin}/error.html`;\r\n}\r\n\r\nexport function register(/*backUrl*/) {\r\n window.location = store.state.app.registrationLink; //.concat(`&forceregister=1&originurl=${encodeURIComponent(backUrl)}`);\r\n}\r\n\r\nexport function refreshAccess(backUrl) {\r\n window.location = process.env.VUE_APP_SF_CHECK_ACCESS_URL.concat(`?originurl=${encodeURIComponent(backUrl)}`);\r\n}\r\n\r\nexport function logout(backUrl) {\r\n window.location = process.env.VUE_APP_SLO_URL.concat(`?ReturnUrl=${backUrl}`);\r\n}\r\n\r\nexport function hasExpired() {\r\n const user = getUser();\r\n return !user || new Date().getTime() / 1000 >= parseInt(user.expires) - 300;\r\n}\r\n\r\nexport async function checkAuthentication() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n if (urlParams.has('token')) {\r\n // If a token is in query string, dispatch login action\r\n await store.dispatch(LOGIN, urlParams);\r\n }\r\n\r\n const expired = hasExpired();\r\n if (expired) await store.dispatch(LOGOUT);\r\n\r\n const loggedIn = getUser();\r\n const backUrl = window.location.href;\r\n\r\n if (expired || !loggedIn) {\r\n login(backUrl);\r\n }\r\n\r\n MediaApiService.setHeader();\r\n\r\n /*\r\n return new Promise((resolve, reject) => {\r\n // [ ... ]\r\n \r\n checkHasAccess(loggedIn, backUrl).then((hasAccess) => {\r\n if (hasAccess)\r\n return resolve();\r\n else\r\n return reject(false);\r\n });\r\n });\r\n */\r\n}\r\n\r\nexport function processEncryptedEscID(eescid) {\r\n if (eescid) Cookies.set('eescid', eescid);\r\n}\r\n\r\n/*\r\nexport function loginAndCheckAccessFallback(backUrl) {\r\n //console.log('loginAndCheckAccessFallback backUrl'+backUrl);\r\n //console.log('loginAndCheckAccessFallback registrationLink'+store.state.app.registrationLink);\r\n //console.log('loginAndCheckAccessFallback '+encodeURIComponent(backUrl+'&fca=1'));\r\n\r\n //window.location = process.env.VUE_APP_SSO_URL.concat(`?ReturnUrl=${encodeURIComponent(backUrl+'&fca=1')}`);\r\n\r\n \r\n //Case 1: login sf redirect login platform (hpa lost)\r\n //backUrl = process.env.VUE_APP_SSO_URL.concat(`?ReturnUrl=${encodeURIComponent(backUrl)}`);\r\n //window.location = store.state.app.registrationLink.concat(`&forceregister=0&originurl=${encodeURIComponent(backUrl)}`);\r\n \r\n\r\n //Case 2: login platform redirect sf\r\n //backUrl = store.state.app.registrationLink.concat(`&forceregister=0&originUrl=${encodeURIComponent(backUrl)}`);\r\n //window.location = process.env.VUE_APP_SSO_URL.concat(`?ReturnUrl=${encodeURIComponent(backUrl)}`);\r\n\r\n //Case 3: login platform redirect platform force check access\r\n /backUrl = backUrl + '&fca=1';\r\n //window.location = process.env.VUE_APP_SSO_URL.concat(`?ReturnUrl=${encodeURIComponent(backUrl)}`);\r\n\r\n //backUrl = store.state.app.registrationLink.concat(`&originUrl=${encodeURIComponent(backUrl)}`);\r\n //window.location = process.env.VUE_APP_SSO_URL.concat(`?ReturnUrl=${encodeURIComponent(backUrl)}`);\r\n}\r\n*/\r\n\r\n/*\r\nexport async function checkHasAccess(eventId, loggedIn, backUrl) {\r\n //console.log('checkHasAccess');\r\n //console.debug(`%ccheckAccess eventID: eventId`,consoleColors.misc);\r\n //if (!user) user = getUser();\r\n let hasAccess = false;\r\n\r\n const enableFallback = process.env.VUE_APP_HAS_ACCESS_TOKEN_FALLBACK === 'true';\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n var hasAccessResponse = await MediaApiService.userHasAccess(eventId);\r\n if (hasAccessResponse && hasAccessResponse.data) {\r\n hasAccess = hasAccessResponse.data.hasAccess;\r\n }\r\n\r\n if (!hasAccess && enableFallback) {\r\n hasAccess = await checkQueryPlatformAccessFallback(loggedIn, hasAccessResponse.data.returnUrl, backUrl);\r\n // QueryHelper.removeCheckQueryPlatformAccessFallbackProcessParameters();\r\n }\r\n\r\n if (!hasAccess) {\r\n if (urlParams.has('hpa')) {\r\n redirectErrorNoAccess();\r\n }\r\n else {\r\n redirectNoAccess(hasAccessResponse.data.returnUrl, backUrl);\r\n }\r\n }\r\n\r\n return hasAccess;\r\n}\r\n\r\nexport async function checkQueryPlatformAccessFallback(user, checkAccessurl, backUrl) {\r\n //console.log('checkQueryPlatformAccessFallback ' + checkAccessurl + ' ' + backUrl);\r\n return checkQueryPlatformAccessFallbackToken(user, checkAccessurl, backUrl);\r\n}\r\n\r\nexport async function checkQueryPlatformAccessFallbackToken(user, forceLogoutOnDiscrepency, checkAccessurl, backUrl) {\r\n //console.log('checkQueryPlatformAccessFallback ' + checkAccessurl + ' ' + backUrl);\r\n let hasAccess = store.state.auth.hasAccess;\r\n if (!user) user = getUser();\r\n if (user && user.escId) {\r\n //let hasAccess = user.hasAccess;\r\n if (!hasAccess) {\r\n let hpa; //decoded hpa token\r\n let qhpa = QueryHelper.getParameterByName('hpa', null); //query string encoded hpa token\r\n //console.log('qhpa ' + qhpa);\r\n\r\n if (qhpa) {\r\n let bhpa = user.escId;\r\n //platform hpa token \r\n //console.log('bhpa ' + bhpa);\r\n if (bhpa) {\r\n //Decode hpa token\r\n try {\r\n let dataHpa = await MediaApiService.decryptEscId(qhpa);\r\n //console.log('dataHpa ' + JSON.stringify(dataHpa));\r\n\r\n if (dataHpa && dataHpa.data) hpa = dataHpa.data.escId;\r\n\r\n //console.log('hpa ' + hpa);\r\n //hpa = atob(qhpa);\r\n }\r\n catch (atob_error) {\r\n //console.log('invalid shpa');\r\n //console.log(atob_error);\r\n }\r\n\r\n if (hpa === bhpa) {\r\n //console.log('access granted using hpa');\r\n //QueryHelper.removeCheckQueryPlatformAccessFallbackProcessParameters();\r\n hasAccess = true;\r\n trackAccessGranted(user,null);\r\n }\r\n else if (forceLogoutOnDiscrepency && hpa && bhpa && hpa !== bhpa) {\r\n //console.log('invalid hpa provided, force logout');\r\n destroyUser();\r\n if (checkAccessurl) {\r\n await logout(checkAccessurl.concat(`&originurl=${encodeURIComponent(backUrl)}`));\r\n }\r\n else {\r\n let newUrl = new URL(backUrl);\r\n newUrl.searchParams.delete('hpa');\r\n //console.log('force logout url ' + newUrl.href);\r\n await logout(newUrl.href);\r\n }\r\n }\r\n else {\r\n //console.log('access denied using hpa');\r\n trackAccessDenied(user,null);\r\n }\r\n }\r\n \r\n else {\r\n //console.log('no escid found');\r\n }\r\n \r\n }\r\n \r\n else {\r\n //console.log('no hpa found');\r\n }\r\n \r\n await store.commit(SET_HAS_ACCESS, hasAccess);\r\n }\r\n }\r\n return hasAccess;\r\n}\r\n\r\nexport async function checkAccess(user, forceRegister, backUrl, enableCheckAccessFromSalesforce) {\r\n console.debug(`%ccheckAccess eventID: ${store.state.app.eventId}`, consoleColors.misc);\r\n\r\n //const checkAcessProps = {user:user,forceRegister:forceRegister,backUrl:backUrl,enableCheckAccessFromSalesforce:enableCheckAccessFromSalesforce};\r\n //this.$appInsights?.trackEvent({ name: 'checkAccess', properties: checkAcessProps });\r\n\r\n //if (!user) user = getUser();\r\n //console.log('checkAccess user '+JSON.stringify(user));\r\n let hasAccess = store.state.auth.hasAccess;\r\n //console.log('checkAccess hasAccess: ' + hasAccess);\r\n if (!hasAccess) {\r\n const enableFallback = process.env.VUE_APP_HAS_ACCESS_TOKEN_FALLBACK === 'true';\r\n const eventId = store.state.app.eventId;\r\n var hasAccessResponse = await MediaApiService.userHasAccess(eventId);\r\n //console.log('hasAccessResponse ' + JSON.stringify(hasAccessResponse));\r\n if (hasAccessResponse && hasAccessResponse.data) {\r\n hasAccess = hasAccessResponse.data.hasAccess;\r\n await store.commit(SET_HAS_ACCESS, hasAccess);\r\n\r\n trackAccessGranted(null,eventId);\r\n }\r\n //console.log('enableFallback ' + enableFallback);\r\n if (!hasAccess && enableFallback && enableCheckAccessFromSalesforce) {\r\n await checkAccessFromSalesforce(hasAccessResponse.data.returnUrl, forceRegister, backUrl);\r\n }\r\n }\r\n}\r\n\r\nexport async function checkAccessFromSalesforce(checkAccessFromSalesforceUrl, forceRegister, backUrl) {\r\n //console.log('checkAccessFromSalesforce link: ' + store.state.app.registrationLink);\r\n //console.log('checkAccessFromSalesforce backUrl: ' + backUrl);\r\n //let registrationurl = store.state.app.registrationLink;\r\n //registrationurl = 'https://devpartial-escardio--community.cs173.force.com/ESCCongressCheckRegistration?eventid=a3v3E000000EZbCQAW';\r\n window.location = checkAccessFromSalesforceUrl.concat(`&forceregister=${forceRegister ? \"1\" : \"0\"}&originurl=${encodeURIComponent(backUrl)}`);\r\n //window.location = store.state.app.registrationLink.concat(`&returnUrl=${encodeURIComponent(backUrl)}`);\r\n}\r\n*/\r\n\r\n/*\r\nfunction trackAccessGranted(user,eventId)\r\n{\r\n if(!user) user = getUser();\r\n if(!eventId) eventId = store.state.app.eventId;\r\n //const checkAcessProps = {user:user,event:eventId};\r\n //this.$appInsights?.trackEvent({ name: 'AccessGranted', properties: checkAcessProps });\r\n}\r\n\r\nfunction trackAccessDenied(user,eventId)\r\n{\r\n if(!user) user = getUser();\r\n if(!eventId) eventId = store.state.app.eventId;\r\n //const checkAcessProps = {user:user,event:eventId};\r\n //this.$appInsights?.trackEvent({ name: 'AccessDenied', properties: checkAcessProps });\r\n}\r\n*/\r\n\r\n/*\r\nexport async function refreshHasAccessFromFallBackUrl() {\r\n //console.log('refreshHasAccessFromFallBackUrl link: ' + store.state.app.registrationLink);\r\n let dataHpa = await MediaApiService.userHasAccessFallBack(store.state.app.registrationLink);\r\n //console.log('dataHpa ' + JSON.stringify(dataHpa));\r\n\r\n //window.location = store.state.app.registrationLink.concat(`&returnUrl=${encodeURIComponent(backUrl)}`);\r\n}\r\n*/\r\n","export const LOGIN = 'login';\r\nexport const LOGOUT = 'logout';\r\nexport const CHECK_AUTH = 'checkAuth';\r\n\r\nexport const TOGGLE_TIMELINE = 'toggleTimeline';\r\n\r\nexport const ENABLE_POOLING = 'enablePooling';\r\nexport const DISABLE_POOLING = 'disablePooling';\r\n\r\nexport const OPEN_MEDIA_MODAL = 'openMediaModal';\r\nexport const CLOSE_MEDIA_MODAL = 'closeMediaModal';\r\n\r\nexport const OPEN_CHANNEL_MODAL = 'openChannelModal';\r\nexport const CLOSE_CHANNEL_MODAL = 'closeChannelModal';\r\n\r\nexport const FETCH_BANNERS = 'fetchBanners';\r\n\r\nexport const FETCH_FAVS = 'fetchFavs';\r\nexport const ADD_FAV = 'addFav';\r\nexport const REM_FAV = 'remFav';\r\n\r\nexport const UPDATE_SCROLL_POSITION = 'updateScrollPosition';\r\n\r\nexport const UPDATE_PARTNER_USER = 'updatePartnerUser';","\r\nclass DateHelper {\r\n static compareTimeDatePart(time1, time2) {\r\n const date1 = new Date(time1).setHours(0, 0, 0, 0);\r\n const date2 = new Date(time2).setHours(0, 0, 0, 0);\r\n if (date1.valueOf() === date2.valueOf()) {\r\n return 0;\r\n }\r\n else if (date1.valueOf() < date2.valueOf()) {\r\n return -1;\r\n }\r\n else if (date1.valueOf() > date2.valueOf()) {\r\n return 1;\r\n }\r\n }\r\n\r\n static compareDays(time1, time2) {\r\n const date1 = new Date(time1).setHours(0, 0, 0, 0);\r\n const date2 = new Date(time2).setHours(23, 59, 59, 59);\r\n if (date1.valueOf() === date2.valueOf()) {\r\n return 0;\r\n }\r\n else if (date1.valueOf() < date2.valueOf()) {\r\n return -1;\r\n }\r\n else if (date1.valueOf() > date2.valueOf()) {\r\n return 1;\r\n }\r\n }\r\n\r\n static addDaysToTime(time, nbDays) {\r\n return time + nbDays * 24 * 60 * 60 * 1000;\r\n }\r\n\r\n static addDaysToDate(date, nbDays) {\r\n const _date = new Date(date);\r\n _date.setDate(date.getDate() + nbDays);\r\n return _date;\r\n }\r\n\r\n static getDates(startDate, endDate) {\r\n const onsiteStartDate = startDate; //DateHelper.onSiteDateTime(startDate)\r\n const onsiteEndDate = endDate; //DateHelper.onSiteDateTime(endDate)\r\n const timeDiff = Math.abs(onsiteEndDate.getTime() - onsiteStartDate.getTime());\r\n const diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); \r\n const dateArr = new Array();\r\n for (let i = 0; i < diffDays; i++) {\r\n dateArr.push(new Date(this.addDaysToDate(startDate, i)));\r\n }\r\n return dateArr;\r\n /*\r\n while (DateHelper.compareDays(currentDate, onsiteEndDate) <= 0) {\r\n dateArr.push(new Date(currentDate));\r\n currentDate = this.addDaysToDate(currentDate, 1);\r\n }*/\r\n }\r\n\r\n static ceilToHalfHour(time) {\r\n let roundedTime = new Date(time);\r\n let timeMinutes = roundedTime.getMinutes();\r\n if (timeMinutes < 30) roundedTime.setMinutes(0);\r\n else roundedTime.setMinutes(30);\r\n roundedTime.setMilliseconds(0);\r\n roundedTime.setSeconds(0);\r\n return roundedTime.getTime();\r\n }\r\n\r\n static floorToHalfHour(time) {\r\n let roundedTime = new Date(time);\r\n let timeHours = roundedTime.getHours();\r\n let timeMinutes = roundedTime.getMinutes();\r\n if (timeMinutes < 30) roundedTime.setMinutes(30);\r\n else { roundedTime.setMinutes(0); roundedTime.setHours(timeHours + 1); }\r\n roundedTime.setMilliseconds(0);\r\n roundedTime.setSeconds(0);\r\n return roundedTime.getTime();\r\n }\r\n\r\n static isSharpHour(time) {\r\n return new Date(time).getMinutes() === 0;\r\n }\r\n\r\n static isValidDate(d) {\r\n return d !== undefined && d !== null && d !== '' && !isNaN(d.valueOf());\r\n }\r\n\r\n static browserTimeZone() {\r\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n /*\r\n const d = new Date()\r\n return d.toLocaleTimeString('en-GB', { timeZoneName: 'short' });\r\n */\r\n }\r\n\r\n static formatISODate(date) {\r\n return [\r\n `${date.getFullYear()}`,\r\n `${date.getMonth() + 1}`.padStart(2, '0'),\r\n `${date.getDate()}`.padStart(2, '0')\r\n ].join('-');\r\n }\r\n\r\n static onSiteDateTime(timestamp) {\r\n let timeZone\r\n /*\r\n //console.log(\"🚀 ~ file: date-helper.js ~ line 96 ~ DateHelper ~ onSiteDateTime ~ store.state.app.eventId\", store.state.app.eventId)\r\n if (store.state.app.eventId === constants.ESC_ASIA_2022_EVENT_ID) {\r\n\r\n timeZone = 'Asia/Singapore'\r\n }\r\n else {\r\n timeZone = 'Europe/Paris'\r\n }\r\n */\r\n timeZone = 'Europe/Paris'\r\n //console.log(\"🚀 ~ file: date-helper.js ~ line 100 ~ DateHelper ~ onSiteDateTime ~ timeZone\", timeZone)\r\n //console.log(\"🚀 ~ file: date-helper.js ~ line 89 ~ DateHelper ~ onsiteDateTime ~ browserDate\", browserDate)\r\n const browserDate = DateHelper.browserDateTime(timestamp)\r\n const onsiteDateTimeString = browserDate.toLocaleString(\"en-US\", { timeZone: timeZone });\r\n //console.log(\"🚀 ~ file: date-helper.js ~ line 91 ~ DateHelper ~ onsiteDateTime ~ onsiteDateTimeString\", onsiteDateTimeString)\r\n var onsiteDateTime = new Date(onsiteDateTimeString)\r\n //console.log(\"🚀 ~ file: date-helper.js ~ line 93 ~ DateHelper ~ onsiteDateTime ~ onsiteDateTime\", onsiteDateTime)\r\n return onsiteDateTime;\r\n }\r\n\r\n static browserDateTime(timestamp) {\r\n //console.log(\"🚀 ~ file: date-helper.js ~ line 87 ~ DateHelper ~ onsiteDateTime ~ timestamp\", timestamp)\r\n let browserDate\r\n if (!timestamp) browserDate = new Date()\r\n else if (timestamp instanceof Date) browserDate = timestamp\r\n else browserDate = new Date(timestamp);\r\n\r\n return browserDate\r\n }\r\n}\r\n\r\nexport { DateHelper };\r\n","import axios from 'axios';\r\nimport * as rax from 'retry-axios';\r\nimport qs from 'qs';\r\n\r\nimport { constants } from 'src/constants';\r\nimport { getUser, login, redirectErrorNotFound } from 'src/services/auth';\r\n\r\nimport { LOGOUT } from 'src/store/actions';\r\n\r\nimport { store } from 'src/store';\r\n\r\nimport { DateHelper } from 'src/utils/date-helper';\r\n\r\nlet axiosInstance = null;\r\n\r\nlet axiosInstanceV2 = null;\r\n\r\n\r\nexport const MediaApiService = {\r\n init(appInsights) {\r\n axiosInstance = axios.create({\r\n baseURL: process.env.VUE_APP_MEDIA_API_BASE_URL\r\n });\r\n\r\n axiosInstance.interceptors.response.use(\r\n response => response,\r\n async error => {\r\n if (error.response) {\r\n const status = error.response?.status;\r\n const message = error.response?.data?.message;\r\n\r\n if (status == 401 && message == 'Unauthorized') {\r\n const backUrl = window.location.href;\r\n console.warn('Force relogin due to unauthorized api call');\r\n\r\n await store.dispatch(LOGOUT);\r\n login(backUrl);\r\n }\r\n\r\n if (status == 400 || status == 404) {\r\n redirectErrorNotFound();\r\n }\r\n }\r\n throw error;\r\n }\r\n );\r\n\r\n axiosInstance.defaults.raxConfig = {\r\n instance: axiosInstance,\r\n\r\n retry: parseInt(process.env.VUE_APP_RETRY_AXIOS_RETRIES),\r\n noResponseRetries: parseInt(process.env.VUE_APP_RETRY_AXIOS_TIMEOUT_RETRIES),\r\n retryDelay: parseInt(process.env.VUE_APP_RETRY_AXIOS_DELAY),\r\n\r\n httpMethodsToRetry: ['GET', 'HEAD', 'OPTIONS', 'DELETE', 'PUT', 'POST'],\r\n statusCodesToRetry: [\r\n [100, 199],\r\n [429, 429],\r\n [500, 599]\r\n ],\r\n\r\n backoffType: process.env.VUE_APP_RETRY_AXIOS_BACKOFF_TYPE,\r\n\r\n onRetryAttempt: err => {\r\n appInsights.trackException({ exception: new Error(err) });\r\n }\r\n };\r\n\r\n rax.attach(axiosInstance);\r\n\r\n axiosInstanceV2 = axios.create({\r\n baseURL: process.env.VUE_APP_MEDIA_API_BASE_URL_V2\r\n });\r\n\r\n axiosInstanceV2.interceptors.response.use(\r\n response => response,\r\n async error => {\r\n if (error.response) {\r\n const status = error.response?.status;\r\n const message = error.response?.data?.message;\r\n\r\n if (status == 401 && message == 'Unauthorized') {\r\n const backUrl = window.location.href;\r\n console.warn('Force relogin due to unauthorized api call');\r\n\r\n await store.dispatch(LOGOUT);\r\n login(backUrl);\r\n }\r\n\r\n if (status == 400 || status == 404) {\r\n redirectErrorNotFound();\r\n }\r\n }\r\n throw error;\r\n }\r\n );\r\n\r\n axiosInstanceV2.defaults.raxConfig = {\r\n instance: axiosInstanceV2,\r\n\r\n retry: parseInt(process.env.VUE_APP_RETRY_AXIOS_RETRIES),\r\n noResponseRetries: parseInt(process.env.VUE_APP_RETRY_AXIOS_TIMEOUT_RETRIES),\r\n retryDelay: parseInt(process.env.VUE_APP_RETRY_AXIOS_DELAY),\r\n\r\n httpMethodsToRetry: ['GET', 'HEAD', 'OPTIONS', 'DELETE', 'PUT', 'POST'],\r\n statusCodesToRetry: [\r\n [100, 199],\r\n [429, 429],\r\n [500, 599]\r\n ],\r\n\r\n backoffType: process.env.VUE_APP_RETRY_AXIOS_BACKOFF_TYPE,\r\n\r\n onRetryAttempt: err => {\r\n appInsights.trackException({ exception: new Error(err) });\r\n }\r\n };\r\n\r\n rax.attach(axiosInstanceV2);\r\n },\r\n\r\n setHeader() {\r\n //console.log('setHeader '+getUser().accessToken);\r\n axiosInstance.defaults.headers.common['Authorization'] = `Token ${getUser().accessToken}`;\r\n },\r\n\r\n //#region User\r\n\r\n GetUserInfo(eventId) {\r\n return axiosInstance.get(constants.MEDIA_API_USER_INFO_ENDPOINT, {\r\n params: {\r\n eventId: eventId\r\n }\r\n });\r\n },\r\n\r\n getUserRegType(eventId) {\r\n return axiosInstance.get(constants.MEDIA_API_USER_REGTYPE_ENDPOINT.replace('{eventId}', eventId));\r\n },\r\n\r\n getUserBadges() {\r\n return axiosInstance.get(constants.MEDIA_API_USER_BADGES_ENDPOINT);\r\n },\r\n\r\n getUserParticipantChatConfig() {\r\n return axiosInstance.get(constants.MEDIA_API_USER_CHAT_CONFIG_ENDPOINT);\r\n },\r\n\r\n userHasAccess(eventId) {\r\n return axiosInstance.post(constants.MEDIA_API_USER_HASACCESS_ENDPOINT, {\r\n eventId\r\n });\r\n },\r\n\r\n decryptEscId(escId) {\r\n this.setHeader();\r\n return axiosInstance.post(constants.MEDIA_API_USER_DECRYPT_ENDPOINT, {\r\n escId\r\n });\r\n },\r\n\r\n //#endregion\r\n\r\n //#region Sessions\r\n /*\r\n getAllLiveVotingNowSessions(eventId) {\r\n return this.getLiveSessions(eventId, 0, 0, true, false, true);\r\n },\r\n */\r\n\r\n getAllLiveNowSessions(eventId, votingFirst, isInteractivity,removeExternalLinks) {\r\n return this.getLiveSessions(eventId, 0, 0, true, false, votingFirst, isInteractivity,removeExternalLinks);\r\n },\r\n\r\n getLiveNowSessions(eventId, skip, take, votingFirst, isInteractivity,removeExternalLinks) {\r\n return this.getLiveSessions(eventId, skip, take, true, false, votingFirst, isInteractivity,removeExternalLinks);\r\n },\r\n\r\n getComingSessions(eventId, skip, take, coming, isInteractivity,removeExternalLinks) {\r\n return this.getLiveSessions(eventId, skip, take, false, coming, false, isInteractivity,removeExternalLinks);\r\n },\r\n\r\n getLiveSessions(eventId, skip, take, liveNow, coming, votingFirst, isInteractivity,removeExternalLinks) {\r\n //console.log(\"🚀 ~ file: media-api.js ~ line 113 ~ getLiveSessions ~ votingFirst\", votingFirst)\r\n\r\n return axiosInstance.post(constants.MEDIA_API_LIVE_SESSIONS_LIST_ENDPOINT, {\r\n EventId: eventId,\r\n LiveNow: liveNow,\r\n Coming: coming,\r\n Take: take,\r\n Skip: skip,\r\n VotingFirst: votingFirst ?? false,\r\n Interactivity: isInteractivity ?? false,\r\n RemoveExternalLinks:removeExternalLinks??false\r\n });\r\n },\r\n\r\n getReplaySessions(eventId, skip, take, channels, days) {\r\n return axiosInstance.post(constants.MEDIA_API_REPLAY_SESSIONS_LIST_ENDPOINT, {\r\n EventId: eventId,\r\n Take: take,\r\n Skip: skip,\r\n Channels: channels,\r\n Days: days\r\n });\r\n },\r\n\r\n getSessionDetails(sessionId) {\r\n return axiosInstance.get(constants.MEDIA_API_SESSION_DETAILS_ENDPOINT.replace('{SessionId}', sessionId));\r\n },\r\n\r\n getSessionExternalLink(sessionId) {\r\n return axiosInstance.get(constants.MEDIA_API_SESSION_EXTERNAL_LINK_ENDPOINT.replace('{SessionId}', sessionId));\r\n },\r\n\r\n getNextSessionDetails(sessionId) {\r\n return axiosInstance.get(constants.MEDIA_API_NEXT_SESSION_DETAILS_ENDPOINT.replace('{SessionId}', sessionId));\r\n },\r\n\r\n getSessionDetailsByChannel(channelId) {\r\n return axiosInstance.get(constants.MEDIA_API_SESSION_DETAILS_BY_CHANNEL_ENDPOINT.replace('{ChannelId}', channelId));\r\n },\r\n\r\n getSessionMoreDetails(sessionId) {\r\n return axiosInstance.get(constants.MEDIA_API_SESSION_MORE_DETAILS_ENDPOINT.replace('{SessionId}', sessionId));\r\n },\r\n\r\n getScientificSessions(sessionId) {\r\n return axiosInstance.get(constants.MEDIA_API_SCIENTIFIC_SESSION_DETAILS_ENDPOINT.replace('{SessionId}', sessionId));\r\n },\r\n\r\n getSpeakerMoreDetails(eventId, userId) {\r\n //console.log('getSpeakerMoreDetails: ' + eventId + '-' + userId);\r\n return axiosInstance.post(constants.MEDIA_API_SPEAKER_MORE_DETAILS_ENDPOINT, {\r\n EventId: eventId,\r\n UserId: userId\r\n });\r\n },\r\n getAllSessionElasticDetails(eventId) {\r\n return axiosInstanceV2.get(eventId);\r\n },\r\n getAllSpeakersElasticDetails(eventId) {\r\n return axiosInstance.get(eventId);\r\n },\r\n /*\r\n getSessionsTimeLine(eventId, channelId, dateTime) {\r\n return axiosInstance.post(constants.MEDIA_API_SESSIONS_TIMELINE_ENDPOINT, {\r\n EventId: eventId,\r\n ChannelId: channelId,\r\n Datetime: dateTime\r\n });\r\n },\r\n */\r\n\r\n getTimeLineDigest(eventId, entity, channelId, dateTime) {\r\n //console.log('[Timeline digest] Time Zone Offset: ' + new Date().getTimezoneOffset());\r\n return axiosInstance.post(constants.MEDIA_API_TIMELINE_DIGEST_ENDPOINT, {\r\n EventId: eventId,\r\n Entity: entity,\r\n ChannelId: channelId,\r\n Datetime: dateTime,\r\n Take: 20,\r\n TimeZoneOffset: DateHelper.onSiteDateTime().getTimezoneOffset()\r\n });\r\n },\r\n\r\n getTimeLineFull(eventId, dateTime) {\r\n //console.log('[Timeline full] Time Zone Offset: ' + new Date().getTimezoneOffset());\r\n return axiosInstance.post(constants.MEDIA_API_TIMELINE_FULL_ENDPOINT, {\r\n EventId: eventId,\r\n GroupSkip: 0,\r\n GroupTake: 6,\r\n ItemSkip: 0,\r\n ItemTake: 1,\r\n Datetime: dateTime,\r\n TimeZoneOffset: DateHelper.onSiteDateTime().getTimezoneOffset()\r\n });\r\n },\r\n\r\n getTimeLineComing(eventId, itemTake, dateTime) {\r\n return axiosInstance.post(constants.MEDIA_API_TIMELINE_COMING_ENDPOINT, {\r\n EventId: eventId,\r\n ItemTake: itemTake,\r\n Datetime: dateTime\r\n });\r\n },\r\n\r\n getTime() {\r\n return axiosInstance.post(constants.MEDIA_API_TIMELINE_TIME_ENDPOINT);\r\n },\r\n\r\n getTimelineTimeToDisplay(eventId) {\r\n //console.log('[Time to display] Time Zone Offset: ' + new Date().getTimezoneOffset());\r\n return axiosInstance.post(constants.MEDIA_API_TIMELINE_TIME_TO_DISPLAY_ENDPOINT.replace('{EventId}', eventId));\r\n },\r\n\r\n //#endregion\r\n\r\n //#region Channels\r\n\r\n getChannels(eventId) {\r\n return axiosInstance.post(constants.MEDIA_API_CHANNELS_LIST_ENDPOINT, {\r\n eventId\r\n });\r\n },\r\n\r\n getChannelsOptions(eventId) {\r\n return axiosInstance.post(constants.MEDIA_API_CHANNELS_LIST_OPTIONS_ENDPOINT, {\r\n eventId\r\n });\r\n },\r\n\r\n //#endregion\r\n\r\n //#region Congress\r\n\r\n getConfig(eventRoute) {\r\n return axiosInstance.post(constants.MEDIA_API_CONGRESS_CONFIG_ENDPOINT, {\r\n EventRoute: eventRoute\r\n });\r\n },\r\n\r\n getBanners(eventId) {\r\n return axiosInstance.post(constants.MEDIA_API_CONGRESS_BANNERS_ENDPOINT.replace('{EventId}', eventId));\r\n },\r\n\r\n getDaysOptions(eventId) {\r\n return axiosInstance.post(constants.MEDIA_API_CONGRESS_DAYS_ENDPOINT.replace('{EventId}', eventId));\r\n },\r\n\r\n //#endregion\r\n\r\n //#region Workshop\r\n\r\n getWorkshops(eventId, date = null, escId = null) {\r\n const params = {};\r\n if (date) {\r\n params.date = date;\r\n }\r\n if (escId) {\r\n params.escId = escId;\r\n }\r\n return axiosInstance.get(constants.MEDIA_API_WORKSHOPS.replace('{eventId}', eventId), { params: params });\r\n },\r\n\r\n getWorkshopSlots(eventId, slotIds = [], date = null) {\r\n const params = {};\r\n if (date) {\r\n params.date = date;\r\n }\r\n if (slotIds != null && slotIds.length > 0) {\r\n params.slotIds = slotIds;\r\n }\r\n return axiosInstance.get(constants.MEDIA_API_WORKSHOP_SLOTS.replace('{eventId}', eventId), { params: params, paramsSerializer: params => qs.stringify(params, { arrayFormat: 'repeat' })});\r\n },\r\n\r\n getWorkshopUserSlots(eventId, escId) {\r\n return axiosInstance.get(constants.MEDIA_API_WORKSHOP_USER_SLOTS.replace('{eventId}', eventId).replace('{escId}', escId));\r\n },\r\n\r\n getCurrentWorkshopSesssions(eventId, password = null) {\r\n const params = {};\r\n if (password) {\r\n params.password = password;\r\n }\r\n console.log(password)\r\n return axiosInstance.get(constants.MEDIA_API_CURRENT_WORKSHOP_SESSIONS.replace('{eventId}', eventId), { params: params });\r\n },\r\n\r\n getAllWorkshopsByDate(eventId, date = null, password = null) {\r\n const params = {};\r\n if (date) {\r\n params.date = date;\r\n }\r\n if (password) {\r\n params.password = password;\r\n }\r\n console.log(eventId, date, password)\r\n return axiosInstance.get(constants.MEDIA_API_ALL_WORKSHOP_BY_DATE.replace('{eventId}', eventId), { params: params });\r\n },\r\n\r\n //#endregion\r\n\r\n //#region Networking\r\n\r\n getCountries() {\r\n return axiosInstance.get(constants.MEDIA_API_NETWORKING_COUNTRIES_LIST);\r\n },\r\n\r\n getSpecialities() {\r\n return axiosInstance.get(constants.MEDIA_API_NETWORKING_SPECIALITIES_LIST);\r\n },\r\n\r\n /*\r\n getParticipant(participantId) {\r\n return axiosInstance.get(constants.MEDIA_API_NETWORKING_GET_PARTICIPANT.replace('{ParticipantId}', participantId));\r\n },\r\n */\r\n\r\n getSignature() {\r\n return axiosInstance.get(constants.MEDIA_API_NETWORKING_GET_SIGNATURE);\r\n },\r\n\r\n searchParticipants({ eventId, pageNumber, pageSize = 20, name = null, countries = null, specialities = null, roles = null, onlyOnline = false }) {\r\n return axiosInstance.post(constants.MEDIA_API_NETWORKING_PARTICIPANTS, {\r\n EventId: eventId,\r\n Name: name,\r\n Countries: countries,\r\n Specialities: specialities,\r\n Roles: roles,\r\n OnlyOnline: onlyOnline,\r\n PageNumber: pageNumber,\r\n PageSize: pageSize\r\n });\r\n },\r\n\r\n alterChatAgreement({ networkingChatAgreement }) {\r\n return axiosInstance.post(constants.MEDIA_API_NETWORKING_ALTER_CHAT_AGREEMENT, {\r\n NetworkingChatAgreement: networkingChatAgreement\r\n });\r\n },\r\n\r\n //#endregion\r\n\r\n //#region Favorites\r\n\r\n getFavorites(eventId) {\r\n return axiosInstance.post(constants.MEDIA_API_LIST_FAVORITES_ENDPOINT, {\r\n EventId: eventId\r\n });\r\n },\r\n\r\n addFavorite({ eventId, digitalSessionId, sessionId, subSessionId, presentationId, personId }) {\r\n return axiosInstance.post(constants.MEDIA_API_ADD_FAVORITE_ENDPOINT, {\r\n EventId: eventId,\r\n DigitalSessionId: digitalSessionId,\r\n SessionId: sessionId,\r\n SubSessionId: subSessionId,\r\n PresentationId: presentationId,\r\n PersonId: personId\r\n });\r\n },\r\n\r\n removeFavorite({ eventId, digitalSessionId, sessionId, subSessionId, presentationId, personId }) {\r\n return axiosInstance.post(constants.MEDIA_API_REMOVE_FAVORITE_ENDPOINT, {\r\n EventId: eventId,\r\n DigitalSessionId: digitalSessionId,\r\n SessionId: sessionId,\r\n SubSessionId: subSessionId,\r\n PresentationId: presentationId,\r\n PersonId: personId\r\n });\r\n },\r\n\r\n //#endregion\r\n\r\n //#region Presentation\r\n getPresentationAbstract(presentationId) {\r\n return axiosInstance.get(constants.MEDIA_API_PRESENTATION_ABSTRACT_ENDPOINT.replace('{PresentationId}', presentationId));\r\n },\r\n //#endregion\r\n\r\n //#region Partner\r\n\r\n partnerHasAccess(queryString) {\r\n return axiosInstance.post(constants.MEDIA_API_PARTNER_HASACCESS_ENDPOINT, {\r\n queryString\r\n });\r\n },\r\n\r\n partnerGetVideo(queryString) {\r\n return axiosInstance.post(constants.MEDIA_API_PARTNER_GETVIDEO_ENDPOINT, {\r\n queryString\r\n });\r\n },\r\n\r\n partnerGetRegistrationStatus(queryString) {\r\n return axiosInstance.post(constants.MEDIA_API_PARTNER_GETREGISTRATIONSTATUS_ENDPOINT, {\r\n queryString\r\n });\r\n },\r\n\r\n //#endregion\r\n\r\n getRecommendations(fullQuery) {\r\n return axiosInstance.get(fullQuery);\r\n }\r\n};\r\n","export const SET_AUTH = 'setUser';\r\nexport const PURGE_AUTH = 'logOut';\r\n\r\n// export const SET_HAS_ACCESS = 'setHasAccess';\r\n\r\nexport const SET_IS_LOADING = 'setIsLoading';\r\n\r\nexport const SET_EVENT_CONFIG = 'setEventConfig';\r\nexport const SET_BANNERS = 'setBanners';\r\n\r\nexport const SET_POOLING_ENABLED = 'setPoolingEnabled';\r\n\r\nexport const SET_TIMELINE_VISIBILITY = 'setTimelineVisibility';\r\n\r\nexport const SET_MEDIA_MODAL_VISIBILITY = 'setMediaModalVisibility';\r\nexport const SET_MEDIA_MODAL_METADATA = 'setMediaModalMetadata';\r\nexport const PURGE_MEDIA_MODAL_METADATA = 'purgeMediaModalMetadata';\r\n\r\nexport const SET_CHANNEL_MODAL_VISIBILITY = 'setChannelModalVisibility';\r\nexport const SET_CHANNEL_MODAL_PARAMS = 'setChannelModalParams';\r\nexport const PURGE_CHANNEL_MODAL_PARAMS = 'purgeChannelModalParams';\r\n\r\nexport const SET_FAVS = 'setFavs';\r\nexport const PUSH_FAV = 'pushFav';\r\nexport const FILTER_FAV = 'filterFav';\r\n\r\nexport const SET_CONGRESS_MODE = 'setCongressMode';\r\nexport const SET_CMS_CACHE_VERSION = 'setCmsCacheVersion';\r\nexport const SET_CONF_CMS_DATA = 'setConfCmsData';\r\nexport const SET_HOME_CMS_DATA = 'setHomeCmsData';\r\n\r\nexport const SET_UNREAD_NOTIFICATION = 'setUnreadNotification';\r\n\r\nexport const SET_CHAT_PARTICIPANT_CONFIG = 'setChatParticipantConfig';\r\nexport const SET_USER_INFO = 'setUserInfo';\r\n\r\nexport const SET_WORKSHOP_CART = 'setWorkshopCart';\r\nexport const SET_WORKSHOP_CART_FULL = 'setWorkshopCartFull';\r\n\r\nexport const SET_SCROLL_POSITION = 'setScrollPosition';\r\n\r\nexport const SET_PARTNER_USER = 'setPartnerUser';","import { constants } from 'src/constants';\r\nimport { MediaApiService } from 'src/services/media-api';\r\nimport { FETCH_BANNERS, TOGGLE_TIMELINE } from 'src/store/actions';\r\nimport {\r\n SET_BANNERS, SET_CHAT_PARTICIPANT_CONFIG, SET_CMS_CACHE_VERSION, SET_CONF_CMS_DATA, SET_CONGRESS_MODE, SET_EVENT_CONFIG, SET_HOME_CMS_DATA, SET_IS_LOADING, SET_TIMELINE_VISIBILITY, SET_UNREAD_NOTIFICATION,\r\n SET_USER_INFO, SET_WORKSHOP_CART, SET_WORKSHOP_CART_FULL\r\n} from 'src/store/mutations';\r\n\r\nconst initialState = {\r\n version: process.env.PACKAGE_VERSION || 'Unknown',\r\n isLoading: true,\r\n timelineExpanded: false,\r\n eventId: -1,\r\n eventStartDate: null,\r\n eventEndDate: null,\r\n eventRoute: null,\r\n eventBaseTitle: null,\r\n isInPreviewMode: false,\r\n preCongressMode: false,\r\n postCongressMode: false,\r\n ressourcesMovedTo365: false,\r\n brightcoveAccountId: null,\r\n brightcovePlayerId: null,\r\n registrationLink: null,\r\n cmsEndpoint: process.env.VUE_APP_STORYBLOK_DEFAULT_ENDPOINT,\r\n escBanners: [],\r\n cmsCacheVersion: 0,\r\n confCmsData: {},\r\n homeCmsData: {},\r\n widgetsParameters: null,\r\n industryStandsSearch: false,\r\n indexAbstracts: false,\r\n indexIndustries: false,\r\n indexLiveSessions: false,\r\n indexOnDemandSessions: false,\r\n indexSpeakers: false,\r\n locationTypeId: null,\r\n locationCity: null,\r\n showLiveBadge: null,\r\n showChannelOnline: null,\r\n location: null,\r\n unreadNotifications: 0,\r\n chatParticipantConfig: {},\r\n locationType: null,\r\n organiserName: null,\r\n eventName: null,\r\n userInfo: {},\r\n workshopCart: []\r\n};\r\n\r\nconst state = { ...initialState };\r\n\r\nconst getters = {\r\n appVersion(state) {\r\n return state.version;\r\n },\r\n isTimelineExpanded(state) {\r\n return state.timelineExpanded;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [FETCH_BANNERS]({ commit, state }) {\r\n const eventId = state.eventId;\r\n if (!eventId || eventId <= 0) return;\r\n\r\n MediaApiService.getBanners(eventId).then(({ data }) => {\r\n commit(SET_BANNERS, data);\r\n });\r\n },\r\n [TOGGLE_TIMELINE]({ commit, state }) {\r\n commit(SET_TIMELINE_VISIBILITY, !state.timelineExpanded);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_IS_LOADING](state, isLoading) {\r\n state.isLoading = isLoading;\r\n },\r\n [SET_EVENT_CONFIG](\r\n state,\r\n {\r\n eventId,\r\n escEventId,\r\n eventRoute,\r\n eventBaseTitle,\r\n eventStartDate,\r\n eventEndDate,\r\n preCongressMode,\r\n postCongressMode,\r\n ressourcesMovedTo365,\r\n brightcoveAccountId,\r\n brightcovePlayerId,\r\n registrationLink,\r\n cmsEndpoint,\r\n cmsCacheVersion,\r\n widgetsParameters,\r\n industryStandsSearch,\r\n indexAbstracts,\r\n indexIndustries,\r\n indexLiveSessions,\r\n indexOnDemandSessions,\r\n indexSpeakers,\r\n locationTypeId,\r\n location,\r\n locationCity,\r\n locationType,\r\n organiserName,\r\n eventName,\r\n }\r\n ) {\r\n state.eventId = eventId;\r\n state.escEventId = escEventId;\r\n state.eventRoute = eventRoute;\r\n state.eventBaseTitle = eventBaseTitle;\r\n state.eventStartDate = eventStartDate;\r\n state.eventEndDate = eventEndDate;\r\n state.preCongressMode = preCongressMode;\r\n state.postCongressMode = postCongressMode;\r\n state.ressourcesMovedTo365 = ressourcesMovedTo365;\r\n state.brightcoveAccountId = brightcoveAccountId;\r\n state.brightcovePlayerId = brightcovePlayerId;\r\n state.registrationLink = registrationLink;\r\n if (cmsEndpoint) state.cmsEndpoint = cmsEndpoint;\r\n if (cmsCacheVersion) state.cmsCacheVersion = cmsCacheVersion;\r\n state.widgetsParameters = widgetsParameters;\r\n state.industryStandsSearch = industryStandsSearch;\r\n state.indexAbstracts = indexAbstracts;\r\n state.indexIndustries = indexIndustries;\r\n state.indexLiveSessions = indexLiveSessions;\r\n state.indexOnDemandSessions = indexOnDemandSessions;\r\n state.indexSpeakers = indexSpeakers;\r\n state.locationTypeId = locationTypeId;\r\n state.location = location;\r\n state.locationCity = locationCity;\r\n state.locationEvent = location?.split('&')[0]?.trim()\r\n state.locationType = locationType,\r\n state.organiserName = organiserName,\r\n state.eventName = eventName\r\n if (locationTypeId) {\r\n switch (locationTypeId) {\r\n case constants.EVENT_LOCATION_ONLINE:\r\n state.showLiveBadge = true\r\n state.showChannelOnline = true\r\n break\r\n case constants.EVENT_LOCATION_ONSITE:\r\n case constants.EVENT_LOCATION_HYBRID:\r\n default:\r\n state.showLiveBadge = false\r\n state.showChannelOnline = false\r\n break\r\n }\r\n }\r\n\r\n },\r\n [SET_BANNERS](state, banners) {\r\n state.escBanners = banners?.top;\r\n state.industryBanners = banners?.bottom;\r\n },\r\n [SET_TIMELINE_VISIBILITY](state, visibility) {\r\n state.timelineExpanded = visibility;\r\n },\r\n [SET_HOME_CMS_DATA](state, homeCmsData) {\r\n state.homeCmsData = homeCmsData;\r\n },\r\n [SET_CONGRESS_MODE](state, { preCongressMode, postCongressMode }) {\r\n state.isInPreviewMode = true;\r\n\r\n state.preCongressMode = preCongressMode;\r\n state.postCongressMode = postCongressMode;\r\n },\r\n [SET_CONF_CMS_DATA](state, confCmsData) {\r\n state.confCmsData = confCmsData;\r\n },\r\n [SET_CMS_CACHE_VERSION](state, cmsCacheVersion) {\r\n state.cmsCacheVersion = cmsCacheVersion;\r\n },\r\n [SET_UNREAD_NOTIFICATION](state, count) {\r\n state.unreadNotifications = count;\r\n },\r\n [SET_CHAT_PARTICIPANT_CONFIG](state, chatParticipantConfig) {\r\n //console.log(`set chatParticipantconfig ${JSON.stringify(chatParticipantConfig)}`);\r\n state.chatParticipantConfig = chatParticipantConfig;\r\n },\r\n [SET_USER_INFO](state, userInfo) {\r\n //console.log(JSON.stringify(userInfo));\r\n state.userInfo = userInfo;\r\n },\r\n [SET_WORKSHOP_CART](state, { workshopId, workshopName, workshopPrice, slotId, slotDate, slotStartTime, slotEndTime }) {\r\n const workshopItemIndex = state.workshopCart.findIndex(x => x.workshopId === workshopId && x.date.getTime() === new Date(slotDate).getTime());\r\n\r\n let toRemove = false;\r\n if (workshopItemIndex !== -1) {\r\n if (state.workshopCart[workshopItemIndex].id === slotId) {\r\n toRemove = true;\r\n }\r\n state.workshopCart.splice(workshopItemIndex, 1);\r\n }\r\n\r\n if (toRemove == false) {\r\n state.workshopCart.push({\r\n id: slotId,\r\n workshopId: workshopId,\r\n name: workshopName,\r\n price: workshopPrice,\r\n date: new Date(slotDate),\r\n startTime: slotStartTime,\r\n endTime: slotEndTime\r\n });\r\n }\r\n },\r\n [SET_WORKSHOP_CART_FULL](state, cartList) {\r\n state.workshopCart = cartList;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","import { saveUser, destroyUser, getUser } from 'src/services/auth';\r\nimport { MediaApiService } from 'src/services/media-api';\r\n\r\nimport { LOGIN, LOGOUT, FETCH_FAVS, ADD_FAV, REM_FAV } from 'src/store/actions';\r\nimport { SET_AUTH, PURGE_AUTH, SET_FAVS, PUSH_FAV, FILTER_FAV } from 'src/store/mutations';\r\n\r\nconst user = getUser() ?? null;\r\n\r\nconst initialState = {\r\n loggedIn: user !== null,\r\n // hasAccess: null,\r\n user: user,\r\n favs: []\r\n};\r\n\r\nconst state = { ...initialState };\r\n\r\nconst getters = {\r\n isLogged(state) {\r\n return state.loggedIn;\r\n },\r\n currentUser(state) {\r\n return state.user;\r\n },\r\n fullName(state) {\r\n return `${state.user?.firstName} ${state.user?.lastName}`;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [LOGIN]({ commit }, urlParams) {\r\n const escId = window.atob(urlParams.get('escId'));\r\n const email = window.atob(urlParams.get('email'));\r\n\r\n const title = window.atob(urlParams.get('title'));\r\n const firstName = window.atob(urlParams.get('firstName'));\r\n const lastName = window.atob(urlParams.get('lastName'));\r\n\r\n const token = urlParams.get('token');\r\n const expires = urlParams.get('expires');\r\n\r\n const user = {\r\n escId,\r\n email,\r\n title,\r\n firstName,\r\n lastName,\r\n accessToken: token,\r\n expires\r\n };\r\n\r\n saveUser(user);\r\n\r\n MediaApiService.setHeader();\r\n commit(SET_AUTH, user);\r\n },\r\n [LOGOUT]({ commit }) {\r\n destroyUser();\r\n commit(PURGE_AUTH);\r\n },\r\n [FETCH_FAVS]({ commit }, eventId) {\r\n MediaApiService.getFavorites(eventId).then(({ data }) => {\r\n commit(SET_FAVS, data);\r\n });\r\n },\r\n //eslint-disable-next-line\r\n [ADD_FAV]({ commit }, { eventId, digitalSessionId, sessionId, subSessionId, presentationId, personId }) {\r\n MediaApiService.addFavorite({ eventId, digitalSessionId, sessionId, subSessionId, presentationId, personId }).then(({ data }) => {\r\n commit(PUSH_FAV, data);\r\n });\r\n },\r\n //eslint-disable-next-line\r\n [REM_FAV]({ commit }, { eventId, digitalSessionId, sessionId, subSessionId, presentationId, personId }) {\r\n MediaApiService.removeFavorite({ eventId, digitalSessionId, sessionId, subSessionId, presentationId, personId }).then(({ data }) => {\r\n commit(FILTER_FAV, data);\r\n });\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_AUTH](state, user) {\r\n state.loggedIn = true;\r\n state.user = user;\r\n },\r\n [PURGE_AUTH](state) {\r\n state.loggedIn = false;\r\n state.user = null;\r\n },\r\n /*\r\n [SET_HAS_ACCESS](state, hasAccess) {\r\n state.hasAccess = hasAccess;\r\n },\r\n */\r\n [SET_FAVS](state, favs) {\r\n state.favs = favs;\r\n },\r\n [PUSH_FAV](state, fav) {\r\n state.favs.push(fav);\r\n },\r\n [FILTER_FAV](state, fav) {\r\n state.favs = state.favs.filter(x => x.userFavoriteId !== fav.userFavoriteId);\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","export const consoleColors = {\r\n misc: 'background: #16a596; color: white; display: block; padding: 5px; border-radius: 4px;',\r\n insights: 'background: #a471ec; color: white; display: block; padding: 5px; border-radius: 4px;',\r\n events: 'background: #595b83; color: white; display: block; padding: 5px; border-radius: 4px;'\r\n}","import { ENABLE_POOLING, DISABLE_POOLING } from 'src/store/actions';\r\nimport { SET_POOLING_ENABLED } from 'src/store/mutations';\r\nimport { consoleColors } from 'src/utils/console-color';\r\n\r\nconst initialState = { enabled: true };\r\n\r\nconst state = { ...initialState };\r\n\r\nconst getters = {\r\n isPoolingEnabled(state) {\r\n return state.enabled;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [ENABLE_POOLING]({ commit }) {\r\n commit(SET_POOLING_ENABLED, true);\r\n console.info(`%cPooling enabled`, consoleColors.events);\r\n },\r\n [DISABLE_POOLING]({ commit }) {\r\n commit(SET_POOLING_ENABLED, false)\r\n console.info(`%cPooling disabled`, consoleColors.events);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_POOLING_ENABLED](state, enabled) {\r\n state.enabled = enabled;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","import { OPEN_MEDIA_MODAL, CLOSE_MEDIA_MODAL, OPEN_CHANNEL_MODAL, CLOSE_CHANNEL_MODAL } from 'src/store/actions';\r\nimport { SET_MEDIA_MODAL_VISIBILITY, PURGE_MEDIA_MODAL_METADATA, SET_MEDIA_MODAL_METADATA, SET_CHANNEL_MODAL_VISIBILITY, SET_CHANNEL_MODAL_PARAMS, PURGE_CHANNEL_MODAL_PARAMS } from 'src/store/mutations';\r\nimport { store } from 'src/store';\r\nimport { MediaApiService } from 'src/services/media-api';\r\nimport { SET_IS_LOADING } from 'src/store/mutations';\r\n\r\nconst initialState = {\r\n media: {\r\n show: false,\r\n metadata: {\r\n type: null,\r\n id: -1\r\n }\r\n },\r\n channel: {\r\n show: false,\r\n params: null\r\n }\r\n};\r\n\r\nconst state = { ...initialState };\r\n\r\nconst getters = {\r\n isMediaModalOpen(state) {\r\n return state.media.show;\r\n },\r\n isChannelModalOpen(state) {\r\n return state.channel.show;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [OPEN_MEDIA_MODAL]({ commit }, metadata) {\r\n commit(SET_MEDIA_MODAL_METADATA, metadata);\r\n commit(SET_MEDIA_MODAL_VISIBILITY, true);\r\n },\r\n [CLOSE_MEDIA_MODAL]({ commit }) {\r\n commit(SET_MEDIA_MODAL_VISIBILITY, false);\r\n commit(PURGE_MEDIA_MODAL_METADATA);\r\n },\r\n [OPEN_CHANNEL_MODAL]({ commit }, channelId) {\r\n commit(SET_CHANNEL_MODAL_PARAMS, channelId);\r\n commit(SET_CHANNEL_MODAL_VISIBILITY, true);\r\n },\r\n [CLOSE_CHANNEL_MODAL]({ commit }) {\r\n commit(SET_CHANNEL_MODAL_VISIBILITY, false);\r\n commit(PURGE_CHANNEL_MODAL_PARAMS);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n [SET_MEDIA_MODAL_VISIBILITY](state, show) {\r\n /*state.media.show = show;*/\r\n //Ressources moved to esc365 hook\r\n\r\n if (show && store.state.app.ressourcesMovedTo365) {\r\n //console.log('Replays closed - moved to 365');\r\n store.commit(SET_IS_LOADING, true);\r\n MediaApiService.getScientificSessions(state.media.metadata.id).then(({ data }) => {\r\n const esc365Url = process.env.VUE_APP_ESC365_BASE_URL;\r\n const esc365MediaUrl = `${esc365Url}/Session/${data.scientificSessionId}`;\r\n //console.log('Redirecting to ' + esc365MediaUrl);\r\n window.location.href = esc365MediaUrl;\r\n });\r\n } else {\r\n state.media.show = show;\r\n }\r\n },\r\n [SET_MEDIA_MODAL_METADATA](state, metadata) {\r\n state.media.metadata = metadata;\r\n },\r\n [PURGE_MEDIA_MODAL_METADATA](state) {\r\n state.media.metadata.type = null;\r\n state.media.metadata.id = -1;\r\n },\r\n [SET_CHANNEL_MODAL_VISIBILITY](state, show) {\r\n state.channel.show = show;\r\n\r\n //Ressources moved to esc365 hook\r\n /*\r\n if (show && store.state.app.ressourcesMovedTo365) {\r\n //console.log('Replays closed - moved to 365');\r\n store.commit(SET_IS_LOADING, true);\r\n MediaApiService.getScientificSessions(state.media.metadata.id).then(({ data }) => {\r\n const esc365Url = process.env.VUE_APP_ESC365_BASE_URL;\r\n const esc365MediaUrl = `${esc365Url}/Session/${data.scientificSessionId}`;\r\n //console.log('Redirecting to ' + esc365MediaUrl);\r\n window.location.href = esc365MediaUrl;\r\n });\r\n }\r\n */\r\n },\r\n [SET_CHANNEL_MODAL_PARAMS](state, params) {\r\n state.channel.params = params;\r\n },\r\n [PURGE_CHANNEL_MODAL_PARAMS](state) {\r\n state.channel.params = null;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","import { UPDATE_SCROLL_POSITION } from 'src/store/actions';\r\nimport { SET_SCROLL_POSITION } from 'src/store/mutations';\r\n\r\nconst initialState = { position: null };\r\n\r\nconst state = { ...initialState };\r\n\r\nconst getters = {\r\n scrollPosition(state) {\r\n return state.position;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [UPDATE_SCROLL_POSITION]({ commit },position) {\r\n commit(SET_SCROLL_POSITION, position);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [SET_SCROLL_POSITION](state, position) {\r\n state.position = position;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","import { UPDATE_PARTNER_USER } from 'src/store/actions';\r\nimport { SET_PARTNER_USER } from 'src/store/mutations';\r\n\r\nconst initialState = { partnerUser:{eescid: null}};\r\n\r\nconst state = { ...initialState };\r\n\r\nconst getters = {\r\n partnerUser(state) {\r\n return state.partnerUser;\r\n }\r\n};\r\n\r\nconst actions = {\r\n [UPDATE_PARTNER_USER]({ commit },partnerUser) {\r\n commit(SET_PARTNER_USER, partnerUser);\r\n },\r\n};\r\n\r\nconst mutations = {\r\n [SET_PARTNER_USER](state, partnerUser) {\r\n state.partnerUser = partnerUser;\r\n }\r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n mutations,\r\n getters\r\n};\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\nimport app from 'src/store/modules/app';\r\nimport auth from 'src/store/modules/auth';\r\nimport pooling from 'src/store/modules/pooling';\r\nimport modal from 'src/store/modules/modal';\r\nimport scroll from 'src/store/modules/scroll';\r\nimport partner from 'src/store/modules/partner';\r\n\r\nVue.use(Vuex);\r\n\r\nexport const store = new Vuex.Store({\r\n modules: {\r\n app,\r\n auth,\r\n pooling,\r\n modal,\r\n scroll,\r\n partner\r\n }\r\n});\r\n","export const MediaType = {\r\n SESSION: 'session',\r\n PRESENTATION: 'presentation'\r\n};\r\n","import { MediaType } from 'src/enums/media-type';\r\n\r\nclass QueryHelper {\r\n static extractMediaMetadata(furl) {\r\n let media = { id: -1, type: null };\r\n\r\n if (furl.indexOf('-') > 0) {\r\n const splitArr = furl.split('-')[0];\r\n\r\n const mediaType = splitArr.charAt(0) == 'S' ? MediaType.SESSION : MediaType.PRESENTATION;\r\n const mediaId = parseInt(splitArr.substring(1, splitArr.length));\r\n\r\n media = { id: mediaId, type: mediaType, furl: furl };\r\n }\r\n\r\n return media;\r\n }\r\n\r\n static extractChannelParams(furl) {\r\n let params = { channelId: -1 };\r\n\r\n //todo: channel furl...\r\n\r\n const channelId = parseInt(furl);\r\n params = { channelId: channelId };\r\n\r\n return params;\r\n }\r\n\r\n static extractSessionId(furl) {\r\n const splitArr = furl.split('-');\r\n return Number.parseInt(splitArr[0]);\r\n }\r\n\r\n /*\r\n //\r\n //Remove login process query parameters after treatment\r\n //\r\n static removeLoginProcessParameters() {\r\n var newUrl = QueryHelper.removeUrlParameter('token', null);\r\n newUrl = QueryHelper.removeUrlParameter('expires', newUrl);\r\n newUrl = QueryHelper.removeUrlParameter('escId', newUrl);\r\n newUrl = QueryHelper.removeUrlParameter('email', newUrl);\r\n newUrl = QueryHelper.removeUrlParameter('title', newUrl);\r\n newUrl = QueryHelper.removeUrlParameter('firstName', newUrl);\r\n newUrl = QueryHelper.removeUrlParameter('lastName', newUrl);\r\n \r\n history.replaceState({}, '', newUrl);\r\n }\r\n \r\n static removeForceSsoProcessParameters() {\r\n //console.log('removeCheckQueryPlatformAccessFallbackProcessParameters');\r\n var newurl = QueryHelper.removeUrlParameter('forcesso', newurl);\r\n history.replaceState({}, '', newurl);\r\n }\r\n \r\n static removeCheckQueryPlatformAccessFallbackProcessParameters() {\r\n //console.log('removeCheckQueryPlatformAccessFallbackProcessParameters');\r\n var newurl = QueryHelper.removeUrlParameter('hpa', newurl);\r\n history.replaceState({}, '', newurl);\r\n }\r\n */\r\n\r\n //\r\n //Remove parameter to query string\r\n //\r\n static addUrlParameter(queryString,parameter, value) {\r\n var resultQueryString = queryString ?? '';\r\n if (parameter && value) {\r\n if (resultQueryString.length == 0) {\r\n resultQueryString += '?';\r\n } else {\r\n resultQueryString += '&';\r\n }\r\n resultQueryString += `${parameter}=${encodeURIComponent(value)}`\r\n }\r\n return resultQueryString;\r\n }\r\n\r\n //\r\n //Remove parameter from query string without redirect v2\r\n //\r\n static removeUrlParameter(parameter, url) {\r\n //console.log('removeUrlParameter '+parameter+','+url);\r\n if (!url) url = window.location.href;\r\n var urlParts = url.split('?');\r\n\r\n if (urlParts.length >= 2) {\r\n // Get first part, and remove from array\r\n var urlBase = urlParts.shift();\r\n\r\n // Join it back up\r\n var queryString = urlParts.join('?');\r\n\r\n var prefix = encodeURIComponent(parameter) + '=';\r\n var parts = queryString.split(/[&;]/g);\r\n\r\n // Reverse iteration as may be destructive\r\n for (var i = parts.length; i-- > 0; ) {\r\n // Idiom for string.startsWith\r\n if (parts[i].lastIndexOf(prefix, 0) !== -1) {\r\n parts.splice(i, 1);\r\n }\r\n }\r\n url = urlBase;\r\n // Add remaining query parameters\r\n if (parts.length > 0) {\r\n url = url + '?' + parts.join('&');\r\n }\r\n }\r\n\r\n return url;\r\n }\r\n\r\n static getParameterByName(name, url) {\r\n if (!url) url = window.location.href;\r\n //console.log('getParameterByName '+name+' '+url);\r\n name = name.replace(/[[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n }\r\n}\r\n\r\nexport { QueryHelper };\r\n","import StoryblokClient from 'storyblok-js-client/dist/es5/index.es';\r\nimport { store } from 'src/store';\r\nimport crypto from 'crypto'\r\nimport { QueryHelper } from 'src/utils/query-helper';\r\n\r\nexport function getStoryBlokPreviewToken() {\r\n const storyBlokPreviewToken = process.env.VUE_APP_STORYBLOK_PREVIEW_TOKEN;\r\n return storyBlokPreviewToken;\r\n}\r\n\r\nexport function getStoryBlokClient() {\r\n const cmsEndpoint = store.state.app.cmsEndpoint;\r\n\r\n return new StoryblokClient(\r\n {\r\n accessToken: getStoryBlokPreviewToken(),\r\n cache: {\r\n clear: 'auto',\r\n type: 'memory'\r\n }\r\n },\r\n cmsEndpoint\r\n );\r\n}\r\n\r\nexport function getStoryBlokBridge() {\r\n //eslint-disable-next-line\r\n return new StoryblokBridge();\r\n}\r\n\r\nexport function isInStoryBlokEditorPreview() {\r\n let result = false;\r\n // getQueryParam = access requests URL param by name \r\n let validationString\r\n = QueryHelper.getParameterByName('_storyblok_tk%5Bspace_id%5D')\r\n + ':'\r\n + getStoryBlokPreviewToken()\r\n + ':'\r\n + QueryHelper.getParameterByName('_storyblok_tk%5Btimestamp%5D')\r\n let validationToken = crypto.createHash('sha1').update(validationString).digest('hex')\r\n\r\n //console.log('validationString ' + validationString);\r\n //console.log('validationToken ' + validationToken);\r\n\r\n if (QueryHelper.getParameterByName('_storyblok_tk%5Btoken%5D') == validationToken /*&&\r\n QueryHelper.getParameterByName('_storyblok_tk%5Btimestamp%5D') > Math.floor(Date.now() / 1000) - 3600*/) {\r\n // you're in the edit mode.\r\n result = true\r\n }\r\n return result;\r\n}\r\n","//import StoryblokClient from 'storyblok-js-client/dist/es5/index.es'\r\n\r\nimport { getStoryBlokClient } from 'src/services/storyblok';\r\nimport Vue from 'vue';\r\n\r\nVue.filter('formatUnixEpocTimePartForLog', (value) => {\r\n if (value)\r\n return Intl.DateTimeFormat('en-GB', {\r\n month: 'long',\r\n day: 'numeric',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n second: 'numeric',\r\n hour12: false,\r\n hourCycle: 'h24',\r\n timeZone: 'Europe/Paris',\r\n }).format(new Date(value));\r\n});\r\n\r\nVue.filter('formatUnixEpocTimePart', (value) => {\r\n if (value)\r\n return Intl.DateTimeFormat('en-GB', {\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n hour12: false,\r\n hourCycle: 'h24',\r\n timeZone: 'Europe/Paris',\r\n }).format(new Date(value));\r\n});\r\n\r\nVue.filter('formatUnixEpocTimePart_TZ', (value) => {\r\n if (value) {\r\n return Intl.DateTimeFormat('en-GB', {\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n hour12: false,\r\n hourCycle: 'h24',\r\n timeZoneName: 'short',\r\n })\r\n .formatToParts(new Date(value))\r\n .map(({ type, value }) => {\r\n switch (type) {\r\n case 'timeZoneName':\r\n return `(${value})`;\r\n default:\r\n return value;\r\n }\r\n })\r\n .reduce((string, part) => string + part);\r\n //return Intl.DateTimeFormat('en-GB', { hour: 'numeric', minute: 'numeric',hour12:false, hourCycle:'h24',timeZoneName:'short'}).format(new Date(value));\r\n }\r\n});\r\n\r\nVue.filter('formatTime', (value) => {\r\n if (!value) return '';\r\n return value.slice(0, 5);\r\n});\r\n\r\nVue.filter('formatUnixEpocDayPartNoTimezone', (value) => {\r\n if (value)\r\n return Intl.DateTimeFormat('en-GB', {\r\n month: 'long',\r\n day: 'numeric',\r\n }).format(new Date(value));\r\n});\r\n\r\nVue.filter('formatUnixEpocDayPart', (value) => {\r\n if (value)\r\n return Intl.DateTimeFormat('en-GB', {\r\n month: 'long',\r\n day: 'numeric',\r\n timeZone: 'Europe/Paris',\r\n }).format(new Date(value));\r\n});\r\n\r\nVue.filter('formatIsoDayPart', (value) => {\r\n if (value) return value.split('T')[0];\r\n});\r\nVue.filter('formatIsoTimePart', (value) => {\r\n if (value) return value.split('T')[1].split('.')[0];\r\n});\r\n\r\nVue.filter('trim', (value) => {\r\n if (value) return value.trim();\r\n});\r\n\r\nVue.filter('formatStoryRichText', (value) => {\r\n if (value) return getStoryBlokClient().richTextResolver.render(value);\r\n});\r\n\r\nVue.filter('formatStoryRichTextWithoutEncapsulatingParagraph', (value) => {\r\n if (value) {\r\n //replace encapsulating paragraph with span\r\n if (value.content && value.content.length > 0 && value.content[0].type === 'paragraph') {\r\n value.content[0].type = 'span';\r\n }\r\n return getStoryBlokClient().richTextResolver.render(value);\r\n }\r\n});\r\n\r\nVue.filter('formatUnixEpocDayPartWithYear', (value) => {\r\n if (value)\r\n return Intl.DateTimeFormat('en-GB', {\r\n month: 'long',\r\n day: 'numeric',\r\n year: 'numeric',\r\n timeZone: 'Europe/Paris',\r\n }).format(new Date(value));\r\n});\r\n\r\nVue.filter('formatUnixEpocDayPartOnly', (value) => {\r\n if (value)\r\n return Intl.DateTimeFormat('en-GB', {\r\n day: 'numeric',\r\n timeZone: 'Europe/Paris',\r\n }).format(new Date(value));\r\n});\r\n\r\nVue.filter('firstSentence', (value) => {\r\n if (value) return value.split('.')[0].trim();\r\n});\r\n\r\nVue.filter('formatChannelName', (value) => {\r\n let formatedChannelName = value;\r\n /*\r\n if (value) {\r\n const channeltokenized = value.split('-');\r\n if (channeltokenized) {\r\n if (channeltokenized.length > 0)\r\n formatedChannelName = `<div class=\"channels-row__name\">${channeltokenized[0].trim()}</div>`;\r\n if (channeltokenized.length > 1)\r\n formatedChannelName += `<div class=\"channels-row__topic\">${channeltokenized.slice(1).join('-')}</div>`;\r\n }\r\n }\r\n */\r\n return formatedChannelName;\r\n});\r\n\r\nVue.filter('formatChannelNameWithoutTopic', (value) => {\r\n let formatedChannelName = value;\r\n /*\r\n if (value) {\r\n const channeltokenized = value.split('-');\r\n if (channeltokenized) {\r\n if (channeltokenized.length > 0)\r\n formatedChannelName = `${channeltokenized[0].trim()}`;\r\n }\r\n }\r\n */\r\n return formatedChannelName;\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[(!_vm.mobileApp)?_c('fragment',[_c('PreHomeContentV2')],1):_c('fragment',[(_vm.preCongressMode)?_c('MobileAppPreHome'):((!_vm.preCongressMode && !_vm.postCongressMode) || (_vm.postCongressMode && !_vm.ressourcesMovedTo365))?_c('MobileAppHappeningNow'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',[_c('HappeningNow',{attrs:{\"mode\":\"Live\",\"votingFirst\":false,\"Ismobile\":true}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bgEvent\"},[_c('b-col',{staticClass:\"pre-home__bg pt-5 d-flex justify-content-left\",style:({ backgroundImage: `url('${_vm.publicPath}img/events/${_vm.eventId}/pre-home-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"bgGradient\"}),_c('h3',{staticClass:\"liveTitle\"},[_c('div',{staticClass:\"d-inline-flex\"},[_c('span',{staticClass:\"material-icons-round\"},[_vm._v(\" sensors \")]),_vm._v(\" Happening now\")])])]),_c('div',[(_vm.isLive)?_c('div',[_c('b-tabs',{attrs:{\"content-class\":\"mt-3\",\"justified\":\"\"}},[_c('b-tab',{attrs:{\"active\":\"\"}},[(!_vm.isLoading && !_vm.onlineSessionsAvailable && _vm.Ismobile)?_c('div',[_c('b-alert',{attrs:{\"show\":_vm.postCongressMode,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" It was a pleasure to welcome you to \"+_vm._s(_vm.eventBaseTitle)+\". \")],1),_c('b-alert',{attrs:{\"show\":_vm.isLive && !_vm.postCongressMode,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" There are currently no live sessions taking place. \")],1)],1):_vm._e(),(_vm.onlineSessions && _vm.onlineSessions.length > 0)?_c('b-row',{staticClass:\"pb-5 mb-5\",attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"text-left pb-2 px-3\",attrs:{\"cols\":\"12\"}},[_c('span',{staticClass:\"channeltype-row__text font-black\"},[_vm._v(\"Online\")])]),_vm._l((_vm.onlineSessions),function(session){return _c('b-col',{key:session.id,staticClass:\"pb-2 pb-md-4 px-1 px-md-2 mb-3\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode,\"forceOnlineChannel\":true,\"isLiveSession\":session.isLive,\"forceProgress\":true,\"Ismobile\":_vm.Ismobile}})],1)})],2):_vm._e()],1)],1)],1):_vm._e(),(_vm.isLoading)?_c('b-row',{attrs:{\"no-gutters\":\"\"}},_vm._l((4),function(index){return _c('b-col',{key:index,staticClass:\"pb-2 pb-md-4 px-1 px-md-2\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"3\"}},[_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"320px\"}})],1)}),1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { constants } from 'src/constants';\r\nimport { mapState } from 'vuex';\r\nexport default {\r\n computed: {\r\n ...mapState({\r\n appVersion: state => state.app.version,\r\n eventId: state => state.app.eventId,\r\n locationTypeId: (state) => state.app.locationTypeId,\r\n locationCity: (state) => state.app.locationCity,\r\n locationEvent: (state) => state.app.locationEvent,\r\n showLiveBadge: (state) => state.app.showLiveBadge,\r\n showChannelOnline: (state) => state.app.showChannelOnline,\r\n }),\r\n /*\r\n showChannelOnline() {\r\n //console.log(\"🚀 ~ file: hybridEventMixin.js ~ line 10 ~ showChannelOnline ~ showChannelOnline\")\r\n let displayChannelOnline = null\r\n if (this.locationTypeId) {\r\n switch (this.locationTypeId) {\r\n case constants.EVENT_LOCATION_ONLINE:\r\n displayChannelOnline = true\r\n break\r\n case constants.EVENT_LOCATION_ONSITE:\r\n case constants.EVENT_LOCATION_HYBRID:\r\n default:\r\n displayChannelOnline = false\r\n break\r\n }\r\n }\r\n return displayChannelOnline\r\n },\r\n showLiveBadge() {\r\n //console.log(\"🚀 ~ file: hybridEventMixin.js ~ line 26 ~ showLiveBadge ~ showLiveBadge\")\r\n let displayLiveBadge = null\r\n if (this.locationTypeId) {\r\n switch (this.locationTypeId) {\r\n case constants.EVENT_LOCATION_ONLINE:\r\n displayLiveBadge = true\r\n break\r\n case constants.EVENT_LOCATION_ONSITE:\r\n case constants.EVENT_LOCATION_HYBRID:\r\n default:\r\n displayLiveBadge = false\r\n break\r\n }\r\n }\r\n return displayLiveBadge\r\n },\r\n */\r\n /*\r\n locationIcon() {\r\n let locationIcon = ''\r\n if (this.locationTypeId) {\r\n switch (this.locationTypeId) {\r\n case constants.EVENT_LOCATION_ONLINE:\r\n locationIcon = 'la-tv'\r\n break\r\n case constants.EVENT_LOCATION_ONSITE:\r\n case constants.EVENT_LOCATION_HYBRID:\r\n default:\r\n locationIcon = 'la-map-marker'\r\n break\r\n }\r\n }\r\n return locationIcon\r\n },\r\n locationLabel() {\r\n let locationLabel = ''\r\n //console.log(\"🚀 ~ file: hybridEventMixin.js ~ line 32 ~ locationLabel ~ this.locationTypeId\", this.locationTypeId)\r\n if (this.locationTypeId) {\r\n switch (this.locationTypeId) {\r\n case constants.EVENT_LOCATION_ONLINE:\r\n locationLabel = 'Channel'\r\n break\r\n case constants.EVENT_LOCATION_ONSITE:\r\n case constants.EVENT_LOCATION_HYBRID:\r\n default:\r\n locationLabel = 'Room'\r\n }\r\n }\r\n return locationLabel\r\n },\r\n */\r\n /*\r\n locationCity() {\r\n //console.log(\"🚀 ~ file: hybridEventMixin.js ~ line 77 ~ locationCity ~ location\")\r\n return this.location?.replace(/[^\\w\\s]/gi, '').split(' ')[0]?.trim()\r\n \r\n }\r\n */\r\n },\r\n\r\n methods: {\r\n getChannelName(channelOnlineName, channelOnsiteName, forceOnlineChannelName) {\r\n let channelName = ''\r\n //console.log(\"🚀 ~ file: hybridEventMixin.js ~ line 32 ~ locationLabel ~ this.locationTypeId\", this.locationTypeId)\r\n if (forceOnlineChannelName) {\r\n channelName = channelOnlineName\r\n }\r\n else if (this.locationTypeId) {\r\n switch (this.locationTypeId) {\r\n case constants.EVENT_LOCATION_ONLINE:\r\n channelName = channelOnlineName\r\n break\r\n case constants.EVENT_LOCATION_ONSITE:\r\n case constants.EVENT_LOCATION_HYBRID:\r\n default:\r\n channelName = channelOnsiteName\r\n break\r\n }\r\n }\r\n return channelName\r\n },\r\n getSessionThumbnail(session, forceOnlineChannelThumbnail) {\r\n if (session && session.thumbnailURL)\r\n return session.thumbnailURL\r\n else\r\n return this.getChannelThumbnail(session.channelCode, session.channelOnSiteCode, forceOnlineChannelThumbnail)\r\n },\r\n getChannelThumbnail(channelOnlineCode, channelOnsiteCode, forceOnlineChannelThumbnail) {\r\n //console.log(\"🚀 ~ file: hybridEventMixin.js ~ line 103 ~ getChannelThumbnail ~ getChannelThumbnail\")\r\n let channelThumbnail = null\r\n //console.log(\"🚀 ~ file: hybridEventMixin.js ~ line 32 ~ locationLabel ~ this.locationTypeId\", this.locationTypeId)\r\n if (forceOnlineChannelThumbnail) {\r\n channelThumbnail = `${this.publicPath}img/events/${this.eventId}/thumbnails/${channelOnlineCode}.png?v=${this.appVersion}`;\r\n }\r\n else if (this.locationTypeId) {\r\n switch (this.locationTypeId) {\r\n case constants.EVENT_LOCATION_ONLINE:\r\n if (channelOnlineCode)\r\n channelThumbnail = `${this.publicPath}img/events/${this.eventId}/thumbnails/${channelOnlineCode}.png?v=${this.appVersion}`;\r\n break\r\n case constants.EVENT_LOCATION_ONSITE:\r\n case constants.EVENT_LOCATION_HYBRID:\r\n if (channelOnsiteCode)\r\n channelThumbnail = `${this.publicPath}img/events/${this.eventId}/thumbnails/${channelOnsiteCode}.png?v=${this.appVersion}`;\r\n break\r\n }\r\n }\r\n if (!channelThumbnail) return require(`@/assets/images/congress/default-thumbnail.png`);\r\n else return channelThumbnail\r\n }\r\n }\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{staticClass:\"session__card\",attrs:{\"img-src\":_vm.currentSession.thumbnailURL,\"title\":_vm.currentSession.title},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"d-flex pb-2\"},[(!_vm.currentSession.isOnDemand)?_c('div',{staticClass:\"session__time font-bold\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.currentSession.startTime))+\" • \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.currentSession.startTime))+\" - \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.currentSession.endTime))+\" \")]):(_vm.currentSession.isOnDemand)?_c('div',{staticClass:\"session__time\"},[_vm._v(\"On Demand\")]):_vm._e(),(!_vm.Ismobile)?_c('span',{staticClass:\"session__favorite__button\"},[_c('FavoriteButton',{attrs:{\"title\":_vm.currentSession.title,\"digitalSessionId\":_vm.currentSession.id,\"scientificSessionId\":_vm.currentSession.scientificSessionId,\"width\":\"20\",\"height\":\"20\"}})],1):_vm._e()]),_c('div',{staticClass:\"d-block text-left lh-1\"},[_c('div',{staticClass:\"session__type d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" co_present \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.currentSession.sessionType))])])]),_c('div',{staticClass:\"d-block text-left lh-1\"},[_c('div',{staticClass:\"session__channel d-inline-flex align-items-center font-regular mr-2\"},[_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" place \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.currentSession.channelOnSiteDisplayName))])]),(_vm.currentSession.channel)?_c('div',{staticClass:\"session__location--online d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"mr-1 material-icons-round\"},[_vm._v(\" cast \")]),_vm._v(\" \"),_c('span',[_vm._v(\" Online \")])]):_vm._e()])]},proxy:true},{key:\"footer\",fn:function(){return [_c('b-row',{staticClass:\"no-gutters\"},[(_vm.isLiveSession)?_c('b-col',{staticClass:\"session__progress\",attrs:{\"cols\":\"12\",\"xl\":\"\",\"order\":\"1\",\"order-xl\":\"1\"}},[(_vm.isLive || _vm.forceProgress)?_c('b-progress',{attrs:{\"value\":_vm.currentSession.progress,\"max\":_vm.currentSession.duration,\"height\":\"0.6em\"}}):_vm._e()],1):_vm._e(),(_vm.isLiveSession && !_vm.forceOnlineChannel && !_vm.interactivity && !_vm.Ismobile)?_c('b-col',{staticClass:\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"12\",\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[(!_vm.ressourcesMovedTo365)?_c('router-link',{staticClass:\"session_details text-nowrap stretched-link\",attrs:{\"to\":`/${_vm.eventRoute}/sessions/${_vm.currentSession.id}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})]):_c('a',{staticClass:\"session_details text-nowrap stretched-link\",attrs:{\"href\":`${_vm.esc365SessionUrl(_vm.currentSession.scientificSessionId)}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})])],1):_vm._e(),(!_vm.hideWatchButton)?_c('b-col',{staticClass:\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"12\",\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[_c('SessionButton',{staticClass:\"d-inline-block\",attrs:{\"session\":_vm.currentSession,\"forceInteract\":_vm.isReplay,\"Ismobile\":_vm.Ismobile}})],1):_vm._e()],1),(_vm.isLiveSession)?_c('b-row',{staticClass:\"mb-2\"},[(_vm.showVoteButton && _vm.currentSession.votingUrl)?_c('b-col',{staticClass:\"text-center mt-3\"},[_c('SessionVoteButton',{attrs:{\"renderAs\":\"button\",\"session\":_vm.currentSession,\"forceInteract\":false}})],1):_vm._e(),(_vm.showAskQuestionButton && _vm.currentSession.askQuestionUrl)?_c('b-col',{staticClass:\"text-center mt-3\"},[_c('AskQuestionButton',{attrs:{\"renderAs\":\"button\",\"session\":_vm.currentSession,\"forceInteract\":false}})],1):_vm._e()],1):_vm._e(),(_vm.mode == 'Coming' && !_vm.interactivity && !_vm.Ismobile)?_c('b-row',[_c('b-col',{staticClass:\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"12\"}},[(!_vm.ressourcesMovedTo365)?_c('router-link',{staticClass:\"session_details text-nowrap stretched-link\",attrs:{\"to\":`/${_vm.eventRoute}/sessions/${_vm.currentSession.id}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})]):_c('a',{staticClass:\"session_details text-nowrap stretched-link\",attrs:{\"href\":`${_vm.esc365SessionUrl(_vm.currentSession.scientificSessionId)}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})])],1)],1):_vm._e()]},proxy:true}])},[(_vm.currentSession.subTitle)?_c('div',{staticClass:\"session__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.currentSession.subTitle)+\" \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (((_vm.session.isLive || _vm.session.isInInterlude) && _vm.session.channelId) || _vm.session.isReplay || _vm.forceInteract)?_c('fragment',[(_vm.renderAs && _vm.renderAs === 'button')?_c('b-button',{staticClass:\"card-link text-white\",attrs:{\"pill\":\"\",\"variant\":\"congress\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onWatchClick.apply(null, arguments)}}},[(!_vm.isExternal)?[_c('font-awesome-icon',{attrs:{\"icon\":\"play-circle\",\"size\":\"lg\"}}),_vm._v(\" Watch \")]:_vm._e(),(_vm.isExternal)?[(_vm.isLoading)?_c('font-awesome-icon',{attrs:{\"icon\":\"spinner\",\"spin\":\"\"}}):_vm._e(),(!_vm.isLoading)?_c('font-awesome-icon',{attrs:{\"icon\":\"users\",\"size\":\"lg\"}}):_vm._e(),_vm._v(\" Join \")]:_vm._e()],2):_c('b-link',{staticClass:\"card-link stretched-link\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onWatchClick.apply(null, arguments)}}},[(!_vm.isExternal)?[_c('font-awesome-icon',{attrs:{\"icon\":\"play-circle\",\"size\":\"lg\"}}),_vm._v(\" Watch \")]:_vm._e(),(_vm.isExternal)?[(_vm.isLoading)?_c('font-awesome-icon',{attrs:{\"icon\":\"spinner\",\"spin\":\"\"}}):_vm._e(),(!_vm.isLoading)?_c('font-awesome-icon',{attrs:{\"icon\":\"users\",\"size\":\"lg\"}}):_vm._e(),_vm._v(\" Join \")]:_vm._e()],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment v-if=\"((session.isLive || session.isInInterlude) && session.channelId) || session.isReplay || forceInteract\">\r\n <!-- Render as button -->\r\n <b-button pill variant=\"congress\" v-if=\"renderAs && renderAs === 'button'\" @click.stop.prevent=\"onWatchClick\" class=\"card-link text-white\">\r\n <!-- Watch -->\r\n <template v-if=\"!isExternal\">\r\n <font-awesome-icon icon=\"play-circle\" size=\"lg\" />\r\n Watch\r\n </template>\r\n <!-- Join -->\r\n <template v-if=\"isExternal\">\r\n <font-awesome-icon v-if=\"isLoading\" icon=\"spinner\" spin />\r\n <font-awesome-icon v-if=\"!isLoading\" icon=\"users\" size=\"lg\" />\r\n Join\r\n </template>\r\n </b-button>\r\n\r\n <!-- Render as link -->\r\n <b-link v-else @click.stop.prevent=\"onWatchClick\" class=\"card-link stretched-link\">\r\n <!-- Watch -->\r\n <template v-if=\"!isExternal\">\r\n <font-awesome-icon icon=\"play-circle\" size=\"lg\" />\r\n Watch\r\n </template>\r\n <!-- Join -->\r\n <template v-if=\"isExternal\">\r\n <font-awesome-icon v-if=\"isLoading\" icon=\"spinner\" spin />\r\n <font-awesome-icon v-if=\"!isLoading\" icon=\"users\" size=\"lg\" />\r\n Join\r\n </template>\r\n </b-link>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { MediaType } from 'src/enums/media-type';\r\n import { OPEN_CHANNEL_MODAL, OPEN_MEDIA_MODAL } from 'src/store/actions';\r\n import { mapState } from 'vuex';\r\n\r\n export default {\r\n name: 'SessionButton',\r\n props: {\r\n session: Object,\r\n forceInteract: Boolean, // Only true if isReplay ?\r\n renderAs: {\r\n type: String,\r\n required: false,\r\n default: 'link',\r\n validator: function (value) {\r\n // The value must match one of these strings\r\n return value === null || ['button', 'link'].indexOf(value) !== -1;\r\n },\r\n },\r\n Ismobile: Boolean,\r\n },\r\n data() {\r\n return {\r\n isLoading: false,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n }),\r\n isExternal() {\r\n //!force interact added to avoid external link opening on replays with external link\r\n return !this.forceInteract && this.session.hasExternalLink;\r\n },\r\n },\r\n methods: {\r\n onWatchClick() {\r\n //console.log(` this.session.id ${this.session.id}`);\r\n //console.log(` this.session.channelId ${this.session.channelId}`);\r\n //console.log(` this.isExternal ${this.isExternal}`);\r\n //console.log(` this.eventRoute ${this.eventRoute}`);\r\n if (this.isExternal) {\r\n this.isLoading = true;\r\n\r\n MediaApiService.getSessionExternalLink(this.session.id).then(({ data }) => {\r\n if (data) {\r\n this.isLoading = false;\r\n\r\n if (data.hasAccess) {\r\n window.open(data.externalLink, '_blank'); // If an eternal link is provided (zoom for example), open in new tab\r\n } else {\r\n const metadata = { type: MediaType.SESSION, id: this.session.id };\r\n this.$store.dispatch(OPEN_MEDIA_MODAL, metadata);\r\n /*\r\n // If not access, open the channel modal to display it\r\n const params = { channelId: this.session.channelId };\r\n this.$store.dispatch(OPEN_CHANNEL_MODAL, params);\r\n */\r\n }\r\n }\r\n });\r\n } else if (this.session.isLive || this.session.isInInterlude) {\r\n if (!this.Ismobile) {\r\n const params = { channelId: this.session.channelId };\r\n this.$store.dispatch(OPEN_CHANNEL_MODAL, params);\r\n } else {\r\n //const escid = this.$route.query.escid;\r\n //this.$router.push(`/${this.eventRoute}/mobile-app/resource?eChanId=${this.session.encryptedChannelId}`);\r\n //this.$router.push(`/partner/media/resources?eChanId=${this.session.encryptedChannelId}&eescid=${escid}`);\r\n this.$router.push(`/partner/media/resources?eChanId=${this.session.encryptedChannelId}`);\r\n }\r\n } else {\r\n const metadata = { type: MediaType.SESSION, id: this.session.id };\r\n this.$store.dispatch(OPEN_MEDIA_MODAL, metadata);\r\n // console.log('🚀 ~ file: SessionButton.vue ~ line 95 ~ onWatchClick ~ metadata', metadata);\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style scoped>\r\n .session__card .card-link::after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n pointer-events: auto;\r\n content: '';\r\n background-color: rgba(0, 0, 0, 0);\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SessionButton.vue?vue&type=template&id=a23a6c72&scoped=true\"\nimport script from \"./SessionButton.vue?vue&type=script&lang=js\"\nexport * from \"./SessionButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./SessionButton.vue?vue&type=style&index=0&id=a23a6c72&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a23a6c72\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.session.votingUrl)?_c('fragment',[_c('IframeModal',{attrs:{\"url\":_vm.votingUrl,\"title\":_vm.votingTitle,\"visible\":_vm.showModal},on:{\"iframe-modal-close\":function($event){return _vm.onClose()}}}),(_vm.renderAs && _vm.renderAs === 'button')?_c('b-button',{staticClass:\"btn-interactivity card-link text-white d-flex justify-content-center align-items-center w-100 h-100\",attrs:{\"variant\":\"congress\"},on:{\"click\":_vm.onVoteClick}},[_vm._v(\" Vote \")]):_c('b-link',{staticClass:\"card-link d-flex justify-content-center align-items-center w-100 h-100\",on:{\"click\":_vm.onVoteClick}},[[_vm._v(\" Vote \")]],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.visible)?_c('div',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isloading && _vm.showWaiter),expression:\"isloading && showWaiter\"}],staticClass:\"full-page__container\"},[_c('b-spinner',{staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"variant\":\"light\",\"label\":\"loading\"}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isloading),expression:\"!isloading\"}],staticClass:\"full-page__container\"},[_c('div',{staticClass:\"header--static w-100\"},[_c('b-link',{staticClass:\"button__back text-white font-weight-bold w-100\",attrs:{\"variant\":\"clear\",\"size\":\"sm\"},on:{\"click\":_vm.onBackClick}},[_c('i',{staticClass:\"las la-3x la-t-plus-2 la-arrow-circle-left mr-1\"}),_vm._v(\" Back \")]),(_vm.title)?_c('div',{staticClass:\"title font-weight-bold w-100\"},[_vm._v(_vm._s(_vm.title))]):_vm._e()],1),(_vm.isContentVisible)?_c('iframe',{staticClass:\"full-page__iframe\",attrs:{\"src\":_vm.url,\"frameborder\":\"0\"},on:{\"load\":function($event){return _vm.onLoad()}}}):_vm._e()])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"visible\">\r\n <div v-show=\"isloading && showWaiter\" class=\"full-page__container\">\r\n <b-spinner style=\"width: 3rem; height: 3rem\" variant=\"light\" label=\"loading\"></b-spinner>\r\n </div>\r\n <div v-show=\"!isloading\" class=\"full-page__container\">\r\n <div class=\"header--static w-100\">\r\n <b-link variant=\"clear\" size=\"sm\" class=\"button__back text-white font-weight-bold w-100\" @click=\"onBackClick\">\r\n <i class=\"las la-3x la-t-plus-2 la-arrow-circle-left mr-1\"></i>\r\n Back\r\n </b-link>\r\n <div v-if=\"title\" class=\"title font-weight-bold w-100\">{{ title }}</div>\r\n </div>\r\n <iframe v-if=\"isContentVisible\" :src=\"url\" frameborder=\"0\" @load=\"onLoad()\" class=\"full-page__iframe\"></iframe>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n // import { SET_IS_LOADING } from 'src/store/mutations';\r\n export default {\r\n name: 'IframeModal',\r\n props: {\r\n url: String,\r\n visible: Boolean,\r\n title: String,\r\n showWaiter: {\r\n type: Boolean,\r\n required: false,\r\n default: true,\r\n },\r\n },\r\n components: {},\r\n data() {\r\n return {\r\n isloading: true,\r\n loaded: false,\r\n isContentVisible: false,\r\n };\r\n },\r\n watch: {\r\n url(newurl, odlurl) {\r\n if (newurl && newurl !== odlurl) {\r\n //console.log('onChange');\r\n this.isloading = true;\r\n this.$nextTick(() => {\r\n this.showContent();\r\n });\r\n }\r\n },\r\n visible(newvisible, oldvisible) {\r\n if (newvisible !== oldvisible) {\r\n if (newvisible) this.onShow();\r\n else this.onHide();\r\n }\r\n },\r\n },\r\n computed: {\r\n show: {\r\n get() {\r\n return this.visible;\r\n },\r\n },\r\n },\r\n created() {},\r\n methods: {\r\n onBackClick() {\r\n let eventDetails = { url: this.url };\r\n this.$emit('iframe-modal-close', eventDetails);\r\n },\r\n onLoad() {\r\n //console.log('onLoad');\r\n this.isloading = false;\r\n },\r\n onShow() {\r\n //console.log('onShow');\r\n document.body.classList.add('disable-scroll');\r\n },\r\n onHide() {\r\n //console.log('onHide');\r\n document.body.classList.remove('disable-scroll');\r\n },\r\n onHidden() {\r\n //console.log('onHidden');\r\n this.isloading = false;\r\n let eventDetails = { presentationId: this.presentationId };\r\n this.$emit('abstract-modal-hidden', eventDetails);\r\n this.showContent();\r\n },\r\n showContent() {\r\n //console.log('showContent');\r\n this.isContentVisible = true;\r\n },\r\n hideContent() {\r\n //console.log('hideContent');\r\n this.$nextTick(() => {\r\n this.isContentVisible = false;\r\n });\r\n },\r\n showLoading() {\r\n //console.log('showLoading');\r\n this.isloading = true;\r\n },\r\n hideLoading() {\r\n //console.log('hideLoading');\r\n this.$nextTick(() => {\r\n this.isloading = false;\r\n });\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n @import '~@/styles/theme';\r\n\r\n .full-page__container {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 9999;\r\n background-color: rgba(0, 0, 0, 0.7);\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 0;\r\n margin: 0;\r\n }\r\n\r\n .full-page__iframe {\r\n width: 100%;\r\n height: 100%;\r\n border: none;\r\n margin: 0;\r\n }\r\n\r\n .header--static {\r\n /*position: fixed;*/\r\n top: 0;\r\n left: 0;\r\n text-align: left;\r\n }\r\n\r\n .button__back {\r\n text-align: left;\r\n background-color: black;\r\n padding: 10px 20px 0px 20px;\r\n height: 40px;\r\n display: block;\r\n }\r\n\r\n .title {\r\n padding: 10px 20px 10px 20px;\r\n background-color: #e5e5e5;\r\n font-size: 1.2em;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IframeModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IframeModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IframeModal.vue?vue&type=template&id=03d35fd2&scoped=true\"\nimport script from \"./IframeModal.vue?vue&type=script&lang=js\"\nexport * from \"./IframeModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./IframeModal.vue?vue&type=style&index=0&id=03d35fd2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03d35fd2\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment v-if=\"session.votingUrl\">\r\n <IframeModal :url=\"votingUrl\" :title=\"votingTitle\" :visible=\"showModal\" @iframe-modal-close=\"onClose()\" />\r\n <!-- Render as button -->\r\n <b-button\r\n variant=\"congress\"\r\n v-if=\"renderAs && renderAs === 'button'\"\r\n class=\"btn-interactivity card-link text-white d-flex justify-content-center align-items-center w-100 h-100\"\r\n @click=\"onVoteClick\"\r\n >\r\n <!-- Vote -->\r\n Vote\r\n </b-button>\r\n\r\n <!-- Render as link -->\r\n <b-link v-else class=\"card-link d-flex justify-content-center align-items-center w-100 h-100\" @click=\"onVoteClick\">\r\n <!-- Vote -->\r\n <template> Vote </template>\r\n </b-link>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n //import { SET_IS_LOADING } from 'src/store/mutations';\r\n import IframeModal from 'src/components/Modals/IframeModal';\r\n export default {\r\n name: 'SessionVoteButton',\r\n props: {\r\n session: Object,\r\n forceInteract: Boolean,\r\n renderAs: {\r\n type: String,\r\n required: false,\r\n default: 'link',\r\n validator: function (value) {\r\n // The value must match one of these strings\r\n return value === null || ['button', 'link'].indexOf(value) !== -1;\r\n },\r\n },\r\n },\r\n data() {\r\n return {\r\n isLoading: false,\r\n votingUrl: null,\r\n votingTitle: null,\r\n showModal: false,\r\n };\r\n },\r\n components: {\r\n IframeModal,\r\n },\r\n computed: {},\r\n methods: {\r\n onVoteClick() {\r\n this.votingUrl = this.session.votingUrl;\r\n this.votingTitle = this.session.title;\r\n this.showModal = true;\r\n //this.$store.commit(SET_IS_LOADING, true);\r\n },\r\n onClose() {\r\n this.showModal = false;\r\n this.votingUrl = null;\r\n this.votingTitle = '';\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.btn-interactivity\r\n{\r\n padding: 0.5rem;\r\n}\r\n </style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionVoteButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionVoteButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SessionVoteButton.vue?vue&type=template&id=464217c4&scoped=true\"\nimport script from \"./SessionVoteButton.vue?vue&type=script&lang=js\"\nexport * from \"./SessionVoteButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./SessionVoteButton.vue?vue&type=style&index=0&id=464217c4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"464217c4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.session.askQuestionUrl)?_c('fragment',[_c('IframeModal',{attrs:{\"url\":_vm.askQuestionUrl,\"title\":_vm.askQuestionTitle,\"visible\":_vm.showModal},on:{\"iframe-modal-close\":function($event){return _vm.onClose()}}}),(_vm.renderAs && _vm.renderAs === 'button')?_c('b-button',{staticClass:\"btn-interactivity card-link text-white d-flex justify-content-center align-items-center w-100 h-100\",attrs:{\"variant\":\"congress\"},on:{\"click\":_vm.onAskQuestionClick}},[_vm._v(\" Ask a question \")]):_c('b-link',{staticClass:\"card-link d-flex justify-content-center align-items-center w-100 h-100\",on:{\"click\":_vm.onAskQuestionClick}},[[_vm._v(\" Ask a question \")]],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment v-if=\"session.askQuestionUrl\">\r\n <IframeModal :url=\"askQuestionUrl\" :title=\"askQuestionTitle\" :visible=\"showModal\" @iframe-modal-close=\"onClose()\" />\r\n <!-- Render as button -->\r\n <b-button\r\n variant=\"congress\"\r\n v-if=\"renderAs && renderAs === 'button'\"\r\n class=\"btn-interactivity card-link text-white d-flex justify-content-center align-items-center w-100 h-100\"\r\n @click=\"onAskQuestionClick\"\r\n >\r\n <!-- Ask a question --> \r\n Ask a question\r\n </b-button>\r\n\r\n <!-- Render as link -->\r\n <b-link v-else class=\"card-link d-flex justify-content-center align-items-center w-100 h-100\" @click=\"onAskQuestionClick\">\r\n <!-- Ask a question -->\r\n <template> Ask a question </template>\r\n </b-link>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n //import { SET_IS_LOADING } from 'src/store/mutations';\r\n import IframeModal from 'src/components/Modals/IframeModal';\r\n\r\n export default {\r\n name: 'AskQuestionButton',\r\n props: {\r\n session: Object,\r\n forceInteract: Boolean,\r\n renderAs: {\r\n type: String,\r\n required: false,\r\n default: 'link',\r\n validator: function (value) {\r\n // The value must match one of these strings\r\n return value === null || ['button', 'link'].indexOf(value) !== -1;\r\n },\r\n },\r\n },\r\n components: {\r\n IframeModal,\r\n },\r\n data() {\r\n return {\r\n showModal: false,\r\n askQuestionUrl: null,\r\n askQuestionTitle:null\r\n };\r\n },\r\n computed: {},\r\n methods: {\r\n onAskQuestionClick() {\r\n this.askQuestionUrl = this.session.askQuestionUrl;\r\n this.showModal = true;\r\n if(this.session.title && !this.askQuestionUrl.includes('pigeonhole'))\r\n this.askQuestionTitle = this.session.title;\r\n },\r\n onClose() {\r\n this.showModal = false;\r\n this.askQuestionUrl = null;\r\n this.askQuestionTitle = '';\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.btn-interactivity\r\n{\r\n padding: 0.5rem;\r\n}\r\n </style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AskQuestionButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AskQuestionButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AskQuestionButton.vue?vue&type=template&id=27a77791&scoped=true\"\nimport script from \"./AskQuestionButton.vue?vue&type=script&lang=js\"\nexport * from \"./AskQuestionButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./AskQuestionButton.vue?vue&type=style&index=0&id=27a77791&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"27a77791\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isLarge)?_c('div',[_c('b-button',{staticClass:\"btn-outline-congress\",attrs:{\"pill\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onFavClick.apply(null, arguments)}}},[_c('svg',{ref:\"self\",staticClass:\"fill-congress\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"viewBox\":`0 0 ${_vm.width} ${_vm.height}`},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onFavClick.apply(null, arguments)}}},[(_vm.isFavorite)?_c('use',{attrs:{\"xlink:href\":require(\"@/assets/images/platform/Bookmark-Full.svg\") + \"#Layer_1\"}}):_c('use',{attrs:{\"xlink:href\":require(\"@/assets/images/platform/Bookmark.svg\") + \"#Layer_1\"}}),_vm._v(\" Added \")]),(_vm.isFavorite)?_c('span',[_vm._v(\" Remove from My Programme \")]):_c('span',[_vm._v(\" Add to My Programme \")])])],1):_c('div',[_c('svg',{ref:\"self\",staticClass:\"fill-congress\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"viewBox\":`0 0 ${_vm.width} ${_vm.height}`},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onFavClick.apply(null, arguments)}}},[(_vm.isFavorite)?_c('use',{attrs:{\"xlink:href\":require(\"@/assets/images/platform/Bookmark-Full.svg\") + \"#Layer_1\"}}):_c('use',{attrs:{\"xlink:href\":require(\"@/assets/images/platform/Bookmark.svg\") + \"#Layer_1\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"isLarge\">\r\n <b-button pill class=\"btn-outline-congress\" @click.stop.prevent=\"onFavClick\">\r\n <svg ref=\"self\" :width=\"width\" :height=\"height\" :viewBox=\"`0 0 ${width} ${height}`\" class=\"fill-congress\" @click.stop.prevent=\"onFavClick\">\r\n <use v-if=\"isFavorite\" xlink:href=\"~@/assets/images/platform/Bookmark-Full.svg#Layer_1\" />\r\n <use v-else xlink:href=\"~@/assets/images/platform/Bookmark.svg#Layer_1\" />\r\n Added\r\n </svg>\r\n <span v-if=\"isFavorite\"> Remove from My Programme </span>\r\n <span v-else> Add to My Programme </span>\r\n </b-button>\r\n </div>\r\n <div v-else>\r\n <svg ref=\"self\" :width=\"width\" :height=\"height\" :viewBox=\"`0 0 ${width} ${height}`\" class=\"fill-congress\" @click.stop.prevent=\"onFavClick\">\r\n <use v-if=\"isFavorite\" xlink:href=\"~@/assets/images/platform/Bookmark-Full.svg#Layer_1\" />\r\n <use v-else xlink:href=\"~@/assets/images/platform/Bookmark.svg#Layer_1\" />\r\n </svg>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { ADD_FAV, REM_FAV } from 'src/store/actions';\r\n\r\n export default {\r\n name: 'FavoriteButton',\r\n props: {\r\n title: String,\r\n digitalSessionId: Number,\r\n scientificSessionId: Number,\r\n\r\n width: {\r\n type: String,\r\n default: '38',\r\n },\r\n height: {\r\n type: String,\r\n default: '38',\r\n },\r\n mode: {\r\n type: String,\r\n default: 'small',\r\n validator: function (value) {\r\n // The value must match one of these strings\r\n return value !== null && ['small', 'large'].indexOf(value) !== -1;\r\n },\r\n },\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n favs: (state) => state.auth.favs,\r\n }),\r\n isFavorite() {\r\n return this.favs.find((x) => x.digitalSessionId == this.digitalSessionId) !== undefined;\r\n },\r\n isLarge() {\r\n return this.mode == 'large';\r\n },\r\n },\r\n mounted() {\r\n //if (!this.title) console.warn('No title is configured for this button, it may affect analytics');\r\n },\r\n methods: {\r\n onFavClick() {\r\n let eventDetails = { eventId: this.eventId, digitalSessionId: this.digitalSessionId };\r\n if (!this.isFavorite) {\r\n this.$store.dispatch(ADD_FAV, eventDetails);\r\n this.$emit('favorite-add', eventDetails);\r\n } else {\r\n this.$store.dispatch(REM_FAV, eventDetails);\r\n this.$emit('favorite-remove', eventDetails);\r\n }\r\n\r\n //console.log('scientificSessionId', JSON.stringify(this.scientificSessionId));\r\n /* DataLayer */\r\n this.$gtm.push({\r\n event: 'onFavClick',\r\n eventId: this.eventId,\r\n title: this.title,\r\n digitalSessionId: `S${this.digitalSessionId}`,\r\n uniqId: `SESS${this.scientificSessionId}`,\r\n action: !this.isFavorite ? 'add' : 'remove',\r\n });\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FavoriteButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FavoriteButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FavoriteButton.vue?vue&type=template&id=a6602e72&scoped=true\"\nimport script from \"./FavoriteButton.vue?vue&type=script&lang=js\"\nexport * from \"./FavoriteButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./FavoriteButton.vue?vue&type=style&index=0&id=a6602e72&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a6602e72\",\n null\n \n)\n\nexport default component.exports","export default {\r\n methods: {\r\n esc365SessionUrl(scientificSessionId) {\r\n return `${process.env.VUE_APP_ESC365_BASE_URL}/session/${scientificSessionId}`;\r\n },\r\n esc365PersonUrl(personId) {\r\n return `${process.env.VUE_APP_ESC365_BASE_URL}/person/${personId}`;\r\n },\r\n esc365PresentationUrl(scientificPresentationId) {\r\n return `${process.env.VUE_APP_ESC365_BASE_URL}/presentation/${scientificPresentationId}`;\r\n },\r\n esc365AbstractUrl(scientificPresentationId) {\r\n return `${process.env.VUE_APP_ESC365_BASE_URL}/presentation/${scientificPresentationId}`;\r\n }\r\n }\r\n };\r\n ","<template>\r\n <b-card :img-src=\"currentSession.thumbnailURL\" :title=\"currentSession.title\" class=\"session__card\">\r\n <template #header>\r\n <div class=\"d-flex pb-2\">\r\n <div class=\"session__time font-bold\" v-if=\"!currentSession.isOnDemand\">\r\n {{ currentSession.startTime | formatUnixEpocDayPart }} • {{ currentSession.startTime | formatUnixEpocTimePart }} -\r\n {{ currentSession.endTime | formatUnixEpocTimePart }}\r\n </div>\r\n <div class=\"session__time\" v-else-if=\"currentSession.isOnDemand\">On Demand</div>\r\n <span class=\"session__favorite__button\" v-if=\"!Ismobile\">\r\n <FavoriteButton\r\n :title=\"currentSession.title\"\r\n :digitalSessionId=\"currentSession.id\"\r\n :scientificSessionId=\"currentSession.scientificSessionId\"\r\n width=\"20\"\r\n height=\"20\"\r\n />\r\n </span>\r\n </div>\r\n <div class=\"d-block text-left lh-1\">\r\n <div class=\"session__type d-inline-flex align-items-center font-regular\">\r\n <span class=\"mr-1 material-icons-outlined\"> co_present </span> <span>{{ currentSession.sessionType }}</span>\r\n </div>\r\n </div>\r\n <div class=\"d-block text-left lh-1\">\r\n <div class=\"session__channel d-inline-flex align-items-center font-regular mr-2\">\r\n <span class=\"mr-1 material-icons-outlined\"> place </span><span> {{ currentSession.channelOnSiteDisplayName }}</span>\r\n </div>\r\n\r\n <div v-if=\"currentSession.channel\" class=\"session__location--online d-inline-flex align-items-center font-regular\">\r\n <span class=\"mr-1 material-icons-round\"> cast </span> <span> Online </span>\r\n </div>\r\n </div>\r\n </template>\r\n <div class=\"session__subtitle\" v-if=\"currentSession.subTitle\">\r\n {{ currentSession.subTitle }}\r\n </div>\r\n\r\n <!-- <div class=\"session__time\" v-if=\"isLive\">({{ currentSession.duration }}mn)</div> -->\r\n\r\n <template #footer>\r\n <b-row class=\"no-gutters\">\r\n <b-col v-if=\"isLiveSession\" cols=\"12\" xl order=\"1\" order-xl=\"1\" class=\"session__progress\">\r\n <b-progress v-if=\"isLive || forceProgress\" :value=\"currentSession.progress\" :max=\"currentSession.duration\" height=\"0.6em\"></b-progress>\r\n </b-col>\r\n\r\n <b-col\r\n v-if=\"isLiveSession && !forceOnlineChannel && !interactivity && !Ismobile\"\r\n cols=\"12\"\r\n xl=\"session-btn\"\r\n order=\"2\"\r\n order-xl=\"2\"\r\n class=\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\"\r\n >\r\n <router-link v-if=\"!ressourcesMovedTo365\" :to=\"`/${eventRoute}/sessions/${currentSession.id}`\" class=\"session_details text-nowrap stretched-link\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i\r\n ></router-link>\r\n <a v-else :href=\"`${esc365SessionUrl(currentSession.scientificSessionId)}`\" class=\"session_details text-nowrap stretched-link\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i>\r\n </a>\r\n </b-col>\r\n\r\n <b-col\r\n v-if=\"!hideWatchButton\"\r\n cols=\"12\"\r\n xl=\"session-btn\"\r\n order=\"2\"\r\n order-xl=\"2\"\r\n class=\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\"\r\n >\r\n <SessionButton :session=\"currentSession\" :forceInteract=\"isReplay\" :Ismobile=\"Ismobile\" class=\"d-inline-block\" />\r\n </b-col>\r\n </b-row>\r\n <b-row v-if=\"isLiveSession\" class=\"mb-2\">\r\n <b-col v-if=\"showVoteButton && currentSession.votingUrl\" class=\"text-center mt-3\">\r\n <SessionVoteButton renderAs=\"button\" :session=\"currentSession\" :forceInteract=\"false\" class=\"\" />\r\n </b-col>\r\n <b-col v-if=\"showAskQuestionButton && currentSession.askQuestionUrl\" class=\"text-center mt-3\">\r\n <AskQuestionButton renderAs=\"button\" :session=\"currentSession\" :forceInteract=\"false\" class=\"\" />\r\n </b-col>\r\n </b-row>\r\n <b-row v-if=\"mode == 'Coming' && !interactivity && !Ismobile\">\r\n <b-col cols=\"12\" class=\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\">\r\n <router-link v-if=\"!ressourcesMovedTo365\" :to=\"`/${eventRoute}/sessions/${currentSession.id}`\" class=\"session_details text-nowrap stretched-link\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i\r\n ></router-link>\r\n <a v-else :href=\"`${esc365SessionUrl(currentSession.scientificSessionId)}`\" class=\"session_details text-nowrap stretched-link\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i>\r\n </a>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n </b-card>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import SessionButton from 'src/components/Buttons/SessionButton';\r\n import SessionVoteButton from 'src/components/Buttons/SessionVoteButton';\r\n import AskQuestionButton from 'src/components/Buttons/AskQuestionButton';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\n import esc365Mixin from 'src/mixins/esc365Mixin';\r\n\r\n export default {\r\n name: 'SessionCard',\r\n mixins: [hybridEventMixin,esc365Mixin],\r\n components: {\r\n SessionButton,\r\n SessionVoteButton,\r\n AskQuestionButton,\r\n FavoriteButton,\r\n },\r\n props: {\r\n currentSession: Object,\r\n isLive: Boolean,\r\n isLiveSession: Boolean,\r\n mode: String,\r\n forceOnlineChannel: Boolean,\r\n forceProgress: Boolean,\r\n hideWatchButton: Boolean,\r\n showVoteButton: Boolean,\r\n showAskQuestionButton: Boolean,\r\n Ismobile: Boolean,\r\n interactivity: Boolean,\r\n },\r\n computed: {\r\n isReplay() {\r\n return this.mode == 'Replay';\r\n },\r\n isComing() {\r\n return this.mode == 'Coming';\r\n },\r\n publicPath() {\r\n return process.env.BASE_URL;\r\n },\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n }),\r\n },\r\n methods: {\r\n navigateToSession(event) {\r\n if (this.interactivity || event.target.closest(\".session__favorite__button, .search__card__footer__action\")) {\r\n return;\r\n }\r\n this.$router.push(`/${this.eventRoute}/sessions/${this.currentSession.id}`);\r\n },\r\n\r\n },\r\n mounted() {},\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .session__progress {\r\n margin: auto;\r\n }\r\n\r\n .session_details {\r\n color: var(--congress);\r\n }\r\n\r\n .session_details:focus,\r\n .session_details:hover {\r\n color: var(--congress-dark);\r\n text-decoration: none;\r\n }\r\n\r\n .session__subtitle {\r\n font-size: 0.8em;\r\n }\r\n /* update card style */\r\n .card-title {\r\n color: #000;\r\n }\r\n\r\n .session__card{\r\n cursor: pointer;\r\n }\r\n\r\n .session__card img {\r\n border-radius: 2rem;\r\n }\r\n\r\n .card.session__card .card-header {\r\n display: block;\r\n }\r\n .card.session__card {\r\n border-radius: 2rem;\r\n border: 0;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n position: relative;\r\n bottom: 0;\r\n -webkit-transition: all 0.3s ease-in-out;\r\n -moz-transition: all 0.3s ease-in-out;\r\n -ms-transition: all 0.3s ease-in-out;\r\n -o-transition: all 0.3s ease-in-out;\r\n transition: all 0.3s ease-in-out;\r\n }\r\n\r\n .card-img-top {\r\n border-radius: 2rem;\r\n }\r\n\r\n .session__card .card-header {\r\n display: flex;\r\n background: #fff;\r\n border: 0;\r\n padding-top: 1rem;\r\n padding-bottom: 0;\r\n }\r\n\r\n .session__card .session__time {\r\n font-size: 0.9rem;\r\n color:var(--congress);\r\n }\r\n\r\n .session__card .session__favorite__button {\r\n margin-left: auto;\r\n cursor: pointer;\r\n z-index: 100;\r\n }\r\n\r\n .session__card .material-icons-outlined,\r\n .session__card .material-icons-round {\r\n font-size: 16px;\r\n }\r\n\r\n .card-title {\r\n font-family: 'Interstate WGL Black';\r\n font-size: 1.2em;\r\n }\r\n\r\n .session__card .card-body {\r\n padding-top: 0.5rem;\r\n }\r\n\r\n .card-text p {\r\n margin-bottom: 0;\r\n }\r\n\r\n .card-footer {\r\n padding-top: 0;\r\n padding-left: 2rem;\r\n padding-right: 2rem;\r\n padding-bottom: 1.4rem;\r\n }\r\n\r\n @include media-breakpoint-up(xl) {\r\n .col-xl-session-btn {\r\n flex: 0 0 88px;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SessionCard.vue?vue&type=template&id=a7ff5582&scoped=true\"\nimport script from \"./SessionCard.vue?vue&type=script&lang=js\"\nexport * from \"./SessionCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./SessionCard.vue?vue&type=style&index=0&id=a7ff5582&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a7ff5582\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"bgEvent \">\r\n <b-col\r\n cols=\"12\"\r\n class=\"pre-home__bg pt-5 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('${publicPath}img/events/${eventId}/pre-home-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"bgGradient\"></div>\r\n <h3 class=\"liveTitle\">\r\n <div class=\"d-inline-flex\"><span class=\"material-icons-round\"> sensors </span> Happening now</div>\r\n </h3>\r\n </b-col>\r\n\r\n <div>\r\n <!-- TABS TO SELECT ONSITE OR ONLINE LISTING -->\r\n <div v-if=\"isLive\">\r\n <b-tabs content-class=\"mt-3\" justified>\r\n <b-tab active>\r\n <div v-if=\"!isLoading && !onlineSessionsAvailable && Ismobile\">\r\n <!-- After Congress -->\r\n <b-alert :show=\"postCongressMode\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n It was a pleasure to welcome you to {{ eventBaseTitle }}.\r\n </b-alert>\r\n <!-- During Congress -->\r\n <!-- No live at this time -->\r\n <b-alert :show=\"isLive && !postCongressMode\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n There are currently no live sessions taking place.\r\n </b-alert>\r\n </div>\r\n <b-row v-if=\"onlineSessions && onlineSessions.length > 0\" no-gutters class=\"pb-5 mb-5\">\r\n <b-col cols=\"12\" class=\"text-left pb-2 px-3\">\r\n <span class=\"channeltype-row__text font-black\">Online</span>\r\n </b-col>\r\n <b-col cols=\"12\" md=\"4\" lg=\"3\" v-for=\"session in onlineSessions\" :key=\"session.id\" class=\"pb-2 pb-md-4 px-1 px-md-2 mb-3\">\r\n <SessionCard\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n :mode=\"mode\"\r\n :forceOnlineChannel=\"true\"\r\n :isLiveSession=\"session.isLive\"\r\n :forceProgress=\"true\"\r\n :Ismobile=\"Ismobile\"\r\n ></SessionCard>\r\n </b-col>\r\n </b-row>\r\n </b-tab> \r\n </b-tabs>\r\n </div>\r\n <!-- END TABS -->\r\n <!-- LISTING -->\r\n <!-- IsLoadingTemplate -->\r\n <b-row v-if=\"isLoading\" no-gutters>\r\n <b-col cols=\"12\" md=\"4\" lg=\"3\" v-for=\"index in 4\" :key=\"index\" class=\"pb-2 pb-md-4 px-1 px-md-2\">\r\n <b-skeleton-img no-aspect height=\"320px\"></b-skeleton-img>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import { constants } from 'src/constants';\r\n import { MediaApiService } from 'src/services/media-api';\r\n // import Treeselect from '@riophae/vue-treeselect';\r\n // import '@riophae/vue-treeselect/dist/vue-treeselect.css';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n import SessionCard from 'src/components/Cards/SessionCard';\r\n\r\n export default {\r\n name: 'HappeningNow',\r\n mixins: [hybridEventMixin],\r\n props: {\r\n // eventId: Number,\r\n mode: {\r\n type: String,\r\n default: 'Live',\r\n validator: function (value) {\r\n // The value must match one of these strings\r\n return value !== null && ['Live'].indexOf(value) !== -1;\r\n },\r\n },\r\n votingFirst: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n Ismobile: Boolean\r\n },\r\n components: {\r\n SessionCard,\r\n // Treeselect\r\n },\r\n data() {\r\n return {\r\n isLoading: true,\r\n isLoadingMore: false,\r\n sessions: [],\r\n skip: 0,\r\n loadMoreVisible: false,\r\n newReplaysAvailable: false,\r\n sessionAvailable: false,\r\n fetchLiveNowSessionsJob: null,\r\n fetchReplaySessionsJob: null,\r\n channelValues: null,\r\n channelOptions: [],\r\n daysValues: null,\r\n daysOptions: [],\r\n publicPath: process.env.BASE_URL,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n // confCmsData: state => state.app.confCmsData\r\n }),\r\n isReplay() {\r\n return this.mode == 'Replay';\r\n },\r\n isComing() {\r\n return this.mode == 'Coming';\r\n },\r\n isLive() {\r\n return this.mode == 'Live';\r\n },\r\n poolingLiveSessionsInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_LIVE_SESSIONS_INTERVAL);\r\n },\r\n poolingReplaySessionsInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_REPLAY_SESSIONS_INTERVAL);\r\n },\r\n onlineSessions() {\r\n return this.sessions?.filter((s) => s.isOnline);\r\n },\r\n onsiteSessions() {\r\n return this.sessions?.filter((s) => s.isOnsite);\r\n },\r\n channelFilterLabel() {\r\n return this.showChannelOnline ? 'Channels' : 'Rooms';\r\n },\r\n onlineSessionsAvailable() {\r\n return this.onlineSessions?.length > 0;\r\n },\r\n onsiteSessionsAvailable() {\r\n return this.onsiteSessions?.length > 0;\r\n },\r\n ...mapGetters(['isPoolingEnabled']),\r\n },\r\n watch: {\r\n isPoolingEnabled(enabled) {\r\n if (enabled) {\r\n if (this.isLive) this.fetchLiveNowSessions();\r\n if (this.isComing) this.fetchComingSessions();\r\n if (this.isReplay) this.fetchReplaySessions(); // this.refreshLoadMoreReplayButton();\r\n }\r\n },\r\n },\r\n mounted() {\r\n if (this.isLive) {\r\n this.fetchLiveNowSessions();\r\n\r\n // Polling live sessions...\r\n this.fetchLiveNowSessionsJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n this.fetchLiveNowSessions();\r\n }\r\n }, this.poolingLiveSessionsInterval);\r\n }\r\n\r\n if (this.isComing) this.fetchComingSessions();\r\n\r\n if (this.isReplay) {\r\n this.getChannelsOptions();\r\n this.getDaysOptions();\r\n\r\n this.fetchReplaySessions();\r\n\r\n // Polling replay sessions...\r\n this.fetchReplaySessionsJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n this.fetchReplaySessions(); //this.refreshLoadMoreReplayButton();\r\n }\r\n }, this.poolingReplaySessionsInterval);\r\n }\r\n },\r\n beforeDestroy() {\r\n clearInterval(this.fetchLiveNowSessionsJob);\r\n clearInterval(this.fetchReplaySessionsJob);\r\n },\r\n methods: {\r\n fetchLiveNowSessions() {\r\n MediaApiService.getAllLiveNowSessions(this.eventId, this.votingFirst, false,this.Ismobile).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n //data.filter((sess) => sess.isLiveNow);\r\n this.sessions = data;\r\n let nbSession = data.length;\r\n this.sessionAvailable = nbSession > 0;\r\n }\r\n });\r\n },\r\n fetchComingSessions() {\r\n MediaApiService.getComingSessions(this.eventId, this.skip, constants.LOAD_MORE_SESSIONS_COUNT + 1, false,this.Ismobile).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n // data.filter((sess) => !sess.isLiveNow);\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = data;\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n this.sessionAvailable = nbSession > 0;\r\n }\r\n });\r\n },\r\n fetchReplaySessions() {\r\n //console.log('fetchReplaySessions');\r\n\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n\r\n //No replays displayed fetch replays from 0\r\n if (!this.sessionAvailable) {\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n this.skip,\r\n constants.LOAD_MORE_SESSIONS_COUNT + 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = data;\r\n this.sessionAvailable = nbSession > 0;\r\n if (this.sessionAvailable) {\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n }\r\n });\r\n }\r\n //At least one replay displayed, check for new replays\r\n else {\r\n //console.log('fetchcheckNewReplaysAvailable');\r\n if (!this.isLoading) this.checkNewReplaysAvailable();\r\n /*\r\n MediaApiService.getReplaySessions(this.eventId, this.skip, 1).then(({ data }) => {\r\n if (data) {\r\n this.loadMoreVisible = data.length > 0;\r\n }\r\n });\r\n */\r\n }\r\n },\r\n //Check if new replays available comparing 1st dispayed item and 1st iem from fetch\r\n checkNewReplaysAvailable() {\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n 0,\r\n 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n if (data && data.length > 0) {\r\n //console.log(data[0].id);\r\n //console.log(this.sessions[0].id);\r\n this.newReplaysAvailable = data[0].id != this.sessions[0].id;\r\n }\r\n });\r\n },\r\n //Refresh replays list. Resets sessionAvailable, skip and dissmiss new replays alert\r\n refreshReplays() {\r\n //console.log('refreshReplays');\r\n this.isLoading = true;\r\n this.sessionAvailable = false;\r\n this.skip = 0;\r\n this.newReplaysAvailable = false;\r\n this.fetchReplaySessions();\r\n },\r\n /*\r\n refreshLoadMoreReplayButton() {\r\n MediaApiService.getReplaySessions(this.eventId, this.skip, 1).then(({ data }) => {\r\n if (data) {\r\n this.loadMoreVisible = data.length > 0;\r\n }\r\n });\r\n },\r\n */\r\n loadMore() {\r\n if (this.mode == 'Live') {\r\n this.loadMoreLiveNowSessions();\r\n }\r\n if (this.mode == 'Coming') {\r\n this.loadMoreComingSessions();\r\n }\r\n if (this.mode == 'Replay') {\r\n this.loadMoreReplaySessions();\r\n }\r\n },\r\n loadMoreLiveNowSessions() {\r\n this.isLoadingMore = true;\r\n MediaApiService.getLiveNowSessions(this.eventId, this.skip, constants.LOAD_MORE_SESSIONS_COUNT + 1, false).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n loadMoreComingSessions() {\r\n this.isLoadingMore = true;\r\n MediaApiService.getComingSessions(this.eventId, this.skip, constants.LOAD_MORE_SESSIONS_COUNT + 1, false).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n loadMoreReplaySessions() {\r\n this.isLoadingMore = true;\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n this.skip,\r\n constants.LOAD_MORE_SESSIONS_COUNT + 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n getChannelsOptions() {\r\n MediaApiService.getChannelsOptions(this.eventId).then(({ data }) => {\r\n if (data) {\r\n this.channelOptions = data;\r\n }\r\n });\r\n },\r\n onTreeSelectInput() {\r\n this.sessionAvailable = false;\r\n this.skip = 0;\r\n this.fetchReplaySessions();\r\n },\r\n getDaysOptions() {\r\n MediaApiService.getDaysOptions(this.eventId).then(({ data }) => {\r\n if (data) {\r\n this.daysOptions = data;\r\n }\r\n });\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .pre-home__bg {\r\n position: absolute;\r\n top: 0;\r\n left:0;\r\n right:0;\r\n padding-top: 2rem!important;\r\n min-height: 120px;\r\n background-size: 100%!important;\r\n z-index: 0;\r\n }\r\n\r\n .bgGradient {\r\n bottom: -1px;\r\n }\r\n\r\n .tabs {\r\n margin-top: 90px;\r\n }\r\n\r\n .material-icons-round {\r\n font-size: 2rem;\r\n color: red;\r\n margin-right: 0.5rem;\r\n }\r\n\r\n ::v-deep.nav-tabs {\r\n display: none;\r\n }\r\n\r\n .button__load-more {\r\n color: $secondary;\r\n background-color: var(--congress);\r\n border-radius: 6px;\r\n }\r\n\r\n .comming-next__title {\r\n display: inline-block;\r\n background-color: var(--congress);\r\n color: $secondary;\r\n border-radius: 2px;\r\n font-size: 1.2em;\r\n }\r\n\r\n .refresh-list__alert {\r\n cursor: pointer;\r\n }\r\n\r\n .alert_icon {\r\n color: var(--congress-dark);\r\n }\r\n\r\n .channeltype-row__text {\r\n color: $grey-dark;\r\n text-transform: uppercase;\r\n }\r\n /* MOBILE APP STYLE UPDATE */\r\n .bgEvent {\r\n background-repeat: no-repeat;\r\n height: 100vh;\r\n }\r\n\r\n .liveTitle {\r\n font-size: 1.7rem;\r\n z-index: 2;\r\n }\r\n\r\n .liveTitle img {\r\n height: 25px;\r\n }\r\n\r\n .bgEvent .card {\r\n border: 0;\r\n }\r\n\r\n .card-body {\r\n padding: 0.75rem 0.5rem;\r\n }\r\n\r\n .channeltype-row__text {\r\n color: #000;\r\n }\r\n\r\n .channeltype-row__text i {\r\n position: relative;\r\n top: 3px;\r\n }\r\n /* tabs*/\r\n ::v-deep .nav-tabs {\r\n display: none;\r\n }\r\n\r\n .nav-tabs .nav-link.active .channeltype-row__text {\r\n opacity: 1;\r\n }\r\n\r\n .nav-tabs .nav-link .channeltype-row__text {\r\n opacity: 0.6;\r\n }\r\n\r\n .tab-pane.active {\r\n min-width: calc(100vw - 2rem);\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HappeningNow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HappeningNow.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HappeningNow.vue?vue&type=template&id=d7c4b1f6&scoped=true\"\nimport script from \"./HappeningNow.vue?vue&type=script&lang=js\"\nexport * from \"./HappeningNow.vue?vue&type=script&lang=js\"\nimport style0 from \"./HappeningNow.vue?vue&type=style&index=0&id=d7c4b1f6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d7c4b1f6\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div>\r\n <!-- Happening now -->\r\n <div>\r\n <HappeningNow mode=\"Live\" :votingFirst=\"false\" :Ismobile=\"true\"></HappeningNow>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import HappeningNow from 'src/components/Blocks/HappeningNow';\r\n\r\n export default {\r\n name: 'MobileAppHappeningNow',\r\n components: {\r\n HappeningNow,\r\n },\r\n data() {\r\n return {};\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n }),\r\n },\r\n mounted() {},\r\n methods: {},\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HappeningNow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HappeningNow.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HappeningNow.vue?vue&type=template&id=5a099793&scoped=true\"\nimport script from \"./HappeningNow.vue?vue&type=script&lang=js\"\nexport * from \"./HappeningNow.vue?vue&type=script&lang=js\"\nimport style0 from \"./HappeningNow.vue?vue&type=style&index=0&id=5a099793&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a099793\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('b-col',{staticClass:\"pre-home__bg pt-5 d-flex justify-content-left\",style:({ backgroundImage: `url('${_vm.publicPath}img/events/${_vm.eventId}/pre-home-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"bgGradient\"}),_c('div',{staticClass:\"eventInfo\"},[_c('h1',[_vm._v(\" \"+_vm._s(_vm.eventName)+\" \"),_c('span',[_vm._v(_vm._s(_vm.locationCity))])]),(_vm.eventId==2811)?_c('div',{staticClass:\"font-bold lh-1 subtitleWCC\"},[_vm._v(\"together with World Congress of Cardiology\")]):_vm._e(),_c('div',{staticClass:\"eventDate mt-3\"},[_vm._v(_vm._s(_vm.locationType)+\", \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.eventStartDate))+\" - \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.eventEndDate)))]),_c('div',{staticClass:\"eventOrganiser\"},[_c('small',[_vm._v(\"Organised by the \"),_c('span',[_vm._v(_vm._s(_vm.organiserName))])])]),_c('div',{staticClass:\"eventBaseline my-5\",domProps:{\"innerHTML\":_vm._s(_vm.homeCmsData.tagline)}}),(_vm.confCmsData.register_active)?_c('div',[(_vm.userInfo && !_vm.userInfo.isRegistered)?_c('a',{staticClass:\"register__link btn btn-congress rounded-pill mt-2 with-icon\",attrs:{\"href\":_vm.confCmsData.register_button_link.url,\"target\":\"_blank\"}},[_c('span',{staticClass:\"material-icons-outlined align-middle mr-2\"},[_vm._v(\" confirmation_number \")]),_vm._v(\" \"+_vm._s(_vm.confCmsData.Register_button_link_text_register)+\" \")]):_vm._e(),(_vm.userInfo && _vm.userInfo.isRegistered && !_vm.isInternalLink(_vm.confCmsData.register_button_link_isRegistered.url ))?_c('a',{staticClass:\"register__link btn btn-congress rounded-pill mt-2 with-icon\",attrs:{\"href\":_vm.confCmsData.register_button_link_isRegistered.url,\"target\":\"_blank\"}},[_c('span',{staticClass:\"material-icons-outlined align-middle mr-2\"},[_vm._v(\" checklist \")]),_vm._v(\" \"+_vm._s(_vm.confCmsData.Register_button_link_text_isRegistered)+\" \")]):_vm._e(),(_vm.userInfo && _vm.userInfo.isRegistered && _vm.isInternalLink(_vm.confCmsData.register_button_link_isRegistered.url ))?_c('router-link',{staticClass:\"register__link btn btn-congress rounded-pill mt-2 with-icon\",attrs:{\"to\":_vm.confCmsData.register_button_link_isRegistered.url}},[_c('span',{staticClass:\"material-icons-outlined align-middle mr-2\"},[_vm._v(\" checklist \")]),_vm._v(\" \"+_vm._s(_vm.confCmsData.Register_button_link_text_isRegistered)+\" \")]):_vm._e(),(_vm.homeCmsData.quizz_active)?_c('TakeQuizzMobileWidget'):_vm._e()],1):_vm._e()])]),(!_vm.preCongressMode && !_vm.postCongressMode)?_c('HappeningNowBlock',{attrs:{\"mode\":\"Live\"}}):_vm._e(),_c('b-container',{staticClass:\"px-5 mb-5\",attrs:{\"fluid\":\"\"}},[_c('b-card-group',{staticClass:\"eventCards\",attrs:{\"deck\":\"\"}},[(_vm.indexIndustries || _vm.indexOnDemandSessions || _vm.indexLiveSessions)?_c('b-card',{staticClass:\"mb-3\",attrs:{\"title\":\"Programme\",\"img-src\":`${_vm.publicPath}img/events/${_vm.eventId}/scientific-programme.jpg?v=${this.appVersion}`,\"img-alt\":\"Image\",\"img-top\":\"\",\"tag\":\"article\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/programme`},scopedSlots:_vm._u([{key:\"default\",fn:function({ href, navigate }){return [_c('b-button',{staticClass:\"stretched-link\",attrs:{\"pill\":\"\",\"href\":href,\"variant\":\"congress\"},on:{\"click\":navigate}},[_vm._v(\"Browse\")])]}}],null,false,1490049647)})]},proxy:true}],null,false,3970540273)},[_c('b-card-text',[_vm._v(\" Browse the scientific programme and see what you don’t want to miss. \")])],1):_vm._e(),(_vm.indexSpeakers)?_c('b-card',{staticClass:\"mb-3\",attrs:{\"title\":\"Faculty & presenters\",\"img-src\":`${_vm.publicPath}img/events/${_vm.eventId}/faculty-presenter.jpg?v=${this.appVersion}`,\"img-alt\":\"Image\",\"img-top\":\"\",\"tag\":\"article\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/faculty`},scopedSlots:_vm._u([{key:\"default\",fn:function({ href, navigate }){return [_c('b-button',{staticClass:\"stretched-link\",attrs:{\"pill\":\"\",\"href\":href,\"variant\":\"congress\"},on:{\"click\":navigate}},[_vm._v(\"Discover\")])]}}],null,false,584635554)})]},proxy:true}],null,false,2926828969)},[_c('b-card-text',[_vm._v(\" Discover the leading experts presenting at this event. \")])],1):_vm._e(),(_vm.indexAbstracts)?_c('b-card',{staticClass:\"mb-3\",attrs:{\"title\":\"Abstracts\",\"img-src\":`${_vm.publicPath}img/events/${_vm.eventId}/abstract.jpg?v=${this.appVersion}`,\"img-alt\":\"Image\",\"img-top\":\"\",\"tag\":\"article\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/abstract`},scopedSlots:_vm._u([{key:\"default\",fn:function({ href, navigate }){return [_c('b-button',{staticClass:\"stretched-link\",attrs:{\"pill\":\"\",\"href\":href,\"variant\":\"congress\"},on:{\"click\":navigate}},[_vm._v(\"Start now\")])]}}],null,false,3411980167)})]},proxy:true}],null,false,1935315751)},[_c('b-card-text',[_vm._v(\" Browse through the latest science. \")])],1):_vm._e(),_c('b-card',{staticClass:\"mb-3\",attrs:{\"title\":\"My programme\",\"img-src\":`${_vm.publicPath}img/events/${_vm.eventId}/schedule-overview.jpg?v=${this.appVersion}`,\"img-alt\":\"Image\",\"img-top\":\"\",\"tag\":\"article\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/my-programme`},scopedSlots:_vm._u([{key:\"default\",fn:function({ href, navigate }){return [_c('b-button',{staticClass:\"stretched-link\",attrs:{\"pill\":\"\",\"href\":href,\"variant\":\"congress\"},on:{\"click\":navigate}},[_vm._v(\"Access\")])]}}])})]},proxy:true}])},[_c('b-card-text',[_vm._v(\" Your bookmarked sessions are all here. \")])],1)],1)],1),_c('RegisterPromoWidget',{staticClass:\"phr\"}),_c('AuthoredSlidesBlock',{attrs:{\"homeCmsData\":_vm.homeCmsData}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.preCongressMode && _vm.homeCmsData && _vm.homeCmsData.quizz_active)?_c('fragment',[_c('div',{staticClass:\"quiz-hero d-xl-none d-lg-block d-md-block d-sm-block bv-d-xs-down-block text-center mt-3\"},[_c('h5',[_vm._v(_vm._s(_vm.homeCmsData.quizz_text))]),_c('p',[_c('b-button',{attrs:{\"variant\":\"outline-light\",\"href\":_vm.homeCmsData.quizz_link.url,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.homeCmsData.quizz_link_text)+\" \"),_c('i',{staticClass:\"las la-long-arrow-alt-right\"})])],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment v-if=\"preCongressMode && homeCmsData && homeCmsData.quizz_active\">\r\n <!-- Quiz -->\r\n <div class=\"quiz-hero d-xl-none d-lg-block d-md-block d-sm-block bv-d-xs-down-block text-center mt-3\">\r\n <h5>{{ homeCmsData.quizz_text }}</h5>\r\n <p>\r\n <b-button variant=\"outline-light\" :href=\"homeCmsData.quizz_link.url\" target=\"_blank\"\r\n >{{ homeCmsData.quizz_link_text }}\r\n <i class=\"las la-long-arrow-alt-right\"></i>\r\n </b-button>\r\n </p>\r\n </div>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n\r\n export default {\r\n name: 'TakeQuizzMobileWidget',\r\n computed: {\r\n ...mapState({\r\n homeCmsData: state => state.app.homeCmsData,\r\n preCongressMode: (state) => state.app.preCongressMode\r\n })\r\n },\r\n mounted() {\r\n // If needed...\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TakeQuizzMobileWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TakeQuizzMobileWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TakeQuizzMobileWidget.vue?vue&type=template&id=466fa7a5&scoped=true\"\nimport script from \"./TakeQuizzMobileWidget.vue?vue&type=script&lang=js\"\nexport * from \"./TakeQuizzMobileWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./TakeQuizzMobileWidget.vue?vue&type=style&index=0&id=466fa7a5&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"466fa7a5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.postCongressMode && _vm.confCmsData.register_active)?_c('b-col',{staticClass:\"mt-3 mb-5\",attrs:{\"cols\":\"12\"}},[(!_vm.userInfo.isRegistered || (_vm.isRegisteredOverrided != null && !_vm.isRegisteredOverrided))?_c('div',{staticClass:\"register__wrapper col-10 col-md-8 col-lg-6 col-xl-4\",style:({ backgroundImage: `url('${_vm.publicPath}img/events/${_vm.eventId}/banner-register.png?v=${this.appVersion}')` })},[_c('div',{staticClass:\"CTA__Text\"},[_vm._v(\" \"+_vm._s(_vm.confCmsData.register_text)+\" \")]),_c('div',{staticClass:\"CTA__Action\"},[_c('span',{staticClass:\"register__link__wrapper\"},[_c('a',{staticClass:\"register__link btn\",attrs:{\"href\":_vm.confCmsData.register_button_link.url,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.confCmsData.register_button_text)+\" \")])])])]):_vm._e(),(_vm.userInfo.isRegistered && (_vm.isRegisteredOverrided == null || _vm.isRegisteredOverrided))?_c('div',{staticClass:\"register__wrapper col-10 col-md-8 col-lg-6 col-xl-4\",style:({ backgroundImage: `url('${_vm.publicPath}img/events/${_vm.eventId}/banner-register.png?v=${this.appVersion}')` })},[_c('div',{staticClass:\"CTA__Text\"},[_vm._v(\" \"+_vm._s(_vm.confCmsData.register_text_isRegistered)+\" \")]),_c('div',{staticClass:\"CTA__Action\"},[_c('span',{staticClass:\"register__link__wrapper\"},[(!_vm.isInternalLink(_vm.confCmsData.register_button_link_isRegistered.url))?_c('a',{staticClass:\"register__link btn\",attrs:{\"href\":_vm.confCmsData.register_button_link_isRegistered.url,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.confCmsData.register_button_text_isRegistered)+\" \")]):_c('router-link',{staticClass:\"register__link btn\",attrs:{\"to\":_vm.confCmsData.register_button_link_isRegistered.url}},[_vm._v(\" \"+_vm._s(_vm.confCmsData.register_button_text_isRegistered)+\" \")])],1)])]):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","class HtmlHelper {\r\n static decodeHTMLEntities(text) {\r\n //console.log(text);\r\n var textArea = document.createElement('textarea');\r\n textArea.innerHTML = text;\r\n return textArea.value;\r\n }\r\n\r\n static removeExtraBreakLines(text) {\r\n //console.log(text);\r\n return text.replace(/<BR><BR>/g, '<br>');\r\n }\r\n\r\n static isInternalLink(url) {\r\n return url.startsWith('/');\r\n }\r\n}\r\n\r\nexport { HtmlHelper };\r\n","<template>\r\n <b-col cols=\"12\" class=\"mt-3 mb-5\" v-if=\"!postCongressMode && confCmsData.register_active\">\r\n <div\r\n v-if=\"!userInfo.isRegistered || (isRegisteredOverrided != null && !isRegisteredOverrided)\"\r\n class=\"register__wrapper col-10 col-md-8 col-lg-6 col-xl-4\"\r\n :style=\"{ backgroundImage: `url('${publicPath}img/events/${eventId}/banner-register.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"CTA__Text\">\r\n {{ confCmsData.register_text }}\r\n </div>\r\n <div class=\"CTA__Action\">\r\n <span class=\"register__link__wrapper\">\r\n <a :href=\"confCmsData.register_button_link.url\" class=\"register__link btn\" target=\"_blank\">\r\n {{ confCmsData.register_button_text }}\r\n </a>\r\n </span>\r\n </div>\r\n </div>\r\n <div\r\n v-if=\"userInfo.isRegistered && (isRegisteredOverrided == null || isRegisteredOverrided)\"\r\n class=\"register__wrapper col-10 col-md-8 col-lg-6 col-xl-4\"\r\n :style=\"{ backgroundImage: `url('${publicPath}img/events/${eventId}/banner-register.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"CTA__Text\">\r\n {{ confCmsData.register_text_isRegistered }}\r\n </div>\r\n <div class=\"CTA__Action\">\r\n <span class=\"register__link__wrapper\">\r\n <a\r\n v-if=\"!isInternalLink(confCmsData.register_button_link_isRegistered.url)\"\r\n :href=\"confCmsData.register_button_link_isRegistered.url\"\r\n class=\"register__link btn\"\r\n target=\"_blank\"\r\n >\r\n {{ confCmsData.register_button_text_isRegistered }}\r\n </a>\r\n <router-link v-else :to=\"confCmsData.register_button_link_isRegistered.url\" class=\"register__link btn\">\r\n {{ confCmsData.register_button_text_isRegistered }}\r\n </router-link>\r\n </span>\r\n </div>\r\n </div>\r\n </b-col>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { HtmlHelper } from 'src/utils/html-helper';\r\n\r\n export default {\r\n name: 'RegisterPromoWidget',\r\n props: {\r\n isRegisteredOverrided: {\r\n type: Boolean,\r\n default: null\r\n } \r\n },\r\n computed: {\r\n ...mapState({\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n confCmsData: (state) => state.app.confCmsData,\r\n appVersion: (state) => state.app.version,\r\n eventId: (state) => state.app.eventId,\r\n userInfo: (state) => state.app.userInfo,\r\n }),\r\n },\r\n data() {\r\n return {\r\n publicPath: process.env.BASE_URL,\r\n };\r\n },\r\n mounted() {\r\n // If needed...\r\n },\r\n methods: {\r\n isInternalLink(url) {\r\n return HtmlHelper.isInternalLink(url);\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .register__wrapper {\r\n background: $grey-lighter;\r\n border-radius: 10px;\r\n padding: 1.5rem;\r\n font-size: 1.2rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n max-width: 550px;\r\n margin: 0 auto;\r\n flex-wrap: wrap;\r\n -webkit-box-align: center;\r\n align-items: center;\r\n text-align: left;\r\n }\r\n\r\n .register__link {\r\n text-decoration: none;\r\n }\r\n\r\n /*.register__link__wrapper {\r\n float: right;\r\n }*/\r\n\r\n .register__link {\r\n background: var(--congress);\r\n color: white;\r\n padding: 0.5rem 1rem;\r\n border-radius: 6px;\r\n font-size: 0.95rem;\r\n text-decoration: none;\r\n\r\n &:hover,\r\n :focus {\r\n color: var(--congress-lighter);\r\n }\r\n }\r\n\r\n .CTA__Text {\r\n flex: 0 1 100%;\r\n text-align: center;\r\n margin-bottom: 15px;\r\n }\r\n\r\n .CTA__Action {\r\n flex: 0 0 100%;\r\n text-align: center;\r\n }\r\n\r\n @media (min-width: 600px) {\r\n .CTA__Action {\r\n flex: 0 0 auto;\r\n }\r\n\r\n .CTA__Text {\r\n flex: 1 1 0%;\r\n padding-right: 25px;\r\n text-align: left;\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n .CTA__Action a {\r\n border: 0px;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n display: inline-block;\r\n padding: 13px 20px;\r\n position: relative;\r\n text-align: center;\r\n text-decoration: none;\r\n vertical-align: top;\r\n opacity: 1;\r\n margin: 0px;\r\n font-size: 15px;\r\n line-height: 1;\r\n background: var(--congress);\r\n color: rgb(255, 255, 255);\r\n }\r\n\r\n .col-10.register__wrapper {\r\n background-size: cover!important;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegisterPromoWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegisterPromoWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RegisterPromoWidget.vue?vue&type=template&id=bede973e&scoped=true\"\nimport script from \"./RegisterPromoWidget.vue?vue&type=script&lang=js\"\nexport * from \"./RegisterPromoWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./RegisterPromoWidget.vue?vue&type=style&index=0&id=bede973e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bede973e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{staticClass:\"mb-5 px-5\",attrs:{\"fluid\":\"\"}},[_c('b-card-group',{staticClass:\"eventCards\",attrs:{\"deck\":\"\"}},_vm._l((_vm.homeCmsData.slider_blocks),function(sliderBlock){return _c('b-card',{key:sliderBlock._uid,staticClass:\"mb-3\",attrs:{\"title\":sliderBlock.slider_title,\"img-src\":sliderBlock.slider_image.filename,\"img-alt\":\"Image\",\"img-top\":\"\",\"tag\":\"article\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('b-button',{staticClass:\"stretched-link\",attrs:{\"pill\":\"\",\"variant\":\"congress\",\"to\":sliderBlock.slider_button_link[0].link_internal ? sliderBlock.slider_button_link[0].link_value : null,\"href\":!sliderBlock.slider_button_link[0].link_internal ? sliderBlock.slider_button_link[0].link_value : null,\"target\":!sliderBlock.slider_button_link[0].link_internal && sliderBlock.slider_button_link[0].link_new_tab ? '_blank' : '_self'}},[_vm._v(\" \"+_vm._s(sliderBlock.slider_button_link[0].link_text)+\" \")])]},proxy:true}],null,true)},[_c('b-card-text',{domProps:{\"innerHTML\":_vm._s(_vm.$options.filters.formatStoryRichText(sliderBlock.slider_text))}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n<b-container fluid class=\"mb-5 px-5\">\r\n <b-card-group deck class=\"eventCards\">\r\n <b-card\r\n v-for=\"sliderBlock in homeCmsData.slider_blocks\"\r\n :key=\"sliderBlock._uid\"\r\n :title=\"sliderBlock.slider_title\"\r\n :img-src=\"sliderBlock.slider_image.filename\"\r\n img-alt=\"Image\"\r\n img-top\r\n tag=\"article\"\r\n class=\"mb-3\"\r\n >\r\n <b-card-text v-html=\"$options.filters.formatStoryRichText(sliderBlock.slider_text)\"> </b-card-text>\r\n <template #footer>\r\n <b-button\r\n pill\r\n class=\"stretched-link\"\r\n variant=\"congress\"\r\n :to=\"sliderBlock.slider_button_link[0].link_internal ? sliderBlock.slider_button_link[0].link_value : null\"\r\n :href=\"!sliderBlock.slider_button_link[0].link_internal ? sliderBlock.slider_button_link[0].link_value : null\"\r\n :target=\"!sliderBlock.slider_button_link[0].link_internal && sliderBlock.slider_button_link[0].link_new_tab ? '_blank' : '_self'\"\r\n >\r\n {{ sliderBlock.slider_button_link[0].link_text }}\r\n </b-button>\r\n </template>\r\n </b-card>\r\n </b-card-group>\r\n </b-container>\r\n </template>\r\n\r\n <script>\r\n import { mapState } from 'vuex';\r\n export default {\r\n name: 'AuthoredSlidesBlock',\r\n computed: {\r\n ...mapState({\r\n homeCmsData: (state) => state.app.homeCmsData,\r\n\r\n }),\r\n },\r\n}\r\n</script>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthoredSlidesBlock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthoredSlidesBlock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AuthoredSlidesBlock.vue?vue&type=template&id=0d3fa598\"\nimport script from \"./AuthoredSlidesBlock.vue?vue&type=script&lang=js\"\nexport * from \"./AuthoredSlidesBlock.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.happeningNowSessionsChunks && _vm.happeningNowSessionsChunks.length > 0)?_c('b-container',{staticClass:\"happeningNowCarousel p-0\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"d-flex px-3 px-sm-5\",attrs:{\"align-h\":\"between\"}},[_c('div',[_c('h2',{staticClass:\"mb-0\"},[_vm._v(\"Happening now\")])]),_c('div',{staticClass:\"ml-auto\"},[_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/live`},scopedSlots:_vm._u([{key:\"default\",fn:function({ href, navigate }){return [_c('b-button',{attrs:{\"pill\":\"\",\"href\":href,\"variant\":\"dark\"},on:{\"click\":navigate}},[_vm._v(\"View all\"),_c('span',{staticClass:\"material-icons-outlined align-middle ml-2\",staticStyle:{\"font-size\":\"18px\"}},[_vm._v(\" arrow_forward \")])])]}}],null,false,2885576079)})],1)]),(_vm.happeningNowSessionsChunks && _vm.happeningNowSessionsChunks.length > 0)?_c('div',[_c('b-carousel',{attrs:{\"id\":\"carousel-online\",\"interval\":0,\"controls\":\"\",\"fade\":\"\"}},_vm._l((_vm.happeningNowSessionsChunks),function(chunk,index){return _c('b-carousel-slide',{key:index,staticClass:\"px-5 py-4\"},[_c('b-row',_vm._l((chunk),function(session){return _c('b-col',{key:session.id,staticClass:\"mb-4 card-deck m-0 p-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode,\"forceOnlineChannel\":true,\"forceProgress\":true,\"hideWatchButton\":false,\"isLiveSession\":true}})],1)}),1)],1)}),1)],1):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-container fluid class=\"happeningNowCarousel p-0\" v-if=\"happeningNowSessionsChunks && happeningNowSessionsChunks.length > 0\">\r\n <div align-h=\"between\" class=\"d-flex px-3 px-sm-5\">\r\n <div>\r\n <h2 class=\"mb-0\">Happening now</h2>\r\n </div>\r\n <div class=\"ml-auto\">\r\n <router-link :to=\"`/${eventRoute}/live`\" v-slot=\"{ href, navigate }\">\r\n <b-button pill :href=\"href\" @click=\"navigate\" variant=\"dark\"\r\n >View all<span class=\"material-icons-outlined align-middle ml-2\" style=\"font-size:18px;\"> arrow_forward </span></b-button\r\n >\r\n </router-link>\r\n </div>\r\n </div>\r\n <div v-if=\"happeningNowSessionsChunks && happeningNowSessionsChunks.length > 0\">\r\n <b-carousel id=\"carousel-online\" :interval=\"0\" controls fade>\r\n <b-carousel-slide v-for=\"(chunk, index) in happeningNowSessionsChunks\" :key=\"index\" class=\"px-5 py-4\">\r\n <b-row>\r\n <b-col v-for=\"session in chunk\" :key=\"session.id\" cols=\"12\" sm=\"6\" md=\"6\" lg=\"4\" xl=\"3\" class=\"mb-4 card-deck m-0 p-0\">\r\n <SessionCard\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n :mode=\"mode\"\r\n :forceOnlineChannel=\"true\"\r\n :forceProgress=\"true\"\r\n :hideWatchButton=\"false\"\r\n :isLiveSession=\"true\"\r\n >\r\n </SessionCard>\r\n </b-col>\r\n </b-row>\r\n </b-carousel-slide>\r\n </b-carousel>\r\n </div>\r\n </b-container>\r\n</template>\r\n\r\n<script>\r\n import SessionCard from 'src/components/Cards/SessionCard';\r\n import { constants } from 'src/constants';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { mapGetters, mapState } from 'vuex';\r\n \r\n export default {\r\n name: 'HappeningNowBlock',\r\n mixins: [hybridEventMixin],\r\n props: {\r\n mode: {\r\n type: String,\r\n default: 'Live',\r\n validator: function (value) {\r\n // The value must match one of these strings\r\n return value !== null && ['Live', 'Coming', 'Replay'].indexOf(value) !== -1;\r\n },\r\n },\r\n },\r\n components: {\r\n SessionCard,\r\n },\r\n data() {\r\n return {\r\n sessions: [],\r\n fetchLiveNowSessionsJob: null,\r\n };\r\n },\r\n watch: {\r\n isPoolingEnabled(enabled) {\r\n if (enabled) {\r\n this.fetchLiveNowSessions();\r\n }\r\n },\r\n },\r\n beforeDestroy() {\r\n clearInterval(this.fetchLiveNowSessionsJob);\r\n },\r\n mounted() {\r\n this.fetchLiveNowSessions();\r\n // Polling live sessions...\r\n this.fetchLiveNowSessionsJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n this.fetchLiveNowSessions();\r\n }\r\n }, this.poolingLiveSessionsInterval);\r\n },\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n }),\r\n isLive() {\r\n return this.mode == 'Live';\r\n },\r\n sessionsBySlide() {\r\n let responsivechannelsPerSlide;\r\n if (this.$screen.xxl) responsivechannelsPerSlide = 4;\r\n else if (this.$screen.xl) responsivechannelsPerSlide = 4;\r\n else if (this.$screen.lg) responsivechannelsPerSlide = 3;\r\n else if (this.$screen.md) responsivechannelsPerSlide = 2;\r\n else if (this.$screen.sm) responsivechannelsPerSlide = 2;\r\n else if (this.$screen.xs) responsivechannelsPerSlide = 1;\r\n return responsivechannelsPerSlide;\r\n },\r\n happeningNowSessions() {\r\n if (this.locationTypeId === constants.EVENT_LOCATION_ONSITE) return this.sessions?.filter((s) => s.isOnsite);\r\n else this.locationTypeId === constants.EVENT_LOCATION_ONLINE || this.locationTypeId === constants.EVENT_LOCATION_HYBRID;\r\n return this.sessions?.filter((s) => s.isOnline);\r\n },\r\n happeningNowSessionsChunks() {\r\n return this.chunkArray(this.happeningNowSessions, this.sessionsBySlide);\r\n },\r\n poolingLiveSessionsInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_LIVE_SESSIONS_INTERVAL);\r\n },\r\n ...mapGetters(['isPoolingEnabled']),\r\n },\r\n methods: {\r\n fetchLiveNowSessions() {\r\n MediaApiService.getAllLiveNowSessions(this.eventId).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n this.sessions = data;\r\n }\r\n });\r\n },\r\n chunkArray(array, size) {\r\n const chunkedArray = [];\r\n for (let i = 0; i < array.length; i += size) {\r\n chunkedArray.push(array.slice(i, i + size));\r\n }\r\n return chunkedArray;\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n .happeningNowCarousel .carousel-control-next,\r\n .happeningNowCarousel .carousel-control-prev {\r\n background-color: #000;\r\n height: 40px;\r\n width: 36px;\r\n margin: auto;\r\n }\r\n .carousel-control-prev-icon,\r\n .carousel-control-next-icon {\r\n background-color: #000;\r\n }\r\n\r\n .happeningNowCarousel .carousel-control-prev {\r\n border-radius: 0 50px 50px 0;\r\n }\r\n\r\n .happeningNowCarousel .carousel-control-next {\r\n border-radius: 50px 0 0 50px;\r\n }\r\n\r\n .carousel-item {\r\n text-align: center;\r\n }\r\n\r\n .happeningNowCarousel .carousel-caption {\r\n position: static;\r\n padding: 0;\r\n min-width: 100%;\r\n color: #000;\r\n }\r\n\r\n @media (max-width: 576px) {\r\n .carousel-fade .carousel-item {\r\n padding-left: 1.96rem !important;\r\n padding-right: 1.96rem !important;\r\n }\r\n .happeningNowCarousel > div:first-child {\r\n padding-left: 1rem !important;\r\n padding-right: 1rem !important;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HappeningNowBlock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HappeningNowBlock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HappeningNowBlock.vue?vue&type=template&id=7d6f91ce\"\nimport script from \"./HappeningNowBlock.vue?vue&type=script&lang=js\"\nexport * from \"./HappeningNowBlock.vue?vue&type=script&lang=js\"\nimport style0 from \"./HappeningNowBlock.vue?vue&type=style&index=0&id=7d6f91ce&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <!-- Header -->\r\n <b-col\r\n cols=\"12\"\r\n class=\"pre-home__bg pt-5 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('${publicPath}img/events/${eventId}/pre-home-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"bgGradient\"></div>\r\n <div class=\"eventInfo\">\r\n <h1>\r\n {{ eventName }} <span>{{ locationCity }}</span>\r\n </h1>\r\n <div v-if=\"eventId==2811\" class=\"font-bold lh-1 subtitleWCC\">together with World Congress of Cardiology</div>\r\n <div class=\"eventDate mt-3\">{{ locationType }}, {{ eventStartDate | formatUnixEpocDayPart }} - {{ eventEndDate | formatUnixEpocDayPart }}</div>\r\n <div class=\"eventOrganiser\">\r\n <small\r\n >Organised by the <span>{{ organiserName }}</span></small\r\n >\r\n </div>\r\n <div class=\"eventBaseline my-5\" v-html=\"homeCmsData.tagline\"></div>\r\n <div v-if=\"confCmsData.register_active\">\r\n <a\r\n v-if=\"userInfo && !userInfo.isRegistered\"\r\n :href=\"confCmsData.register_button_link.url\"\r\n class=\"register__link btn btn-congress rounded-pill mt-2 with-icon\"\r\n target=\"_blank\"\r\n >\r\n <span class=\"material-icons-outlined align-middle mr-2\"> confirmation_number </span> {{ confCmsData.Register_button_link_text_register }}\r\n </a>\r\n <a\r\n v-if=\"userInfo && userInfo.isRegistered && !isInternalLink(confCmsData.register_button_link_isRegistered.url )\"\r\n :href=\"confCmsData.register_button_link_isRegistered.url\"\r\n target=\"_blank\"\r\n class=\"register__link btn btn-congress rounded-pill mt-2 with-icon\"\r\n >\r\n <span class=\"material-icons-outlined align-middle mr-2\"> checklist </span> {{ confCmsData.Register_button_link_text_isRegistered }}\r\n </a>\r\n <router-link\r\n v-if=\"userInfo && userInfo.isRegistered && isInternalLink(confCmsData.register_button_link_isRegistered.url )\"\r\n :to=\"confCmsData.register_button_link_isRegistered.url \"\r\n class=\"register__link btn btn-congress rounded-pill mt-2 with-icon\"\r\n >\r\n <span class=\"material-icons-outlined align-middle mr-2\"> checklist </span> {{ confCmsData.Register_button_link_text_isRegistered }}\r\n </router-link>\r\n\r\n <!-- Quiz (Mobile only) -->\r\n <TakeQuizzMobileWidget v-if=\"homeCmsData.quizz_active\" />\r\n </div>\r\n </div>\r\n </b-col>\r\n\r\n <HappeningNowBlock v-if=\"!preCongressMode && !postCongressMode\" mode=\"Live\" />\r\n\r\n <!-- NEW CARDS -->\r\n <b-container fluid class=\"px-5 mb-5\">\r\n <b-card-group deck class=\"eventCards\">\r\n <b-card\r\n v-if=\"indexIndustries || indexOnDemandSessions || indexLiveSessions\"\r\n title=\"Programme\"\r\n :img-src=\"`${publicPath}img/events/${eventId}/scientific-programme.jpg?v=${this.appVersion}`\"\r\n img-alt=\"Image\"\r\n img-top\r\n tag=\"article\"\r\n class=\"mb-3\"\r\n >\r\n <b-card-text> Browse the scientific programme and see what you don’t want to miss. </b-card-text>\r\n <template #footer>\r\n <router-link :to=\"`/${eventRoute}/programme`\" v-slot=\"{ href, navigate }\">\r\n <b-button pill :href=\"href\" @click=\"navigate\" variant=\"congress\" class=\"stretched-link\">Browse</b-button>\r\n </router-link>\r\n </template>\r\n </b-card>\r\n\r\n <b-card\r\n v-if=\"indexSpeakers\"\r\n title=\"Faculty & presenters\"\r\n :img-src=\"`${publicPath}img/events/${eventId}/faculty-presenter.jpg?v=${this.appVersion}`\"\r\n img-alt=\"Image\"\r\n img-top\r\n tag=\"article\"\r\n class=\"mb-3\"\r\n >\r\n <b-card-text> Discover the leading experts presenting at this event. </b-card-text>\r\n <template #footer>\r\n <router-link :to=\"`/${eventRoute}/faculty`\" v-slot=\"{ href, navigate }\">\r\n <b-button pill :href=\"href\" @click=\"navigate\" variant=\"congress\" class=\"stretched-link\">Discover</b-button>\r\n </router-link>\r\n </template>\r\n </b-card>\r\n\r\n <b-card\r\n v-if=\"indexAbstracts\"\r\n title=\"Abstracts\"\r\n :img-src=\"`${publicPath}img/events/${eventId}/abstract.jpg?v=${this.appVersion}`\"\r\n img-alt=\"Image\"\r\n img-top\r\n tag=\"article\"\r\n class=\"mb-3\"\r\n >\r\n <b-card-text> Browse through the latest science. </b-card-text>\r\n <template #footer>\r\n <router-link :to=\"`/${eventRoute}/abstract`\" v-slot=\"{ href, navigate }\">\r\n <b-button pill :href=\"href\" @click=\"navigate\" variant=\"congress\" class=\"stretched-link\">Start now</b-button>\r\n </router-link>\r\n </template>\r\n </b-card>\r\n\r\n <b-card\r\n title=\"My programme\"\r\n :img-src=\"`${publicPath}img/events/${eventId}/schedule-overview.jpg?v=${this.appVersion}`\"\r\n img-alt=\"Image\"\r\n img-top\r\n tag=\"article\"\r\n class=\"mb-3\"\r\n >\r\n <b-card-text> Your bookmarked sessions are all here. </b-card-text>\r\n <template #footer>\r\n <router-link :to=\"`/${eventRoute}/my-programme`\" v-slot=\"{ href, navigate }\">\r\n <b-button pill :href=\"href\" @click=\"navigate\" variant=\"congress\" class=\"stretched-link\">Access</b-button>\r\n </router-link>\r\n </template>\r\n </b-card>\r\n </b-card-group>\r\n </b-container>\r\n\r\n <!-- Register -->\r\n <RegisterPromoWidget class=\"phr\" />\r\n\r\n <!-- Industry Banner(s) -->\r\n <!--\r\n <b-col cols=\"12\" class=\"pb-4\">\r\n <EscBanners />\r\n </b-col>\r\n -->\r\n\r\n <!-- NEW CARDS FROM SLIDER -->\r\n <AuthoredSlidesBlock :homeCmsData=\"homeCmsData\" />\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import TakeQuizzMobileWidget from 'src/components/Widgets/TakeQuizzMobileWidget';\r\n import RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\n // import EscBanners from 'src/components/Banners/EscBanners';\r\n import AuthoredSlidesBlock from 'src/components/Blocks/AuthoredSlidesBlock.vue';\r\n import HappeningNowBlock from 'src/components/Blocks/HappeningNowBlock.vue';\r\n import { HtmlHelper } from 'src/utils/html-helper';\r\n\r\n export default {\r\n name: 'PreHomeContentV2',\r\n components: {\r\n // EscBanners,\r\n TakeQuizzMobileWidget,\r\n RegisterPromoWidget,\r\n AuthoredSlidesBlock,\r\n HappeningNowBlock,\r\n },\r\n data() {\r\n return {\r\n carouselContentComponent: '',\r\n speakerSearchQuery: '',\r\n abstractSearchQuery: '',\r\n publicPath: process.env.BASE_URL,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n appVersion: (state) => state.app.version,\r\n eventId: (state) => state.app.eventId,\r\n eventRoute: (state) => state.app.eventRoute,\r\n eventStartDate: (state) => state.app.eventStartDate,\r\n eventEndDate: (state) => state.app.eventEndDate,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n homeCmsData: (state) => state.app.homeCmsData,\r\n industryStandsSearch: (state) => state.app.industryStandsSearch,\r\n indexAbstracts: (state) => state.app.indexAbstracts,\r\n indexIndustries: (state) => state.app.indexIndustries,\r\n indexLiveSessions: (state) => state.app.indexLiveSessions,\r\n indexOnDemandSessions: (state) => state.app.indexOnDemandSessions,\r\n indexSpeakers: (state) => state.app.indexSpeakers,\r\n confCmsData: (state) => state.app.confCmsData,\r\n location: (state) => state.app.location,\r\n locationType: (state) => state.app.locationType,\r\n organiserName: (state) => state.app.organiserName,\r\n eventName: (state) => state.app.eventName,\r\n locationCity: (state) => state.app.locationCity,\r\n userInfo: (state) => state.app.userInfo,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n nbTitles() {\r\n let nb = 1;\r\n if (this.indexAbstracts) nb++;\r\n if (this.indexIndustries || this.indexOnDemandSessions || this.indexLiveSessions) nb++;\r\n if (this.indexSpeakers) nb++;\r\n return nb;\r\n },\r\n tileSize() {\r\n return 12 / this.nbTitles;\r\n },\r\n titlesContainerSize() {\r\n return 2 * this.nbTitles;\r\n },\r\n }),\r\n /*\r\n loader() {\r\n return () => import(`./${this.eventId}/CarouselContent.vue`);\r\n }\r\n */\r\n },\r\n /*\r\n created() {\r\n this.loader().then(() => {\r\n this.carouselContentComponent = () => this.loader();\r\n });\r\n },\r\n */\r\n async mounted() {\r\n // this.speakerSearchQuery = await this.$lzma.compress({ text: '', docType: 'Speaker', country: [], page: 1 });\r\n // this.abstractSearchQuery = await this.$lzma.compress({ text: '', docType: 'Abstract', country: [], page: 1 });\r\n this.speakerSearchQuery = `docType=Speaker&page=1`;\r\n this.abstractSearchQuery = `docType=Abstract&page=1`;\r\n },\r\n methods: {\r\n isInternalLink(url) {\r\n return HtmlHelper.isInternalLink(url);\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .pre-home__bg {\r\n // background: no-repeat center center fixed;\r\n -webkit-background-size: cover;\r\n -moz-background-size: cover;\r\n -o-background-size: cover;\r\n background-size: cover;\r\n background: no-repeat;\r\n background-color: var(--congress-dark);\r\n min-height: 325px;\r\n background-position: top center;\r\n }\r\n\r\n @media (max-width: 1200px) {\r\n .pre-home__bg {\r\n // background: no-repeat center center fixed;\r\n -webkit-background-size: cover;\r\n -moz-background-size: cover;\r\n -o-background-size: cover;\r\n background-size: cover;\r\n background: no-repeat;\r\n background-color: var(--congress-dark);\r\n min-height: 325px;\r\n background-position: top center;\r\n }\r\n\r\n /*\r\n ::v-deep .carousel-item {\r\n background: #fff !important;\r\n }\r\n\r\n @media (max-width: 992px) {\r\n ::v-deep .carousel-indicators {\r\n justify-content: flex-end !important;\r\n }\r\n }\r\n */\r\n\r\n @media (max-width: 1200px) {\r\n .pre-home__bg {\r\n min-height: 550px;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .pre-home__bg {\r\n min-height: 325px;\r\n }\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .pre-home__bg {\r\n min-height: 325px;\r\n background-size: 100%;\r\n }\r\n }\r\n\r\n .pre-home__quiz__wrapper {\r\n text-align: center;\r\n font-size: 0.9rem;\r\n color: white;\r\n }\r\n\r\n /*.pre-home__countdown__wrapper {\r\n color: white;\r\n }*/\r\n\r\n .pre-home__slider__wrapper {\r\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);\r\n margin: 0 auto -80px auto;\r\n position: relative;\r\n top: -116px;\r\n max-width: 1200px;\r\n\r\n /*\r\n &::v-deep .carousel-inner {\r\n border-radius: 6px;\r\n }\r\n\r\n &::v-deep .carousel-caption {\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n max-width: 30%;\r\n padding: 1.5rem;\r\n color: black;\r\n text-align: left;\r\n background: white;\r\n border-radius: 4px 0 0 4px;\r\n\r\n & > .btn {\r\n font-weight: bold;\r\n }\r\n }\r\n\r\n &::v-deep .carousel-indicators {\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n justify-content: left;\r\n padding-left: 1rem;\r\n padding-bottom: 1rem;\r\n margin: 0;\r\n\r\n & li {\r\n background-color: var(--congress);\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 50%;\r\n opacity: 0.35;\r\n\r\n &.active {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n &::v-deep .carousel-caption-title {\r\n color: var(--congress);\r\n font-weight: bold;\r\n margin-bottom: 1rem;\r\n }\r\n */\r\n }\r\n\r\n .pre-home__cards__wrapper {\r\n border-radius: 6px;\r\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);\r\n margin: 0 1rem;\r\n background: #fff;\r\n\r\n & div.pre-home__card__wrapper:not(:last-child) {\r\n border-right: solid 2px $grey-lighter;\r\n }\r\n }\r\n\r\n .pre-home__card__wrapper {\r\n cursor: pointer;\r\n padding: 2.5rem !important;\r\n\r\n &:hover {\r\n background: var(--congress-lighter);\r\n }\r\n }\r\n\r\n .card__icon {\r\n /*opacity: 0.4;*/\r\n padding-bottom: 1rem;\r\n }\r\n\r\n .card__title {\r\n font-size: 1.4rem;\r\n /*max-width: 200px;*/\r\n }\r\n\r\n .card__description {\r\n font-size: 0.9rem;\r\n color: $grey;\r\n padding: 0.5rem 0;\r\n /*max-width: 200px;*/\r\n }\r\n\r\n .card__link {\r\n margin-top: auto;\r\n font-size: 0.9rem;\r\n color: var(--congress);\r\n text-decoration: none;\r\n\r\n &:hover,\r\n :focus {\r\n color: var(--congress-dark);\r\n }\r\n }\r\n\r\n .pre-home__card__link {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n text-decoration: none;\r\n }\r\n\r\n @media (max-width: 768px) {\r\n .pre-home__cards__wrapper div.pre-home__card__wrapper:not(:last-child) {\r\n border-right: 0;\r\n border-bottom: solid 2px #e2e2e2;\r\n }\r\n }\r\n\r\n /* FIX SLIDER */\r\n\r\n /*\r\n :v-deep .carousel-caption-title {\r\n color: var(--congress);\r\n font-weight: 700;\r\n margin-bottom: 1rem;\r\n }\r\n */\r\n /*\r\n @media (max-width: 992px) {\r\n \r\n ::v-deep .carousel-item img {\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n width: inherit !important;\r\n float: inherit;\r\n position: absolute;\r\n -o-object-fit: cover;\r\n object-fit: cover;\r\n height: -webkit-fill-available;\r\n }\r\n\r\n ::v-deep .carousel-caption {\r\n flex: 0 0 100%;\r\n max-width: 100% !important;\r\n right: 0;\r\n background-color: hsla(0, 0%, 100%, 0.8) !important;\r\n position: relative;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n ::v-deep .carousel-item img {\r\n flex: 0 0 66.66667%;\r\n max-width: 66.66667%;\r\n width: inherit !important;\r\n float: right;\r\n }\r\n\r\n ::v-deep .carousel-caption {\r\n flex: 0 0 33.33333%;\r\n max-width: 33.33333% !important;\r\n }\r\n }\r\n*/\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PreHomeV2.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PreHomeV2.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PreHomeV2.vue?vue&type=template&id=724c5929&scoped=true\"\nimport script from \"./PreHomeV2.vue?vue&type=script&lang=js\"\nexport * from \"./PreHomeV2.vue?vue&type=script&lang=js\"\nimport style0 from \"./PreHomeV2.vue?vue&type=style&index=0&id=724c5929&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"724c5929\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('b-col',{staticClass:\"pre-home__bg pt-2 d-flex justify-content-center\",style:({ backgroundImage: `url('${_vm.publicPath}img/events/${_vm.eventId}/pre-home-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"pre-home__countdown__wrapper\"},[(_vm.homeCmsData.countdown_active)?_c('PreHomeCountDownWidget',{attrs:{\"message\":_vm.homeCmsData.countdown_text}}):_vm._e(),(_vm.homeCmsData.quizz_active)?_c('TakeQuizzMobileWidget'):_vm._e()],1)]),(_vm.homeCmsData.slider_blocks && _vm.homeCmsData.slider_blocks.length > 0)?_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"pre-home__slider__wrapper\"},[_c('b-carousel',{staticStyle:{\"border-radius\":\"24px\"},attrs:{\"id\":\"pre-home__slider__ref\",\"fade\":\"\",\"interval\":7000,\"indicators\":\"\",\"img-width\":\"1200\",\"img-height\":\"400\",\"background\":\"#e0e0e0\"}},_vm._l((_vm.homeCmsData.slider_blocks),function(sliderBlock){return _c('b-carousel-slide',{key:sliderBlock._uid,attrs:{\"img-src\":sliderBlock.slider_image.filename}},[_c('h4',{staticClass:\"carousel-caption-title\"},[_vm._v(\" \"+_vm._s(sliderBlock.slider_title)+\" \")]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$options.filters.formatStoryRichText(sliderBlock.slider_text))}}),(false)?_c('b-button',{attrs:{\"variant\":\"outline-congress\",\"to\":sliderBlock.slider_button_link[0].link_internal ? sliderBlock.slider_button_link[0].link_value : null,\"href\":!sliderBlock.slider_button_link[0].link_internal ? sliderBlock.slider_button_link[0].link_value : null,\"target\":!sliderBlock.slider_button_link[0].link_internal && sliderBlock.slider_button_link[0].link_new_tab ? '_blank' : '_self'}},[_vm._v(\" \"+_vm._s(sliderBlock.slider_button_link[0].link_text)+\" \")]):_vm._e()],1)}),1)],1)]):_vm._e(),(false)?_c('RegisterPromoWidget',{staticClass:\"phr\"}):_vm._e(),(false)?_c('b-col',{staticClass:\"phr mb-5\",attrs:{\"cols\":\"12\",\"lg\":_vm.titlesContainerSize}},[_c('b-row',{staticClass:\"pre-home__cards__wrapper no-gutters text-center\",attrs:{\"align-h\":\"center\"}},[(_vm.indexIndustries || _vm.indexOnDemandSessions || _vm.indexLiveSessions)?_c('b-col',{staticClass:\"pre-home__card__wrapper\",attrs:{\"cols\":\"12\",\"md\":_vm.tileSize}},[_c('router-link',{staticClass:\"pre-home__card__link\",attrs:{\"to\":`/${_vm.eventRoute}/programme`}},[_c('div',{staticClass:\"card__icon\"},[_c('svg',{staticClass:\"fill-congress\",attrs:{\"width\":\"38\",\"height\":\"38\",\"viewBox\":\"0 0 38 38\"}},[_c('use',{attrs:{\"xlink:href\":require(\"@/assets/images/platform/Session-Icon-BLK.svg\") + \"#Layer_1\"}})])]),_c('div',{staticClass:\"card__title\"},[_vm._v(\"Programme Search\")]),_c('div',{staticClass:\"card__description\"},[_vm._v(\"Browse the scientific programme and see what you don’t want to miss.\")]),_c('span',{staticClass:\"card__link\"},[_vm._v(\"Start now\"),_c('i',{staticClass:\"pl-1 las la-2x la-t-plus-3 la-arrow-right\"})])])],1):_vm._e(),(_vm.indexSpeakers)?_c('b-col',{staticClass:\"pre-home__card__wrapper\",attrs:{\"cols\":\"12\",\"md\":_vm.tileSize}},[_c('router-link',{staticClass:\"pre-home__card__link\",attrs:{\"to\":`/${_vm.eventRoute}/programme?text=&${_vm.speakerSearchQuery}`}},[_c('div',{staticClass:\"card__icon\"},[_c('svg',{staticClass:\"fill-congress\",attrs:{\"width\":\"38\",\"height\":\"38\",\"viewBox\":\"0 0 38 38\"}},[_c('use',{attrs:{\"xlink:href\":require(\"@/assets/images/platform/Speaker-Icon-BLK.svg\") + \"#Layer_1\"}})])]),_c('div',{staticClass:\"card__title\"},[_vm._v(\"Faculty & Presenters\")]),_c('div',{staticClass:\"card__description\"},[_vm._v(\"Discover the leading experts presenting at this event.\")]),_c('span',{staticClass:\"card__link\"},[_vm._v(\"Start now\"),_c('i',{staticClass:\"pl-1 las la-2x la-t-plus-3 la-arrow-right\"})])])],1):_vm._e(),(_vm.indexAbstracts)?_c('b-col',{staticClass:\"pre-home__card__wrapper\",attrs:{\"cols\":\"12\",\"md\":_vm.tileSize}},[_c('router-link',{staticClass:\"pre-home__card__link\",attrs:{\"to\":`/${_vm.eventRoute}/programme?text=&${_vm.abstractSearchQuery}`}},[_c('div',{staticClass:\"card__icon\"},[_c('svg',{staticClass:\"fill-congress\",attrs:{\"width\":\"38\",\"height\":\"38\",\"viewBox\":\"0 0 38 38\"}},[_c('use',{attrs:{\"xlink:href\":require(\"@/assets/images/platform/Abstract-Icon-BLK.svg\") + \"#Layer_1\"}})])]),_c('div',{staticClass:\"card__title\"},[_vm._v(\"Abstracts\")]),_c('div',{staticClass:\"card__description\"},[_vm._v(\"Browse through the latest science.\")]),_c('span',{staticClass:\"card__link\"},[_vm._v(\"Start now\"),_c('i',{staticClass:\"pl-1 las la-2x la-t-plus-3 la-arrow-right\"})])])],1):_vm._e(),_c('b-col',{staticClass:\"pre-home__card__wrapper\",attrs:{\"cols\":\"12\",\"md\":_vm.tileSize}},[_c('router-link',{staticClass:\"pre-home__card__link\",attrs:{\"to\":`/${_vm.eventRoute}/schedule`}},[_c('div',{staticClass:\"card__icon\"},[_c('svg',{staticClass:\"fill-congress\",attrs:{\"width\":\"38\",\"height\":\"38\",\"viewBox\":\"0 0 38 38\"}},[_c('use',{attrs:{\"xlink:href\":require(\"@/assets/images/platform/Calendar-Icon-BLK.svg\") + \"#Layer_1\"}})])]),_c('div',{staticClass:\"card__title\"},[_vm._v(\"Schedule Overview\")]),_c('div',{staticClass:\"card__description\"},[_vm._v(\"See what’s planned by day in each channel.\")]),_c('span',{staticClass:\"card__link\"},[_vm._v(\"Start now\"),_c('i',{staticClass:\"pl-1 las la-2x la-t-plus-3 la-arrow-right\"})])])],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(false)?_c('h2',{staticClass:\"mb-3 text-center\"},[_vm._v(_vm._s(this.message))]):_vm._e(),_vm._m(0),_c('VueCountdown',{attrs:{\"time\":_vm.remainingTime},on:{\"end\":_vm.onCountdownEnd},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('div',{staticClass:\"row countdown\"},[_c('div',{staticClass:\"col-3 countdown__section\"},[_c('div',{staticClass:\"countdown__section__value\"},[_vm._v(_vm._s(props.days))]),_c('div',{staticClass:\"countdown__section__legend\"},[_vm._v(\"Days\")])]),_c('div',{staticClass:\"col-3 countdown__section\"},[_c('div',{staticClass:\"countdown__section__value\"},[_vm._v(_vm._s(props.hours))]),_c('div',{staticClass:\"countdown__section__legend\"},[_vm._v(\"Hours\")])]),_c('div',{staticClass:\"col-3 countdown__section\"},[_c('div',{staticClass:\"countdown__section__value\"},[_vm._v(_vm._s(props.minutes))]),_c('div',{staticClass:\"countdown__section__legend\"},[_vm._v(\"Minutes\")])]),_c('div',{staticClass:\"col-3 countdown__section\"},[_c('div',{staticClass:\"countdown__section__value\"},[_vm._v(_vm._s(props.seconds))]),_c('div',{staticClass:\"countdown__section__legend\"},[_vm._v(\"Seconds\")])])])]}}])})],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"text-center mb-0\"},[_c('span',{staticClass:\"countDownmessage px-3 py-1\"},[_c('small',[_vm._v(\"Coming in\")])])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <!-- CountDown -->\r\n <h2 v-if=\"false\" class=\"mb-3 text-center\">{{ this.message }}</h2>\r\n <div class=\"text-center mb-0\">\r\n <span class=\"countDownmessage px-3 py-1\"><small>Coming in</small></span>\r\n </div>\r\n <VueCountdown :time=\"remainingTime\" @end=\"onCountdownEnd\">\r\n <template slot-scope=\"props\">\r\n <div class=\"row countdown\">\r\n <div class=\"col-3 countdown__section\">\r\n <div class=\"countdown__section__value\">{{ props.days }}</div>\r\n <div class=\"countdown__section__legend\">Days</div>\r\n </div>\r\n\r\n <div class=\"col-3 countdown__section\">\r\n <div class=\"countdown__section__value\">{{ props.hours }}</div>\r\n <div class=\"countdown__section__legend\">Hours</div>\r\n </div>\r\n\r\n <div class=\"col-3 countdown__section\">\r\n <div class=\"countdown__section__value\">{{ props.minutes }}</div>\r\n <div class=\"countdown__section__legend\">Minutes</div>\r\n </div>\r\n\r\n <div class=\"col-3 countdown__section\">\r\n <div class=\"countdown__section__value\">{{ props.seconds }}</div>\r\n <div class=\"countdown__section__legend\">Seconds</div>\r\n </div>\r\n </div>\r\n </template>\r\n </VueCountdown>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import VueCountdown from '@chenfengyuan/vue-countdown';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n export default {\r\n name: 'PreHomeCountDownWidget',\r\n components: {\r\n VueCountdown,\r\n },\r\n props: {\r\n message: String,\r\n },\r\n data() {\r\n return {\r\n remainingTime: 0,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventStartDate: (state) => state.app.eventStartDate,\r\n }),\r\n },\r\n mounted() {\r\n const now = DateHelper.browserDateTime();\r\n const startDate = DateHelper.browserDateTime(this.eventStartDate);\r\n this.remainingTime = startDate - now;\r\n },\r\n methods: {\r\n onCountdownEnd() {\r\n this.remainingTime = 0;\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .countdown {\r\n border: solid 2px #ffffff44;\r\n border-radius: 6px;\r\n text-align: center;\r\n padding-bottom: 18px;\r\n }\r\n\r\n .countdown__section {\r\n &:not(:last-child)::after {\r\n position: absolute;\r\n top: 12px;\r\n right: 0;\r\n content: url('~@/assets/images/platform/ellipsis-v-solid.png');\r\n }\r\n }\r\n\r\n .countdown__section__value {\r\n font-size: 2rem;\r\n }\r\n\r\n .countdown__section__legend {\r\n font-size: 0.9rem;\r\n text-align: center;\r\n line-height: 0.1em;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PreHomeCountDownWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PreHomeCountDownWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PreHomeCountDownWidget.vue?vue&type=template&id=7a281065&scoped=true\"\nimport script from \"./PreHomeCountDownWidget.vue?vue&type=script&lang=js\"\nexport * from \"./PreHomeCountDownWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./PreHomeCountDownWidget.vue?vue&type=style&index=0&id=7a281065&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a281065\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <!-- Header -->\r\n <b-col\r\n cols=\"12\"\r\n class=\"pre-home__bg pt-2 d-flex justify-content-center\"\r\n :style=\"{ backgroundImage: `url('${publicPath}img/events/${eventId}/pre-home-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"pre-home__countdown__wrapper\">\r\n <!-- Countdown -->\r\n <PreHomeCountDownWidget v-if=\"homeCmsData.countdown_active\" :message=\"homeCmsData.countdown_text\" />\r\n\r\n <!-- Quiz (Mobile only) -->\r\n <TakeQuizzMobileWidget v-if=\"homeCmsData.quizz_active\" />\r\n </div>\r\n </b-col>\r\n\r\n <!-- Slider -->\r\n <b-col cols=\"12\" v-if=\"homeCmsData.slider_blocks && homeCmsData.slider_blocks.length > 0\">\r\n <div class=\"pre-home__slider__wrapper\">\r\n <b-carousel id=\"pre-home__slider__ref\" fade :interval=\"7000\" indicators img-width=\"1200\" img-height=\"400\" background=\"#e0e0e0\" style=\"border-radius: 24px\">\r\n <b-carousel-slide v-for=\"sliderBlock in homeCmsData.slider_blocks\" :key=\"sliderBlock._uid\" :img-src=\"sliderBlock.slider_image.filename\">\r\n <h4 class=\"carousel-caption-title\">\r\n {{ sliderBlock.slider_title }}\r\n </h4>\r\n <p v-html=\"$options.filters.formatStoryRichText(sliderBlock.slider_text)\"></p>\r\n <b-button\r\n v-if=\"false\"\r\n variant=\"outline-congress\"\r\n :to=\"sliderBlock.slider_button_link[0].link_internal ? sliderBlock.slider_button_link[0].link_value : null\"\r\n :href=\"!sliderBlock.slider_button_link[0].link_internal ? sliderBlock.slider_button_link[0].link_value : null\"\r\n :target=\"!sliderBlock.slider_button_link[0].link_internal && sliderBlock.slider_button_link[0].link_new_tab ? '_blank' : '_self'\"\r\n >\r\n {{ sliderBlock.slider_button_link[0].link_text }}\r\n </b-button>\r\n </b-carousel-slide>\r\n </b-carousel>\r\n </div>\r\n </b-col>\r\n\r\n <!-- Register -->\r\n <RegisterPromoWidget v-if=\"false\" class=\"phr\" />\r\n\r\n <!-- Cards -->\r\n <b-col v-if=\"false\" cols=\"12\" :lg=\"titlesContainerSize\" class=\"phr mb-5\">\r\n <b-row class=\"pre-home__cards__wrapper no-gutters text-center\" align-h=\"center\">\r\n <b-col cols=\"12\" :md=\"tileSize\" class=\"pre-home__card__wrapper\" v-if=\"indexIndustries || indexOnDemandSessions || indexLiveSessions\">\r\n <router-link :to=\"`/${eventRoute}/programme`\" class=\"pre-home__card__link\">\r\n <div class=\"card__icon\">\r\n <svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" class=\"fill-congress\">\r\n <use xlink:href=\"~@/assets/images/platform/Session-Icon-BLK.svg#Layer_1\" />\r\n </svg>\r\n </div>\r\n <div class=\"card__title\">Programme Search</div>\r\n <div class=\"card__description\">Browse the scientific programme and see what you don’t want to miss.</div>\r\n <span class=\"card__link\">Start now<i class=\"pl-1 las la-2x la-t-plus-3 la-arrow-right\"></i> </span>\r\n </router-link>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" :md=\"tileSize\" class=\"pre-home__card__wrapper\" v-if=\"indexSpeakers\">\r\n <router-link :to=\"`/${eventRoute}/programme?text=&${speakerSearchQuery}`\" class=\"pre-home__card__link\">\r\n <div class=\"card__icon\">\r\n <svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" class=\"fill-congress\">\r\n <use xlink:href=\"~@/assets/images/platform/Speaker-Icon-BLK.svg#Layer_1\" />\r\n </svg>\r\n </div>\r\n <div class=\"card__title\">Faculty & Presenters</div>\r\n <div class=\"card__description\">Discover the leading experts presenting at this event.</div>\r\n <span class=\"card__link\">Start now<i class=\"pl-1 las la-2x la-t-plus-3 la-arrow-right\"></i> </span>\r\n </router-link>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" :md=\"tileSize\" class=\"pre-home__card__wrapper\" v-if=\"indexAbstracts\">\r\n <router-link :to=\"`/${eventRoute}/programme?text=&${abstractSearchQuery}`\" class=\"pre-home__card__link\">\r\n <div class=\"card__icon\">\r\n <svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" class=\"fill-congress\">\r\n <use xlink:href=\"~@/assets/images/platform/Abstract-Icon-BLK.svg#Layer_1\" />\r\n </svg>\r\n </div>\r\n <div class=\"card__title\">Abstracts</div>\r\n <div class=\"card__description\">Browse through the latest science.</div>\r\n <span class=\"card__link\">Start now<i class=\"pl-1 las la-2x la-t-plus-3 la-arrow-right\"></i> </span>\r\n </router-link>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" :md=\"tileSize\" class=\"pre-home__card__wrapper\">\r\n <router-link :to=\"`/${eventRoute}/schedule`\" class=\"pre-home__card__link\">\r\n <div class=\"card__icon\">\r\n <svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" class=\"fill-congress\">\r\n <use xlink:href=\"~@/assets/images/platform/Calendar-Icon-BLK.svg#Layer_1\" />\r\n </svg>\r\n </div>\r\n <div class=\"card__title\">Schedule Overview</div>\r\n <div class=\"card__description\">See what’s planned by day in each channel.</div>\r\n <span class=\"card__link\">Start now<i class=\"pl-1 las la-2x la-t-plus-3 la-arrow-right\"></i> </span>\r\n </router-link>\r\n </b-col>\r\n </b-row>\r\n </b-col>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import PreHomeCountDownWidget from 'src/components/Widgets/PreHomeCountDownWidget';\r\n import TakeQuizzMobileWidget from 'src/components/Widgets/TakeQuizzMobileWidget';\r\n import RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\n\r\n export default {\r\n name: 'MobileAppPreHome',\r\n components: {\r\n PreHomeCountDownWidget,\r\n TakeQuizzMobileWidget,\r\n RegisterPromoWidget\r\n },\r\n data() {\r\n return {\r\n carouselContentComponent: '',\r\n speakerSearchQuery: '',\r\n abstractSearchQuery: '',\r\n publicPath: process.env.BASE_URL\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n appVersion: state => state.app.version,\r\n eventId: state => state.app.eventId,\r\n eventRoute: state => state.app.eventRoute,\r\n eventStartDate: state => state.app.eventStartDate,\r\n postCongressMode: state => state.app.postCongressMode,\r\n homeCmsData: state => state.app.homeCmsData,\r\n industryStandsSearch: state => state.app.industryStandsSearch,\r\n indexAbstracts: state => state.app.indexAbstracts,\r\n indexIndustries: state => state.app.indexIndustries,\r\n indexLiveSessions: state => state.app.indexLiveSessions,\r\n indexOnDemandSessions: state => state.app.indexOnDemandSessions,\r\n indexSpeakers: state => state.app.indexSpeakers,\r\n nbTitles() {\r\n let nb = 1;\r\n if (this.indexAbstracts) nb++;\r\n if (this.indexIndustries || this.indexOnDemandSessions || this.indexLiveSessions) nb++;\r\n if (this.indexSpeakers) nb++;\r\n return nb;\r\n },\r\n tileSize() {\r\n return 12 / this.nbTitles;\r\n },\r\n titlesContainerSize() {\r\n return 2 * this.nbTitles;\r\n }\r\n })\r\n },\r\n\r\n async mounted() {\r\n //this.speakerSearchQuery = await this.$lzma.compress({ text: '', docType: 'Speaker', country: [], page: 1 });\r\n //this.abstractSearchQuery = await this.$lzma.compress({ text: '', docType: 'Abstract', country: [], page: 1 });\r\n this.speakerSearchQuery = `docType=Speaker&page=1`\r\n this.abstractSearchQuery = `docType=Abstract&page=1`\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .pre-home__bg {\r\n -webkit-background-size: cover;\r\n -moz-background-size: cover;\r\n -o-background-size: cover;\r\n background-size: cover;\r\n background: no-repeat;\r\n background-color: var(--congress-dark);\r\n min-height: 325px;\r\n background-position: top center;\r\n }\r\n\r\n @media (max-width: 1200px) {\r\n .pre-home__bg {\r\n -webkit-background-size: cover;\r\n -moz-background-size: cover;\r\n -o-background-size: cover;\r\n background-size: cover;\r\n background: no-repeat;\r\n background-color: var(--congress-dark);\r\n min-height: 325px;\r\n background-position: top center;\r\n }\r\n\r\n ::v-deep .carousel-item {\r\n background: #fff !important;\r\n }\r\n\r\n @media (max-width: 992px) {\r\n ::v-deep .carousel-indicators {\r\n justify-content: flex-end !important;\r\n }\r\n }\r\n\r\n @media (max-width: 1200px) {\r\n .pre-home__bg {\r\n min-height: 400px;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .pre-home__bg {\r\n min-height: 325px;\r\n }\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .pre-home__bg {\r\n min-height: 325px;\r\n background-size: 100%;\r\n }\r\n }\r\n\r\n .pre-home__quiz__wrapper {\r\n text-align: center;\r\n font-size: 0.9rem;\r\n color: white;\r\n }\r\n\r\n .pre-home__countdown__wrapper {\r\n color: white;\r\n }\r\n\r\n .pre-home__slider__wrapper {\r\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);\r\n margin: 0 auto -80px auto;\r\n position: relative;\r\n top: -116px;\r\n max-width: 1200px;\r\n\r\n &::v-deep .carousel-inner {\r\n border-radius: 6px;\r\n }\r\n\r\n &::v-deep .carousel-caption {\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n max-width: 30%;\r\n padding: 1.5rem;\r\n color: black;\r\n text-align: left;\r\n background: white;\r\n border-radius: 4px 0 0 4px;\r\n\r\n & > .btn {\r\n font-weight: bold;\r\n }\r\n }\r\n\r\n &::v-deep .carousel-indicators {\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n justify-content: left;\r\n padding-left: 1rem;\r\n padding-bottom: 1rem;\r\n margin: 0;\r\n\r\n & li {\r\n background-color: var(--congress);\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 50%;\r\n opacity: 0.35;\r\n\r\n &.active {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n &::v-deep .carousel-caption-title {\r\n color: var(--congress);\r\n font-weight: bold;\r\n margin-bottom: 1rem;\r\n }\r\n }\r\n\r\n .pre-home__cards__wrapper {\r\n border-radius: 6px;\r\n box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);\r\n margin: 0 1rem;\r\n background: #fff;\r\n\r\n & div.pre-home__card__wrapper:not(:last-child) {\r\n border-right: solid 2px $grey-lighter;\r\n }\r\n }\r\n\r\n .pre-home__card__wrapper {\r\n cursor: pointer;\r\n padding: 2.5rem !important;\r\n\r\n &:hover {\r\n background: var(--congress-lighter);\r\n }\r\n }\r\n\r\n .card__icon {\r\n padding-bottom: 1rem;\r\n }\r\n\r\n .card__title {\r\n font-size: 1.4rem;\r\n }\r\n\r\n .card__description {\r\n font-size: 0.9rem;\r\n color: $grey;\r\n padding: 0.5rem 0;\r\n }\r\n\r\n .card__link {\r\n margin-top: auto;\r\n font-size: 0.9rem;\r\n color: var(--congress);\r\n text-decoration: none;\r\n\r\n &:hover,\r\n :focus {\r\n color: var(--congress-dark);\r\n }\r\n }\r\n\r\n .pre-home__card__link {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n text-decoration: none;\r\n }\r\n\r\n @media (max-width: 768px) {\r\n .pre-home__cards__wrapper div.pre-home__card__wrapper:not(:last-child) {\r\n border-right: 0;\r\n border-bottom: solid 2px #e2e2e2;\r\n }\r\n }\r\n\r\n /* FIX SLIDER */\r\n\r\n :v-deep .carousel-caption-title {\r\n color: var(--congress);\r\n font-weight: 700;\r\n margin-bottom: 1rem;\r\n }\r\n\r\n @media (max-width: 992px) {\r\n ::v-deep .carousel-item img {\r\n flex: 0 0 100%;\r\n max-width: 100%;\r\n width: inherit !important;\r\n float: inherit;\r\n position: absolute;\r\n -o-object-fit: cover;\r\n object-fit: cover;\r\n height: -webkit-fill-available;\r\n }\r\n\r\n ::v-deep .carousel-caption {\r\n flex: 0 0 100%;\r\n max-width: 100% !important;\r\n right: 0;\r\n background-color: hsla(0, 0%, 100%, 0.8) !important;\r\n position: relative;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n ::v-deep .carousel-item img {\r\n flex: 0 0 66.66667%;\r\n max-width: 66.66667%;\r\n width: inherit !important;\r\n float: right;\r\n }\r\n\r\n ::v-deep .carousel-caption {\r\n flex: 0 0 33.33333%;\r\n max-width: 33.33333% !important;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PreHome.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PreHome.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PreHome.vue?vue&type=template&id=2004df8e&scoped=true\"\nimport script from \"./PreHome.vue?vue&type=script&lang=js\"\nexport * from \"./PreHome.vue?vue&type=script&lang=js\"\nimport style0 from \"./PreHome.vue?vue&type=style&index=0&id=2004df8e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2004df8e\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <fragment v-if=\"!mobileApp\">\r\n <PreHomeContentV2 />\r\n\r\n </fragment>\r\n <fragment v-else>\r\n <MobileAppPreHome v-if=\"preCongressMode\" />\r\n <MobileAppHappeningNow v-else-if=\"(!preCongressMode && !postCongressMode) || (postCongressMode && !ressourcesMovedTo365)\" />\r\n </fragment>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import MobileAppHappeningNow from 'src/views/MobileApp/HappeningNow';\r\n import PreHomeContentV2 from 'src/views/PreHome/PreHomeV2';\r\n import MobileAppPreHome from 'src/views/MobileApp/PreHome';\r\n \r\n export default {\r\n name: 'HomeSelector',\r\n props: {\r\n mobileApp: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n components: {\r\n PreHomeContentV2,\r\n MobileAppPreHome,\r\n MobileAppHappeningNow,\r\n\r\n },\r\n data() {\r\n return {\r\n\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: state => state.app.eventId,\r\n isInPreviewMode: state => state.app.isInPreviewMode,\r\n preCongressMode: state => state.app.preCongressMode,\r\n postCongressMode: state => state.app.postCongressMode,\r\n ressourcesMovedTo365: state => state.app.ressourcesMovedTo365,\r\n eventRoute: state => state.app.eventRoute,\r\n }),\r\n }\r\n };\r\n</script>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeSelector.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeSelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HomeSelector.vue?vue&type=template&id=078e0987\"\nimport script from \"./HomeSelector.vue?vue&type=script&lang=js\"\nexport * from \"./HomeSelector.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.isLoading)?_c('fragment',[(_vm.enableNotifications)?_c('IndustryToastManager'):_vm._e(),(_vm.enableNotifications)?_c('NewVersionToast',{attrs:{\"id\":\"new-version-toast\"}}):_vm._e(),(_vm.showHeader && !_vm.$route.meta.hideHeaderFooter)?_c('div',{staticClass:\"sticky-top\"},[_c('Navbar')],1):_vm._e(),_c('b-container',{staticClass:\"main-container px-0\",class:{\n 'pr-0': _vm.isLiveMode && !_vm.isPageWithoutTimeline,\n 'pr-0': !_vm.isLiveMode && !_vm.isPageWithoutTimeline,\n 'pr-3': _vm.isPageWithoutTimeline,\n 'pl-0': !_vm.isPageWithoutTimeline,\n 'pl-3': _vm.isPageWithoutTimeline,\n },attrs:{\"fluid\":\"\"}},[_c('b-row',{class:{ 'm-0': _vm.preCongressMode || _vm.postCongressMode },attrs:{\"no-gutters\":\"\",\"align-h\":!_vm.preCongressMode && !_vm.postCongressMode && !_vm.isPageWithoutTimeline ? 'center' : 'center'}},[(!_vm.isPageWithoutTimeline && !_vm.preCongressMode && !_vm.postCongressMode)?_c('b-col',{staticClass:\"d-none\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"timeline-button\",attrs:{\"data-expanded\":_vm.timelineExpandedData},on:{\"click\":_vm.toggleTimeLine}},[_c('i',{staticClass:\"las la-2x la-t-plus-6 la-calendar-alt\"})])]):_vm._e(),(_vm.isMounted)?_c('router-view',{key:_vm.generateRouterKey()}):_vm._e()],1)],1),(_vm.isLogged && _vm.hasNetworkingAccess && !_vm.isNetworkingMessagePage && _vm.isNetworkingEnabled)?_c('NetworkingChat',{attrs:{\"hidden\":true}}):_vm._e(),_c('ChannelModal'),_c('MediaModal'),(_vm.showFooter && !_vm.$route.meta.hideHeaderFooter)?_c('Footer'):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import EventEmitter from 'events';\r\n\r\nclass SfChatBot extends EventEmitter {\r\n constructor(currentUser) {\r\n super();\r\n //console.log(`SF chat bot constructor...`);\r\n this.currentUser = currentUser;\r\n this.script = null;\r\n }\r\n\r\n load() {\r\n //console.log(`SF chat bot loading...`);\r\n if (!window.embedded_svc) {\r\n const _this = this;\r\n\r\n this.script = document.createElement('script');\r\n this.script.onload = () => {\r\n window.embedded_svc.settings.extraPrechatFormDetails = [\r\n {\r\n label: 'First Name',\r\n name: 'FirstName',\r\n value: _this.currentUser?.firstName ?? '',\r\n displayToAgent: true\r\n },\r\n {\r\n label: 'Last Name',\r\n value: _this.currentUser?.lastName ?? '',\r\n displayToAgent: true\r\n },\r\n {\r\n label: 'Email',\r\n value: _this.currentUser?.email ?? '',\r\n displayToAgent: true\r\n }\r\n ];\r\n\r\n window.embedded_svc.settings.prepopulatedPrechatFields = {\r\n FirstName: _this.currentUser?.firstName ?? '',\r\n LastName: _this.currentUser?.lastName ?? '',\r\n Email: _this.currentUser?.email ?? '',\r\n Subject: 'ESC Congress Support'\r\n };\r\n\r\n window.embedded_svc.settings.extraPrechatInfo = [\r\n {\r\n entityName: 'Contact',\r\n showOnCreate: true,\r\n linkToEntityName: 'Case',\r\n linkToEntityField: 'ContactId',\r\n saveToTranscript: 'ContactId',\r\n entityFieldMaps: [\r\n {\r\n isExactMatch: true,\r\n fieldName: 'FirstName',\r\n doCreate: true,\r\n doFind: true,\r\n label: 'First Name'\r\n },\r\n {\r\n isExactMatch: true,\r\n fieldName: 'LastName',\r\n doCreate: true,\r\n doFind: true,\r\n label: 'Last Name'\r\n },\r\n {\r\n isExactMatch: true,\r\n fieldName: 'Email',\r\n doCreate: true,\r\n doFind: true,\r\n label: 'Email'\r\n }\r\n ]\r\n },\r\n {\r\n entityName: 'Case',\r\n showOnCreate: true,\r\n saveToTranscript: 'CaseId',\r\n entityFieldMaps: [\r\n {\r\n isExactMatch: false,\r\n fieldName: 'Subject',\r\n doCreate: true,\r\n doFind: false,\r\n label: 'issue'\r\n },\r\n {\r\n isExactMatch: false,\r\n fieldName: 'Status',\r\n doCreate: true,\r\n doFind: false,\r\n label: 'Status'\r\n },\r\n {\r\n isExactMatch: false,\r\n fieldName: 'Origin',\r\n doCreate: true,\r\n doFind: false,\r\n label: 'Origin'\r\n }\r\n ]\r\n }\r\n ];\r\n\r\n _this.init(); // process.env.VUE_APP_CHAT_BOT_ORGURL\r\n };\r\n\r\n this.script.setAttribute('src', 'https://service.force.com/embeddedservice/5.0/esw.min.js');\r\n\r\n document.head.appendChild(this.script);\r\n }\r\n }\r\n\r\n init(gslbBaseURL) {\r\n window.embedded_svc.settings.displayHelpButton = true;\r\n window.embedded_svc.settings.language = ''; // 'en' or 'en-US'\r\n window.embedded_svc.settings.enabledFeatures = ['LiveAgent'];\r\n window.embedded_svc.settings.entryFeature = 'LiveAgent';\r\n window.embedded_svc.settings.defaultMinimizedText = 'Support chat';\r\n window.embedded_svc.init(\r\n process.env.VUE_APP_CHAT_BOT_ORGURL,\r\n process.env.VUE_APP_CHAT_BOT_COMMUNITYURL,\r\n gslbBaseURL,\r\n process.env.VUE_APP_CHAT_BOT_ORGID,\r\n process.env.VUE_APP_CHAT_BOT_LIVEAGENTNAME,\r\n {\r\n baseLiveAgentContentURL: process.env.VUE_APP_CHAT_BOT_BASELIVEAGENTCONTENTURL,\r\n deploymentId: process.env.VUE_APP_CHAT_BOT_DEPLOYMENTID,\r\n buttonId: process.env.VUE_APP_CHAT_BOT_BUTTONID,\r\n baseLiveAgentURL: process.env.VUE_APP_CHAT_BOT_BASELIVEAGENTURL,\r\n eswLiveAgentDevName: process.env.VUE_APP_CHAT_BOT_LIVEAGENTNAME,\r\n isOfflineSupportEnabled: true\r\n }\r\n );\r\n }\r\n\r\n dispose() {\r\n document.head.removeChild(this.script);\r\n }\r\n}\r\n\r\nexport { SfChatBot };\r\n","function getDefaultRoute() {\r\n return '/ESC-Congress';\r\n}\r\n\r\nexport { getDefaultRoute };\r\n\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-modal',{attrs:{\"id\":\"media-modal\",\"no-close-on-esc\":true,\"hide-header\":\"\",\"hide-footer\":\"\",\"no-fade\":\"\"},on:{\"show\":function($event){return _vm.onShow()},\"hide\":function($event){return _vm.onHide()}},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"btn__back mb-2 position-sticky float-lg-left\"},[_c('b-button',{staticClass:\"font-regular mt-2 d-inline d-inline-flex align-items-center border-0\",attrs:{\"pill\":\"\",\"variant\":\"clear\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.close()}}},[_c('span',{staticClass:\"material-icons-round mr-2\"},[_vm._v(\" arrow_back \")]),_vm._v(\" Back \")])],1),_c('b-container',{staticClass:\"pb-5 mb-5\",attrs:{\"fluid\":\"\"}},[_c('b-col',{staticClass:\"m-auto d-block\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"8\",\"lg\":\"9\"}},[(!_vm.isMetadataLoading)?[_c('b-row',[(this.sessionId)?_c('b-col',{staticClass:\"mb-2 mb-lg-4\",attrs:{\"cols\":\"12\"}},[_c('ModalBanners',{key:this.sessionId,attrs:{\"sessionId\":this.sessionId}})],1):_vm._e(),_c('b-col',{staticClass:\"d-lg-none\",attrs:{\"cols\":\"12\"}},[_c('h1',[_vm._v(\" \"+_vm._s(this.session.title)),(this.session.subTitle)?_c('span',[_vm._v(\" - \"+_vm._s(this.session.subTitle))]):_vm._e()])]),(_vm.EscDisclaimer && _vm.EscDisclaimer.trim() !== '')?_c('b-col',{staticClass:\"pb-2 pb-lg-4\",attrs:{\"sm\":\"12\",\"lg\":12}},[_c('div',{staticClass:\"disclaimer__wrapper\"},[_c('div',{staticClass:\"disclaimer__text\",domProps:{\"innerHTML\":_vm._s(_vm.EscDisclaimer)}})])]):_vm._e(),(_vm.session.disclaimer && _vm.session.disclaimer.trim() !== '')?_c('b-col',{staticClass:\"pb-2 pb-lg-4\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"disclaimer__wrapper\"},[_c('div',{staticClass:\"disclaimer__text\",domProps:{\"innerHTML\":_vm._s(_vm.session.disclaimer)}})])]):_vm._e(),(!_vm.isLogged)?[_c('b-col',{staticClass:\"mb-0 mb-lg-0\",attrs:{\"cols\":\"12\",\"lg\":8}},[_c('LogginWidget',{staticClass:\"rounded-lg\",staticStyle:{\"aspect-ratio\":\"16/9\",\"background\":\"#e9ecef\",\"align-content\":\"center\"},attrs:{\"forceCheckAccess\":true,\"headerText\":\"Access restricted to registered participants\",\"buttonText\":\"Sign in\",\"message\":!_vm.postCongressMode ? `Please sign in to access the congress or register - it's not too late!` : `Please sign in to access the congress.`,\"isMemberExclusive\":_vm.isMemberExclusive}})],1)]:(!_vm.hasAccess)?[_c('b-col',{staticClass:\"mb-2 mb-lg-0\",attrs:{\"cols\":\"12\",\"lg\":8}},[_c('RegisterWidget',{staticStyle:{\"aspect-ratio\":\"16/9\",\"background\":\"#e9ecef\",\"align-content\":\"center\"},attrs:{\"headerText\":\"Access restricted to registered participants\",\"linkText\":!_vm.postCongressMode ? `I have already registered and want to access the live event.` : `I have already registered and want to access the content.`,\"buttonText\":!_vm.postCongressMode ? `Register Now` : ``,\"showButton\":!_vm.postCongressMode,\"message\":\"This content is only available to users who have registered to the event.\",\"isMemberExclusive\":_vm.isMemberExclusive}})],1)]:[_c('b-col',{staticClass:\"mb-2 mb-lg-0\",attrs:{\"cols\":\"12\",\"lg\":8}},[_c('BrightcovePlayer',{key:this.videoId,ref:\"bcPlayer\",staticClass:\"modal-widget mb-lg-4\",attrs:{\"accountId\":this.brightcoveAccountId,\"playerId\":this.brightcovePlayerId,\"videoId\":this.videoId},on:{\"loaded\":_vm.onBrightcovePlayerLoaded}})],1),_c('b-col',{staticClass:\"align-items-stretch chat-height\",attrs:{\"cols\":\"12\",\"lg\":\"4\"}},[(!_vm.session.isModerated && _vm.session.misconductEmailFamily)?_c('div',{staticClass:\"alert alert-danger\",attrs:{\"role\":\"alert\"}},[_c('span',[_vm._v(\"Please report any misconduct to \"),_c('a',{staticClass:\"misconductMail\",attrs:{\"href\":'mailto:' + _vm.session.misconductEmailFamily}},[_vm._v(_vm._s(_vm.session.misconductEmailFamily))]),_vm._v(\".\")])]):_vm._e(),_c('PFChat',{key:_vm.session.eventGuid,attrs:{\"p-parent-guid\":_vm.session.sessionGuid,\"p-channel-name\":_vm.session.eventGuid,\"p-person\":_vm.user,\"p-moderation-on\":_vm.session.isModerated,\"p-display-avatar\":true,\"p-top-to-bottom\":false,\"p-hide-send-if-input-empty\":false,\"p-firebase-config\":_vm.firebaseConfig,\"p-lang\":\"en\"}})],1)],_c('b-col',{staticClass:\"d-none d-lg-block mt-3\",attrs:{\"lg\":12}},[_c('h1',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(this.session.title)+\" \")]),_c('div',{staticClass:\"mb-2\"},[(this.session.subTitle)?_c('span',{staticClass:\"modal__session-subtitle\"},[_vm._v(\" \"+_vm._s(this.session.subTitle)+\" \")]):_vm._e(),(!_vm.preCongressMode && this.session.industryLink)?_c('a',{staticClass:\"ml-3\",attrs:{\"href\":this.session.industryLink,\"target\":\"_blank\"}},[_c('b-button',{staticClass:\"font-weight-bold\",attrs:{\"variant\":\"clear\",\"size\":\"sm\"}},[_c('i',{staticClass:\"las la-3x la-t-plus-2 la la-external-link mr-1\"}),_vm._v(\" Exhibitor Profile \")])],1):_vm._e()]),_c('div',{staticClass:\"session__details__content__flags d-block font-regular\"},[(!_vm.session.isOnDemand && _vm.session.startTime)?_c('div',{staticClass:\"session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"mr-1 material-icons-round\"},[_vm._v(\" calendar_month \")]),_c('span',{staticClass:\"flags__label\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.session.startTime))+\" from \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.session.startTime))+\" to \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.session.endTime))+\" \"),_c('span',{staticClass:\"ml-1\"},[_vm._v(\"(\"+_vm._s(this.session.duration)+\"mn)\")])])]):_vm._e(),_c('div',{staticClass:\"d-none session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"share-wrapper session__details__content__flags d-inline-flex align-items-center font-regular lh-1\"},[_c('span',{staticClass:\"material-icons-round mr-1\"},[_vm._v(\" share \")]),_vm._v(\" \"),_c('span',{staticClass:\"flags__label mr-1\"},[_vm._v(\" Share on \")]),_vm._l((_vm.networks),function(network){return _c('ShareNetwork',{key:network.network,attrs:{\"network\":network.network,\"url\":_vm.metaUrl,\"title\":_vm.metaTitle,\"description\":_vm.metaDescription}},[_c('span',{staticClass:\"share-link\"},[_c('img',{attrs:{\"src\":network.icon,\"alt\":network.name}})])])})],2)])])]),(!_vm.preCongressMode && this.session.industryEmail && this.session.industryEmail.trim() != '' && this.session.industryEmail.includes('@'))?_c('b-col',{staticClass:\"mt-3\",attrs:{\"cols\":\"12\",\"lg\":12}},[_c('span',{staticClass:\"modal__session-contact-label\"},[_vm._v(\"For more information about this presentation please contact \")]),_c('a',{staticClass:\"modal__session-contact-link\",attrs:{\"href\":`mailto:${this.session.industryEmail}`,\"target\":\"_blank\"}},[_vm._v(_vm._s(this.session.industryEmail))])]):_vm._e(),_c('b-col',{staticClass:\"mt-4\",attrs:{\"cols\":\"12\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.collapse-more-details\",modifiers:{\"collapse-more-details\":true}}],staticClass:\"float-left mr-3 d-block with-icon\",attrs:{\"pill\":\"\",\"variant\":\"dark\"},on:{\"click\":_vm.onMoreDetailsClick}},[_c('i',{staticClass:\"las la-4x la-t-plus-2 la-plus-circle when-closed mr-1\"}),_c('span',{staticClass:\"when-closed\"},[_vm._v(\"More\")]),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-minus-circle when-opened mr-1\"}),_c('span',{staticClass:\"when-opened\"},[_vm._v(\"Less\")]),_vm._v(\" details on this session \")]),(_vm.session.id && _vm.session.title && _vm.session.scientificSessionId)?_c('div',[_c('div',{staticClass:\"session__favorite__button\"},[_c('FavoriteButton',{attrs:{\"title\":_vm.session.title,\"digitalSessionId\":_vm.session.id,\"scientificSessionId\":_vm.session.scientificSessionId,\"mode\":\"large\",\"width\":\"18\",\"height\":\"18\"}})],1)]):_vm._e(),_c('b-collapse',{staticClass:\"collapse__more-details\",attrs:{\"visible\":!_vm.isMoreDetailsLoading,\"id\":\"collapse-more-details\"}},[_c('b-card',{staticClass:\"card__more-details\"},[(\n !this.isMoreDetailsLoading &&\n (!this.sessionMoreDetails.chairpersons || this.sessionMoreDetails.chairpersons.length == 0) &&\n !this.sessionMoreDetails.learningObjectives &&\n (!this.sessionMoreDetails.presentations || this.sessionMoreDetails.presentations.length == 0)\n )?[_c('p',{staticClass:\"card-text\"},[_vm._v(\"There is no more information to display\")])]:_vm._e(),(this.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"10%\"}}),_c('b-skeleton',{attrs:{\"width\":\"20%\"}})],1)]:_vm._e(),(!this.isMoreDetailsLoading && this.sessionMoreDetails.chairpersons && this.sessionMoreDetails.chairpersons.length > 0)?[_c('h5',[_vm._v(\"Chairpersons\")]),_c('p',{staticClass:\"card-text\"},_vm._l((this.sessionMoreDetails.chairpersons),function(chair,index){return _c('span',{key:index,staticClass:\"card-text__speaker\"},[_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/speakers/${chair.userId}`}},[_c('span',{on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\" \"+_vm._s(_vm.fullNameWithAddress(chair))+\" \")])])],1)}),0)]:_vm._e(),(this.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"12%\"}}),_c('b-skeleton',{attrs:{\"width\":\"30%\"}})],1)]:_vm._e(),(!this.isMoreDetailsLoading && this.sessionMoreDetails.learningObjectives && this.sessionMoreDetails.learningObjectives.trim() !== '')?[_c('h5',[_vm._v(\"More on the session\")]),_c('p',{staticClass:\"card-text text-white-space-pre-wrap\"},[_vm._v(_vm._s(_vm._f(\"trim\")(this.sessionMoreDetails.learningObjectives)))])]:_vm._e(),(this.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"10%\"}}),_c('b-skeleton-img',{staticClass:\"mb-2\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"80%\"}}),_c('b-skeleton-img',{staticClass:\"mb-1\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"80%\"}}),_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"80%\"}})],1)]:_vm._e(),(!this.isMoreDetailsLoading && this.sessionMoreDetails.presentations && this.sessionMoreDetails.presentations.length > 0)?[_c('h5',{staticClass:\"mt-4 mb-3\"},[_vm._v(\"Presentations\")]),_vm._l((this.sessionMoreDetails.presentations),function(presentation,index){return _c('div',{key:index,staticClass:\"session__details__presentation px-4 py-3\"},[(presentation.startTime > 0)?_c('span',{staticClass:\"session__details__presentation__hour\"},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocTimePart\")(presentation.startTime))+\" - \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(presentation.endTime)))]):_vm._e(),_c('span',{staticClass:\"session__details__presentation__title font-black\"},[_vm._v(_vm._s(presentation.title))]),_vm._l((presentation.persons),function(person,index){return _c('span',{key:index,staticClass:\"session__details__presentation__person\"},[_vm._v(\" \"+_vm._s(person.role)+\": \"),_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/speakers/${person.userId}`}},[_c('span',{staticClass:\"btn-link font-light\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\" \"+_vm._s(_vm.fullNameWithAddress(person))+\" \")])])],1)})],2)})]:_vm._e()],2)],1)],1)],2)]:_vm._e()],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\r\n methods: {\r\n fullNameWithAddress(person) {\r\n let fullNameWithAddr = `${person.firstName} ${person.lastName}`;\r\n if (person.address && person.address.trim() !== '') fullNameWithAddr += ` (${person.address})`;\r\n return fullNameWithAddr;\r\n },\r\n fullAddressFormatted(address) {\r\n let addressFormatted;\r\n if (address && address.trim() !== '') addressFormatted = ` ${address}`;\r\n return addressFormatted;\r\n },\r\n roleFormatted(role)\r\n {\r\n let formattedRole = role;\r\n //if(role && role==='Assigned Presenter' ) return 'Presenter';\r\n formattedRole = formattedRole.replace('Assigned Presenter','Presenter');\r\n return formattedRole;\r\n }\r\n }\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Banners',{attrs:{\"v-if\":this.sessionId && this.sessionBanners,\"banners\":this.sessionBanners}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-carousel',{attrs:{\"interval\":7000,\"fade\":\"\",\"no-hover-pause\":\"\"}},_vm._l((_vm.banners),function(banner){return _c('b-carousel-slide',{key:banner.id,scopedSlots:_vm._u([{key:\"img\",fn:function(){return [_c('div',{staticClass:\"mx-auto text-center\"},[(banner.banner_href.url)?_c('a',{staticClass:\"d-inline-block banner_link\",attrs:{\"href\":banner.banner_href.url,\"target\":banner.banner_target}},[_c('b-img-lazy',_vm._b({staticClass:\"img--banner\",attrs:{\"src\":banner.banner_image.filename,\"rounded\":\"\",\"fluid\":\"\",\"alt\":`Banner #${banner.id}`}},'b-img-lazy',_vm.imgPlaceholder,false))],1):_c('div',{staticClass:\"d-inline-block\"},[_c('b-img-lazy',_vm._b({staticClass:\"img--banner\",attrs:{\"src\":banner.banner_image.filename,\"rounded\":\"\",\"fluid\":\"\",\"alt\":`Banner #${banner.id}`}},'b-img-lazy',_vm.imgPlaceholder,false))],1)])]},proxy:true}],null,true)})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-carousel :interval=\"7000\" fade no-hover-pause>\r\n <b-carousel-slide v-for=\"banner in banners\" :key=\"banner.id\">\r\n <template #img>\r\n <div class=\"mx-auto text-center\">\r\n <a v-if=\"banner.banner_href.url\" :href=\"banner.banner_href.url\" :target=\"banner.banner_target\" class=\"d-inline-block banner_link\">\r\n <b-img-lazy v-bind=\"imgPlaceholder\" :src=\"banner.banner_image.filename\" rounded fluid :alt=\"`Banner #${banner.id}`\" class=\"img--banner\"></b-img-lazy>\r\n </a>\r\n <div v-else class=\"d-inline-block\">\r\n <b-img-lazy v-bind=\"imgPlaceholder\" :src=\"banner.banner_image.filename\" rounded fluid :alt=\"`Banner #${banner.id}`\" class=\"img--banner\"></b-img-lazy>\r\n </div>\r\n </div>\r\n </template>\r\n </b-carousel-slide>\r\n </b-carousel>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'Banners',\r\n props: {\r\n banners: Array\r\n },\r\n data() {\r\n return {\r\n imgPlaceholder: {\r\n center: false,\r\n blank: true,\r\n blankColor: '#bbb',\r\n width: 970 /* force only heigh to avoid mutlisize banners issue -> no ? */,\r\n height: 90\r\n }\r\n };\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n .banner_link .img--banner {\r\n cursor: pointer;\r\n /*\r\n max-width: 970px;\r\n margin:0;\r\n */\r\n /*\r\n display: inline-block !important;\r\n */\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Banners.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Banners.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Banners.vue?vue&type=template&id=1b662702&scoped=true\"\nimport script from \"./Banners.vue?vue&type=script&lang=js\"\nexport * from \"./Banners.vue?vue&type=script&lang=js\"\nimport style0 from \"./Banners.vue?vue&type=style&index=0&id=1b662702&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b662702\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <Banners :v-if=\"this.sessionId && this.sessionBanners\" :banners=\"this.sessionBanners\" />\r\n</template>\r\n\r\n<script>\r\n import Banners from 'src/components/Banners/Banners';\r\n import { mapState } from 'vuex';\r\n\r\n export default {\r\n name: 'IndustryBanners',\r\n components: { Banners },\r\n props: {\r\n sessionId: Number\r\n },\r\n computed: {\r\n ...mapState({\r\n confCmsData: state => state.app.confCmsData\r\n }),\r\n sessionBanners() {\r\n return this.getModalBanners(this.sessionId);\r\n }\r\n },\r\n mounted() {\r\n // If needed...\r\n },\r\n methods: {\r\n getModalBanners(sessionId) {\r\n // DISCUSS: Refresh configuration every 10 minutes?\r\n if (!this.confCmsData || !this.confCmsData?.modal_banners_blocks || !sessionId) return [];\r\n return this.confCmsData?.modal_banners_blocks?.filter(x => x.banner_session_id == sessionId);\r\n }\r\n }\r\n };\r\n</script>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalBanners.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalBanners.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ModalBanners.vue?vue&type=template&id=0ad8a18c\"\nimport script from \"./ModalBanners.vue?vue&type=script&lang=js\"\nexport * from \"./ModalBanners.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-overlay',{attrs:{\"show\":_vm.isLoading}},[_c('video-js',{staticClass:\"embed-responsive embed-responsive-16by9\",attrs:{\"id\":_vm.brightcovePlayerId,\"data-account\":this.accountId,\"data-player\":this.playerId,\"data-video-id\":this.videoId,\"data-embed\":\"default\",\"controls\":\"\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-overlay :show=\"isLoading\">\r\n <!-- Brightcove Player -->\r\n <video-js\r\n :id=\"brightcovePlayerId\"\r\n :data-account=\"this.accountId\"\r\n :data-player=\"this.playerId\"\r\n :data-video-id=\"this.videoId\"\r\n data-embed=\"default\"\r\n controls=\"\"\r\n class=\"embed-responsive embed-responsive-16by9\"\r\n >\r\n </video-js>\r\n </b-overlay>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'BrightcovePlayer',\r\n data() {\r\n return {\r\n isLoading: true,\r\n script: null,\r\n brightcovePlayerId: this.$uuid.v1(),\r\n brightcovePlayer: null,\r\n };\r\n },\r\n props: {\r\n accountId: String,\r\n playerId: String,\r\n videoId: String,\r\n },\r\n computed: {\r\n scriptUrl() {\r\n return `https://players.brightcove.net/${this.accountId}/${this.playerId}_default/index.min.js`;\r\n },\r\n },\r\n mounted() {\r\n this.script = document.createElement('script');\r\n this.script.onload = this.onScriptLoaded;\r\n this.script.setAttribute('src', this.scriptUrl);\r\n\r\n document.head.appendChild(this.script);\r\n },\r\n beforeDestroy() {\r\n if (this.brightcovePlayer) this.brightcovePlayer.dispose();\r\n\r\n document.head.removeChild(this.script);\r\n },\r\n methods: {\r\n onScriptLoaded() {\r\n const self = this;\r\n // eslint-disable-next-line no-undef\r\n videojs.getPlayer(this.brightcovePlayerId).ready(function () {\r\n self.brightcovePlayer = this;\r\n\r\n self.brightcovePlayer.on('loadedmetadata', function () {\r\n // +++ Get the browser language +++\r\n let browser_language = navigator.language || navigator.userLanguage; // IE <= 10;\r\n browser_language = browser_language.substr(0, 2);\r\n //console.log(`browser_language ${browser_language}`);\r\n // +++ Get the captions +++\r\n let tracks = self.brightcovePlayer.textTracks();\r\n \r\n // +++ Loop through captions +++ \r\n let track_language;\r\n let track_found;\r\n let fallback_track;\r\n for (var i = 0; i < tracks.length; i++) {\r\n track_language = tracks[i].language.substr(0, 2);\r\n\r\n // +++ Set the default caption language +++\r\n // When the caption language equals the browser language, then set it as default\r\n if (track_language) {\r\n if(track_language ==='en')\r\n fallback_track = tracks[i];\r\n if (track_language === browser_language) {\r\n tracks[i].mode = 'showing';\r\n track_found = true;\r\n //console.log(`browser subtitle ${track_language} activated`);\r\n } else {\r\n tracks[i].mode = 'disabled';\r\n }\r\n }\r\n\r\n if(!track_found && fallback_track)\r\n {\r\n fallback_track.mode = 'showing';\r\n //console.log(`default subtitle ${track_language} activated`);\r\n }\r\n } \r\n });\r\n\r\n self.isLoading = false;\r\n self.$emit('loaded');\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n.video-js {\r\n height: 100%;\r\n border-radius: 0.25rem !important;\r\n}\r\n\r\n.b-skeleton-img {\r\n height: 100%;\r\n border-radius: 0.25rem !important;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BrightcovePlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BrightcovePlayer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BrightcovePlayer.vue?vue&type=template&id=1a8639a2\"\nimport script from \"./BrightcovePlayer.vue?vue&type=script&lang=js\"\nexport * from \"./BrightcovePlayer.vue?vue&type=script&lang=js\"\nimport style0 from \"./BrightcovePlayer.vue?vue&type=style&index=0&id=1a8639a2&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('b-jumbotron',{attrs:{\"header\":this.headerText,\"lead\":this.message}},[_c('b-button',{staticClass:\"with-icon\",attrs:{\"pill\":\"\",\"variant\":\"congress\"},on:{\"click\":_vm.login}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <b-jumbotron :header=\"this.headerText\" :lead=\"this.message\">\r\n <b-button pill variant=\"congress\" @click=\"login\" class=\"with-icon\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n {{buttonText}}\r\n </b-button>\r\n </b-jumbotron>\r\n </div>\r\n</template>\r\n<script>\r\nimport { login } from 'src/services/auth';\r\n\r\nexport default {\r\n name: 'LogginWidget',\r\n props: {\r\n headerText: String,\r\n message: String,\r\n forceCheckAccess: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n buttonText:{\r\n type: String,\r\n default: 'Sign in',\r\n },\r\n },\r\n data() {\r\n return {};\r\n },\r\n computed: {\r\n returnUrl() {\r\n return window.location.origin + this.$route.fullPath;\r\n },\r\n },\r\n methods: {\r\n login() {\r\n login(this.returnUrl, this.forceCheckAccess);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n@include media-breakpoint-up(sm) {\r\n .jumbotron {\r\n padding: 1.5rem 4rem;\r\n }\r\n}\r\n\r\n.display-3 {\r\n font-size: 1.6rem;\r\n}\r\n\r\n.lead {\r\n font-size: 1rem;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LogginWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LogginWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LogginWidget.vue?vue&type=template&id=4eb77ddc&scoped=true\"\nimport script from \"./LogginWidget.vue?vue&type=script&lang=js\"\nexport * from \"./LogginWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./LogginWidget.vue?vue&type=style&index=0&id=4eb77ddc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4eb77ddc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.isMemberExclusive)?_c('b-jumbotron',{attrs:{\"header\":\"Sorry – this session is restricted to ESC Members only who have registered for ESC Congress.\",\"lead\":\"This content is only available to ESC Professional Members, Association Ivory, Silver or Gold Members and Fellows who have registered for the event.\"}},[(_vm.showButton)?_c('b-button',{staticClass:\"mr-1\",attrs:{\"variant\":\"congress\"},on:{\"click\":_vm.becomeAmember}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" Become a member \")]):_vm._e(),(_vm.showButton)?_c('b-button',{staticClass:\"ml-1\",attrs:{\"variant\":\"congress\"},on:{\"click\":_vm.register}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" Register Now \")]):_vm._e()],1):_c('b-jumbotron',{attrs:{\"header\":this.headerText,\"lead\":this.message}},[(_vm.showButton)?_c('b-button',{attrs:{\"variant\":\"congress\"},on:{\"click\":_vm.register}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")]):_vm._e(),_c('span',{staticClass:\"ml-3\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":_vm.checkAccess}},[_c('font-awesome-icon',{attrs:{\"icon\":\"play-circle\",\"size\":\"lg\"}}),_vm._v(\" \"+_vm._s(_vm.linkText))],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <b-jumbotron header=\"Sorry – this session is restricted to ESC Members only who have registered for ESC Congress.\" \r\n lead=\"This content is only available to ESC Professional Members, Association Ivory, Silver or Gold Members and Fellows who have registered for the event.\" \r\n v-if=\"isMemberExclusive\">\r\n <b-button v-if=\"showButton\" variant=\"congress\" @click=\"becomeAmember\" class=\"mr-1\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n Become a member\r\n </b-button>\r\n <b-button v-if=\"showButton\" variant=\"congress\" @click=\"register\" class=\"ml-1\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n Register Now\r\n </b-button>\r\n </b-jumbotron>\r\n <b-jumbotron :header=\"this.headerText\" :lead=\"this.message\" v-else> \r\n <b-button v-if=\"showButton\" variant=\"congress\" @click=\"register\" >\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n {{ buttonText }}\r\n </b-button>\r\n <span class=\"ml-3\">\r\n <a href=\"#\" @click=\"checkAccess\"><font-awesome-icon icon=\"play-circle\" size=\"lg\" /> {{ linkText }}</a>\r\n </span>\r\n </b-jumbotron>\r\n </div>\r\n</template>\r\n<script>\r\nimport { register, refreshAccess } from 'src/services/auth';\r\n\r\nexport default {\r\n name: 'RegisterWidget',\r\n props: {\r\n headerText: String,\r\n message: String,\r\n showButton: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n buttonText: {\r\n type: String,\r\n default: 'Register now',\r\n },\r\n linkText: String,\r\n isMemberExclusive: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {};\r\n },\r\n computed: {\r\n returnUrl() {\r\n return window.location.origin + this.$route.fullPath;\r\n },\r\n },\r\n methods: {\r\n register() {\r\n register(this.returnUrl);\r\n },\r\n becomeAmember() {\r\n window.location = \"https://www.escardio.org/The-ESC/Membership\";\r\n },\r\n checkAccess() {\r\n refreshAccess(this.returnUrl);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n@include media-breakpoint-up(sm) {\r\n .jumbotron {\r\n padding: 1.5rem 4rem;\r\n }\r\n}\r\n\r\n.display-3 {\r\n font-size: 2rem;\r\n}\r\n\r\n.lead {\r\n font-size: 1rem;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegisterWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegisterWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RegisterWidget.vue?vue&type=template&id=8cdeff66&scoped=true\"\nimport script from \"./RegisterWidget.vue?vue&type=script&lang=js\"\nexport * from \"./RegisterWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./RegisterWidget.vue?vue&type=style&index=0&id=8cdeff66&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8cdeff66\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <b-modal id=\"media-modal\" v-model=\"show\" @show=\"onShow()\" @hide=\"onHide()\" :no-close-on-esc=\"true\" hide-header hide-footer no-fade>\r\n <!-- Close -->\r\n <div class=\"btn__back mb-2 position-sticky float-lg-left\">\r\n <b-button pill variant=\"clear\" size=\"sm\" class=\"font-regular mt-2 d-inline d-inline-flex align-items-center border-0\" @click=\"close()\">\r\n <span class=\"material-icons-round mr-2\"> arrow_back </span>\r\n Back\r\n </b-button>\r\n </div>\r\n\r\n <b-container fluid class=\"pb-5 mb-5\">\r\n <b-col cols=\"12\" sm=\"12\" md=\"8\" lg=\"9\" class=\"m-auto d-block\">\r\n <template v-if=\"!isMetadataLoading\">\r\n <b-row>\r\n <b-col v-if=\"this.sessionId\" cols=\"12\" class=\"mb-2 mb-lg-4\">\r\n <ModalBanners :key=\"this.sessionId\" :sessionId=\"this.sessionId\" />\r\n </b-col>\r\n\r\n <b-col cols=\"12\" class=\"d-lg-none\">\r\n <!-- Informations -->\r\n <h1>\r\n {{ this.session.title }}<span v-if=\"this.session.subTitle\"> - {{ this.session.subTitle }}</span>\r\n </h1>\r\n </b-col>\r\n\r\n <b-col sm=\"12\" :lg=\"12\" class=\"pb-2 pb-lg-4\" v-if=\"EscDisclaimer && EscDisclaimer.trim() !== ''\">\r\n <!-- Disclaimer -->\r\n <div class=\"disclaimer__wrapper\">\r\n <div class=\"disclaimer__text\" v-html=\"EscDisclaimer\"></div>\r\n </div>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" class=\"pb-2 pb-lg-4\" v-if=\"session.disclaimer && session.disclaimer.trim() !== ''\">\r\n <!-- Disclaimer -->\r\n <div class=\"disclaimer__wrapper\">\r\n <div class=\"disclaimer__text\" v-html=\"session.disclaimer\"></div>\r\n </div>\r\n </b-col>\r\n\r\n <!-- Not logged -->\r\n <template v-if=\"!isLogged\">\r\n <b-col cols=\"12\" :lg=\"8\" class=\"mb-0 mb-lg-0\">\r\n <LogginWidget\r\n style=\"aspect-ratio: 16/9; background: #e9ecef; align-content: center\"\r\n class=\"rounded-lg\"\r\n :forceCheckAccess=\"true\"\r\n headerText=\"Access restricted to registered participants\"\r\n buttonText=\"Sign in\"\r\n :message=\"!postCongressMode ? `Please sign in to access the congress or register - it's not too late!` : `Please sign in to access the congress.`\"\r\n :isMemberExclusive=\"isMemberExclusive\"\r\n />\r\n </b-col>\r\n </template>\r\n\r\n <!-- Not registered -->\r\n <template v-else-if=\"!hasAccess\">\r\n <b-col cols=\"12\" :lg=\"8\" class=\"mb-2 mb-lg-0\">\r\n <RegisterWidget\r\n style=\"aspect-ratio: 16/9; background: #e9ecef; align-content: center\"\r\n headerText=\"Access restricted to registered participants\"\r\n :linkText=\"\r\n !postCongressMode ? `I have already registered and want to access the live event.` : `I have already registered and want to access the content.`\r\n \"\r\n :buttonText=\"!postCongressMode ? `Register Now` : ``\"\r\n :showButton=\"!postCongressMode\"\r\n message=\"This content is only available to users who have registered to the event.\"\r\n :isMemberExclusive=\"isMemberExclusive\"\r\n />\r\n </b-col>\r\n </template>\r\n\r\n <template v-else>\r\n <!-- Player -->\r\n <b-col cols=\"12\" :lg=\"8\" class=\"mb-2 mb-lg-0\">\r\n <!-- BrightcovePlayer -->\r\n <BrightcovePlayer\r\n ref=\"bcPlayer\"\r\n :key=\"this.videoId\"\r\n :accountId=\"this.brightcoveAccountId\"\r\n :playerId=\"this.brightcovePlayerId\"\r\n :videoId=\"this.videoId\"\r\n v-on:loaded=\"onBrightcovePlayerLoaded\"\r\n class=\"modal-widget mb-lg-4\"\r\n />\r\n </b-col>\r\n\r\n <!-- Widget -->\r\n <b-col cols=\"12\" lg=\"4\" class=\"align-items-stretch chat-height\">\r\n <div v-if=\"!session.isModerated && session.misconductEmailFamily\" class=\"alert alert-danger\" role=\"alert\">\r\n <span\r\n >Please report any misconduct to\r\n <a class=\"misconductMail\" :href=\"'mailto:' + session.misconductEmailFamily\">{{ session.misconductEmailFamily }}</a\r\n >.</span\r\n >\r\n </div>\r\n <!-- Cyim chat -->\r\n <PFChat\r\n :key=\"session.eventGuid\"\r\n :p-parent-guid=\"session.sessionGuid\"\r\n :p-channel-name=\"session.eventGuid\"\r\n :p-person=\"user\"\r\n :p-moderation-on=\"session.isModerated\"\r\n :p-display-avatar=\"true\"\r\n :p-top-to-bottom=\"false\"\r\n :p-hide-send-if-input-empty=\"false\"\r\n :p-firebase-config=\"firebaseConfig\"\r\n p-lang=\"en\"\r\n />\r\n </b-col>\r\n </template>\r\n <b-col :lg=\"12\" class=\"d-none d-lg-block mt-3\">\r\n <h1 class=\"mb-1\">\r\n {{ this.session.title }}\r\n </h1>\r\n <div class=\"mb-2\">\r\n <span class=\"modal__session-subtitle\" v-if=\"this.session.subTitle\"> {{ this.session.subTitle }} </span>\r\n <!-- Industry link -->\r\n <a v-if=\"!preCongressMode && this.session.industryLink\" class=\"ml-3\" :href=\"this.session.industryLink\" target=\"_blank\">\r\n <b-button variant=\"clear\" size=\"sm\" class=\"font-weight-bold\">\r\n <i class=\"las la-3x la-t-plus-2 la la-external-link mr-1\"></i>\r\n Exhibitor Profile\r\n </b-button>\r\n </a>\r\n </div>\r\n\r\n <div class=\"session__details__content__flags d-block font-regular\">\r\n <!-- Date + Start Time + End Time -->\r\n <div class=\"session__details__content__flags__inner d-inline-flex align-items-center\" v-if=\"!session.isOnDemand && session.startTime\">\r\n <span class=\"mr-1 material-icons-round\"> calendar_month </span>\r\n <span class=\"flags__label\">\r\n {{ session.startTime | formatUnixEpocDayPart }} from {{ session.startTime | formatUnixEpocTimePart }} to\r\n {{ session.endTime | formatUnixEpocTimePart }} <span class=\"ml-1\">({{ this.session.duration }}mn)</span>\r\n </span>\r\n </div>\r\n <!-- Sharing -->\r\n <div class=\"d-none session__details__content__flags__inner d-inline-flex align-items-center\">\r\n <span class=\"share-wrapper session__details__content__flags d-inline-flex align-items-center font-regular lh-1\">\r\n <span class=\"material-icons-round mr-1\"> share </span> <span class=\"flags__label mr-1\"> Share on </span>\r\n <ShareNetwork\r\n v-for=\"network in networks\"\r\n :network=\"network.network\"\r\n :key=\"network.network\"\r\n :url=\"metaUrl\"\r\n :title=\"metaTitle\"\r\n :description=\"metaDescription\"\r\n >\r\n <span class=\"share-link\">\r\n <img :src=\"network.icon\" :alt=\"network.name\" />\r\n </span>\r\n </ShareNetwork>\r\n </span>\r\n </div>\r\n <!-- end sharing -->\r\n </div>\r\n </b-col>\r\n\r\n <!-- Industry Email -->\r\n <b-col\r\n v-if=\"!preCongressMode && this.session.industryEmail && this.session.industryEmail.trim() != '' && this.session.industryEmail.includes('@')\"\r\n cols=\"12\"\r\n :lg=\"12\"\r\n class=\"mt-3\"\r\n >\r\n <span class=\"modal__session-contact-label\">For more information about this presentation please contact </span>\r\n <a :href=\"`mailto:${this.session.industryEmail}`\" target=\"_blank\" class=\"modal__session-contact-link\">{{ this.session.industryEmail }}</a>\r\n </b-col>\r\n\r\n <!-- More -->\r\n <b-col cols=\"12\" class=\"mt-4\">\r\n <b-button pill v-b-toggle.collapse-more-details @click=\"onMoreDetailsClick\" variant=\"dark\" class=\"float-left mr-3 d-block with-icon\">\r\n <i class=\"las la-4x la-t-plus-2 la-plus-circle when-closed mr-1\"></i><span class=\"when-closed\">More</span>\r\n <i class=\"las la-4x la-t-plus-2 la-minus-circle when-opened mr-1\"></i><span class=\"when-opened\">Less</span>\r\n details on this session\r\n </b-button>\r\n\r\n <div v-if=\"session.id && session.title && session.scientificSessionId\">\r\n <div class=\"session__favorite__button\">\r\n <FavoriteButton\r\n :title=\"session.title\"\r\n :digitalSessionId=\"session.id\"\r\n :scientificSessionId=\"session.scientificSessionId\"\r\n mode=\"large\"\r\n width=\"18\"\r\n height=\"18\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <b-collapse :visible=\"!isMoreDetailsLoading\" id=\"collapse-more-details\" class=\"collapse__more-details\">\r\n <b-card class=\"card__more-details\">\r\n <!-- Empty -->\r\n <template\r\n v-if=\"\r\n !this.isMoreDetailsLoading &&\r\n (!this.sessionMoreDetails.chairpersons || this.sessionMoreDetails.chairpersons.length == 0) &&\r\n !this.sessionMoreDetails.learningObjectives &&\r\n (!this.sessionMoreDetails.presentations || this.sessionMoreDetails.presentations.length == 0)\r\n \"\r\n >\r\n <p class=\"card-text\">There is no more information to display</p>\r\n </template>\r\n\r\n <!-- Chairpersons -->\r\n <template v-if=\"this.isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"10%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton width=\"20%\"></b-skeleton>\r\n </div>\r\n </template>\r\n\r\n <template v-if=\"!this.isMoreDetailsLoading && this.sessionMoreDetails.chairpersons && this.sessionMoreDetails.chairpersons.length > 0\">\r\n <h5>Chairpersons</h5>\r\n <p class=\"card-text\">\r\n <span v-for=\"(chair, index) in this.sessionMoreDetails.chairpersons\" :key=\"index\" class=\"card-text__speaker\">\r\n <router-link :to=\"`/${eventRoute}/speakers/${chair.userId}`\">\r\n <span @click=\"close()\"> {{ fullNameWithAddress(chair) }} </span>\r\n </router-link>\r\n </span>\r\n </p>\r\n </template>\r\n\r\n <!-- LearningObjectives -->\r\n <template v-if=\"this.isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"12%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton width=\"30%\"></b-skeleton>\r\n </div>\r\n </template>\r\n\r\n <template\r\n v-if=\"!this.isMoreDetailsLoading && this.sessionMoreDetails.learningObjectives && this.sessionMoreDetails.learningObjectives.trim() !== ''\"\r\n >\r\n <h5>More on the session</h5>\r\n <p class=\"card-text text-white-space-pre-wrap\">{{ this.sessionMoreDetails.learningObjectives | trim }}</p>\r\n </template>\r\n\r\n <!-- Presentations -->\r\n <template v-if=\"this.isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"10%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"80%\" class=\"mb-2\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"80%\" class=\"mb-1\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"80%\"></b-skeleton-img>\r\n </div>\r\n </template>\r\n\r\n <template v-if=\"!this.isMoreDetailsLoading && this.sessionMoreDetails.presentations && this.sessionMoreDetails.presentations.length > 0\">\r\n <h5 class=\"mt-4 mb-3\">Presentations</h5>\r\n\r\n <div v-for=\"(presentation, index) in this.sessionMoreDetails.presentations\" :key=\"index\" class=\"session__details__presentation px-4 py-3\">\r\n <span class=\"session__details__presentation__hour\" v-if=\"presentation.startTime > 0\"\r\n >{{ presentation.startTime | formatUnixEpocTimePart }} - {{ presentation.endTime | formatUnixEpocTimePart }}</span\r\n >\r\n <span class=\"session__details__presentation__title font-black\">{{ presentation.title }}</span>\r\n <span v-for=\"(person, index) in presentation.persons\" :key=\"index\" class=\"session__details__presentation__person\">\r\n {{ person.role }}:\r\n <router-link :to=\"`/${eventRoute}/speakers/${person.userId}`\">\r\n <span @click=\"close()\" class=\"btn-link font-light\"> {{ fullNameWithAddress(person) }} </span>\r\n </router-link>\r\n </span>\r\n <!--\r\n <span v-if=\"!sessionMoreDetails.isOnDemand\" class=\"card__presentation__start-time\"> <i class=\"las la-2x la-t-plus-1 la-clock\"></i> Time: {{ presentation.startTime | formatUnixEpocTimePart }}</span>\r\n --></div>\r\n </template>\r\n </b-card>\r\n </b-collapse>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n </b-col>\r\n </b-container>\r\n </b-modal>\r\n</template>\r\n\r\n<script>\r\n import { CLOSE_CHANNEL_MODAL, DISABLE_POOLING, ENABLE_POOLING } from 'src/store/actions';\r\n import { mapGetters, mapState } from 'vuex';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { consoleColors } from 'src/utils/console-color.js';\r\n import { constants } from 'src/constants';\r\n import personsMixin from 'src/mixins/personsMixin';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import ModalBanners from 'src/components/Banners/ModalBanners';\r\n import BrightcovePlayer from 'src/components/Players/BrightcovePlayer';\r\n // import PigeonWidget from 'src/components/Widgets/PigeonWidget';\r\n import LogginWidget from 'src/components/Widgets/LogginWidget';\r\n import RegisterWidget from 'src/components/Widgets/RegisterWidget';\r\n import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\n\r\n import { Duration } from 'luxon';\r\n\r\n export default {\r\n name: 'ChannelModal',\r\n mixins: [personsMixin],\r\n components: {\r\n ModalBanners,\r\n BrightcovePlayer,\r\n // PigeonWidget,\r\n LogginWidget,\r\n RegisterWidget,\r\n FavoriteButton,\r\n },\r\n data() {\r\n return {\r\n isMetadataLoading: true,\r\n isPigeonLoading: true,\r\n isMoreDetailsLoading: true,\r\n isFirstClickOnMoreDetails: true,\r\n isBcPlayerLoaded: false,\r\n waitingForClosing: false,\r\n hasAccess: false,\r\n session: null,\r\n sessionMoreDetails: null,\r\n sessionBanners: null,\r\n fetchNextSessionDetailsJob: null,\r\n networks: [\r\n { network: 'facebook', name: 'facebook', icon: require('@/assets/images/social/facebook-black.png') },\r\n { network: 'twitter', name: 'twitter', icon: require('@/assets/images/social/x-logo-black.png') },\r\n { network: 'linkedin', name: 'linkedin', icon: require('@/assets/images/social/linkedin-black.png') },\r\n ],\r\n user: [],\r\n firebaseConfig: process.env.VUE_APP_CHAT_CYIM_FIREBASE_CONFIG,\r\n\r\n };\r\n },\r\n metaInfo() {\r\n if (this.session) {\r\n return {\r\n meta: [\r\n { name: 'description', vmid: 'description', content: this.metaDescription },\r\n // OpenGraph\r\n { property: 'og:title', vmid: 'og:title', content: this.metaTitle },\r\n { property: 'og:description', vmid: 'og:description', content: this.metaDescription },\r\n { property: 'og:type', vmid: 'og:type', content: 'video.movie' },\r\n { property: 'og:url', vmid: 'og:url', content: this.metaUrl },\r\n // Twitter\r\n { property: 'twitter:title', vmid: 'twitter:title', content: this.metaTitle },\r\n { property: 'twitter:description', vmid: 'twitter:description', content: this.metaDescription },\r\n ],\r\n };\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['currentUser']),\r\n ...mapState({\r\n channelModal: (state) => state.modal.channel,\r\n isLogged: (state) => state.auth.loggedIn,\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n brightcoveAccountId: (state) => state.app.brightcoveAccountId,\r\n brightcovePlayerId: (state) => state.app.brightcovePlayerId,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n eventRoute: (state) => state.app.eventRoute,\r\n }),\r\n show: {\r\n get() {\r\n return this.channelModal.show;\r\n },\r\n set(show) {\r\n if (!show) this.close();\r\n },\r\n },\r\n metaTitle() {\r\n return `${this.eventBaseTitle} | ${this.session.title}`;\r\n },\r\n metaDescription() {\r\n return `${this.session.title} session at ${this.eventBaseTitle}`;\r\n },\r\n metaUrl() {\r\n return `${window.location.origin}?c=${this.channelId}`;\r\n },\r\n channelId() {\r\n return this.channelModal?.params?.channelId;\r\n },\r\n hasExternalLink() {\r\n return this.session.hasExternalLink;\r\n },\r\n sessionId() {\r\n return this.session?.id;\r\n },\r\n videoId() {\r\n return this.session?.liveVideoId;\r\n },\r\n isMemberExclusive() {\r\n const memberExclusiveDigitalSessionIds = [5767, 5768, 5769, 5770];\r\n return memberExclusiveDigitalSessionIds.includes(this.session?.id);\r\n },\r\n EscDisclaimer() {\r\n return (this.session.EscDisclaimer ?? '').length == 0\r\n ? this.session.isIndustry\r\n ? constants.INDUSTRY_DEFAULT_DISCLAIMER\r\n : null\r\n : this.session.EscDisclaimer;\r\n },\r\n },\r\n watch: {\r\n // This function will run everytime data.session change\r\n session(newSession) {\r\n if (newSession) {\r\n const oldFurl = this.$route.query.c;\r\n const furl = newSession.channelFurl;\r\n\r\n if ((furl && !oldFurl) || (furl && furl !== oldFurl)) this.$router.push({ query: Object.assign({}, this.$route.query, { c: furl }) });\r\n } else {\r\n let query = Object.assign({}, this.$route.query);\r\n delete query.c;\r\n this.$router.replace({ query: query });\r\n }\r\n },\r\n // This function will run everytime data.isBcPlayerLoaded change\r\n isBcPlayerLoaded(isLoaded) {\r\n if (isLoaded && this.waitingForClosing) this.$store.dispatch(CLOSE_CHANNEL_MODAL);\r\n },\r\n },\r\n methods: {\r\n close() {\r\n if (!this.isLogged || this.isMetadataLoading || this.isBcPlayerLoaded || !this.hasAccess) this.$store.dispatch(CLOSE_CHANNEL_MODAL);\r\n else this.waitingForClosing = true;\r\n },\r\n async onShow() {\r\n // Disabling pooling...\r\n this.$store.dispatch(DISABLE_POOLING);\r\n\r\n // if (this.isLogged) await checkAccess(undefined, false, window.location, false);\r\n this.refreshSessionDetails();\r\n },\r\n onHide() {\r\n // Enabling pooling...\r\n this.$store.dispatch(ENABLE_POOLING);\r\n\r\n // We are reseting modal's state...\r\n this.resetState();\r\n\r\n // We are clearing jobs...\r\n this.clearNextSessionDetailsJob();\r\n },\r\n refreshSessionDetails() {\r\n MediaApiService.getSessionDetailsByChannel(this.channelId).then(async ({ data }) => {\r\n if (data) {\r\n this.user = {\r\n id: this.currentUser?.escId,\r\n name: this.currentUser?.firstName + ' ' + this.currentUser?.lastName,\r\n role: this.currentUser?.title,\r\n };\r\n\r\n this.hasAccess = data?.hasAccess ?? false;\r\n this.session = data;\r\n\r\n if (!this.hasAccess) this.logAccessDenied();\r\n this.isMetadataLoading = false;\r\n\r\n const hasExternalLink = data?.hasExternalLink;\r\n if (hasExternalLink && this.hasAccess) {\r\n const externalLink = data?.externalLink;\r\n window.open(externalLink, '_blank');\r\n this.close();\r\n } else {\r\n this.createNextSessionDetailsJob();\r\n }\r\n }\r\n });\r\n },\r\n fetchNextSessionDetails() {\r\n let previousVideoId = this.videoId;\r\n\r\n MediaApiService.getSessionDetailsByChannel(this.channelId)\r\n .then(async ({ data }) => {\r\n if (data) {\r\n // We are reseting modal's state...\r\n this.resetState();\r\n this.hasAccess = data?.hasAccess ?? false;\r\n this.session = data;\r\n this.isMetadataLoading = false;\r\n this.createNextSessionDetailsJob();\r\n if (!this.hasAccess) this.logAccessDenied();\r\n const hasExternalLink = data?.hasExternalLink;\r\n\r\n // If video id doesn't change BC player is not reload -> player loaded falg forced to true;\r\n if (!hasExternalLink && this.videoId == previousVideoId) this.isBcPlayerLoaded = true;\r\n\r\n if (hasExternalLink && this.hasAccess) {\r\n const externalLink = data?.externalLink;\r\n window.open(externalLink, '_blank');\r\n this.close();\r\n } /*else {\r\n this.createNextSessionDetailsJob();\r\n }*/\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.status == 404) {\r\n // TODO: Display a message instead ?\r\n this.close();\r\n }\r\n });\r\n },\r\n onMoreDetailsClick() {\r\n if (!this.isFirstClickOnMoreDetails) return;\r\n\r\n this.isFirstClickOnMoreDetails = false;\r\n\r\n MediaApiService.getSessionMoreDetails(this.sessionId).then(({ data }) => {\r\n if (data) {\r\n this.isMoreDetailsLoading = false;\r\n this.sessionMoreDetails = data;\r\n }\r\n });\r\n },\r\n onBrightcovePlayerLoaded() {\r\n this.isBcPlayerLoaded = true;\r\n },\r\n onPigeonWidgetLoaded() {\r\n // If needed...\r\n },\r\n createNextSessionDetailsJob() {\r\n const currentTime = DateHelper.browserDateTime().getTime();\r\n const endTime = this.session.endTime;\r\n\r\n let nextRefreshTime = this.session.nextRefreshTime;\r\n if (!nextRefreshTime) nextRefreshTime = endTime;\r\n\r\n let nextRefreshDelay = this.session.nextRefreshDelay;\r\n if (!nextRefreshDelay) nextRefreshDelay = nextRefreshTime - currentTime; // If you want to test set: 10000;\r\n // if nextRefreshDelay negative set 30sec\r\n if (nextRefreshDelay <= 0) nextRefreshDelay = 30000;\r\n //console.log('nextRefreshDelay', Duration.fromMillis(nextRefreshDelay).toFormat(\"hh:mm:ss\"));\r\n //console.log(`end ${this.$options.filters.formatUnixEpocTimePartForLog(endTime)}`);\r\n console.debug(`%cnext Session -30sec: ${this.$options.filters.formatUnixEpocTimePartForLog(nextRefreshTime)}`, consoleColors.misc);\r\n console.debug(`%cnext refresh in: ${Duration.fromMillis(nextRefreshDelay).toFormat('hh:mm:ss')}`, consoleColors.misc);\r\n\r\n // We are clearing jobs...\r\n this.clearNextSessionDetailsJob();\r\n\r\n // 🙃 -> https://stackoverflow.com/a/3468650\r\n if (nextRefreshDelay >= 2147483648) nextRefreshDelay = 2147483647;\r\n\r\n this.fetchNextSessionDetailsJob = setTimeout(this.fetchNextSessionDetails, nextRefreshDelay);\r\n },\r\n clearNextSessionDetailsJob() {\r\n if (this.fetchNextSessionDetailsJob) {\r\n clearTimeout(this.fetchNextSessionDetailsJob);\r\n this.fetchNextSessionDetailsJob = null;\r\n }\r\n },\r\n resetState() {\r\n this.hasAccess = false;\r\n\r\n this.isBcPlayerLoaded = false;\r\n this.waitingForClosing = false;\r\n\r\n this.isMetadataLoading = true;\r\n this.isMoreDetailsLoading = true;\r\n\r\n this.isFirstClickOnMoreDetails = true;\r\n\r\n this.session = null;\r\n },\r\n logAccessDenied() {\r\n if (this.$appInsights && this.currentUser) {\r\n const logAccessDeniedProps = {\r\n escId: this.currentUser?.escId,\r\n channelId: this.channelId,\r\n sessionId: this.sessionId,\r\n videoId: this.videoId,\r\n source: 'ChannelModal',\r\n };\r\n console.info(`%cAppInsights: logAccessDenied ${JSON.stringify(logAccessDeniedProps)}`, consoleColors.insights);\r\n this.$appInsights?.trackEvent({ name: 'logAccessDenied', properties: logAccessDeniedProps });\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n @import '~@/styles/theme';\r\n\r\n $media-modal-bg-primary: linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(0, 0, 0, 0.15) 100%),\r\n radial-gradient(at top center, rgba(255, 255, 255, 0.4) 0%, rgba(0, 0, 0, 0.8) 120%) #989898;\r\n $media-modal-bg-secondary: #656565;\r\n\r\n $media-modal-primary: $primary;\r\n $media-modal-secondary: #9e9e9e;\r\n\r\n .session__favorite__button {\r\n margin-left: auto;\r\n cursor: pointer;\r\n z-index: 100;\r\n }\r\n\r\n .session__details__presentation__hour {\r\n color: var(--congress);\r\n }\r\n\r\n ::v-deep #media-modal > .modal-dialog {\r\n height: 100%;\r\n max-width: 100%;\r\n overflow-y: auto;\r\n margin: 0 auto;\r\n }\r\n\r\n ::v-deep #media-modal {\r\n padding: 0 !important;\r\n }\r\n\r\n ::v-deep #media-modal .modal-header {\r\n border-bottom: none;\r\n margin-bottom: 25px;\r\n\r\n .close {\r\n font-size: 2.5rem;\r\n opacity: 1;\r\n margin: 0 0 -1.5rem auto;\r\n border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n padding: 0;\r\n }\r\n\r\n .close::after {\r\n position: absolute;\r\n top: 72px;\r\n right: 24px;\r\n white-space: pre;\r\n line-height: 1.2;\r\n font-size: 0.9rem;\r\n content: 'Close\\avideo';\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n ::v-deep #media-modal .modal-header {\r\n padding: 0.3rem 1rem;\r\n\r\n .close {\r\n font-size: 1.6rem;\r\n margin: 0 0 0.3rem auto;\r\n width: 30px;\r\n height: 30px;\r\n }\r\n\r\n .close::after {\r\n top: 42px;\r\n right: 17px;\r\n line-height: 1.3;\r\n font-size: 0.6rem;\r\n }\r\n }\r\n }\r\n\r\n ::v-deep #media-modal .modal-content {\r\n height: 100%;\r\n overflow-y: auto;\r\n background: #fff;\r\n background-blend-mode: multiply, multiply;\r\n border: none;\r\n border-radius: unset;\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n ::v-deep #media-modal .modal-body {\r\n padding: 0;\r\n }\r\n }\r\n\r\n .modal-widget {\r\n height: 100%;\r\n max-height: 70vh;\r\n }\r\n\r\n h1 {\r\n font-size: 1.75rem;\r\n }\r\n\r\n h5 {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .modal__session-subtitle {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .modal__session-contact-label {\r\n display: block;\r\n color: #d1d1d1;\r\n }\r\n\r\n .modal__session-contact-link {\r\n color: $media-modal-primary;\r\n text-decoration: underline;\r\n }\r\n\r\n .disclaimer__wrapper {\r\n display: flex;\r\n align-items: center;\r\n color: $media-modal-primary;\r\n }\r\n\r\n .disclaimer__icon {\r\n padding-right: 10px;\r\n }\r\n\r\n .disclaimer__text {\r\n display: inline-block;\r\n font-size: 0.9em;\r\n }\r\n\r\n .misconductMail {\r\n color: #721c24;\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n .disclaimer__text {\r\n text-align: justify;\r\n font-size: 0.65em;\r\n }\r\n }\r\n\r\n .share-wrapper {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .share-link {\r\n position: relative;\r\n top: -3px;\r\n padding-left: 8px;\r\n padding-right: 8px;\r\n cursor: pointer;\r\n }\r\n\r\n .session-duration {\r\n font-size: 0.85em;\r\n }\r\n\r\n .card__more-details {\r\n border: 0;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n box-shadow: inherit;\r\n overflow: visible;\r\n\r\n .card-body {\r\n color: $primary;\r\n padding: 0;\r\n padding-top: 2rem;\r\n }\r\n\r\n .b-skeleton-img {\r\n margin-bottom: 10px;\r\n }\r\n }\r\n\r\n .card-text__speaker {\r\n display: block;\r\n }\r\n\r\n .session__details__presentation {\r\n background: $secondary;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n padding: 0.6rem 0.8rem;\r\n border-radius: 6px;\r\n margin-bottom: 1rem;\r\n\r\n &__title {\r\n display: block;\r\n }\r\n\r\n &__person {\r\n display: block;\r\n }\r\n\r\n &__start-time {\r\n display: block;\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n }\r\n\r\n img {\r\n vertical-align: baseline;\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n .card__presentation {\r\n max-width: 100%;\r\n }\r\n\r\n .btn-collapse {\r\n display: block;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .btn__back {\r\n top: 1rem;\r\n left: 1rem;\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n .btn__back {\r\n position: relative !important;\r\n top: 0.5rem;\r\n left: 0;\r\n padding-left: 1.5rem;\r\n }\r\n }\r\n\r\n .btn-collapse {\r\n color: $primary;\r\n }\r\n\r\n .collapsed > .when-opened,\r\n :not(.collapsed) > .when-closed {\r\n display: none;\r\n }\r\n\r\n :not(.collapsed).btn-collapse {\r\n border-radius: 0.25em 0.25em 0 0;\r\n }\r\n\r\n .session__details__content__flags {\r\n font-size: 0.9rem;\r\n\r\n &__inner {\r\n margin-right: 1.25rem;\r\n\r\n .material-icons-round,\r\n .material-icons-outlined,\r\n .material-symbols-rounded {\r\n font-size: 22px;\r\n }\r\n }\r\n\r\n &__inner:last-of-type {\r\n margin-right: 0;\r\n }\r\n\r\n &__inner:not(:first-child) {\r\n border-top: solid 1px white;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChannelModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChannelModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChannelModal.vue?vue&type=template&id=575c4ded&scoped=true\"\nimport script from \"./ChannelModal.vue?vue&type=script&lang=js\"\nexport * from \"./ChannelModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./ChannelModal.vue?vue&type=style&index=0&id=575c4ded&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"575c4ded\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-modal',{attrs:{\"id\":\"media-modal\",\"no-close-on-esc\":true,\"hide-header\":\"\",\"hide-footer\":\"\",\"no-fade\":\"\"},on:{\"show\":function($event){return _vm.onShow()},\"hide\":function($event){return _vm.onHide()}},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"btn__back mb-2 position-sticky float-lg-left\"},[_c('b-button',{staticClass:\"font-regular mt-2 d-inline d-inline-flex align-items-center border-0\",attrs:{\"pill\":\"\",\"variant\":\"clear\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.close()}}},[_c('span',{staticClass:\"material-icons-round mr-2\"},[_vm._v(\" arrow_back \")]),_vm._v(\" Back \")])],1),_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-col',{staticClass:\"m-auto d-block pb-5\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"8\",\"lg\":\"9\"}},[(!_vm.isMetadataLoading)?[_c('b-row',[(this.sessionId)?_c('b-col',{staticClass:\"mb-2 mb-lg-4\",attrs:{\"cols\":\"12\"}},[_c('ModalBanners',{key:this.sessionId,attrs:{\"sessionId\":this.sessionId}})],1):_vm._e(),_c('b-col',{staticClass:\"d-lg-none\",attrs:{\"cols\":\"12\"}},[_c('h1',[_vm._v(\" \"+_vm._s(this.session.title)),(this.session.subTitle)?_c('span',[_vm._v(\" - \"+_vm._s(this.session.subTitle))]):_vm._e()])]),(_vm.disclaimer && _vm.disclaimer.trim() !== '')?_c('b-col',{staticClass:\"pb-2 pb-lg-4\",attrs:{\"sm\":\"12\",\"lg\":!_vm.replayMode ? 8 : 10,\"offset-lg\":!_vm.replayMode ? 0 : 1}},[_c('div',{staticClass:\"disclaimer__wrapper\"},[_c('div',{staticClass:\"disclaimer__text\",domProps:{\"innerHTML\":_vm._s(this.disclaimer)}})])]):_vm._e(),(!_vm.isLogged)?[_c('b-col',{staticClass:\"mb-2 mb-lg-0\",attrs:{\"cols\":\"12\",\"lg\":!_vm.replayMode ? 8 : 10,\"offset-lg\":!_vm.replayMode ? 0 : 1}},[_c('LogginWidget',{staticClass:\"rounded-lg\",staticStyle:{\"aspect-ratio\":\"16/9\",\"background\":\"#e9ecef\",\"align-content\":\"center\"},attrs:{\"forceCheckAccess\":true,\"headerText\":\"Access restricted to registered participants\",\"buttonText\":\"Sign in\",\"message\":!_vm.postCongressMode ? `Please sign in to access the congress or register - it's not too late!` : `Please sign in to access the congress.`}})],1)]:(!_vm.hasAccess)?[_c('b-col',{staticClass:\"mb-2 mb-lg-0\",attrs:{\"cols\":\"12\",\"lg\":!_vm.replayMode ? 8 : 10,\"offset-lg\":!_vm.replayMode ? 0 : 1}},[_c('RegisterWidget',{staticStyle:{\"aspect-ratio\":\"16/9\",\"background\":\"#e9ecef\",\"align-content\":\"center\"},attrs:{\"headerText\":\"Access restricted to registered participants\",\"linkText\":!_vm.postCongressMode ? `I have already registered and want to access the live event.` : `I have already registered and want to access the content.`,\"buttonText\":!_vm.postCongressMode ? `Register Now` : ``,\"showButton\":!_vm.postCongressMode,\"message\":\"This content is only available to users who have registered to the event.\"}})],1)]:[_c('b-col',{staticClass:\"mb-2 mb-lg-0\",attrs:{\"cols\":\"12\",\"lg\":!_vm.replayMode ? 8 : 10,\"offset-lg\":!_vm.replayMode ? 0 : 1}},[_c('BrightcovePlayer',{key:this.videoId,ref:\"bcPlayer\",staticClass:\"modal-widget mb-lg-4\",attrs:{\"accountId\":this.brightcoveAccountId,\"playerId\":this.brightcovePlayerId,\"videoId\":this.videoId},on:{\"loaded\":_vm.onBrightcovePlayerLoaded}})],1),_c('b-col',{class:{ 'd-none': _vm.replayMode },attrs:{\"cols\":\"12\",\"lg\":\"4\"}},[_c('PigeonWidget',{key:this.session.interactRoomId,staticClass:\"modal-widget\",attrs:{\"pigeonId\":this.session.interactRoomId},on:{\"loaded\":_vm.onPigeonWidgetLoaded}})],1)],_c('b-col',{staticClass:\"d-none d-lg-block mt-3\",attrs:{\"lg\":!_vm.replayMode ? 5 : 10,\"offset-lg\":!_vm.replayMode ? 0 : 1}},[_c('h1',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(this.session.title)+\" \")]),_c('div',{staticClass:\"mb-2\"},[(this.session.subTitle)?_c('span',{staticClass:\"modal__session-subtitle\"},[_vm._v(\" \"+_vm._s(this.session.subTitle)+\" \")]):_vm._e(),(!_vm.preCongressMode && this.session.industryLink)?_c('a',{staticClass:\"ml-3\",attrs:{\"href\":this.session.industryLink,\"target\":\"_blank\"}},[_c('b-button',{staticClass:\"font-weight-bold\",attrs:{\"variant\":\"clear\",\"size\":\"sm\"}},[_c('i',{staticClass:\"las la-3x la-t-plus-2 la la-external-link mr-1\"}),_vm._v(\" Exhibitor Profile \")])],1):_vm._e()]),_c('div',{staticClass:\"session__details__content__flags d-block font-regular\"},[_c('div',{staticClass:\"session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"mr-1 material-icons-round\"},[_vm._v(\" calendar_month \")]),_c('span',{staticClass:\"flags__label\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.session.startTime))+\" from \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.session.startTime))+\" to \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.session.endTime))+\" \"),_c('span',{staticClass:\"ml-1\"},[_vm._v(\"(\"+_vm._s(this.session.duration)+\"mn)\")])])]),_c('div',{staticClass:\"d-none session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"share-wrapper session__details__content__flags d-inline-flex align-items-center font-regular lh-1\"},[_c('span',{staticClass:\"material-icons-round mr-1\"},[_vm._v(\" share \")]),_vm._v(\" \"),_c('span',{staticClass:\"flags__label mr-1\"},[_vm._v(\" Share on \")]),_vm._l((_vm.networks),function(network){return _c('ShareNetwork',{key:network.network,attrs:{\"network\":network.network,\"url\":_vm.metaUrl,\"title\":_vm.metaTitle,\"description\":_vm.metaDescription}},[_c('span',{staticClass:\"share-link\"},[_c('img',{attrs:{\"src\":network.icon,\"alt\":network.name}})])])})],2)])])]),_c('b-col',{staticClass:\"mt-3\",attrs:{\"cols\":\"12\",\"lg\":!_vm.replayMode ? 8 : 10,\"offset-lg\":!_vm.replayMode ? 0 : 1}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.collapse-more-details\",modifiers:{\"collapse-more-details\":true}}],staticClass:\"d-block with-icon\",attrs:{\"pill\":\"\",\"variant\":\"dark\"},on:{\"click\":_vm.onMoreDetailsClick}},[_c('i',{staticClass:\"las la-4x la-t-plus-2 la-plus-circle when-closed mr-1\"}),_c('span',{staticClass:\"when-closed\"},[_vm._v(\"More\")]),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-minus-circle when-opened mr-1\"}),_c('span',{staticClass:\"when-opened\"},[_vm._v(\"Less\")]),_vm._v(\" details on this session \")]),_c('b-collapse',{staticClass:\"collapse__more-details\",attrs:{\"visible\":!_vm.isMoreDetailsLoading,\"id\":\"collapse-more-details\"}},[_c('b-card',{staticClass:\"card__more-details\"},[(\n !this.isMoreDetailsLoading &&\n (!this.sessionMoreDetails.chairpersons || this.sessionMoreDetails.chairpersons.length == 0) &&\n !this.sessionMoreDetails.learningObjectives &&\n (!this.sessionMoreDetails.presentations || this.sessionMoreDetails.presentations.length == 0)\n )?[_c('p',{staticClass:\"card-text\"},[_vm._v(\"There is no more information to display\")])]:_vm._e(),(this.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"10%\"}}),_c('b-skeleton',{attrs:{\"width\":\"20%\"}})],1)]:_vm._e(),(!this.isMoreDetailsLoading && this.sessionMoreDetails.chairpersons && this.sessionMoreDetails.chairpersons.length > 0)?[_c('h5',[_vm._v(\"Chairpersons\")]),_c('p',{staticClass:\"card-text\"},_vm._l((this.sessionMoreDetails.chairpersons),function(chair,index){return _c('span',{key:index,staticClass:\"card-text__speaker\"},[_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/speakers/${chair.userId}`}},[_c('span',{staticClass:\"btn-link font-light\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\" \"+_vm._s(_vm.fullNameWithAddress(chair))+\" \")])])],1)}),0)]:_vm._e(),(this.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"12%\"}}),_c('b-skeleton',{attrs:{\"width\":\"30%\"}})],1)]:_vm._e(),(!this.isMoreDetailsLoading && this.sessionMoreDetails.learningObjectives && this.sessionMoreDetails.learningObjectives.trim() !== '')?[_c('h5',[_vm._v(\"More on the session\")]),_c('p',{staticClass:\"card-text text-white-space-pre-wrap\"},[_vm._v(_vm._s(_vm._f(\"trim\")(this.sessionMoreDetails.learningObjectives)))])]:_vm._e(),(this.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"10%\"}}),_c('b-skeleton-img',{staticClass:\"mb-2\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"80%\"}}),_c('b-skeleton-img',{staticClass:\"mb-1\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"80%\"}}),_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"80%\"}})],1)]:_vm._e(),(!this.isMoreDetailsLoading && this.sessionMoreDetails.presentations && this.sessionMoreDetails.presentations.length > 0)?[_c('h5',{staticClass:\"mt-4 mb-3\"},[_vm._v(\"Presentations\")]),_vm._l((this.sessionMoreDetails.presentations),function(presentation,index){return _c('div',{key:index,staticClass:\"session__details__presentation px-4 py-3\"},[_c('span',{staticClass:\"session__details__presentation__title font-black\"},[_vm._v(_vm._s(presentation.title))]),_vm._l((presentation.persons),function(person,index){return _c('span',{key:index,staticClass:\"session__details__presentation__person\"},[_vm._v(\" \"+_vm._s(person.role)+\": \"),_c('router-link',{attrs:{\"to\":`/${_vm.eventRoute}/speakers/${person.userId}`}},[_c('span',{staticClass:\"btn-link font-light\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\" \"+_vm._s(_vm.fullNameWithAddress(person))+\" \")])])],1)})],2)})]:_vm._e()],2)],1)],1)],2)]:_vm._e()],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-overlay',{staticClass:\"embed-responsive embed-responsive-1by1\",attrs:{\"show\":_vm.isLoading}},[_c('iframe',{staticClass:\"embed-responsive-item\",class:{ 'd-none': _vm.isLoading },attrs:{\"src\":_vm.pigeonUrl},on:{\"load\":_vm.onIframeLoaded}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-overlay :show=\"isLoading\" class=\"embed-responsive embed-responsive-1by1\">\r\n <!-- PigeonWidget -->\r\n <iframe :src=\"pigeonUrl\" class=\"embed-responsive-item\" @load=\"onIframeLoaded\" :class=\"{ 'd-none': isLoading }\"></iframe>\r\n </b-overlay>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n name: 'PigeonWidget',\r\n props: {\r\n pigeonId: String\r\n },\r\n data() {\r\n return {\r\n isLoading: true,\r\n }\r\n },\r\n computed: {\r\n ...mapGetters([ 'currentUser', 'fullName' ]),\r\n pigeonUrl() {\r\n return `https://pigeonhole.at/${this.pigeonId}&phEmail=${this.currentUser.email}&phName=${this.fullName}`;\r\n }\r\n },\r\n methods: {\r\n onIframeLoaded() {\r\n this.isLoading = false;\r\n this.$emit('loaded');\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.embed-responsive {\r\n height: 100%;\r\n border-radius: 0.25rem !important;\r\n}\r\n\r\n.b-skeleton-img {\r\n height: 100%;\r\n border-radius: 0.25rem !important;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PigeonWidget.vue?vue&type=template&id=143a730a&scoped=true\"\nimport script from \"./PigeonWidget.vue?vue&type=script&lang=js\"\nexport * from \"./PigeonWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./PigeonWidget.vue?vue&type=style&index=0&id=143a730a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"143a730a\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <b-modal id=\"media-modal\" v-model=\"show\" @show=\"onShow()\" @hide=\"onHide()\" :no-close-on-esc=\"true\" hide-header hide-footer no-fade>\r\n <!-- Close -->\r\n <div class=\"btn__back mb-2 position-sticky float-lg-left\">\r\n <b-button pill variant=\"clear\" size=\"sm\" class=\"font-regular mt-2 d-inline d-inline-flex align-items-center border-0\" @click=\"close()\">\r\n <span class=\"material-icons-round mr-2\"> arrow_back </span>\r\n Back\r\n </b-button>\r\n </div>\r\n\r\n <b-container fluid>\r\n <b-col cols=\"12\" sm=\"12\" md=\"8\" lg=\"9\" class=\"m-auto d-block pb-5\">\r\n <template v-if=\"!isMetadataLoading\">\r\n <b-row>\r\n <b-col v-if=\"this.sessionId\" cols=\"12\" class=\"mb-2 mb-lg-4\">\r\n <ModalBanners :key=\"this.sessionId\" :sessionId=\"this.sessionId\" />\r\n </b-col>\r\n\r\n <b-col cols=\"12\" class=\"d-lg-none\">\r\n <!-- Informations -->\r\n <h1>\r\n {{ this.session.title }}<span v-if=\"this.session.subTitle\"> - {{ this.session.subTitle }}</span>\r\n </h1>\r\n </b-col>\r\n\r\n <b-col sm=\"12\" :lg=\"!replayMode ? 8 : 10\" :offset-lg=\"!replayMode ? 0 : 1\" class=\"pb-2 pb-lg-4\" v-if=\"disclaimer && disclaimer.trim() !== ''\">\r\n <!-- Disclaimer -->\r\n <div class=\"disclaimer__wrapper\">\r\n <div class=\"disclaimer__text\" v-html=\"this.disclaimer\"></div>\r\n </div>\r\n </b-col>\r\n\r\n <!-- Not logged -->\r\n <template v-if=\"!isLogged\">\r\n <b-col cols=\"12\" :lg=\"!replayMode ? 8 : 10\" :offset-lg=\"!replayMode ? 0 : 1\" class=\"mb-2 mb-lg-0\">\r\n <LogginWidget\r\n style=\"aspect-ratio: 16/9; background: #e9ecef; align-content: center\"\r\n class=\"rounded-lg\"\r\n :forceCheckAccess=\"true\"\r\n headerText=\"Access restricted to registered participants\"\r\n buttonText=\"Sign in\"\r\n :message=\"!postCongressMode ? `Please sign in to access the congress or register - it's not too late!` : `Please sign in to access the congress.`\"\r\n />\r\n </b-col>\r\n </template>\r\n\r\n <!-- Not registered -->\r\n <template v-else-if=\"!hasAccess\">\r\n <b-col cols=\"12\" :lg=\"!replayMode ? 8 : 10\" :offset-lg=\"!replayMode ? 0 : 1\" class=\"mb-2 mb-lg-0\">\r\n <RegisterWidget\r\n style=\"aspect-ratio: 16/9; background: #e9ecef; align-content: center\"\r\n headerText=\"Access restricted to registered participants\"\r\n :linkText=\"\r\n !postCongressMode ? `I have already registered and want to access the live event.` : `I have already registered and want to access the content.`\r\n \"\r\n :buttonText=\"!postCongressMode ? `Register Now` : ``\"\r\n :showButton=\"!postCongressMode\"\r\n message=\"This content is only available to users who have registered to the event.\"\r\n />\r\n </b-col>\r\n </template>\r\n\r\n <template v-else>\r\n <!-- Player -->\r\n <b-col cols=\"12\" :lg=\"!replayMode ? 8 : 10\" :offset-lg=\"!replayMode ? 0 : 1\" class=\"mb-2 mb-lg-0\">\r\n <!-- BrightcovePlayer -->\r\n <BrightcovePlayer\r\n ref=\"bcPlayer\"\r\n :key=\"this.videoId\"\r\n :accountId=\"this.brightcoveAccountId\"\r\n :playerId=\"this.brightcovePlayerId\"\r\n :videoId=\"this.videoId\"\r\n v-on:loaded=\"onBrightcovePlayerLoaded\"\r\n class=\"modal-widget mb-lg-4\"\r\n />\r\n </b-col>\r\n\r\n <!-- Widget -->\r\n <b-col cols=\"12\" lg=\"4\" :class=\"{ 'd-none': replayMode }\">\r\n <!-- PigeonWidget -->\r\n <PigeonWidget :key=\"this.session.interactRoomId\" :pigeonId=\"this.session.interactRoomId\" v-on:loaded=\"onPigeonWidgetLoaded\" class=\"modal-widget\" />\r\n </b-col>\r\n </template>\r\n <b-col :lg=\"!replayMode ? 5 : 10\" :offset-lg=\"!replayMode ? 0 : 1\" class=\"d-none d-lg-block mt-3\">\r\n <h1 class=\"mb-1\">\r\n {{ this.session.title }}\r\n </h1>\r\n <div class=\"mb-2\">\r\n <span class=\"modal__session-subtitle\" v-if=\"this.session.subTitle\"> {{ this.session.subTitle }} </span>\r\n <!-- Industry link -->\r\n <a v-if=\"!preCongressMode && this.session.industryLink\" class=\"ml-3\" :href=\"this.session.industryLink\" target=\"_blank\">\r\n <b-button variant=\"clear\" size=\"sm\" class=\"font-weight-bold\">\r\n <i class=\"las la-3x la-t-plus-2 la la-external-link mr-1\"></i>\r\n Exhibitor Profile\r\n </b-button>\r\n </a>\r\n </div>\r\n <div class=\"session__details__content__flags d-block font-regular\">\r\n <!-- Date + Start Time + End Time -->\r\n <div class=\"session__details__content__flags__inner d-inline-flex align-items-center\">\r\n <span class=\"mr-1 material-icons-round\"> calendar_month </span>\r\n <span class=\"flags__label\">\r\n {{ session.startTime | formatUnixEpocDayPart }} from {{ session.startTime | formatUnixEpocTimePart }} to\r\n {{ session.endTime | formatUnixEpocTimePart }} <span class=\"ml-1\">({{ this.session.duration }}mn)</span>\r\n </span>\r\n </div>\r\n <!-- Sharing -->\r\n <div class=\"d-none session__details__content__flags__inner d-inline-flex align-items-center\">\r\n <span class=\"share-wrapper session__details__content__flags d-inline-flex align-items-center font-regular lh-1\">\r\n <span class=\"material-icons-round mr-1\"> share </span> <span class=\"flags__label mr-1\"> Share on </span>\r\n <ShareNetwork\r\n v-for=\"network in networks\"\r\n :network=\"network.network\"\r\n :key=\"network.network\"\r\n :url=\"metaUrl\"\r\n :title=\"metaTitle\"\r\n :description=\"metaDescription\"\r\n >\r\n <span class=\"share-link\">\r\n <img :src=\"network.icon\" :alt=\"network.name\" />\r\n </span>\r\n </ShareNetwork>\r\n </span>\r\n </div>\r\n <!-- end sharing -->\r\n </div>\r\n </b-col>\r\n\r\n <!-- More -->\r\n <b-col cols=\"12\" :lg=\"!replayMode ? 8 : 10\" :offset-lg=\"!replayMode ? 0 : 1\" class=\"mt-3\">\r\n <b-button pill v-b-toggle.collapse-more-details @click=\"onMoreDetailsClick\" variant=\"dark\" class=\"d-block with-icon\">\r\n <i class=\"las la-4x la-t-plus-2 la-plus-circle when-closed mr-1\"></i><span class=\"when-closed\">More</span>\r\n <i class=\"las la-4x la-t-plus-2 la-minus-circle when-opened mr-1\"></i><span class=\"when-opened\">Less</span>\r\n details on this session\r\n </b-button>\r\n\r\n <b-collapse :visible=\"!isMoreDetailsLoading\" id=\"collapse-more-details\" class=\"collapse__more-details\">\r\n <b-card class=\"card__more-details\">\r\n <!-- Empty -->\r\n <template\r\n v-if=\"\r\n !this.isMoreDetailsLoading &&\r\n (!this.sessionMoreDetails.chairpersons || this.sessionMoreDetails.chairpersons.length == 0) &&\r\n !this.sessionMoreDetails.learningObjectives &&\r\n (!this.sessionMoreDetails.presentations || this.sessionMoreDetails.presentations.length == 0)\r\n \"\r\n >\r\n <p class=\"card-text\">There is no more information to display</p>\r\n </template>\r\n\r\n <!-- Chairpersons -->\r\n <template v-if=\"this.isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"10%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton width=\"20%\"></b-skeleton>\r\n </div>\r\n </template>\r\n\r\n <template v-if=\"!this.isMoreDetailsLoading && this.sessionMoreDetails.chairpersons && this.sessionMoreDetails.chairpersons.length > 0\">\r\n <h5>Chairpersons</h5>\r\n <p class=\"card-text\">\r\n <span v-for=\"(chair, index) in this.sessionMoreDetails.chairpersons\" :key=\"index\" class=\"card-text__speaker\">\r\n <router-link :to=\"`/${eventRoute}/speakers/${chair.userId}`\" >\r\n <span @click=\"close()\" class=\"btn-link font-light\"> {{ fullNameWithAddress(chair) }} </span>\r\n </router-link>\r\n </span>\r\n </p>\r\n </template>\r\n\r\n <!-- LearningObjectives -->\r\n <template v-if=\"this.isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"12%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton width=\"30%\"></b-skeleton>\r\n </div>\r\n </template>\r\n\r\n <template\r\n v-if=\"!this.isMoreDetailsLoading && this.sessionMoreDetails.learningObjectives && this.sessionMoreDetails.learningObjectives.trim() !== ''\"\r\n >\r\n <h5>More on the session</h5>\r\n <p class=\"card-text text-white-space-pre-wrap\">{{ this.sessionMoreDetails.learningObjectives | trim }}</p>\r\n </template>\r\n\r\n <!-- Presentations -->\r\n <template v-if=\"this.isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"10%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"80%\" class=\"mb-2\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"80%\" class=\"mb-1\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"80%\"></b-skeleton-img>\r\n </div>\r\n </template>\r\n\r\n <template v-if=\"!this.isMoreDetailsLoading && this.sessionMoreDetails.presentations && this.sessionMoreDetails.presentations.length > 0\">\r\n <h5 class=\"mt-4 mb-3\">Presentations</h5>\r\n\r\n <div v-for=\"(presentation, index) in this.sessionMoreDetails.presentations\" :key=\"index\" class=\"session__details__presentation px-4 py-3\">\r\n <span class=\"session__details__presentation__title font-black\">{{ presentation.title }}</span>\r\n <span v-for=\"(person, index) in presentation.persons\" :key=\"index\" class=\"session__details__presentation__person\">\r\n {{ person.role }}: \r\n <router-link :to=\"`/${eventRoute}/speakers/${person.userId}`\">\r\n <span @click=\"close()\" class=\"btn-link font-light\"> {{ fullNameWithAddress(person) }} </span>\r\n </router-link>\r\n </span>\r\n <!--\r\n <span v-if=\"!sessionMoreDetails.isOnDemand\" class=\"card__presentation__start-time\"> <i class=\"las la-2x la-t-plus-1 la-clock\"></i> Time: {{ presentation.startTime | formatUnixEpocTimePart }}</span>\r\n --></div>\r\n </template>\r\n </b-card>\r\n </b-collapse>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n </b-col>\r\n </b-container>\r\n </b-modal>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n\r\n import { CLOSE_MEDIA_MODAL, DISABLE_POOLING, ENABLE_POOLING } from 'src/store/actions';\r\n import { MediaType } from 'src/enums/media-type';\r\n import { consoleColors } from 'src/utils/console-color.js';\r\n\r\n import personsMixin from 'src/mixins/personsMixin';\r\n\r\n import ModalBanners from 'src/components/Banners/ModalBanners';\r\n import BrightcovePlayer from 'src/components/Players/BrightcovePlayer';\r\n import PigeonWidget from 'src/components/Widgets/PigeonWidget';\r\n import LogginWidget from 'src/components/Widgets/LogginWidget';\r\n import RegisterWidget from 'src/components/Widgets/RegisterWidget';\r\n\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { constants } from 'src/constants';\r\n //import { DateHelper } from 'src/utils/date-helper';\r\n export default {\r\n name: 'MediaModal',\r\n mixins: [personsMixin],\r\n components: {\r\n ModalBanners,\r\n BrightcovePlayer,\r\n PigeonWidget,\r\n LogginWidget,\r\n RegisterWidget,\r\n },\r\n data() {\r\n return {\r\n isMetadataLoading: true,\r\n isPigeonLoading: true,\r\n isMoreDetailsLoading: true,\r\n isFirstClickOnMoreDetails: true,\r\n isBcPlayerLoaded: false,\r\n waitingForClosing: false,\r\n hasAccess: false,\r\n session: null,\r\n sessionMoreDetails: null,\r\n fetchNextSessionDetailsJob: null,\r\n networks: [\r\n { network: 'facebook', name: 'facebook', icon: require('@/assets/images/social/facebook-black.png') },\r\n { network: 'twitter', name: 'twitter', icon: require('@/assets/images/social/x-logo-black.png') },\r\n { network: 'linkedin', name: 'linkedin', icon: require('@/assets/images/social/linkedin-black.png') },\r\n ],\r\n };\r\n },\r\n metaInfo() {\r\n if (this.isSession && this.session) {\r\n return {\r\n meta: [\r\n { name: 'description', vmid: 'description', content: this.metaDescription },\r\n // OpenGraph\r\n { property: 'og:title', vmid: 'og:title', content: this.metaTitle },\r\n { property: 'og:description', vmid: 'og:description', content: this.metaDescription },\r\n { property: 'og:type', vmid: 'og:type', content: 'video.movie' },\r\n { property: 'og:url', vmid: 'og:url', content: this.metaUrl },\r\n // Twitter\r\n { property: 'twitter:title', vmid: 'twitter:title', content: this.metaTitle },\r\n { property: 'twitter:description', vmid: 'twitter:description', content: this.metaDescription },\r\n ],\r\n };\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['currentUser']),\r\n ...mapState({\r\n media: (state) => state.modal.media,\r\n isLogged: (state) => state.auth.loggedIn,\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n brightcoveAccountId: (state) => state.app.brightcoveAccountId,\r\n brightcovePlayerId: (state) => state.app.brightcovePlayerId,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n eventRoute: (state) => state.app.eventRoute,\r\n }),\r\n show: {\r\n get() {\r\n return this.media.show;\r\n },\r\n set(show) {\r\n if (!show) this.close();\r\n },\r\n },\r\n metaTitle() {\r\n return `${this.eventBaseTitle} | ${this.session.title}`;\r\n },\r\n metaDescription() {\r\n if (this.isSession) {\r\n return `${this.session.title} session at ${this.eventBaseTitle}`;\r\n } else {\r\n return this.eventBaseTitle;\r\n }\r\n },\r\n metaUrl() {\r\n return `${window.location.origin}?v=${this.session.furl}`;\r\n },\r\n replayMode() {\r\n return this.session.isReplay;\r\n },\r\n isSession() {\r\n return this.media.metadata.type == MediaType.SESSION;\r\n },\r\n sessionId() {\r\n return this.session?.id ?? this.media?.metadata?.id;\r\n },\r\n videoId() {\r\n if (!this.replayMode) return this.session.liveVideoId;\r\n else return this.session.replayVideoId;\r\n },\r\n hasExternalLink() {\r\n return !this.replayMode && this.session.hasExternalLink;\r\n },\r\n disclaimer() {\r\n return (this.session.disclaimer ?? '').length == 0 ? (this.session.isIndustry ? constants.INDUSTRY_DEFAULT_DISCLAIMER : null) : this.session.disclaimer;\r\n },\r\n },\r\n watch: {\r\n // This function will run everytime data.session change\r\n session(newSession) {\r\n if (newSession) {\r\n const oldFurl = this.$route.query.v;\r\n const furl = newSession.furl;\r\n\r\n if ((furl && !oldFurl) || (furl && furl !== oldFurl)) this.$router.push({ query: Object.assign({}, this.$route.query, { v: furl }) });\r\n } else {\r\n let query = Object.assign({}, this.$route.query);\r\n delete query.v;\r\n this.$router.replace({ query: query });\r\n }\r\n },\r\n // This function will run everytime data.isBcPlayerLoaded change\r\n isBcPlayerLoaded(isLoaded) {\r\n if (isLoaded && this.waitingForClosing) this.$store.dispatch(CLOSE_MEDIA_MODAL);\r\n },\r\n },\r\n methods: {\r\n close() {\r\n if (!this.isLogged || this.isMetadataLoading || this.isBcPlayerLoaded || !this.hasAccess) this.$store.dispatch(CLOSE_MEDIA_MODAL);\r\n else this.waitingForClosing = true;\r\n },\r\n async onShow() {\r\n // Disabling pooling...\r\n this.$store.dispatch(DISABLE_POOLING);\r\n\r\n // if (this.isLogged) await checkAccess(undefined, false, window.location, false);\r\n this.refreshSessionDetails();\r\n },\r\n onHide() {\r\n // Enabling pooling...\r\n this.$store.dispatch(ENABLE_POOLING);\r\n\r\n // We are reseting modal's state...\r\n this.resetState();\r\n\r\n // We are clearing jobs...\r\n // this.clearNextSessionDetailsJob();\r\n },\r\n refreshSessionDetails() {\r\n MediaApiService.getSessionDetails(this.sessionId).then(({ data }) => {\r\n if (data) {\r\n this.hasAccess = data?.hasAccess ?? false;\r\n this.session = data;\r\n\r\n if (!this.hasAccess) this.logAccessDenied();\r\n\r\n const hasExternalLink = data?.hasExternalLink && !data?.isReplay;\r\n //console.log('🚀 ~ file: MediaModal.vue ~ line 388 ~ MediaApiService.getSessionDetails ~ hasExternalLink', hasExternalLink);\r\n if (hasExternalLink && this.hasAccess) {\r\n const externalLink = data?.externalLink;\r\n window.open(externalLink, '_blank');\r\n this.close();\r\n }\r\n this.isMetadataLoading = false;\r\n\r\n // this.createNextSessionDetailsJob();\r\n }\r\n });\r\n },\r\n fetchNextSessionDetails() {\r\n let previousVideoId = this.videoId;\r\n MediaApiService.getNextSessionDetails(this.sessionId)\r\n .then(({ data }) => {\r\n if (data) {\r\n // We are reseting modal's state...\r\n this.resetState();\r\n\r\n this.session = data;\r\n // If video id doesn't change BC player is not reload -> player loaded falg forced to true;\r\n if (this.videoId == previousVideoId) this.isBcPlayerLoaded = true;\r\n this.isMetadataLoading = false;\r\n this.createNextSessionDetailsJob();\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.status == 404) {\r\n // TODO: Display a message instead ?\r\n this.close();\r\n }\r\n });\r\n },\r\n onMoreDetailsClick() {\r\n if (!this.isFirstClickOnMoreDetails) return;\r\n\r\n this.isFirstClickOnMoreDetails = false;\r\n\r\n MediaApiService.getSessionMoreDetails(this.sessionId).then(({ data }) => {\r\n if (data) {\r\n this.isMoreDetailsLoading = false;\r\n this.sessionMoreDetails = data;\r\n }\r\n });\r\n },\r\n onBrightcovePlayerLoaded() {\r\n this.isBcPlayerLoaded = true;\r\n },\r\n onPigeonWidgetLoaded() {\r\n // If needed...\r\n },\r\n /*\r\n createNextSessionDetailsJob() {\r\n if (!this.replayMode) {\r\n const currentTime = DateHelper.browserDateTime().getTime();\r\n const endTime = this.session.endTime;\r\n\r\n let nextRefreshTime = this.session.nextRefreshTime;\r\n if (!nextRefreshTime) nextRefreshTime = endTime;\r\n\r\n let nextRefreshDelay = nextRefreshTime - currentTime; // If you want to test set: 10000;\r\n //console.log('nextRefreshDelay', nextRefreshDelay);\r\n\r\n //console.log(`end ${this.$options.filters.formatUnixEpocTimePartForLog(endTime)}`);\r\n console.debug(`%cnextRefresh: ${this.$options.filters.formatUnixEpocTimePartForLog(nextRefreshTime)}`, consoleColors.misc);\r\n\r\n // We are clearing jobs...\r\n this.clearNextSessionDetailsJob();\r\n\r\n // 🙃 -> https://stackoverflow.com/a/3468650\r\n if (nextRefreshDelay >= 2147483648)\r\n nextRefreshDelay = 2147483647;\r\n\r\n this.fetchNextSessionDetailsJob = setTimeout(this.fetchNextSessionDetails, nextRefreshDelay);\r\n }\r\n },\r\n clearNextSessionDetailsJob() {\r\n if (this.fetchNextSessionDetailsJob) {\r\n clearTimeout(this.fetchNextSessionDetailsJob);\r\n this.fetchNextSessionDetailsJob = null;\r\n }\r\n },\r\n */\r\n resetState() {\r\n this.hasAccess = false;\r\n\r\n this.isBcPlayerLoaded = false;\r\n this.waitingForClosing = false;\r\n\r\n this.isMetadataLoading = true;\r\n this.isMoreDetailsLoading = true;\r\n\r\n this.isFirstClickOnMoreDetails = true;\r\n\r\n this.session = null;\r\n },\r\n logAccessDenied() {\r\n if (this.$appInsights && this.currentUser) {\r\n const logAccessDeniedProps = {\r\n escId: this.currentUser?.escId,\r\n sessionId: this.sessionId,\r\n videoId: this.videoId,\r\n replayMode: this.replayMode,\r\n source: 'MediaModal',\r\n };\r\n console.info(`%cAppInsights: logAccessDenied ${JSON.stringify(logAccessDeniedProps)}`, consoleColors.insights);\r\n this.$appInsights?.trackEvent({ name: 'logAccessDenied', properties: logAccessDeniedProps });\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n @import '~@/styles/theme';\r\n\r\n $media-modal-bg-primary: linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(0, 0, 0, 0.15) 100%),\r\n radial-gradient(at top center, rgba(255, 255, 255, 0.4) 0%, rgba(0, 0, 0, 0.8) 120%) #989898;\r\n $media-modal-bg-secondary: #656565;\r\n\r\n $media-modal-primary: $primary;\r\n $media-modal-secondary: #9e9e9e;\r\n\r\n ::v-deep #media-modal > .modal-dialog {\r\n height: 100%;\r\n max-width: 100%;\r\n overflow-y: auto;\r\n margin: 0 auto;\r\n }\r\n\r\n ::v-deep #media-modal {\r\n padding: 0 !important;\r\n }\r\n\r\n ::v-deep #media-modal .modal-header {\r\n border-bottom: none;\r\n margin-bottom: 25px;\r\n\r\n .close {\r\n font-size: 2.5rem;\r\n opacity: 1;\r\n margin: 0 0 -1.5rem auto;\r\n border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n padding: 0;\r\n }\r\n\r\n .close::after {\r\n position: absolute;\r\n top: 72px;\r\n right: 24px;\r\n white-space: pre;\r\n line-height: 1.2;\r\n font-size: 0.9rem;\r\n content: 'Close\\avideo';\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n ::v-deep #media-modal .modal-header {\r\n padding: 0.3rem 1rem;\r\n\r\n .close {\r\n font-size: 1.6rem;\r\n margin: 0 0 0.3rem auto;\r\n width: 30px;\r\n height: 30px;\r\n }\r\n\r\n .close::after {\r\n top: 42px;\r\n right: 17px;\r\n line-height: 1.3;\r\n font-size: 0.6rem;\r\n }\r\n }\r\n }\r\n\r\n ::v-deep #media-modal .modal-content {\r\n height: 100%;\r\n overflow-y: auto;\r\n background: #fff;\r\n background-blend-mode: multiply, multiply;\r\n border: none;\r\n border-radius: unset;\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n ::v-deep #media-modal .modal-body {\r\n padding: 0;\r\n }\r\n }\r\n\r\n .modal-widget {\r\n height: 100%;\r\n max-height: 70vh;\r\n }\r\n\r\n h1 {\r\n font-size: 1.75rem;\r\n }\r\n\r\n h5 {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .modal__session-subtitle {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .modal__session-contact-label {\r\n display: block;\r\n color: #d1d1d1;\r\n }\r\n\r\n .modal__session-contact-link {\r\n color: $media-modal-primary;\r\n text-decoration: underline;\r\n }\r\n\r\n .disclaimer__wrapper {\r\n display: flex;\r\n align-items: center;\r\n color: $media-modal-primary;\r\n }\r\n\r\n .disclaimer__icon {\r\n padding-right: 10px;\r\n }\r\n\r\n .disclaimer__text {\r\n display: inline-block;\r\n font-size: 0.9em;\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n .disclaimer__text {\r\n text-align: justify;\r\n font-size: 0.65em;\r\n }\r\n }\r\n\r\n .share-wrapper {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .share-link {\r\n position: relative;\r\n top: -3px;\r\n padding-left: 8px;\r\n padding-right: 8px;\r\n cursor: pointer;\r\n }\r\n\r\n .session-duration {\r\n font-size: 0.85em;\r\n }\r\n\r\n .card__more-details {\r\n border: 0;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n box-shadow: inherit;\r\n overflow: visible;\r\n\r\n .card-body {\r\n color: $primary;\r\n padding: 0;\r\n padding-top: 2rem;\r\n }\r\n\r\n .b-skeleton-img {\r\n margin-bottom: 10px;\r\n }\r\n }\r\n\r\n .card-text__speaker {\r\n display: block;\r\n }\r\n\r\n .session__details__presentation {\r\n background: $secondary;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n padding: 0.6rem 0.8rem;\r\n border-radius: 6px;\r\n margin-bottom: 1rem;\r\n\r\n &__title {\r\n display: block;\r\n }\r\n\r\n &__person {\r\n display: block;\r\n }\r\n\r\n &__start-time {\r\n display: block;\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n }\r\n\r\n img {\r\n vertical-align: baseline;\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n .card__presentation {\r\n max-width: 100%;\r\n }\r\n\r\n .btn-collapse {\r\n display: block;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .btn__back {\r\n top: 1rem;\r\n left: 1rem;\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n .btn__back {\r\n position: relative !important;\r\n top: 0.5rem;\r\n left: 0;\r\n padding-left: 1.5rem;\r\n }\r\n }\r\n\r\n .btn-collapse {\r\n color: $primary;\r\n }\r\n .collapsed > .when-opened,\r\n :not(.collapsed) > .when-closed {\r\n display: none;\r\n }\r\n\r\n :not(.collapsed).btn-collapse {\r\n border-radius: 0.25em 0.25em 0 0;\r\n }\r\n\r\n .session__details__content__flags {\r\n font-size: 0.9rem;\r\n\r\n &__inner {\r\n margin-right: 1.25rem;\r\n .material-icons-round,\r\n .material-icons-outlined,\r\n .material-symbols-rounded {\r\n font-size: 22px;\r\n }\r\n }\r\n\r\n &__inner:last-of-type {\r\n margin-right: 0;\r\n }\r\n\r\n &__inner:not(:first-child) {\r\n border-top: solid 1px white;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MediaModal.vue?vue&type=template&id=8fc34d20&scoped=true\"\nimport script from \"./MediaModal.vue?vue&type=script&lang=js\"\nexport * from \"./MediaModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./MediaModal.vue?vue&type=style&index=0&id=8fc34d20&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8fc34d20\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{ 'd-none': _vm.hidden },staticStyle:{\"width\":\"90%\",\"margin\":\"30px\",\"height\":\"500px\"},attrs:{\"id\":\"talkjs-container\"}},[_vm._v(\" Loading chat... \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"talkjs-container\" :class=\"{ 'd-none': hidden }\" style=\"width: 90%; margin: 30px; height: 500px\">\r\n Loading chat...\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import Talk from 'talkjs';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { SET_UNREAD_NOTIFICATION } from 'src/store/mutations';\r\n\r\n export default {\r\n name: 'NetworkingChat',\r\n props: {\r\n hidden: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data() {\r\n return {\r\n me: null,\r\n session: null,\r\n inbox: null\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['currentUser']),\r\n ...mapState({\r\n eventId: state => state.app.eventId,\r\n eventBaseTitle: state => state.app.eventBaseTitle\r\n })\r\n },\r\n async mounted() {\r\n const { data } = await MediaApiService.getSignature();\r\n const signature = data?.signature;\r\n if (!signature) throw new Error('No signature');\r\n\r\n this.me = new Talk.User(this.currentUser?.escId);\r\n\r\n let recipient = null;\r\n\r\n const recipientId = this.$route.query['r'];\r\n if (recipientId && Number.isInteger(parseInt(recipientId)) && recipientId !== this.currentUser?.escId) {\r\n recipient = new Talk.User(recipientId);\r\n\r\n let query = Object.assign({}, this.$route.query);\r\n delete query.r;\r\n this.$router.replace({ query: query });\r\n }\r\n\r\n let _this = this;\r\n\r\n Talk.ready.then(function() {\r\n _this.session = new Talk.Session({\r\n appId: process.env.VUE_APP_TALKJS_APP_ID,\r\n me: _this.me,\r\n signature: signature\r\n });\r\n\r\n _this.session.unreads.on('change', _this.onUnreadsChange);\r\n\r\n if (recipient != null && recipient.id != _this.me.id) {\r\n let conversation = _this.session.getOrCreateConversation(Talk.oneOnOneId(_this.me, recipient));\r\n conversation.setParticipant(_this.me);\r\n conversation.setParticipant(recipient);\r\n\r\n _this.inbox = _this.session.createInbox({ selected: conversation, useBrowserHistory: false });\r\n } else {\r\n _this.inbox = _this.session.createInbox({ useBrowserHistory: false });\r\n }\r\n\r\n _this.inbox.mount(document.getElementById('talkjs-container'));\r\n });\r\n },\r\n beforeDestroy() {\r\n if (this.session) this.session.destroy();\r\n if (this.inbox) this.inbox.destroy();\r\n },\r\n methods: {\r\n onUnreadsChange(unreadConversations) {\r\n const amountOfUnreads = unreadConversations.length;\r\n\r\n // Setting document title...\r\n document.title = `${amountOfUnreads > 0 ? `(${amountOfUnreads}) ` : ''}${this.eventBaseTitle}`;\r\n\r\n // Dispatching amountOfUnreads in store...\r\n this.$store.commit(SET_UNREAD_NOTIFICATION, amountOfUnreads);\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4de40661&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4de40661&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4de40661\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-none\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"d-none\"></div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { DateTime } from 'luxon';\r\n import { getStoryBlokClient } from 'src/services/storyblok';\r\n import { constants } from 'src/constants';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n export default {\r\n name: 'NewVersionToast',\r\n props: {\r\n id: String\r\n },\r\n data() {\r\n return {\r\n delay: 60 * 1000, // 1min in msec\r\n history: {}\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n confCmsData: state => state.app.confCmsData\r\n })\r\n },\r\n mounted() {\r\n // Loading notifications history for this device...\r\n var localHistory = JSON.parse(window.localStorage.getItem(constants.LOCAL_NOTIFS_HISTORY_KEY));\r\n if (localHistory && localHistory !== null) this.history = localHistory;\r\n\r\n // Check notifications at the next minute...\r\n const now = DateHelper.browserDateTime();\r\n const start = this.delay - now.getSeconds() * 1000 + now.getMilliseconds();\r\n if (start >= 6000) {\r\n // Check notifications now...\r\n setTimeout(this.checkNotifications, 2000);\r\n }\r\n\r\n setTimeout(this.checkNotifications, start);\r\n },\r\n methods: {\r\n checkNotifications() {\r\n if (!this.confCmsData && !this.confCmsData?.notifs_blocks) return;\r\n\r\n const now = DateTime.utc();\r\n const notifications =\r\n this.confCmsData?.notifs_blocks?.filter(\r\n x =>\r\n DateTime.fromFormat(x.notif_start, 'yyyy-MM-dd HH:mm', { zone: 'utc' }) <= now &&\r\n (!x.notif_end || DateTime.fromFormat(x.notif_end, 'yyyy-MM-dd HH:mm', { zone: 'utc' }) >= now)\r\n ) ?? [];\r\n\r\n //console.log('Now -- ' + now);\r\n for (const notification of notifications) {\r\n /*\r\n //console.log('Notif -- ' + notification.notif_label);\r\n const notifStart = DateTime.fromFormat(notification.notif_start, 'yyyy-MM-dd HH:mm', { zone: 'utc' });\r\n //console.log('NotifStart ' + notifStart);\r\n //console.log('IsNotifStart_After_Now', notifStart <= now);\r\n const notifEnd = DateTime.fromFormat(notification.notif_end, 'yyyy-MM-dd HH:mm', { zone: 'utc' });\r\n //console.log('NotifEnd ' + notifEnd);\r\n //console.log('IsNotifEnd_Before_Now', notifEnd >= now);*/\r\n\r\n if (!this.history[notification._uid]) this.createIndustryToast(notification);\r\n }\r\n\r\n setTimeout(this.checkNotifications, this.delay);\r\n },\r\n createIndustryToast(notification) {\r\n const el = this.$createElement;\r\n const toastBodyNodes = [\r\n el('div', { class: ['toast-body-text', 'text-left'] }, [\r\n el('div', {\r\n class: ['no-margin'],\r\n domProps: {\r\n innerHTML: `<i class=\"las la-info-circle la-t-plus-5 la-8x\"></i> ${getStoryBlokClient().richTextResolver.render(notification.notif_text)}`\r\n }\r\n })\r\n ]),\r\n el(\r\n 'a',\r\n {\r\n props: { variant: 'congress' },\r\n domProps: { href: notification?.notif_href?.url ?? '#', target: notification?.notif_target },\r\n class: ['btn', 'btn-sm', 'btn-congress', 'mt-2', 'float-right']\r\n },\r\n ['See details']\r\n )\r\n ];\r\n\r\n this.$bvToast.toast([toastBodyNodes], {\r\n toaster: 'b-toaster-bottom-right',\r\n noAutoHide: false,\r\n noHoverPause: false,\r\n autoHideDelay: 300000,\r\n variant: 'congress-industry',\r\n bodyClass: 'overflow-auto'\r\n });\r\n\r\n this.flagNotification(notification._uid);\r\n },\r\n flagNotification(notificationId) {\r\n this.history[notificationId] = true;\r\n try {\r\n window.localStorage.setItem(constants.LOCAL_NOTIFS_HISTORY_KEY, JSON.stringify(this.history));\r\n } catch (e) {\r\n return;\r\n }\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n ::v-deep .no-margin p {\r\n margin: 0 !important;\r\n }\r\n\r\n ::v-deep .no-margin p:first-of-type {\r\n display: inline;\r\n }\r\n\r\n ::v-deep hr {\r\n margin-top: 0.5rem;\r\n margin-bottom: 0.5rem;\r\n }\r\n\r\n .toast-title-text {\r\n font-weight: bold;\r\n font-size: 1.1rem;\r\n }\r\n\r\n .b-toast-congress-industry {\r\n border-radius: 0.5rem;\r\n }\r\n\r\n ::v-deep .toast-header {\r\n display: block;\r\n position: absolute;\r\n right: 0px;\r\n top: 1px;\r\n background-color: unset;\r\n background-clip: unset;\r\n border: unset;\r\n }\r\n\r\n ::v-deep .toast-body {\r\n overflow: auto;\r\n }\r\n\r\n .b-toast {\r\n max-width: unset !important;\r\n }\r\n\r\n ::v-deep .toast {\r\n flex-basis: unset !important;\r\n max-width: unset !important;\r\n background-color: var(--congress-lighter) !important;\r\n border-inline-start-width: 6px;\r\n border-inline-start-color: var(--congress);\r\n border-radius: 0.5rem;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndustryToastManager.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndustryToastManager.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndustryToastManager.vue?vue&type=template&id=9cceff84&scoped=true\"\nimport script from \"./IndustryToastManager.vue?vue&type=script&lang=js\"\nexport * from \"./IndustryToastManager.vue?vue&type=script&lang=js\"\nimport style0 from \"./IndustryToastManager.vue?vue&type=style&index=0&id=9cceff84&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9cceff84\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-toast',{attrs:{\"id\":_vm.id,\"toaster\":\"b-toaster-bottom-left\",\"variant\":\"congress\",\"solid\":\"\",\"no-auto-hide\":\"\"},scopedSlots:_vm._u([{key:\"toast-title\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-grow-1 align-items-baseline\"},[_c('font-awesome-icon',{staticClass:\"la-t-plus-3 mr-2\",attrs:{\"icon\":\"exclamation-circle\",\"size\":\"lg\"}}),_c('span',{staticClass:\"toast-title-text mr-auto\"},[_vm._v(\"Information\")])],1)]},proxy:true}])},[_c('div',{staticClass:\"text-left\"},[_vm._v(\" A new version of the application is available. \")]),_c('b-button',{staticClass:\"mt-2\",attrs:{\"block\":\"\",\"variant\":\"congress\"},on:{\"click\":_vm.onUpdateBtnClick}},[_vm._v(\" Update \"),_c('i',{staticClass:\"las la-sync la-t-plus-1\"})])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-toast :id=\"id\" toaster=\"b-toaster-bottom-left\" variant=\"congress\" solid no-auto-hide>\r\n <template #toast-title>\r\n <div class=\"d-flex flex-grow-1 align-items-baseline\">\r\n <font-awesome-icon icon=\"exclamation-circle\" size=\"lg\" class=\"la-t-plus-3 mr-2\" />\r\n <span class=\"toast-title-text mr-auto\">Information</span>\r\n </div>\r\n </template>\r\n\r\n <div class=\"text-left\">\r\n A new version of the application is available.\r\n </div>\r\n <b-button block variant=\"congress\" @click=\"onUpdateBtnClick\" class=\"mt-2\"> Update <i class=\"las la-sync la-t-plus-1\"></i> </b-button>\r\n </b-toast>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'NewVersionToast',\r\n props: {\r\n id: String\r\n },\r\n methods: {\r\n onUpdateBtnClick() {\r\n this.$root.$emit('updateRequested');\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n .toast-title-text {\r\n font-weight: bold;\r\n font-size: 1.1rem;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewVersionToast.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewVersionToast.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NewVersionToast.vue?vue&type=template&id=112b14aa&scoped=true\"\nimport script from \"./NewVersionToast.vue?vue&type=script&lang=js\"\nexport * from \"./NewVersionToast.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewVersionToast.vue?vue&type=style&index=0&id=112b14aa&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"112b14aa\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[[_c('b-container',{staticClass:\"pl-5 pr-5 pb-5 mb-0 eventSummaryInfo\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('div',{staticClass:\"mb-3 mt-5 subTitle\"},[_vm._v(\"About the event\")]),_c('div',[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$options.filters.formatStoryRichText(_vm.about_text))}})]),(_vm.learn_more_url)?_c('div',{staticClass:\"mt-3\"},[_c('a',{staticClass:\"register__link btn-link mt-2\",attrs:{\"href\":_vm.learn_more_url,\"target\":\"_blank\"}},[_vm._v(\" Learn more \"),_c('span',{staticClass:\"material-icons-round align-middle\"},[_vm._v(\" chevron_right \")])])]):_vm._e()]),_c('b-col',{staticClass:\"ml-md-auto\",attrs:{\"md\":\"3\"}},[(_vm.remainingTime > 0)?_c('div',{staticClass:\"mb-2 mt-5 subTitle\"},[_vm._v(\"Starts in...\")]):_vm._e(),(_vm.countdown_active && _vm.remainingTime > 0)?_c('PreHomeCountDownWidget',{attrs:{\"message\":_vm.countdown_text}}):_vm._e(),(_vm.remainingTime > 0)?_c('div',{staticClass:\"lineSeparator mt-4 mb-4\"}):_vm._e(),(_vm.venue)?_c('div',{staticClass:\"d-flex eventLocation\",style:(_vm.remainingTime > 0 ? '' : 'margin-top: 3rem')},[_c('span',{staticClass:\"material-icons-outlined align-middle mr-2\"},[_vm._v(\" place \")]),_vm._v(\" \"+_vm._s(_vm.venue)+\" \")]):_vm._e()],1),_c('b-col',{staticClass:\"ml-md-auto\",attrs:{\"md\":\"2\"}},[_c('div',{staticClass:\"mb-3 mt-5 subTitle\"},[_vm._v(\"Organised by\")]),_c('div',[_c('img',{staticClass:\"organiserLogo\",attrs:{\"src\":`${_vm.publicPath}img/events/${_vm.eventId}/organiser-logo.png?v=${this.appVersion}`}})])])],1)],1)],_c('footer',{staticClass:\"footer\"},[_c('b-container',{staticClass:\"footer-wrapper\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"footer-nav\"},[_c('b-col',{staticClass:\"footer-logo-wrapper\",attrs:{\"cols\":\"12\",\"lg\":\"1\"}},[_c('a',{attrs:{\"href\":\"https://www.escardio.org/\",\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/platform/esc-logo-acronym-white.png\"),\"alt\":\"ESC Logo\"}})])]),_vm._l((_vm.footer_blocks),function(footerEntry){return _c('b-col',{key:footerEntry._uid,staticClass:\"footer-link-wrapper\",attrs:{\"cols\":\"12\",\"lg\":\"2\"}},[(footerEntry.link_internal)?[_c('router-link',{staticClass:\"footer-link\",attrs:{\"to\":footerEntry.link_value}},[_vm._v(\" \"+_vm._s(footerEntry.link_text)+\" \")])]:[_c('a',{staticClass:\"footer-link\",attrs:{\"href\":footerEntry.link_value,\"target\":footerEntry.link_new_tab ? '_blank' : '_self'}},[_vm._v(\" \"+_vm._s(footerEntry.link_text)+\" \")])]],2)}),(_vm.footer_terms_and_conditions_link)?_c('b-col',{staticClass:\"footer-link-wrapper\",attrs:{\"cols\":\"12\",\"lg\":\"2\"}},[_c('a',{staticClass:\"footer-link\",attrs:{\"href\":_vm.footer_terms_and_conditions_link,\"target\":\"_blank\"}},[_vm._v(\"Terms & Conditions\")])]):_vm._e(),(_vm.footer_contact_us_link)?_c('b-col',{staticClass:\"footer-link-wrapper\",attrs:{\"cols\":\"12\",\"lg\":\"2\"}},[_c('a',{staticClass:\"footer-link\",attrs:{\"href\":_vm.footer_contact_us_link,\"target\":\"_blank\"}},[_vm._v(\"Contact us\")])]):_vm._e(),_c('b-col',{staticClass:\"footer-link-wrapper\",attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_c('div',{staticClass:\"footer-link\"},[_vm._v(\" Follow us on \"),_c('div',{staticClass:\"footer-social-link-wrapper\"},[_c('a',{staticClass:\"footer-social-link\",attrs:{\"href\":\"https://www.facebook.com/europeansocietyofcardiology?ref=ts\",\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/social/facebook.png\"),\"alt\":\"Facebook\"}})]),_c('a',{staticClass:\"footer-social-link\",attrs:{\"href\":\"https://www.linkedin.com/company/european-society-of-cardiology\",\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/social/linkedin.png\"),\"alt\":\"LinkedIn\"}})]),_c('a',{staticClass:\"footer-social-link\",attrs:{\"href\":\"https://twitter.com/escardio\",\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/social/x-logo-white.png\"),\"alt\":\"Twitter\"}})]),_c('a',{staticClass:\"footer-social-link\",attrs:{\"href\":\"https://www.youtube.com/user/escardiodotorg\",\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/social/youtube.png\"),\"alt\":\"Youtube\"}})]),_c('a',{staticClass:\"footer-social-link\",attrs:{\"href\":\"https://www.instagram.com/europeansocietyofcardiology\",\"target\":\"_blank\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/social/instagram.png\"),\"alt\":\"Instagram\"}})])])])]),(_vm.confCmsData && _vm.confCmsData.footer_data_privacy)?_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"data-privacy mt-5\"},[_c('small',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$options.filters.formatStoryRichTextWithoutEncapsulatingParagraph(_vm.confCmsData.footer_data_privacy))}}),(_vm.footer_terms_and_conditions_link)?_c('span',[_vm._v(\" More information is available in the \"+_vm._s(_vm.eventBaseTitle)+\" \"),_c('a',{staticClass:\"footer-link text-decoration-underline\",attrs:{\"href\":_vm.footer_terms_and_conditions_link,\"target\":\"_blank\"}},[_vm._v(\"registration terms and conditions\")]),_vm._v(\". \")]):_vm._e()])])]):_vm._e()],2)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <template>\r\n <b-container fluid class=\"pl-5 pr-5 pb-5 mb-0 eventSummaryInfo\">\r\n <b-row>\r\n <b-col md=\"6\">\r\n <div class=\"mb-3 mt-5 subTitle\">About the event</div>\r\n <div>\r\n <p v-html=\"$options.filters.formatStoryRichText(about_text)\"></p>\r\n </div>\r\n <div class=\"mt-3\" v-if=\"learn_more_url\">\r\n <a :href=\"learn_more_url\" class=\"register__link btn-link mt-2\" target=\"_blank\">\r\n Learn more <span class=\"material-icons-round align-middle\"> chevron_right </span>\r\n </a>\r\n </div>\r\n </b-col>\r\n <b-col md=\"3\" class=\"ml-md-auto\">\r\n <div class=\"mb-2 mt-5 subTitle\" v-if=\"remainingTime > 0\">Starts in...</div>\r\n <!-- Countdown -->\r\n <PreHomeCountDownWidget v-if=\"countdown_active && remainingTime > 0\" :message=\"countdown_text\" />\r\n <div class=\"lineSeparator mt-4 mb-4\" v-if=\"remainingTime > 0\"></div>\r\n <div v-if=\"venue\" class=\"d-flex eventLocation\" :style=\"remainingTime > 0 ? '' : 'margin-top: 3rem'\">\r\n <span class=\"material-icons-outlined align-middle mr-2\"> place </span> {{ venue }}\r\n </div>\r\n </b-col>\r\n <b-col md=\"2\" class=\"ml-md-auto\">\r\n <div class=\"mb-3 mt-5 subTitle\">Organised by</div>\r\n <div>\r\n <img :src=\"`${publicPath}img/events/${eventId}/organiser-logo.png?v=${this.appVersion}`\" class=\"organiserLogo\" />\r\n </div>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </template>\r\n <!-- Footer -->\r\n <footer class=\"footer\">\r\n <b-container fluid class=\"footer-wrapper\">\r\n <b-row class=\"footer-nav\">\r\n <b-col cols=\"12\" lg=\"1\" class=\"footer-logo-wrapper\">\r\n <a href=\"https://www.escardio.org/\" target=\"_blank\">\r\n <img src=\"~@/assets/images/platform/esc-logo-acronym-white.png\" alt=\"ESC Logo\" />\r\n </a>\r\n </b-col>\r\n\r\n <b-col v-for=\"footerEntry in footer_blocks\" :key=\"footerEntry._uid\" cols=\"12\" lg=\"2\" class=\"footer-link-wrapper\">\r\n <template v-if=\"footerEntry.link_internal\">\r\n <router-link :to=\"footerEntry.link_value\" class=\"footer-link\">\r\n {{ footerEntry.link_text }}\r\n </router-link>\r\n </template>\r\n <template v-else>\r\n <a :href=\"footerEntry.link_value\" class=\"footer-link\" :target=\"footerEntry.link_new_tab ? '_blank' : '_self'\">\r\n {{ footerEntry.link_text }}\r\n </a>\r\n </template>\r\n </b-col>\r\n\r\n <b-col v-if=\"footer_terms_and_conditions_link\" cols=\"12\" lg=\"2\" class=\"footer-link-wrapper\">\r\n <a :href=\"footer_terms_and_conditions_link\" class=\"footer-link\" target=\"_blank\">Terms & Conditions</a>\r\n </b-col>\r\n\r\n <b-col v-if=\"footer_contact_us_link\" cols=\"12\" lg=\"2\" class=\"footer-link-wrapper\">\r\n <a :href=\"footer_contact_us_link\" class=\"footer-link\" target=\"_blank\">Contact us</a>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" lg=\"3\" class=\"footer-link-wrapper\">\r\n <div class=\"footer-link\">\r\n Follow us on\r\n <div class=\"footer-social-link-wrapper\">\r\n <a href=\"https://www.facebook.com/europeansocietyofcardiology?ref=ts\" class=\"footer-social-link\" target=\"_blank\">\r\n <img src=\"~@/assets/images/social/facebook.png\" alt=\"Facebook\" />\r\n </a>\r\n <a href=\"https://www.linkedin.com/company/european-society-of-cardiology\" class=\"footer-social-link\" target=\"_blank\">\r\n <img src=\"~@/assets/images/social/linkedin.png\" alt=\"LinkedIn\" />\r\n </a>\r\n <a href=\"https://twitter.com/escardio\" class=\"footer-social-link\" target=\"_blank\">\r\n <img src=\"~@/assets/images/social/x-logo-white.png\" alt=\"Twitter\" />\r\n </a>\r\n <a href=\"https://www.youtube.com/user/escardiodotorg\" class=\"footer-social-link\" target=\"_blank\">\r\n <img src=\"~@/assets/images/social/youtube.png\" alt=\"Youtube\" />\r\n </a>\r\n <a href=\"https://www.instagram.com/europeansocietyofcardiology\" class=\"footer-social-link\" target=\"_blank\">\r\n <img src=\"~@/assets/images/social/instagram.png\" alt=\"Instagram\" />\r\n </a>\r\n </div>\r\n </div>\r\n </b-col>\r\n <b-col v-if=\"confCmsData && confCmsData.footer_data_privacy\" cols=\"12\">\r\n <div class=\"data-privacy mt-5\">\r\n <small>\r\n <span v-html=\"$options.filters.formatStoryRichTextWithoutEncapsulatingParagraph(confCmsData.footer_data_privacy)\"></span>\r\n <span v-if=\"footer_terms_and_conditions_link\">\r\n More information is available in the {{ eventBaseTitle }}\r\n <a :href=\"footer_terms_and_conditions_link\" class=\"footer-link text-decoration-underline\" target=\"_blank\">registration terms and conditions</a>.\r\n </span>\r\n </small>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </footer>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import PreHomeCountDownWidget from 'src/components/Widgets/PreHomeCountDownWidget';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n\r\n export default {\r\n name: 'Footer',\r\n components: {\r\n PreHomeCountDownWidget,\r\n },\r\n data() {\r\n return {\r\n publicPath: process.env.BASE_URL,\r\n remainingTime: 0,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n confCmsData: (state) => state.app.confCmsData,\r\n eventId: (state) => state.app.eventId,\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n homeCmsData: (state) => state.app.homeCmsData,\r\n appVersion: (state) => state.app.version,\r\n eventStartDate: (state) => state.app.eventStartDate,\r\n }),\r\n about_text() {\r\n return this.homeCmsData?.about_text;\r\n },\r\n learn_more_url() {\r\n return this.homeCmsData?.learn_more_url?.url;\r\n },\r\n countdown_active() {\r\n return this.homeCmsData?.countdown_active;\r\n },\r\n countdown_text() {\r\n return this.homeCmsData?.countdown_text;\r\n },\r\n venue() {\r\n return this.homeCmsData?.venue;\r\n },\r\n footer_blocks() {\r\n return this.confCmsData?.footer_blocks;\r\n },\r\n footer_terms_and_conditions_link() {\r\n return this.confCmsData?.footer_terms_and_conditions_link?.url;\r\n },\r\n footer_contact_us_link() {\r\n return this.confCmsData?.footer_contact_us_link?.url;\r\n },\r\n },\r\n mounted() {\r\n const now = DateHelper.browserDateTime();\r\n const startDate = DateHelper.browserDateTime(this.eventStartDate);\r\n this.remainingTime = startDate - now;\r\n },\r\n methods: {},\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .footer {\r\n z-index: 3;\r\n padding-top: 10px;\r\n\r\n .footer-logo-wrapper img {\r\n height: 30px;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .footer-social-link-wrapper {\r\n display: inline-block;\r\n }\r\n }\r\n\r\n .data-privacy {\r\n font-size: 0.9em;\r\n margin: 10px;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=f7b21460&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=js\"\nexport * from \"./Footer.vue?vue&type=script&lang=js\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=f7b21460&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f7b21460\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"nav-bars\"},[_c('b-navbar',{staticClass:\"navbar-365\",attrs:{\"toggleable\":\"xl\",\"offset-md\":\"2\"}},[_c('b-navbar-brand',{staticClass:\"p-0\",attrs:{\"href\":_vm.esc365Url}},[_c('img',{attrs:{\"src\":require(\"@/assets/images/platform/logo_esc.svg\"),\"alt\":\"logo esc\"}}),_c('span',{staticClass:\"ml-1 mr-4\"},[_vm._v(\"ESC 365\")]),_c('span',{staticClass:\"pl-4 border-left d-none\",staticStyle:{\"font-family\":\"Interstate WGL Black\"}},[_vm._v(\"European Society of Cardiology\")])]),_c('b-navbar-nav',{staticClass:\"mr-1\"},[_c('b-nav-form',[(!_vm.isLogged)?[_c('b-dropdown',{staticClass:\"mr-2 d-none d-md-block\",attrs:{\"text\":\"ESC Platforms\",\"variant\":\"outline-secondary\",\"size\":\"sm\"}},[_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":\"https://www.escardio.org/\",\"link-class\":\"escplatforms\",\"target\":\"_blank\"}},[_vm._v(\" Escardio.org \")]),_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":\"https://esc365.escardio.org/\",\"link-class\":\"escplatforms\"}},[_vm._v(\" ESC 365 \")]),_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":\"https://escelearning.escardio.org/\",\"link-class\":\"escplatforms\",\"target\":\"_blank\"}},[_vm._v(\" ESC eLearning \")])],1),_c('b-button',{staticClass:\"my-2 my-sm-0 mr-2 btn-outline-congress d-none d-sm-block\",attrs:{\"pill\":\"\",\"size\":\"sm\",\"variant\":\"outline-dark\",\"href\":_vm.registerUrl,\"target\":\"_blank\"}},[_vm._v(\" Create an account \")])]:_vm._e(),(!_vm.isLogged)?_c('span',[_c('b-button',{staticClass:\"my-2 my-sm-0 mr-2\",attrs:{\"pill\":\"\",\"size\":\"sm\",\"variant\":\"dark\",\"data-v-step-overview2\":\"0\"},on:{\"click\":_vm.login}},[_c('span',[_vm._v(\"Sign in\")])])],1):_vm._e(),(_vm.isLogged)?_c('span',[_c('b-dropdown',{staticClass:\"mr-2 rounded-pill d-none d-md-inline-flex\",attrs:{\"text\":\"ESC Platforms\",\"size\":\"sm\"}},[_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":\"https://www.escardio.org/\",\"link-class\":\"escplatforms\",\"target\":\"_blank\"}},[_vm._v(\" Escardio.org \")]),_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":\"https://esc365.escardio.org/\",\"link-class\":\"escplatforms\"}},[_vm._v(\" ESC 365 \")]),_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":\"https://escelearning.escardio.org/\",\"link-class\":\"escplatforms\",\"target\":\"_blank\"}},[_vm._v(\" ESC eLearning \")])],1),_c('b-button',{staticClass:\"my-2 my-sm-0 mr-2 btn-membership\",attrs:{\"pill\":\"\",\"href\":_vm.becomeMemberUrl,\"target\":\"_blank\",\"size\":\"sm\"}},[_c('span',[_vm._v(\"Membership\")])])],1):_vm._e(),(_vm.isLogged)?[_c('b-dropdown',{attrs:{\"right\":\"\",\"size\":\"sm\",\"id\":\"user__nav\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('span',{staticClass:\"font-regular\"},[_vm._v(_vm._s(_vm.firstName)+\" \"+_vm._s(_vm.lastName))])]},proxy:true}],null,false,961314534)},[_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":_vm.userProfileUrl}},[_vm._v(\"Profile\")]),_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"to\":`/${_vm.eventRoute}/my-programme`}},[_vm._v(\"My Programme\")]),_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":_vm.myAccountUrl,\"target\":\"_blank\"}},[_vm._v(\"My account\")]),_c('b-dropdown-divider'),_c('b-dropdown-item',{staticClass:\"font-regular\",attrs:{\"href\":_vm.sloUrl}},[_vm._v(\"Sign Out\")])],1)]:_vm._e()],2)],1)],1),_c('b-navbar',{staticClass:\"navbar-full\",attrs:{\"id\":\"topStickyNav\",\"toggleable\":\"xl\",\"type\":\"light\"}},[_c('b-navbar-brand',{attrs:{\"to\":`/${_vm.eventRoute}`}},[_c('img',{staticClass:\"navbar-logo\",attrs:{\"src\":`${_vm.publicPath}img/events/${_vm.eventId}/logo.png?v=${this.appVersion}`,\"alt\":\"Congress Logo\"}})]),_c('div',{staticClass:\"d-inline-block mx-sm-0 ml-auto pt-2\"},[_c('b-navbar-toggle',{attrs:{\"target\":\"nav-collapse\"}})],1),_c('b-collapse',{attrs:{\"id\":\"nav-collapse\",\"is-nav\":\"\"}},[_c('TakeQuizzWidget'),_c('b-navbar-nav',{staticClass:\"d-flex\"},[_vm._l((_vm.confCmsData.navbar_blocks),function(navEntry){return _c('div',{key:navEntry._uid},[(navEntry.isDisplayed)?_c('b-nav-item',{staticClass:\"m-auto nav_item\",style:(navEntry.inline_css?navEntry.inline_css:''),attrs:{\"to\":navEntry.link_internal ? `/${_vm.eventRoute}${navEntry.link_value}` : null,\"href\":!navEntry.link_internal ? navEntry.link_value : null,\"target\":!navEntry.link_internal && navEntry.link_new_tab ? '_blank' : '_self'},on:{\"click\":function($event){return _vm.clickToCollapse(navEntry)}}},[(navEntry.display_icon_live)?_c('span',{staticClass:\"live-icon\"}):_vm._e(),_c('span',[_vm._v(_vm._s(navEntry.link_text))]),(navEntry.children && navEntry.children.length > 0)?_c('b-button',{staticClass:\"p-0 border-0\",staticStyle:{\"height\":\"24px\"},attrs:{\"data-v-step\":navEntry.tourIndex},on:{\"click\":function($event){return _vm.handleToggleClick(navEntry.link_text, $event)}}},[(_vm.isCollapsedSection[navEntry.link_text] || _vm.isCollapsedSection[navEntry.link_text] == null)?_c('span',{staticClass:\"material-icons-round\"},[_vm._v(\" expand_more \")]):_vm._e(),(!_vm.isCollapsedSection[navEntry.link_text] && _vm.isCollapsedSection[navEntry.link_text] != null)?_c('span',{staticClass:\"material-icons-round\"},[_vm._v(\" keyboard_arrow_up \")]):_vm._e()]):_vm._e()],1):_vm._e(),(!_vm.isCollapsedSection[navEntry.link_text] && _vm.isCollapsedSection[navEntry.link_text] != null)?_c('div',{staticClass:\"subnav__collapsed mt-0 font-black collapse show\"},[_c('b-container',{staticClass:\"m-auto\"},[_c('b-list-group',{staticClass:\"justify-content-md-center m-auto\",attrs:{\"horizontal\":\"md\"}},_vm._l((navEntry.children),function(subNavEntry){return _c('div',{key:subNavEntry._uid},[(subNavEntry.isDisplayed)?_c('b-list-group-item',{staticClass:\"m-auto\",style:(subNavEntry.inline_css?subNavEntry.inline_css:''),attrs:{\"to\":subNavEntry.link_internal ? `/${_vm.eventRoute}${subNavEntry.link_value}` : null,\"href\":!subNavEntry.link_internal ? subNavEntry.link_value : null,\"target\":!subNavEntry.link_internal && subNavEntry.link_new_tab ? '_blank' : '_self'}},[(subNavEntry.isDisplayed)?_c('span',[_vm._v(_vm._s(subNavEntry.link_text))]):_vm._e()]):_vm._e()],1)}),0)],1)],1):_vm._e()],1)})],2),_c('b-navbar-nav',{staticClass:\"ml-auto rightNav\"},[((!_vm.isLogged || !_vm.hasNetworkingAccess) && _vm.isNetworkingEnabled && !_vm.preCongressMode)?_c('b-nav-item',{staticClass:\"nav-networking\",attrs:{\"disabled\":\"\"}},[_c('b-button',{attrs:{\"variant\":\"link\",\"disabled\":\"\"}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/images/platform/networking-icon-disabled.svg\"),\"alt\":\"networking\"}}),_c('b',[_vm._v(\"NETWORKING\")])])],1):_vm._e(),_c('CrossLinkWidget'),(false && !_vm.isLogged)?_c('b-nav-item',{staticClass:\"nav-login\",on:{\"click\":_vm.login}},[_c('b-button',{attrs:{\"variant\":\"link\"}},[_c('i',{staticClass:\"las la-10x la-t-plus-3 la-user-circle\"}),_c('b',[_vm._v(\"SIGN IN\")])])],1):_vm._e(),(_vm.isLogged && _vm.hasNetworkingAccess && _vm.isNetworkingEnabled && !_vm.preCongressMode)?_c('b-nav-item-dropdown',{staticClass:\"nav-networking\",class:{ 'link-active': _vm.isNetworkingLinkActive }},[_c('template',{slot:\"button-content\"},[_c('img',{staticClass:\"mb-2\",attrs:{\"src\":require(\"@/assets/images/platform/networking-icon.svg\"),\"alt\":\"networking\"}}),(_vm.hasUnreadNotifications)?_c('span',{staticClass:\"b-avatar-badge badge-primary\"},[_vm._v(\" \"+_vm._s(_vm.unreadNotifications)+\" \")]):_vm._e(),_c('b',{staticStyle:{\"color\":\"#ae1022\"}},[_vm._v(\"NETWORKING\")])]),_c('b-dropdown-item',{attrs:{\"to\":`/${_vm.eventRoute}/${_vm.chatParticipantConfig.route}/search`}},[_vm._v(\"Search\")]),_c('b-dropdown-item',{class:{ newMessage: _vm.hasUnreadNotifications },attrs:{\"to\":`/${_vm.eventRoute}/${_vm.chatParticipantConfig.route}/messages`}},[_vm._v(\" Messages \"),(_vm.hasUnreadNotifications)?_c('span',{staticClass:\"badge badge-danger ml-2\"},[_vm._v(_vm._s(_vm.unreadNotifications))]):_vm._e()])],2):_vm._e(),(false && _vm.isLogged)?_c('b-nav-item',{staticClass:\"nav-login\",attrs:{\"href\":_vm.myProfileUrl,\"target\":\"_blank\"}},[_c('b-button',{attrs:{\"variant\":\"link\"}},[_c('i',{staticClass:\"las la-10x la-user-circle\"}),_c('span',[_c('b',[_vm._v(_vm._s(_vm.firstName))])])])],1):_vm._e()],1)],1)],1),(!_vm.isMobile)?_c('v-tour',{attrs:{\"name\":\"overview-tour\",\"steps\":_vm.steps2,\"callbacks\":_vm.callbacks,\"active\":_vm.isTourActive}}):_vm._e(),(!_vm.isMobile && (_vm.postCongressMode || _vm.preCongressMode))?_c('v-tour',{attrs:{\"name\":\"nav-tour\",\"steps\":_vm.steps,\"callbacks\":_vm.callbacksNav,\"active\":_vm.isTourNavActive}}):_vm._e(),(!_vm.isMobile && !_vm.postCongressMode && !_vm.preCongressMode)?_c('v-tour',{attrs:{\"name\":\"navLive-tour\",\"steps\":_vm.steps,\"callbacks\":_vm.callbacksNavLive,\"active\":_vm.isTourNavLiveActive}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.preCongressMode && _vm.homeCmsData && _vm.homeCmsData.quizz_active)?_c('fragment',[_c('div',{staticClass:\"quiz-topBar-bg d-xl-block d-lg-none d-md-none d-sm-none bv-d-xs-down-none position-absolute text-center\"},[_vm._v(\" \")]),_c('div',{staticClass:\"quiz-topBar-text d-xl-block d-lg-none d-md-none d-sm-none bv-d-xs-down-none position-absolute text-center\"},[_c('h6',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.homeCmsData.quizz_text))]),_c('p',[_c('a',{attrs:{\"href\":_vm.homeCmsData.quizz_link,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.homeCmsData.quizz_link_text)+\" \"),_c('i',{staticClass:\"las la-arrow-right la-3x\"})])])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment v-if=\"preCongressMode && homeCmsData && homeCmsData.quizz_active\">\r\n <div class=\"quiz-topBar-bg d-xl-block d-lg-none d-md-none d-sm-none bv-d-xs-down-none position-absolute text-center\"> </div>\r\n <div class=\"quiz-topBar-text d-xl-block d-lg-none d-md-none d-sm-none bv-d-xs-down-none position-absolute text-center\">\r\n <h6 class=\"font-weight-bold\">{{ homeCmsData.quizz_text }}</h6>\r\n <p>\r\n <a :href=\"homeCmsData.quizz_link\" target=\"_blank\">{{ homeCmsData.quizz_link_text }} <i class=\"las la-arrow-right la-3x\"></i></a>\r\n </p>\r\n </div>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n\r\n export default {\r\n name: 'TakeQuizzWidget',\r\n computed: {\r\n ...mapState({\r\n homeCmsData: state => state.app.homeCmsData,\r\n preCongressMode: (state) => state.app.preCongressMode\r\n })\r\n },\r\n mounted() {\r\n // If needed...\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TakeQuizzWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TakeQuizzWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TakeQuizzWidget.vue?vue&type=template&id=449fa1a8&scoped=true\"\nimport script from \"./TakeQuizzWidget.vue?vue&type=script&lang=js\"\nexport * from \"./TakeQuizzWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./TakeQuizzWidget.vue?vue&type=style&index=0&id=449fa1a8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"449fa1a8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.widgetData.to)?_c('b-nav-item',{staticClass:\"nav-crossLink\",attrs:{\"href\":_vm.widgetData.to},on:{\"click\":_vm.onClick}},[_c('img',{attrs:{\"src\":_vm.widgetData.img,\"alt\":\"\"}})]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-nav-item v-if=\"widgetData.to\" @click=\"onClick\" :href=\"widgetData.to\" class=\"nav-crossLink\">\r\n <img :src=\"widgetData.img\" alt=\"\" class=\"\" />\r\n </b-nav-item>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { constants } from 'src/constants';\r\n import { SET_IS_LOADING } from 'src/store/mutations';\r\n\r\n export default {\r\n name: 'CrossLinkWidget',\r\n props: {},\r\n computed: {\r\n ...mapState({\r\n appVersion: state => state.app.appVersion,\r\n eventId: state => state.app.eventId,\r\n preCongressMode: state => state.app.preCongressMode,\r\n postCongressMode: state => state.app.postCongressMode\r\n }),\r\n /*\r\n showWidget() {\r\n return this.eventId == constants.HF_2022_EVENT_ID || this.eventId == constants.ACNAP_2022_EVENT_ID;\r\n },\r\n */\r\n widgetData() {\r\n let crossLinkImageNamePrefix = '';\r\n let crossLinkToUrl = '';\r\n let crossLinkToAlt = '';\r\n\r\n if (!this.preCongressMode && !this.postCongressMode) {\r\n crossLinkImageNamePrefix = 'live-';\r\n }\r\n\r\n if (this.eventId == constants.HF_2022_EVENT_ID) {\r\n crossLinkToUrl = '/EuroHeartCare';\r\n crossLinkToAlt = 'ACNAP 2022';\r\n } else if (this.eventId == constants.ACNAP_2022_EVENT_ID) {\r\n crossLinkToUrl = '/Heart-Failure';\r\n crossLinkToAlt = 'HF 20222';\r\n }\r\n\r\n return {\r\n img: `/${process.env.BASE_URL}/img/events/${this.eventId}/${crossLinkImageNamePrefix}cross-link.png?v=${this.appVersion}`,\r\n to: crossLinkToUrl,\r\n alt: crossLinkToAlt\r\n };\r\n }\r\n },\r\n mounted() {},\r\n methods: {\r\n onClick() {\r\n this.$store.commit(SET_IS_LOADING, true);\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CrossLinkWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CrossLinkWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CrossLinkWidget.vue?vue&type=template&id=526c2df6&scoped=true\"\nimport script from \"./CrossLinkWidget.vue?vue&type=script&lang=js\"\nexport * from \"./CrossLinkWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./CrossLinkWidget.vue?vue&type=style&index=0&id=526c2df6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"526c2df6\",\n null\n \n)\n\nexport default component.exports","import { QueryHelper } from 'src/utils/query-helper';\r\nimport { OPEN_CHANNEL_MODAL } from 'src/store/actions';\r\nimport { OPEN_MEDIA_MODAL } from 'src/store/actions';\r\n\r\nexport default {\r\n mounted() {\r\n // Check if a channel is in query (live is prioritary)\r\n const channelFurl = this.$route.query.c;\r\n if (channelFurl) {\r\n const channelParams = QueryHelper.extractChannelParams(channelFurl);\r\n if (channelParams && channelParams.channelId > 0) this.$store.dispatch(OPEN_CHANNEL_MODAL, channelParams);\r\n } else {\r\n // Check if a media is in query\r\n const mediaFurl = this.$route.query.v;\r\n if (mediaFurl) {\r\n const mediaMetadata = QueryHelper.extractMediaMetadata(mediaFurl);\r\n if (mediaMetadata && mediaMetadata.id > 0) this.$store.dispatch(OPEN_MEDIA_MODAL, mediaMetadata);\r\n }\r\n }\r\n }\r\n};\r\n","import { constants } from 'src/constants';\r\n\r\nexport default {\r\n data() {\r\n return {\r\n tours: {\r\n search: false,\r\n overview: false,\r\n nav:false,\r\n searchCalendar:false,\r\n schedule: false,\r\n navLive: false,\r\n }\r\n };\r\n },\r\n mounted() {\r\n try {\r\n var toursState = JSON.parse(window.localStorage.getItem(constants.LOCAL_TOURS_KEY));\r\n if (toursState && toursState !== null) {\r\n this.tours.search = toursState.search;\r\n this.tours.overview = toursState.overview;\r\n this.tours.nav = toursState.nav;\r\n this.tours.searchCalendar = toursState.searchCalendar;\r\n this.tours.schedule = toursState.schedule;\r\n this.tours.navLive = toursState.navLive;\r\n\r\n }\r\n }\r\n catch (e) {\r\n this.tours.search = true;\r\n this.tours.overview = true;\r\n this.tours.nav = true;\r\n this.tours.searchCalendar = true;\r\n this.tours.schedule = true;\r\n this.tours.navLive = true;\r\n }\r\n },\r\n methods: {\r\n onTourCompleted(tour) {\r\n this.tours[tour] = true;\r\n try {\r\n window.localStorage.setItem(constants.LOCAL_TOURS_KEY, JSON.stringify(this.tours));\r\n }\r\n catch (e) {\r\n return\r\n }\r\n }\r\n }\r\n};\r\n","<template>\r\n <div class=\"nav-bars\">\r\n <!--\r\n <div class=\"top-nav-bar\">\r\n <div >\r\n <img src=\"~@/assets/images/platform/logo_esc.svg\" alt=\"logo esc\" class=\"navbar-logo--365\" />\r\n <span>ESC 365</span>\r\n </div>\r\n </div>\r\n -->\r\n <b-navbar toggleable=\"xl\" class=\"navbar-365\" offset-md=\"2\">\r\n <b-navbar-brand :href=\"esc365Url\" class=\"p-0\">\r\n <img src=\"~@/assets/images/platform/logo_esc.svg\" alt=\"logo esc\" />\r\n <span class=\"ml-1 mr-4\">ESC 365</span>\r\n <span class=\"pl-4 border-left d-none\" style=\"font-family: Interstate WGL Black\">European Society of Cardiology</span>\r\n </b-navbar-brand>\r\n <!-- Right aligned nav items -->\r\n <b-navbar-nav class=\"mr-1\">\r\n <b-nav-form>\r\n <!-- If NOT logged -->\r\n <template v-if=\"!isLogged\">\r\n <b-dropdown text=\"ESC Platforms\" variant=\"outline-secondary\" class=\"mr-2 d-none d-md-block\" size=\"sm\">\r\n <b-dropdown-item href=\"https://www.escardio.org/\" link-class=\"escplatforms\" target=\"_blank\" class=\"font-regular\"> Escardio.org </b-dropdown-item>\r\n <b-dropdown-item href=\"https://esc365.escardio.org/\" link-class=\"escplatforms\" class=\"font-regular\"> ESC 365 </b-dropdown-item>\r\n <b-dropdown-item href=\"https://escelearning.escardio.org/\" link-class=\"escplatforms\" target=\"_blank\" class=\"font-regular\">\r\n ESC eLearning\r\n </b-dropdown-item>\r\n </b-dropdown>\r\n <b-button pill size=\"sm\" class=\"my-2 my-sm-0 mr-2 btn-outline-congress d-none d-sm-block\" variant=\"outline-dark\" :href=\"registerUrl\" target=\"_blank\">\r\n Create an account\r\n </b-button>\r\n </template>\r\n\r\n <span v-if=\"!isLogged\">\r\n <b-button pill size=\"sm\" variant=\"dark\" class=\"my-2 my-sm-0 mr-2\" @click=\"login\" data-v-step-overview2=\"0\">\r\n <span>Sign in</span>\r\n </b-button>\r\n </span>\r\n <span v-if=\"isLogged\">\r\n <b-dropdown text=\"ESC Platforms\" class=\"mr-2 rounded-pill d-none d-md-inline-flex\" size=\"sm\">\r\n <b-dropdown-item href=\"https://www.escardio.org/\" link-class=\"escplatforms\" target=\"_blank\" class=\"font-regular\"> Escardio.org </b-dropdown-item>\r\n <b-dropdown-item href=\"https://esc365.escardio.org/\" link-class=\"escplatforms\" class=\"font-regular\"> ESC 365 </b-dropdown-item>\r\n <b-dropdown-item href=\"https://escelearning.escardio.org/\" link-class=\"escplatforms\" target=\"_blank\" class=\"font-regular\">\r\n ESC eLearning\r\n </b-dropdown-item>\r\n </b-dropdown>\r\n <b-button pill class=\"my-2 my-sm-0 mr-2 btn-membership\" :href=\"becomeMemberUrl\" target=\"_blank\" size=\"sm\">\r\n <span>Membership</span>\r\n </b-button>\r\n </span>\r\n\r\n <!-- If logged -->\r\n <template v-if=\"isLogged\">\r\n <b-dropdown right size=\"sm\" id=\"user__nav\">\r\n <template #button-content>\r\n <span class=\"font-regular\">{{ firstName }} {{ lastName }}</span>\r\n </template>\r\n <b-dropdown-item class=\"font-regular\" :href=\"userProfileUrl\">Profile</b-dropdown-item>\r\n <b-dropdown-item class=\"font-regular\" :to=\"`/${eventRoute}/my-programme`\">My Programme</b-dropdown-item>\r\n <b-dropdown-item class=\"font-regular\" :href=\"myAccountUrl\" target=\"_blank\">My account</b-dropdown-item>\r\n <b-dropdown-divider></b-dropdown-divider>\r\n <b-dropdown-item class=\"font-regular\" :href=\"sloUrl\">Sign Out</b-dropdown-item>\r\n </b-dropdown>\r\n </template>\r\n </b-nav-form>\r\n </b-navbar-nav>\r\n </b-navbar>\r\n\r\n <b-navbar id=\"topStickyNav\" toggleable=\"xl\" type=\"light\" class=\"navbar-full\">\r\n <b-navbar-brand :to=\"`/${eventRoute}`\">\r\n <img :src=\"`${publicPath}img/events/${eventId}/logo.png?v=${this.appVersion}`\" class=\"navbar-logo\" alt=\"Congress Logo\" />\r\n </b-navbar-brand>\r\n\r\n <div class=\"d-inline-block mx-sm-0 ml-auto pt-2\">\r\n <b-navbar-toggle target=\"nav-collapse\"></b-navbar-toggle>\r\n </div>\r\n\r\n <b-collapse id=\"nav-collapse\" is-nav>\r\n <!-- Quiz -->\r\n <TakeQuizzWidget />\r\n\r\n <b-navbar-nav class=\"d-flex\">\r\n <template>\r\n <div v-for=\"navEntry in confCmsData.navbar_blocks\" :key=\"navEntry._uid\">\r\n <b-nav-item\r\n v-if=\"navEntry.isDisplayed\"\r\n :to=\"navEntry.link_internal ? `/${eventRoute}${navEntry.link_value}` : null\"\r\n :href=\"!navEntry.link_internal ? navEntry.link_value : null\"\r\n :target=\"!navEntry.link_internal && navEntry.link_new_tab ? '_blank' : '_self'\"\r\n class=\"m-auto nav_item\"\r\n :style=\"navEntry.inline_css?navEntry.inline_css:''\"\r\n @click=\"clickToCollapse(navEntry)\"\r\n >\r\n <span v-if=\"navEntry.display_icon_live\" class=\"live-icon\"></span>\r\n <span>{{ navEntry.link_text }}</span>\r\n <b-button\r\n v-if=\"navEntry.children && navEntry.children.length > 0\"\r\n :data-v-step=\"navEntry.tourIndex\"\r\n class=\"p-0 border-0\"\r\n style=\"height: 24px\"\r\n @click=\"handleToggleClick(navEntry.link_text, $event)\"\r\n >\r\n <span v-if=\"isCollapsedSection[navEntry.link_text] || isCollapsedSection[navEntry.link_text] == null\" class=\"material-icons-round\">\r\n expand_more\r\n </span>\r\n <span v-if=\"!isCollapsedSection[navEntry.link_text] && isCollapsedSection[navEntry.link_text] != null\" class=\"material-icons-round\">\r\n keyboard_arrow_up\r\n </span>\r\n </b-button>\r\n </b-nav-item>\r\n <div\r\n class=\"subnav__collapsed mt-0 font-black collapse show\"\r\n v-if=\"!isCollapsedSection[navEntry.link_text] && isCollapsedSection[navEntry.link_text] != null\"\r\n >\r\n <b-container class=\"m-auto\">\r\n <b-list-group horizontal=\"md\" class=\"justify-content-md-center m-auto\">\r\n <div v-for=\"subNavEntry in navEntry.children\" :key=\"subNavEntry._uid\">\r\n <b-list-group-item\r\n v-if=\"subNavEntry.isDisplayed\"\r\n :to=\"subNavEntry.link_internal ? `/${eventRoute}${subNavEntry.link_value}` : null\"\r\n :href=\"!subNavEntry.link_internal ? subNavEntry.link_value : null\"\r\n :target=\"!subNavEntry.link_internal && subNavEntry.link_new_tab ? '_blank' : '_self'\"\r\n class=\"m-auto\"\r\n :style=\"subNavEntry.inline_css?subNavEntry.inline_css:''\"\r\n ><span v-if=\"subNavEntry.isDisplayed\">{{ subNavEntry.link_text }}</span></b-list-group-item\r\n >\r\n </div>\r\n </b-list-group>\r\n </b-container>\r\n </div>\r\n </div>\r\n </template>\r\n </b-navbar-nav>\r\n\r\n <!-- RIGHT NAV -->\r\n\r\n <b-navbar-nav class=\"ml-auto rightNav\">\r\n <b-nav-item v-if=\"(!isLogged || !hasNetworkingAccess) && isNetworkingEnabled && !preCongressMode\" class=\"nav-networking\" disabled>\r\n <b-button variant=\"link\" disabled>\r\n <img src=\"~@/assets/images/platform/networking-icon-disabled.svg\" alt=\"networking\" class=\"mb-1\" />\r\n <b>NETWORKING</b>\r\n </b-button>\r\n </b-nav-item>\r\n\r\n <CrossLinkWidget />\r\n\r\n <b-nav-item v-if=\"false && !isLogged\" @click=\"login\" class=\"nav-login\">\r\n <b-button variant=\"link\">\r\n <i class=\"las la-10x la-t-plus-3 la-user-circle\"></i>\r\n <b>SIGN IN</b>\r\n </b-button>\r\n </b-nav-item>\r\n\r\n <!--<b-nav-item v-if=\"isLogged\" :href=\"myProfileUrl\" class=\"nav-networking\">\r\n <b-button variant=\"link\">\r\n <img src=\"~@/assets/images/platform/networking-icon.svg\" alt=\"networking\" class=\"mb-1\" />\r\n <b>NETWORKING</b>\r\n </b-button>\r\n </b-nav-item>-->\r\n\r\n <b-nav-item-dropdown\r\n v-if=\"isLogged && hasNetworkingAccess && isNetworkingEnabled && !preCongressMode\"\r\n class=\"nav-networking\"\r\n :class=\"{ 'link-active': isNetworkingLinkActive }\"\r\n >\r\n <!-- class=\"link-active\" when user's in the networking area -->\r\n <template slot=\"button-content\">\r\n <img src=\"~@/assets/images/platform/networking-icon.svg\" alt=\"networking\" class=\"mb-2\" />\r\n <span v-if=\"hasUnreadNotifications\" class=\"b-avatar-badge badge-primary\"> {{ unreadNotifications }} </span\r\n ><!-- badge when new unread messages -->\r\n <b style=\"color: #ae1022\">NETWORKING</b>\r\n </template>\r\n <b-dropdown-item :to=\"`/${eventRoute}/${chatParticipantConfig.route}/search`\">Search</b-dropdown-item>\r\n <b-dropdown-item :to=\"`/${eventRoute}/${chatParticipantConfig.route}/messages`\" :class=\"{ newMessage: hasUnreadNotifications }\">\r\n <!-- add class=\"newMessage\" when new & unread messages -->\r\n Messages <span v-if=\"hasUnreadNotifications\" class=\"badge badge-danger ml-2\">{{ unreadNotifications }}</span>\r\n <!-- badge when new unread messages -->\r\n </b-dropdown-item>\r\n </b-nav-item-dropdown>\r\n\r\n <b-nav-item v-if=\"false && isLogged\" :href=\"myProfileUrl\" target=\"_blank\" class=\"nav-login\">\r\n <b-button variant=\"link\">\r\n <i class=\"las la-10x la-user-circle\"></i>\r\n <span>\r\n <b>{{ firstName }}</b>\r\n </span>\r\n </b-button>\r\n </b-nav-item>\r\n </b-navbar-nav>\r\n </b-collapse>\r\n </b-navbar>\r\n <v-tour v-if=\"!isMobile\" name=\"overview-tour\" :steps=\"steps2\" :callbacks=\"callbacks\" :active=\"isTourActive\"></v-tour>\r\n <v-tour v-if=\"!isMobile && (postCongressMode || preCongressMode)\" name=\"nav-tour\" :steps=\"steps\" :callbacks=\"callbacksNav\" :active=\"isTourNavActive\"></v-tour>\r\n <v-tour v-if=\"!isMobile && !postCongressMode && !preCongressMode\" name=\"navLive-tour\" :steps=\"steps\" :callbacks=\"callbacksNavLive\" :active=\"isTourNavLiveActive\"></v-tour>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import { login, destroyUser, logout } from 'src/services/auth';\r\n import TakeQuizzWidget from './TakeQuizzWidget';\r\n import CrossLinkWidget from './CrossLinkWidget';\r\n // import SearchLight from 'src/components/Search/SearchLight'\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n import toursManagerMixin from 'src/mixins/toursManagerMixin';\r\n import { constants } from 'src/constants';\r\n\r\n export default {\r\n name: 'Navbar',\r\n components: {\r\n TakeQuizzWidget,\r\n CrossLinkWidget,\r\n // SearchLight\r\n },\r\n mixins: [openModalMixin, toursManagerMixin],\r\n data() {\r\n return {\r\n searchInput: null,\r\n home_link_text: null,\r\n abstracts_link_text: null,\r\n abstracts_link_url: null,\r\n exhibition_link_text: null,\r\n exhibition_link_url: null,\r\n esc_stand_link_text: null,\r\n esc_stand_link_url: null,\r\n esc_stand_link_target: '_self',\r\n support_link_text: null,\r\n support_link_url: null,\r\n isCollapsedSection: {},\r\n isTourActive: false,\r\n isTourNavActive: false,\r\n isTourNavLiveActive: false,\r\n tourIndex: 0,\r\n steps: [],\r\n steps2: [\r\n {\r\n target: '[data-v-step-overview2=\"0\"]',\r\n header: {},\r\n content: `Welcome, Please sign with your My ESC account. Don't have one? Create yours now in just one minute (for free).`,\r\n params: {\r\n placement: 'bottom',\r\n enableScrolling: false,\r\n highlight: true,\r\n },\r\n },\r\n ],\r\n callbacksNav: {\r\n onSkip: () => this.onTourCompleted('nav'),\r\n onFinish: () => this.onTourCompleted('nav'),\r\n },\r\n callbacksNavLive: {\r\n onSkip: () => this.onTourCompleted('navLive'),\r\n onFinish: () => this.onTourCompleted('navLive'),\r\n },\r\n callbacks: {\r\n onSkip: () => this.onTourCompleted('overview'),\r\n onFinish: () => this.onTourCompleted('overview'),\r\n },\r\n toursEnd: false,\r\n };\r\n },\r\n computed: {\r\n publicPath() {\r\n return process.env.BASE_URL;\r\n },\r\n returnUrl() {\r\n return window.location.origin + this.$route.fullPath;\r\n },\r\n myProfileUrl() {\r\n return process.env.VUE_APP_MY_PROFILE_URL;\r\n },\r\n userProfileUrl() {\r\n return `${process.env.VUE_APP_ESC365_BASE_URL}/userprofile`;\r\n },\r\n becomeMemberUrl() {\r\n return `${process.env.VUE_APP_ESCARDIO_BASE_URL}/The-ESC/Membership`;\r\n },\r\n registerUrl() {\r\n return `${process.env.VUE_APP_SF_COMMUNITY_BASE_ACCESS_URL}/Account/ESCRegister`;\r\n },\r\n esc365Url() {\r\n return `${process.env.VUE_APP_ESC365_BASE_URL}`;\r\n },\r\n isMobile() {\r\n return this.$screen.breakpoint === 'xs' || this.$screen.breakpoint === 'sm' || this.$screen.breakpoint === 'md'; //window.innerWidth <= 768; // Détecte les écrans de 768px de large ou moins comme étant des appareils mobiles\r\n },\r\n myAccountUrl() {\r\n return `${process.env.VUE_APP_SF_COMMUNITY_BASE_ACCESS_URL}/MyESC/`;\r\n },\r\n sloUrl() {\r\n return process.env.VUE_APP_SLO_URL;\r\n },\r\n ...mapGetters(['isLogged', 'currentUser', 'fullName']),\r\n ...mapState({\r\n appVersion: (state) => state.app.version,\r\n eventId: (state) => state.app.eventId,\r\n eventRoute: (state) => state.app.eventRoute,\r\n firstName: (state) => state.auth.user.firstName,\r\n lastName: (state) => state.auth.user.lastName,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n confCmsData: (state) => state.app.confCmsData,\r\n unreadNotifications: (state) => state.app.unreadNotifications,\r\n chatParticipantConfig: (state) => state.app.chatParticipantConfig,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n industryStandsSearch: (state) => state.app.industryStandsSearch,\r\n indexAbstracts: (state) => state.app.indexAbstracts,\r\n indexIndustries: (state) => state.app.indexIndustries,\r\n indexLiveSessions: (state) => state.app.indexLiveSessions,\r\n indexOnDemandSessions: (state) => state.app.indexOnDemandSessions,\r\n indexSpeakers: (state) => state.app.indexSpeakers,\r\n }),\r\n hasUnreadNotifications() {\r\n return this.unreadNotifications > 0;\r\n },\r\n isNetworkingLinkActive() {\r\n return this.$route.path.includes('/networking');\r\n },\r\n isNetworkingEnabled() {\r\n //console.log(`chatParticipantConfig ${JSON.stringify(this.chatParticipantConfig)}`);\r\n return this.chatParticipantConfig && this.chatParticipantConfig.eventId && this.chatParticipantConfig.eventId == this.eventId;\r\n },\r\n hasNetworkingAccess() {\r\n return this.chatParticipantConfig && this.chatParticipantConfig.route;\r\n },\r\n },\r\n watch: {\r\n confCmsData: {\r\n immediate: true,\r\n handler(newVal) {\r\n if (newVal && newVal.navbar_blocks) {\r\n this.initializeCollapsedSections(newVal.navbar_blocks);\r\n }\r\n },\r\n },\r\n },\r\n\r\n mounted() {\r\n if (!this.isMobile) {\r\n if (!this.isTourActive) {\r\n this.isTourActive = true;\r\n if (!this.tours || !this.tours.overview) {\r\n this.$nextTick(() => {\r\n this.$tours['overview-tour'].start();\r\n });\r\n }\r\n }\r\n if (!this.isTourNavActive) {\r\n this.isTourNavActive = true;\r\n if (!this.tours || !this.tours.nav) {\r\n this.generateTourSteps();\r\n if (this.steps && this.steps.length > 0) {\r\n this.$nextTick(() => {\r\n this.$tours['nav-tour'].start();\r\n });\r\n }\r\n }\r\n }\r\n if (!this.isTourNavLiveActive) {\r\n this.isTourNavLiveActive = true;\r\n if (!this.tours || !this.tours.navLive) {\r\n this.generateTourSteps();\r\n if (this.steps && this.steps.length > 0) {\r\n this.$nextTick(() => {\r\n this.$tours['navLive-tour'].start();\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n login() {\r\n login(this.returnUrl, true);\r\n },\r\n destroyUserAndLogout() {\r\n destroyUser();\r\n logout(this.returnUrl);\r\n },\r\n initializeCollapsedSections(navbarBlocks) {\r\n const sections = {};\r\n navbarBlocks?.forEach((navEntry) => {\r\n sections[navEntry.link_text] = null;\r\n });\r\n this.isCollapsedSection = sections;\r\n },\r\n handleToggleClick(section, event) {\r\n event.preventDefault();\r\n event.stopPropagation()\r\n this.toursEnd = true;\r\n if (this.isCollapsedSection[section] == null) {\r\n this.$set(this.isCollapsedSection, section, false);\r\n } else {\r\n this.isCollapsedSection[section] = !this.isCollapsedSection[section];\r\n }\r\n\r\n // Close other sections when one is opened\r\n for (let key in this.isCollapsedSection) {\r\n if (key !== section && this.isCollapsedSection[key] === false) {\r\n this.isCollapsedSection[key] = true;\r\n }\r\n }\r\n },\r\n clickToCollapse(navEntry) {\r\n if (!navEntry.children || navEntry.children.length == 0) {\r\n const isCollapsed = true;\r\n for (let key in this.isCollapsedSection) {\r\n this.isCollapsedSection[key] = isCollapsed;\r\n }\r\n }\r\n else {\r\n event.stopPropagation();\r\n }\r\n },\r\n displayCommunity() {\r\n return this.eventId === constants.ESC_2024_EVENT_ID || this.eventId == constants.ESC_2023_EVENT_ID;\r\n },\r\n generateTourSteps() {\r\n this.steps = [];\r\n this.tourIndex = 0;\r\n this.confCmsData.navbar_blocks?.forEach((navEntry) => {\r\n if (navEntry.tour_text && navEntry.isDisplayed) {\r\n navEntry.tourIndex = this.tourIndex;\r\n this.steps.push({\r\n target: `[data-v-step=\"${this.tourIndex}\"]`,\r\n header: {},\r\n content: navEntry.tour_text,\r\n params: {\r\n placement: 'bottom',\r\n enableScrolling: false,\r\n highlight: true,\r\n },\r\n });\r\n this.tourIndex++;\r\n }\r\n });\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style scoped>\r\n\r\n.live-icon {\r\n display: inline-block;\r\n position: relative;\r\n top: calc(50% - 5px);\r\n background-color: red;\r\n width: 10px;\r\n height: 10px;\r\n border: 1px solid rgba(0, 0, 0, 0.1); /* Remplacement de `rgba(black, 0.1)` par `rgba(0, 0, 0, 0.1)` */\r\n border-radius: 50%;\r\n z-index: 1;\r\n margin-right: 5px;\r\n}\r\n.live-icon:before {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n background-color: rgba(255, 0, 0, 0.6); /* Utilisation de rgba avec des valeurs RGB */\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 50%;\r\n animation: live 2s ease-in-out infinite;\r\n z-index: -1;\r\n}\r\n\r\n@keyframes live {\r\n 0% {\r\n transform: scale(1, 1);\r\n }\r\n 100% {\r\n transform: scale(3.5, 3.5);\r\n background-color: rgba(255, 0, 0, 0); /* Utilisation de rgba avec des valeurs RGB */\r\n }\r\n}\r\n\r\n\r\n .nav_item {\r\n position: relative;\r\n }\r\n\r\n .subnav__collapsed {\r\n position: absolute;\r\n width: 100%;\r\n left: 0;\r\n top: 100%;\r\n }\r\n\r\n .navbar {\r\n padding: 0;\r\n }\r\n .navbar-brand {\r\n z-index: 1;\r\n }\r\n .navbar-expand-xl .navbar-nav {\r\n font-family: 'Interstate WGL Black';\r\n }\r\n\r\n @media screen and (min-width: 1200px) {\r\n #nav-collapse {\r\n margin-left: 50px;\r\n }\r\n .navbar-expand-xl .navbar-nav {\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n /*margin-right: auto;*/\r\n /*margin-left: auto;*/\r\n }\r\n .navbar-expand-xl .navbar-nav .nav-link {\r\n padding-right: 0.45rem;\r\n padding-left: 0.45rem;\r\n max-height: 40px;\r\n }\r\n /*.navbar-nav .nav-item.nav-login {\r\n position: absolute;\r\n right: 0;\r\n }*/\r\n }\r\n @media screen and (min-width: 768px) {\r\n .navbar-nav {\r\n flex-direction: row;\r\n justify-content: center;\r\n }\r\n }\r\n @media screen and (max-width: 767px) {\r\n .navbar-nav {\r\n display: block;\r\n text-align: center;\r\n }\r\n }\r\n /* NEW*/\r\n .navbar {\r\n overflow: visible; /* horreur totale en cas de quiz ajouté à la navbar */\r\n }\r\n .rightNav {\r\n margin-right: inherit !important;\r\n }\r\n .nav-networking {\r\n border-left: 1px solid #e5e5e5;\r\n border-right: 1px solid #e5e5e5;\r\n }\r\n .nav-networking button,\r\n .dropdown.nav-networking,\r\n .nav-login b {\r\n font-size: 0.6em;\r\n letter-spacing: 1px;\r\n }\r\n .nav-networking img {\r\n height: 25px;\r\n display: block;\r\n margin: auto;\r\n }\r\n\r\n .nav-login b {\r\n position: relative;\r\n top: -2px;\r\n line-height: 1;\r\n display: block;\r\n }\r\n .nav-login span {\r\n display: block;\r\n line-height: 1;\r\n }\r\n .nav-login i {\r\n color: #ae1022;\r\n display: block;\r\n margin-bottom: 0.5rem;\r\n }\r\n\r\n .btn-link:hover {\r\n text-decoration: none;\r\n }\r\n @media (max-width: 1200px) {\r\n .nav-networking {\r\n border-left: 0;\r\n }\r\n .rightNav {\r\n border-top: 1px solid #e5e5e5;\r\n }\r\n }\r\n @media (max-width: 768px) {\r\n .rightNav {\r\n border-top: 1px solid #e5e5e5;\r\n }\r\n\r\n .rightNav li {\r\n width: 50%;\r\n float: left;\r\n }\r\n .rightNav li ul li {\r\n width: inherit;\r\n float: none;\r\n }\r\n .nav-login a {\r\n padding: 0;\r\n }\r\n .nav-networking img {\r\n margin-top: 5px;\r\n }\r\n\r\n .navbar-365 .btn-membership {\r\n display: none;\r\n }\r\n }\r\n\r\n .navbar-365 {\r\n background: #fff;\r\n\r\n font-family: 'Interstate WGL Regular';\r\n z-index: 1000;\r\n background: #fff;\r\n top: 0;\r\n }\r\n\r\n .navbar-365 img {\r\n height: 25px;\r\n width: 50px;\r\n }\r\n\r\n .btn-membership {\r\n color: #fff;\r\n background-color: #ae1022;\r\n border-color: #ae1022;\r\n }\r\n\r\n .btn-membership:hover,\r\n .btn-membership:focus,\r\n .btn-membership:active {\r\n color: #fff;\r\n background-color: #720915;\r\n border-color: #720915;\r\n }\r\n\r\n .btn-link {\r\n color: #ae1022;\r\n }\r\n\r\n .btn-link:hover {\r\n color: #720915;\r\n }\r\n\r\n .btn-link:hover,\r\n .btn-link:focus,\r\n .btn-link:active,\r\n .btn-link:visited {\r\n text-decoration: none;\r\n box-shadow: none;\r\n }\r\n\r\n .btn-link span {\r\n color: #ae1022 !important;\r\n }\r\n\r\n .btn-link span.colorBlack {\r\n color: #000 !important;\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .navbar-365 {\r\n height: 70px;\r\n padding: 1rem 15px;\r\n }\r\n }\r\n\r\n @media (max-width: 425px) {\r\n .subnav__collapsed {\r\n position: relative;\r\n }\r\n }\r\n</style>\r\n\r\n<style scoped>\r\n ::v-deep .dropdown-toggle {\r\n color: #343a40;\r\n background-color: #fff;\r\n border-color: #343a40;\r\n border-radius: 50rem !important;\r\n border: 2px solid;\r\n }\r\n\r\n ::v-deep .dropdown-toggle:hover {\r\n background-color: #eee;\r\n border-color: #eee;\r\n }\r\n\r\n .dropdown-menu {\r\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\r\n border: 0 !important;\r\n }\r\n\r\n :focus-visible {\r\n outline-width: 0 !important;\r\n }\r\n\r\n .nav-networking .badge-primary {\r\n position: absolute;\r\n min-height: 2em;\r\n min-width: 2em;\r\n padding: 0.25em;\r\n border-radius: 10em;\r\n z-index: 1;\r\n top: -0.5em;\r\n right: 20%;\r\n text-align: center;\r\n background-color: #ae1022;\r\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.25) !important;\r\n }\r\n .nav-networking .badge-danger {\r\n background: #ae1022;\r\n border-radius: 10em;\r\n font-size: 70%;\r\n }\r\n\r\n @media (max-width: 768px) {\r\n .nav-networking .badge-primary {\r\n right: 40%;\r\n top: 0;\r\n }\r\n }\r\n @media (max-width: 576px) {\r\n .nav-networking .badge-primary {\r\n right: 30%;\r\n top: 0;\r\n }\r\n }\r\n @media (max-width: 1200px) {\r\n .navbar-nav .nav-networking .dropdown-menu {\r\n position: absolute;\r\n width: 100%;\r\n }\r\n }\r\n @media (min-width: 1200px) {\r\n .nav-networking.link-active a.nav-link::before {\r\n content: '';\r\n position: absolute;\r\n width: 70px;\r\n height: 5px;\r\n background: #ae1022;\r\n display: block;\r\n bottom: -20px;\r\n left: 0;\r\n right: 0;\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n .nav-networking .badge-primary {\r\n position: absolute;\r\n min-height: 2em;\r\n min-width: 2em;\r\n padding: 0.25em;\r\n border-radius: 10em;\r\n z-index: 1;\r\n top: -0.5em;\r\n right: 20%;\r\n text-align: center;\r\n background-color: #ae1022;\r\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.25) !important;\r\n }\r\n .navbar-nav .nav-login .btn {\r\n max-width: 100px !important;\r\n padding-left: 0 !important;\r\n padding-right: 0 !important;\r\n }\r\n }\r\n .navbar-nav .nav-link.router-link-active:before {\r\n width: 10px !important;\r\n height: 10px !important;\r\n top: 0 !important;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Navbar.vue?vue&type=template&id=19d448b9&scoped=true\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./Navbar.vue?vue&type=style&index=0&id=19d448b9&prod&scoped=true&lang=css\"\nimport style1 from \"./Navbar.vue?vue&type=style&index=1&id=19d448b9&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19d448b9\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment v-if=\"!isLoading\">\r\n <IndustryToastManager v-if=\"enableNotifications\" />\r\n <NewVersionToast v-if=\"enableNotifications\" id=\"new-version-toast\" />\r\n\r\n <div v-if=\"showHeader && !$route.meta.hideHeaderFooter\" class=\"sticky-top\">\r\n <Navbar />\r\n </div>\r\n <!-- <div v-if=\"!isMobileAppPage && !isHomePage\" class=\"timeInfo\">Please note that the programme times are displayed on local times in {{ locationEvent }}.</div> -->\r\n <b-container\r\n fluid\r\n class=\"main-container px-0\"\r\n :class=\"{\r\n 'pr-0': isLiveMode && !isPageWithoutTimeline,\r\n 'pr-0': !isLiveMode && !isPageWithoutTimeline,\r\n 'pr-3': isPageWithoutTimeline,\r\n 'pl-0': !isPageWithoutTimeline,\r\n 'pl-3': isPageWithoutTimeline,\r\n }\"\r\n >\r\n <b-row\r\n no-gutters\r\n :align-h=\"!preCongressMode && !postCongressMode && !isPageWithoutTimeline ? 'center' : 'center'\"\r\n :class=\"{ 'm-0': preCongressMode || postCongressMode }\"\r\n >\r\n <b-col v-if=\"!isPageWithoutTimeline && !preCongressMode && !postCongressMode\" cols=\"12\" class=\"d-none\">\r\n <div class=\"timeline-button\" :data-expanded=\"timelineExpandedData\" @click=\"toggleTimeLine\">\r\n <i class=\"las la-2x la-t-plus-6 la-calendar-alt\"></i>\r\n </div>\r\n </b-col>\r\n\r\n <!-- RouterView -->\r\n <router-view :key=\"generateRouterKey()\" v-if=\"isMounted\" />\r\n </b-row>\r\n </b-container>\r\n\r\n <NetworkingChat v-if=\"isLogged && hasNetworkingAccess && !isNetworkingMessagePage && isNetworkingEnabled\" :hidden=\"true\" />\r\n\r\n <ChannelModal />\r\n <MediaModal />\r\n\r\n <Footer v-if=\"showFooter && !$route.meta.hideHeaderFooter\" />\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import cssVars from 'css-vars-ponyfill';\r\n import { mapGetters, mapState } from 'vuex';\r\n\r\n import { SfChatBot } from 'src/assets/scripts/sf-chatbot';\r\n import { getDefaultRoute } from 'src/router/default';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { getStoryBlokClient, getStoryBlokPreviewToken, isInStoryBlokEditorPreview } from 'src/services/storyblok';\r\n import { FETCH_BANNERS, FETCH_FAVS, TOGGLE_TIMELINE } from 'src/store/actions';\r\n import { SET_CHAT_PARTICIPANT_CONFIG, SET_CMS_CACHE_VERSION, SET_CONF_CMS_DATA, SET_HOME_CMS_DATA, SET_IS_LOADING, SET_USER_INFO } from 'src/store/mutations';\r\n\r\n import ChannelModal from 'src/components/Modals/ChannelModal';\r\n import MediaModal from 'src/components/Modals/MediaModal';\r\n import NetworkingChat from 'src/components/NetworkingChat';\r\n import IndustryToastManager from 'src/components/Toasts/IndustryToastManager';\r\n import NewVersionToast from 'src/components/Toasts/NewVersionToast';\r\n import { constants } from 'src/constants';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n import { consoleColors } from 'src/utils/console-color';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import Footer from './Footer/Footer';\r\n import Navbar from './Navbar/Navbar';\r\n\r\n export default {\r\n name: 'EventWrapper',\r\n mixins: [hybridEventMixin],\r\n props: {\r\n showHeader: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n showFooter: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n enableNotifications: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n components: {\r\n Navbar,\r\n Footer,\r\n ChannelModal,\r\n MediaModal,\r\n NewVersionToast,\r\n IndustryToastManager,\r\n NetworkingChat,\r\n },\r\n data() {\r\n return {\r\n isMounted: false,\r\n chatBot: null,\r\n inView: true,\r\n };\r\n },\r\n computed: {\r\n // Timeline status data attribute\r\n timelineExpandedData() {\r\n return this.isTimelineExpanded ? 'expanded' : 'collapsed';\r\n },\r\n isLiveMode() {\r\n return !this.preCongressMode && !this.postCongressMode;\r\n },\r\n ...mapGetters(['appVersion', 'isLogged', 'currentUser', 'isMediaModalOpen', 'isTimelineExpanded']),\r\n ...mapState({\r\n appVersion: (state) => state.app.version,\r\n isLoading: (state) => state.app.isLoading,\r\n eventId: (state) => state.app.eventId,\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n eventRoute: (state) => state.app.eventRoute,\r\n cmsCacheVersion: (state) => state.app.cmsCacheVersion,\r\n chatParticipantConfig: (state) => state.app.chatParticipantConfig,\r\n userInfo: (state) => state.app.userInfo,\r\n }),\r\n /*\r\n isSchedulePage() {\r\n return this.$route.path === `/${this.eventRoute}/schedule` || this.$route.path === `/${this.eventRoute}/schedule-poc`;\r\n },\r\n */\r\n isMobileAppPage() {\r\n return this.$route.path.startsWith(`/${this.eventRoute}/${constants.ROUTE_MOBILE_APP}`);\r\n },\r\n isNetworkingMessagePage() {\r\n return (\r\n this.chatParticipantConfig && this.chatParticipantConfig.route && this.$route.path === `/${this.eventRoute}/${this.chatParticipantConfig.route}/messages`\r\n );\r\n //this.$route.path === `/${this.eventRoute}/${constants.ROUTE_NETWORKING_MESSAGES}`;\r\n },\r\n isNetworkingEnabled() {\r\n return this.chatParticipantConfig && this.chatParticipantConfig.eventId && this.chatParticipantConfig.eventId == this.eventId;\r\n },\r\n hasNetworkingAccess() {\r\n return this.chatParticipantConfig && this.chatParticipantConfig.route && this.chatParticipantConfig.networkingChatAgreement;\r\n },\r\n isHomePage() {\r\n return this.$route.path === `/${this.eventRoute}` || this.$route.path === `/${this.eventRoute}/` || this.$route.path === `/${this.eventRoute}/home`;\r\n },\r\n isPageWithoutTimeline() {\r\n const pagesWithoutTimeline = [\r\n constants.ROUTE_SCHEDULE,\r\n constants.ROUTE_NETWORKING_SEARCH,\r\n constants.ROUTE_NETWORKING_MESSAGES,\r\n constants.ROUTE_NETWORKING_HOT_DISCUSSIONS,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_PRE_HOME}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_HAPPENING_NOW}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_INTERACTIVITY}`,\r\n ];\r\n return pagesWithoutTimeline.map((x) => `/${this.eventRoute}/${x}`).includes(this.$route.path);\r\n /*\r\n let isPageWithoutTimeline = false;\r\n for (let page of pagesWithoutTimeline) {\r\n if (this.$route.path === `/${this.eventRoute}/${page}`) {\r\n isPageWithoutTimeline = true;\r\n break;\r\n }\r\n }\r\n return isPageWithoutTimeline;\r\n */\r\n },\r\n isChatbotEnabled() {\r\n return this.eventId == 946 && !this.preCongressMode && !this.postCongressMode;\r\n },\r\n smartBannerMeta() {\r\n require('smartbanner.js/dist/smartbanner.min.css');\r\n require('smartbanner.js/dist/smartbanner.min.js');\r\n if (process.env.VUE_APP_ENABLE_SMART_BANNER === 'true' && !this.isMobileAppPage) {\r\n switch (this.eventId) { \r\n case constants.EHRA_2025_EVENT_ID:\r\n return constants.EHRA_2025_SMART_BANNER_META; \r\n case constants.PREV_2025_EVENT_ID:\r\n return constants.PREV_2025_SMART_BANNER_META; \r\n default:\r\n return constants.NO_BANNER_SMART_BANNER_META;\r\n }\r\n } else {\r\n console.log('Smart banner is disabled');\r\n return constants.NO_BANNER_SMART_BANNER_META;\r\n }\r\n },\r\n browserTimeZone() {\r\n return DateHelper.browserTimeZone();\r\n },\r\n },\r\n watch: {\r\n $route(to) {\r\n if (window && window.__sharethis__) {\r\n window.__sharethis__.href = `${window.location.host}${to.fullPath}`;\r\n }\r\n //console.log(`Route changed from ${from.path} to ${to.path}`);\r\n //console.log(`EventWrapper - this.isTimelineExpanded ${this.isTimelineExpanded}`)\r\n //console.log(`EventWrapper - $route.query.isTimelineExpanded ${this.$route.query.isTimelineExpanded}`)\r\n //console.log(`EventWrapper - this.$route.query.isTimelineExpanded == true ${this.$route.query.isTimelineExpanded == 'true'}`)\r\n //if (from.path !== to.path && this.isTimelineExpanded && this.$route.query.isTimelineExpanded != 'true') this.toggleTimeLine();\r\n //else if (!this.isTimelineExpanded && this.$route.query.isTimelineExpanded == 'true') this.toggleTimeLine();\r\n },\r\n },\r\n\r\n metaInfo() {\r\n return { meta: this.smartBannerMeta };\r\n },\r\n async mounted() {\r\n if (this.isLogged) {\r\n MediaApiService.setHeader();\r\n\r\n //DataLayer\r\n this.$gtm.push({ event: 'logEscId', escid: this.currentUser.escId });\r\n\r\n if (this.$appInsights) {\r\n const logEscIdProps = { escId: this.currentUser.escId };\r\n console.info(`%cAppInsights: logEscId ${JSON.stringify(logEscIdProps)}`, consoleColors.insights);\r\n this.$appInsights?.trackEvent({ name: 'logEscId', properties: logEscIdProps });\r\n }\r\n }\r\n\r\n await this.loadEventConfiguration();\r\n\r\n try {\r\n await this.$loadScript(`https://app.storyblok.com/f/storyblok-v2-latest.js?t=${getStoryBlokPreviewToken()}`);\r\n await this.loadEventCmsConfiguration();\r\n } catch (err) {\r\n console.error('A fatal error has occurred regarding Storyblok', err);\r\n }\r\n\r\n if (!this.isMobileAppPage) {\r\n try {\r\n await this.$loadScript(\r\n 'https://platform-api.sharethis.com/js/sharethis.js#property=64a2c986f57abe0019c4e0f6&product=sticky-share-buttons&source=platform'\r\n );\r\n } catch (err) {\r\n console.error('A fatal error has occurred regarding sharethis', err);\r\n }\r\n }\r\n\r\n await this.loadUserChatParticipantConfiguration();\r\n if (this.isChatbotEnabled) {\r\n this.chatBot = new SfChatBot(this.currentUser);\r\n this.chatBot.load();\r\n }\r\n await this.loadUserInfo();\r\n this.isMounted = true;\r\n if (this.isLogged) {\r\n // Fetching favorites...\r\n this.$store.dispatch(FETCH_FAVS, this.eventId);\r\n }\r\n\r\n //console.log(`EventWrapper - this.isTimelineExpanded & ${this.isTimelineExpanded}`)\r\n //console.log(`EventWrapper - $route.query.isTimelineExpanded ${this.$route.query.isTimelineExpanded}`)\r\n //if (this.isTimelineExpanded && this.$route.query.isTimelineExpanded != 1) this.toggleTimeLine();\r\n //else if (!this.isTimelineExpanded && this.$route.query.isTimelineExpanded == 1) this.toggleTimeLine();\r\n\r\n },\r\n methods: {\r\n generateRouterKey() {\r\n return this.preCongressMode.toString().concat(this.postCongressMode.toString());\r\n },\r\n async loadUserChatParticipantConfiguration() {\r\n /*\r\n let data = await MediaApiService.getUserParticipantChatConfig();\r\n //console.log(`chatParticipantconfig ${JSON.stringify(data)}`);\r\n // Dispatching chatParticipantconfig in store...\r\n this.$store.commit(SET_CHAT_PARTICIPANT_CONFIG, data);\r\n */\r\n await MediaApiService.getUserParticipantChatConfig(this.eventId).then(({ data }) => {\r\n if (data) {\r\n //console.log(`chatParticipantconfig data ${JSON.stringify(data)}`);\r\n this.$store.commit(SET_CHAT_PARTICIPANT_CONFIG, data);\r\n //console.log(`chatParticipantconfig ${JSON.stringify(this.chatParticipantConfig)}`);\r\n }\r\n });\r\n },\r\n\r\n async loadUserInfo() {\r\n //console.log(this.eventId);\r\n await MediaApiService.GetUserInfo(this.eventId).then(({ data }) => {\r\n if (data) {\r\n this.$store.commit(SET_USER_INFO, data);\r\n }\r\n });\r\n },\r\n\r\n async loadEventCmsConfiguration() {\r\n const eventRouteToLower = this.eventRoute.toLowerCase();\r\n\r\n const storyblokClient = getStoryBlokClient();\r\n\r\n //console.log(`cmsCacheVersion in config ${this.cmsCacheVersion}`);\r\n // retrieving storyblok config story...\r\n if (!this.cmsCacheVersion) {\r\n const { data: sbConfigData } = await storyblokClient.get(`cdn/spaces/me`);\r\n\r\n const sbVersion = sbConfigData?.space?.version ?? 0;\r\n this.$store.commit(SET_CMS_CACHE_VERSION, sbVersion);\r\n }\r\n\r\n const isInEditorPreview = isInStoryBlokEditorPreview();\r\n //console.log(`EventWrapper - isInEditorPreview ${isInEditorPreview}`);\r\n\r\n // retrieving event config story...\r\n const { data: configData } = await storyblokClient.get(`cdn/stories/${eventRouteToLower}/config`, {\r\n cv: !isInEditorPreview ? this.cmsCacheVersion : undefined,\r\n version: !isInEditorPreview ? 'published' : 'draft',\r\n });\r\n const configStoryData = configData.story.content;\r\n this.$store.commit(SET_CONF_CMS_DATA, configStoryData);\r\n\r\n // retrieving event home story...\r\n const { data: homeData } = await storyblokClient.get(`cdn/stories/${eventRouteToLower}`, {\r\n cv: !isInEditorPreview ? this.cmsCacheVersion : undefined,\r\n version: !isInEditorPreview ? 'published' : 'draft',\r\n });\r\n const homeStoryData = homeData.story.content;\r\n this.$store.commit(SET_HOME_CMS_DATA, homeStoryData);\r\n },\r\n async loadEventConfiguration() {\r\n // DataLayer\r\n this.$gtm.push({ eventId: this.eventId });\r\n\r\n // Setting document title...\r\n document.title = this.eventBaseTitle;\r\n\r\n // Injecting congress theme...\r\n this.injectCongressTheme();\r\n\r\n setTimeout(() => {\r\n this.$store.commit(SET_IS_LOADING, false);\r\n }, 500);\r\n\r\n // Refreshing banners...\r\n // this.refreshBanners();\r\n },\r\n injectCongressTheme() {\r\n const head = document.head;\r\n const origin = window.location.origin;\r\n\r\n const congressThemeLink = origin.concat(`${process.env.BASE_URL}css/events/${this.eventId}/theme.css?v=${this.appVersion}`);\r\n let congressTheme = document.querySelector(`link[href~='${congressThemeLink}']`);\r\n if (!congressTheme) {\r\n congressTheme = document.createElement('link');\r\n head.appendChild(congressTheme);\r\n congressTheme.rel = 'stylesheet';\r\n congressTheme.type = 'text/css';\r\n congressTheme.onload = () => {\r\n setTimeout(() => cssVars());\r\n };\r\n congressTheme.href = congressThemeLink;\r\n }\r\n\r\n let congressFavicon = document.querySelector(`link[rel~='icon']`);\r\n if (!congressFavicon) {\r\n congressFavicon = document.createElement('link');\r\n congressFavicon.rel = 'icon';\r\n head.appendChild(congressFavicon);\r\n }\r\n\r\n congressFavicon.href = origin.concat(`${process.env.BASE_URL}img/events/${this.eventId}/favicon.png?v=${this.appVersion}`);\r\n },\r\n refreshBanners() {\r\n this.$store.dispatch(FETCH_BANNERS);\r\n },\r\n toggleTimeLine() {\r\n this.$store.dispatch(TOGGLE_TIMELINE);\r\n },\r\n async redirectToDefaultRoute() {\r\n const defaultRoute = getDefaultRoute();\r\n await this.$router.replace(defaultRoute);\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .main-container {\r\n position: relative;\r\n min-height: 70vh;\r\n //padding-bottom: $footer-height; // Padding bottom by footer height\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n .main-container {\r\n padding-bottom: $footer-height-md; // Padding bottom by footer height\r\n }\r\n }\r\n\r\n .spinner-grow {\r\n width: 4rem;\r\n height: 4rem;\r\n }\r\n\r\n .timeInfo {\r\n padding-bottom: 10px;\r\n padding-left: 15px;\r\n font-size: 0.9em;\r\n }\r\n @media (max-width: 992px) {\r\n .sticky-top {\r\n top: -53px;\r\n }\r\n }\r\n @include media-breakpoint-down(sm) {\r\n .sticky-top {\r\n top: -70px;\r\n }\r\n }\r\n @media (min-width: 992px) {\r\n .sticky-top {\r\n top: -70px;\r\n }\r\n\r\n .sticky-top:has(.subnav__collapsed) {\r\n height: 180px;\r\n backdrop-filter: blur(16px);\r\n }\r\n\r\n .sticky-top:has(.subnav__collapsed) + .timeLine {\r\n color: blue !important;\r\n }\r\n }\r\n\r\n /*v-tour style */\r\n ::v-deep .v-step__header,\r\n ::v-deep .v-step,\r\n ::v-deep .v-step__arrow--dark:before {\r\n background-color: #000 !important;\r\n }\r\n\r\n ::v-deep .v-step {\r\n border-radius: 1rem !important;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.6) !important;\r\n }\r\n\r\n ::v-deep .v-step__header {\r\n border-top-left-radius: 1rem !important;\r\n border-top-right-radius: 1rem !important;\r\n }\r\n\r\n ::v-deep .v-step__button {\r\n padding: 0.335rem 1rem !important;\r\n border: 2px solid #fff !important;\r\n border-radius: 50px !important;\r\n height: auto !important;\r\n }\r\n\r\n ::v-deep .v-tour__target--highlighted {\r\n z-index: 3 !important;\r\n border-radius: 50px !important;\r\n @media (max-width: 768px) {\r\n z-index: 10000 !important;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EventWrapper.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EventWrapper.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EventWrapper.vue?vue&type=template&id=20036718&scoped=true\"\nimport script from \"./EventWrapper.vue?vue&type=script&lang=js\"\nexport * from \"./EventWrapper.vue?vue&type=script&lang=js\"\nimport style0 from \"./EventWrapper.vue?vue&type=style&index=0&id=20036718&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20036718\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('router-view')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <!-- RouterView -->\r\n <router-view />\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'PartnerWrapper',\r\n components: {},\r\n data() {\r\n return {};\r\n },\r\n computed: {},\r\n watch: {},\r\n mounted() {},\r\n methods: {},\r\n};\r\n</script>\r\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PartnerWrapper.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PartnerWrapper.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PartnerWrapper.vue?vue&type=template&id=e82c6752\"\nimport script from \"./PartnerWrapper.vue?vue&type=script&lang=js\"\nexport * from \"./PartnerWrapper.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","//import { consoleColors } from 'src/utils/console-color.js';\r\n//import { constants } from 'src/constants';\r\nimport { router } from 'src/router/index.js';\r\nimport { store } from 'src/store';\r\n\r\nimport { getDefaultRoute } from 'src/router/default';\r\nimport { MediaApiService } from 'src/services/media-api';\r\nimport { SET_EVENT_CONFIG } from 'src/store/mutations';\r\n\r\nasync function redirectToDefaultRoute() {\r\n const defaultRoute = getDefaultRoute();\r\n await router.replace(defaultRoute);\r\n}\r\n\r\nexport async function loadEventConfiguration(to) {\r\n const eventRoute = to.params?.eventRoute;\r\n //console.log(\"🚀 ~ file: eventConfig.js ~ line 17 ~ loadEventConfiguration ~ eventRoute\", eventRoute)\r\n if (!eventRoute || eventRoute.trim() === '') {\r\n await redirectToDefaultRoute();\r\n return;\r\n }\r\n\r\n try {\r\n const { data } = await MediaApiService.getConfig(eventRoute);\r\n\r\n if (!data) return; // TODO: Redirect to an error page OR Throw ?...\r\n //console.log(\"🚀 ~ file: eventConfig.js ~ line 26 ~ loadEventConfiguration ~ data\", data)\r\n\r\n // Parsing and propagating event config...\r\n const eventConfig = {\r\n eventRoute,\r\n escEventId: data.escEventId,\r\n eventId: data.eventId,\r\n eventBaseTitle: data.basePageTitle,\r\n eventStartDate: data.eventStartDate,\r\n eventEndDate: data.eventEndDate,\r\n preCongressMode: data.preCongressMode,\r\n postCongressMode: data.postCongressMode,\r\n ressourcesMovedTo365: data.ressourcesMovedTo365,\r\n brightcoveAccountId: data.brightcoveAccountId,\r\n brightcovePlayerId: data.brightcovePlayerId,\r\n registrationLink: data.registrationLink,\r\n cmsEndpoint: data.cmsEndpoint,\r\n cmsCacheVersion: data.cmsCacheVersion,\r\n widgetsParameters: JSON.parse(data.widgetsParameters),\r\n industryStandsSearch: data.industryStandsSearch,\r\n indexAbstracts: data.indexAbstracts,\r\n indexIndustries: data.indexIndustries,\r\n indexLiveSessions: data.indexLiveSessions,\r\n indexOnDemandSessions: data.indexOnDemandSessions,\r\n indexSpeakers: data.indexSpeakers,\r\n locationTypeId: data.locationTypeId,\r\n location: data.location,\r\n locationType : data.locationType,\r\n organiserName : data.organiserName,\r\n eventName : data.eventName,\r\n locationCity : data.locationCity\r\n };\r\n //console.log(eventConfig)\r\n store.commit(SET_EVENT_CONFIG, eventConfig);\r\n } catch (err) {\r\n const response = err?.response;\r\n console.error('An error has occurred', err);\r\n if (response && response.status === 404) {\r\n //console.log('BAD EVENT ROUTE');\r\n await redirectToDefaultRoute();\r\n return;\r\n } else {\r\n // TODO: Redirect to an error page...\r\n }\r\n }\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',[_c('Interactivity',{attrs:{\"mode\":\"Live\",\"votingFirst\":false,\"Ismobile\":true}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bgEvent\"},[_c('b-col',{staticClass:\"pre-home__bg pt-5 d-flex justify-content-left\",style:({ backgroundImage: `url('${_vm.publicPath}img/events/${_vm.eventId}/pre-home-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"bgGradient\"}),_c('h3',{staticClass:\"liveTitle\"},[_c('div',{staticClass:\"d-inline-flex\"},[_c('span',{staticClass:\"material-icons-round\"},[_vm._v(\" sensors \")]),_vm._v(\" Interactive sessions in \"+_vm._s(_vm.locationCity))])])]),_c('div',[(_vm.isLive)?_c('div',[_c('b-tabs',{attrs:{\"content-class\":\"mt-3 pb-4\",\"justified\":\"\"}},[_c('b-tab',{attrs:{\"active\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"channeltype-row__text pr-3\"},[_c('i',{staticClass:\"las la-landmark la-6x mr-2\"}),_vm._v(\" in \"+_vm._s(_vm.locationCity))])]},proxy:true}],null,false,2997091418)},[(!_vm.isLoading && (!_vm.sessions || _vm.sessions.length == 0))?_c('div',[_c('b-alert',{attrs:{\"show\":_vm.postCongressMode,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" It was a pleasure to welcome you to \"+_vm._s(_vm.eventBaseTitle)+\". \")],1),_c('b-alert',{attrs:{\"show\":!_vm.postCongressMode,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" There are no more interactive sessions today. \")],1)],1):_vm._e(),(!_vm.isLoading && _vm.isLive && !_vm.postCongressMode && _vm.sessions && _vm.sessions.length > 0)?_c('div',{staticClass:\"pb-4 mb-4\"},[_c('div',{staticClass:\"text-left pb-2\"},[_c('span',{staticClass:\"timeline-label__text\"},[_vm._v(\"Happening Now\")])]),_c('b-alert',{attrs:{\"show\":!_vm.isLoading && _vm.isLive && !_vm.postCongressMode && _vm.isCommingSession,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" There are currently no interactive sessions taking place. \")],1),(!_vm.isLoading && _vm.sessions && _vm.sessions.length > 0 && !_vm.isCommingSession)?_c('b-row',{attrs:{\"no-gutters\":\"\"}},_vm._l((_vm.sessions),function(session){return _c('b-col',{key:session.id,staticClass:\"pb-2 pb-md-4 px-1 px-md-2 mb-3\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode,\"forceOnlineChannel\":false,\"forceProgress\":true,\"hideWatchButton\":true,\"showVoteButton\":true,\"showAskQuestionButton\":true,\"isLiveSession\":true,\"Ismobile\":_vm.Ismobile,\"interactivity\":true}})],1)}),1):_vm._e()],1):_vm._e(),(!_vm.isLoading && _vm.isLive && !_vm.postCongressMode && _vm.sessions && _vm.sessions.length > 0)?_c('div',[(_vm.isCommingSession)?_c('div',{staticClass:\"text-left pb-2\"},[_c('span',{staticClass:\"timeline-label__text\"},[_vm._v(\"Coming Next\")])]):_vm._e(),(!_vm.isLoading && _vm.sessions && _vm.sessions.length > 0 && _vm.isCommingSession)?_c('b-row',{attrs:{\"no-gutters\":\"\"}},_vm._l((_vm.sessions),function(session){return _c('b-col',{key:session.id,staticClass:\"pb-2 pb-md-4 px-1 px-md-2 mb-3\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":\"Coming\",\"forceOnlineChannel\":false,\"forceProgress\":true,\"hideWatchButton\":true,\"showVoteButton\":true,\"showAskQuestionButton\":true,\"isLiveSession\":false,\"Ismobile\":_vm.Ismobile,\"interactivity\":true}})],1)}),1):_vm._e()],1):_vm._e()])],1)],1):_vm._e(),(_vm.isLoading)?_c('b-row',{attrs:{\"no-gutters\":\"\"}},_vm._l((4),function(index){return _c('b-col',{key:index,staticClass:\"pb-2 pb-md-4 px-1 px-md-2 mb-3\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"3\"}},[_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"320px\"}})],1)}),1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"bgEvent\">\r\n <b-col\r\n cols=\"12\"\r\n class=\"pre-home__bg pt-5 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('${publicPath}img/events/${eventId}/pre-home-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"bgGradient\"></div>\r\n <h3 class=\"liveTitle\">\r\n <div class=\"d-inline-flex\"><span class=\"material-icons-round\"> sensors </span> Interactive sessions in {{ locationCity }}</div>\r\n </h3>\r\n </b-col>\r\n <div>\r\n <!-- TABS TO SELECT ONSITE OR ONLINE LISTING -->\r\n <div v-if=\"isLive\">\r\n <b-tabs content-class=\"mt-3 pb-4\" justified>\r\n <b-tab active>\r\n <template #title>\r\n <span class=\"channeltype-row__text pr-3\"><i class=\"las la-landmark la-6x mr-2\"></i> in {{ locationCity }}</span>\r\n </template>\r\n\r\n <!--No live and no comming next sessions -->\r\n <div v-if=\"!isLoading && (!sessions || sessions.length == 0)\">\r\n <!-- After Congress -->\r\n <b-alert :show=\"postCongressMode\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n It was a pleasure to welcome you to {{ eventBaseTitle }}.\r\n </b-alert>\r\n <!-- During Congress -->\r\n <b-alert :show=\"!postCongressMode\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n There are no more interactive sessions today.\r\n </b-alert>\r\n </div>\r\n\r\n <!-- Happening Now -->\r\n <div v-if=\"!isLoading && isLive && !postCongressMode && sessions && sessions.length > 0\" class=\"pb-4 mb-4\">\r\n <div class=\"text-left pb-2\">\r\n <span class=\"timeline-label__text\">Happening Now</span>\r\n </div>\r\n <b-alert :show=\"!isLoading && isLive && !postCongressMode && isCommingSession\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n There are currently no interactive sessions taking place.\r\n </b-alert>\r\n\r\n <b-row v-if=\"!isLoading && sessions && sessions.length > 0 && !isCommingSession\" no-gutters>\r\n <b-col cols=\"12\" md=\"4\" lg=\"3\" v-for=\"session in sessions\" :key=\"session.id\" class=\"pb-2 pb-md-4 px-1 px-md-2 mb-3\">\r\n <SessionCard\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n :mode=\"mode\"\r\n :forceOnlineChannel=\"false\"\r\n :forceProgress=\"true\"\r\n :hideWatchButton=\"true\"\r\n :showVoteButton=\"true\"\r\n :showAskQuestionButton=\"true\"\r\n :isLiveSession=\"true\"\r\n :Ismobile=\"Ismobile\"\r\n :interactivity=\"true\"\r\n ></SessionCard>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n\r\n <!-- Comming Next -->\r\n <div v-if=\"!isLoading && isLive && !postCongressMode && sessions && sessions.length > 0\">\r\n <div v-if=\"isCommingSession\" class=\"text-left pb-2\">\r\n <span class=\"timeline-label__text\">Coming Next</span>\r\n </div>\r\n <b-row v-if=\"!isLoading && sessions && sessions.length > 0 && isCommingSession\" no-gutters>\r\n <b-col cols=\"12\" md=\"4\" lg=\"3\" v-for=\"session in sessions\" :key=\"session.id\" class=\"pb-2 pb-md-4 px-1 px-md-2 mb-3\">\r\n <SessionCard\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n mode=\"Coming\"\r\n :forceOnlineChannel=\"false\"\r\n :forceProgress=\"true\"\r\n :hideWatchButton=\"true\"\r\n :showVoteButton=\"true\"\r\n :showAskQuestionButton=\"true\"\r\n :isLiveSession=\"false\"\r\n :Ismobile=\"Ismobile\"\r\n :interactivity=\"true\"\r\n ></SessionCard>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </b-tab>\r\n </b-tabs>\r\n </div>\r\n <!-- END TABS -->\r\n <!-- LISTING -->\r\n <!-- IsLoadingTemplate -->\r\n <b-row v-if=\"isLoading\" no-gutters>\r\n <b-col cols=\"12\" md=\"4\" lg=\"3\" v-for=\"index in 4\" :key=\"index\" class=\"pb-2 pb-md-4 px-1 px-md-2 mb-3\">\r\n <b-skeleton-img no-aspect height=\"320px\"></b-skeleton-img>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import { constants } from 'src/constants';\r\n import { MediaApiService } from 'src/services/media-api';\r\n // import Treeselect from '@riophae/vue-treeselect';\r\n // import '@riophae/vue-treeselect/dist/vue-treeselect.css';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n import SessionCard from 'src/components/Cards/SessionCard';\r\n\r\n export default {\r\n name: 'Interactivity',\r\n mixins: [hybridEventMixin],\r\n props: {\r\n // eventId: Number,\r\n mode: {\r\n type: String,\r\n default: 'Live',\r\n validator: function (value) {\r\n // The value must match one of these strings\r\n return value !== null && ['Live'].indexOf(value) !== -1;\r\n },\r\n },\r\n votingFirst: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n Ismobile: Boolean,\r\n },\r\n components: {\r\n SessionCard,\r\n // Treeselect\r\n },\r\n data() {\r\n return {\r\n isLoading: true,\r\n //comingSoon: '',\r\n isCommingSession: false,\r\n isLoadingMore: false,\r\n sessions: [],\r\n skip: 0,\r\n loadMoreVisible: false,\r\n //newReplaysAvailable: false,\r\n sessionAvailable: false,\r\n happeningNowSessionAvailable: false,\r\n commingNextSessionAvailable: false,\r\n fetchLiveNowSessionsJob: null,\r\n //fetchReplaySessionsJob: null,\r\n //channelValues: null,\r\n //channelOptions: [],\r\n //daysValues: null,\r\n //daysOptions: [],\r\n publicPath: process.env.BASE_URL,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n // confCmsData: state => state.app.confCmsData\r\n }),\r\n isReplay() {\r\n return this.mode == 'Replay';\r\n },\r\n isComing() {\r\n return this.mode == 'Coming';\r\n },\r\n isLive() {\r\n return this.mode == 'Live';\r\n },\r\n poolingLiveSessionsInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_LIVE_SESSIONS_INTERVAL);\r\n },\r\n poolingReplaySessionsInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_REPLAY_SESSIONS_INTERVAL);\r\n },\r\n /*\r\n onlineSessions() {\r\n return this.sessions?.filter((s) => s.isOnline);\r\n },\r\n onsiteSessions() {\r\n return this.sessions?.filter((s) => s.isOnsite);\r\n },\r\n */\r\n channelFilterLabel() {\r\n return this.showChannelOnline ? 'Channels' : 'Rooms';\r\n },\r\n ...mapGetters(['isPoolingEnabled']),\r\n },\r\n watch: {\r\n isPoolingEnabled(enabled) {\r\n if (enabled) {\r\n if (this.isLive) this.fetchLiveNowSessions();\r\n if (this.isComing) this.fetchComingSessions();\r\n if (this.isReplay) this.fetchReplaySessions(); // this.refreshLoadMoreReplayButton();\r\n }\r\n },\r\n },\r\n mounted() {\r\n if (this.isLive) {\r\n this.fetchLiveNowSessions();\r\n\r\n // Polling live sessions...\r\n this.fetchLiveNowSessionsJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n this.fetchLiveNowSessions();\r\n }\r\n }, this.poolingLiveSessionsInterval);\r\n }\r\n\r\n //if (this.isComing) this.fetchComingSessions();\r\n\r\n /*\r\n if (this.isReplay) {\r\n this.getChannelsOptions();\r\n this.getDaysOptions();\r\n\r\n this.fetchReplaySessions();\r\n\r\n // Polling replay sessions...\r\n this.fetchReplaySessionsJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n this.fetchReplaySessions(); //this.refreshLoadMoreReplayButton();\r\n }\r\n }, this.poolingReplaySessionsInterval);\r\n }\r\n */\r\n },\r\n beforeDestroy() {\r\n clearInterval(this.fetchLiveNowSessionsJob);\r\n clearInterval(this.fetchReplaySessionsJob);\r\n },\r\n methods: {\r\n fetchLiveNowSessions() {\r\n //this.isCommingSession = false;\r\n MediaApiService.getAllLiveNowSessions(this.eventId, this.votingFirst, true).then(({ data }) => {\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n let nbSession = data.length;\r\n if (nbSession == 0) {\r\n this.happeningNowSessionAvailable = true;\r\n this.fetchComingSessions();\r\n } else {\r\n this.sessionAvailable = true;\r\n this.happeningNowSessionAvailable = true;\r\n this.commingNextSessionAvailable = false;\r\n this.sessions = data;\r\n this.isCommingSession = false;\r\n }\r\n }\r\n this.isLoading = false;\r\n });\r\n },\r\n fetchComingSessions() {\r\n let coming = true;\r\n this.skip = 0;\r\n MediaApiService.getComingSessions(this.eventId, 0, 0, coming, true).then(({ data }) => {\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n let nbSession = data.length;\r\n if (nbSession == 0) {\r\n this.commingNextSessionAvailable = false;\r\n this.sessionAvailable = false;\r\n this.sessions = null;\r\n this.isCommingSession = false;\r\n } else {\r\n this.sessionAvailable = true;\r\n this.commingNextSessionAvailable = true;\r\n this.sessions = data;\r\n this.isCommingSession = true;\r\n }\r\n /*\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n */\r\n }\r\n });\r\n },\r\n /*\r\n fetchReplaySessions() {\r\n //console.log('fetchReplaySessions');\r\n\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n\r\n //No replays displayed fetch replays from 0\r\n if (!this.sessionAvailable) {\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n this.skip,\r\n constants.LOAD_MORE_SESSIONS_COUNT + 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = data;\r\n this.sessionAvailable = nbSession > 0;\r\n if (this.sessionAvailable) {\r\n this.isCommingSession = true;\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n } else {\r\n this.isCommingSession = false;\r\n }\r\n }\r\n });\r\n }\r\n //At least one replay displayed, check for new replays\r\n else {\r\n //console.log('fetchcheckNewReplaysAvailable');\r\n if (!this.isLoading) this.checkNewReplaysAvailable();\r\n }\r\n },\r\n */\r\n /*\r\n //Check if new replays available comparing 1st dispayed item and 1st iem from fetch\r\n checkNewReplaysAvailable() {\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n 0,\r\n 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n if (data && data.length > 0) {\r\n //console.log(data[0].id);\r\n //console.log(this.sessions[0].id);\r\n this.newReplaysAvailable = data[0].id != this.sessions[0].id;\r\n }\r\n });\r\n },\r\n */\r\n /*\r\n //Refresh replays list. Resets sessionAvailable, skip and dissmiss new replays alert\r\n refreshReplays() {\r\n //console.log('refreshReplays');\r\n this.isLoading = true;\r\n this.sessionAvailable = false;\r\n this.skip = 0;\r\n this.newReplaysAvailable = false;\r\n this.fetchReplaySessions();\r\n },\r\n */\r\n /*\r\n refreshLoadMoreReplayButton() {\r\n MediaApiService.getReplaySessions(this.eventId, this.skip, 1).then(({ data }) => {\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n this.loadMoreVisible = data.length > 0;\r\n }\r\n });\r\n },\r\n */\r\n loadMore() {\r\n if (this.mode == 'Live') {\r\n this.loadMoreLiveNowSessions();\r\n }\r\n if (this.mode == 'Coming') {\r\n this.loadMoreComingSessions();\r\n }\r\n if (this.mode == 'Replay') {\r\n this.loadMoreReplaySessions();\r\n }\r\n },\r\n loadMoreLiveNowSessions() {\r\n this.isLoadingMore = true;\r\n MediaApiService.getLiveNowSessions(this.eventId, this.skip, constants.LOAD_MORE_SESSIONS_COUNT + 1, true).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n loadMoreComingSessions() {\r\n this.isLoadingMore = true;\r\n MediaApiService.getComingSessions(this.eventId, this.skip, constants.LOAD_MORE_SESSIONS_COUNT + 1, true).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n /*\r\n loadMoreReplaySessions() {\r\n this.isLoadingMore = true;\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n this.skip,\r\n constants.LOAD_MORE_SESSIONS_COUNT + 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n */\r\n /*\r\n getChannelsOptions() {\r\n MediaApiService.getChannelsOptions(this.eventId).then(({ data }) => {\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n this.channelOptions = data;\r\n }\r\n });\r\n },\r\n */\r\n /*\r\n onTreeSelectInput() {\r\n this.sessionAvailable = false;\r\n this.skip = 0;\r\n this.fetchReplaySessions();\r\n },\r\n */\r\n /*\r\n getDaysOptions() {\r\n MediaApiService.getDaysOptions(this.eventId).then(({ data }) => {\r\n if (data) {\r\n data = data?.filter((s) => s.isOnsite);\r\n this.daysOptions = data;\r\n }\r\n });\r\n },\r\n */\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .pre-home__bg {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n padding-top: 2rem !important;\r\n min-height: 120px;\r\n background-size: 100% !important;\r\n z-index: 0;\r\n }\r\n\r\n .bgGradient {\r\n bottom: -1px;\r\n }\r\n\r\n .tabs {\r\n margin-top: 150px;\r\n position: relative;\r\n }\r\n\r\n .material-icons-round {\r\n font-size: 2rem;\r\n color: red;\r\n margin-right: 0.5rem;\r\n }\r\n\r\n ::v-deep .nav-tabs {\r\n display: none;\r\n }\r\n\r\n .button__load-more {\r\n color: $secondary;\r\n background-color: var(--congress);\r\n border-radius: 6px;\r\n }\r\n\r\n .comming-next__title {\r\n display: inline-block;\r\n background-color: var(--congress);\r\n color: $secondary;\r\n border-radius: 2px;\r\n font-size: 1.2em;\r\n }\r\n\r\n .refresh-list__alert {\r\n cursor: pointer;\r\n }\r\n\r\n .alert_icon {\r\n color: var(--congress-dark);\r\n }\r\n\r\n .channeltype-row__text {\r\n color: $grey-dark;\r\n text-transform: uppercase;\r\n }\r\n /* MOBILE APP STYLE UPDATE */\r\n .bgEvent {\r\n background-repeat: no-repeat;\r\n background-position: top center;\r\n height: 100vh;\r\n }\r\n\r\n .liveTitle {\r\n font-size: 1.7rem;\r\n z-index: 2;\r\n }\r\n\r\n .liveTitle img {\r\n height: 25px;\r\n }\r\n\r\n .bgEvent .card {\r\n border: 0;\r\n }\r\n\r\n .bgEvent .channeltype-row__text {\r\n color: #fff;\r\n text-shadow: 2px 0px 5px rgba(0, 0, 0, 0.25);\r\n }\r\n\r\n .card-body {\r\n padding: 0.75rem 0.5rem;\r\n }\r\n\r\n .channeltype-row__text {\r\n color: #000;\r\n }\r\n\r\n .channeltype-row__text i {\r\n position: relative;\r\n top: 3px;\r\n }\r\n /* tabs*/\r\n .nav-tabs .nav-link.active .channeltype-row__text {\r\n opacity: 1;\r\n }\r\n\r\n .nav-tabs .nav-link .channeltype-row__text {\r\n opacity: 0.6;\r\n }\r\n\r\n .tab-pane.active {\r\n min-width: calc(100vw - 2rem);\r\n }\r\n .timeline-label__text {\r\n color: #000;\r\n text-transform: uppercase;\r\n font-size: 1.1em;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Interactivity.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Interactivity.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Interactivity.vue?vue&type=template&id=089173c8&scoped=true\"\nimport script from \"./Interactivity.vue?vue&type=script&lang=js\"\nexport * from \"./Interactivity.vue?vue&type=script&lang=js\"\nimport style0 from \"./Interactivity.vue?vue&type=style&index=0&id=089173c8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"089173c8\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div>\r\n <!-- Happening now -->\r\n <div>\r\n <Interactivity mode=\"Live\" :votingFirst=\"false\" :Ismobile=\"true\"></Interactivity>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import Interactivity from 'src/components/Blocks/Interactivity';\r\n\r\n export default {\r\n name: 'MobileAppInteractivity',\r\n components: {\r\n Interactivity,\r\n },\r\n data() {\r\n return {};\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n }),\r\n },\r\n mounted() {},\r\n methods: {},\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Interactivity.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Interactivity.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Interactivity.vue?vue&type=template&id=129e3f88&scoped=true\"\nimport script from \"./Interactivity.vue?vue&type=script&lang=js\"\nexport * from \"./Interactivity.vue?vue&type=script&lang=js\"\nimport style0 from \"./Interactivity.vue?vue&type=style&index=0&id=129e3f88&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"129e3f88\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',[_c('div',{staticClass:\"bgEvent\"},[_c('b-col',{staticClass:\"pre-home__bg pt-5 d-flex justify-content-left\",style:({ backgroundImage: `url('${_vm.publicPath}img/events/${_vm.eventId}/pre-home-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"bgGradient\"}),_c('h3',{staticClass:\"liveTitle\"},[_c('div',{staticClass:\"d-inline-flex\"},[_c('span',{staticClass:\"material-icons-round\"},[_vm._v(\" sensors \")]),_vm._v(\" Interactive sessions in \"+_vm._s(_vm.locationCity))])])]),_c('div',[_c('div',[_c('b-tabs',{attrs:{\"content-class\":\"mt-3 pb-4\",\"justified\":\"\"}},[_c('b-tab',{attrs:{\"active\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"channeltype-row__text pr-3\"},[_c('i',{staticClass:\"las la-landmark la-6x mr-2\"}),_vm._v(\" in \"+_vm._s(_vm.locationCity))])]},proxy:true}])},[_c('div',{staticClass:\"pb-4 mb-4\"},[_c('div',{staticClass:\"text-left pb-2\"},[_c('span',{staticClass:\"timeline-label__text\"},[_vm._v(\"Happening Now\")])]),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"pb-2 pb-md-4 px-1 px-md-2 mb-3\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":_vm.session,\"isLive\":_vm.session.isLive,\"mode\":\"Live\",\"forceOnlineChannel\":false,\"forceProgress\":true,\"hideWatchButton\":true,\"showVoteButton\":true,\"showAskQuestionButton\":true,\"isLiveSession\":true,\"Ismobile\":true,\"interactivity\":true}})],1)],1)],1)])],1)],1)])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <div>\r\n <div class=\"bgEvent\">\r\n <b-col\r\n cols=\"12\"\r\n class=\"pre-home__bg pt-5 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('${publicPath}img/events/${eventId}/pre-home-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"bgGradient\"></div>\r\n <h3 class=\"liveTitle\">\r\n <div class=\"d-inline-flex\"><span class=\"material-icons-round\"> sensors </span> Interactive sessions in {{ locationCity }}</div>\r\n </h3>\r\n </b-col>\r\n <div>\r\n <!-- TABS TO SELECT ONSITE OR ONLINE LISTING -->\r\n <div>\r\n <b-tabs content-class=\"mt-3 pb-4\" justified>\r\n <b-tab active>\r\n <template #title>\r\n <span class=\"channeltype-row__text pr-3\"><i class=\"las la-landmark la-6x mr-2\"></i> in {{ locationCity }}</span>\r\n </template>\r\n\r\n <!-- Happening Now -->\r\n <div class=\"pb-4 mb-4\">\r\n <div class=\"text-left pb-2\">\r\n <span class=\"timeline-label__text\">Happening Now</span>\r\n </div>\r\n <b-row no-gutters>\r\n <b-col cols=\"12\" md=\"4\" lg=\"3\" class=\"pb-2 pb-md-4 px-1 px-md-2 mb-3\">\r\n <SessionCard\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n mode=\"Live\"\r\n :forceOnlineChannel=\"false\"\r\n :forceProgress=\"true\"\r\n :hideWatchButton=\"true\"\r\n :showVoteButton=\"true\"\r\n :showAskQuestionButton=\"true\"\r\n :isLiveSession=\"true\"\r\n :Ismobile=\"true\"\r\n :interactivity=\"true\"\r\n ></SessionCard>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </b-tab>\r\n </b-tabs>\r\n </div>\r\n <!-- END TABS -->\r\n <!-- LISTING -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import SessionCard from 'src/components/Cards/SessionCard';\r\n //import { constants } from 'src/constants';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n\r\n export default {\r\n name: 'MobileAppInteractivityDemo',\r\n mixins: [hybridEventMixin],\r\n components: {\r\n SessionCard,\r\n },\r\n data() {\r\n return {\r\n publicPath: process.env.BASE_URL,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventStartDate: (state) => state.app.eventStartDate,\r\n eventEndDate: (state) => state.app.eventEndDate,\r\n locationCity: (state) => state.app.locationCity \r\n }),\r\n session() {\r\n return {\r\n recoUUID: null,\r\n id: 12266,\r\n title: 'Common conundrums in the intensive cardiac care unit: an interactive session',\r\n subTitle: '',\r\n startTime: this.eventStartDate,\r\n endTime: this.eventStartDate+3600000,\r\n channel: null,\r\n channelOrder: null,\r\n channelCode: null,\r\n isLive: false,\r\n isOnDemand: false,\r\n channelId: null,\r\n encryptedChannelId: null,\r\n isInInterlude: false,\r\n hasExternalLink: false,\r\n scientificSessionId: 45315,\r\n isIndustry: false,\r\n tutorialLink: null,\r\n channelOnSite: this.locationCity,\r\n channelOnSiteId: 1055,\r\n channelOnSiteCode: 'R1',\r\n channelOnSiteOrder: 1,\r\n isOnsite: true,\r\n isOnline: false,\r\n thumbnailURL: null,\r\n sessionType: 'Special Session',\r\n furl: null,\r\n channelFurl: null,\r\n duration: 60.0,\r\n progress: 18.272214058333333,\r\n votingUrl: 'https://escol.escardio.org/interaction/voting/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000',\r\n askQuestionUrl: 'https://escol.escardio.org/interaction/ask-a-question/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/demo',\r\n channelOnSiteDisplayName: this.locationCity,\r\n };\r\n },\r\n },\r\n mounted() {},\r\n methods: {},\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .pre-home__bg {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n padding-top: 2rem !important;\r\n min-height: 120px;\r\n background-size: 100% !important;\r\n z-index: 0;\r\n }\r\n\r\n .bgGradient {\r\n bottom: -1px;\r\n }\r\n\r\n .tabs {\r\n margin-top: 150px;\r\n position: relative;\r\n }\r\n\r\n .material-icons-round {\r\n font-size: 2rem;\r\n color: red;\r\n margin-right: 0.5rem;\r\n }\r\n\r\n ::v-deep .nav-tabs {\r\n display: none;\r\n }\r\n\r\n .button__load-more {\r\n color: $secondary;\r\n background-color: var(--congress);\r\n border-radius: 6px;\r\n }\r\n\r\n .comming-next__title {\r\n display: inline-block;\r\n background-color: var(--congress);\r\n color: $secondary;\r\n border-radius: 2px;\r\n font-size: 1.2em;\r\n }\r\n\r\n .refresh-list__alert {\r\n cursor: pointer;\r\n }\r\n\r\n .alert_icon {\r\n color: var(--congress-dark);\r\n }\r\n\r\n .channeltype-row__text {\r\n color: $grey-dark;\r\n text-transform: uppercase;\r\n }\r\n /* MOBILE APP STYLE UPDATE */\r\n .bgEvent {\r\n background-repeat: no-repeat;\r\n background-position: top center;\r\n height: 100vh;\r\n }\r\n\r\n .liveTitle {\r\n font-size: 1.7rem;\r\n z-index: 2;\r\n }\r\n\r\n .liveTitle img {\r\n height: 25px;\r\n }\r\n\r\n .bgEvent .card {\r\n border: 0;\r\n }\r\n\r\n .bgEvent .channeltype-row__text {\r\n color: #fff;\r\n text-shadow: 2px 0px 5px rgba(0, 0, 0, 0.25);\r\n }\r\n\r\n .card-body {\r\n padding: 0.75rem 0.5rem;\r\n }\r\n\r\n .channeltype-row__text {\r\n color: #000;\r\n }\r\n\r\n .channeltype-row__text i {\r\n position: relative;\r\n top: 3px;\r\n }\r\n /* tabs*/\r\n .nav-tabs .nav-link.active .channeltype-row__text {\r\n opacity: 1;\r\n }\r\n\r\n .nav-tabs .nav-link .channeltype-row__text {\r\n opacity: 0.6;\r\n }\r\n\r\n .tab-pane.active {\r\n min-width: calc(100vw - 2rem);\r\n }\r\n .timeline-label__text {\r\n color: #000;\r\n text-transform: uppercase;\r\n font-size: 1.1em;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InteractivityDemo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InteractivityDemo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InteractivityDemo.vue?vue&type=template&id=77bd547e&scoped=true\"\nimport script from \"./InteractivityDemo.vue?vue&type=script&lang=js\"\nexport * from \"./InteractivityDemo.vue?vue&type=script&lang=js\"\nimport style0 from \"./InteractivityDemo.vue?vue&type=style&index=0&id=77bd547e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77bd547e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('b-row',{staticClass:\"hero__banner\"},[(!_vm.isMobileAppPage && !_vm.isHomePage)?_c('b-col',{staticClass:\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo\"},[_c('h1',[_vm._v(\"My Programme\")]),_c('div',{staticClass:\"eventDate mt-3\"},[_vm._v(\"Your favorite sessions are listed below. Feel free to add them to your own calendar.\")]),_c('div',{staticClass:\"eventDate\"},[_vm._v(\"Please note that the programme times are displayed in local times for \"+_vm._s(_vm.locationEvent)+\".\")])])]):_vm._e()],1),_c('b-container',{staticClass:\"px-5 pb-0\",class:_vm.isTimelineExpanded ? 'd-block d-md-none' : 'd-block',attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('EscBanners')],1)],1),_c('b-row',[_c('b-col',{staticClass:\"pt-3 px-3\",attrs:{\"cols\":\"12\"}},[(!_vm.isLogged)?[_c('LogginWidget',{attrs:{\"headerText\":\"Please login\",\"message\":\"Please sign in to view all your favourite sessions.\"}})]:_c('OverviewTabs')],2)],1),_c('b-row',[_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('IndustryBanners')],1)],1)],1),_c('RecommendationBlock'),_c('RegisterPromoWidget'),_c('div',{staticClass:\"authoredSlidesBlock px-0\"},[_c('h3',{staticClass:\"px-5 mb-3\"},[_vm._v(\"You may also be interested in\")]),_c('AuthoredSlidesBlock')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Banners',{attrs:{\"v-if\":this.escBanners,\"banners\":this.escBanners}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <Banners :v-if=\"this.escBanners\" :banners=\"this.escBanners\" />\r\n</template>\r\n\r\n<script>\r\n import Banners from 'src/components/Banners/Banners';\r\n import { mapState } from 'vuex';\r\n import { DateTime } from 'luxon';\r\n\r\n export default {\r\n name: 'EscBanners',\r\n components: { Banners },\r\n props: {\r\n filter: {\r\n type: String,\r\n default: 'default'\r\n }\r\n },\r\n computed: {\r\n ...mapState({\r\n confCmsData: state => state.app.confCmsData\r\n }),\r\n escBanners() {\r\n const now = DateTime.utc();\r\n const escBanners = this.confCmsData?.banners_blocks?.filter(\r\n x =>\r\n x.banner_position == 'top' &&\r\n DateTime.fromFormat(x.banner_start, 'yyyy-MM-dd HH:mm', { zone: 'utc' }) <= now &&\r\n (!x.banner_end || DateTime.fromFormat(x.banner_end, 'yyyy-MM-dd HH:mm', { zone: 'utc' }) >= now) &&\r\n (x.banner_page?.length == 0 || x.banner_page?.includes(this.filter))\r\n );\r\n\r\n return escBanners;\r\n }\r\n }\r\n };\r\n</script>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EscBanners.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EscBanners.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EscBanners.vue?vue&type=template&id=08c48c97\"\nimport script from \"./EscBanners.vue?vue&type=script&lang=js\"\nexport * from \"./EscBanners.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Banners',{attrs:{\"v-if\":this.industryBanners,\"banners\":this.industryBanners}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <Banners :v-if=\"this.industryBanners\" :banners=\"this.industryBanners\" />\r\n</template>\r\n\r\n<script>\r\n import Banners from 'src/components/Banners/Banners';\r\n import { mapState } from 'vuex';\r\n import { DateTime } from 'luxon';\r\n\r\n export default {\r\n name: 'IndustryBanners',\r\n components: { Banners },\r\n props: {\r\n filter: {\r\n type: String,\r\n default: 'default'\r\n }\r\n },\r\n computed: {\r\n ...mapState({\r\n confCmsData: state => state.app.confCmsData\r\n }),\r\n industryBanners() {\r\n const now = DateTime.utc();\r\n const industryBanners = this.confCmsData?.banners_blocks?.filter(\r\n x =>\r\n x.banner_position == 'bottom' &&\r\n DateTime.fromFormat(x.banner_start, 'yyyy-MM-dd HH:mm', { zone: 'utc' }) <= now &&\r\n (!x.banner_end || DateTime.fromFormat(x.banner_end, 'yyyy-MM-dd HH:mm', { zone: 'utc' }) >= now) &&\r\n (x.banner_page?.length == 0 || x.banner_page?.includes(this.filter))\r\n );\r\n\r\n return industryBanners;\r\n }\r\n }\r\n };\r\n</script>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndustryBanners.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndustryBanners.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndustryBanners.vue?vue&type=template&id=7e4d842c\"\nimport script from \"./IndustryBanners.vue?vue&type=script&lang=js\"\nexport * from \"./IndustryBanners.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.hasBoostedTerms || _vm.hasTrending || _vm.hasPopularity)?_c('b-container',{staticClass:\"mb-5 px-5 recommendationBlock\",attrs:{\"fluid\":\"\"}},[(_vm.hasBoostedTerms)?_c('h3',{staticClass:\"mt-5 mb-3\"},[_c('span',{staticClass:\"material-icons-outlined mr-2\"},[_vm._v(\"workspace_premium\")]),_vm._v(\"Recommended for you\")]):_vm._e(),(_vm.hasBoostedTerms)?_c('b-card-group',{staticClass:\"mb-5\",attrs:{\"deck\":\"\"}},_vm._l((_vm.recommendationData.BoostedTerms.Sessions),function(session){return _c('SessionCard',{key:session.id,staticClass:\"p-0 col-sm-6 col-md-6 col-lg-4 col-xl-3 col-12\",attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode,\"hideWatchButton\":true,\"isLiveSession\":false}})}),1):_vm._e(),(_vm.hasTrending || _vm.hasPopularity)?_c('div',[_c('h3',{staticClass:\"my-3\"},[_c('span',{staticClass:\"material-icons-outlined mr-2\"},[_vm._v(\"workspace_premium\")]),_vm._v(\"Suggested for you\")]),(_vm.hasPopularity)?_c('b-card-group',{staticClass:\"mb-5\",attrs:{\"deck\":\"\"}},_vm._l((_vm.recommendationData.Popularity.Sessions),function(session){return _c('SessionCard',{key:session.id,staticClass:\"p-0 col-sm-6 col-md-6 col-lg-4 col-xl-3 col-12\",attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode,\"hideWatchButton\":true,\"isLiveSession\":false}})}),1):(_vm.hasTrending)?_c('b-card-group',{staticClass:\"mb-5\",attrs:{\"deck\":\"\"}},_vm._l((_vm.recommendationData.Trending.Sessions),function(session){return _c('SessionCard',{key:session.id,staticClass:\"p-0 col-sm-6 col-md-6 col-lg-4 col-xl-3 col-12\",attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode,\"hideWatchButton\":true,\"isLiveSession\":false}})}),1):_vm._e()],1):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-container v-if=\"hasBoostedTerms || hasTrending || hasPopularity\" fluid class=\"mb-5 px-5 recommendationBlock\">\r\n <!-- recommended for you -->\r\n <h3 v-if=\"hasBoostedTerms\" class=\"mt-5 mb-3\"><span class=\"material-icons-outlined mr-2\">workspace_premium</span>Recommended for you</h3>\r\n\r\n <b-card-group v-if=\"hasBoostedTerms\" deck class=\"mb-5\">\r\n <SessionCard\r\n :key=\"session.id\"\r\n v-for=\"session in recommendationData.BoostedTerms.Sessions\"\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n :mode=\"mode\"\r\n :hideWatchButton=\"true\"\r\n :isLiveSession=\"false\"\r\n class=\"p-0 col-sm-6 col-md-6 col-lg-4 col-xl-3 col-12\"\r\n >\r\n </SessionCard>\r\n </b-card-group>\r\n <!-- suggested content -->\r\n <div v-if=\"hasTrending || hasPopularity\">\r\n <h3 class=\"my-3\"><span class=\"material-icons-outlined mr-2\">workspace_premium</span>Suggested for you</h3>\r\n <!-- most popular -->\r\n <b-card-group v-if=\"hasPopularity\" deck class=\"mb-5\">\r\n <SessionCard\r\n :key=\"session.id\"\r\n v-for=\"session in recommendationData.Popularity.Sessions\"\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n :mode=\"mode\"\r\n :hideWatchButton=\"true\"\r\n :isLiveSession=\"false\"\r\n class=\"p-0 col-sm-6 col-md-6 col-lg-4 col-xl-3 col-12\"\r\n >\r\n </SessionCard>\r\n </b-card-group>\r\n <!-- trending now -->\r\n <b-card-group v-else-if=\"hasTrending\" deck class=\"mb-5\">\r\n <SessionCard\r\n :key=\"session.id\"\r\n v-for=\"session in recommendationData.Trending.Sessions\"\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n :mode=\"mode\"\r\n :hideWatchButton=\"true\"\r\n :isLiveSession=\"false\"\r\n class=\"p-0 col-sm-6 col-md-6 col-lg-4 col-xl-3 col-12\"\r\n >\r\n </SessionCard>\r\n </b-card-group>\r\n </div>\r\n </b-container>\r\n</template>\r\n\r\n<script>\r\n import Cookies from 'js-cookie';\r\n import { mapState } from 'vuex';\r\n import { constants } from 'src/constants';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import SessionCard from 'src/components/Cards/SessionCard';\r\n\r\n export default {\r\n name: 'RecommendationBlock',\r\n components: {\r\n SessionCard,\r\n },\r\n data() {\r\n return {\r\n recommendationData: null,\r\n hasTrending: false,\r\n hasBoostedTerms: false,\r\n hasPopularity: false,\r\n mode: 'Coming',\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n eventId: (state) => state.app.eventId,\r\n }),\r\n },\r\n async mounted() {\r\n await this.fetchRecommendations();\r\n },\r\n methods: {\r\n hasUserRecos() {\r\n return this.recommendationData.BoostedTerms && this.recommendationData.BoostedTerms.Sessions && this.recommendationData.BoostedTerms.Sessions.length > 0;\r\n },\r\n hasTrendingRecos() {\r\n return this.recommendationData.Trending && this.recommendationData.Trending.Sessions && this.recommendationData.Trending.Sessions.length > 0;\r\n },\r\n hasPopularRecos() {\r\n return this.recommendationData.Popularity && this.recommendationData.Popularity.Sessions && this.recommendationData.Popularity.Sessions.length > 0;\r\n },\r\n\r\n async fetchRecommendations() {\r\n this.isLoading = true;\r\n const guestUserId = Cookies.get('_dvp');\r\n let fetchRecommendationRequest = constants.ESC365_API_GET_USER_RECOMMENDATIONS;\r\n\r\n if (this.selectedRecommendationType && this.selectedRecommendationType.length > 0)\r\n fetchRecommendationRequest = fetchRecommendationRequest.concat(`&recommendertype=${this.selectedRecommendationType}`);\r\n\r\n if (this.selectedContentType && this.selectedContentType.length > 0)\r\n fetchRecommendationRequest = fetchRecommendationRequest.concat(`&contenttype=${this.selectedContentType}`);\r\n fetchRecommendationRequest = fetchRecommendationRequest.concat(`&partiId=${guestUserId}`);\r\n\r\n fetchRecommendationRequest = fetchRecommendationRequest.concat(`&eventId=${this.eventId}`);\r\n fetchRecommendationRequest = fetchRecommendationRequest.concat(`&nbItems=${4}`);\r\n\r\n const { data: fetchRecommendationData } = await MediaApiService.getRecommendations(fetchRecommendationRequest);\r\n if (!this.selectedRecommendationType && fetchRecommendationData.RecommenderTypesOptions)\r\n this.selectedRecommendationType = fetchRecommendationData.RecommenderTypesOptions[0].value;\r\n if (!this.selectedContentType && fetchRecommendationData.Contenttypes) this.selectedContentType = fetchRecommendationData.Contenttypes[0];\r\n\r\n this.recommendationData = fetchRecommendationData;\r\n this.hasTrending = this.hasTrendingRecos();\r\n this.hasBoostedTerms = this.hasUserRecos();\r\n this.hasPopularity = this.hasPopularRecos();\r\n\r\n if (this.hasTrending) {\r\n const recoId = this.recommendationData.Trending ? this.recommendationData.Trending.Sessions.map((r) => r.recoUUID) : [];\r\n //console.log('GTM push ',`TrendingSession eventId:${this.eventId} uuid:${recoId}`)\r\n this.$gtm.push({ event: 'TrendingSession', eventId: this.eventId, uuid: recoId });\r\n }\r\n if (this.hasBoostedTerms) {\r\n const recoId = this.recommendationData.BoostedTerms ? this.recommendationData.BoostedTerms.Sessions.map((r) => r.recoUUID) : [];\r\n //console.log('GTM push ',`BoostedTermsSession eventId:${this.eventId} uuid:${recoId}`)\r\n this.$gtm.push({ event: 'BoostedTermsSession', eventId: this.eventId, uuid: recoId });\r\n }\r\n if (this.hasPopularity) {\r\n const recoId = this.recommendationData.Popularity ? this.recommendationData.Popularity.Sessions.map((r) => r.recoUUID) : [];\r\n //console.log('GTM push ',`PopularitySession eventId:${this.eventId} uuid:${recoId}`)\r\n this.$gtm.push({ event: 'PopularitySession', eventId: this.eventId, uuid: recoId });\r\n }\r\n },\r\n filterRecos(recos) {\r\n return recos.filter((obj, pos, arr) => {\r\n return obj['content'] !== null && obj['content'] !== '' && arr.map((mapObj) => mapObj['content']).indexOf(obj['content']) === pos;\r\n });\r\n },\r\n sanitizeId(rawId) {\r\n if (!rawId) return '#';\r\n return rawId.substring(1, rawId.length);\r\n },\r\n extractId(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return parseFloat(rawcontent);\r\n },\r\n extractTitle(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return rawcontent.replace(parseFloat(rawcontent), '');\r\n },\r\n getuuid(uuid) {\r\n let uid = '';\r\n if (uuid.length > 0) {\r\n uid = uuid[uuid.length - 1];\r\n } else {\r\n uid = uuid[0];\r\n }\r\n return uid;\r\n },\r\n getuuidTrending(uuid) {\r\n let uid = '';\r\n if (uuid.length > 0) {\r\n uid = uuid[1];\r\n } else {\r\n uid = uuid[0];\r\n }\r\n return uid;\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .recommendationBlock {\r\n background-color: #e9ecef;\r\n }\r\n\r\n h3 {\r\n font-size: 1.4rem;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationBlock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationBlock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RecommendationBlock.vue?vue&type=template&id=5e77f5fc&scoped=true\"\nimport script from \"./RecommendationBlock.vue?vue&type=script&lang=js\"\nexport * from \"./RecommendationBlock.vue?vue&type=script&lang=js\"\nimport style0 from \"./RecommendationBlock.vue?vue&type=style&index=0&id=5e77f5fc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e77f5fc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(this.favs.length > 0)?_c('b-tabs',{attrs:{\"content-class\":\"mt-3 mb-5\",\"fill\":\"\"}},[(_vm.liveAndUpcomingFavs.length > 0)?_c('b-tab',[_c('ListSessionBlock',{attrs:{\"items\":_vm.liveAndUpcomingFavs}})],1):_vm._e(),(_vm.onDemandFavs.length > 0)?_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('b-card-title',[_c('span',{staticClass:\"tab__title\"},[_vm._v(\"On Demand Sessions \"),_c('span',{staticClass:\"tab__title__count\"},[_vm._v(\"(\"+_vm._s(_vm.onDemandFavs.length)+\")\")])])])]},proxy:true}],null,false,1902809642)},[_c('ListSessionBlock',{attrs:{\"items\":_vm.onDemandFavs}})],1):_vm._e()],1):_c('div',[_c('h5',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(\"You haven't added anything to your programme yet.\")]),_c('h5',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(\"Browse the scientific sessions, and bookmark your favourites.\")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"timeLine px-lg-3\"},[_c('b-row',{staticClass:\"p-0 p-md-2 mb-4 text-center font-black\"},_vm._l((_vm.eventDays),function(eventDay,index){return _c('b-col',{key:eventDay.toString(),staticClass:\"date__text\",class:{ selected: _vm.isSelectedDay(eventDay) },style:({ cursor: !_vm.isSelectedDay(eventDay) ? 'pointer' : null, color: _vm.isSelectedDay(eventDay) ? 'var(--congress)' : null }),attrs:{\"data-v-step-schedule\":index == 0 && (_vm.$screen.lg || _vm.$screen.xl || _vm.$screen.xxl) ? 0 : null}},[_c('span',{staticClass:\"d-block\",on:{\"click\":function($event){return _vm.onDayClick(eventDay)}}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPart\")(eventDay)))])])}),1)],1),_c('b-row',[(_vm.isLoading)?_vm._l((4),function(index){return _c('b-col',{key:index,staticClass:\"pb-2 pb-md-4 px-1 px-md-2\",attrs:{\"cols\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"320px\"}})],1)}):_vm._e(),(!_vm.isLoading && _vm.resultsFiltered.length > 0)?_vm._l((_vm.resultsFiltered),function(result){return _c('b-col',{key:result.id,staticClass:\"mb-4 card-deck m-0 p-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('ListSessionCard',{attrs:{\"session\":result.session},on:{\"favorite-remove\":_vm.onFavoriteRemove}})],1)}):_vm._e(),(!_vm.isLoading && _vm.resultsFiltered.length <= 0)?[_c('h5',{staticClass:\"px-3\"},[_vm._v(\"No matches were found for the day selected.\")])]:_vm._e(),(_vm.isLoadingMore)?[_c('b-col',{attrs:{\"cols\":\"12\"}}),_vm._l((4),function(index){return _c('b-col',{key:index,staticClass:\"pb-2 pb-md-4 px-1 px-md-2\",attrs:{\"cols\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"320px\"}})],1)})]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-card',{staticClass:\"session__card\",attrs:{\"title\":_vm.session.title},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"d-flex pb-2\"},[(!_vm.session.isOnDemand)?_c('div',{staticClass:\"session__time font-bold\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.session.startTime))+\" • \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.session.startTime))+\" - \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.session.endTime))+\" \")]):(_vm.session.isOnDemand)?_c('div',{staticClass:\"session__time\"},[_vm._v(\"On Demand\")]):_vm._e(),_c('span',{staticClass:\"session__favorite__button\"},[_c('FavoriteButton',{attrs:{\"title\":_vm.session.title,\"digitalSessionId\":_vm.session.id,\"scientificSessionId\":_vm.session.scientificSessionId,\"width\":\"20\",\"height\":\"20\"}})],1)]),_c('div',{staticClass:\"d-block text-left lh-1\"},[_c('div',{staticClass:\"session__type d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" co_present \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.session.sessionType))])])]),_c('div',{staticClass:\"d-block text-left lh-1\"},[_c('div',{staticClass:\"session__channel d-inline-flex align-items-center font-regular mr-2\"},[_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" place \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.session.channelOnSiteDisplayName))])]),(_vm.session.channel)?_c('div',{staticClass:\"session__location--online d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"mr-1 material-icons-round\"},[_vm._v(\" cast \")]),_vm._v(\" \"),_c('span',[_vm._v(\" Online \")])]):_vm._e()])]},proxy:true},{key:\"footer\",fn:function(){return [(!_vm.ressourcesMovedTo365)?_c('b-row',{staticClass:\"no-gutters\"},[(_vm.session.isLive)?_c('b-col',{staticClass:\"session__progress\",attrs:{\"cols\":\"12\",\"xl\":\"\",\"order\":\"1\",\"order-xl\":\"1\"}},[(_vm.session.isLive)?_c('b-progress',{attrs:{\"value\":_vm.session.progress,\"max\":_vm.session.duration,\"height\":\"0.6em\"}}):_vm._e()],1):_vm._e(),((_vm.session.isLive && _vm.session.channel) || _vm.session.isReplay)?_c('b-col',{staticClass:\"text-center text-xl-right position-static ml-auto\",attrs:{\"cols\":\"12\",\"xl\":\"session-btn\",\"order\":\"1\",\"order-xl\":\"2\"}},[_c('SessionButton',{staticClass:\"d-inline-block\",attrs:{\"session\":_vm.session,\"forceInteract\":_vm.session.isReplay}})],1):_c('b-col',{staticClass:\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"12\",\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[_c('router-link',{staticClass:\"session_details text-nowrap\",attrs:{\"to\":`/${_vm.eventRoute}/sessions/${_vm.session.furl}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})])],1)],1):_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"12\",\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[(_vm.session.scientificSessionId)?_c('a',{staticClass:\"session_details text-nowrap\",attrs:{\"href\":`${_vm.esc365SessionUrl(_vm.session.scientificSessionId)}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})]):_vm._e()])],1)]},proxy:true}])},[(!_vm.ressourcesMovedTo365)?_c('router-link',{staticClass:\"d-block stretched-link\",staticStyle:{\"height\":\"0\"},attrs:{\"to\":`/${_vm.eventRoute}/sessions/${_vm.session.furl}`}}):_c('a',{staticClass:\"d-bloc stretched-link\",staticStyle:{\"height\":\"0\"},attrs:{\"href\":`${_vm.esc365SessionUrl(_vm.session.scientificSessionId)}`}}),(_vm.session.subTitle)?_c('div',{staticClass:\"session__subtitle lh-sm\"},[_vm._v(\" \"+_vm._s(_vm.session.subTitle)+\" \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-card :title=\"session.title\" class=\"session__card\">\r\n <router-link v-if=\"!ressourcesMovedTo365\" :to=\"`/${eventRoute}/sessions/${session.furl}`\" class=\"d-block stretched-link\" style=\"height: 0\"></router-link>\r\n <a v-else :href=\"`${esc365SessionUrl(session.scientificSessionId)}`\" class=\"d-bloc stretched-link\" style=\"height: 0\"></a>\r\n <template #header>\r\n <div class=\"d-flex pb-2\">\r\n <div class=\"session__time font-bold\" v-if=\"!session.isOnDemand\">\r\n {{ session.startTime | formatUnixEpocDayPart }} • {{ session.startTime | formatUnixEpocTimePart }} -\r\n {{ session.endTime | formatUnixEpocTimePart }}\r\n </div>\r\n <div class=\"session__time\" v-else-if=\"session.isOnDemand\">On Demand</div>\r\n <span class=\"session__favorite__button\">\r\n <FavoriteButton :title=\"session.title\" :digitalSessionId=\"session.id\" :scientificSessionId=\"session.scientificSessionId\" width=\"20\" height=\"20\" />\r\n </span>\r\n </div>\r\n <div class=\"d-block text-left lh-1\">\r\n <div class=\"session__type d-inline-flex align-items-center font-regular\">\r\n <span class=\"mr-1 material-icons-outlined\"> co_present </span> <span>{{ session.sessionType }}</span>\r\n </div>\r\n </div>\r\n <div class=\"d-block text-left lh-1\">\r\n <div class=\"session__channel d-inline-flex align-items-center font-regular mr-2\">\r\n <span class=\"mr-1 material-icons-outlined\"> place </span><span> {{ session.channelOnSiteDisplayName }}</span>\r\n </div>\r\n\r\n <div v-if=\"session.channel\" class=\"session__location--online d-inline-flex align-items-center font-regular\">\r\n <span class=\"mr-1 material-icons-round\"> cast </span> <span> Online </span>\r\n </div>\r\n </div>\r\n </template>\r\n <div class=\"session__subtitle lh-sm\" v-if=\"session.subTitle\">\r\n {{ session.subTitle }}\r\n </div>\r\n\r\n <!-- <div class=\"session__time\" v-if=\"isLive\">({{ currentSession.duration }}mn)</div> -->\r\n\r\n <template #footer>\r\n <b-row v-if=\"!ressourcesMovedTo365\" class=\"no-gutters\">\r\n <b-col v-if=\"session.isLive\" cols=\"12\" xl order=\"1\" order-xl=\"1\" class=\"session__progress\">\r\n <b-progress v-if=\"session.isLive\" :value=\"session.progress\" :max=\"session.duration\" height=\"0.6em\"></b-progress>\r\n </b-col>\r\n\r\n <b-col\r\n v-if=\"(session.isLive && session.channel) || session.isReplay\"\r\n cols=\"12\"\r\n xl=\"session-btn\"\r\n order=\"1\"\r\n order-xl=\"2\"\r\n class=\"text-center text-xl-right position-static ml-auto\"\r\n >\r\n <SessionButton :session=\"session\" :forceInteract=\"session.isReplay\" class=\"d-inline-block\" />\r\n </b-col>\r\n <b-col v-else cols=\"12\" xl=\"session-btn\" order=\"2\" order-xl=\"2\" class=\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\">\r\n <router-link :to=\"`/${eventRoute}/sessions/${session.furl}`\" class=\"session_details text-nowrap\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i\r\n ></router-link>\r\n </b-col>\r\n </b-row>\r\n <b-row v-else class=\"no-gutters\">\r\n <b-col cols=\"12\" xl=\"session-btn\" order=\"2\" order-xl=\"2\" class=\"text-center text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\">\r\n <a v-if=\"session.scientificSessionId\" :href=\"`${esc365SessionUrl(session.scientificSessionId)}`\" class=\"session_details text-nowrap\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i\r\n ></a>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n </b-card>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\n import SessionButton from 'src/components/Buttons/SessionButton';\r\n import esc365Mixin from 'src/mixins/esc365Mixin';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n\r\n export default {\r\n name: 'ListSessionCard',\r\n mixins: [esc365Mixin, hybridEventMixin],\r\n components: {\r\n FavoriteButton,\r\n SessionButton,\r\n },\r\n props: {\r\n session: Object,\r\n },\r\n mounted() {},\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n }),\r\n sessionDetailsUrl() {\r\n return `/${this.eventRoute}/sessions/${this.session.furl}`;\r\n },\r\n },\r\n methods: {\r\n onFavoriteRemove(e) {\r\n this.$emit('favorite-remove', e);\r\n },\r\n\r\n navigateToSession(event) {\r\n if (event.target.closest('.session__favorite__button, .search__card__footer__action')) {\r\n return;\r\n }\r\n this.$router.push(`/${this.eventRoute}/sessions/${this.session.digitalUrl}`);\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .card-title {\r\n color: #000;\r\n }\r\n\r\n .session__subtitle {\r\n font-size: 0.8em;\r\n }\r\n\r\n .session__progress {\r\n margin: auto;\r\n }\r\n\r\n .session_details {\r\n color: var(--congress);\r\n }\r\n\r\n .session_details:focus,\r\n .session_details:hover {\r\n color: var(--congress-dark);\r\n text-decoration: none;\r\n }\r\n\r\n .card.session__card .card-header {\r\n display: block;\r\n }\r\n .card.session__card {\r\n border-radius: 2rem;\r\n border: 0;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n position: relative;\r\n bottom: 0;\r\n -webkit-transition: all 0.3s ease-in-out;\r\n -moz-transition: all 0.3s ease-in-out;\r\n -ms-transition: all 0.3s ease-in-out;\r\n -o-transition: all 0.3s ease-in-out;\r\n transition: all 0.3s ease-in-out;\r\n }\r\n\r\n .card-img-top {\r\n border-radius: 2rem;\r\n }\r\n\r\n .session__card {\r\n cursor: pointer;\r\n }\r\n\r\n .session__card .card-header {\r\n display: flex;\r\n background: #fff;\r\n border: 0;\r\n padding-top: 1rem;\r\n padding-bottom: 0;\r\n }\r\n\r\n .session__card .session__time {\r\n font-size: 0.9rem;\r\n color: var(--congress);\r\n }\r\n\r\n .session__card .session__favorite__button {\r\n margin-left: auto;\r\n cursor: pointer;\r\n z-index: 100;\r\n }\r\n\r\n .session__card .material-icons-outlined,\r\n .session__card .material-icons-round {\r\n font-size: 16px;\r\n }\r\n\r\n .card-title {\r\n font-family: 'Interstate WGL Black';\r\n font-size: 1.2em;\r\n }\r\n\r\n .session__card .card-body {\r\n padding-top: 0.5rem;\r\n }\r\n\r\n .card-text p {\r\n margin-bottom: 0;\r\n }\r\n\r\n .card-footer {\r\n padding-top: 0;\r\n padding-left: 2rem;\r\n padding-right: 2rem;\r\n padding-bottom: 1.4rem;\r\n }\r\n\r\n @include media-breakpoint-up(xl) {\r\n .col-xl-session-btn {\r\n flex: 0 0 88px;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ListSessionCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ListSessionCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ListSessionCard.vue?vue&type=template&id=0db4a1af&scoped=true\"\nimport script from \"./ListSessionCard.vue?vue&type=script&lang=js\"\nexport * from \"./ListSessionCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./ListSessionCard.vue?vue&type=style&index=0&id=0db4a1af&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0db4a1af\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div>\r\n <div class=\"timeLine px-lg-3\">\r\n <b-row class=\"p-0 p-md-2 mb-4 text-center font-black\">\r\n <b-col\r\n :key=\"eventDay.toString()\"\r\n v-for=\"(eventDay, index) in eventDays\"\r\n class=\"date__text\"\r\n :class=\"{ selected: isSelectedDay(eventDay) }\"\r\n :style=\"{ cursor: !isSelectedDay(eventDay) ? 'pointer' : null, color: isSelectedDay(eventDay) ? 'var(--congress)' : null }\"\r\n :data-v-step-schedule=\"index == 0 && ($screen.lg || $screen.xl || $screen.xxl) ? 0 : null\"\r\n >\r\n <span @click=\"onDayClick(eventDay)\" class=\"d-block\">{{ eventDay | formatUnixEpocDayPart }}</span>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n\r\n <b-row>\r\n <!-- IsLoadingTemplate -->\r\n <template v-if=\"isLoading\">\r\n <b-col cols=\"6\" md=\"4\" lg=\"3\" v-for=\"index in 4\" :key=\"index\" class=\"pb-2 pb-md-4 px-1 px-md-2\">\r\n <b-skeleton-img no-aspect height=\"320px\"></b-skeleton-img>\r\n </b-col>\r\n </template>\r\n\r\n <!-- MainTemplate -->\r\n <template v-if=\"!isLoading && resultsFiltered.length > 0\">\r\n <b-col v-for=\"result in resultsFiltered\" :key=\"result.id\" cols=\"12\" sm=\"6\" md=\"6\" lg=\"4\" xl=\"3\" class=\"mb-4 card-deck m-0 p-0\">\r\n <ListSessionCard :session=\"result.session\" @favorite-remove=\"onFavoriteRemove\" />\r\n </b-col>\r\n </template>\r\n\r\n <!-- No result for the day -->\r\n <template v-if=\"!isLoading && resultsFiltered.length <= 0\">\r\n <h5 class=\"px-3\">No matches were found for the day selected.</h5>\r\n </template>\r\n\r\n <!-- IsLoadingMoreTemplate -->\r\n <template v-if=\"isLoadingMore\">\r\n <b-col cols=\"12\"></b-col>\r\n <b-col cols=\"6\" md=\"4\" lg=\"3\" v-for=\"index in 4\" :key=\"index\" class=\"pb-2 pb-md-4 px-1 px-md-2\">\r\n <b-skeleton-img no-aspect height=\"320px\"></b-skeleton-img>\r\n </b-col>\r\n </template>\r\n\r\n <!-- LoadMore (Button) -->\r\n <!-- <b-col cols=\"12\">\r\n <b-button variant=\"congress\" @click.prevent=\"loadMoreResult()\" v-if=\"!isLoading && loadMoreVisible && !isLoadingMore\">\r\n Load more <i class=\"las la-sync\"></i>\r\n </b-button>\r\n </b-col> -->\r\n </b-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import ListSessionCard from 'src/components/Cards/ListSessionCard';\r\n import { constants } from 'src/constants';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import { mapGetters, mapState } from 'vuex';\r\n import { MediaApiService } from 'src/services/media-api';\r\n\r\n export default {\r\n name: 'ListSessionBlock',\r\n components: {\r\n ListSessionCard,\r\n },\r\n props: {\r\n items: Array,\r\n },\r\n data() {\r\n return {\r\n isLoading: true,\r\n isLoadingMore: false,\r\n results: [],\r\n resultsToDisplay: [],\r\n //skip: 0,\r\n loadMoreVisible: false,\r\n daySelected: null,\r\n eventDays: [],\r\n resultsFiltered: [],\r\n timeFromServer: null,\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['eventStartDate', 'eventEndDate']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventStartDate: (state) => state.app.eventStartDate,\r\n eventEndDate: (state) => state.app.eventEndDate,\r\n }),\r\n },\r\n async mounted() {\r\n await this.fetchtime();\r\n this.fetchResults();\r\n this.refreshDaysList();\r\n this.noDaysSelected();\r\n\r\n },\r\n methods: {\r\n fetchResults() {\r\n //console.log('this.results '+JSON.stringify(this.results));\r\n //console.log('this.results ' + this.results.length);\r\n this.results = this.items;\r\n //console.log(this.results);\r\n let nbResults = this.results.length;\r\n let nbDisplayedResults = this.resultsToDisplay.length;\r\n let nbResultsToTake = Math.min(constants.LOAD_MORE_SESSIONS_COUNT, nbResults - nbDisplayedResults);\r\n if (nbResultsToTake > 0) {\r\n this.resultsToDisplay = this.results.slice(nbDisplayedResults, nbDisplayedResults + nbResultsToTake);\r\n this.resultsFiltered = this.resultsToDisplay;\r\n }\r\n this.loadMoreVisible = this.resultsToDisplay.length < this.results.length;\r\n\r\n this.isLoading = false;\r\n\r\n //console.log('this.resultsToDisplay '+JSON.stringify(this.resultsToDisplay));\r\n //console.log('this.resultsToDisplay ' + this.resultsToDisplay.length);\r\n },\r\n loadMoreResult() {\r\n this.isLoadingMore = true;\r\n\r\n let nbResults = this.results.length;\r\n let nbDisplayedResults = this.resultsToDisplay.length;\r\n let nbResultsToTake = Math.min(constants.LOAD_MORE_SESSIONS_COUNT, nbResults - nbDisplayedResults);\r\n //console.log('nbResultsToTake ' + nbResultsToTake);\r\n let resultsToAppend = this.results.slice(nbDisplayedResults, nbDisplayedResults + nbResultsToTake);\r\n //console.log('resultsToAppend ' + JSON.stringify(resultsToAppend));\r\n if (nbResultsToTake > 0) {\r\n this.resultsToDisplay = [...this.resultsToDisplay, ...resultsToAppend];\r\n this.resultsFiltered = [...this.resultsToDisplay, ...resultsToAppend];\r\n }\r\n this.loadMoreVisible = this.resultsToDisplay.length < this.results.length;\r\n\r\n this.isLoadingMore = false;\r\n\r\n //console.log('this.resultsToDisplay ' + this.resultsToDisplay.length);\r\n },\r\n onFavoriteRemove(e) {\r\n //console.log('onFavoriteRemove ' + JSON.stringify(e));\r\n //console.log('this.resultsToDisplay ' + this.resultsToDisplay.length);\r\n //console.log('this.results '+JSON.stringify(this.results));\r\n //console.log('this.resultsToDisplay '+JSON.stringify(this.resultsToDisplay));\r\n if (e != null && e.digitalSessionId != null) {\r\n //console.log('Filtering...');\r\n this.resultsToDisplay = this.resultsToDisplay.filter((x) => x.digitalSessionId != e.digitalSessionId);\r\n this.results = this.results.filter((x) => x.digitalSessionId != e.digitalSessionId);\r\n }\r\n //console.log('this.resultsToDisplay ' + this.resultsToDisplay.length);\r\n },\r\n\r\n refreshDaysList() {\r\n const startDate = DateHelper.onSiteDateTime(this.eventStartDate);\r\n const endDate = DateHelper.onSiteDateTime(this.eventEndDate);\r\n //console.log(startDate, endDate);\r\n this.eventDays = DateHelper.getDates(startDate, endDate);\r\n //console.log(this.eventDays);\r\n },\r\n isSelectedDay(day) {\r\n return this.$options.filters.formatUnixEpocDayPart(day) === this.$options.filters.formatUnixEpocDayPart(this.timeToDisplay);\r\n },\r\n moveToDayByDay(day) {\r\n this.timeToDisplay = day.getTime();\r\n // if (this.$route.path.includes(constants.ROUTE_PROGRAMME) && this.$route.query.day != this.timeToDisplay) {\r\n // this.$router.push({ query: { day: this.timeToDisplay } });\r\n // }\r\n this.daySelected = day;\r\n\r\n this.resultsFiltered = this.results;\r\n const dayDateOnly = new Date(day.getFullYear(), day.getMonth(), day.getDate());\r\n this.resultsFiltered = this.results.filter((x) => {\r\n const sessionStartDate = DateHelper.onSiteDateTime(x.session.startTime);\r\n const sessionDateOnly = new Date(sessionStartDate.getFullYear(), sessionStartDate.getMonth(), sessionStartDate.getDate());\r\n return sessionDateOnly.getTime() === dayDateOnly.getTime();\r\n });\r\n },\r\n onDayClick(date) {\r\n if (!this.isSelectedDay(date)) this.moveToDayByDay(date);\r\n },\r\n noDaysSelected(){\r\n if (!this.daySelected && this.results) {\r\n const serverTime = this.timeFromServer ? DateHelper.onSiteDateTime(this.timeFromServer) : null;\r\n if (serverTime >= DateHelper.onSiteDateTime(this.eventStartDate) && serverTime <= DateHelper.onSiteDateTime(this.eventEndDate)) {\r\n this.daySelected = serverTime;\r\n this.moveToDayByDay(this.daySelected);\r\n } \r\n else {\r\n this.daySelected = DateHelper.onSiteDateTime(this.results[0]?.session.startTime);\r\n this.moveToDayByDay(this.daySelected);\r\n }\r\n }\r\n },\r\n \r\n async fetchtime() {\r\n const { data } = await MediaApiService.getTime();\r\n this.timeFromServer = data;\r\n //console.log('timeFromServer', this.timeFromServer);\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ListSessionBlock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ListSessionBlock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ListSessionBlock.vue?vue&type=template&id=47927993&scoped=true\"\nimport script from \"./ListSessionBlock.vue?vue&type=script&lang=js\"\nexport * from \"./ListSessionBlock.vue?vue&type=script&lang=js\"\nimport style0 from \"./ListSessionBlock.vue?vue&type=style&index=0&id=47927993&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47927993\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div>\r\n <!--:title=\"`Live & Upcoming (${liveAndUpcomingFavs.length})`\"-->\r\n <b-tabs v-if=\"this.favs.length > 0\" content-class=\"mt-3 mb-5\" fill>\r\n <b-tab v-if=\"liveAndUpcomingFavs.length > 0\">\r\n <ListSessionBlock :items=\"liveAndUpcomingFavs\" />\r\n </b-tab>\r\n <b-tab v-if=\"onDemandFavs.length > 0\">\r\n <template #title>\r\n <b-card-title\r\n ><span class=\"tab__title\"\r\n >On Demand Sessions <span class=\"tab__title__count\">({{ onDemandFavs.length }})</span></span\r\n ></b-card-title\r\n >\r\n </template>\r\n\r\n <ListSessionBlock :items=\"onDemandFavs\" />\r\n </b-tab>\r\n </b-tabs>\r\n <div v-else>\r\n <h5 style=\"text-align: center\">You haven't added anything to your programme yet.</h5>\r\n <h5 style=\"text-align: center\">Browse the scientific sessions, and bookmark your favourites.</h5>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import ListSessionBlock from 'src/components/Blocks/ListSessionBlock';\r\n\r\n export default {\r\n name: 'OverviewTabs',\r\n components: {\r\n ListSessionBlock\r\n },\r\n props: {},\r\n watch: {},\r\n data() {\r\n return {};\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: state => state.app.eventId,\r\n favs: state => state.auth.favs\r\n }),\r\n liveAndUpcomingFavs() {\r\n let result = this.favs.filter(fav => !fav.session.isOnDemand);\r\n //console.log('liveAndUpcomingFavs ' + JSON.stringify(result));\r\n return result;\r\n },\r\n onDemandFavs() {\r\n let result = this.favs.filter(fav => fav.session.isOnDemand);\r\n //console.log('onDemandFavs ' + JSON.stringify(result));\r\n return result;\r\n }\r\n },\r\n mounted() {},\r\n methods: {}\r\n };\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .tab__title__count {\r\n font-size: 0.75em;\r\n }\r\n \r\n</style>\r\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OverviewTabs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OverviewTabs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./OverviewTabs.vue?vue&type=template&id=e118c9ae&scoped=true\"\nimport script from \"./OverviewTabs.vue?vue&type=script&lang=js\"\nexport * from \"./OverviewTabs.vue?vue&type=script&lang=js\"\nimport style0 from \"./OverviewTabs.vue?vue&type=style&index=0&id=e118c9ae&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e118c9ae\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <!-- \r\n ========================================================================================================================================================================\r\n HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-row class=\"hero__banner\">\r\n <b-col v-if=\"!isMobileAppPage && !isHomePage\" cols=\"12\"\r\n class=\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${this.appVersion}')` }\">\r\n <div class=\"eventInfo\">\r\n <h1>My Programme</h1>\r\n <div class=\"eventDate mt-3\">Your favorite sessions are listed below. Feel free to add them to your own\r\n calendar.</div>\r\n <div class=\"eventDate\">Please note that the programme times are displayed in local times for {{ locationEvent\r\n }}.</div>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <!-- \r\n ========================================================================================================================================================================\r\n END HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n\r\n <b-container fluid class=\"px-5 pb-0\" :class=\"isTimelineExpanded ? 'd-block d-md-none' : 'd-block'\">\r\n <b-row>\r\n <!-- ESC Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\">\r\n <EscBanners />\r\n </b-col>\r\n </b-row>\r\n <b-row>\r\n <b-col cols=\"12\" class=\"pt-3 px-3\">\r\n <!-- Not logged -->\r\n <template v-if=\"!isLogged\">\r\n <LogginWidget headerText=\"Please login\" message=\"Please sign in to view all your favourite sessions.\" />\r\n </template>\r\n\r\n <!-- OverviewTabs -->\r\n <OverviewTabs v-else />\r\n\r\n\r\n </b-col>\r\n </b-row>\r\n <b-row>\r\n <!-- IndustryBanners Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\" class=\"pt-3\">\r\n <IndustryBanners />\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n\r\n <!-- Suggestions -->\r\n <RecommendationBlock />\r\n\r\n <!-- Register Promo -->\r\n <RegisterPromoWidget />\r\n <!-- NEW CARDS FROM SLIDER -->\r\n <div class=\"authoredSlidesBlock px-0\">\r\n <h3 class=\"px-5 mb-3\">You may also be interested in</h3>\r\n <AuthoredSlidesBlock />\r\n </div>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapState } from 'vuex';\r\nimport openModalMixin from 'src/mixins/openModalMixin';\r\nimport { constants } from 'src/constants';\r\nimport EscBanners from 'src/components/Banners/EscBanners';\r\nimport IndustryBanners from 'src/components/Banners/IndustryBanners';\r\nimport RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\nimport LogginWidget from 'src/components/Widgets/LogginWidget';\r\nimport AuthoredSlidesBlock from 'src/components/Blocks/AuthoredSlidesBlock.vue';\r\nimport RecommendationBlock from 'src/components/Blocks/RecommendationBlock.vue';\r\nimport OverviewTabs from './components/OverviewTabs';\r\n\r\nexport default {\r\n name: 'Overview',\r\n mixins: [openModalMixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners,\r\n RegisterPromoWidget,\r\n LogginWidget,\r\n RecommendationBlock,\r\n AuthoredSlidesBlock,\r\n OverviewTabs,\r\n },\r\n data() {\r\n return {};\r\n },\r\n computed: {\r\n ...mapGetters(['isTimelineExpanded', 'appVersion']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n isLogged: (state) => state.auth.loggedIn,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n appVersion: (state) => state.app.version,\r\n locationEvent: (state) => state.app.locationEvent,\r\n\r\n isMobileAppPage() {\r\n const pagesWithoutTimeline = [\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_PRE_HOME}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_HAPPENING_NOW}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_INTERACTIVITY}`,\r\n ];\r\n return pagesWithoutTimeline.map((x) => `/${this.eventRoute}/${x}`).includes(this.$route.path);\r\n },\r\n\r\n isHomePage() {\r\n return this.$route.path === `/${this.eventRoute}` || this.$route.path === `/${this.eventRoute}/` || this.$route.path === `/${this.eventRoute}/home`;\r\n },\r\n }),\r\n },\r\n methods: {},\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n\r\nh1.block__header__title {\r\n font-size: 1.8em;\r\n}\r\n\r\nh2.block__header__subtitle {\r\n font-size: 1.15em;\r\n}\r\n\r\n.authoredSlidesBlock {\r\n background-color: #fff;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Overview.vue?vue&type=template&id=4cc2ec66&scoped=true\"\nimport script from \"./Overview.vue?vue&type=script&lang=js\"\nexport * from \"./Overview.vue?vue&type=script&lang=js\"\nimport style0 from \"./Overview.vue?vue&type=style&index=0&id=4cc2ec66&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4cc2ec66\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-col',{staticClass:\"pt-4 pb-4\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"8\",\"lg\":\"9\"}},[(!_vm.networkingHasAccess)?[_c('NetworkingNoAccessWidget')]:_vm._e(),(_vm.networkingHasAccess)?_c('b-row',[(_vm.networkingChatAgreement)?_c('NetworkingChat'):_vm._e(),_c('NetworkingConsent')],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-row',{staticClass:\"mt-3 mx-auto consentSwitch\"},[_c('b-col',{attrs:{\"cols\":\"10\",\"offset\":\"1\"}},[_c('b-card',{staticClass:\"border-0\"},[_c('b-card-text',{staticClass:\"card-title mb-3\"},[_c('b',[_vm._v(\"Networking feature\")]),_c('b-form-checkbox',{staticClass:\"float-right\",attrs:{\"disabled\":_vm.isAgreementLoading,\"switch\":\"\",\"size\":\"lg\"},on:{\"change\":_vm.onSwitchChange},model:{value:(_vm.networkingChatAgreement),callback:function ($$v) {_vm.networkingChatAgreement=$$v},expression:\"networkingChatAgreement\"}})],1),_c('b-card-text',[_vm._v(\" By enabling the networking feature, I agree and understand that: \"),_c('ul',[_c('li',[_vm._v(\"I will be visible in the networking search for people to message me (chat) in one-to-one conversations.\")]),_c('li',[_vm._v(\"other delegates will see my name, specialty, place of work, and social media follow links that I've provided through My ESC account.\")]),_c('li',[_vm._v(\"the networking feature does not enable users to contact each other by other means of communication (email, phone, etc).\")]),_c('li',[_vm._v(\"it facilitates contact through social media for those who have shared their handles through their My ESC account\")])])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <!-- Consent Banner -->\r\n <b-row class=\"mt-3 mx-auto consentSwitch\">\r\n <b-col cols=\"10\" offset=\"1\">\r\n <b-card class=\"border-0\">\r\n <b-card-text class=\"card-title mb-3\">\r\n <b>Networking feature</b>\r\n <b-form-checkbox v-model=\"networkingChatAgreement\" :disabled=\"isAgreementLoading\" @change=\"onSwitchChange\" switch size=\"lg\" class=\"float-right\" />\r\n </b-card-text>\r\n <b-card-text>\r\n By enabling the networking feature, I agree and understand that:\r\n <ul>\r\n <li>I will be visible in the networking search for people to message me (chat) in one-to-one conversations.</li>\r\n <li>other delegates will see my name, specialty, place of work, and social media follow links that I've provided through My ESC account.</li>\r\n <li>the networking feature does not enable users to contact each other by other means of communication (email, phone, etc).</li>\r\n <li>it facilitates contact through social media for those who have shared their handles through their My ESC account</li>\r\n </ul>\r\n </b-card-text>\r\n </b-card>\r\n </b-col>\r\n </b-row>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport { MediaApiService } from 'src/services/media-api';\r\nimport { SET_CHAT_PARTICIPANT_CONFIG } from 'src/store/mutations';\r\n\r\nexport default {\r\n name: 'NetworkingConsent',\r\n data() {\r\n return {\r\n networkingChatAgreement: false,\r\n isAgreementLoading: false,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n chatParticipantConfig: (state) => state.app.chatParticipantConfig,\r\n }),\r\n },\r\n mounted() {\r\n this.networkingChatAgreement = this.chatParticipantConfig?.networkingChatAgreement ?? false;\r\n },\r\n methods: {\r\n async onSwitchChange(value) {\r\n this.isAgreementLoading = true;\r\n\r\n let alterResStatus = null;\r\n try {\r\n const { status } = await MediaApiService.alterChatAgreement({ networkingChatAgreement: value });\r\n alterResStatus = status;\r\n } catch (err) {\r\n console.error(err);\r\n } finally {\r\n if (alterResStatus == 200) {\r\n const _chatParticipantConfig = { ...this.chatParticipantConfig, networkingChatAgreement: value };\r\n this.$store.commit(SET_CHAT_PARTICIPANT_CONFIG, _chatParticipantConfig);\r\n } else {\r\n this.networkingChatAgreement = !value;\r\n }\r\n\r\n this.isAgreementLoading = false;\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5b69ff9a&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5b69ff9a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b69ff9a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('b-jumbotron',{staticClass:\"center\",attrs:{\"header\":\"Access restricted\",\"lead\":\" This feature is restricted to delegates with the full ESC Congress 2021 - The Digital Experience registration.\"}},[_c('b-button',{attrs:{\"variant\":\"congress\"},on:{\"click\":_vm.register}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" Register \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <b-jumbotron\r\n header=\"Access restricted\"\r\n lead=\" This feature is restricted to delegates with the full ESC Congress 2021 - The Digital Experience registration.\"\r\n class=\"center\"\r\n >\r\n <b-button variant=\"congress\" @click=\"register\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n Register \r\n </b-button>\r\n </b-jumbotron>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapState } from 'vuex';\r\nimport { register } from 'src/services/auth';\r\n\r\nexport default {\r\n name: 'NetworkingNoAccessWidget',\r\n components: {},\r\n data() {\r\n return {};\r\n },\r\n computed: {\r\n ...mapGetters(['currentUser']),\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n eventId: (state) => state.app.eventId,\r\n networkingChatAgreement: (state) => state.app.chatParticipantConfig.networkingChatAgreement,\r\n }),\r\n },\r\n async mounted() {},\r\n methods: {\r\n register() {\r\n register(this.returnUrl);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n@include media-breakpoint-up(sm) {\r\n .jumbotron {\r\n padding: 1.5rem 4rem;\r\n text-align: center;\r\n }\r\n}\r\n\r\n.display-3 {\r\n font-size: 2rem;\r\n}\r\n\r\n.lead {\r\n font-size: 1rem;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NetworkingNoAccessWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NetworkingNoAccessWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NetworkingNoAccessWidget.vue?vue&type=template&id=16a57f24&scoped=true\"\nimport script from \"./NetworkingNoAccessWidget.vue?vue&type=script&lang=js\"\nexport * from \"./NetworkingNoAccessWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./NetworkingNoAccessWidget.vue?vue&type=style&index=0&id=16a57f24&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16a57f24\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <b-col cols=\"12\" sm=\"12\" md=\"8\" lg=\"9\" class=\"pt-4 pb-4\">\r\n <template v-if=\"!networkingHasAccess\">\r\n <NetworkingNoAccessWidget />\r\n </template>\r\n <b-row v-if=\"networkingHasAccess\">\r\n <!-- Networking Messages -->\r\n <NetworkingChat v-if=\"networkingChatAgreement\" />\r\n\r\n <!-- Networking Consent -->\r\n <NetworkingConsent />\r\n </b-row>\r\n </b-col>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapState } from 'vuex';\r\nimport NetworkingChat from 'src/components/NetworkingChat';\r\nimport NetworkingConsent from 'src/components/NetworkingConsent';\r\nimport NetworkingNoAccessWidget from 'src/components/Widgets/NetworkingNoAccessWidget';\r\n\r\nexport default {\r\n name: 'NetworkingMessages',\r\n components: { NetworkingChat, NetworkingConsent, NetworkingNoAccessWidget },\r\n computed: {\r\n ...mapGetters(['currentUser']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n networkingChatAgreement: (state) => state.app.chatParticipantConfig.networkingChatAgreement,\r\n networkingHasAccess: (state) => state.app.chatParticipantConfig.hasAccess,\r\n }),\r\n },\r\n mounted() {\r\n // If needed...\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n/* TEST DISPLAY */\r\n</style>\r\n\r\n<style>\r\n.consentSwitch .card-body {\r\n padding: 1.25rem 2rem;\r\n}\r\n.consentSwitch .card-title {\r\n color: #000;\r\n font-size: 1.1em;\r\n}\r\n.consentSwitch p {\r\n color: #858585;\r\n font-size: 90%;\r\n}\r\n.consentSwitch .custom-control-input:checked ~ .custom-control-label::before {\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NetworkingMessages.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NetworkingMessages.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NetworkingMessages.vue?vue&type=template&id=c0afda00&scoped=true\"\nimport script from \"./NetworkingMessages.vue?vue&type=script&lang=js\"\nexport * from \"./NetworkingMessages.vue?vue&type=script&lang=js\"\nimport style0 from \"./NetworkingMessages.vue?vue&type=style&index=0&id=c0afda00&prod&lang=scss&scoped=true\"\nimport style1 from \"./NetworkingMessages.vue?vue&type=style&index=1&id=c0afda00&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c0afda00\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-col',{staticClass:\"pt-4 pb-4\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"lg\":\"10\"}},[(!_vm.networkingHasAccess)?[_c('NetworkingNoAccessWidget')]:_vm._e(),(_vm.networkingHasAccess && _vm.networkingChatAgreement)?[_c('b-col',{staticClass:\"p-4 mb-4 networkingSearch\",attrs:{\"align-self\":\"center\",\"cols\":\"12\",\"md\":\"12\"}},[_c('h3',{staticClass:\"mb-4\"},[_vm._v(\"Participants\")]),_c('b-form',{attrs:{\"inline\":\"\"}},[_c('label',{staticClass:\"sr-only\",attrs:{\"for\":\"inline-form-input-name\"}},[_vm._v(\"Name\")]),_c('b-form-input',{staticClass:\"mb-2 mb-sm-0 col-xl-3 col-sm-12\",attrs:{\"type\":\"search\",\"placeholder\":\"Search for people and network\"},nativeOn:{\"keydown\":function($event){return _vm.onTextInputKeydown.apply(null, arguments)}},model:{value:(_vm.nameValue),callback:function ($$v) {_vm.nameValue=$$v},expression:\"nameValue\"}}),_c('b-col',{attrs:{\"lg\":\"3\"}},[_c('treeselect',{attrs:{\"options\":_vm.countriesOptions,\"multiple\":true,\"placeholder\":\"Countries/Regions\",\"appendToBody\":true,\"limit\":0,\"limitText\":(count) => `Countries/Regions (${count} applied)`},model:{value:(_vm.countriesValues),callback:function ($$v) {_vm.countriesValues=$$v},expression:\"countriesValues\"}})],1),_c('b-col',{attrs:{\"lg\":\"5\"}},[_c('treeselect',{attrs:{\"options\":_vm.specialitiesOptions,\"multiple\":true,\"appendToBody\":true,\"placeholder\":\"Specialities\",\"limit\":0,\"limitText\":(count) => `Specialities (${count} applied)`},model:{value:(_vm.specialitiesValues),callback:function ($$v) {_vm.specialitiesValues=$$v},expression:\"specialitiesValues\"}})],1),_c('b-col',{attrs:{\"lg\":\"1\"}},[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.onSearchClick}},[_vm._v(\"Search\")])],1)],1)],1),_c('b-overlay',{attrs:{\"id\":\"resultsContainer\",\"show\":_vm.isLoading,\"no-center\":\"\",\"rounded\":\"sm\"}},[(_vm.searchResults)?_c('b-col',{staticClass:\"p-4 networkingSearch\",attrs:{\"align-self\":\"center\",\"cols\":\"12\"}},[_c('h4',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.totalRows)+\" results\")]),_vm._l((_vm.searchResults),function(result){return _c('b-col',{key:result.id,staticClass:\"pt-4 userItem\"},[_c('div',{staticClass:\"session__details__header\"},[_c('b-row',{staticClass:\"pb-4\"},[_c('b-col',{attrs:{\"sm\":\"2\"}},[_c('b-avatar',{staticClass:\"w-100\",attrs:{\"square\":\"\",\"src\":result.photoUrl}})],1),_c('b-col',{attrs:{\"sm\":\"10\"}},[_c('b-row',[_c('b-col',{attrs:{\"lg\":\"9\"}},[_c('h5',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(result.name)+\" \")]),_c('p',{class:{\n 'mb-2': _vm.getPlaceOfWork(result.custom.institution, result.custom.country) !== '',\n 'mb-0': _vm.getPlaceOfWork(result.custom.institution, result.custom.country) === '',\n }},[(result.custom.specialty)?_c('fragment',[_c('b',[_vm._v(\"Specialty:\")]),_vm._v(\" \"+_vm._s(result.custom.specialty)+\" \")]):_vm._e()],1),(_vm.getPlaceOfWork(result.custom.institution, result.custom.country) !== '')?_c('p',{staticClass:\"mb-0\"},[_c('b',[_vm._v(\"Place of work: \")]),_vm._v(\" \"+_vm._s(_vm.getPlaceOfWork(result.custom.institution, result.custom.country))+\" \")]):_vm._e()]),_c('b-col',{staticClass:\"text-right\",attrs:{\"lg\":\"3\"}},[_c('b-link',{staticClass:\"btn btn-primary mb-3\",attrs:{\"to\":`/${_vm.eventRoute}/networking/messages?r=${result.id}`,\"disabled\":_vm.currentUser.escId && _vm.currentUser.escId == result.id}},[_c('i',{staticClass:\"las la-comments mr-2\"}),_vm._v(\" Start a chat \")])],1)],1),(result.custom.linkedInUrl || result.custom.twitterUrl)?_c('p',{staticClass:\"userSocial\"},[_c('b',[_vm._v(\"Follow me:\")]),(result.custom.linkedInUrl)?_c('a',{staticClass:\"ml-1 mr-2\",attrs:{\"href\":result.custom.linkedInUrl,\"target\":\"_blank\"}},[_c('i',{staticClass:\"lab la-linkedin-in\"})]):_vm._e(),(result.custom.twitterUrl)?_c('a',{attrs:{\"href\":result.custom.twitterUrl,\"target\":\"_blank\"}},[_c('i',{staticClass:\"lab la-twitter\"})]):_vm._e()]):_vm._e()],1)],1)],1)])})],2):_vm._e(),(_vm.searchResults && _vm.searchResults.length > 0)?_c('b-pagination',{staticClass:\"mt-3\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"pills\":\"\"},on:{\"change\":_vm.onPageChange},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}}):_vm._e()],1)]:_vm._e(),(_vm.networkingHasAccess)?_c('NetworkingConsent'):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-col cols=\"12\" sm=\"12\" md=\"12\" lg=\"10\" class=\"pt-4 pb-4\">\r\n <template v-if=\"!networkingHasAccess\">\r\n <NetworkingNoAccessWidget/>\r\n </template>\r\n <template v-if=\"networkingHasAccess && networkingChatAgreement\">\r\n <b-col align-self=\"center\" cols=\"12\" md=\"12\" class=\"p-4 mb-4 networkingSearch\">\r\n <h3 class=\"mb-4\">Participants</h3>\r\n <b-form inline>\r\n <label class=\"sr-only\" for=\"inline-form-input-name\">Name</label>\r\n <b-form-input\r\n v-model=\"nameValue\"\r\n type=\"search\"\r\n placeholder=\"Search for people and network\"\r\n @keydown.native=\"onTextInputKeydown\"\r\n class=\"mb-2 mb-sm-0 col-xl-3 col-sm-12\"\r\n />\r\n\r\n <!-- Status -->\r\n <!--\r\n <b-col lg=\"2\">\r\n <treeselect v-model=\"statusValues\" :options=\"statusOptions\" :multiple=\"true\" :appendToBody=\"true\" placeholder=\"Status\" :limit=\"0\" :limitText=\"count => `Status (Online)`\" />\r\n </b-col>\r\n -->\r\n <!-- Country -->\r\n <b-col lg=\"3\">\r\n <treeselect\r\n v-model=\"countriesValues\"\r\n :options=\"countriesOptions\"\r\n :multiple=\"true\"\r\n placeholder=\"Countries/Regions\"\r\n :appendToBody=\"true\"\r\n :limit=\"0\"\r\n :limitText=\"(count) => `Countries/Regions (${count} applied)`\"\r\n />\r\n </b-col>\r\n <!-- Speciality -->\r\n <b-col lg=\"5\">\r\n <treeselect\r\n v-model=\"specialitiesValues\"\r\n :options=\"specialitiesOptions\"\r\n :multiple=\"true\"\r\n :appendToBody=\"true\"\r\n placeholder=\"Specialities\"\r\n :limit=\"0\"\r\n :limitText=\"(count) => `Specialities (${count} applied)`\"\r\n />\r\n </b-col>\r\n <b-col lg=\"1\">\r\n <b-button variant=\"primary\" @click=\"onSearchClick\">Search</b-button>\r\n </b-col>\r\n </b-form>\r\n </b-col>\r\n\r\n <!-- \r\n -------------------------------------------------------------------------------------------------\r\n Listing\r\n ------------------------------------------------------------------------------------------------- \r\n -->\r\n <b-overlay id=\"resultsContainer\" :show=\"isLoading\" no-center rounded=\"sm\">\r\n <b-col align-self=\"center\" cols=\"12\" class=\"p-4 networkingSearch\" v-if=\"searchResults\">\r\n <h4 class=\"mb-4\">{{ totalRows }} results</h4>\r\n\r\n <b-col :key=\"result.id\" v-for=\"result in searchResults\" class=\"pt-4 userItem\">\r\n <div class=\"session__details__header\">\r\n <b-row class=\"pb-4\">\r\n <b-col sm=\"2\">\r\n <b-avatar square :src=\"result.photoUrl\" class=\"w-100\"> </b-avatar>\r\n <!-- \r\n <b-avatar badge badge-offset=\"-0.5em\" square :src=\"result.photoUrl\" class=\"w-100\" :variant=\"result.isOnline ? 'success' : 'danger'\">\r\n </b-avatar>\r\n -->\r\n <!-- variant=\"danger\" for offline variant=\"success\" for online -->\r\n </b-col>\r\n <b-col sm=\"10\">\r\n <b-row>\r\n <b-col lg=\"9\">\r\n <h5 class=\"mb-1\">\r\n {{ result.name }}\r\n <!-- <a href=\"#\" class=\"ml-1 mr-2\"><i class=\"lab la-linkedin-in\"></i></a>\r\n <a href=\"#\"><i class=\"lab la-twitter\"></i></a> -->\r\n </h5>\r\n <!--\r\n <p>\r\n <b-badge pill variant=\"light\">ESC Pro Member</b-badge>\r\n </p>\r\n -->\r\n <p\r\n :class=\"{\r\n 'mb-2': getPlaceOfWork(result.custom.institution, result.custom.country) !== '',\r\n 'mb-0': getPlaceOfWork(result.custom.institution, result.custom.country) === '',\r\n }\"\r\n >\r\n <fragment v-if=\"result.custom.specialty\">\r\n <b>Specialty:</b>\r\n {{ result.custom.specialty }}\r\n </fragment>\r\n </p>\r\n\r\n <p v-if=\"getPlaceOfWork(result.custom.institution, result.custom.country) !== ''\" class=\"mb-0\">\r\n <b>Place of work: </b>\r\n {{ getPlaceOfWork(result.custom.institution, result.custom.country) }}\r\n </p>\r\n </b-col>\r\n <b-col lg=\"3\" class=\"text-right\">\r\n <b-link\r\n :to=\"`/${eventRoute}/networking/messages?r=${result.id}`\"\r\n :disabled=\"currentUser.escId && currentUser.escId == result.id\"\r\n class=\"btn btn-primary mb-3\"\r\n >\r\n <i class=\"las la-comments mr-2\"></i> Start a chat\r\n </b-link>\r\n </b-col>\r\n </b-row>\r\n\r\n <!--<p v-if=\"result.custom.quote\" class=\"userQuote mb-1\">\r\n <span>\r\n {{ result.custom.quote }}\r\n </span>\r\n </p>-->\r\n\r\n <p v-if=\"result.custom.linkedInUrl || result.custom.twitterUrl\" class=\"userSocial\">\r\n <b>Follow me:</b>\r\n <a v-if=\"result.custom.linkedInUrl\" :href=\"result.custom.linkedInUrl\" target=\"_blank\" class=\"ml-1 mr-2\"> <i class=\"lab la-linkedin-in\"></i> </a>\r\n <a v-if=\"result.custom.twitterUrl\" :href=\"result.custom.twitterUrl\" target=\"_blank\"><i class=\"lab la-twitter\"></i> </a>\r\n </p>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </b-col>\r\n </b-col>\r\n\r\n <!-- Pagination -->\r\n <b-pagination\r\n v-if=\"searchResults && searchResults.length > 0\"\r\n @change=\"onPageChange\"\r\n v-model=\"currentPage\"\r\n :total-rows=\"totalRows\"\r\n :per-page=\"perPage\"\r\n pills\r\n class=\"mt-3\"\r\n ></b-pagination>\r\n </b-overlay>\r\n </template>\r\n\r\n <!-- Networking Consent -->\r\n <NetworkingConsent v-if=\"networkingHasAccess\"/>\r\n </b-col>\r\n</template>\r\n\r\n<script>\r\nimport { MediaApiService } from 'src/services/media-api';\r\nimport { mapGetters, mapState } from 'vuex';\r\nimport Treeselect from '@riophae/vue-treeselect';\r\nimport '@riophae/vue-treeselect/dist/vue-treeselect.css';\r\nimport NetworkingConsent from 'src/components/NetworkingConsent';\r\nimport NetworkingNoAccessWidget from 'src/components/Widgets/NetworkingNoAccessWidget';\r\n\r\nexport default {\r\n name: 'NetworkingSearch',\r\n components: { Treeselect, NetworkingConsent,NetworkingNoAccessWidget },\r\n data() {\r\n return {\r\n isLoading: true,\r\n nameValue: null,\r\n statusValues: null,\r\n statusOptions: [\r\n {\r\n id: 'online',\r\n label: 'Online',\r\n },\r\n ],\r\n countriesValues: null,\r\n countriesOptions: [],\r\n specialitiesValues: null,\r\n specialitiesOptions: [],\r\n searchResults: null,\r\n currentPage: 1,\r\n totalRows: 0,\r\n perPage: 20,\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['currentUser']),\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n eventId: (state) => state.app.eventId,\r\n networkingChatAgreement: (state) => state.app.chatParticipantConfig.networkingChatAgreement,\r\n networkingHasAccess: (state) => state.app.chatParticipantConfig.hasAccess\r\n }),\r\n },\r\n async mounted() {\r\n const { data: countriesData } = await MediaApiService.getCountries();\r\n this.countriesOptions = countriesData;\r\n\r\n const { data: specialitiesData } = await MediaApiService.getSpecialities();\r\n this.specialitiesOptions = specialitiesData;\r\n\r\n await this.search();\r\n },\r\n methods: {\r\n onTextInputKeydown(e) {\r\n if (e.which === 13) {\r\n this.onSearchClick();\r\n return;\r\n }\r\n },\r\n async onSearchClick() {\r\n this.currentPage = 1;\r\n this.isLoading = true;\r\n await this.search();\r\n },\r\n async search() {\r\n const countries = this.countriesValues;\r\n const specialities = this.specialitiesValues;\r\n const name = this.nameValue?.trim();\r\n const onlyOnline = this.statusValues?.length > 0;\r\n\r\n const { data: searchResultsData } = await MediaApiService.searchParticipants({\r\n eventId: this.eventId,\r\n countries: countries?.length > 0 ? countries : null,\r\n specialities: specialities?.length > 0 ? specialities : null,\r\n name: name !== '' ? name : null,\r\n onlyOnline: onlyOnline,\r\n pageNumber: this.currentPage,\r\n });\r\n\r\n this.searchResults = searchResultsData.results;\r\n this.totalRows = searchResultsData.totalResults;\r\n this.isLoading = false;\r\n },\r\n getCountryDescription(code) {\r\n const country = this.countriesOptions.find((x) => x.id == code);\r\n return country?.label ?? code;\r\n },\r\n getPlaceOfWork(institution, countryCode) {\r\n let placeOfWork = '';\r\n if (institution && institution !== '') placeOfWork += institution;\r\n if (institution && institution !== '' && countryCode && countryCode !== '') placeOfWork += ', ';\r\n if (countryCode && countryCode !== '') placeOfWork += this.getCountryDescription(countryCode);\r\n return placeOfWork;\r\n },\r\n async onPageChange(page) {\r\n // const resultsContainerTop = document.querySelector('#resultsContainer').offsetTop;\r\n // window.scrollTo({ top: resultsContainerTop, behavior: 'smooth' });\r\n\r\n this.currentPage = page;\r\n\r\n this.isLoading = true;\r\n await this.search();\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n#resultsContainer {\r\n min-height: 78px;\r\n}\r\n\r\n::v-deep .spinner-border {\r\n position: absolute;\r\n top: 10%;\r\n left: 50%;\r\n width: 3rem;\r\n height: 3rem;\r\n}\r\n\r\n.userItem:last-child .session__details__header {\r\n border: 0;\r\n}\r\n\r\n.networkingSearch {\r\n background-color: #fff;\r\n border-radius: 0.5rem;\r\n}\r\n\r\n.profilePhoto {\r\n width: 100%;\r\n border-radius: 0.5rem;\r\n}\r\n\r\n.userQuote {\r\n font-style: italic;\r\n position: relative;\r\n}\r\n\r\n.userQuote:before {\r\n font-family: Georgia, serif;\r\n content: '“';\r\n font-size: 5em;\r\n color: #f7e7e8;\r\n float: left;\r\n line-height: 0.8;\r\n margin-right: 0.1em;\r\n max-height: 40px;\r\n}\r\n\r\n.userQuote:after {\r\n font-family: Georgia, serif;\r\n content: 'â€';\r\n font-size: 5em;\r\n color: #f7e7e8;\r\n float: left;\r\n line-height: 0.7;\r\n position: absolute;\r\n right: 0;\r\n}\r\n\r\n.badge-light {\r\n background: #f1f1f1;\r\n}\r\n\r\n.session__details__header {\r\n border-bottom: 2px solid #f1f1f1;\r\n}\r\n\r\n.userSocial i {\r\n position: relative;\r\n top: 3px;\r\n font-size: 1.6em;\r\n}\r\n\r\n.userSocial .la-linkedin-in {\r\n color: #0a66c2;\r\n}\r\n\r\n.userSocial .la-twitter {\r\n color: #1d9bf0;\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .form-inline .form-control {\r\n margin-bottom: 1em !important;\r\n }\r\n}\r\n\r\n@media (max-width: 992px) {\r\n .session__details__header .text-right {\r\n text-align: left !important;\r\n }\r\n}\r\n\r\n@media (max-width: 576px) {\r\n .main-container.pl-0.container-fluid.pr-4 {\r\n padding-left: 1rem !important;\r\n }\r\n}\r\n/* UPDATE STYLE*/\r\n.networkingSearch .vue-treeselect {\r\n border-color: #e9ecef;\r\n}\r\n::v-deep .networkingSearch .vue-treeselect__placeholder,\r\n::v-deep .vue-treeselect__limit-tip-text {\r\n font-size: 0.89rem;\r\n}\r\n::v-deep .networkingSearch .vue-treeselect__placeholder,\r\n::v-deep .networkingSearch .vue-treeselect__control-arrow {\r\n color: #000;\r\n}\r\n::v-deep .networkingSearch .vue-treeselect__menu {\r\n font-size: 0.8em !important;\r\n}\r\n::v-deep .networkingSearch .vue-treeselect__menu div {\r\n text-align: left !important;\r\n}\r\n\r\n#resultsContainer .badge {\r\n font-size: 90%;\r\n}\r\n.b-avatar {\r\n height: 100%;\r\n}\r\n::v-deep .b-avatar .b-avatar-img {\r\n border-radius: 10%;\r\n max-width: 100%;\r\n max-height: 100%;\r\n width: auto;\r\n height: auto;\r\n}\r\n::v-deep .b-avatar .b-avatar-badge {\r\n width: 2em;\r\n height: 2em;\r\n border: 3px solid #fff;\r\n}\r\n::v-deep .badge-danger .badge-primary {\r\n background-color: #dc3545 !important;\r\n}\r\n::v-deep .badge-success .badge-primary {\r\n background-color: #5ad539 !important;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NetworkingSearch.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NetworkingSearch.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NetworkingSearch.vue?vue&type=template&id=d0d5828c&scoped=true\"\nimport script from \"./NetworkingSearch.vue?vue&type=script&lang=js\"\nexport * from \"./NetworkingSearch.vue?vue&type=script&lang=js\"\nimport style0 from \"./NetworkingSearch.vue?vue&type=style&index=0&id=d0d5828c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d0d5828c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"content-wrapper vh-100 text-center\",attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('b-jumbotron',{attrs:{\"header\":\"Service status.\",\"lead\":\"All services are operationnals.\"}},[_c('div',{staticClass:\"py-3\"},[_c('b-card-text',[_c('b-link',{attrs:{\"variant\":\"primary\",\"to\":\"/\"}},[_vm._v(\" Back to home page \")])],1)],1)])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <b-container fluid>\r\n <b-row class=\"content-wrapper vh-100 text-center\" align-v=\"center\">\r\n <b-col>\r\n <b-jumbotron header=\"Service status.\" lead=\"All services are operationnals.\">\r\n <div class=\"py-3\">\r\n <b-card-text>\r\n <b-link variant=\"primary\" to=\"/\">\r\n Back to home page\r\n </b-link>\r\n </b-card-text>\r\n </div></b-jumbotron\r\n >\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { SET_IS_LOADING } from 'src/store/mutations';\r\n export default {\r\n name: 'HealthWidget',\r\n mounted() {\r\n this.$store.commit(SET_IS_LOADING, false);\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n $media-modal-bg-secondary: #656565;\r\n\r\n .content-wrapper {\r\n background: $media-modal-bg-secondary;\r\n background-blend-mode: multiply, multiply;\r\n }\r\n\r\n .display-3 {\r\n font-size: 2rem;\r\n }\r\n\r\n .lead {\r\n font-size: 1rem;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Health.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Health.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Health.vue?vue&type=template&id=0b0bc6ff&scoped=true\"\nimport script from \"./Health.vue?vue&type=script&lang=js\"\nexport * from \"./Health.vue?vue&type=script&lang=js\"\nimport style0 from \"./Health.vue?vue&type=style&index=0&id=0b0bc6ff&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b0bc6ff\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.isLoading && _vm.registrationStatus)?_c('div',[(!_vm.registrationStatus.logged)?_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"content-wrapper vh-100 text-center\",attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('b-jumbotron',{attrs:{\"header\":\"Protected content\",\"lead\":\"This content is protected, please sign in.\"}},[_c('b-button',{staticClass:\"with-icon\",attrs:{\"pill\":\"\",\"variant\":\"mobileapp\",\"href\":_vm.loginUrl},on:{\"click\":_vm.startLoading}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" Sign in \")])],1)],1)],1)],1):(!_vm.registrationStatus.registered)?_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"content-wrapper vh-100 text-center\",attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('b-jumbotron',{attrs:{\"header\":\"I have not registered yet\",\"lead\":\" \"}},[_c('div',{staticClass:\"my-2\"},[_c('b-button',{attrs:{\"variant\":\"mobileapp\",\"href\":_vm.registerUrl},on:{\"click\":_vm.startLoading}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" I want to register \")])],1),(false)?_c('div',{staticClass:\"my-2\"},[_c('b-button',{attrs:{\"variant\":\"mobileapp\",\"href\":_vm.accessCodeUrl},on:{\"click\":_vm.startLoading}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" I have an access code \")])],1):_vm._e()])],1)],1)],1):(_vm.registrationStatus.registered)?_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"content-wrapper vh-100 text-center\",attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('b-jumbotron',{attrs:{\"header\":\"I've already registered\",\"lead\":\"Enjoy your congress\"}})],1)],1)],1):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"!isLoading && registrationStatus\">\r\n <b-container fluid v-if=\"!registrationStatus.logged\">\r\n <b-row class=\"content-wrapper vh-100 text-center\" align-v=\"center\">\r\n <b-col>\r\n <b-jumbotron header=\"Protected content\" lead=\"This content is protected, please sign in.\">\r\n <b-button pill variant=\"mobileapp\" @click=\"startLoading\" :href=\"loginUrl\" class=\"with-icon\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n Sign in\r\n </b-button>\r\n </b-jumbotron>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n <b-container fluid v-else-if=\"!registrationStatus.registered\">\r\n <b-row class=\"content-wrapper vh-100 text-center\" align-v=\"center\">\r\n <b-col>\r\n <b-jumbotron header=\"I have not registered yet\" lead=\" \">\r\n <div class=\"my-2\">\r\n <b-button variant=\"mobileapp\" @click=\"startLoading\" :href=\"registerUrl\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n I want to register\r\n </b-button>\r\n </div>\r\n <div v-if=\"false\" class=\"my-2\">\r\n <b-button variant=\"mobileapp\" @click=\"startLoading\" :href=\"accessCodeUrl\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n I have an access code\r\n </b-button>\r\n </div>\r\n </b-jumbotron>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n <b-container fluid v-else-if=\"registrationStatus.registered\">\r\n <b-row class=\"content-wrapper vh-100 text-center\" align-v=\"center\">\r\n <b-col>\r\n <b-jumbotron header=\"I've already registered\" lead=\"Enjoy your congress\"> </b-jumbotron>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { SET_IS_LOADING } from 'src/store/mutations';\r\n //import { redirectErrorNotFound } from 'src/services/auth';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { QueryHelper } from 'src/utils/query-helper';\r\n import Cookies from 'js-cookie';\r\n\r\n export default {\r\n name: 'PartnerRegistrationStatus',\r\n components: {},\r\n data() {\r\n return {\r\n registrationStatus: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n isLoading: (state) => state.app.isLoading,\r\n }),\r\n loginUrl() {\r\n return `https://sp.shapper.net/simplesaml/module.php/core/authenticate.php?as=escardio&appId=${this.registrationStatus?.appId}`\r\n\r\n //return `https://sp.shapper.net/simplesaml/module.php/core/authenticate.php?acr_values=null&response_type=code&client_id=escsaml&redirect_uri=https://secure11.shapper.net/services/request/authOpenId?appId=${this.registrationStatus?.appId}&scope=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress&as=escardio&appId=${this.registrationStatus?.appId}`;\r\n },\r\n registerUrl() {\r\n return this.registrationStatus?.registrationLink;\r\n },\r\n accessCodeUrl() {\r\n return 'https://myesc.escardio.org/s/group-registration?eventid=a237T000002bc3mQAA';\r\n },\r\n },\r\n created() {\r\n /*\r\n //Rotate left\r\n document.documentElement.style.setProperty('transform', 'rotate(-90deg)');\r\n document.documentElement.style.setProperty('transform-origin', 'top left');\r\n document.documentElement.style.setProperty('top', '100vh');\r\n */\r\n //Rotate right\r\n /*\r\n document.documentElement.style.setProperty('transform', 'rotate(90deg)');\r\n document.documentElement.style.setProperty('transform-origin', 'top left');\r\n document.documentElement.style.setProperty('left', '100vw');\r\n */\r\n },\r\n beforeDestroy() {\r\n /*\r\n document.documentElement.style.removeProperty('transform');\r\n document.documentElement.style.removeProperty('transform-origin');\r\n document.documentElement.style.removeProperty('left');\r\n document.documentElement.style.removeProperty('top');\r\n */\r\n },\r\n mounted() {\r\n let queryString = window.location.search;\r\n const eescid = Cookies.get('eescid');\r\n queryString = QueryHelper.addUrlParameter(queryString, 'escid', eescid);\r\n if (queryString) {\r\n MediaApiService.partnerGetRegistrationStatus(queryString).then(({ data }) => {\r\n if (data) {\r\n //console.log(data);\r\n this.pushAnalytics(data);\r\n this.registrationStatus = data;\r\n //console.log(data);\r\n }\r\n this.stopLoading();\r\n });\r\n } else {\r\n this.stopLoading();\r\n //redirectErrorNotFound();\r\n }\r\n },\r\n methods: {\r\n startLoading() {\r\n console.log('startLoading');\r\n this.$store.commit(SET_IS_LOADING, true);\r\n },\r\n stopLoading() {\r\n this.$store.commit(SET_IS_LOADING, false);\r\n },\r\n pushAnalytics(data) {\r\n //console.log('data ' + JSON.stringify(data));\r\n if (data && data?.hasAccess && data?.escId && data?.eventId) {\r\n //console.log('GTM PUSH');\r\n /* DataLayer */\r\n this.$gtm.push({ eventId: data.eventId });\r\n this.$gtm.push({ event: 'logEscId', escid: data.escId });\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .player-widget {\r\n height: 100svh;\r\n width: 100svw;\r\n }\r\n\r\n .content-wrapper {\r\n background: #656565;\r\n background-blend-mode: multiply, multiply;\r\n }\r\n\r\n .display-3 {\r\n font-size: 2rem;\r\n }\r\n\r\n .lead {\r\n font-size: 1rem;\r\n }\r\n\r\n .btn-mobileapp {\r\n background-color: #ae1022;\r\n //var(--congress);\r\n color: #fff;\r\n }\r\n\r\n .btn-mobileapp:hover {\r\n color: #fbdfd7;\r\n //var(--congress-light);\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegistrationStatus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegistrationStatus.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RegistrationStatus.vue?vue&type=template&id=706607ac&scoped=true\"\nimport script from \"./RegistrationStatus.vue?vue&type=script&lang=js\"\nexport * from \"./RegistrationStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./RegistrationStatus.vue?vue&type=style&index=0&id=706607ac&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"706607ac\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.isLoading && _vm.partnerResource.hasAccess)?_c('fragment',[(_vm.partnerResource && _vm.partnerResource.hasAccess && this.partnerResource.brightcoveAccountId && _vm.partnerResource.presentationId && _vm.partnerResource.brightcovePlayerId && this.partnerResource.videoId)?_c('BrightcovePartnerPlayer',{key:this.partnerResource.presentationId,ref:\"bcPlayer\",staticClass:\"player-widget\",attrs:{\"accountId\":this.partnerResource.brightcoveAccountId,\"playerId\":this.partnerResource.brightcovePlayerId,\"videoId\":this.partnerResource.videoId}}):_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"content-wrapper vh-100 text-center\",attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('b-jumbotron',{attrs:{\"header\":\"Sorry, requested content was not found.\",\"lead\":\"There could be a number of reasons for this, there may be a temporary technical issue, the page have been moved or archived, or the page address may be incorrect.\"}})],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-overlay',{attrs:{\"show\":_vm.isLoading}},[_c('video-js',{attrs:{\"id\":_vm.brightcovePlayerId,\"data-account\":this.accountId,\"data-player\":this.playerId,\"data-video-id\":this.videoId,\"data-embed\":\"default\",\"controls\":\"\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-overlay :show=\"isLoading\">\r\n <!-- Brightcove Player -->\r\n <video-js :id=\"brightcovePlayerId\" :data-account=\"this.accountId\" :data-player=\"this.playerId\" :data-video-id=\"this.videoId\" data-embed=\"default\" controls=\"\">\r\n </video-js>\r\n </b-overlay>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'BrightcovePartnerPlayer',\r\n data() {\r\n return {\r\n isLoading: true,\r\n script: null,\r\n brightcovePlayerId: this.$uuid.v1(),\r\n brightcovePlayer: null,\r\n };\r\n },\r\n props: {\r\n accountId: String,\r\n playerId: String,\r\n videoId: String,\r\n },\r\n computed: {\r\n scriptUrl() {\r\n return `https://players.brightcove.net/${this.accountId}/${this.playerId}_default/index.min.js`;\r\n },\r\n },\r\n mounted() {\r\n this.script = document.createElement('script');\r\n this.script.onload = this.onScriptLoaded;\r\n this.script.setAttribute('src', this.scriptUrl);\r\n\r\n document.head.appendChild(this.script);\r\n },\r\n beforeDestroy() {\r\n screen.orientation.unlock();\r\n if (this.brightcovePlayer) this.brightcovePlayer.dispose();\r\n\r\n document.head.removeChild(this.script);\r\n },\r\n methods: {\r\n onScriptLoaded() {\r\n const self = this;\r\n // eslint-disable-next-line no-undef\r\n videojs.getPlayer(this.brightcovePlayerId).ready(function () {\r\n self.brightcovePlayer = this;\r\n\r\n self.brightcovePlayer.on('fullscreenchange', function () {\r\n if (self.brightcovePlayer.isFullscreen()) {\r\n setTimeout(function () {\r\n screen.orientation\r\n .lock('landscape')\r\n .then(function () {\r\n console.error('landscape orientation locked');\r\n })\r\n .catch(function (error) {\r\n console.error(error);\r\n });\r\n }, 100);\r\n }\r\n else{\r\n screen.orientation.unlock();\r\n }\r\n });\r\n\r\n /*\r\n self.brightcovePlayer.on('loadedmetadata', function () {\r\n self.brightcovePlayer.requestFullscreen();\r\n });\r\n */\r\n\r\n self.isLoading = false;\r\n self.$emit('loaded');\r\n });\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n .video-js {\r\n position: absolute;\r\n top: 0px;\r\n right: 0px;\r\n bottom: 0px;\r\n left: 0px;\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 0px !important;\r\n }\r\n\r\n .b-skeleton-img {\r\n height: 100%;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BrightcovePartnerPlayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BrightcovePartnerPlayer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BrightcovePartnerPlayer.vue?vue&type=template&id=5b440d3b\"\nimport script from \"./BrightcovePartnerPlayer.vue?vue&type=script&lang=js\"\nexport * from \"./BrightcovePartnerPlayer.vue?vue&type=script&lang=js\"\nimport style0 from \"./BrightcovePartnerPlayer.vue?vue&type=style&index=0&id=5b440d3b&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment v-if=\"!isLoading && partnerResource.hasAccess\">\r\n <BrightcovePartnerPlayer\r\n v-if=\"partnerResource && partnerResource.hasAccess && this.partnerResource.brightcoveAccountId && partnerResource.presentationId && partnerResource.brightcovePlayerId && this.partnerResource.videoId\"\r\n ref=\"bcPlayer\"\r\n :key=\"this.partnerResource.presentationId\"\r\n :accountId=\"this.partnerResource.brightcoveAccountId\"\r\n :playerId=\"this.partnerResource.brightcovePlayerId\"\r\n :videoId=\"this.partnerResource.videoId\"\r\n class=\"player-widget\"\r\n />\r\n <b-container fluid v-else>\r\n <b-row class=\"content-wrapper vh-100 text-center\" align-v=\"center\">\r\n <b-col>\r\n <b-jumbotron\r\n header=\"Sorry, requested content was not found.\"\r\n lead=\"There could be a number of reasons for this, there may be a temporary technical issue, the page have been moved or archived, or the page address may be incorrect.\"\r\n >\r\n </b-jumbotron>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport { SET_IS_LOADING } from 'src/store/mutations';\r\n//import { redirectErrorNotFound } from 'src/services/auth';\r\n\r\nimport BrightcovePartnerPlayer from 'src/components/Players/BrightcovePartnerPlayer';\r\nimport { MediaApiService } from 'src/services/media-api';\r\n\r\nexport default {\r\n name: 'PartnerMediaVideo',\r\n components: {\r\n BrightcovePartnerPlayer,\r\n },\r\n data() {\r\n return {\r\n partnerResource: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n isLoading: (state) => state.app.isLoading,\r\n }),\r\n },\r\n mounted() {\r\n const queryString = window.location.search;\r\n if (queryString) {\r\n MediaApiService.partnerHasAccess(queryString).then(({ data }) => {\r\n if (data) {\r\n this.pushAnalytics(data);\r\n this.partnerResource = data;\r\n /*\r\n if (!this.partnerResource || !this.partnerResource.videoId) {\r\n redirectErrorNotFound();\r\n } else if (!this.partnerResource.hasAccess) {\r\n redirectErrorNotFound();\r\n }\r\n */\r\n }\r\n this.stopLoading();\r\n });\r\n } else {\r\n this.stopLoading();\r\n //redirectErrorNotFound();\r\n }\r\n },\r\n methods: {\r\n stopLoading() {\r\n this.$store.commit(SET_IS_LOADING, false);\r\n },\r\n pushAnalytics(data) {\r\n //console.log('data ' + JSON.stringify(data));\r\n if (data && data.hasAccess && data.escId && data.eventId) {\r\n //console.log('GTM PUSH');\r\n /* DataLayer */\r\n this.$gtm.push({ eventId: data.eventId });\r\n this.$gtm.push({ event: 'logEscId', escid: data.escId });\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n$media-modal-bg-primary: linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(0, 0, 0, 0.15) 100%), radial-gradient(at top center, rgba(255, 255, 255, 0.4) 0%, rgba(0, 0, 0, 0.8) 120%) #989898;\r\n$media-modal-bg-secondary: #656565;\r\n$media-modal-primary: #f2f2f2;\r\n$media-modal-secondary: #9e9e9e;\r\n\r\n.player-widget {\r\n height: 100vh;\r\n width: 100vw;\r\n position: fixed;\r\n }\r\n\r\n.content-wrapper {\r\n background: $media-modal-bg-secondary;\r\n background-blend-mode: multiply, multiply;\r\n}\r\n\r\n.display-3 {\r\n font-size: 2rem;\r\n}\r\n\r\n.lead {\r\n font-size: 1rem;\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Video.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Video.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Video.vue?vue&type=template&id=3a5d3561&scoped=true\"\nimport script from \"./Video.vue?vue&type=script&lang=js\"\nexport * from \"./Video.vue?vue&type=script&lang=js\"\nimport style0 from \"./Video.vue?vue&type=style&index=0&id=3a5d3561&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a5d3561\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.isLoading && _vm.partnerResource)?_c('fragment',[(_vm.partnerResource.hasAccess && _vm.partnerResource.brightcoveAccountId && _vm.partnerResource.id && _vm.partnerResource.brightcovePlayerId && _vm.partnerResource.videoId)?_c('BrightcovePartnerPlayer',{key:_vm.partnerResource.id,ref:\"bcPlayer\",staticClass:\"player-widget\",attrs:{\"accountId\":_vm.partnerResource.brightcoveAccountId,\"playerId\":_vm.partnerResource.brightcovePlayerId,\"videoId\":_vm.partnerResource.videoId}}):(!_vm.partnerResource.escId)?_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"content-wrapper vh-100 text-center\",attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('b-jumbotron',{attrs:{\"header\":\"Protected content\",\"lead\":\"This content is protected, please sign in.\"}},[_c('b-button',{staticClass:\"with-icon\",attrs:{\"pill\":\"\",\"variant\":\"mobileapp\",\"href\":_vm.loginUrl},on:{\"click\":_vm.startLoading}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" Sign in \")])],1)],1)],1)],1):(!_vm.partnerResource.hasAccess)?_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"content-wrapper vh-100 text-center\",attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('b-jumbotron',{attrs:{\"header\":\"Access restricted to registered participants\",\"lead\":\"Register - it's not too late!\"}},[_c('b-button',{attrs:{\"variant\":\"mobileapp\",\"href\":_vm.registerUrl},on:{\"click\":_vm.startLoading}},[_c('i',{staticClass:\"las la-5x la-t-plus-3 la-user-circle pr-1\"}),_vm._v(\" Register now \")])],1)],1)],1)],1):_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"content-wrapper vh-100 text-center\",attrs:{\"align-v\":\"center\"}},[_c('b-col',[_c('b-jumbotron',{attrs:{\"header\":\"Sorry, requested content was not found.\",\"lead\":\"There could be a number of reasons for this, there may be a temporary technical issue, the page have been moved or archived, or the page address may be incorrect.\"}})],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment v-if=\"!isLoading && partnerResource\">\r\n <BrightcovePartnerPlayer\r\n v-if=\"partnerResource.hasAccess && partnerResource.brightcoveAccountId && partnerResource.id && partnerResource.brightcovePlayerId && partnerResource.videoId\"\r\n ref=\"bcPlayer\"\r\n :key=\"partnerResource.id\"\r\n :accountId=\"partnerResource.brightcoveAccountId\"\r\n :playerId=\"partnerResource.brightcovePlayerId\"\r\n :videoId=\"partnerResource.videoId\"\r\n class=\"player-widget\"\r\n />\r\n <b-container fluid v-else-if=\"!partnerResource.escId\">\r\n <b-row class=\"content-wrapper vh-100 text-center\" align-v=\"center\">\r\n <b-col>\r\n <b-jumbotron header=\"Protected content\" lead=\"This content is protected, please sign in.\">\r\n <b-button pill variant=\"mobileapp\" @click=\"startLoading\" :href=\"loginUrl\" class=\"with-icon\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n Sign in\r\n </b-button>\r\n </b-jumbotron>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n <b-container fluid v-else-if=\"!partnerResource.hasAccess\">\r\n <b-row class=\"content-wrapper vh-100 text-center\" align-v=\"center\">\r\n <b-col>\r\n <b-jumbotron header=\"Access restricted to registered participants\" lead=\"Register - it's not too late!\">\r\n <b-button variant=\"mobileapp\" @click=\"startLoading\" :href=\"registerUrl\">\r\n <i class=\"las la-5x la-t-plus-3 la-user-circle pr-1\"></i>\r\n Register now\r\n </b-button>\r\n </b-jumbotron>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n <b-container fluid v-else>\r\n <b-row class=\"content-wrapper vh-100 text-center\" align-v=\"center\">\r\n <b-col>\r\n <b-jumbotron\r\n header=\"Sorry, requested content was not found.\"\r\n lead=\"There could be a number of reasons for this, there may be a temporary technical issue, the page have been moved or archived, or the page address may be incorrect.\"\r\n >\r\n </b-jumbotron>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { SET_IS_LOADING } from 'src/store/mutations';\r\n //import { redirectErrorNotFound } from 'src/services/auth';\r\n import BrightcovePartnerPlayer from 'src/components/Players/BrightcovePartnerPlayer';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { QueryHelper } from 'src/utils/query-helper';\r\n import Cookies from 'js-cookie';\r\n \r\n export default {\r\n name: 'PartnerMediaResources',\r\n components: {\r\n BrightcovePartnerPlayer,\r\n },\r\n data() {\r\n return {\r\n partnerResource: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n isLoading: (state) => state.app.isLoading,\r\n }),\r\n loginUrl() {\r\n return `https://sp.shapper.net/simplesaml/module.php/core/authenticate.php?acr_values=null&response_type=code&client_id=escsaml&redirect_uri=https://secure11.shapper.net/services/request/authOpenId?appId=${this.partnerResource?.appId}&scope=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress&as=escardio&appId=${this.partnerResource?.appId}`;\r\n },\r\n registerUrl() {\r\n return this.partnerResource?.registrationLink;\r\n },\r\n },\r\n created() {\r\n /*\r\n //Rotate left\r\n document.documentElement.style.setProperty('transform', 'rotate(-90deg)');\r\n document.documentElement.style.setProperty('transform-origin', 'top left');\r\n document.documentElement.style.setProperty('top', '100vh');\r\n */\r\n //Rotate right\r\n /*\r\n document.documentElement.style.setProperty('transform', 'rotate(90deg)');\r\n document.documentElement.style.setProperty('transform-origin', 'top left');\r\n document.documentElement.style.setProperty('left', '100vw');\r\n */\r\n },\r\n beforeDestroy() {\r\n /*\r\n document.documentElement.style.removeProperty('transform');\r\n document.documentElement.style.removeProperty('transform-origin');\r\n document.documentElement.style.removeProperty('left');\r\n document.documentElement.style.removeProperty('top');\r\n */\r\n },\r\n mounted() {\r\n let queryString = window.location.search;\r\n const eescid = Cookies.get('eescid');\r\n queryString = QueryHelper.addUrlParameter(queryString, 'escid', eescid);\r\n if (queryString) {\r\n MediaApiService.partnerGetVideo(queryString).then(({ data }) => {\r\n if (data) {\r\n //console.log(data);\r\n this.pushAnalytics(data);\r\n this.partnerResource = data;\r\n //console.log(data);\r\n }\r\n this.stopLoading();\r\n });\r\n } else {\r\n this.stopLoading();\r\n //redirectErrorNotFound();\r\n }\r\n },\r\n methods: {\r\n startLoading() {\r\n this.$store.commit(SET_IS_LOADING, true);\r\n },\r\n stopLoading() {\r\n this.$store.commit(SET_IS_LOADING, false);\r\n },\r\n pushAnalytics(data) {\r\n //console.log('data ' + JSON.stringify(data));\r\n if (data && data?.hasAccess && data?.escId && data?.eventId) {\r\n //console.log('GTM PUSH');\r\n /* DataLayer */\r\n this.$gtm.push({ eventId: data.eventId });\r\n this.$gtm.push({ event: 'logEscId', escid: data.escId });\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .player-widget {\r\n height: 100svh;\r\n width: 100svw;\r\n }\r\n\r\n .content-wrapper {\r\n background: #656565;\r\n background-blend-mode: multiply, multiply;\r\n }\r\n\r\n .display-3 {\r\n font-size: 2rem;\r\n }\r\n\r\n .lead {\r\n font-size: 1rem;\r\n }\r\n\r\n .btn-mobileapp {\r\n background-color: #ae1022;\r\n //var(--congress);\r\n color: #fff;\r\n }\r\n\r\n .btn-mobileapp:hover {\r\n color: #fbdfd7;\r\n //var(--congress-light);\r\n }\r\n</style>\r\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Resources.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Resources.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Resources.vue?vue&type=template&id=43ea3982&scoped=true\"\nimport script from \"./Resources.vue?vue&type=script&lang=js\"\nexport * from \"./Resources.vue?vue&type=script&lang=js\"\nimport style0 from \"./Resources.vue?vue&type=style&index=0&id=43ea3982&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43ea3982\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('b-row',{staticClass:\"hero__banner\"},[(!_vm.isMobileAppPage && !_vm.isHomePage)?_c('b-col',{staticClass:\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo\"},[_c('h1',[_vm._v(\"Programme\")]),_c('div',{staticClass:\"eventDate mt-3\"},[_vm._v(\"Browse the sessions, bookmark your favourites and start the journey to your congress.\")]),_c('div',{staticClass:\"eventDate\"},[_vm._v(\"Please note that the programme times are displayed in local times for \"+_vm._s(_vm.locationEvent)+\".\")]),(this.confCmsData && this.confCmsData.paag_doc && this.confCmsData.paag_doc.filename)?_c('div',[_c('b-button',{staticClass:\"d-inline-flex align-items-center mt-3 px-0\",attrs:{\"variant\":\"link\",\"href\":this.confCmsData.paag_doc.filename}},[_c('span',{staticClass:\"material-icons-round align-middle mr-2\"},[_vm._v(\" system_update_alt \")]),_vm._v(\" Download the Programme at a glance\")])],1):_vm._e()])]):_vm._e()],1),_c('b-container',{staticClass:\"px-lg-5\",class:_vm.isTimelineExpanded ? 'd-block d-md-none' : 'd-block',attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('EscBanners')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"12\",\"lg\":_vm.hasBoostedTerms || _vm.hasTrending || _vm.hasPopularity ? 9 : 12}},[_c('Search',{attrs:{\"searchDocType\":'DigitalSession'},on:{\"is-loading\":_vm.OnLoading}})],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"12\"}},[_c('RegisterPromoWidget')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('IndustryBanners')],1)],1),(!_vm.isMobile)?_c('v-tour',{attrs:{\"name\":\"search-tour\",\"steps\":_vm.steps,\"callbacks\":_vm.callbacks,\"active\":_vm.isTourActive}}):_vm._e()],1),_c('RecommendationBlock'),_c('div',{staticClass:\"authoredSlidesBlock px-0\"},[_c('h3',{staticClass:\"px-5 mb-3\"},[_vm._v(\"You may also be interested in\")]),_c('AuthoredSlidesBlock')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showScrollToTop),expression:\"showScrollToTop\"}],staticClass:\"btn-floating scroller\",attrs:{\"variant\":\"congress\"},on:{\"click\":_vm.scrollToSearchBar}},[_c('span',{staticClass:\"material-icons-round\"},[_vm._v(\" keyboard_control_key \")])]),(_vm.searchDocType != 'MyProgramme')?_c('b-jumbotron',{scopedSlots:_vm._u([(_vm.ressourcesMovedTo365)?{key:\"header\",fn:function(){return [_c('span',[_vm._v(\"You missed \"+_vm._s(_vm.eventBaseTitle)+\"?\")])]},proxy:true}:null,(_vm.ressourcesMovedTo365)?{key:\"lead\",fn:function(){return [_c('span',[_vm._v(\"Check out the Replays. Browse the programme and see what is available on \"),_c('a',{staticClass:\"text-decoration-underline\",attrs:{\"href\":\"https://esc365.escardio.org\"}},[_vm._v(\"ESC 365\")]),_vm._v(\".\")])]},proxy:true}:null],null,true)},[_c('div',{attrs:{\"data-v-step-search\":\"0\"}},[_c('b-row',{ref:\"searchBar\",staticClass:\"search font-regular mx-0 mb-3\",attrs:{\"id\":\"search\"}},[_c('b-col',{staticClass:\"pl-xl-0 pr-xl-1 mb-2 mb-md-0\",attrs:{\"xl\":\"3\",\"cols\":\"12\"}},[_c('b-input-group',[_c('b-form-input',{staticClass:\"searchInput\",attrs:{\"maxlength\":\"100\",\"type\":\"search\",\"placeholder\":_vm.searchPlaceholder},nativeOn:{\"keydown\":function($event){return _vm.onTextInputKeydown.apply(null, arguments)}},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)],1),_vm._l((_vm.getDocTypeFacets(_vm.searchDocType, true)),function(facet){return _c('b-col',{key:facet[0].name,staticClass:\"mb-2 mb-md-0 px-xl-1\",attrs:{\"cols\":\"12\",\"xl\":\"\"}},[_c('b-input-group-append',{attrs:{\"set\":(_vm.facetConf = _vm.getFacetConfiguration(facet[0].name)),\"sm\":_vm.facetConf.sm,\"lazy\":\"\"}},[_c('treeselect',{ref:`${facet[0].name}TreeSelect`,refInFor:true,attrs:{\"options\":_vm.selectedDocTypesFacetsOptions[facet[0].name],\"multiple\":_vm.facetConf.multiple,\"placeholder\":_vm.facetConf.placeholder,\"limit\":_vm.facetConf.limit,\"limitText\":_vm.facetConf.limitText,\"appendToBody\":true},on:{\"input\":_vm.onTreeSelectInput},model:{value:(_vm.selectedDocTypesFacetsValues[facet[0].name]),callback:function ($$v) {_vm.$set(_vm.selectedDocTypesFacetsValues, facet[0].name, $$v)},expression:\"selectedDocTypesFacetsValues[facet[0].name]\"}})],1)],1)}),_c('b-col',{staticClass:\"d-flex pr-xl-0 pl-xl-1\",attrs:{\"cols\":\"12\",\"xl\":\"1\"}},[_c('b-input-group-append',{staticClass:\"w-100\"},[_c('b-button',{staticClass:\"badge-pill d-xl-block with-icon w-100\",attrs:{\"disabled\":_vm.isComponentOrChildLoading,\"variant\":\"congress\"},on:{\"click\":_vm.onSearchClick}},[(!_vm.isComponentOrChildLoading)?_c('i',{staticClass:\"las la-2x la-t-plus-2 la-search\"}):_vm._e(),(_vm.isComponentOrChildLoading)?_c('i',{staticClass:\"las las la-2x la-t-plus-2 la-spin la-spinner\"}):_vm._e(),_vm._v(\" Search \")])],1)],1)],2)],1)]):_vm._e(),_c('div',{staticClass:\"filter__list mb-2\"},[_vm._l((_vm.getDocTypeFacets(_vm.searchDocType, true)),function(facet){return _c('div',{key:facet[0].name,staticClass:\"d-inline\"},_vm._l((_vm.selectedDocTypesFacetsValues[facet[0].name]),function(filter){return _c('b-badge',{key:filter,staticClass:\"mr-3 badge__selected font-regular btn btn-sm px-3 py-2 mb-2\",attrs:{\"pill\":\"\"}},[_vm._v(\" \"+_vm._s(filter)+\" \"),_c('i',{staticClass:\"las la-t-plus-1 la-times ml-1 clear-icon\",on:{\"click\":function($event){return _vm.onClearFilter(facet[0].name, filter)}}})])}),1)}),(\n _vm.searchDocType != 'MyProgramme' &&\n (_vm.selectedDocTypesFacetsValues['types'].length ||\n _vm.selectedDocTypesFacetsValues['tracks'].length ||\n _vm.selectedDocTypesFacetsValues['topics'].length ||\n _vm.selectedDocTypesFacetsValues['country'].length ||\n _vm.selectedDocTypesFacetsValues['rooms'].length)\n )?_c('span',{staticClass:\"mb-3\",attrs:{\"align-h\":\"center\"}},[(Object.keys(_vm.getDocTypeFacets(_vm.searchDocType, true)).length > 0)?_c('span',{on:{\"click\":_vm.onClearClick}},[_c('b-button',{staticClass:\"font-regular px-3 py-2\",attrs:{\"size\":\"sm\",\"pill\":\"\",\"variant\":\"clear\"}},[_vm._v(\" Clear filters \"),_c('i',{staticClass:\"las la-t-plus-1 la-times ml-1\"})])],1):_vm._e()]):_vm._e()],2),_c('b-overlay',{attrs:{\"id\":\"tabsContainer\",\"show\":_vm.isComponentOrChildLoading,\"no-center\":\"\",\"rounded\":\"sm\"}},[(!_vm.isComponentOrChildLoading && !_vm.hasResults && _vm.hasValidDoctypesCount)?_c('div',{staticClass:\"pb-3\"},[(_vm.query)?_c('h5',[_vm._v(\" No matches were found for \"),_c('b',[_vm._v(_vm._s(_vm.query))]),_vm._v(\". \")]):_c('h5',[_vm._v(\" No matches were found for \"),_c('b',[_vm._v(_vm._s(_vm.searchDocType))]),_vm._v(\". \")])]):_vm._e(),(_vm.docTypes && _vm.docTypes.length > 0)?_c('b-tabs',{key:_vm.selectedDocTypeIndex,attrs:{\"content-class\":\"\",\"fill\":\"\"},on:{\"activate-tab\":_vm.onActivateTab},model:{value:(_vm.selectedDocTypeIndex),callback:function ($$v) {_vm.selectedDocTypeIndex=$$v},expression:\"selectedDocTypeIndex\"}},_vm._l((_vm.docTypes),function(docType,index){return _c('b-tab',{key:docType.value,attrs:{\"lazy\":\"\"},on:{\"click\":function($event){return _vm.onTabClick(docType, $event)}},scopedSlots:_vm._u([(_vm.docTypes.length > 1)?{key:\"title\",fn:function(){return [_c('b-card-title',{class:{ tab__title_xl: index === 0, disabled: docType.count === 0, tab__title__active: _vm.selectedDocTypeIndex === index },attrs:{\"data-v-step-search\":\"1\"}},[_c('span',{staticClass:\"tab__title\"},[_vm._v(\" \"+_vm._s(_vm.getDocTypeHeader(docType.value))+\" \"),_c('span',{staticClass:\"tab__title__count\"},[_vm._v(\"(\"+_vm._s(docType.count)+\")\")])])])]},proxy:true}:null],null,true)},[_c('SearchResultsBlock',{ref:\"resultsBlock\",refInFor:true,attrs:{\"componentKey\":_vm.componentKey,\"resultType\":_vm.selectedDocType,\"results\":_vm.selectedDocTypeResultsElastic,\"query\":_vm.query,\"serverTime\":_vm.timeFromServer,\"searchDocType\":_vm.searchDocType,\"selectedDocTypesFacetsValues\":_vm.selectedDocTypesFacetsValues,\"resultsFacets\":_vm.resultsFacets,\"eventDays\":_vm.eventDates,\"showList\":_vm.showList,\"showCalendar\":_vm.showCalendar,\"showCards\":_vm.showCards,\"daySelected\":_vm.selectedDate,\"docType\":docType.value,\"channels\":_vm.selectedDocTypesFacetsOptions['rooms']},on:{\"onShowChange\":_vm.onOnShowChange,\"select-day\":_vm.setDay,\"is-loading\":_vm.OnChildLoading}}),(!_vm.isComponentOrChildLoading && (!_vm.selectedDocTypeResultsElastic || _vm.selectedDocTypeResultsElastic.length == 0))?_c('div',{staticClass:\"pb-3\"},[_c('h5',[_vm._v(\"No matches were found. Please adjust your search criteria.\")])]):_vm._e(),(_vm.currentPage > 0 && _vm.selectedDocTypeResultsElastic && _vm.selectedDocTypeResultsElastic.length > 0 && _vm.showCards)?_c('b-pagination',{attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"pills\":\"\"},on:{\"change\":_vm.onPageChange},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}}):_vm._e()],1)}),1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[(_vm.searchDocType != 'Speaker' && _vm.searchDocType != 'Abstract')?_c('div',{staticClass:\"view__filter d-flex justify-content-end mb-3\",attrs:{\"data-v-step-search\":\"3\"}},[_c('b-button-group',[_c('b-button',{class:`left-radius ${_vm.buttonStyle('showCards')}`,attrs:{\"variant\":\"outline-dark\"},on:{\"click\":_vm.showCardsComponent}},[_c('span',{staticClass:\"material-icons-outlined align-middle mr-1\"},[_vm._v(\" calendar_view_month \")]),_vm._v(\" \"),_c('span',{staticClass:\"align-middle\"},[_vm._v(\"Cards\")])]),_c('b-button',{class:`${_vm.buttonStyle('showList')}`,attrs:{\"variant\":\"outline-dark\"},on:{\"click\":_vm.showListComponent}},[_c('span',{staticClass:\"material-icons-outlined align-middle mr-1\"},[_vm._v(\" view_agenda \")]),_vm._v(\" \"),_c('span',{staticClass:\"align-middle\"},[_vm._v(\"List\")])]),_c('b-button',{class:`right-radius ${_vm.buttonStyle('showCalendar')}`,attrs:{\"variant\":\"outline-dark\"},on:{\"click\":_vm.showCalendarComponent}},[_c('span',{staticClass:\"material-icons-outlined align-middle mr-1\"},[_vm._v(\" view_timeline \")]),_vm._v(\" \"),_c('span',{staticClass:\"align-middle\"},[_vm._v(\"Calendar\")])])],1)],1):_vm._e(),(_vm.searchDocType != 'Speaker' && _vm.searchDocType != 'Abstract')?_c('div',{staticClass:\"timeLine px-lg-3\",attrs:{\"id\":\"topStickyDays\",\"data-v-step-search\":\"2\"}},[_c('b-row',{staticClass:\"p-2 mb-4 font-black\"},_vm._l((_vm.eventDays),function(eventDay,index){return _c('b-col',{key:eventDay.toString(),staticClass:\"date__text\",class:{ selected: _vm.isSelectedDay(eventDay), disabled: _vm.getDayDocCount(eventDay) == 0 },attrs:{\"data-v-step-schedule\":index == 0 && (_vm.$screen.lg || _vm.$screen.xl || _vm.$screen.xxl) ? 0 : null}},[_c('span',{staticClass:\"d-block\",on:{\"click\":function($event){return _vm.onDayClick(eventDay, $event)}}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPart\")(eventDay))+\" \"),_c('small',[_vm._v(\"(\"+_vm._s(_vm.getDayDocCount(eventDay))+\")\")])])])}),1)],1):_vm._e(),(_vm.showCards && _vm.results)?_c('SearchResultsCards',{key:_vm.componentKey,ref:\"resultsBlock\",attrs:{\"resultType\":_vm.resultType,\"results\":_vm.results,\"query\":_vm.query,\"serverTime\":_vm.serverTime,\"daySelected\":_vm.daySelected,\"searchDocType\":_vm.searchDocType,\"docType\":_vm.docType},on:{\"is-loading\":_vm.OnChildLoading}}):_vm._e(),(_vm.showList && _vm.results)?[_c('div',{ref:\"timelineContainer\"},_vm._l((_vm.sortedTimes),function(time,index){return _c('div',{key:time},[_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"timeline-time pl-xl-4 font-bold\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"1\",\"lg\":\"1\",\"xl\":\"1\"}},[_c('div',{ref:time === _vm.closestTime ? 'scrollTarget' : '',refInFor:true,class:{ sticky__lg: true, scrollTarget: time === _vm.closestTime },attrs:{\"id\":time === _vm.closestTime ? 'scrollTarget' : `time${index}`}},[_vm._v(\" \"+_vm._s(time)+\" \")])]),(false)?_c('b-col',{staticClass:\"timeline-line\",attrs:{\"cols\":\"1\",\"sm\":\"1\",\"md\":\"1\",\"lg\":\"\",\"xl\":\"\"}}):_vm._e(),_c('b-col',{staticClass:\"px-0 pl-lg-5\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"10\",\"lg\":\"11\",\"xl\":\"11\"}},_vm._l((_vm.groupedResults[time]),function(result){return _c('b-container',{key:result.dbId,staticClass:\"mb-3\",attrs:{\"fluid\":\"\"}},[_c('SearchResultsTimeline',{attrs:{\"result\":result,\"serverTime\":_vm.serverTime,\"daySelected\":_vm.daySelected,\"docType\":_vm.docType},on:{\"is-loading\":_vm.OnChildLoading}})],1)}),1)],1)],1)}),0)]:_vm._e(),(_vm.showCalendar && _vm.results && _vm.channels)?_c('SearchResultsCalendar',{key:_vm.componentKey,ref:\"resultsBlock\",attrs:{\"resultType\":_vm.resultType,\"expanded\":true,\"toggable\":false,\"daySelected\":_vm.daySelected,\"results\":_vm.results,\"docType\":_vm.docType,\"channels\":_vm.channels,\"serverTime\":_vm.serverTime},on:{\"is-loading\":_vm.OnChildLoading}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('div',[_c('b-row',[(_vm.results)?[(\n _vm.searchDocType == 'DigitalSession' ||\n _vm.searchDocType == 'DigitalSessionIndustry' ||\n _vm.searchDocType == 'DigitalSessionDailyHighLight' ||\n _vm.searchDocType == 'DigitalSessionEscTV'\n )?_vm._l((_vm.results),function(result){return _c('b-col',{key:result.dbId,staticClass:\"mb-4 card-deck m-0 p-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('SessionResultCard',{attrs:{\"result\":result,\"serverTime\":_vm.serverTime,\"docType\":_vm.docType}})],1)}):_vm._e(),(_vm.searchDocType == 'Speaker')?_vm._l((_vm.results),function(result){return _c('b-col',{key:result.dbId,staticClass:\"pb-2 pb-md-4 px-1 px-md-3\",attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\"}},[_c('SpeakerResultCard',{attrs:{\"result\":result}})],1)}):_vm._e(),(_vm.searchDocType == 'Abstract')?_vm._l((_vm.results),function(result){return _c('b-col',{key:result.dbId,staticClass:\"mb-4 card-deck m-0 p-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('AbstractResultCard',{attrs:{\"result\":result,\"query\":_vm.query},on:{\"abstract-view\":_vm.onAbstractView}})],1)}):_vm._e(),(_vm.resultType == 'IndustryStand')?_vm._l((_vm.results),function(result){return _c('b-col',{key:result.contentId,staticClass:\"pb-2 pb-md-4 px-1 px-md-2\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"4\"}},[_c('IndustryStandResultCard',{attrs:{\"result\":result}})],1)}):_vm._e()]:_vm._e()],2)],1),_c('AbstractModal',{attrs:{\"presentationId\":_vm.currentAbstractModalPresentationId,\"visible\":_vm.abstractModalVisible},on:{\"abstract-modal-close\":_vm.onAbstractModalClose,\"abstract-modal-hidden\":_vm.onAbstractModalHidden}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"session-item card search__card\"},[(!_vm.ressourcesMovedTo365)?_c('router-link',{staticClass:\"d-block stretched-link\",staticStyle:{\"height\":\"0\"},attrs:{\"to\":`/${_vm.eventRoute}/sessions/${_vm.result.source.furl}`}}):_c('a',{staticClass:\"d-bloc stretched-link\",staticStyle:{\"height\":\"0\"},attrs:{\"href\":`${_vm.esc365SessionUrl(_vm.result.source.dbId)}`}}),_c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"d-flex pb-2\"},[(_vm.result.source && _vm.result.source.startTimeUnixEpoc)?_c('div',{staticClass:\"session__time font-bold\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.result.source.startTimeUnixEpoc))+\" • \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.result.source.startTimeUnixEpoc))+\" - \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.result.source.endTimeUnixEpoc))+\" \")]):_c('span',{staticClass:\"search__card__header__date\"},[_vm._v(\"On Demand\")]),(_vm.showLiveBadge && _vm.session.isLive)?_c('span',{staticClass:\"session__card__header_live-now\"},[_vm._v(\"live\")]):_vm._e(),(_vm.result.source.digitalSessionIds && _vm.result.source.digitalSessionIds && _vm.result.source.title)?_c('div',{staticClass:\"session__favorite__button\",attrs:{\"data-v-step-search\":\"4\"}},[_c('FavoriteButton',{attrs:{\"title\":_vm.result.title,\"digitalSessionId\":parseInt(_vm.result.source.digitalSessionIds[0]?.substring(1)),\"scientificSessionId\":parseInt(_vm.result.source.dbId),\"width\":\"20\",\"height\":\"20\"}})],1):_vm._e()]),_c('div',{staticClass:\"d-block text-left lh-1\"},[_c('div',{staticClass:\"session__type d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" co_present \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.result.source.type))])])]),_c('div',{staticClass:\"d-block text-left lh-1\"},[_c('div',{staticClass:\"session__channel d-inline-flex align-items-center font-regular mr-2\"},[(_vm.result.source.roomDisplayName)?_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" place \")]):_vm._e(),_c('span',[_vm._v(_vm._s(this.showRoom(_vm.result.source.roomDisplayName, _vm.result.source.channel)))])]),_c('div',{staticClass:\"session__location--online d-inline-flex align-items-center font-regular\"},[(_vm.result.source.channel)?_c('span',{staticClass:\"mr-1 material-icons-round\"},[_vm._v(\" cast \")]):_vm._e(),_c('span',[_vm._v(_vm._s(this.showChannelRoom(_vm.result.source.roomDisplayName, _vm.result.source.channel)))])])])]),_c('div',{staticClass:\"card-body search__card__body\"},[(!_vm.isSponsoredSessionType(_vm.result.source))?_c('div',{},[(_vm.result.source.title)?_c('h4',{staticClass:\"card-title\",domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['title.text'] ? _vm.result.highlight['title.text'][0] : _vm.result.source.title)}}):_vm._e(),(_vm.result.source.subTitle)?_c('div',{staticClass:\"search__card__body__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.result.source.subTitle)+\" \")]):_vm._e(),(_vm.result.highlight['presentations.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Presentation: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['presentations.text'][0])}})]):(_vm.result.highlight['learning_objectives'])?_c('blockquote',{staticClass:\"search__card__body__snippets text-white-space-pre-wrap pt-4\"},[_c('span',[_vm._v(\"More on the session: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['learning_objectives'][0])}})]):(_vm.result.highlight['topic.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Topic: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['topic.text'][0])}})]):(_vm.result.highlight['contributors.fullname.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Contributor:\")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['contributors.fullname.text'][0])}})]):_vm._e()]):_c('div',[_c('div',{staticClass:\"sponsored-session\"},[_vm._m(0),_c('div',{staticClass:\"sponsored-back\"},[(_vm.result.source.title)?_c('h4',{staticClass:\"card-title\",domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['title.text'] ? _vm.result.highlight['title.text'][0] : _vm.result.source.title)}}):_vm._e(),(_vm.result.source.subTitle)?_c('div',{staticClass:\"search__card__body__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.result.source.subTitle)+\" \")]):_vm._e(),(_vm.result.highlight['presentations.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Presentation: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['presentations.text'][0])}})]):(_vm.result.highlight['learning_objectives'])?_c('blockquote',{staticClass:\"search__card__body__snippets text-white-space-pre-wrap pt-4\"},[_c('span',[_vm._v(\"More on the session: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['learning_objectives'][0])}})]):(_vm.result.highlight['topic.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Topic: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['topic.text'][0])}})]):(_vm.result.highlight['contributors.fullname.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Contributor:\")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['contributors.fullname.text'][0])}})]):_vm._e()])])])]),_c('div',{staticClass:\"card-footer search__card__footer pt-0\"},[(!_vm.ressourcesMovedTo365)?[_c('div',[(_vm.session.isLive)?_c('span',{staticClass:\"search__card__body__duration d-none\"},[_vm._v(\" (\"+_vm._s(_vm.session.durationMinutes)+\"mn) \")]):_vm._e()]),_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"session__progress\",attrs:{\"cols\":\"9\",\"xl\":\"\",\"order\":\"1\",\"order-xl\":\"1\"}},[(_vm.session.isLive)?_c('b-progress',{staticClass:\"search__card__body__progress session__progress\",attrs:{\"value\":_vm.session.progress,\"max\":_vm.session.duration,\"height\":\"0.6em\"}}):_vm._e()],1),(((_vm.session.isLive || _vm.session.isInInterlude) && _vm.session.channelId) || _vm.session.isReplay)?_c('b-col',{staticClass:\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"3\",\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[_c('SessionButton',{staticClass:\"session__card__footer__action\",attrs:{\"session\":_vm.session,\"forceInteract\":_vm.session.isReplay}})],1):_c('b-col',{staticClass:\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"\",\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[_c('router-link',{staticClass:\"session__card__footer__action card-link stretched-link\",attrs:{\"to\":`/${_vm.eventRoute}/sessions/${_vm.result.source.furl}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})])],1)],1)]:[_c('b-col',{staticClass:\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"\",\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[(_vm.result.source.dbId)?_c('a',{staticClass:\"session__card__footer__action card-link stretched-link\",attrs:{\"href\":`${_vm.esc365SessionUrl(_vm.result.source.dbId)}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})]):_vm._e()])]],2)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sponsored-front\"},[_c('div',{staticClass:\"session__title font-black lh-1 mt-2\"},[_vm._v(\"Industry Session\")])])\n}]\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"session-item card search__card\">\r\n <router-link v-if=\"!ressourcesMovedTo365\" :to=\"`/${eventRoute}/sessions/${result.source.furl}`\" class=\"d-block stretched-link\" style=\"height: 0\"></router-link>\r\n <a v-else :href=\"`${esc365SessionUrl(result.source.dbId)}`\" class=\"d-bloc stretched-link\" style=\"height: 0\"></a>\r\n <!-- \r\n ===============================================================================================\r\n CARD HEADER\r\n ===============================================================================================\r\n -->\r\n <div class=\"card-header\">\r\n <div class=\"d-flex pb-2\">\r\n <div v-if=\"result.source && result.source.startTimeUnixEpoc\" class=\"session__time font-bold\">\r\n {{ result.source.startTimeUnixEpoc | formatUnixEpocDayPart }} • {{ result.source.startTimeUnixEpoc | formatUnixEpocTimePart }}\r\n -\r\n {{ result.source.endTimeUnixEpoc | formatUnixEpocTimePart }}\r\n </div>\r\n\r\n <span v-else class=\"search__card__header__date\">On Demand</span>\r\n <span class=\"session__card__header_live-now\" v-if=\"showLiveBadge && session.isLive\">live</span>\r\n\r\n <div\r\n v-if=\"result.source.digitalSessionIds && result.source.digitalSessionIds && result.source.title\"\r\n class=\"session__favorite__button\"\r\n data-v-step-search=\"4\"\r\n >\r\n <FavoriteButton\r\n :title=\"result.title\"\r\n :digitalSessionId=\"parseInt(result.source.digitalSessionIds[0]?.substring(1))\"\r\n :scientificSessionId=\"parseInt(result.source.dbId)\"\r\n width=\"20\"\r\n height=\"20\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-block text-left lh-1\">\r\n <div class=\"session__type d-inline-flex align-items-center font-regular\">\r\n <span class=\"mr-1 material-icons-outlined\"> co_present </span> <span>{{ result.source.type }}</span>\r\n </div>\r\n </div>\r\n <div class=\"d-block text-left lh-1\">\r\n <div class=\"session__channel d-inline-flex align-items-center font-regular mr-2\">\r\n <span class=\"mr-1 material-icons-outlined\" v-if=\"result.source.roomDisplayName\"> place </span>\r\n <span>{{ this.showRoom(result.source.roomDisplayName, result.source.channel) }}</span>\r\n </div>\r\n\r\n <div class=\"session__location--online d-inline-flex align-items-center font-regular\">\r\n <span class=\"mr-1 material-icons-round\" v-if=\"result.source.channel\"> cast </span>\r\n <span>{{ this.showChannelRoom(result.source.roomDisplayName, result.source.channel) }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- \r\n ===============================================================================================\r\n CARD BODY\r\n ===============================================================================================\r\n -->\r\n <div class=\"card-body search__card__body\">\r\n <div class=\"\" v-if=\"!isSponsoredSessionType(result.source)\">\r\n <h4 class=\"card-title\" v-if=\"result.source.title\" v-html=\"result.highlight['title.text'] ? result.highlight['title.text'][0] : result.source.title\"></h4>\r\n <div class=\"search__card__body__subtitle\" v-if=\"result.source.subTitle\">\r\n {{ result.source.subTitle }}\r\n </div>\r\n <!-- Snippets -->\r\n <!-- Presentation Title -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-if=\"result.highlight['presentations.text']\">\r\n <span>Presentation: </span>\r\n <span v-html=\"result.highlight['presentations.text'][0]\"></span>\r\n </blockquote>\r\n <!-- Session LearningObjectives -->\r\n <blockquote class=\"search__card__body__snippets text-white-space-pre-wrap pt-4\" v-else-if=\"result.highlight['learning_objectives']\">\r\n <span>More on the session: </span>\r\n <span v-html=\"result.highlight['learning_objectives'][0]\"></span>\r\n </blockquote>\r\n <!-- Topic Tags -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.highlight['topic.text']\">\r\n <span>Topic: </span>\r\n <span v-html=\"result.highlight['topic.text'][0]\"></span>\r\n </blockquote>\r\n <!-- Contributor -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.highlight['contributors.fullname.text']\">\r\n <span>Contributor:</span>\r\n <span v-html=\"result.highlight['contributors.fullname.text'][0]\"></span>\r\n </blockquote>\r\n </div>\r\n <div v-else>\r\n <div class=\"sponsored-session\">\r\n <div class=\"sponsored-front\">\r\n <div class=\"session__title font-black lh-1 mt-2\">Industry Session</div>\r\n </div>\r\n <div class=\"sponsored-back\">\r\n <h4 class=\"card-title\" v-if=\"result.source.title\" v-html=\"result.highlight['title.text'] ? result.highlight['title.text'][0] : result.source.title\"></h4>\r\n <div class=\"search__card__body__subtitle\" v-if=\"result.source.subTitle\">\r\n {{ result.source.subTitle }}\r\n </div>\r\n <!-- Snippets -->\r\n <!-- Presentation Title -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-if=\"result.highlight['presentations.text']\">\r\n <span>Presentation: </span>\r\n <span v-html=\"result.highlight['presentations.text'][0]\"></span>\r\n </blockquote>\r\n <!-- Session LearningObjectives -->\r\n <blockquote class=\"search__card__body__snippets text-white-space-pre-wrap pt-4\" v-else-if=\"result.highlight['learning_objectives']\">\r\n <span>More on the session: </span>\r\n <span v-html=\"result.highlight['learning_objectives'][0]\"></span>\r\n </blockquote>\r\n <!-- Topic Tags -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.highlight['topic.text']\">\r\n <span>Topic: </span>\r\n <span v-html=\"result.highlight['topic.text'][0]\"></span>\r\n </blockquote>\r\n <!-- Contributor -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.highlight['contributors.fullname.text']\">\r\n <span>Contributor:</span>\r\n <span v-html=\"result.highlight['contributors.fullname.text'][0]\"></span>\r\n </blockquote>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- \r\n ===============================================================================================\r\n CARD FOOTER\r\n ===============================================================================================\r\n -->\r\n <!-- View action to verify -->\r\n <div class=\"card-footer search__card__footer pt-0\">\r\n <template v-if=\"!ressourcesMovedTo365\">\r\n <div>\r\n <span class=\"search__card__body__duration d-none\" v-if=\"session.isLive\"> ({{ session.durationMinutes }}mn) </span>\r\n </div>\r\n <b-row class=\"no-gutters\">\r\n <b-col cols=\"9\" xl order=\"1\" order-xl=\"1\" class=\"session__progress\">\r\n <b-progress\r\n v-if=\"session.isLive\"\r\n class=\"search__card__body__progress session__progress\"\r\n :value=\"session.progress\"\r\n :max=\"session.duration\"\r\n height=\"0.6em\"\r\n ></b-progress>\r\n </b-col>\r\n <b-col\r\n v-if=\"((session.isLive || session.isInInterlude) && session.channelId) || session.isReplay\"\r\n cols=\"3\"\r\n xl=\"session-btn\"\r\n order=\"2\"\r\n order-xl=\"2\"\r\n class=\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\"\r\n >\r\n <SessionButton :session=\"session\" :forceInteract=\"session.isReplay\" class=\"session__card__footer__action\" />\r\n </b-col>\r\n <b-col v-else cols xl=\"session-btn\" order=\"2\" order-xl=\"2\" class=\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\">\r\n <router-link :to=\"`/${eventRoute}/sessions/${result.source.furl}`\" class=\"session__card__footer__action card-link stretched-link\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i\r\n ></router-link>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n <template v-else>\r\n <b-col cols xl=\"session-btn\" order=\"2\" order-xl=\"2\" class=\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\">\r\n <a v-if=\"result.source.dbId\" :href=\"`${esc365SessionUrl(result.source.dbId)}`\" class=\"session__card__footer__action card-link stretched-link\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i\r\n ></a>\r\n </b-col>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { HtmlHelper } from 'src/utils/html-helper';\r\n import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\n import SessionButton from 'src/components/Buttons/SessionButton';\r\n import esc365Mixin from 'src/mixins/esc365Mixin';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n\r\n export default {\r\n name: 'SessionResultCard',\r\n mixins: [esc365Mixin, hybridEventMixin],\r\n components: {\r\n FavoriteButton,\r\n SessionButton,\r\n },\r\n props: {\r\n result: Object,\r\n serverTime: Number,\r\n query: String,\r\n searchDocType: String,\r\n docType: String,\r\n },\r\n data() {\r\n return {\r\n highlight: Object,\r\n presentationsSplit: '',\r\n speakers: '',\r\n role: '',\r\n fulltext: this.query,\r\n };\r\n },\r\n mounted() {\r\n // If needed...\r\n // this.updateRoles();\r\n // if (this.result.source.presentations) this.presentationsSplit = this.result?.source?.presentations[0]?.split(',')[0];\r\n },\r\n\r\n /*\r\n watch: {\r\n result() {\r\n if (this.result.source.presentations) this.presentationsSplit = this.result?.source?.presentations[0]?.split(',')[0];\r\n },\r\n query() {\r\n this.fulltext = this.query;\r\n this.updateRoles();\r\n },\r\n },\r\n */\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n }),\r\n\r\n session() {\r\n let sessionResult = {};\r\n sessionResult.startTime = this.result.source.startTimeUnixEpoc;\r\n sessionResult.endTime = this.result.source.endTimeUnixEpoc;\r\n sessionResult.id = this.result.source.digitalSessionId;\r\n sessionResult.externalLink = null;\r\n sessionResult.rooms =\r\n this.result.source.roomDisplayName || this.result.source.channel ? this.result.source.roomDisplayName + ' ' + this.result.source.channel : 'On demand';\r\n sessionResult.hasExternalLink = this.result.source.externalLink && this.result.source.externalLink !== '';\r\n sessionResult.platformFullVideoId = this.result.source.replayVideoId;\r\n sessionResult.isInInterlude = false; //this.isInInterlude;\r\n sessionResult.isLive = sessionResult?.startTime <= this.serverTime && sessionResult?.endTime > this.serverTime;\r\n sessionResult.isReplay =\r\n sessionResult?.startTime < this.serverTime &&\r\n sessionResult?.endTime < this.serverTime &&\r\n sessionResult?.platformFullVideoId &&\r\n sessionResult?.platformFullVideoId !== undefined &&\r\n sessionResult?.platformFullVideoId !== null &&\r\n sessionResult?.platformFullVideoId !== '';\r\n sessionResult.duration = sessionResult?.endTime - sessionResult?.startTime;\r\n sessionResult.durationMinutes = sessionResult?.duration / (60 * 1000);\r\n sessionResult.progress = this.serverTime - sessionResult?.startTime;\r\n sessionResult.scientificSessionId = this.result.source.dbId; //this.result.data.scientific_session_id?.raw;\r\n sessionResult.channelId = this.result.source.channelId;\r\n //console.log(`externalLink: ${sessionResult.externalLink}`);\r\n //console.log(`hasExternalLink: ${sessionResult.hasExternalLink}`);\r\n //console.log(`channelid: ${sessionResult.channelId}`);\r\n //console.log('startTime ' + DateHelper.browserDateTime(result.startTime));\r\n //console.log('endTime ' + DateHelper.browserDateTime(result.endTime));\r\n return sessionResult;\r\n },\r\n },\r\n methods: {\r\n /*\r\n updateRoles() {\r\n if (this.fulltext) {\r\n this.fulltext = this.fulltext.toLowerCase();\r\n this.speakers = this.result.source.contributors?.find((x) => x.fullname.toLowerCase().includes(this.fulltext));\r\n\r\n this.role = this.speakers ? this.speakers.role : 'Speakers';\r\n return this.role;\r\n } else {\r\n return '';\r\n }\r\n },\r\n */\r\n extractTopicFromSnippet(rawTopics) {\r\n let rawTopicsList = rawTopics;\r\n return rawTopicsList;\r\n },\r\n showRoom(room, channel) {\r\n let rst = 'On Demand';\r\n if (room || channel) {\r\n rst = room ? room : '';\r\n }\r\n\r\n return rst;\r\n },\r\n showChannelRoom(room, channel) {\r\n let rst = '';\r\n if (channel) {\r\n channel = channel ? 'Online' : '';\r\n rst = channel;\r\n }\r\n\r\n return rst;\r\n },\r\n\r\n formatContentSnippet(rawContentSnippet) {\r\n return HtmlHelper.decodeHTMLEntities(rawContentSnippet);\r\n },\r\n isSponsoredSession(rawResult) {\r\n //return false;\r\n return (\r\n rawResult &&\r\n rawResult?.data &&\r\n rawResult?.data?.sub_title &&\r\n rawResult?.data?.sub_title?.raw &&\r\n (rawResult?.data.sub_title?.raw?.toLowerCase()?.includes('sponsored') || rawResult?.data.sub_title?.raw?.toLowerCase()?.includes('supported'))\r\n );\r\n },\r\n navigateToSession(event) {\r\n if (event.target.closest('.session__favorite__button, .search__card__footer__action')) {\r\n return;\r\n }\r\n this.$router.push(`/${this.eventRoute}${this.result.source.digitalUrl}`);\r\n },\r\n\r\n isSponsoredSessionType(session) {\r\n if (session.processType == 'Industry' && this.docType != 'DigitalSessionIndustry') {\r\n console.log('isSponsoredSessionType true');\r\n return true;\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .session__link {\r\n text-decoration: none;\r\n color: inherit;\r\n display: inline-block;\r\n width: 100%;\r\n }\r\n\r\n .session__progress {\r\n margin: auto;\r\n }\r\n\r\n .card-header {\r\n display: block;\r\n }\r\n\r\n .search__card {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n border-radius: 6px;\r\n background: white;\r\n border: solid 1px $grey-lighter;\r\n }\r\n\r\n .search__card__header {\r\n padding: 12px 18px 1.2rem 18px;\r\n }\r\n\r\n .search__card__header__date {\r\n font-size: 0.8rem;\r\n color: $grey;\r\n }\r\n\r\n .search__card__header__button {\r\n display: inline-block;\r\n cursor: pointer;\r\n position: absolute;\r\n right: 7px;\r\n top: 0px;\r\n padding: 7px;\r\n border-left: solid 1px $grey-lighter;\r\n border-bottom: solid 1px $grey-lighter;\r\n border-radius: 0 6px;\r\n }\r\n\r\n .session__time {\r\n font-size: 0.9rem;\r\n color: #ae1022;\r\n }\r\n\r\n .card.session__card {\r\n border-radius: 2rem;\r\n border: 0;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n overflow: hidden;\r\n position: relative;\r\n bottom: 0;\r\n -webkit-transition: all 0.3s ease-in-out;\r\n -moz-transition: all 0.3s ease-in-out;\r\n -ms-transition: all 0.3s ease-in-out;\r\n -o-transition: all 0.3s ease-in-out;\r\n transition: all 0.3s ease-in-out;\r\n cursor: pointer;\r\n }\r\n\r\n .session__card .session__favorite__button {\r\n margin-left: auto;\r\n cursor: pointer;\r\n z-index: 100;\r\n }\r\n\r\n .session__card .material-icons-outlined,\r\n .session__card .material-icons-round {\r\n font-size: 16px;\r\n }\r\n\r\n .card-footer.search__card__footer {\r\n margin-top: auto;\r\n padding: 1rem 1.25rem;\r\n width: 100%;\r\n text-align: right;\r\n }\r\n\r\n .search__card__footer__action {\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n\r\n &:hover,\r\n :focus {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n .search__card__body__snippets {\r\n font-size: 0.8em;\r\n font-style: italic;\r\n }\r\n\r\n .search__card__body__subtitle {\r\n font-size: 0.8em;\r\n }\r\n\r\n .search__card__body__duration {\r\n font-size: 0.85em;\r\n color: $grey;\r\n }\r\n\r\n .session__card__header_live-now {\r\n margin-left: 40px;\r\n color: $secondary;\r\n background-color: var(--congress);\r\n font-size: 0.6em;\r\n text-transform: uppercase;\r\n text-align: center;\r\n padding: 2px 8px;\r\n border-radius: 8px;\r\n }\r\n\r\n .search__card__body__snippets {\r\n font-size: 0.8em;\r\n }\r\n\r\n ::v-deep em {\r\n font-style: italic !important;\r\n }\r\n ::v-deep blockquote em {\r\n font-style: italic;\r\n\r\n font-weight: bold;\r\n }\r\n\r\n /*ONBOARDING TOUR*/\r\n .search__card__header__button.v-tour__target--highlighted {\r\n border-radius: 0.5rem;\r\n }\r\n\r\n .v-step__header,\r\n .v-step,\r\n .v-step__arrow--dark {\r\n background: #000;\r\n }\r\n\r\n\r\n\r\n\r\n /* sponsored sessions reveal on hover */\r\n .session-item .sponsored-session {\r\n background-color: transparent;\r\n }\r\n\r\n .session-item .sponsored-session .sponsored-back {\r\n /*position: absolute;*/\r\n display: none;\r\n opacity: 0;\r\n /* animation */\r\n /*\r\n transform: scale(0);\r\n transition: all 1s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item:hover .sponsored-session .sponsored-back,\r\n .session-item:focus .sponsored-session .sponsored-back {\r\n display: block;\r\n opacity: 1;\r\n /* animation */\r\n /*\r\n transform: scale(1);\r\n transition: all 0.25s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item .sponsored-session .sponsored-front {\r\n /*position: absolute;*/\r\n display: block;\r\n opacity: 1;\r\n /* animation */\r\n /*\r\n transform: scale(1);\r\n transition: all 1s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item:hover .sponsored-session .sponsored-front,\r\n .session-item:focus .sponsored-session .sponsored-front {\r\n display: none;\r\n opacity: 0;\r\n /* animation */\r\n /*\r\n transform: scale(0);\r\n transition: all 0.25s ease-in-out;\r\n */\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionResultCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionResultCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SessionResultCard.vue?vue&type=template&id=1c5a8ca4&scoped=true\"\nimport script from \"./SessionResultCard.vue?vue&type=script&lang=js\"\nexport * from \"./SessionResultCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./SessionResultCard.vue?vue&type=style&index=0&id=1c5a8ca4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c5a8ca4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"search__card p-4\"},[_c('div',{staticClass:\"search__card__header\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-img',{staticClass:\"search__card__header__picture mr-3\",attrs:{\"src\":_vm.result.source.thumbnail ? _vm.result.source.thumbnail : _vm.defaultPicture,\"fluid\":\"\",\"alt\":\"Speaker's Picture\"}}),_c('div',[_c('span',{staticClass:\"search__card__header__name font-black\",domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['fullname.text'] ? _vm.result.highlight['fullname.text'][0] : _vm.result.source.fullName)}}),_c('div',{staticClass:\"lh-1\"},[(_vm.result.source.institution && _vm.result.source.institution.name)?_c('span',{staticClass:\"search__card__header__institution font-regular\",domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['institution.name.text'] ? _vm.result.highlight['institution.name.text'][0] : _vm.result.source.institution.name)}}):_vm._e(),(_vm.result.source.institution && _vm.result.source.institution.country)?_c('span',{staticClass:\"search__card__header__institution font-regular\",domProps:{\"innerHTML\":_vm._s(`, ${_vm.result.highlight['institution.country.text'] ? _vm.result.highlight['institution.country.text'][0] : _vm.result.source.institution.country}`)}}):_vm._e()])])],1)]),_c('div',{staticClass:\"search__card__body\"},[(_vm.result.source.primarySpeciality)?[_c('span',{staticClass:\"search__card__body__specialities_title font-black\"},[_vm._v(\"Specialities\")]),(_vm.result.source.primarySpeciality)?_c('span',{staticClass:\"search__card__body__specialities\",domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['primary_speciality.text'] ? _vm.result.highlight['primary_speciality.text'][0] : _vm.result.source.primarySpeciality)}}):_vm._e()]:_vm._e(),(_vm.result.highlight['institution.name.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Institution : \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['institution.name.text'][0])}})]):(_vm.result.highlight['related_content.title.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Related content: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['related_content.title.text'][0])}})]):(_vm.result.highlight['secondary_specialities.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Specialities: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['secondary_specialities.text'][0])}})]):(_vm.result.highlight['topics_hierarchy.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Topic: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['topics_hierarchy.text'][0])}})]):(_vm.result.highlight['related_content.topics_hierarchy.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Topic: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['related_content.topics_hierarchy.text'][0])}})]):_vm._e()],2),_c('div',{staticClass:\"search__card__footer text-right\"},[(_vm.ressourcesMovedTo365 && _vm.result.source.dbId)?_c('a',{staticClass:\"btn btn-congress rounded-pill\",attrs:{\"href\":`${_vm.esc365PersonUrl(_vm.result.source.dbId)}`}},[_vm._v(\" See details \")]):(!_vm.ressourcesMovedTo365 && _vm.result.source.digitalUrl && _vm.result.source.digitalUrl)?_c('router-link',{staticClass:\"btn btn-congress rounded-pill\",attrs:{\"to\":`/${_vm.eventRoute}${_vm.result.source.digitalUrl}`}},[_vm._v(\" See details \")]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"search__card p-4\">\r\n <div class=\"search__card__header\">\r\n <div class=\"d-flex align-items-center\">\r\n <b-img\r\n class=\"search__card__header__picture mr-3\"\r\n :src=\"result.source.thumbnail ? result.source.thumbnail : defaultPicture\"\r\n fluid\r\n alt=\"Speaker's Picture\"\r\n ></b-img>\r\n <div>\r\n <span\r\n class=\"search__card__header__name font-black\"\r\n v-html=\"result.highlight['fullname.text'] ? result.highlight['fullname.text'][0] : result.source.fullName\"\r\n ></span>\r\n <div class=\"lh-1\">\r\n <span\r\n class=\"search__card__header__institution font-regular\"\r\n v-if=\"result.source.institution && result.source.institution.name\"\r\n v-html=\"result.highlight['institution.name.text'] ? result.highlight['institution.name.text'][0] : result.source.institution.name\"\r\n ></span>\r\n <span\r\n class=\"search__card__header__institution font-regular\"\r\n v-if=\"result.source.institution && result.source.institution.country\"\r\n v-html=\"`, ${result.highlight['institution.country.text'] ? result.highlight['institution.country.text'][0] : result.source.institution.country}`\"\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"search__card__body\">\r\n <template v-if=\"result.source.primarySpeciality\">\r\n <span class=\"search__card__body__specialities_title font-black\">Specialities</span>\r\n <span\r\n class=\"search__card__body__specialities\"\r\n v-if=\"result.source.primarySpeciality\"\r\n v-html=\"result.highlight['primary_speciality.text'] ? result.highlight['primary_speciality.text'][0] : result.source.primarySpeciality\"\r\n ></span>\r\n </template>\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-if=\"result.highlight['institution.name.text']\">\r\n <span>Institution : </span>\r\n <span v-html=\"result.highlight['institution.name.text'][0]\"></span>\r\n </blockquote>\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.highlight['related_content.title.text']\">\r\n <span>Related content: </span>\r\n <span v-html=\"result.highlight['related_content.title.text'][0]\"></span>\r\n </blockquote>\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.highlight['secondary_specialities.text']\">\r\n <span>Specialities: </span>\r\n <span v-html=\"result.highlight['secondary_specialities.text'][0]\"></span>\r\n </blockquote>\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.highlight['topics_hierarchy.text']\">\r\n <span>Topic: </span>\r\n <span v-html=\"result.highlight['topics_hierarchy.text'][0]\"></span>\r\n </blockquote>\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.highlight['related_content.topics_hierarchy.text']\">\r\n <span>Topic: </span>\r\n <span v-html=\"result.highlight['related_content.topics_hierarchy.text'][0]\"></span>\r\n </blockquote>\r\n </div>\r\n\r\n <!-- View action -->\r\n <div class=\"search__card__footer text-right\">\r\n <a v-if=\"ressourcesMovedTo365 && result.source.dbId\" :href=\"`${esc365PersonUrl(result.source.dbId)}`\" class=\"btn btn-congress rounded-pill\"> See details </a>\r\n <router-link\r\n v-else-if=\"!ressourcesMovedTo365 && result.source.digitalUrl && result.source.digitalUrl\"\r\n :to=\"`/${eventRoute}${result.source.digitalUrl}`\"\r\n class=\"btn btn-congress rounded-pill\"\r\n >\r\n See details\r\n </router-link>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\n import { mapState } from 'vuex';\r\n import DefaultPicture from '@/assets/images/platform/default-picture.jpg';\r\n import esc365Mixin from 'src/mixins/esc365Mixin';\r\n\r\n export default {\r\n name: 'SpeakerResultCard',\r\n mixins: [esc365Mixin],\r\n props: {\r\n result: Object,\r\n },\r\n data() {\r\n return {\r\n defaultPicture: DefaultPicture,\r\n };\r\n },\r\n mounted() {\r\n // If needed...\r\n },\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n }),\r\n photoUrl() {\r\n return this.result.thumbnail;\r\n },\r\n },\r\n methods: {\r\n extractTopicFromSnippet(rawTopics) {\r\n let rawTopicsList = rawTopics?.split('|');\r\n let rawTopicsToDisplay = rawTopicsList?.find((rt) => rt.includes('<em>'));\r\n return rawTopicsToDisplay;\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .search__card {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n border-radius: 2rem;\r\n border: 0;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n background: white;\r\n border: 0;\r\n }\r\n\r\n .search__card__header {\r\n font-size: 1.2rem;\r\n\r\n &__institution {\r\n margin-top: 4px;\r\n font-size: 0.9rem;\r\n }\r\n\r\n &__picture {\r\n width: 100px;\r\n border-radius: 1.25rem;\r\n height: auto;\r\n border: solid 1px #e2e2e2;\r\n }\r\n }\r\n\r\n .search__card__header__button {\r\n display: inline-block;\r\n cursor: pointer;\r\n position: absolute;\r\n right: 7px;\r\n top: 0px;\r\n padding: 7px;\r\n border-left: solid 1px $grey-lighter;\r\n border-bottom: solid 1px $grey-lighter;\r\n border-radius: 0 6px;\r\n }\r\n\r\n .search__card__body {\r\n margin-top: 1rem;\r\n\r\n &__specialities {\r\n display: block;\r\n font-size: 0.92rem;\r\n }\r\n }\r\n\r\n .search__card__footer {\r\n margin-top: auto;\r\n padding-top: 2rem;\r\n }\r\n\r\n .search__card__footer__action {\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n\r\n &:hover,\r\n :focus {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n .search__card__body__snippets {\r\n font-size: 0.8em;\r\n }\r\n\r\n ::v-deep em {\r\n font-style: italic !important;\r\n }\r\n ::v-deep blockquote em {\r\n font-style: italic;\r\n font-weight: bold;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpeakerResultCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpeakerResultCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SpeakerResultCard.vue?vue&type=template&id=918a2e9a&scoped=true\"\nimport script from \"./SpeakerResultCard.vue?vue&type=script&lang=js\"\nexport * from \"./SpeakerResultCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./SpeakerResultCard.vue?vue&type=style&index=0&id=918a2e9a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"918a2e9a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.result)?_c('div',{staticClass:\"card search__card\"},[_c('div',{staticClass:\"card-header d-block\"},[_c('div',{staticClass:\"d-flex pb-2\"},[(_vm.result.source && _vm.result.source.startTimeUnixEpoc)?_c('span',{staticClass:\"search__card__header__date font-bold\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.result.source.startTimeUnixEpoc))+\" • \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.result.source.startTimeUnixEpoc))+\" - \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.result.source.endTime))+\" \")]):_vm._e()]),_c('div',{staticClass:\"d-block text-left lh-1\"},[(_vm.result.source && _vm.result.source.session && _vm.result.source.session.room)?_c('div',{staticClass:\"session__channel d-inline-flex align-items-center font-regular mr-2\"},[_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" place \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(this.showRoom(_vm.result.source.session.room)))])]):_vm._e(),(_vm.result.source && _vm.result.source.session && _vm.result.source.session.channel)?_c('div',{staticClass:\"session__location--online d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"mr-1 material-icons-round\"},[_vm._v(\" cast \")]),_c('span',[_vm._v(_vm._s(this.showChannelRoom(_vm.result.source.session.channel)))])]):_vm._e()])]),_c('div',{staticClass:\"card-body search__card__body\"},[(_vm.result.source && _vm.result.source.title)?_c('h4',{staticClass:\"card-title mb-1\",domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['title.text'] ? _vm.result.highlight['title.text'][0] : _vm.result.source.title)}}):_vm._e(),(_vm.result.source && _vm.result.source.contributors)?_c('div',{staticClass:\"search__card__header__author font-regular\"},[_vm._v(\" by \"),(_vm.result.source.contributors)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['contributors.fullname.text'] ? _vm.result.highlight['contributors.fullname.text'][0] : _vm.result.source.contributors[0].fullname)}}):_vm._e()]):_vm._e(),(_vm.abstractContentSearch && _vm.query)?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Content: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.abstractContentSearch)}})]):_vm._e(),(_vm.result.source && _vm.result.highlight['topic.text'])?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Topic: \")]),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.highlight['topic.text'] ? _vm.result.highlight['topic.text'][0] : _vm.result.source.topic)}})]):_vm._e()]),_c('div',{staticClass:\"card-footer search__card__footer pt-0\"},[(_vm.ressourcesMovedTo365 && _vm.result.source && _vm.result.source.dbId)?_c('a',{staticClass:\"search__card__footer__action font-regular\",attrs:{\"href\":`${_vm.esc365AbstractUrl(_vm.result.source.dbId)}`}},[_c('i',{staticClass:\"las la-3x la-t-plus-2 la la-external-link mr-1\"}),_vm._v(\" View abstract \")]):(!_vm.ressourcesMovedTo365)?_c('b-row',[_c('b-col',{staticClass:\"mb-2 text-left\",attrs:{\"cols\":\"6\"}},[(_vm.result.source.researchGatewayLink)?_c('a',{staticClass:\"search__card__footer__action font-regular\",attrs:{\"target\":\"_blank\",\"href\":_vm.result.source.researchGatewayLink}},[_c('i',{staticClass:\"las la-4x la-t-plus-2 las la-chalkboard\"}),_vm._v(\" View Resources \")]):_vm._e()]),_c('b-col',{attrs:{\"cols\":\"6\"}},[_c('span',{staticClass:\"search__card__footer__action font-regular\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onViewClick.apply(null, arguments)}}},[_c('i',{staticClass:\"las la-2x la-file-image\"}),_vm._v(\" View abstract \")])])],1):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"result\" class=\"card search__card\">\r\n <div class=\"card-header d-block\">\r\n <div class=\"d-flex pb-2\">\r\n <span v-if=\"result.source && result.source.startTimeUnixEpoc\" class=\"search__card__header__date font-bold\">\r\n {{ result.source.startTimeUnixEpoc | formatUnixEpocDayPart }} • {{ result.source.startTimeUnixEpoc | formatUnixEpocTimePart }} -\r\n {{ result.source.endTime | formatUnixEpocTimePart }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"d-block text-left lh-1\">\r\n <div v-if=\"result.source && result.source.session && result.source.session.room\" class=\"session__channel d-inline-flex align-items-center font-regular mr-2\">\r\n <span class=\"mr-1 material-icons-outlined\"> place </span> <span>{{ this.showRoom(result.source.session.room) }}</span>\r\n </div>\r\n\r\n <div\r\n v-if=\"result.source && result.source.session && result.source.session.channel\"\r\n class=\"session__location--online d-inline-flex align-items-center font-regular\"\r\n >\r\n <span class=\"mr-1 material-icons-round\"> cast </span><span>{{ this.showChannelRoom(result.source.session.channel) }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\" card-body search__card__body\">\r\n <!-- Title -->\r\n <h4\r\n class=\"card-title mb-1\"\r\n v-if=\"result.source && result.source.title\"\r\n v-html=\"result.highlight['title.text'] ? result.highlight['title.text'][0] : result.source.title\"\r\n ></h4>\r\n\r\n <!-- Presenter -->\r\n <div v-if=\"result.source && result.source.contributors\" class=\"search__card__header__author font-regular\">\r\n by\r\n <span\r\n v-if=\"result.source.contributors\"\r\n v-html=\"result.highlight['contributors.fullname.text'] ? result.highlight['contributors.fullname.text'][0] : result.source.contributors[0].fullname\"\r\n ></span>\r\n </div>\r\n <!-- snippets -->\r\n <!-- content -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-if=\"abstractContentSearch && query\">\r\n <span>Content: </span><span v-html=\"abstractContentSearch\"></span>\r\n </blockquote>\r\n <!-- topic -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-if=\"result.source && result.highlight['topic.text']\">\r\n <span>Topic: </span> <span v-html=\"result.highlight['topic.text'] ? result.highlight['topic.text'][0] : result.source.topic\"></span>\r\n </blockquote>\r\n <!-- institution -->\r\n <!-- <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.data.institution && result.data.institution.snippet\">\r\n <span>Institution: </span><span v-html=\"result.data.institution.snippet\"></span>\r\n </blockquote> -->\r\n <!-- authors -->\r\n <!-- <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.data.authors && result.data.authors.snippet\">\r\n <span>Authors: </span><span v-html=\"result.data.authors.snippet\"></span>\r\n </blockquote> -->\r\n </div>\r\n\r\n <!-- View action -->\r\n <div class=\" card-footer search__card__footer pt-0\">\r\n <a v-if=\"ressourcesMovedTo365 && result.source && result.source.dbId\" :href=\"`${esc365AbstractUrl(result.source.dbId)}`\" class=\"search__card__footer__action font-regular\">\r\n <i class=\"las la-3x la-t-plus-2 la la-external-link mr-1\"></i>\r\n View abstract\r\n </a>\r\n <b-row v-else-if=\"!ressourcesMovedTo365\" >\r\n <b-col cols=\"6\" class=\"mb-2 text-left\">\r\n <a v-if=\"result.source.researchGatewayLink\" target=\"_blank\" class=\"search__card__footer__action font-regular\" :href=\"result.source.researchGatewayLink\">\r\n <i class=\"las la-4x la-t-plus-2 las la-chalkboard\"></i>\r\n View Resources\r\n </a>\r\n </b-col>\r\n <b-col cols=\"6\">\r\n <span class=\"search__card__footer__action font-regular\" @click.stop.prevent=\"onViewClick\">\r\n <i class=\"las la-2x la-file-image\"></i>\r\n View abstract\r\n </span>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { HtmlHelper } from 'src/utils/html-helper';\r\n import esc365Mixin from 'src/mixins/esc365Mixin';\r\n\r\n export default {\r\n name: 'AbstractResultCard',\r\n mixins: [esc365Mixin],\r\n components: {},\r\n props: {\r\n result: Object,\r\n query: String,\r\n },\r\n data() {\r\n return {\r\n abstractContentSearch: '',\r\n };\r\n },\r\n mounted() {\r\n // If needed...\r\n if (this.result.highlight && this.result.highlight['abstract_content']) this.getAbstractContentSearch(this.result.highlight['abstract_content'][0]);\r\n },\r\n watch: {\r\n query() {\r\n this.getAbstractContentSearch(this.result.highlight['abstract_content'][0]);\r\n },\r\n },\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n }),\r\n },\r\n methods: {\r\n getAbstractContentSearch(values) {\r\n let emNembre = values.replaceAll('<em>', '');\r\n emNembre = emNembre.replaceAll('</em>', '');\r\n this.abstractContentSearch = emNembre.slice(0, 255);\r\n if (this.query) {\r\n this.abstractContentSearch = emNembre.replaceAll(this.query, '<em>' + this.query + '</em>');\r\n this.abstractContentSearch = this.abstractContentSearch.includes(this.query) ? this.abstractContentSearch : '';\r\n }\r\n },\r\n showRoom(room) {\r\n let rst = 'On Demand';\r\n if (room) {\r\n rst = room ? room : '';\r\n }\r\n\r\n return rst;\r\n },\r\n showChannelRoom(channel) {\r\n let rst = '';\r\n if (channel) {\r\n channel = channel ? 'Online' : '';\r\n rst = channel;\r\n }\r\n\r\n return rst;\r\n },\r\n extractTopicFromSnippet(rawTopics) {\r\n let rawTopicsList = rawTopics?.split('|');\r\n let rawTopicsToDisplay = rawTopicsList?.find((rt) => rt.includes('<em>'));\r\n return rawTopicsToDisplay;\r\n },\r\n formatContentSnippet(rawContentSnippet) {\r\n return HtmlHelper.decodeHTMLEntities(rawContentSnippet);\r\n },\r\n onViewClick() {\r\n let eventDetails = { presentationId: this.result.source.dbId };\r\n this.$emit('abstract-view', eventDetails);\r\n\r\n //console.log('this.result.data.event_id.raw ' + this.result.data.event_id.raw);\r\n //console.log('this.result.data.title.raw ' + this.result.data.title.raw);\r\n //console.log('this.result.data.presentation_id.raw ' + this.result.data.presentation_id.raw);\r\n //console.log('this.result.data.digital_session_id.raw ' + (this.result.data.digital_session_id?this.result.data.digital_session_id.raw:0));\r\n\r\n // console.log('scientificSessionId',JSON.stringify(this.scientificSessionId));\r\n\r\n /* DataLayer */\r\n this.$gtm.push({\r\n event: 'viewAbstract',\r\n eventId: this.result.source.event.id,\r\n title: this.result.source.title,\r\n presentationId: `P${this.result.source.presentations}`,\r\n digitalSessionId: `${this.result.source.digitalSessionIds ? this.result.source.digitalSessionIds[0] : 0}`,\r\n uniqId: `SESS${this.result.source.dbId ? this.result.source.dbId : 0}`,\r\n });\r\n\r\n /* DataLayer */\r\n //this.$gtm.push({ event: 'onFavClick', eventId: this.eventId, title: this.title, digitalSessionId: this.digitalSessionId, action: !this.isFavorite ? 'add' : 'remove' });\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .search__card {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n border-radius: 6px;\r\n background: white;\r\n border: solid 1px $grey-lighter;\r\n }\r\n\r\n .search__card__header {\r\n &__author {\r\n font-size: 0.9rem;\r\n color: $grey;\r\n }\r\n }\r\n\r\n .search__card__header__date {\r\n font-size: 0.8rem;\r\n color: $grey;\r\n }\r\n\r\n .search__card__header__button {\r\n display: inline-block;\r\n cursor: pointer;\r\n position: absolute;\r\n right: 7px;\r\n top: 0px;\r\n padding: 7px;\r\n border-left: solid 1px $grey-lighter;\r\n border-bottom: solid 1px $grey-lighter;\r\n border-radius: 0 6px;\r\n }\r\n\r\n .search__card__footer {\r\n margin-top: auto;\r\n width: 100%;\r\n text-align: right;\r\n }\r\n\r\n .card-footer.search__card__footer {\r\n margin-top: auto;\r\n padding: 1rem 1.25rem;\r\n width: 100%;\r\n text-align: right;\r\n }\r\n\r\n .search__card__footer__action {\r\n color: var(--congress);\r\n margin-right: 6px;\r\n cursor: pointer;\r\n &:hover,\r\n :focus {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n .search__card__body__snippets {\r\n font-size: 0.8em;\r\n }\r\n\r\n ::v-deep em {\r\n font-style: italic !important;\r\n }\r\n ::v-deep blockquote em {\r\n font-style: italic;\r\n font-weight: bold;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AbstractResultCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AbstractResultCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AbstractResultCard.vue?vue&type=template&id=1fe7a5e8&scoped=true\"\nimport script from \"./AbstractResultCard.vue?vue&type=script&lang=js\"\nexport * from \"./AbstractResultCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./AbstractResultCard.vue?vue&type=style&index=0&id=1fe7a5e8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1fe7a5e8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"search__card\"},[_c('div',{staticClass:\"search__card__header\"},[(_vm.result.title )?_c('div',[(_vm.result.title && _vm.result.title)?_c('span',{staticClass:\"search__card__header__name\",domProps:{\"innerHTML\":_vm._s(_vm.result.title)}}):(_vm.result.title && _vm.result.title)?_c('span',{staticClass:\"search__card__header__name\",domProps:{\"innerHTML\":_vm._s(_vm.result.title)}}):_vm._e()]):_vm._e()]),_c('div',{staticClass:\"search__card__body px-3\"},[(_vm.result.subtitle && _vm.result.subtitle)?[(_vm.result.subtitle && _vm.result.subtitle)?_c('span',{staticClass:\"search__card__body__specialities\",domProps:{\"innerHTML\":_vm._s(_vm.result.subtitle)}}):(_vm.result.subtitle && _vm.result.subtitle)?_c('span',{staticClass:\"search__card__body__specialities\",domProps:{\"innerHTML\":_vm._s(_vm.result.subtitle)}}):_vm._e()]:_vm._e(),(_vm.result.content && _vm.result.content.highlight)?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Description: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.content)}})]):(_vm.result.presentations && _vm.result.presentations.highlight)?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Presentation: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.presentations)}})]):(_vm.result.specialities && _vm.result.specialities.highlight)?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Product: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.specialities)}})]):(_vm.result.topic && _vm.result.topic.highlight)?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Activity: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.topic)}})]):(_vm.result.tracks && _vm.result.tracks.highlight)?_c('blockquote',{staticClass:\"search__card__body__snippets pt-4\"},[_c('span',[_vm._v(\"Keywords: \")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.result.tracks)}})]):_vm._e(),_c('div',{staticClass:\"search__card__header__picture-container\"},[_c('div',{staticClass:\"search__card__header__picture\",style:({ backgroundImage: `url('${_vm.result.thumbnail}')` })})])],2),_c('div',{staticClass:\"search__card__footer\"},[(_vm.result.url && _vm.result.url)?_c('a',{staticClass:\"text-uppercase search__card__footer__action\",attrs:{\"href\":`${_vm.result.url}`}},[_c('i',{staticClass:\"las la-3x la-t-plus-2 la la-external-link mr-1\"}),_vm._v(\" Get more information \")]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"search__card\">\r\n <div class=\"search__card__header\">\r\n <div v-if=\"result.title \">\r\n <span class=\"search__card__header__name\" v-if=\"result.title && result.title\" v-html=\"result.title\"></span>\r\n <span class=\"search__card__header__name\" v-else-if=\"result.title && result.title\" v-html=\"result.title\"></span>\r\n </div>\r\n </div>\r\n <div class=\"search__card__body px-3\">\r\n <!-- short description -->\r\n <template v-if=\"result.subtitle && result.subtitle\">\r\n <span class=\"search__card__body__specialities\" v-if=\"result.subtitle && result.subtitle\" v-html=\"result.subtitle\"> </span>\r\n <span class=\"search__card__body__specialities\" v-else-if=\"result.subtitle && result.subtitle\" v-html=\"result.subtitle\"> </span>\r\n </template>\r\n <!-- Snippets -->\r\n <!-- full description -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-if=\"result.content && result.content.highlight\">\r\n <span>Description: </span><span v-html=\"result.content\"></span>\r\n </blockquote>\r\n <!-- Presentation Title -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.presentations && result.presentations.highlight\">\r\n <span>Presentation: </span><span v-html=\"result.presentations\"></span>\r\n </blockquote>\r\n <!-- Products -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.specialities && result.specialities.highlight\">\r\n <span>Product: </span><span v-html=\"result.specialities\"></span>\r\n </blockquote>\r\n <!-- Topics -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.topic && result.topic.highlight\">\r\n <span>Activity: </span><span v-html=\"result.topic\"></span>\r\n </blockquote>\r\n <!-- Speaker -->\r\n <!-- <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.data.presentations_persons && result.data.presentations_persons.snippet\">\r\n <span>Speaker: </span> <span v-html=\"result.data.presentations_persons.snippet\"></span>\r\n </blockquote> -->\r\n <!-- Keywords -->\r\n <blockquote class=\"search__card__body__snippets pt-4\" v-else-if=\"result.tracks && result.tracks.highlight\">\r\n <span>Keywords: </span><span v-html=\"result.tracks\"></span>\r\n </blockquote>\r\n\r\n <div class=\"search__card__header__picture-container\" style=\"\">\r\n <div class=\"search__card__header__picture\" :style=\"{ backgroundImage: `url('${result.thumbnail}')` }\"></div>\r\n <!--\r\n <b-img v-if=\"result.data.photo_url && result.data.photo_url.raw\" class=\"search__card__header__picture\" :src=\"result.data.photo_url.raw\" fluid alt=\"Stand's Picture\"></b-img>\r\n -->\r\n </div>\r\n </div>\r\n\r\n <!-- View action -->\r\n <div class=\"search__card__footer\">\r\n <a\r\n v-if=\"result.url && result.url\"\r\n :href=\"`${result.url}`\"\r\n class=\"text-uppercase search__card__footer__action\"\r\n >\r\n <i class=\"las la-3x la-t-plus-2 la la-external-link mr-1\"></i>\r\n Get more information\r\n </a>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\n\r\nexport default {\r\n name: 'IndustryStandResultCard',\r\n components: {},\r\n props: {\r\n result: Object,\r\n },\r\n mounted() {\r\n // If needed...\r\n },\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n }),\r\n },\r\n methods: {},\r\n};\r\n</script>\r\n\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n.search__card {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n border-radius: 6px;\r\n background: white;\r\n border: solid 1px $grey-lighter;\r\n}\r\n\r\n.search__card__header {\r\n padding-top: 18px;\r\n padding-left: 18px;\r\n padding-right: 18px;\r\n\r\n font-size: 1.2rem;\r\n\r\n &__name {\r\n font-weight: bold;\r\n }\r\n\r\n &__institution {\r\n margin-top: 4px;\r\n /*font-weight: bold;*/\r\n display: block;\r\n font-size: 0.92rem;\r\n }\r\n\r\n &__picture {\r\n /*display: flex;*/\r\n /*-moz-animation-name: ;\r\n margin: auto;\r\n max-height: 100px;\r\n width: auto;\r\n padding: 10px;\r\n */\r\n /*\r\n max-width: 100%;\r\n max-height: 10rem;\r\n margin: auto;\r\n width: auto;\r\n height: auto;\r\n padding: 10px;\r\n */\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n }\r\n}\r\n\r\n.search__card__header__picture-container {\r\n background-color: #fff;\r\n width: 100%;\r\n padding-top: 100%; /* 1:1 Aspect Ratio */\r\n position: relative; /* If you want text inside of it */\r\n}\r\n\r\n.search__card__header__button {\r\n display: inline-block;\r\n cursor: pointer;\r\n position: absolute;\r\n right: 7px;\r\n top: 0px;\r\n padding: 7px;\r\n border-left: solid 1px $grey-lighter;\r\n border-bottom: solid 1px $grey-lighter;\r\n border-radius: 0 6px;\r\n}\r\n\r\n.search__card__body {\r\n margin-top: 22px;\r\n /*padding: 0 18px;*/\r\n\r\n &__specialities_title {\r\n font-size: 1rem;\r\n font-weight: bold;\r\n }\r\n &__specialities {\r\n display: block;\r\n font-size: 0.92rem;\r\n }\r\n}\r\n\r\n.search__card__body__snippets {\r\n font-size: 0.8em;\r\n}\r\n\r\n.search__card__footer {\r\n margin-top: auto;\r\n padding: 16px 8px 8px;\r\n width: 100%;\r\n text-align: right;\r\n}\r\n\r\n.search__card__footer__action {\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n font-weight: bold;\r\n\r\n &:hover,\r\n :focus {\r\n text-decoration: none;\r\n }\r\n}\r\n\r\n.search__card__body__snippets {\r\n font-size: 0.8em;\r\n }\r\n\r\n ::v-deep em {\r\n font-style: italic !important;\r\n }\r\n ::v-deep blockquote em {\r\n font-style: italic;\r\n font-weight: bold;\r\n }\r\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndustryStandResultCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndustryStandResultCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./IndustryStandResultCard.vue?vue&type=template&id=3a73b22e&scoped=true\"\nimport script from \"./IndustryStandResultCard.vue?vue&type=script&lang=js\"\nexport * from \"./IndustryStandResultCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./IndustryStandResultCard.vue?vue&type=style&index=0&id=3a73b22e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a73b22e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-modal',{attrs:{\"id\":\"abstract-modal\",\"size\":\"xl\",\"centered\":\"\",\"no-close-on-esc\":false,\"hide-footer\":\"\",\"no-fade\":\"\"},on:{\"show\":function($event){return _vm.onShow()},\"hide\":function($event){return _vm.onHide()},\"hidden\":function($event){return _vm.onHidden()}},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(){return [_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"aria-label\":\"Close\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"×\")]),_c('h3',{staticClass:\"abstract__content__title\"},[(_vm.isLoading)?[_c('b-skeleton',{attrs:{\"height\":\"30px\",\"width\":\"100%\"}})]:_vm._e(),(!_vm.isLoading && _vm.abstract.title)?[_vm._v(\" \"+_vm._s(_vm.abstract.title)+\" \")]:_vm._e()],2)])],1)],1)]},proxy:true}]),model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[(_vm.isLoading || (_vm.presentationId && _vm.abstract))?[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('h5',{staticClass:\"abstract__details__content__title\"},[(_vm.isLoading)?[_c('b-skeleton',{attrs:{\"height\":\"30px\",\"width\":\"200px\"}})]:_vm._e(),(!_vm.isLoading && _vm.abstract.authors)?[_vm._v(\" Authors \")]:_vm._e()],2),_c('div',{staticClass:\"abstract_authors mb-3\"},[(_vm.isLoading)?_vm._l((2),function(n){return _c('b-skeleton',{key:n,attrs:{\"height\":\"30px\",\"width\":\"100%\"}})}):_vm._e(),(!_vm.isLoading && _vm.abstract.authors)?[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.abstract.authors)}})]:_vm._e()],2),_c('h5',{staticClass:\"abstract__details__content__title\"},[(_vm.isLoading)?[_c('b-skeleton',{attrs:{\"height\":\"30px\",\"width\":\"200px\"}})]:[_vm._v(\" Abstract \")]],2),_c('div',{staticClass:\"abstract_content\"},[(_vm.isLoading)?_vm._l((10),function(n){return _c('b-skeleton',{key:n,attrs:{\"height\":\"30px\",\"width\":\"100%\"}})}):[(!_vm.abstract.isUnderEmbargo)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.abstractContentFormatted)}}):_c('span',[_vm._v(\" This abstract is under embargo until \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.abstract.embargoDate))+\" - \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.abstract.embargoDate))+\" \")])]],2)])],1)],1)]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-modal id=\"abstract-modal\" size=\"xl\" centered v-model=\"show\" @show=\"onShow()\" @hide=\"onHide()\" @hidden=\"onHidden()\" :no-close-on-esc=\"false\" hide-footer no-fade>\r\n <template #modal-header>\r\n <b-container fluid>\r\n <b-row>\r\n <b-col cols=\"12\">\r\n <!-- close -->\r\n <button type=\"button\" aria-label=\"Close\" class=\"close\" @click=\"close()\">×</button>\r\n <h3 class=\"abstract__content__title\">\r\n <!-- Title -->\r\n <template v-if=\"isLoading\">\r\n <b-skeleton height=\"30px\" width=\"100%\"></b-skeleton>\r\n </template>\r\n\r\n <template v-if=\"!isLoading && abstract.title\">\r\n {{ abstract.title }}\r\n </template>\r\n </h3>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </template>\r\n <template v-if=\"isLoading || (presentationId && abstract)\">\r\n <b-container fluid>\r\n <b-row>\r\n <b-col cols=\"12\">\r\n <!-- Authors -->\r\n <h5 class=\"abstract__details__content__title\">\r\n <template v-if=\"isLoading\">\r\n <b-skeleton height=\"30px\" width=\"200px\"></b-skeleton>\r\n </template>\r\n <template v-if=\"!isLoading && abstract.authors\"> Authors </template>\r\n </h5>\r\n <div class=\"abstract_authors mb-3\">\r\n <template v-if=\"isLoading\">\r\n <b-skeleton v-for=\"n in 2\" :key=\"n\" height=\"30px\" width=\"100%\"></b-skeleton>\r\n </template>\r\n\r\n <template v-if=\"!isLoading && abstract.authors\">\r\n <span v-html=\"abstract.authors\"></span>\r\n </template>\r\n </div>\r\n <!-- Content -->\r\n <h5 class=\"abstract__details__content__title\">\r\n <template v-if=\"isLoading\">\r\n <b-skeleton height=\"30px\" width=\"200px\"></b-skeleton>\r\n </template>\r\n <template v-else> Abstract </template>\r\n </h5>\r\n <div class=\"abstract_content\">\r\n <template v-if=\"isLoading\">\r\n <b-skeleton v-for=\"n in 10\" :key=\"n\" height=\"30px\" width=\"100%\"></b-skeleton>\r\n </template>\r\n <template v-else>\r\n <span v-if=\"!abstract.isUnderEmbargo\" v-html=\"abstractContentFormatted\"></span>\r\n <span v-else> This abstract is under embargo until {{ abstract.embargoDate | formatUnixEpocDayPart }} - {{ abstract.embargoDate | formatUnixEpocTimePart }} </span>\r\n </template>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </template>\r\n </b-modal>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport { HtmlHelper } from 'src/utils/html-helper';\r\nimport { MediaApiService } from 'src/services/media-api';\r\n\r\nexport default {\r\n name: 'MediaModal',\r\n props: {\r\n presentationId: Number,\r\n visible: Boolean,\r\n },\r\n components: {},\r\n data() {\r\n return {\r\n isLoading: true,\r\n abstract: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({}),\r\n show: {\r\n get() {\r\n return this.visible;\r\n }\r\n /*,\r\n set(show) {\r\n if (this.visible != show) {\r\n if (!show) {\r\n //this.close();\r\n } else {\r\n this.visible = show;\r\n }\r\n }\r\n },*/\r\n },\r\n abstractContentFormatted: {\r\n get() {\r\n return HtmlHelper.decodeHTMLEntities(this.abstract.content);\r\n },\r\n },\r\n },\r\n methods: {\r\n close() {\r\n let eventDetails = { presentationId: this.presentationId };\r\n this.$emit('abstract-modal-close', eventDetails);\r\n },\r\n onShow() {\r\n //console.log('onShow');\r\n if (this.presentationId) {\r\n this.isLoading = true;\r\n this.fecthAbstract();\r\n }\r\n },\r\n onHide() {\r\n //console.log('onHide');\r\n },\r\n onHidden() {\r\n //console.log('onHidden');\r\n let eventDetails = { presentationId: this.presentationId };\r\n this.$emit('abstract-modal-hidden', eventDetails);\r\n },\r\n fecthAbstract() {\r\n MediaApiService.getPresentationAbstract(this.presentationId).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n //console.log('fecthAbstract' + JSON.stringify(data));\r\n this.abstract = data;\r\n }\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n@import '~@/styles/theme';\r\n\r\n::v-deep #abstract-modal .modal-header {\r\n border-bottom: none;\r\n padding: 2rem 0 1rem 2rem;\r\n}\r\n\r\n::v-deep #abstract-modal .modal-body {\r\n height: 80vh; /* max 80% of the viewport height */\r\n overflow-y: auto;\r\n padding: 1rem 2rem;\r\n}\r\n::v-deep #abstract-modal .modal-body .image {\r\n margin:auto;\r\n text-align: center;\r\n}\r\n::v-deep #abstract-modal .modal-body .table-grid table{\r\n margin:auto;\r\n}\r\n::v-deep #abstract-modal .modal-body .table-legend {\r\n margin:auto;\r\n text-align: center;\r\n}\r\n.abstract__content__title {\r\n font-size: 1.5em;\r\n}\r\n\r\n.abstract__details__content__title {\r\n font-size: 1.2em;\r\n}\r\n\r\n.abstract_authors,\r\n.abstract_content {\r\n font-size: 0.8em;\r\n}\r\n\r\n/*\r\n::v-deep #abstract-modal .abstract_content br+br\r\n{\r\n display: none;\r\n}\r\n*/\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AbstractModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AbstractModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AbstractModal.vue?vue&type=template&id=c3d0e27c&scoped=true\"\nimport script from \"./AbstractModal.vue?vue&type=script&lang=js\"\nexport * from \"./AbstractModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./AbstractModal.vue?vue&type=style&index=0&id=c3d0e27c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c3d0e27c\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <div>\r\n <b-row>\r\n <!-- MainTemplate -->\r\n <template v-if=\"results\">\r\n <!-- DigitalSession -->\r\n <template\r\n v-if=\"\r\n searchDocType == 'DigitalSession' ||\r\n searchDocType == 'DigitalSessionIndustry' ||\r\n searchDocType == 'DigitalSessionDailyHighLight' ||\r\n searchDocType == 'DigitalSessionEscTV'\r\n \"\r\n >\r\n <b-col v-for=\"result in results\" :key=\"result.dbId\" cols=\"12\" sm=\"6\" md=\"6\" lg=\"4\" xl=\"3\" class=\"mb-4 card-deck m-0 p-0\">\r\n <SessionResultCard :result=\"result\" :serverTime=\"serverTime\" :docType=\"docType\"\r\n />\r\n </b-col>\r\n </template>\r\n\r\n <!-- Speaker -->\r\n <template v-if=\"searchDocType == 'Speaker'\">\r\n <b-col v-for=\"result in results\" :key=\"result.dbId\" sm=\"12\" md=\"6\" lg=\"4\" class=\"pb-2 pb-md-4 px-1 px-md-3\">\r\n <SpeakerResultCard :result=\"result\" />\r\n </b-col>\r\n </template>\r\n\r\n <!-- Abstract -->\r\n <template v-if=\"searchDocType == 'Abstract'\">\r\n <b-col v-for=\"result in results\" :key=\"result.dbId\" cols=\"12\" sm=\"6\" md=\"6\" lg=\"4\" xl=\"3\" class=\"mb-4 card-deck m-0 p-0\">\r\n <AbstractResultCard :result=\"result\" :query=\"query\" @abstract-view=\"onAbstractView\" />\r\n </b-col>\r\n </template>\r\n\r\n <!-- Industry Stand -->\r\n <template v-if=\"resultType == 'IndustryStand'\">\r\n <b-col v-for=\"result in results\" :key=\"result.contentId\" cols=\"12\" sm=\"6\" md=\"6\" lg=\"4\" class=\"pb-2 pb-md-4 px-1 px-md-2\">\r\n <IndustryStandResultCard :result=\"result\" />\r\n </b-col>\r\n </template>\r\n </template>\r\n </b-row>\r\n </div>\r\n <AbstractModal\r\n :presentationId=\"currentAbstractModalPresentationId\"\r\n :visible=\"abstractModalVisible\"\r\n @abstract-modal-close=\"onAbstractModalClose\"\r\n @abstract-modal-hidden=\"onAbstractModalHidden\"\r\n />\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n // import { mapGetters } from 'vuex';\r\n import SessionResultCard from 'src/components/Cards/SessionResultCard';\r\n import SpeakerResultCard from 'src/components/Cards/SpeakerResultCard';\r\n import AbstractResultCard from 'src/components/Cards/AbstractResultCard';\r\n import IndustryStandResultCard from 'src/components/Cards/IndustryStandResultCard';\r\n import AbstractModal from 'src/components/Modals/AbstractModal';\r\n\r\n export default {\r\n name: 'SearchResultsCards',\r\n components: {\r\n SessionResultCard,\r\n SpeakerResultCard,\r\n AbstractResultCard,\r\n IndustryStandResultCard,\r\n AbstractModal,\r\n },\r\n props: {\r\n resultType: String,\r\n results: Array,\r\n query: String,\r\n serverTime: Number,\r\n daySelected: Date,\r\n searchDocType: String,\r\n docType: String\r\n },\r\n watch: {\r\n results(newResults) {\r\n this.results = newResults;\r\n },\r\n },\r\n data() {\r\n return {\r\n abstractModalPresentationId: null,\r\n abstractModalVisible: false,\r\n };\r\n },\r\n mounted() {\r\n this.$emit('is-loading', false);\r\n },\r\n computed: {\r\n showAbstractModal: {\r\n get() {\r\n return this.abstractModalVisible;\r\n },\r\n set(show) {\r\n if (this.abstractModalVisible != show) this.abstractModalVisible = show;\r\n },\r\n },\r\n currentAbstractModalPresentationId: {\r\n get() {\r\n return this.abstractModalPresentationId;\r\n },\r\n set(presentationId) {\r\n if (this.abstractModalPresentationId != presentationId) this.abstractModalPresentationId = presentationId;\r\n },\r\n },\r\n },\r\n methods: {\r\n onAbstractModalClose() {\r\n //console.log('onAbstractModalClose ' + e.presentationId);\r\n this.currentAbstractModalPresentationId = null;\r\n this.showAbstractModal = false;\r\n },\r\n onAbstractView(e) {\r\n //console.log('onAbstractView ' + e.presentationId);\r\n this.currentAbstractModalPresentationId = e.presentationId;\r\n this.showAbstractModal = true;\r\n },\r\n onAbstractModalHidden() {\r\n //console.log('onAbstractModalClose ' + e.presentationId);\r\n this.currentAbstractModalPresentationId = null;\r\n this.showAbstractModal = false;\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchResultsCards.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchResultsCards.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchResultsCards.vue?vue&type=template&id=2c079d6b&scoped=true\"\nimport script from \"./SearchResultsCards.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResultsCards.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResultsCards.vue?vue&type=style&index=0&id=2c079d6b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c079d6b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"session-item\"},[_c('b-row',{staticClass:\"card session__card px-4 py-3 d-block\"},[_c('b-row',[_c('b-col',{staticClass:\"header\"},[(_vm.result.source && _vm.result.source.startTimeUnixEpoc)?_c('span',{staticClass:\"search__card__header__date session__time font-bold\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.result.source.startTimeUnixEpoc))+\" • \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.result.source.startTimeUnixEpoc))+\" \")]):_c('span',{staticClass:\"search__card__header__date\"},[_vm._v(\"On Demand\")]),(!_vm.isSponsoredSessionType(_vm.result.source))?_c('div',[_c('h4',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.result.source.title))])]):_c('div',[_c('div',{staticClass:\"sponsored-session\"},[_c('div',{staticClass:\"sponsored-front\"},[_c('div',{staticClass:\"card-title\"},[_vm._v(\"Industry Session\")])]),_c('div',{staticClass:\"sponsored-back\"},[_c('h4',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.result.source.title))])])])]),_c('div',{staticClass:\"d-block text-left lh-1\"},[_c('div',{staticClass:\"session__type font-regular d-block d-lg-flex\"},[_c('div',{staticClass:\"d-inline-flex align-items-center mr-3\"},[_c('span',{staticClass:\"material-icons-outlined mr-1\"},[_vm._v(\" co_present \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.result.source.type))])]),_c('div',{staticClass:\"d-inline-flex align-items-center mr-3\"},[_c('span',{staticClass:\"material-icons-outlined mr-1\"},[_vm._v(\" access_time \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.calculateDuration()))])]),_c('div',{staticClass:\"d-inline-flex align-items-center mr-3\"},[(_vm.result.source.roomDisplayName)?_c('span',{staticClass:\"material-icons-outlined mr-1\"},[_vm._v(\" place \")]):_vm._e(),_c('span',[_vm._v(_vm._s(this.showRoom(_vm.result.source.roomDisplayName, _vm.result.source.channel)))])]),_c('div',{staticClass:\"d-inline-flex align-items-center mr-3\"},[(_vm.result.source.channel)?_c('span',{staticClass:\"material-icons-round mr-1\"},[_vm._v(\" cast \")]):_vm._e(),_c('span',[_vm._v(_vm._s(this.showChannelRoom(_vm.result.source.roomDisplayName, _vm.result.source.channel)))])])])])]),(_vm.result.source.digitalSessionIds && _vm.result.source.digitalSessionIds && _vm.result.source.title)?_c('b-col',{staticClass:\"search__card__header__button\",attrs:{\"cols\":\"2\",\"xl\":\"1\"}},[_c('FavoriteButton',{staticClass:\"favoriteBtn pt-0\",attrs:{\"title\":_vm.result.title,\"digitalSessionId\":parseInt(_vm.result.source.digitalSessionIds[0].substring(1)),\"scientificSessionId\":parseInt(_vm.result.source.dbId),\"width\":\"20\",\"height\":\"20\"}})],1):_vm._e()],1),(!_vm.ressourcesMovedTo365)?[_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"session__progress\",attrs:{\"cols\":\"12\",\"xl\":\"\",\"order\":\"1\",\"order-xl\":\"1\"}},[(_vm.session.isLive)?_c('b-progress',{staticClass:\"mt-3 search__card__body__progress session__progress\",attrs:{\"value\":_vm.session.progress,\"max\":_vm.session.duration,\"height\":\"0.6em\"}}):_vm._e()],1),((_vm.session.isLive || _vm.session.isInInterlude) && _vm.session.channelId || _vm.session.isReplay)?_c('b-col',{staticClass:\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"12\",\"xl\":\"1\",\"order\":\"2\",\"order-xl\":\"2\"}},[_c('SessionButton',{staticClass:\"session__card__footer__action\",attrs:{\"session\":_vm.session,\"forceInteract\":_vm.session.isReplay}})],1):_c('b-col',{staticClass:\"text-right text-xl-right pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[_c('router-link',{staticClass:\"session__card__footer__action card-link stretched-link\",attrs:{\"to\":`/${_vm.eventRoute}/sessions/${_vm.result.source.furl}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})])],1)],1)]:[_c('b-col',{staticClass:\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\",attrs:{\"cols\":\"\",\"xl\":\"session-btn\",\"order\":\"2\",\"order-xl\":\"2\"}},[(_vm.result.source.dbId)?_c('a',{staticClass:\"session__card__footer__action card-link stretched-link\",attrs:{\"href\":`${_vm.esc365SessionUrl(_vm.result.source.dbId)}`}},[_vm._v(\" See details \"),_c('i',{staticClass:\"las la-4x la-t-plus-2 la-arrow-right\"})]):_vm._e()])]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"session-item\">\r\n <b-row class=\"card session__card px-4 py-3 d-block\">\r\n <b-row>\r\n <b-col class=\"header\">\r\n <span v-if=\"result.source && result.source.startTimeUnixEpoc\" class=\"search__card__header__date session__time font-bold\">\r\n {{ result.source.startTimeUnixEpoc | formatUnixEpocDayPart }} • {{ result.source.startTimeUnixEpoc | formatUnixEpocTimePart }}\r\n </span>\r\n <span v-else class=\"search__card__header__date\">On Demand</span>\r\n\r\n <div v-if=\"!isSponsoredSessionType(result.source)\">\r\n <h4 class=\"card-title\">{{ result.source.title }}</h4>\r\n </div>\r\n <div v-else>\r\n <div class=\"sponsored-session\">\r\n <div class=\"sponsored-front\">\r\n <div class=\"card-title\">Industry Session</div>\r\n </div>\r\n <div class=\"sponsored-back\">\r\n <h4 class=\"card-title\">{{ result.source.title }}</h4>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-block text-left lh-1\">\r\n <div class=\"session__type font-regular d-block d-lg-flex\">\r\n <div class=\"d-inline-flex align-items-center mr-3\">\r\n <span class=\"material-icons-outlined mr-1\"> co_present </span> <span>{{ result.source.type }}</span>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center mr-3\">\r\n <span class=\"material-icons-outlined mr-1\"> access_time </span> <span>{{ calculateDuration() }}</span>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center mr-3\">\r\n <span class=\"material-icons-outlined mr-1\" v-if=\"result.source.roomDisplayName\"> place </span>\r\n <span>{{ this.showRoom(result.source.roomDisplayName, result.source.channel) }}</span>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center mr-3\">\r\n <span class=\"material-icons-round mr-1\" v-if=\"result.source.channel\"> cast </span>\r\n <span>{{ this.showChannelRoom(result.source.roomDisplayName, result.source.channel) }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </b-col>\r\n\r\n <b-col\r\n cols=\"2\"\r\n xl=\"1\"\r\n v-if=\"result.source.digitalSessionIds && result.source.digitalSessionIds && result.source.title\"\r\n class=\"search__card__header__button\"\r\n >\r\n <FavoriteButton\r\n :title=\"result.title\"\r\n :digitalSessionId=\"parseInt(result.source.digitalSessionIds[0].substring(1))\"\r\n :scientificSessionId=\"parseInt(result.source.dbId)\"\r\n width=\"20\"\r\n height=\"20\"\r\n class=\"favoriteBtn pt-0\"\r\n />\r\n </b-col>\r\n </b-row>\r\n <template v-if=\"!ressourcesMovedTo365\">\r\n <b-row class=\"no-gutters\">\r\n <b-col cols=\"12\" xl=\"\" order=\"1\" order-xl=\"1\" class=\"session__progress\">\r\n <b-progress\r\n v-if=\"session.isLive\"\r\n class=\"mt-3 search__card__body__progress session__progress\"\r\n :value=\"session.progress\"\r\n :max=\"session.duration\"\r\n height=\"0.6em\"\r\n ></b-progress>\r\n </b-col>\r\n <b-col v-if=\"(session.isLive || session.isInInterlude) && session.channelId || session.isReplay\" cols=\"12\" xl=\"1\" order=\"2\" order-xl=\"2\" class=\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\">\r\n <SessionButton :session=\"session\" :forceInteract=\"session.isReplay\" class=\"session__card__footer__action\" />\r\n </b-col>\r\n <b-col\r\n v-else\r\n xl=\"session-btn\"\r\n order=\"2\"\r\n order-xl=\"2\"\r\n class=\"text-right text-xl-right pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\"\r\n >\r\n <router-link :to=\"`/${eventRoute}/sessions/${result.source.furl}`\" class=\"session__card__footer__action card-link stretched-link\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i\r\n ></router-link>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n <template v-else>\r\n <b-col cols xl=\"session-btn\" order=\"2\" order-xl=\"2\" class=\"text-right text-xl-right pt-3 pt-md-0 pb-1 pb-xl-0 pl-xl-3 position-static ml-auto\">\r\n <a\r\n v-if=\"result.source.dbId\" \r\n :href=\"`${esc365SessionUrl(result.source.dbId)}`\"\r\n class=\"session__card__footer__action card-link stretched-link\">\r\n See details <i class=\"las la-4x la-t-plus-2 la-arrow-right\"></i\r\n ></a>\r\n </b-col>\r\n </template>\r\n </b-row>\r\n </div>\r\n</template>\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { HtmlHelper } from 'src/utils/html-helper';\r\n import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\n import SessionButton from 'src/components/Buttons/SessionButton';\r\n import esc365Mixin from 'src/mixins/esc365Mixin';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n\r\n export default {\r\n name: 'SearchResultsTimeline',\r\n mixins: [esc365Mixin, hybridEventMixin],\r\n components: {\r\n FavoriteButton,\r\n SessionButton,\r\n },\r\n props: {\r\n result: Object,\r\n serverTime: Number,\r\n query: String,\r\n docType: String,\r\n },\r\n data() {\r\n return {\r\n highlight: Object,\r\n presentationsSplit: '',\r\n speakers: '',\r\n role: '',\r\n fulltext: this.query,\r\n };\r\n },\r\n\r\n mounted() {\r\n this.$emit('is-loading', false);\r\n },\r\n\r\n /*\r\nwatch: {\r\n result() {\r\n if (this.result.source.presentations) this.presentationsSplit = this.result?.source?.presentations[0]?.split(',')[0];\r\n },\r\n query() {\r\n this.fulltext = this.query;\r\n this.updateRoles();\r\n },\r\n},\r\n*/\r\n computed: {\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n }),\r\n\r\n session() {\r\n let sessionResult = {};\r\n //console.log('this.serverTime ' + DateHelper.browserDateTime(this.serverTime));\r\n sessionResult.startTime = this.result.source.startTimeUnixEpoc;\r\n sessionResult.endTime = this.result.source.endTimeUnixEpoc;\r\n sessionResult.id = this.result.source.digitalSessionId;\r\n sessionResult.externalLink = null;\r\n sessionResult.rooms =\r\n this.result.source.roomDisplayName || this.result.source.channel ? this.result.source.roomDisplayName + ' ' + this.result.source.channel : 'On demand';\r\n sessionResult.hasExternalLink = this.result.source.externalLink && this.result.source.externalLink !== '';\r\n sessionResult.platformFullVideoId = this.result.source.replayVideoId;\r\n sessionResult.isInInterlude = false; //this.isInInterlude;\r\n sessionResult.isLive = sessionResult?.startTime <= this.serverTime && sessionResult?.endTime > this.serverTime;\r\n sessionResult.isReplay =\r\n sessionResult?.startTime < this.serverTime &&\r\n sessionResult?.endTime < this.serverTime &&\r\n sessionResult?.platformFullVideoId &&\r\n sessionResult?.platformFullVideoId !== undefined &&\r\n sessionResult?.platformFullVideoId !== null &&\r\n sessionResult?.platformFullVideoId !== '';\r\n sessionResult.duration = sessionResult?.endTime - sessionResult?.startTime;\r\n sessionResult.durationMinutes = sessionResult?.duration / (60 * 1000);\r\n sessionResult.progress = this.serverTime - sessionResult?.startTime;\r\n sessionResult.scientificSessionId = this.result.source.dbId; //this.result.data.scientific_session_id?.raw;\r\n sessionResult.channelId = this.result.source.channelId;\r\n return sessionResult;\r\n },\r\n },\r\n methods: {\r\n /*\r\n updateRoles() {\r\n if (this.fulltext) {\r\n this.fulltext = this.fulltext.toLowerCase();\r\n this.speakers = this.result.source.contributors?.find((x) => x.fullname.toLowerCase().includes(this.fulltext));\r\n\r\n this.role = this.speakers ? this.speakers.role : 'Speakers';\r\n return this.role;\r\n } else {\r\n return '';\r\n }\r\n },\r\n */\r\n extractTopicFromSnippet(rawTopics) {\r\n let rawTopicsList = rawTopics;\r\n return rawTopicsList;\r\n },\r\n showRoom(room, channel) {\r\n let rst = 'On Demand';\r\n if (room || channel) {\r\n rst = room ? room : '';\r\n }\r\n\r\n return rst;\r\n },\r\n showChannelRoom(room, channel) {\r\n let rst = '';\r\n if (channel) {\r\n channel = channel ? 'Online' : '';\r\n rst = channel;\r\n }\r\n\r\n return rst;\r\n },\r\n\r\n formatContentSnippet(rawContentSnippet) {\r\n return HtmlHelper.decodeHTMLEntities(rawContentSnippet);\r\n },\r\n navigateToSession(event) {\r\n if (event.target.closest('.session__favorite__button, .search__card__footer__action')) {\r\n return;\r\n }\r\n this.$router.push(`/${this.eventRoute}${this.result.source.digitalUrl}`);\r\n },\r\n calculateDuration() {\r\n if (this.result.source.startTime && this.result.source.endTime) {\r\n const start = new Date(this.result.source.startTime);\r\n const end = new Date(this.result.source.endTime);\r\n const diffInMs = end - start;\r\n const diffInMinutes = diffInMs / 60000;\r\n return `${diffInMinutes} min.`;\r\n }\r\n },\r\n\r\n isSponsoredSessionType(session) {\r\n if (session.processType === 'Industry' && this.docType != 'DigitalSessionIndustry') {\r\n return true;\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .session__link {\r\n text-decoration: none;\r\n color: inherit;\r\n display: inline-block;\r\n width: 100%;\r\n }\r\n\r\n .card {\r\n flex-direction: unset;\r\n padding: 5px;\r\n min-height: 90px;\r\n cursor: pointer;\r\n }\r\n\r\n .search__card {\r\n display: flex;\r\n height: 100%;\r\n border-radius: 3px;\r\n background: white;\r\n border: solid 1px $grey-lighter;\r\n }\r\n\r\n .search__card__header {\r\n padding: 12px 18px 1.2rem 18px;\r\n }\r\n\r\n .search__card__header__date {\r\n font-size: 0.8rem;\r\n color: $grey;\r\n }\r\n\r\n .search__card__header__button {\r\n display: inline-block;\r\n cursor: pointer;\r\n position: relative;\r\n height: 40px;\r\n }\r\n\r\n .favoriteBtn {\r\n text-align: end;\r\n padding: 8px;\r\n }\r\n\r\n .search__card__body {\r\n padding: 0 18px 1rem 12px;\r\n min-height: 210px;\r\n }\r\n\r\n .search__card__footer {\r\n margin-top: auto;\r\n padding: 8px;\r\n width: 100%;\r\n text-align: right;\r\n }\r\n\r\n .search__card__footer__action {\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n\r\n &:hover,\r\n :focus {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n\r\n .search__card__body__subtitle {\r\n font-size: 0.8em;\r\n }\r\n\r\n .search__card__body__duration {\r\n font-size: 0.85em;\r\n color: $grey;\r\n }\r\n\r\n .session__card__header_live-now {\r\n margin-left: 40px;\r\n color: $secondary;\r\n background-color: var(--congress);\r\n font-size: 0.6em;\r\n text-transform: uppercase;\r\n text-align: center;\r\n padding: 2px 8px;\r\n border-radius: 8px;\r\n }\r\n\r\n.search__card__body__snippets {\r\n font-size: 0.8em;\r\n }\r\n\r\n ::v-deep em {\r\n font-style: italic !important;\r\n }\r\n ::v-deep blockquote em {\r\n font-style: italic;\r\n font-weight: bold;\r\n }\r\n\r\n\r\n /*ONBOARDING TOUR*/\r\n .search__card__header__button.v-tour__target--highlighted {\r\n border-radius: 0.5rem;\r\n }\r\n\r\n .v-step__header,\r\n .v-step,\r\n .v-step__arrow--dark {\r\n background: #000;\r\n }\r\n\r\n /* sponsored sessions reveal on hover */\r\n .session-item .sponsored-session {\r\n background-color: transparent;\r\n }\r\n\r\n .session-item .sponsored-session .sponsored-back {\r\n /*position: absolute;*/\r\n display: none;\r\n opacity: 0;\r\n /* animation */\r\n /*\r\n transform: scale(0);\r\n transition: all 1s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item:hover .sponsored-session .sponsored-back,\r\n .session-item:focus .sponsored-session .sponsored-back {\r\n display: block;\r\n opacity: 1;\r\n /* animation */\r\n /*\r\n transform: scale(1);\r\n transition: all 0.25s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item .sponsored-session .sponsored-front {\r\n /*position: absolute;*/\r\n display: block;\r\n opacity: 1;\r\n /* animation */\r\n /*\r\n transform: scale(1);\r\n transition: all 1s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item:hover .sponsored-session .sponsored-front,\r\n .session-item:focus .sponsored-session .sponsored-front {\r\n display: none;\r\n opacity: 0;\r\n /* animation */\r\n /*\r\n transform: scale(0);\r\n transition: all 0.25s ease-in-out;\r\n */\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchResultsTimeline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchResultsTimeline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchResultsTimeline.vue?vue&type=template&id=03c836de&scoped=true\"\nimport script from \"./SearchResultsTimeline.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResultsTimeline.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResultsTimeline.vue?vue&type=style&index=0&id=03c836de&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03c836de\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"timeline\",attrs:{\"data-expanded\":_vm.expandedData,\"data-toggable\":_vm.toggable}},[(_vm.searchResultsByChannel.length)?_c('div',{staticClass:\"timeline-items pt-3\",class:_vm.toggable ? ' mr-4' : 'mr-0'},[_c('div',{staticClass:\"time-line-full\"},[(_vm.slidesCount > 0)?_c('div',[_c('b-carousel',{ref:\"timelineCarousel\",attrs:{\"interval\":0},on:{\"sliding-start\":_vm.onSlideStart,\"sliding-end\":_vm.onSlideEnd}},_vm._l((_vm.slidesCount),function(slideNumber){return _c('b-carousel-slide',{key:slideNumber,scopedSlots:_vm._u([{key:\"img\",fn:function(){return [_c('b-row',{staticClass:\"channels-row no-gutters w-100\",attrs:{\"data-v-step-search-calendar\":\"0\"}},[(_vm.needChannelCarousel)?_c('b-col',{attrs:{\"cols\":\"carousel__control\"}},[_c('div',{staticClass:\"carousel__control carousel__control--previous\",class:{ invisible: _vm.isSliding },on:{\"click\":function($event){return _vm.onCarouselPrevClick()}}},[_c('i',{staticClass:\"las la-6x la-t-plus-1 la-angle-left\"})])]):_vm._e(),_vm._l((_vm.getChannelsBySlide(slideNumber)),function(channel){return _c('b-col',{key:channel.id},[_c('span',{staticClass:\"channels-row__text\",domProps:{\"innerHTML\":_vm._s(_vm.$options.filters.formatChannelName(channel.name))}})])}),(_vm.needChannelCarousel)?_c('b-col',{attrs:{\"cols\":\"carousel__control\"}},[_c('div',{staticClass:\"carousel__control carousel__control--next\",class:{ invisible: _vm.isSliding },attrs:{\"data-v-step-schedule\":\"1\"},on:{\"click\":function($event){return _vm.onCarouselNextClick()}}},[_c('i',{staticClass:\"las la-6x la-t-plus-1 la-angle-right\"})])]):_vm._e()],2),_c('div',{staticClass:\"sessions-row-container\"},[_c('b-row',{staticClass:\"sessions-row\",style:(`min-height:${20 + _vm.dayDuration / (1000 * _vm.stepSizeFactor)}px`),attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"cols\":\"carousel__timeline\"}},_vm._l((Math.ceil(_vm.dayDuration / (1000 * 60 * 30))),function(index){return _c('fragment',{key:index},[_c('div',{staticClass:\"timeline-time\",style:(`padding-left: 25px;min-height:${(1000 * 60 * 30) / (1000 * _vm.stepSizeFactor)}px;`)},[(_vm.showSharpTimeLine(index))?_c('div',{staticStyle:{\"z-index\":\"2\",\"position\":\"absolute\",\"width\":\"100%\",\"border-top\":\"1px solid #e2e2e2\"}}):_vm._e(),_c('span',{staticStyle:{\"z-index\":\"2\",\"margin\":\"5px 0px\"}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocTimePart\")((_vm.startDayTime + (index - 1) * 1000 * 60 * 30))))]),_c('div',{staticClass:\"channel-timeline-line\"})])])}),1),_vm._l((_vm.getChannelsBySlide(slideNumber)),function(channel,channelLoopIndex){return _c('b-col',{key:channel.id,staticClass:\"channels-divider\"},[_c('div',{staticClass:\"px-2\",style:(`overflow:hidden;position:absolute;width:100%;height:${\n (channel.items[0].startTime - _vm.startDayTime) / (1000 * _vm.stepSizeFactor)\n }px;top:0px;`)},[_c('div',{staticClass:\"stripe\",staticStyle:{\"height\":\"100%\"}})]),_vm._l((channel.items),function(item){return _c('div',{key:item.id,staticClass:\"px-1 px-md-2 session-item\",style:(`z-index: 3;position:absolute;width:100%;height:${(item.endTime - item.startTime) / (1000 * _vm.stepSizeFactor)}px;min-height:${\n (item.endTime - item.startTime) / (1000 * _vm.stepSizeFactor)\n }px;top:${(item.startTime - _vm.startDayTime) / (1000 * _vm.stepSizeFactor)}px;`)},[_c('b-card',{class:`h-100 p-3 session-item-card text-left`,attrs:{\"no-body\":\"\"}},[(!_vm.ressourcesMovedTo365)?_c('router-link',{staticClass:\"d-block stretched-link\",staticStyle:{\"height\":\"0\"},attrs:{\"to\":`/${_vm.eventRoute}/sessions/${item.furl}`}}):_c('a',{staticClass:\"d-block stretched-link\",staticStyle:{\"height\":\"0\"},attrs:{\"href\":`${_vm.esc365SessionUrl(item.scientificSessionId)}`}}),_c('span',{staticClass:\"session__favorite__button\"},[_c('FavoriteButton',{attrs:{\"title\":item.title,\"digitalSessionId\":parseInt(item.digitalSessionId),\"scientificSessionId\":item.idbId,\"width\":\"16\",\"height\":\"16\",\"data-v-step-search\":\"4\"}})],1),_c('div',{staticClass:\"d-inline-flex\"},[_c('span',{staticClass:\"session__time font-bold mr-2\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(item.startTime))+\" - \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(item.endTime))+\" \")]),(_vm.showLiveBadge && item.isLive)?_c('span',{staticClass:\"session__now\"},[_vm._v(\" live \")]):_vm._e(),(item.isOnline)?_c('span',{staticClass:\"session__location--online d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"mr-1 material-icons-round\",attrs:{\"data-v-15c722b7\":\"\"}},[_vm._v(\" cast \")]),_vm._v(\" \"),_c('span',[_vm._v(\"Online\")])]):_vm._e()]),(!_vm.isSponsoredSession(item))?_c('div',[_c('div',{staticClass:\"session__title font-black lh-1 mt-2\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('div',{staticClass:\"session__sub_title lh-1\"},[_vm._v(\" \"+_vm._s(item.subTitle)+\" \")])]):_c('div',[_c('div',{staticClass:\"sponsored-session\"},[_c('div',{staticClass:\"sponsored-front\"},[_c('div',{staticClass:\"session__title font-black lh-1 mt-2\"},[_vm._v(\"Industry Session\")])]),_c('div',{staticClass:\"sponsored-back\"},[_c('div',{staticClass:\"session__title font-black lh-1 mt-2\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('div',{staticClass:\"session__sub_title lh-1\"},[_vm._v(\" \"+_vm._s(item.subTitle)+\" \")])])])]),(!_vm.ressourcesMovedTo365 && (item.isLive || item.isReplay))?_c('div',[_c('SessionButton',{attrs:{\"session\":item,\"forceInteract\":item.isReplay}}),(item.isLive)?_c('div',{staticClass:\"session__progress pt-2\"},[_c('b-progress',{attrs:{\"value\":item.progress,\"max\":item.duration,\"height\":\"0.5em\"}})],1):_vm._e()],1):_vm._e()],1)],1)}),_c('div',{staticClass:\"px-2\",style:(`overflow:hidden;position:absolute;width:100%;height:${\n (_vm.endDayTime - channel.items[channel.items.length - 1].endTime) / (1000 * _vm.stepSizeFactor)\n }px;top:${(channel.items[channel.items.length - 1].endTime - _vm.startDayTime) / (1000 * _vm.stepSizeFactor)}px;`)},[_c('div',{staticClass:\"stripe\",staticStyle:{\"height\":\"100%\"}})]),((channelLoopIndex = 1 && _vm.serverTime >= _vm.startDayTime && _vm.serverTime <= _vm.endDayTime))?_c('div',{ref:\"timeIndicator\",refInFor:true,staticClass:\"time-indicator scrollTarget\",style:(`top:${(_vm.serverTime - _vm.startDayTime) / (1000 * _vm.stepSizeFactor)}px;`),attrs:{\"id\":\"scrollTarget\"}}):_vm._e()],2)}),_c('b-col',{attrs:{\"cols\":\"carousel__control\"}})],2)],1)]},proxy:true}],null,true)})}),1)],1):_vm._e()])]):_vm._e(),(!_vm.isMobile)?_c('v-tour',{attrs:{\"name\":\"search-calendar-tour\",\"steps\":_vm.steps,\"callbacks\":_vm.callbacks,\"active\":_vm.isTourActive}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <section class=\"timeline\" :data-expanded=\"expandedData\" :data-toggable=\"toggable\">\r\n <!-- Time line header -->\r\n\r\n <!-- timeline items -->\r\n <div class=\"timeline-items pt-3\" :class=\"toggable ? ' mr-4' : 'mr-0'\" v-if=\"searchResultsByChannel.length\">\r\n <!-- timeline full (all rows) -->\r\n <div class=\"time-line-full\">\r\n <!-- timeline full items -->\r\n <div v-if=\"slidesCount > 0\">\r\n <b-carousel ref=\"timelineCarousel\" :interval=\"0\" @sliding-start=\"onSlideStart\" @sliding-end=\"onSlideEnd\">\r\n <b-carousel-slide v-for=\"slideNumber in slidesCount\" :key=\"slideNumber\">\r\n <template #img>\r\n <b-row class=\"channels-row no-gutters w-100\" data-v-step-search-calendar=\"0\">\r\n <!-- Previous -->\r\n <b-col v-if=\"needChannelCarousel\" cols=\"carousel__control\">\r\n <div class=\"carousel__control carousel__control--previous\" @click=\"onCarouselPrevClick()\" :class=\"{ invisible: isSliding }\">\r\n <i class=\"las la-6x la-t-plus-1 la-angle-left\"></i>\r\n </div>\r\n </b-col>\r\n\r\n <b-col v-for=\"channel in getChannelsBySlide(slideNumber)\" :key=\"channel.id\">\r\n <span class=\"channels-row__text\" v-html=\"$options.filters.formatChannelName(channel.name)\"></span>\r\n </b-col>\r\n\r\n <!-- Next -->\r\n <b-col v-if=\"needChannelCarousel\" cols=\"carousel__control\">\r\n <div class=\"carousel__control carousel__control--next\" @click=\"onCarouselNextClick()\" :class=\"{ invisible: isSliding }\" data-v-step-schedule=\"1\">\r\n <i class=\"las la-6x la-t-plus-1 la-angle-right\"></i>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <div class=\"sessions-row-container\">\r\n <b-row class=\"sessions-row\" :style=\"`min-height:${20 + dayDuration / (1000 * stepSizeFactor)}px`\" align-h=\"center\">\r\n <b-col cols=\"carousel__timeline\">\r\n <fragment v-for=\"index in Math.ceil(dayDuration / (1000 * 60 * 30))\" :key=\"index\">\r\n <div :style=\"`padding-left: 25px;min-height:${(1000 * 60 * 30) / (1000 * stepSizeFactor)}px;`\" class=\"timeline-time\">\r\n <div v-if=\"showSharpTimeLine(index)\" style=\"z-index: 2; position: absolute; width: 100%; border-top: 1px solid #e2e2e2\"></div>\r\n <span style=\"z-index: 2; margin: 5px 0px\">{{ (startDayTime + (index - 1) * 1000 * 60 * 30) | formatUnixEpocTimePart }}</span>\r\n <div class=\"channel-timeline-line\"></div>\r\n </div>\r\n </fragment>\r\n </b-col>\r\n\r\n <b-col v-for=\"(channel, channelLoopIndex) in getChannelsBySlide(slideNumber)\" :key=\"channel.id\" class=\"channels-divider\">\r\n <div\r\n class=\"px-2\"\r\n :style=\"`overflow:hidden;position:absolute;width:100%;height:${\r\n (channel.items[0].startTime - startDayTime) / (1000 * stepSizeFactor)\r\n }px;top:0px;`\"\r\n >\r\n <div class=\"stripe\" style=\"height: 100%\"></div>\r\n </div>\r\n\r\n <div\r\n v-for=\"item in channel.items\"\r\n :key=\"item.id\"\r\n class=\"px-1 px-md-2 session-item\"\r\n :style=\"`z-index: 3;position:absolute;width:100%;height:${(item.endTime - item.startTime) / (1000 * stepSizeFactor)}px;min-height:${\r\n (item.endTime - item.startTime) / (1000 * stepSizeFactor)\r\n }px;top:${(item.startTime - startDayTime) / (1000 * stepSizeFactor)}px;`\"\r\n >\r\n <b-card no-body :class=\"`h-100 p-3 session-item-card text-left`\">\r\n <router-link\r\n v-if=\"!ressourcesMovedTo365\"\r\n :to=\"`/${eventRoute}/sessions/${item.furl}`\"\r\n class=\"d-block stretched-link\" style=\"height: 0\">\r\n </router-link>\r\n <a\r\n v-else\r\n :href=\"`${esc365SessionUrl(item.scientificSessionId)}`\"\r\n class=\"d-block stretched-link\" style=\"height: 0\">\r\n </a>\r\n <span class=\"session__favorite__button\">\r\n <FavoriteButton\r\n :title=\"item.title\"\r\n :digitalSessionId=\"parseInt(item.digitalSessionId)\"\r\n :scientificSessionId=\"item.idbId\"\r\n width=\"16\"\r\n height=\"16\"\r\n data-v-step-search=\"4\"\r\n />\r\n </span>\r\n <div class=\"d-inline-flex\">\r\n <span class=\"session__time font-bold mr-2\">\r\n {{ item.startTime | formatUnixEpocTimePart }} - {{ item.endTime | formatUnixEpocTimePart }}\r\n </span>\r\n <span class=\"session__now\" v-if=\"showLiveBadge && item.isLive\"> live </span>\r\n <span class=\"session__location--online d-inline-flex align-items-center font-regular\" v-if=\"item.isOnline\">\r\n <span data-v-15c722b7=\"\" class=\"mr-1 material-icons-round\"> cast </span> <span>Online</span>\r\n </span>\r\n </div>\r\n <div v-if=\"!isSponsoredSession(item)\">\r\n <div class=\"session__title font-black lh-1 mt-2\">\r\n {{ item.title }}\r\n </div>\r\n <div class=\"session__sub_title lh-1\">\r\n {{ item.subTitle }}\r\n </div>\r\n </div>\r\n <div v-else>\r\n <div class=\"sponsored-session\">\r\n <div class=\"sponsored-front\">\r\n <div class=\"session__title font-black lh-1 mt-2\">Industry Session</div>\r\n </div>\r\n <div class=\"sponsored-back\">\r\n <div class=\"session__title font-black lh-1 mt-2\">\r\n {{ item.title }}\r\n </div>\r\n <div class=\"session__sub_title lh-1\">\r\n {{ item.subTitle }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div v-if=\"!ressourcesMovedTo365 && (item.isLive || item.isReplay)\">\r\n <SessionButton :session=\"item\" :forceInteract=\"item.isReplay\" />\r\n <div class=\"session__progress pt-2\" v-if=\"item.isLive\">\r\n <b-progress :value=\"item.progress\" :max=\"item.duration\" height=\"0.5em\"></b-progress>\r\n </div>\r\n </div>\r\n </b-card>\r\n </div>\r\n\r\n <div\r\n class=\"px-2\"\r\n :style=\"`overflow:hidden;position:absolute;width:100%;height:${\r\n (endDayTime - channel.items[channel.items.length - 1].endTime) / (1000 * stepSizeFactor)\r\n }px;top:${(channel.items[channel.items.length - 1].endTime - startDayTime) / (1000 * stepSizeFactor)}px;`\"\r\n >\r\n <div class=\"stripe\" style=\"height: 100%\"></div>\r\n </div>\r\n <div\r\n id=\"scrollTarget\"\r\n ref=\"timeIndicator\"\r\n class=\"time-indicator scrollTarget\"\r\n v-if=\"(channelLoopIndex = 1 && serverTime >= startDayTime && serverTime <= endDayTime)\"\r\n :style=\"`top:${(serverTime - startDayTime) / (1000 * stepSizeFactor)}px;`\"\r\n ></div>\r\n </b-col>\r\n\r\n <b-col cols=\"carousel__control\"></b-col>\r\n </b-row>\r\n </div>\r\n </template>\r\n </b-carousel-slide>\r\n </b-carousel>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Time line footer -->\r\n <v-tour v-if=\"!isMobile\" name=\"search-calendar-tour\" :steps=\"steps\" :callbacks=\"callbacks\" :active=\"isTourActive\"></v-tour>\r\n </section>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n //import { MediaApiService } from 'src/services/media-api';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import SessionButton from 'src/components/Buttons/SessionButton';\r\n import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\n import { constants } from 'src/constants';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n import toursManagerMixin from 'src/mixins/toursManagerMixin';\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n import esc365Mixin from 'src/mixins/esc365Mixin';\r\n\r\n export default {\r\n name: 'SearchResultsCalendar',\r\n mixins: [hybridEventMixin, openModalMixin, toursManagerMixin, esc365Mixin],\r\n components: {\r\n SessionButton,\r\n FavoriteButton,\r\n },\r\n props: {\r\n channelId: Number,\r\n expanded: Boolean,\r\n toggable: {\r\n default: true,\r\n type: Boolean,\r\n },\r\n results: Array,\r\n daySelected: Date,\r\n query: String,\r\n selectedDocTypesFacetsValues: {\r\n days: [],\r\n types: [],\r\n tracks: [],\r\n topics: [],\r\n country: [],\r\n specialities: [],\r\n },\r\n docType: String,\r\n channels: Array,\r\n serverTime: Number,\r\n },\r\n data() {\r\n return {\r\n searchResultsByChannel: [],\r\n isTimelineFullFirstOpen: true,\r\n isSliding: false,\r\n allowNextDay: false,\r\n allowPreviousDay: false,\r\n dayDuration: 0,\r\n startDayTime: 0,\r\n endDayTime: 0,\r\n hover: {},\r\n isTourActive: false,\r\n steps: [\r\n {\r\n target: '[data-v-step-search-calendar=\"0\"]',\r\n header: {\r\n //title: '<b>Find your programme</b>'\r\n },\r\n content: `Discover the programme by room. `,\r\n params: {\r\n placement: 'bottom',\r\n highlight: true,\r\n enableScrolling: false,\r\n },\r\n },\r\n ],\r\n callbacks: {\r\n onSkip: () => this.onTourCompleted('searchCalendar'),\r\n onFinish: () => this.onTourCompleted('searchCalendar'),\r\n },\r\n };\r\n },\r\n computed: {\r\n channelsPerSlide() {\r\n let responsivechannelsPerSlide; /* constants.CHANNELS_COUNT_BY_SLIDE_POC; */\r\n if (this.$screen.xxl) responsivechannelsPerSlide = 6;\r\n else if (this.$screen.xl) responsivechannelsPerSlide = 5;\r\n else if (this.$screen.lg) responsivechannelsPerSlide = 4;\r\n else if (this.$screen.md) responsivechannelsPerSlide = 3;\r\n else if (this.$screen.sm) responsivechannelsPerSlide = 2;\r\n else if (this.$screen.xs) responsivechannelsPerSlide = 1;\r\n return responsivechannelsPerSlide;\r\n },\r\n stepSizeFactor() {\r\n return constants.STEP_SIZE_FACTOR;\r\n },\r\n slidesCount() {\r\n if (!this.timeLineFull || this.timeLineFull.length == 0) return 0;\r\n\r\n return Math.ceil(this.timeLineFull.length / this.channelsPerSlide /* constants.CHANNELS_COUNT_BY_SLIDE_POC */);\r\n },\r\n // Timeline status data attribute\r\n expandedData() {\r\n return this.expanded ? 'expanded' : 'collapsed';\r\n },\r\n needChannelCarousel() {\r\n return this.timeLineFull.length > this.channelsPerSlide /* constants.CHANNELS_COUNT_BY_SLIDE_POC */;\r\n },\r\n poolingTimelineDigestInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_TIMELINE_DIGEST_INTERVAL);\r\n },\r\n isMobile() {\r\n return this.$screen.breakpoint === 'xs' || this.$screen.breakpoint === 'sm' || this.$screen.breakpoint === 'md'; // window.innerWidth <= 768; // Détecte les écrans de 768px de large ou moins comme étant des appareils mobiles\r\n },\r\n ...mapGetters(['isPoolingEnabled', 'eventStartDate', 'eventEndDate']),\r\n ...mapState({\r\n eventRoute: (state) => state.app.eventRoute,\r\n eventStartDate: (state) => state.app.eventStartDate,\r\n eventEndDate: (state) => state.app.eventEndDate,\r\n confCmsData: (state) => state.app.confCmsData,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n }),\r\n channelList() {\r\n return this.results;\r\n },\r\n timeLinePosition() {\r\n const totalDayDuration = this.endDayTime - this.startDayTime;\r\n return ((this.serverTime - this.startDayTime) / totalDayDuration) * 100;\r\n },\r\n timeLineFull() {\r\n let _timeLineFull = [];\r\n this.searchResultsByChannel.forEach((channel) => {\r\n let channelItems = channel.items.map((x) => {\r\n return {\r\n title: x.title,\r\n subTitle: x.subTitle,\r\n digitalSessionId: x.digitalSessionId,\r\n idbId: x.idbId,\r\n isOnline: x.isOnline,\r\n startTime: x.startTimeUnixEpoc,\r\n endTime: x.endTimeUnixEpoc,\r\n id: x.digitalSessionId,\r\n externalLink: null,\r\n rooms: x.room || x.channel ? x.room + ' ' + x.channel : 'On demand',\r\n hasExternalLink: x.externalLink && x.externalLink !== '',\r\n platformFullVideoId: x.replayVideoId,\r\n isInInterlude: false, //this.isInInterlude,\r\n isLive: x.startTimeUnixEpoc <= this.serverTime && x.endTimeUnixEpoc > this.serverTime,\r\n isReplay:\r\n x.startTimeUnixEpoc < this.serverTime &&\r\n x.endTimeUnixEpoc < this.serverTime &&\r\n x.replayVideoId &&\r\n x.replayVideoId !== undefined &&\r\n x.replayVideoId !== null &&\r\n x.replayVideoId !== '',\r\n duration: x.endTimeUnixEpoc - x.startTimeUnixEpoc,\r\n durationMinutes: x.calculatedDuration,\r\n progress: this.serverTime - x.startTimeUnixEpoc,\r\n scientificSessionId: x.dbId,\r\n channelId: x.channelId,\r\n isIndustry: x.isIndustry,\r\n furl: x.furl,\r\n };\r\n });\r\n _timeLineFull.push({ channelId: channel.channelId, name: channel.name, order: channel.order, items: channelItems });\r\n });\r\n _timeLineFull = _timeLineFull.filter((x) => x.items.length > 0);\r\n return _timeLineFull;\r\n },\r\n },\r\n watch: {\r\n async results(newResults, oldResults) {\r\n if (newResults && newResults !== oldResults) await this.fetchtimeLineFull();\r\n },\r\n },\r\n async mounted() {\r\n await this.fetchtimeLineFull();\r\n this.$nextTick(() => {\r\n if (!this.isMobile && !this.isTourActive) {\r\n this.isTourActive = true;\r\n if (!this.tours || !this.tours.searchCalendar) this.$tours['search-calendar-tour'].start();\r\n }\r\n });\r\n },\r\n methods: {\r\n isSelectedDay(day) {\r\n return this.$options.filters.formatUnixEpocDayPart(day) === this.$options.filters.formatUnixEpocDayPart(this.timeToDisplay);\r\n },\r\n showSharpTimeLine(index) {\r\n return (DateHelper.isSharpHour(this.startDayTime) && index % 2 == 1) || (!DateHelper.isSharpHour(this.startDayTime) && index % 2 == 0);\r\n },\r\n isSponsoredSession(session) {\r\n return session && session?.isIndustry && this.docType != 'DigitalSessionIndustry';\r\n },\r\n getSessionBgCssClass(session) {\r\n let bgCssClass = 'default-session';\r\n if (session && session?.isIndustry) bgCssClass = 'sponsored-session';\r\n\r\n return bgCssClass;\r\n },\r\n async fetchtimeLineFull() {\r\n this.$emit('is-loading', true);\r\n this.searchResultsByChannel = [];\r\n if (this.channels?.length && this.results?.length) {\r\n this.channels.forEach((channel) => {\r\n let channelItems = this.results.filter((x) => x.source.room == channel.id);\r\n channelItems = channelItems.map((x) => x.source);\r\n this.searchResultsByChannel.push({ channelId: channel.id, name: channel.id, order: channel.order, items: channelItems });\r\n });\r\n this.searchResultsByChannel = this.searchResultsByChannel.filter((x) => x.items.length > 0);\r\n\r\n /*\r\n let timeLine = [];\r\n let this.serverTime = this.serverTime;\r\n if (this.channels?.length && this.results?.length) {\r\n this.channels.forEach((channel) => {\r\n let channelItems = this.results.filter((x) => x.source.room == channel.label);\r\n channelItems = channelItems.map((x) => {\r\n return {\r\n title: x.source.title,\r\n subTitle: x.source.subTitle,\r\n digitalSessionId: x.source.digitalSessionId,\r\n idbId: x.source.idbId,\r\n isOnline: x.source.isOnline,\r\n startTime: x.source.startTimeUnixEpoc,\r\n endTime: x.source.endTimeUnixEpoc,\r\n id: x.source.digitalSessionId,\r\n externalLink: null,\r\n rooms: x.source.room || x.source.channel ? x.source.room + ' ' + x.source.channel : 'On demand',\r\n hasExternalLink: x.source.externalLink && x.source.externalLink !== '',\r\n platformFullVideoId: x.source.replayVideoId,\r\n isInInterlude: false, //this.isInInterlude,\r\n isLive: x.source.startTimeUnixEpoc <= this.serverTime && x.source.endTimeUnixEpoc > this.serverTime,\r\n isReplay:\r\n x.source.startTimeUnixEpoc < this.serverTime &&\r\n x.source.endTimeUnixEpoc < this.serverTime &&\r\n x.source.replayVideoId &&\r\n x.source.replayVideoId !== undefined &&\r\n x.source.replayVideoId !== null &&\r\n x.source.replayVideoId !== '',\r\n duration: x.source.endTimeUnixEpoc - x.source.startTimeUnixEpoc,\r\n durationMinutes: x.source.calculatedDuration,\r\n progress: this.serverTime - x.source.startTimeUnixEpoc,\r\n scientificSessionId: x.source.dbId,\r\n channelId: x.source.channelId,\r\n isIndustry: x.source.isIndustry,\r\n furl: x.source.furl,\r\n };\r\n });\r\n timeLine.push({ channelId: channel.id, name: channel.label, order: channel.order, items: channelItems });\r\n });\r\n timeLine = timeLine.filter((x) => x.items.length > 0);\r\n */\r\n\r\n //Other way to do the same thing. Not sure which is fastest\r\n /*\r\n timeLine = this.results?.reduce((acc, result) => {\r\n const room = result.source.room;\r\n const channel = this.channels.find((x) => x.label === room);\r\n let accChannel = acc?.find((x) => x.name === room);\r\n if (!accChannel) {\r\n accChannel = { channelId: channel.id, name: channel.label, order: channel.order, items: [] };\r\n accChannel.items.push(result.source);\r\n acc.push(accChannel);\r\n } else {\r\n accChannel?.items.push(result.source);\r\n }\r\n return acc;\r\n }, []);\r\n timeLine = timeLine.sort((a, b) => a.order - b.order);\r\n */\r\n\r\n /*\r\n let timeLineFlat = this.searchResultsByChannel.flatMap((x) => x.items);\r\n this.startDayTime = timeLineFlat.reduce((a, b) => (a.startTime < b.startTime ? a : b)).startTime;\r\n this.endDayTime = timeLineFlat.reduce((a, b) => (a.endTime > b.endTime ? a : b)).endTime;\r\n */\r\n this.startDayTime = this.results?.reduce((a, b) => (a.source.startTimeUnixEpoc < b.source.startTimeUnixEpoc ? a : b)).source.startTimeUnixEpoc;\r\n this.endDayTime = this.results?.reduce((a, b) => (a.source.endTimeUnixEpoc > b.source.endTimeUnixEpoc ? a : b)).source.endTimeUnixEpoc;\r\n\r\n this.startDayTime = DateHelper.ceilToHalfHour(this.startDayTime);\r\n this.endDayTime = DateHelper.floorToHalfHour(this.endDayTime);\r\n this.dayDuration = this.endDayTime - this.startDayTime;\r\n\r\n this.$emit('is-loading', false);\r\n }\r\n },\r\n\r\n // Toggle timeLine status flag & send timeline-toggle event\r\n toggleTimeLine: function () {\r\n this.$emit('timeline-toggle');\r\n },\r\n // Carousel\r\n getChannelsBySlide(slideNumber) {\r\n const slideIndex = slideNumber - 1;\r\n\r\n const sliceFrom = slideIndex * this.channelsPerSlide; /*constants.CHANNELS_COUNT_BY_SLIDE_POC*/\r\n let sliceTo = sliceFrom + this.channelsPerSlide; /*constants.CHANNELS_COUNT_BY_SLIDE_POC*/\r\n if (sliceTo > this.timeLineFull.length) sliceTo = this.timeLineFull.length;\r\n\r\n return this.timeLineFull.slice(sliceFrom, sliceTo);\r\n },\r\n onCarouselPrevClick() {\r\n this.$refs.timelineCarousel.prev();\r\n },\r\n onCarouselNextClick() {\r\n this.$refs.timelineCarousel.next();\r\n },\r\n onSlideStart() {\r\n this.isSliding = true;\r\n },\r\n onSlideEnd() {\r\n this.isSliding = false;\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .session__link {\r\n text-decoration: none;\r\n color: inherit;\r\n }\r\n\r\n .timeline {\r\n font-size: 0.9em;\r\n height: 100%;\r\n\r\n /* timeline toggable mode */\r\n &[data-toggable] {\r\n .timeline-title {\r\n /*cursor: pointer;*/\r\n /*full view disabled*/\r\n border-radius: 0px 0px 5px 0px;\r\n border-width: 0px 1px 1px 0px;\r\n border-style: solid;\r\n border-color: $grey-light;\r\n background-color: $secondary;\r\n\r\n /* timeline title date */\r\n div:nth-child(1) {\r\n width: calc(100% - 60px);\r\n }\r\n\r\n /* timeline title button (calendar or close) */\r\n div:nth-child(2) {\r\n // display: inline-block;\r\n text-align: center;\r\n margin: auto;\r\n font-size: 2em;\r\n width: 60px;\r\n color: var(--congress);\r\n }\r\n }\r\n\r\n .timeline-toggle-action {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n /* timeline not toggable mode */\r\n &:not([data-toggable]) {\r\n .timeline-title {\r\n border-radius: none;\r\n\r\n /* timeline title date */\r\n div:nth-child(1) {\r\n width: 100%;\r\n }\r\n\r\n /* timeline title button (calendar or close) */\r\n div:nth-child(2) {\r\n display: hidden;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* timeline title */\r\n .timeline-title {\r\n /* timeline title date */\r\n div:nth-child(1) {\r\n color: $secondary;\r\n background-color: lightgray;\r\n text-transform: capitalize;\r\n font-size: 1.1em;\r\n }\r\n }\r\n\r\n /* timeline vertical line */\r\n .timeline-line {\r\n position: absolute;\r\n width: 1px;\r\n height: 80%;\r\n left: 24px;\r\n background: var(--congress);\r\n }\r\n\r\n /* timeline vertical line */\r\n .channel-timeline-line {\r\n width: 1px;\r\n height: 80%;\r\n margin-left: 19px;\r\n background: var(--congress);\r\n }\r\n\r\n /* timeline items content */\r\n .timeline-items {\r\n padding-left: 10px;\r\n height: 100%;\r\n min-height: 110vh;\r\n background-color: $secondary;\r\n border-radius: 2rem;\r\n border: 1px solid #e5e5e5;\r\n overflow: hidden;\r\n }\r\n\r\n /* timeline last item stop vertical line and disable bottom separator */\r\n .timeline-items .timeline-item {\r\n &:last-child {\r\n .timeline-text {\r\n border-bottom: none;\r\n }\r\n\r\n .timeline-line {\r\n height: 100%;\r\n background: linear-gradient(to bottom, var(--congress) 0%, $secondary 100%);\r\n }\r\n }\r\n }\r\n\r\n /* timeline item live now badge */\r\n .col-timeline-now {\r\n flex: 0 0 42px;\r\n }\r\n\r\n .timeline-now {\r\n position: relative;\r\n top: 3px;\r\n left: -4px;\r\n color: $secondary;\r\n background-color: var(--congress);\r\n font-size: 0.6em;\r\n text-transform: uppercase;\r\n text-align: center;\r\n padding: 2px 8px;\r\n border-radius: 8px;\r\n }\r\n\r\n /* timeline item bottom separator */\r\n .timeline-text {\r\n border-bottom: 1px solid $grey-lighter;\r\n }\r\n\r\n /* timeline item time */\r\n .col-timeline-time {\r\n position: relative;\r\n flex: 0 0 50px;\r\n }\r\n\r\n .timeline-time {\r\n text-align: center;\r\n margin: auto;\r\n }\r\n\r\n /* timeline item title */\r\n .timeline-text__title,\r\n .session__title {\r\n padding-right: 5px;\r\n overflow-wrap: anywhere;\r\n font-size: 1.2em;\r\n }\r\n\r\n /* timeline item subtitle */\r\n .timeline-text__subtitle {\r\n padding: 5px 0px;\r\n font-size: 1em;\r\n text-transform: uppercase;\r\n color: lighten($grey, 10%);\r\n }\r\n\r\n /* timeline item description */\r\n .timeline-text__description,\r\n .session__sub_title {\r\n padding: 5px 0px;\r\n font-size: 1em;\r\n }\r\n\r\n /* full view background color force for overlay */\r\n\r\n /* timeline collapsed */\r\n .timeline[data-expanded='collapsed'] {\r\n /* button calendar icon visible */\r\n .timeline-expand-action {\r\n display: inline;\r\n }\r\n\r\n /* button close icon hidden */\r\n .timeline-collapse-action {\r\n display: none;\r\n }\r\n\r\n /* full view hidden on both desktop and mobile */\r\n .time-line-full {\r\n display: none;\r\n }\r\n\r\n /* digest view visible on both desktop and mobile */\r\n .time-line-digest {\r\n display: block;\r\n }\r\n\r\n .date__text {\r\n opacity: 1 !important;\r\n }\r\n }\r\n\r\n /* timeline expanded */\r\n .timeline[data-expanded='expanded'] {\r\n .timeline-items {\r\n padding-top: 0 !important;\r\n padding-left: 0 !important;\r\n }\r\n\r\n /* desktop timeline expanded*/\r\n @include media-breakpoint-up(sm) {\r\n /* full view visible */\r\n .time-line-full {\r\n display: block;\r\n /*full view disabled*/\r\n }\r\n\r\n /* digest view hidden */\r\n .time-line-digest {\r\n display: none;\r\n /*full view disabled*/\r\n }\r\n\r\n /* button calendar icon hidden */\r\n .timeline-expand-action {\r\n display: none;\r\n /*full view disabled*/\r\n }\r\n\r\n /* button close icon visible */\r\n .la-times {\r\n display: block;\r\n /*full view disabled*/\r\n }\r\n }\r\n\r\n /* mobile timeline expanded*/\r\n @include media-breakpoint-down(sm) {\r\n /* timeline toggable mode */\r\n &[data-toggable] {\r\n /* full view hidden */\r\n .time-line-full {\r\n display: none;\r\n }\r\n\r\n /* digest view visible */\r\n .time-line-digest {\r\n padding: 0.6rem 0 0rem 0.6rem;\r\n display: block;\r\n }\r\n\r\n /* button calendar icon hidden */\r\n .timeline-expand-action {\r\n display: none;\r\n }\r\n\r\n /* button close icon visible */\r\n .timeline-collapse-action {\r\n display: block;\r\n cursor: pointer;\r\n }\r\n\r\n .date__control {\r\n display: none;\r\n }\r\n }\r\n\r\n /* timeline not toggable mode */\r\n &:not([data-toggable]) {\r\n /* full view visible */\r\n .time-line-full {\r\n display: block;\r\n /*full view disabled*/\r\n }\r\n\r\n /* digest view hidden */\r\n .time-line-digest {\r\n display: none;\r\n /*full view disabled*/\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* full view design */\r\n /*full view disabled*/\r\n\r\n .channels-row {\r\n text-align: center;\r\n box-shadow: 4.5px 2.3px 8.7px 0.3px rgba(0, 0, 0, 0.15);\r\n padding: 0.5rem 0;\r\n align-items: center;\r\n\r\n div:nth-child(2) .channels-row__text {\r\n padding-right: 23px;\r\n }\r\n\r\n div:nth-last-child(2) .channels-row__text {\r\n padding-left: 23px;\r\n }\r\n }\r\n\r\n .channels-row__text {\r\n text-transform: uppercase;\r\n font-size: 0.96rem;\r\n display: block;\r\n }\r\n\r\n .sessions-row {\r\n font-size: 0.8rem;\r\n background: #f1f2f3;\r\n\r\n /*padding: 1.2rem 0;*/\r\n /*min-height: 75vh;*/\r\n /*\r\n min-height:1200px;\r\n height:1200px;\r\n max-height:1200px;\r\n */\r\n .channels-divider {\r\n border-right: 1px solid $grey-lighter;\r\n max-width: 970px;\r\n padding: 0;\r\n /*flex-basis: auto;*/\r\n /*ie fix center content */\r\n }\r\n\r\n div:nth-last-child(2) {\r\n border: none;\r\n }\r\n }\r\n\r\n /* Test for load more scroll */\r\n /*\r\n .sessions-row-container {\r\n\r\n max-height: 90vh;\r\n overflow: scroll;\r\n overflow: -moz-scrollbars-none;\r\n -ms-overflow-style: none;\r\n\r\n &::-webkit-scrollbar {\r\n width: 0 !important;\r\n }\r\n }\r\n */\r\n\r\n .session-item-card {\r\n cursor: pointer;\r\n\r\n &:hover:not(a),\r\n :focus:not(a) {\r\n background-color: var(--congress-light) !important;\r\n }\r\n\r\n ::v-deep .card-link {\r\n &:focus,\r\n &:hover {\r\n color: var(--congress-lighter) !important;\r\n }\r\n }\r\n }\r\n\r\n /* short sessions expand on hover */\r\n .session-item:hover,\r\n .session-item:focus {\r\n z-index: 4 !important;\r\n display: grid;\r\n height: auto !important;\r\n }\r\n\r\n /* sponsored sessions reveal on hover */\r\n .session-item .sponsored-session {\r\n background-color: transparent;\r\n }\r\n\r\n .session-item .sponsored-session .sponsored-back {\r\n /*position: absolute;*/\r\n display: none;\r\n opacity: 0;\r\n /* animation */\r\n /*\r\n transform: scale(0);\r\n transition: all 1s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item:hover .sponsored-session .sponsored-back,\r\n .session-item:focus .sponsored-session .sponsored-back {\r\n display: block;\r\n opacity: 1;\r\n /* animation */\r\n /*\r\n transform: scale(1);\r\n transition: all 0.25s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item .sponsored-session .sponsored-front {\r\n /*position: absolute;*/\r\n display: block;\r\n opacity: 1;\r\n /* animation */\r\n /*\r\n transform: scale(1);\r\n transition: all 1s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item:hover .sponsored-session .sponsored-front,\r\n .session-item:focus .sponsored-session .sponsored-front {\r\n display: none;\r\n opacity: 0;\r\n /* animation */\r\n /*\r\n transform: scale(0);\r\n transition: all 0.25s ease-in-out;\r\n */\r\n }\r\n\r\n .session__favorite__button {\r\n width: 20px;\r\n height: 20px;\r\n position: absolute;\r\n right: 1rem;\r\n top: 1rem;\r\n }\r\n\r\n .session__time {\r\n font-size: 0.9rem;\r\n color: var(--congress);\r\n }\r\n\r\n .session__duration {\r\n font-size: 1em;\r\n color: $grey;\r\n }\r\n\r\n .session__now {\r\n flex: 0 0 42px;\r\n /*float: right;*/\r\n color: $secondary;\r\n background-color: var(--congress);\r\n font-size: 0.6em;\r\n text-transform: uppercase;\r\n text-align: center;\r\n padding: 2px 8px;\r\n border-radius: 8px;\r\n /*margin-right: 25px;*/\r\n position: absolute;\r\n right: 30px;\r\n top: 9px;\r\n }\r\n\r\n .session-item-card .material-icons-outlined,\r\n .session-item-card .material-icons-round {\r\n font-size: 16px;\r\n }\r\n\r\n [class^='session__location--'] {\r\n font-size: 1em;\r\n }\r\n\r\n [class^='session__location--'] span {\r\n }\r\n\r\n /* Carousel */\r\n .carousel {\r\n width: 100%;\r\n }\r\n\r\n .col-carousel__timeline {\r\n flex: 0 0 50px;\r\n text-align: right;\r\n }\r\n\r\n .col-carousel__control {\r\n flex: 0 0 36px;\r\n\r\n & .carousel__control--previous {\r\n margin-left: 12px;\r\n }\r\n\r\n & .carousel__control--next {\r\n margin-right: 12px;\r\n }\r\n }\r\n\r\n .carousel__control {\r\n padding: 6px 9px;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n }\r\n\r\n .date__control {\r\n background-color: var(--congress-dark);\r\n padding: 0px 4px;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n position: relative;\r\n top: 2px;\r\n }\r\n\r\n .date__text {\r\n padding: 0px 10px;\r\n }\r\n\r\n /* Skeletons */\r\n .b-skeleton {\r\n background-color: rgb(224, 224, 224) !important;\r\n }\r\n\r\n .default-session {\r\n background-color: #f8f9fa;\r\n }\r\n\r\n .sponsored-session {\r\n /*background-color: #e6b0aa;*/\r\n background-color: #f8f9fa;\r\n }\r\n\r\n /* date list */\r\n @media (min-width: 992px) {\r\n .date__text {\r\n opacity: 0.6;\r\n }\r\n }\r\n\r\n .date__text:hover {\r\n opacity: 1;\r\n }\r\n\r\n .date__text a {\r\n color: #fff;\r\n }\r\n\r\n .date__text a:hover {\r\n text-decoration: none;\r\n }\r\n\r\n .date__text.selected {\r\n opacity: 1;\r\n position: relative;\r\n }\r\n\r\n .date__text.selected:before {\r\n content: '';\r\n position: absolute;\r\n width: 15px;\r\n height: 15px;\r\n left: calc(50% - 15px);\r\n top: -20px;\r\n transform: translate(50%, -50%) rotate(45deg);\r\n background: #fff;\r\n }\r\n\r\n .btn.btn-congress {\r\n background-color: #000;\r\n float: right;\r\n }\r\n\r\n .timeline-title div.d-lg-block {\r\n font-size: 1em;\r\n }\r\n\r\n .time-indicator {\r\n position: absolute;\r\n border-bottom: 1px dashed #dc3545;\r\n left: -50px;\r\n right: -50px;\r\n height: 2px;\r\n z-index: 4;\r\n }\r\n\r\n /*ONBOARDING TOUR*/\r\n .v-tour__target--highlighted {\r\n border-radius: 0.25rem;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchResultsCalendar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchResultsCalendar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchResultsCalendar.vue?vue&type=template&id=c2398e7c&scoped=true\"\nimport script from \"./SearchResultsCalendar.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResultsCalendar.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResultsCalendar.vue?vue&type=style&index=0&id=c2398e7c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c2398e7c\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <div class=\"view__filter d-flex justify-content-end mb-3\" v-if=\"searchDocType != 'Speaker' && searchDocType != 'Abstract'\" data-v-step-search=\"3\">\r\n <b-button-group>\r\n <b-button variant=\"outline-dark\" @click=\"showCardsComponent\" :class=\"`left-radius ${buttonStyle('showCards')}`\"\r\n ><span class=\"material-icons-outlined align-middle mr-1\"> calendar_view_month </span> <span class=\"align-middle\">Cards</span>\r\n </b-button>\r\n <b-button variant=\"outline-dark\" @click=\"showListComponent\" :class=\"`${buttonStyle('showList')}`\"\r\n ><span class=\"material-icons-outlined align-middle mr-1\"> view_agenda </span> <span class=\"align-middle\">List</span>\r\n </b-button>\r\n <b-button variant=\"outline-dark\" @click=\"showCalendarComponent\" :class=\"`right-radius ${buttonStyle('showCalendar')}`\"\r\n ><span class=\"material-icons-outlined align-middle mr-1\"> view_timeline </span> <span class=\"align-middle\">Calendar</span>\r\n </b-button>\r\n </b-button-group>\r\n </div>\r\n\r\n <div id=\"topStickyDays\" class=\"timeLine px-lg-3\" v-if=\"searchDocType != 'Speaker' && searchDocType != 'Abstract'\" data-v-step-search=\"2\">\r\n <b-row class=\"p-2 mb-4 font-black\">\r\n <b-col\r\n :key=\"eventDay.toString()\"\r\n v-for=\"(eventDay, index) in eventDays\"\r\n class=\"date__text\"\r\n :class=\"{ selected: isSelectedDay(eventDay), disabled: getDayDocCount(eventDay) == 0 }\"\r\n :data-v-step-schedule=\"index == 0 && ($screen.lg || $screen.xl || $screen.xxl) ? 0 : null\"\r\n >\r\n <span @click=\"onDayClick(eventDay, $event)\" class=\"d-block\"\r\n >{{ eventDay | formatUnixEpocDayPart }} <small>({{ getDayDocCount(eventDay) }})</small></span\r\n >\r\n </b-col>\r\n </b-row>\r\n </div>\r\n\r\n <SearchResultsCards\r\n v-if=\"showCards && results\"\r\n :key=\"componentKey\"\r\n ref=\"resultsBlock\"\r\n :resultType=\"resultType\"\r\n :results=\"results\"\r\n :query=\"query\"\r\n :serverTime=\"serverTime\"\r\n :daySelected=\"daySelected\"\r\n :searchDocType=\"searchDocType\"\r\n @is-loading=\"OnChildLoading\"\r\n :docType=\"docType\"\r\n />\r\n\r\n <template v-if=\"showList && results\">\r\n <div ref=\"timelineContainer\">\r\n <div v-for=\"(time, index) in sortedTimes\" :key=\"time\">\r\n <b-row no-gutters>\r\n <b-col cols=\"12\" sm=\"12\" md=\"1\" lg=\"1\" xl=\"1\" class=\"timeline-time pl-xl-4 font-bold\">\r\n <div\r\n :id=\"time === closestTime ? 'scrollTarget' : `time${index}`\"\r\n :class=\"{ sticky__lg: true, scrollTarget: time === closestTime }\"\r\n :ref=\"time === closestTime ? 'scrollTarget' : ''\"\r\n >\r\n {{ time }}\r\n </div>\r\n </b-col>\r\n <b-col v-if=\"false\" cols=\"1\" sm=\"1\" md=\"1\" lg=\"\" xl=\"\" class=\"timeline-line\"> </b-col>\r\n <b-col cols=\"12\" sm=\"12\" md=\"10\" lg=\"11\" xl=\"11\" class=\"px-0 pl-lg-5\">\r\n <b-container v-for=\"result in groupedResults[time]\" :key=\"result.dbId\" fluid class=\"mb-3\">\r\n <SearchResultsTimeline :result=\"result\" :serverTime=\"serverTime\" :daySelected=\"daySelected\" @is-loading=\"OnChildLoading\" :docType=\"docType\" />\r\n </b-container>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </div>\r\n </template>\r\n\r\n <SearchResultsCalendar\r\n v-if=\"showCalendar && results && channels\"\r\n :key=\"componentKey\"\r\n ref=\"resultsBlock\"\r\n :resultType=\"resultType\"\r\n :expanded=\"true\"\r\n :toggable=\"false\"\r\n :daySelected=\"daySelected\"\r\n :results=\"results\"\r\n @is-loading=\"OnChildLoading\"\r\n :docType=\"docType\"\r\n :channels=\"channels\"\r\n :serverTime=\"serverTime\"\r\n />\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n // import { mapGetters } from 'vuex';\r\n import SearchResultsCards from 'src/components/Search/SearchResultsCards';\r\n import SearchResultsTimeline from 'src/components/Search/SearchResultsTimeline';\r\n import SearchResultsCalendar from 'src/components/Search/SearchResultsCalendar';\r\n import { mapGetters, mapState } from 'vuex';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n\r\n export default {\r\n name: 'SearchResultsBlock',\r\n components: {\r\n SearchResultsCards,\r\n SearchResultsCalendar,\r\n SearchResultsTimeline,\r\n },\r\n props: {\r\n componentKey: Number,\r\n resultsBlock: String,\r\n resultType: String,\r\n results: Array,\r\n query: String,\r\n serverTime: Number,\r\n searchDocType: String,\r\n docType: String,\r\n eventDays: Array,\r\n resultsFacets: Object,\r\n showCards: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showList: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showCalendar: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n daySelected: {\r\n type: Date,\r\n default: null,\r\n },\r\n channels: Array,\r\n },\r\n data() {\r\n return {\r\n abstractModalPresentationId: null,\r\n abstractModalVisible: false,\r\n closestTime: null,\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['eventStartDate', 'eventEndDate']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventStartDate: (state) => state.app.eventStartDate,\r\n eventEndDate: (state) => state.app.eventEndDate,\r\n }),\r\n groupedResults() {\r\n return this.results?.reduce((acc, result) => {\r\n const time = result.source.startTimeUnixEpoc ? this.formatUnixEpocTimePart(result.source.startTimeUnixEpoc) : 'On Demand';\r\n if (!acc[time]) {\r\n acc[time] = [];\r\n }\r\n acc[time].push(result);\r\n return acc;\r\n }, {});\r\n },\r\n sortedTimes() {\r\n if (this.groupedResults) return Object.keys(this.groupedResults).sort((a, b) => new Date(`1970/01/01 ${a}`) - new Date(`1970/01/01 ${b}`));\r\n else return 0;\r\n },\r\n isMobile() {\r\n return this.$screen.breakpoint === 'xs' || this.$screen.breakpoint === 'sm' || this.$screen.breakpoint === 'md';\r\n },\r\n },\r\n /*\r\n watch: {\r\n results: {\r\n immediate: true,\r\n handler() {\r\n this.$nextTick(() => {\r\n this.scrollToClosestTime();\r\n });\r\n },\r\n },\r\n },\r\n */\r\n mounted() {},\r\n methods: {\r\n showCardsComponent() {\r\n const onShowChangeArg = { showCards: true, showList: false, showCalendar: false };\r\n this.$emit('onShowChange', onShowChangeArg);\r\n },\r\n showListComponent() {\r\n const onShowChangeArg = { showCards: false, showList: true, showCalendar: false };\r\n this.$emit('onShowChange', onShowChangeArg);\r\n /*\r\n this.$nextTick(() => {\r\n this.scrollToClosestTime();\r\n });\r\n */\r\n },\r\n showCalendarComponent() {\r\n const onShowChangeArg = { showCards: false, showList: false, showCalendar: true };\r\n this.$emit('onShowChange', onShowChangeArg);\r\n },\r\n buttonStyle(button) {\r\n switch (button) {\r\n case 'showCards':\r\n return this.showCards ? 'btn-active' : 'btn-inactive';\r\n case 'showList':\r\n return this.showList ? 'btn-active' : 'btn-inactive';\r\n case 'showCalendar':\r\n return this.showCalendar ? 'btn-active' : 'btn-inactive';\r\n }\r\n },\r\n isSelectedDay(day) {\r\n return this.$options.filters.formatUnixEpocDayPart(day) === this.$options.filters.formatUnixEpocDayPart(this.daySelected);\r\n },\r\n moveToDayByDay(day) {\r\n this.$emit('select-day', day);\r\n },\r\n onDayClick(date, e) {\r\n if (this.getDayDocCount(date) == 0) e.preventDefault();\r\n else if (!this.isSelectedDay(date)) this.moveToDayByDay(date);\r\n },\r\n formatUnixEpocDayPart(timestamp) {\r\n // const date = new Date(timestamp * 1000);\r\n //console.log(date.toLocaleDateString())\r\n\r\n // const date = Vue.filter('formatUnixEpocDayPart', (timestamp))\r\n const date = this.$options.filters.formatUnixEpocDayPart(timestamp);\r\n\r\n return date;\r\n },\r\n formatUnixEpocTimePart(timestamp) {\r\n const date = this.$options.filters.formatUnixEpocTimePart(timestamp);\r\n\r\n return date;\r\n },\r\n getDayDocCount(day) {\r\n return this.resultsFacets?.days?.find((x) => DateHelper.onSiteDateTime(x.value).getDate() == day.getDate())?.text ?? 0;\r\n },\r\n OnChildLoading(isLoading) {\r\n //console.log('OnChildLoading', isLoading);\r\n this.$emit('is-loading', isLoading);\r\n },\r\n scrollToClosestTime() {\r\n //const serverTime = this.serverTime ? DateHelper.onSiteDateTime(this.serverTime) : null;\r\n if (\r\n this.$options.filters.formatUnixEpocDayPart(this.serverTime) === this.$options.filters.formatUnixEpocDayPart(this.daySelected) &&\r\n this.serverTime >= this.eventStartDate &&\r\n this.serverTime <= this.eventEndDate\r\n ) {\r\n this.closestTime = this.getClosestTime(this.$options.filters.formatUnixEpocTimePart(this.serverTime));\r\n if (this.closestTime) {\r\n this.$nextTick(() => {\r\n //scroll target element into view (daysBarOffset: only on not mobile as it is not needed on mobile)\r\n const element = document.getElementById('scrollTarget');\r\n if (element) {\r\n element.scrollIntoViewExtended({\r\n behavior: 'smooth',\r\n block: 'start',\r\n baseOffset: this.showCalendar ? 100 : 20,\r\n navOffset: true,\r\n daysBarOffset: !this.isMobile,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n },\r\n getClosestTime(time) {\r\n //return this.sortedTimes.find((sortedTime) => sortedTime >= time) || this.sortedTimes[this.sortedTimes.length - 1];\r\n //console.log('time', time);\r\n const lesserTimes = this.sortedTimes.filter((sortedTime) => sortedTime <= time);\r\n //console.log('lesserTimes', JSON.stringify(lesserTimes));\r\n return lesserTimes && lesserTimes.length > 0 ? lesserTimes[lesserTimes.length - 1] : this.sortedTimes[0];\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .timeline-line {\r\n width: 100px;\r\n border-right: 3px solid var(--congress);\r\n }\r\n\r\n .timeline-time {\r\n color: var(--congress);\r\n border-right: 3px solid var(--congress);\r\n }\r\n\r\n .timeline-time:after {\r\n display: block;\r\n position: absolute;\r\n -webkit-box-shadow: 0 0 0 5px #fff;\r\n box-shadow: 0 0 0 5px #fff;\r\n right: -0.5rem;\r\n background: var(--congress);\r\n border-radius: 50%;\r\n height: 14px;\r\n width: 14px;\r\n content: '';\r\n top: 5px;\r\n }\r\n\r\n .date__text {\r\n text-align: center;\r\n cursor: pointer;\r\n }\r\n\r\n .date__text.selected {\r\n color: var(--congress);\r\n }\r\n\r\n .date__text span:hover {\r\n color: var(--congress);\r\n }\r\n\r\n .date__text.disabled {\r\n opacity: 0.5;\r\n cursor: default;\r\n }\r\n .date__text.disabled span:hover {\r\n color: #343a40;\r\n }\r\n\r\n .left-radius {\r\n border-top-left-radius: 55px;\r\n border-bottom-left-radius: 55px;\r\n }\r\n\r\n .right-radius {\r\n border-top-right-radius: 55px;\r\n border-bottom-right-radius: 55px;\r\n }\r\n\r\n .btn-outline-dark:hover {\r\n background-color: lightgray;\r\n }\r\n\r\n .btn-active {\r\n color: var(--congress);\r\n }\r\n\r\n @media (max-width: 576px) {\r\n .timeLine {\r\n color: $primary;\r\n background-color: transparent;\r\n font-size: 0.9em;\r\n .date__text {\r\n padding: 0;\r\n }\r\n }\r\n }\r\n\r\n @media (max-width: 992px) {\r\n .timeline-time {\r\n border-right: 0;\r\n }\r\n .timeline-time:after {\r\n display: none;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .timeline-time .sticky__lg {\r\n position: sticky;\r\n top: 120px;\r\n }\r\n .date__text {\r\n -webkit-transition: all 0.4s ease-in-out;\r\n -moz-transition: all 0.4s ease-in-out;\r\n -ms-transition: all 0.4s ease-in-out;\r\n -o-transition: all 0.4s ease-in-out;\r\n transition: all 0.4s ease-in-out;\r\n }\r\n .date__text.selected {\r\n background: var(--congress);\r\n color: #fff;\r\n border-radius: 50rem;\r\n }\r\n .date__text:hover {\r\n background: #333;\r\n border-radius: 50rem;\r\n color: #fff;\r\n }\r\n .date__text span:hover {\r\n color: #fff;\r\n }\r\n }\r\n\r\n @media (min-width: 1024px) {\r\n .timeLine {\r\n position: sticky;\r\n top: 60px;\r\n -webkit-box-shadow: inset 0px 0px 0px 1px #ccc;\r\n -moz-box-shadow: inset 0px 0px 0px 1px #ccc;\r\n box-shadow: inset 0px 0px 0px 1px #ccc;\r\n z-index: 101;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchResultsBlock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchResultsBlock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchResultsBlock.vue?vue&type=template&id=4227921d&scoped=true\"\nimport script from \"./SearchResultsBlock.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResultsBlock.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResultsBlock.vue?vue&type=style&index=0&id=4227921d&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4227921d\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <b-button v-show=\"showScrollToTop\" variant=\"congress\" @click=\"scrollToSearchBar\" class=\"btn-floating scroller\"\r\n ><span class=\"material-icons-round\"> keyboard_control_key </span></b-button\r\n >\r\n <b-jumbotron v-if=\"searchDocType != 'MyProgramme'\">\r\n <template #header v-if=\"ressourcesMovedTo365\">\r\n <span>You missed {{ eventBaseTitle }}?</span>\r\n <!--<span v-else>Programme</span>-->\r\n </template>\r\n <template #lead v-if=\"ressourcesMovedTo365\">\r\n <span\r\n >Check out the Replays. Browse the programme and see what is available on\r\n <a class=\"text-decoration-underline\" href=\"https://esc365.escardio.org\">ESC 365</a>.</span\r\n >\r\n <!-- <span v-else>Search through all the scientific sessions and bookmark your favourites.</span> -->\r\n </template>\r\n <div data-v-step-search=\"0\">\r\n <b-row class=\"search font-regular mx-0 mb-3\" id=\"search\" ref=\"searchBar\">\r\n <b-col xl=\"3\" cols=\"12\" class=\"pl-xl-0 pr-xl-1 mb-2 mb-md-0\">\r\n <b-input-group>\r\n <b-form-input maxlength=\"100\" type=\"search\" :placeholder=\"searchPlaceholder\" @keydown.native=\"onTextInputKeydown\" class=\"searchInput\" v-model=\"query\" />\r\n </b-input-group>\r\n </b-col>\r\n <b-col cols=\"12\" xl v-for=\"facet in getDocTypeFacets(searchDocType, true)\" :key=\"facet[0].name\" class=\"mb-2 mb-md-0 px-xl-1\">\r\n <b-input-group-append :set=\"(facetConf = getFacetConfiguration(facet[0].name))\" :sm=\"facetConf.sm\" lazy>\r\n <treeselect\r\n :ref=\"`${facet[0].name}TreeSelect`\"\r\n v-model=\"selectedDocTypesFacetsValues[facet[0].name]\"\r\n :options=\"selectedDocTypesFacetsOptions[facet[0].name]\"\r\n :multiple=\"facetConf.multiple\"\r\n :placeholder=\"facetConf.placeholder\"\r\n :limit=\"facetConf.limit\"\r\n :limitText=\"facetConf.limitText\"\r\n :appendToBody=\"true\"\r\n @input=\"onTreeSelectInput\"\r\n />\r\n </b-input-group-append>\r\n </b-col>\r\n <b-col class=\"d-flex pr-xl-0 pl-xl-1\" cols=\"12\" xl=\"1\">\r\n <b-input-group-append class=\"w-100\">\r\n <b-button :disabled=\"isComponentOrChildLoading\" variant=\"congress\" @click=\"onSearchClick\" class=\"badge-pill d-xl-block with-icon w-100\">\r\n <i v-if=\"!isComponentOrChildLoading\" class=\"las la-2x la-t-plus-2 la-search\"></i>\r\n <i v-if=\"isComponentOrChildLoading\" class=\"las las la-2x la-t-plus-2 la-spin la-spinner\"></i>\r\n Search\r\n </b-button>\r\n </b-input-group-append>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </b-jumbotron>\r\n <div class=\"filter__list mb-2\">\r\n <div v-for=\"facet in getDocTypeFacets(searchDocType, true)\" :key=\"facet[0].name\" class=\"d-inline\">\r\n <b-badge\r\n pill\r\n v-for=\"filter in selectedDocTypesFacetsValues[facet[0].name]\"\r\n :key=\"filter\"\r\n class=\"mr-3 badge__selected font-regular btn btn-sm px-3 py-2 mb-2\"\r\n >\r\n {{ filter }}\r\n <i class=\"las la-t-plus-1 la-times ml-1 clear-icon\" @click=\"onClearFilter(facet[0].name, filter)\"></i>\r\n </b-badge>\r\n </div>\r\n <!-- -->\r\n <span\r\n class=\"mb-3\"\r\n align-h=\"center\"\r\n v-if=\"\r\n searchDocType != 'MyProgramme' &&\r\n (selectedDocTypesFacetsValues['types'].length ||\r\n selectedDocTypesFacetsValues['tracks'].length ||\r\n selectedDocTypesFacetsValues['topics'].length ||\r\n selectedDocTypesFacetsValues['country'].length ||\r\n selectedDocTypesFacetsValues['rooms'].length)\r\n \"\r\n >\r\n <span v-if=\"Object.keys(getDocTypeFacets(searchDocType, true)).length > 0\" @click=\"onClearClick\">\r\n <b-button size=\"sm\" pill variant=\"clear\" class=\"font-regular px-3 py-2\"> Clear filters <i class=\"las la-t-plus-1 la-times ml-1\"></i> </b-button>\r\n </span>\r\n </span>\r\n\r\n <!-- -->\r\n </div>\r\n\r\n <b-overlay id=\"tabsContainer\" :show=\"isComponentOrChildLoading\" no-center rounded=\"sm\">\r\n <!-- NoResult (Text) -->\r\n <div v-if=\"!isComponentOrChildLoading && !hasResults && hasValidDoctypesCount\" class=\"pb-3\">\r\n <h5 v-if=\"query\">\r\n No matches were found for <b>{{ query }}</b\r\n >.\r\n </h5>\r\n <h5 v-else>\r\n No matches were found for <b>{{ searchDocType }}</b\r\n >.\r\n </h5>\r\n </div>\r\n\r\n <b-tabs :key=\"selectedDocTypeIndex\" v-if=\"docTypes && docTypes.length > 0\" v-model=\"selectedDocTypeIndex\" content-class=\"\" fill @activate-tab=\"onActivateTab\">\r\n <b-tab v-for=\"(docType, index) in docTypes\" :key=\"docType.value\" @click=\"onTabClick(docType, $event)\" lazy>\r\n <template #title v-if=\"docTypes.length > 1\">\r\n <b-card-title\r\n :class=\"{ tab__title_xl: index === 0, disabled: docType.count === 0, tab__title__active: selectedDocTypeIndex === index }\"\r\n data-v-step-search=\"1\"\r\n >\r\n <span class=\"tab__title\">\r\n {{ getDocTypeHeader(docType.value) }} <span class=\"tab__title__count\">({{ docType.count }})</span>\r\n </span>\r\n </b-card-title>\r\n </template>\r\n\r\n <!-- Results -->\r\n <SearchResultsBlock\r\n :componentKey=\"componentKey\"\r\n ref=\"resultsBlock\"\r\n :resultType=\"selectedDocType\"\r\n :results=\"selectedDocTypeResultsElastic\"\r\n :query=\"query\"\r\n :serverTime=\"timeFromServer\"\r\n @onShowChange=\"onOnShowChange\"\r\n @select-day=\"setDay\"\r\n :searchDocType=\"searchDocType\"\r\n :selectedDocTypesFacetsValues=\"selectedDocTypesFacetsValues\"\r\n :resultsFacets=\"resultsFacets\"\r\n :eventDays=\"eventDates\"\r\n :showList=\"showList\"\r\n :showCalendar=\"showCalendar\"\r\n :showCards=\"showCards\"\r\n :daySelected=\"selectedDate\"\r\n @is-loading=\"OnChildLoading\"\r\n :docType=\"docType.value\"\r\n :channels=\"selectedDocTypesFacetsOptions['rooms']\" \r\n />\r\n\r\n <!-- NoResults (Facets) -->\r\n <div v-if=\"!isComponentOrChildLoading && (!selectedDocTypeResultsElastic || selectedDocTypeResultsElastic.length == 0)\" class=\"pb-3\">\r\n <h5>No matches were found. Please adjust your search criteria.</h5>\r\n </div>\r\n\r\n <!-- Pagination -->\r\n <b-pagination\r\n v-if=\"currentPage > 0 && selectedDocTypeResultsElastic && selectedDocTypeResultsElastic.length > 0 && showCards\"\r\n @change=\"onPageChange\"\r\n v-model=\"currentPage\"\r\n :total-rows=\"totalRows\"\r\n :per-page=\"perPage\"\r\n pills\r\n ></b-pagination>\r\n </b-tab>\r\n </b-tabs>\r\n </b-overlay>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import { DateTime } from 'luxon';\r\n import Treeselect from '@riophae/vue-treeselect';\r\n import '@riophae/vue-treeselect/dist/vue-treeselect.css';\r\n //import { AppSearchService } from 'src/services/app-search';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import SearchResultsBlock from 'src/components/Blocks/SearchResultsBlock';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import { constants } from 'src/constants';\r\n import { UPDATE_SCROLL_POSITION } from 'src/store/actions';\r\n import { store } from 'src/store';\r\n\r\n export default {\r\n name: 'Search',\r\n components: {\r\n Treeselect,\r\n SearchResultsBlock,\r\n },\r\n props: {\r\n searchDocType: String,\r\n },\r\n watch: {\r\n isPoolingEnabled(enabled) {\r\n if (enabled) {\r\n // Fetching server time.\r\n this.fetchtime();\r\n }\r\n },\r\n isComponentOrChildLoading(value) {\r\n if (!value) {\r\n if (this.scrollPosition && this.scrollPosition.y) { \r\n window.scrollTo({\r\n top: this.scrollPosition.y,\r\n offset: this.scrollPosition.offset??0,\r\n });\r\n store.dispatch(UPDATE_SCROLL_POSITION, null);\r\n }\r\n else if (this.scrollPosition && this.scrollPosition.selector) {\r\n let element = document.querySelector(this.scrollPosition.selector);\r\n if (element) {\r\n element.scrollIntoViewExtended({ behavior: 'smooth', block: 'start', baseOffset: 20, navOffset: true, daysBarOffset: false });\r\n }\r\n store.dispatch(UPDATE_SCROLL_POSITION, null);\r\n }\r\n else{\r\n this.$refs.resultsBlock[0].scrollToClosestTime();\r\n }\r\n }\r\n this.$emit('is-loading', value);\r\n },\r\n //topicListes() {\r\n // this.updateFacets();\r\n //},\r\n //selectedDocType() {\r\n // this.selectedDocTypeDefault = this.selectedDocType;\r\n // if (this.selectedDocType === 'Speaker') {\r\n // this.selectedDocTypeResultsElastic = this.selectedDocTypeResultsContributors;\r\n // this.forceRerender();\r\n // }\r\n //},\r\n //selectedSpeakersListFacets() {\r\n // //this.refreshSessionSpeakers(1)\r\n // this.addDataToSessionList(this.sessionListes);\r\n //},\r\n //query() {\r\n //await this.refreshSessionDetails({ currentPage: 1 });\r\n // this.refreshSessionSpeakers(1);\r\n //},\r\n },\r\n data() {\r\n return {\r\n isLoading: true,\r\n isChildLoading: true,\r\n serverTime: null,\r\n timeFromServer: null,\r\n perPage: 20,\r\n componentKey: 0,\r\n pageFromUrl: 1,\r\n reloadKey: 0,\r\n totalSpeakersCount: 0,\r\n query: '',\r\n docTypes: [],\r\n selectedDocType: null,\r\n selectedDocTypeIndex: 0,\r\n resultToSend: [],\r\n selectedDocTypeResults: [],\r\n selectedDocTypeResultsElastic: [],\r\n selectedDocTypeResultsContributors: [],\r\n selectedSpeakersList: [],\r\n selectedSessionIndustryList: [],\r\n facetSessionIndustryList: {},\r\n selectedSpeakersListFacets: [],\r\n topicListes: [],\r\n facetContributors: [],\r\n sessionListes: [],\r\n facetsTreeSelect: {},\r\n selectedDocTypeDefault: null,\r\n selectedDocTypesFacetsOptions: {\r\n days: [],\r\n types: [],\r\n tracks: [],\r\n topics: [],\r\n country: [],\r\n specialities: [],\r\n rooms: [],\r\n },\r\n selectedDocTypesFacetsValues: {\r\n days: [],\r\n types: [],\r\n tracks: [],\r\n topics: [],\r\n country: [],\r\n specialities: [],\r\n rooms: [],\r\n },\r\n currentPage: 1,\r\n totalRows: 0,\r\n fetchTimeJob: null,\r\n textValue: this.query,\r\n showCards: true,\r\n daySelected: null,\r\n endPointToUse: null,\r\n showList: false,\r\n showCalendar: false,\r\n resultsFacets: null,\r\n channelsOptions: [],\r\n showScrollToTop: false,\r\n sort: 'MostRelevant',\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['isPoolingEnabled', 'scrollPosition']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventStartDate: (state) => state.app.eventStartDate,\r\n eventEndDate: (state) => state.app.eventEndDate,\r\n industryStandsSearch: (state) => state.app.industryStandsSearch,\r\n indexAbstracts: (state) => state.app.indexAbstracts,\r\n indexIndustries: (state) => state.app.indexIndustries,\r\n indexLiveSessions: (state) => state.app.indexLiveSessions,\r\n indexOnDemandSessions: (state) => state.app.indexOnDemandSessions,\r\n indexSpeakers: (state) => state.app.indexSpeakers,\r\n escEventId: (state) => state.app.escEventId,\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n }),\r\n indexEscTvSessions() {\r\n return this.eventId == constants.EHRA_2025_EVENT_ID\r\n || this.eventId == constants.ESC_2024_EVENT_ID\r\n },\r\n indexDailyHighLight() {\r\n return this.eventId == constants.ESC_2024_EVENT_ID\r\n },\r\n poolingTimeInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_TIMELINE_DIGEST_INTERVAL);\r\n },\r\n startDate() {\r\n return DateHelper.onSiteDateTime(this.eventStartDate);\r\n },\r\n endDate() {\r\n return DateHelper.onSiteDateTime(this.eventEndDate);\r\n },\r\n eventDates() {\r\n return DateHelper.getDates(this.startDate, this.endDate);\r\n },\r\n hasResults() {\r\n return this.docTypes && this.docTypes.some((x) => x.count > 0);\r\n },\r\n hasChannels() {\r\n return this.channelsOptions && this.channelsOptions.length > 0;\r\n },\r\n searchPlaceholder() {\r\n return this.searchDocType == 'DigitalSession' ? 'Search in the programme' : 'Search..';\r\n },\r\n hasValidDoctypesCount() {\r\n return this.docTypes.some((docType) => docType.count > 0);\r\n },\r\n selectedDate() {\r\n return new Date(this.daySelected);\r\n },\r\n defaultDay() {\r\n if (this.searchDocType != 'Speaker' && this.searchDocType != 'Abstract') {\r\n const serverTime = this.timeFromServer ? DateHelper.onSiteDateTime(this.timeFromServer) : null;\r\n if (serverTime >= DateHelper.onSiteDateTime(this.eventStartDate) && serverTime <= DateHelper.onSiteDateTime(this.eventEndDate)) {\r\n const year = serverTime.getFullYear();\r\n const month = String(serverTime.getMonth() + 1).padStart(2, '0');\r\n const day = String(serverTime.getDate()).padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n } else {\r\n const year = this.eventDates[0].getFullYear();\r\n const month = String(this.eventDates[0].getMonth() + 1).padStart(2, '0');\r\n const day = String(this.eventDates[0].getDate()).padStart(2, '0');\r\n return `${year}-${month}-${day}`;\r\n }\r\n } else {\r\n return null;\r\n }\r\n },\r\n isComponentOrChildLoading() {\r\n return this.isLoading || this.isChildLoading;\r\n },\r\n },\r\n created() {\r\n window.addEventListener('scroll', this.handleScroll);\r\n },\r\n unmounted() {\r\n window.removeEventListener('scroll', this.handleScroll);\r\n },\r\n async mounted() {\r\n // await await this.refreshSessionDetails({ currentPage: 1 });\r\n // await this.refreshSessionSpeakers(1);\r\n await this.fetchtime();\r\n this.getValueFromUrl();\r\n await this.getChannelsOptions();\r\n await this.refreshSessionDetails({ currentPage: this.currentPage });\r\n\r\n // Polling server time\r\n this.fetchTimeJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n // Fetching server time to display...\r\n this.fetchtime();\r\n }\r\n }, this.poolingTimeInterval);\r\n },\r\n beforeDestroy() {\r\n clearInterval(this.fetchTimeJob);\r\n },\r\n methods: {\r\n async fetchtime() {\r\n const { data } = await MediaApiService.getTime();\r\n this.timeFromServer = data;\r\n //console.log('timeFromServer', this.timeFromServer);\r\n },\r\n //refresh component after add data peakers\r\n forceRerender() {\r\n this.componentKey += 1;\r\n },\r\n async handleSearch() {\r\n //console.log('refreshSessionDetails handleSearch');\r\n await this.refreshSessionDetails({ currentPage: 1 });\r\n },\r\n async onTabClick(docType, event) {\r\n if (docType.count === 0) {\r\n event.preventDefault(); // Empêche l'action par défaut\r\n return;\r\n }\r\n\r\n this.isLoading = true;\r\n this.selectedDocTypeResults = [];\r\n\r\n // We must use some magic at this stage...\r\n await new Promise((resolve) => setTimeout(resolve, 250));\r\n\r\n /*\r\n if (this.selectedDocTypesFacetsValues['types'].find((x) => x == 'Global Community')) {\r\n this.docTypes[this.selectedDocTypeIndex].value = 'DigitalSessionDailyHighLight';\r\n }\r\n */\r\n\r\n this.selectedDocType = this.docTypes[this.selectedDocTypeIndex].value;\r\n //console.log('refreshSessionDetails onTabClick');\r\n await this.refreshSessionDetails({ currentPage: 1 });\r\n //await this.updateFacets();\r\n //await this.search({ currentPage: 1 });\r\n },\r\n onClearClick() {\r\n // this.getDaysTreeSelect()?.clear();\r\n // this.getTypesAndTracksTreeSelect()?.clear();\r\n // this.getTopicsTreeSelect()?.clear();\r\n // this.getCountriesTreeSelect()?.clear();\r\n // this.getSpecialitiesTreeSelect()?.clear();\r\n\r\n this.selectedDocTypesFacetsValues['days'] = [];\r\n this.selectedDocTypesFacetsValues['types'] = [];\r\n this.selectedDocTypesFacetsValues['tracks'] = [];\r\n this.selectedDocTypesFacetsValues['topics'] = [];\r\n this.selectedDocTypesFacetsValues['country'] = [];\r\n this.selectedDocTypesFacetsValues['specialities'] = [];\r\n this.selectedDocTypesFacetsValues['rooms'] = [];\r\n this.collapseAllNodes();\r\n },\r\n onClearFilter(facetName, filter) {\r\n if (this.selectedDocTypesFacetsValues[facetName]) {\r\n const index = this.selectedDocTypesFacetsValues[facetName].indexOf(filter);\r\n if (index !== -1) {\r\n this.selectedDocTypesFacetsValues[facetName].splice(index, 1);\r\n }\r\n }\r\n },\r\n collapseAllNodes() {\r\n const treeSelectTopics = this.$refs.treeSelectTopics;\r\n if (treeSelectTopics && this.selectedDocTypesFacetsValues['topics']) {\r\n treeSelectTopics.traverseAllNodesByIndex((node) => {\r\n if (node.isBranch) {\r\n node.isExpanded = false;\r\n }\r\n });\r\n }\r\n },\r\n getDaysTreeSelect() {\r\n let daysTreeSelect = null;\r\n let daysTreeSelectRef = this.$refs.daysTreeSelect;\r\n if (daysTreeSelectRef && daysTreeSelectRef.length > 0) daysTreeSelect = daysTreeSelectRef[0];\r\n return daysTreeSelect;\r\n },\r\n getTypesTreeSelect() {\r\n let typesTreeSelect = null;\r\n let typesTreeSelectRef = this.$refs.typesTreeSelect;\r\n if (typesTreeSelectRef && typesTreeSelectRef.length > 0) typesTreeSelect = typesTreeSelectRef[0];\r\n return typesTreeSelect;\r\n },\r\n getTracksTreeSelect() {\r\n let tracksTreeSelect = null;\r\n let tracksTreeSelectRef = this.$refs.tracksTreeSelect;\r\n if (tracksTreeSelectRef && tracksTreeSelectRef.length > 0) tracksTreeSelect = tracksTreeSelectRef[0];\r\n return tracksTreeSelect;\r\n },\r\n getTopicsTreeSelect() {\r\n let topicsTreeSelect = null;\r\n let topicsTreeSelectRef = this.$refs.topicsTreeSelect;\r\n if (topicsTreeSelectRef && topicsTreeSelectRef.length > 0) topicsTreeSelect = topicsTreeSelectRef[0];\r\n return topicsTreeSelect;\r\n },\r\n getCountriesTreeSelect() {\r\n let countriesTreeSelect = null;\r\n let countriesTreeSelectRef = this.$refs.countryTreeSelect;\r\n if (countriesTreeSelectRef && countriesTreeSelectRef.length > 0) countriesTreeSelect = countriesTreeSelectRef[0];\r\n return countriesTreeSelect;\r\n },\r\n getSpecialitiesTreeSelect() {\r\n let specialitiesTreeSelect = null;\r\n let specialitiesTreeSelectRef = this.$refs.specialitiesTreeSelect;\r\n if (specialitiesTreeSelectRef && specialitiesTreeSelectRef.length > 0) specialitiesTreeSelect = specialitiesTreeSelectRef[0];\r\n return specialitiesTreeSelect;\r\n },\r\n getRoomsTreeSelect() {\r\n let roomsTreeSelect = null;\r\n let roomsTreeSelectRef = this.$refs.roomsTreeSelect;\r\n if (roomsTreeSelectRef && roomsTreeSelectRef.length > 0) roomsTreeSelect = roomsTreeSelectRef[0];\r\n return roomsTreeSelect;\r\n },\r\n async onPageChange(page) {\r\n //console.log('refreshSessionDetails onPageChange');\r\n await this.refreshSessionDetails({ currentPage: page }, true);\r\n },\r\n async onTreeSelectInput() {\r\n //console.log('refreshSessionDetails onTreeSelectInput');\r\n await this.refreshSessionDetails({ currentPage: 1 });\r\n //await this.search({ currentPage: 1 });\r\n /*\r\n if (this.selectedDocTypesFacetsValues['types'].find((x) => x == 'Global Community')) {\r\n this.onTabClick('Global Community');\r\n }\r\n */\r\n },\r\n\r\n async onSearchClick() {\r\n let oldQueryString = this.$route.query.text ? this.$route.query.text : '';\r\n if (oldQueryString !== this.query || this.query === '') {\r\n this.daySelected = this.defaultDay;\r\n this.scrollToSearchBar();\r\n await this.handleSearch();\r\n //this.updateFacets();\r\n }\r\n },\r\n hasFilters() {\r\n let oldQueryString = this.$route.query.text;\r\n //selectedDocTypesFacetsValues\r\n return (\r\n this.query != oldQueryString ||\r\n (this.selectedDocTypesFacetsValues['days'] && this.selectedDocTypesFacetsValues['days'].length > 0) ||\r\n (this.selectedDocTypesFacetsValues['types'] && this.selectedDocTypesFacetsValues['types'].length > 0) ||\r\n (this.selectedDocTypesFacetsValues['tracks'] && this.selectedDocTypesFacetsValues['tracks'].length > 0) ||\r\n (this.selectedDocTypesFacetsValues['topics'] && this.selectedDocTypesFacetsValues['topics'].length > 0) ||\r\n (this.selectedDocTypesFacetsValues['country'] && this.selectedDocTypesFacetsValues['country'].length > 0) ||\r\n //(this.selectedDocTypesFacetsValues['days'] && this.selectedDocTypesFacetsValues['days'].length > 0) ||\r\n (this.selectedDocTypesFacetsValues['specialities'] && this.selectedDocTypesFacetsValues['specialities'].length > 0) ||\r\n (this.selectedDocTypesFacetsValues['rooms'] && this.selectedDocTypesFacetsValues['rooms'].length > 0)\r\n );\r\n },\r\n updateQueryString() {\r\n let query = null;\r\n let vueMode = '';\r\n if (this.showList) vueMode = 'list';\r\n else if (this.showCalendar) vueMode = 'calendar';\r\n else vueMode = 'cards';\r\n query = {\r\n text: this.query,\r\n docType: this.selectedDocType,\r\n days: this.daySelected,\r\n session_type: this.selectedDocTypesFacetsValues['types'],\r\n tracks: this.selectedDocTypesFacetsValues['tracks'],\r\n topics: this.selectedDocTypesFacetsValues['topics'],\r\n country: this.selectedDocTypesFacetsValues['country'],\r\n specialities: this.selectedDocTypesFacetsValues['specialities'],\r\n rooms: this.selectedDocTypesFacetsValues['rooms'],\r\n page: this.currentPage,\r\n vue: vueMode,\r\n //pageSize: this.perPage,\r\n };\r\n this.$router.push({ query });\r\n /* DataLayer */\r\n this.$gtm.push({ event: 'onSearchSubmitted', eventId: this.eventId, ...query });\r\n },\r\n getValueFromUrl() {\r\n const fulltextqueryparam = this.$route.query.text;\r\n if (fulltextqueryparam) {\r\n this.query = fulltextqueryparam;\r\n } else {\r\n this.query = '';\r\n }\r\n\r\n const pageparam = this.$route.query.page;\r\n if (pageparam) this.currentPage = parseInt(pageparam);\r\n\r\n /*\r\n const pageSizeParam = this.$route.query.pageSize;\r\n if (pageSizeParam) this.perPage = parseInt(pageSizeParam);\r\n //else this.perPage = 20;\r\n */\r\n\r\n const filterdocTypeparam = this.$route.query.docType;\r\n if (filterdocTypeparam) {\r\n if (typeof filterdocTypeparam === 'string') this.selectedDocType = filterdocTypeparam;\r\n else this.selectedDocType = filterdocTypeparam.toString();\r\n } else {\r\n this.selectedDocType = 'All';\r\n }\r\n\r\n const filterdaysparam = this.$route.query.days;\r\n if (filterdaysparam) {\r\n this.daySelected = filterdaysparam;\r\n } else {\r\n this.daySelected = this.defaultDay;\r\n }\r\n\r\n const filtersessionTypesparam = this.$route.query.session_type;\r\n if (filtersessionTypesparam) {\r\n if (typeof filtersessionTypesparam === 'string') this.selectedDocTypesFacetsValues['types'].push(filtersessionTypesparam);\r\n else this.selectedDocTypesFacetsValues['types'] = Object.values(filtersessionTypesparam);\r\n }\r\n const filtersessionTracksparam = this.$route.query.tracks;\r\n if (filtersessionTracksparam) {\r\n if (typeof filtersessionTracksparam === 'string') this.selectedDocTypesFacetsValues['tracks'].push(filtersessionTracksparam);\r\n else this.selectedDocTypesFacetsValues['tracks'] = Object.values(filtersessionTracksparam);\r\n }\r\n const filtertopicsparam = this.$route.query.topics;\r\n if (filtertopicsparam) {\r\n if (typeof filtertopicsparam === 'string') this.selectedDocTypesFacetsValues['topics'].push(filtertopicsparam);\r\n else this.selectedDocTypesFacetsValues['topics'] = Object.values(filtertopicsparam);\r\n }\r\n const filtercountryparam = this.$route.query.country;\r\n if (filtercountryparam) {\r\n if (typeof filtercountryparam === 'string') this.selectedDocTypesFacetsValues['country'].push(filtercountryparam);\r\n else this.selectedDocTypesFacetsValues['country'] = Object.values(filtercountryparam);\r\n }\r\n const filterspecialitiesparam = this.$route.query.specialities;\r\n if (filterspecialitiesparam) {\r\n if (typeof filterspecialitiesparam === 'string') this.selectedDocTypesFacetsValues['specialities'].push(filterspecialitiesparam);\r\n else this.selectedDocTypesFacetsValues['specialities'] = Object.values(filterspecialitiesparam);\r\n }\r\n const filterroomsparam = this.$route.query.rooms;\r\n if (filterroomsparam) {\r\n if (typeof filterroomsparam === 'string') this.selectedDocTypesFacetsValues['rooms'].push(filterroomsparam);\r\n else this.selectedDocTypesFacetsValues['rooms'] = Object.values(filterroomsparam);\r\n }\r\n\r\n const vueparam = this.$route.query.vue;\r\n if (vueparam == 'list') {\r\n this.perPage = 999;\r\n this.sort = 'Earliest';\r\n this.showCards = false;\r\n this.showList = true;\r\n this.showCalendar = false;\r\n } else if (vueparam == 'calendar') {\r\n this.perPage = 999;\r\n this.sort = 'Earliest';\r\n this.showCards = false;\r\n this.showList = false;\r\n this.showCalendar = true;\r\n } else {\r\n this.perPage = 20;\r\n this.sort = 'MostRelevant';\r\n this.showCards = true;\r\n this.showList = false;\r\n this.showCalendar = false;\r\n }\r\n },\r\n updateSelectedDocType(docType) {\r\n this.selectedDocType = docType ? docType : this.selectedDocTypeDefault;\r\n this.selectedDocTypeIndex = this.docTypes.findIndex((x) => x.value == docType);\r\n },\r\n updateFacets() {\r\n //console.log('updateFacets starts');\r\n let countryList;\r\n if (this.facetContributors?.country) {\r\n countryList = this.facetContributors?.country;\r\n }\r\n if (this.topicListes) {\r\n this.selectedDocTypesFacetsOptions['days'] = [];\r\n this.selectedDocTypesFacetsOptions['types'] = [];\r\n this.selectedDocTypesFacetsOptions['tracks'] = [];\r\n this.selectedDocTypesFacetsOptions['topics'] = [];\r\n this.selectedDocTypesFacetsOptions['country'] = [];\r\n this.selectedDocTypesFacetsOptions['specialities'] = [];\r\n this.selectedDocTypesFacetsOptions['rooms'] = [];\r\n if (this.selectedDocType === 'IndustryStand') this.topicListes['topics'] = this.topicListes['topicss'];\r\n\r\n const facets = this.topicListes;\r\n for (let facetIndex in facets) {\r\n const facetName = facetIndex;\r\n\r\n const facetOptions = facets[facetIndex];\r\n switch (facetName) {\r\n case 'days':\r\n {\r\n for (let facetOptionIndex in facetOptions) {\r\n const facetOption = facetOptions[facetOptionIndex];\r\n this.selectedDocTypesFacetsOptions[facetName].push({\r\n id: facetOption.value,\r\n label: facetOption.text,\r\n });\r\n }\r\n }\r\n break;\r\n case 'tracks':\r\n {\r\n for (let facetOptionIndex in facetOptions) {\r\n const facetOption = facetOptions[facetOptionIndex];\r\n this.selectedDocTypesFacetsOptions[facetName].push({\r\n id: facetOption.value,\r\n label: facetOption.text,\r\n });\r\n }\r\n }\r\n break;\r\n case 'types':\r\n {\r\n for (let facetOptionIndex in facetOptions) {\r\n const facetOption = facetOptions[facetOptionIndex];\r\n this.selectedDocTypesFacetsOptions[facetName].push({\r\n id: facetOption.value,\r\n label: facetOption.text,\r\n });\r\n }\r\n }\r\n break;\r\n case 'topics':\r\n {\r\n for (let facetOptionIndex in facetOptions) {\r\n const facetOption = facetOptions[facetOptionIndex];\r\n\r\n const topicId = facetOption.id;\r\n\r\n const topicToAdd = {\r\n name: 'topicNode',\r\n id: topicId,\r\n label: facetOption.label,\r\n children: facetOption.children,\r\n };\r\n this.selectedDocTypesFacetsOptions[facetName].push(topicToAdd);\r\n }\r\n }\r\n break;\r\n case 'country':\r\n {\r\n for (let facetOptionIndex in facetOptions) {\r\n const facetOption = facetOptions[facetOptionIndex];\r\n this.selectedDocTypesFacetsOptions['country'].push({\r\n id: facetOption.value,\r\n label: facetOption.text,\r\n });\r\n }\r\n }\r\n break;\r\n case 'specialities':\r\n {\r\n for (let facetOptionIndex in facetOptions) {\r\n const facetOption = facetOptions[facetOptionIndex];\r\n this.selectedDocTypesFacetsOptions[facetName].push({\r\n id: facetOption.value,\r\n label: facetOption.text,\r\n });\r\n }\r\n }\r\n break;\r\n case 'rooms':\r\n {\r\n for (let facetOptionIndex in facetOptions) {\r\n const facetOption = facetOptions[facetOptionIndex];\r\n this.selectedDocTypesFacetsOptions[facetName].push({\r\n id: facetOption.value,\r\n label: facetOption.text,\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n if (countryList && this.selectedDocType == 'Speaker') {\r\n this.selectedDocTypesFacetsOptions['country'] = [];\r\n countryList = countryList.map((c) => ({\r\n id: c.value,\r\n label: c.text,\r\n }));\r\n for (let contries in countryList) {\r\n const facetOption = countryList[contries];\r\n this.selectedDocTypesFacetsOptions['country'].push(facetOption);\r\n }\r\n }\r\n }\r\n //console.log('updateFacets ends');\r\n },\r\n\r\n async refreshSessionDetails({ currentPage }) {\r\n this.isLoading = true;\r\n this.currentPage = currentPage;\r\n let allFilter = this.getFullFilter(currentPage);\r\n this.updateQueryString();\r\n MediaApiService.getAllSessionElasticDetails(allFilter).then(async ({ data }) => {\r\n this.selectedDocTypeResultsElastic = data.documentsWithHighlight;\r\n this.selectedDocTypeResultsContributors = data.documentsWithHighlight;\r\n this.resultToSend = this.selectedDocTypeResultsElastic;\r\n this.resultsFacets = data.facets;\r\n this.totalRows = data.total;\r\n\r\n if (this.selectedDocType === 'IndustryStand') {\r\n this.selectedDocTypeResultsElastic = data.sourceIndu;\r\n this.totalRows = this.selectedDocTypeResultsElastic.length;\r\n }\r\n \r\n this.topicListes = data.facets;\r\n this.facetContributors = data.facets;\r\n this.docTypeAllData(this.topicListes);\r\n await new Promise((resolve) => setTimeout(resolve, 250));\r\n this.updateFacets();\r\n\r\n //If no results search 1st doctype and date with results\r\n if (this.totalRows < 1) {\r\n //If now results for current documentType, re search on 1st document type with results\r\n if (this.docTypes[this.selectedDocTypeIndex].count < 1) {\r\n const firstDocTypeWithResults = this.docTypes.find((x) => x.count > 0);\r\n if (firstDocTypeWithResults) {\r\n this.updateSelectedDocType(firstDocTypeWithResults.value);\r\n await this.refreshSessionDetails({ currentPage: 1 });\r\n return;\r\n }\r\n }\r\n //If now results for current date, re search on 1st date with results\r\n else {\r\n const firstDateStringWithResults = data.facets.days.find((x) => x.text > 0);\r\n if (firstDateStringWithResults) {\r\n const firstDateWithResults = DateHelper.onSiteDateTime(firstDateStringWithResults.value);\r\n const year = firstDateWithResults.getFullYear();\r\n const month = String(firstDateWithResults.getMonth() + 1).padStart(2, '0');\r\n const day = String(firstDateWithResults.getDate()).padStart(2, '0');\r\n this.daySelected = `${year}-${month}-${day}`;\r\n await this.refreshSessionDetails({ currentPage: 1 });\r\n return;\r\n }\r\n }\r\n } else {\r\n this.updateSelectedDocType(this.selectedDocType);\r\n }\r\n\r\n this.$nextTick(() => {\r\n this.isLoading = false;\r\n });\r\n });\r\n },\r\n\r\n async getChannelsOptions() {\r\n MediaApiService.getChannelsOptions(this.eventId).then(({ data }) => {\r\n if (data) {\r\n this.channelsOptions = data;\r\n }\r\n });\r\n },\r\n\r\n docTypeAllData(topicListes) {\r\n //console.log('docTypeAllData starts');\r\n //abstract\r\n this.sessionListes = [];\r\n if (topicListes?.abstract?.length > 0) {\r\n this.sessionListes.push({ value: topicListes.abstract[0].value, count: topicListes.abstract[0].text });\r\n } else {\r\n this.sessionListes.push({ value: 'abstract', count: 0 });\r\n }\r\n //all sessions\r\n if (topicListes?.allSession?.length > 0) {\r\n this.sessionListes.push({ value: topicListes.allSession[0].value, count: topicListes.allSession[0].text });\r\n } else {\r\n this.sessionListes.push({ value: 'allSession', count: 0 });\r\n }\r\n //scientific session\r\n if (topicListes?.digitalSession?.length > 0) {\r\n this.sessionListes.push({ value: topicListes.digitalSession[0].value, count: topicListes.digitalSession[0].text });\r\n } else {\r\n this.sessionListes.push({ value: 'digitalSession', count: 0 });\r\n }\r\n //digitalSessionDailyHighLight\r\n if (topicListes?.digitalSessionDailyHighLight?.length > 0) {\r\n this.sessionListes.push({ value: topicListes.digitalSessionDailyHighLight[0].value, count: topicListes.digitalSessionDailyHighLight[0].text });\r\n } else {\r\n this.sessionListes.push({ value: 'digitalSessionDailyHighLight', count: 0 });\r\n }\r\n //DigitalSessionEscTV\r\n if (topicListes?.digitalSessionEscTV?.length > 0) {\r\n this.sessionListes.push({ value: topicListes.digitalSessionEscTV[0].value, count: topicListes.digitalSessionEscTV[0].text });\r\n } else {\r\n this.sessionListes.push({ value: 'digitalSessionEscTV', count: 0 });\r\n }\r\n //digitalSessionIndustry\r\n if (topicListes?.digitalSessionIndustry?.length > 0) {\r\n this.sessionListes.push({ value: topicListes.digitalSessionIndustry[0].value, count: topicListes.digitalSessionIndustry[0].text });\r\n } else {\r\n this.sessionListes.push({ value: 'digitalSessionIndustry', count: 0 });\r\n }\r\n\r\n //Exhibition Stands\r\n if (topicListes.industryStand) {\r\n this.sessionListes.push({ value: topicListes.industryStand[0].value, count: topicListes.industryStand[0].text });\r\n } else {\r\n this.sessionListes.push({ value: 'industryStand', count: 0 });\r\n }\r\n\r\n // //Exhibition Stands\r\n // if (contributorsData && contributorsData?.speaker && contributorsData?.speaker?.length > 0) {\r\n // this.sessionListes.push({ value: contributorsData.speaker[0].value, count: contributorsData.speaker[0].text });\r\n // } else {\r\n // this.sessionListes.push({ value: 'Speaker', count: 0 });\r\n // }\r\n\r\n if (topicListes?.speaker?.length > 0) {\r\n this.sessionListes.push({ value: topicListes.speaker[0].value, count: topicListes.speaker[0].text });\r\n } else {\r\n this.sessionListes.push({ value: 'Speaker', count: 0 });\r\n }\r\n\r\n //facetContributors\r\n this.addDataToSessionList(this.sessionListes, this.selectedDocType);\r\n //console.log('docTypeAllData ends');\r\n },\r\n addDataToSessionList(docTypesRes) {\r\n //console.log('addDataToSessionList starts');\r\n if (docTypesRes) {\r\n let _docTypes = docTypesRes;\r\n if (_docTypes.length > 0) {\r\n switch (this.searchDocType) {\r\n case 'DigitalSession': {\r\n const hasAnySessions = _docTypes.find((x) => x.value == 'All');\r\n if (!hasAnySessions) _docTypes.push({ value: 'All', count: 0 });\r\n\r\n const hasAnyScientificSessions = _docTypes.find((x) => x.value == 'DigitalSession');\r\n if (!hasAnyScientificSessions) _docTypes.push({ value: 'DigitalSession', count: 0 });\r\n\r\n const hasAnyIndustrySessions = _docTypes.find((x) => x.value == 'DigitalSessionIndustry');\r\n if (!hasAnyIndustrySessions) _docTypes.push({ value: 'DigitalSessionIndustry', count: 0 });\r\n\r\n const hasAnyDailyHighlightSessions = _docTypes.find((x) => x.value == 'DigitalSessionDailyHighLight');\r\n if (!hasAnyDailyHighlightSessions) _docTypes.push({ value: 'DigitalSessionDailyHighLight', count: 0 });\r\n\r\n const hasAnyEscTvSessions = _docTypes.find((x) => x.value == 'DigitalSessionEscTV');\r\n if (!hasAnyEscTvSessions) _docTypes.push({ value: 'DigitalSessionEscTV', count: 0 });\r\n const hasAnyIndustryStands = _docTypes.find((x) => x.value == 'IndustryStand');\r\n if (!hasAnyIndustryStands) _docTypes.push({ value: 'IndustryStand', count: 0 });\r\n\r\n _docTypes = _docTypes.filter(\r\n (x) =>\r\n x.value === 'All' ||\r\n (this.industryStandsSearch && x.value === 'IndustryStand') ||\r\n (this.indexIndustries && x.value === 'DigitalSessionIndustry') ||\r\n ((this.indexLiveSessions || this.indexOnDemandSessions) && x.value === 'DigitalSession') ||\r\n ((this.indexLiveSessions || this.indexOnDemandSessions) &&\r\n this.indexEscTvSessions &&\r\n x.value === 'DigitalSessionEscTV') ||\r\n ((this.indexLiveSessions || this.indexOnDemandSessions) &&\r\n this.indexDailyHighLight &&\r\n x.value === 'DigitalSessionDailyHighLight')\r\n );\r\n\r\n break;\r\n }\r\n\r\n case 'Speaker': {\r\n const hasAnySpeakers = _docTypes.find((x) => x.value == 'Speaker');\r\n if (!hasAnySpeakers) _docTypes.push({ value: 'Speaker', count: 0 });\r\n\r\n _docTypes = _docTypes.filter((x) => this.indexSpeakers && x.value === 'Speaker');\r\n break;\r\n }\r\n\r\n case 'Abstract': {\r\n const hasAnyAbstracts = _docTypes.find((x) => x.value == 'Abstract');\r\n if (!hasAnyAbstracts) _docTypes.push({ value: 'Abstract', count: 0 });\r\n\r\n _docTypes = _docTypes.filter((x) => this.indexAbstracts && x.value === 'Abstract');\r\n break;\r\n }\r\n }\r\n }\r\n\r\n const facetsOrder = [\r\n { name: 'All', order: 1 },\r\n { name: 'DigitalSession', order: 5 },\r\n { name: 'DigitalSessionEscTV', order: 15 },\r\n { name: 'DigitalSessionDailyHighLight', order: 20 },\r\n { name: 'DigitalSessionIndustry', order: 30 },\r\n { name: 'Speaker', order: 40 },\r\n { name: 'Abstract', order: 50 },\r\n { name: 'IndustryStand', order: 60 },\r\n ];\r\n // Ordering facets...\r\n this.docTypes = _docTypes.sort((a, b) => facetsOrder.find((x) => x.name == a.value)?.order - facetsOrder.find((x) => x.name == b.value)?.order);\r\n\r\n /*\r\n this.selectedDocTypeDefault = desiredDocTypeName ? desiredDocTypeName : this.selectedDocTypeDefault;\r\n const firstDocTypeWithResults = this.docTypes.find((x) => x.count > 0);\r\n const desiredDocType = this.docTypes.find((x) => x.value == this.selectedDocTypeDefault);\r\n if (desiredDocType && desiredDocType.count > 0) {\r\n this.updateSelectedDocType(desiredDocType.value);\r\n } else {\r\n if (firstDocTypeWithResults) {\r\n let urlQuery = this.$route.query.text;\r\n if (urlQuery) {\r\n this.updateSelectedDocType(firstDocTypeWithResults.value);\r\n } else {\r\n this.updateSelectedDocType('DigitalSession');\r\n }\r\n }\r\n }\r\n // this.injectReplaysDocType(facets, results);\r\n */\r\n } else {\r\n this.docTypes = [];\r\n }\r\n //console.log('addDataToSessionList ends');\r\n },\r\n\r\n getFullFilter(currentPage) {\r\n switch (this.searchDocType) {\r\n case 'DigitalSession':\r\n this.endPointToUse = constants.ESC365_API_SCIENTIFIC_CONTENT_SEARCH_PROGRAMME;\r\n break;\r\n case 'Speaker':\r\n this.endPointToUse = constants.ESC365_API_SCIENTIFIC_CONTENT_SEARCH_FACULTY;\r\n break;\r\n case 'Abstract':\r\n this.endPointToUse = constants.ESC365_API_SCIENTIFIC_CONTENT_SEARCH_ABSTRACT;\r\n break;\r\n }\r\n\r\n let searchScientificContentsRequest = this.endPointToUse\r\n .replace('{fulltextquery}', encodeURIComponent(this.query))\r\n .replace('{page}', currentPage)\r\n .replace('{sort}', this.sort)\r\n .replace('{eventId}', this.escEventId)\r\n .replace('{escolEventId}', this.eventId)\r\n .replace('{docType}', this.selectedDocType);\r\n\r\n if (this.selectedDocTypesFacetsValues['topics'] && this.selectedDocTypesFacetsValues['topics'].length > 0) {\r\n searchScientificContentsRequest = searchScientificContentsRequest.concat(\r\n `&topics=${this.selectedDocTypesFacetsValues['topics'].map((x) => encodeURIComponent(x)).join('&topics=')}`\r\n );\r\n }\r\n\r\n if (this.selectedDocTypesFacetsValues['specialities'] && this.selectedDocTypesFacetsValues['specialities'].length > 0) {\r\n searchScientificContentsRequest = searchScientificContentsRequest.concat(\r\n `&specialities=${this.selectedDocTypesFacetsValues['specialities'].map((x) => encodeURIComponent(x)).join('&specialities=')}`\r\n );\r\n }\r\n\r\n if (this.daySelected) {\r\n searchScientificContentsRequest = searchScientificContentsRequest.concat(`&days=${encodeURIComponent(this.daySelected)}`);\r\n }\r\n if (this.selectedDocTypesFacetsValues['country'] && this.selectedDocTypesFacetsValues['country'].length > 0) {\r\n searchScientificContentsRequest = searchScientificContentsRequest.concat(\r\n `&country=${this.selectedDocTypesFacetsValues['country'].map((x) => encodeURIComponent(x)).join('&country=')}`\r\n );\r\n }\r\n if (this.selectedDocTypesFacetsValues['types'] && this.selectedDocTypesFacetsValues['types'].length > 0) {\r\n searchScientificContentsRequest = searchScientificContentsRequest.concat(\r\n `&types=${this.selectedDocTypesFacetsValues['types'].map((x) => encodeURIComponent(x)).join('&types=')}`\r\n );\r\n }\r\n if (this.selectedDocTypesFacetsValues['tracks'] && this.selectedDocTypesFacetsValues['tracks'].length > 0) {\r\n searchScientificContentsRequest = searchScientificContentsRequest.concat(\r\n `&tracks=${this.selectedDocTypesFacetsValues['tracks'].map((x) => encodeURIComponent(x)).join('&tracks=')}`\r\n );\r\n }\r\n if (this.selectedDocTypesFacetsValues['rooms'] && this.selectedDocTypesFacetsValues['rooms'].length > 0) {\r\n searchScientificContentsRequest = searchScientificContentsRequest.concat(\r\n `&rooms=${this.selectedDocTypesFacetsValues['rooms'].map((x) => encodeURIComponent(x)).join('&rooms=')}`\r\n );\r\n }\r\n searchScientificContentsRequest = searchScientificContentsRequest.concat(`&pagesize=${this.perPage}`);\r\n\r\n return searchScientificContentsRequest;\r\n },\r\n getFacetConfiguration(value) {\r\n switch (value) {\r\n case 'days':\r\n return {\r\n hasControl: true,\r\n sm: 3,\r\n multiple: true,\r\n placeholder: 'Days',\r\n limit: 0,\r\n limitText: (count) => `Days (${count})`,\r\n display: false,\r\n };\r\n case 'rooms':\r\n return {\r\n hasControl: true,\r\n sm: 3,\r\n multiple: true,\r\n placeholder: 'Rooms',\r\n limit: 0,\r\n limitText: (count) => `Rooms (${count})`,\r\n display: true,\r\n };\r\n case 'types':\r\n return {\r\n hasControl: true,\r\n sm: 3,\r\n multiple: true,\r\n placeholder: 'Types',\r\n limit: 0,\r\n limitText: (count) => `Types (${count})`,\r\n display: true,\r\n };\r\n case 'tracks':\r\n return {\r\n hasControl: true,\r\n sm: 3,\r\n multiple: true,\r\n placeholder: 'Tracks',\r\n limit: 0,\r\n limitText: (count) => `Tracks (${count})`,\r\n display: true,\r\n };\r\n case 'topics':\r\n return {\r\n hasControl: true,\r\n sm: 5,\r\n multiple: true,\r\n placeholder: 'Topics',\r\n limit: 0,\r\n limitText: (count) => `Topics (${count})`,\r\n display: true,\r\n };\r\n case 'country':\r\n return {\r\n hasControl: true,\r\n multiple: true,\r\n placeholder: 'Countries/Regions',\r\n limit: 0,\r\n limitText: (count) => `Countries/Regions (${count})`,\r\n display: true,\r\n };\r\n case 'specialities':\r\n return {\r\n hasControl: true,\r\n multiple: true,\r\n placeholder: 'Products',\r\n limit: 0,\r\n limitText: (count) => `Product (${count})`,\r\n display: true,\r\n };\r\n }\r\n },\r\n getDocTypeFacets(value, forControls = false) {\r\n const startTimeRanges = [];\r\n for (const date of this.eventDates) {\r\n const startDate = DateTime.fromJSDate(date).set({ hour: 0, minute: 0, seconds: 0 });\r\n const endDate = startDate.set({ hour: 23, minute: 59, seconds: 59 });\r\n startTimeRanges.push({\r\n from: startDate.toISO(),\r\n to: endDate.toISO(),\r\n name: startDate.setLocale('en-gb').toLocaleString({ month: 'long', day: 'numeric' }),\r\n });\r\n }\r\n\r\n let docTypeFacets = {};\r\n\r\n switch (value) {\r\n case 'DigitalSession':\r\n docTypeFacets = {\r\n types: [{ type: 'value', name: 'types', size: 250, sort: { value: 'asc' } }],\r\n tracks: [{ type: 'value', name: 'tracks', size: 250, sort: { value: 'asc' } }],\r\n topics: [{ type: 'value', name: 'topics', size: 250, sort: { value: 'asc' } }], //,sort: { \"value\": \"asc\" }\r\n rooms: [{ type: 'value', name: 'rooms', size: 250, sort: { value: 'asc' } }],\r\n };\r\n\r\n if (!forControls) docTypeFacets.tracks = [{ type: 'value', name: 'tracks', size: 250, sort: { value: 'asc' } }];\r\n break;\r\n\r\n case 'DigitalSessionIndustry':\r\n docTypeFacets = {\r\n types: [{ type: 'value', name: 'types', size: 250, sort: { value: 'asc' } }],\r\n tracks: [{ type: 'value', name: 'tracks', size: 250, sort: { value: 'asc' } }],\r\n topics: [{ type: 'value', name: 'topics', size: 250, sort: { value: 'asc' } }],\r\n rooms: [{ type: 'value', name: 'rooms', size: 250, sort: { value: 'asc' } }],\r\n };\r\n break;\r\n\r\n case 'DigitalSessionDailyHighLight':\r\n docTypeFacets = {};\r\n break;\r\n\r\n case 'DigitalSessionEscTV':\r\n docTypeFacets = {};\r\n break;\r\n\r\n case 'Speaker':\r\n docTypeFacets = {\r\n country: [{ type: 'value', name: 'country', size: 250, sort: { value: 'asc' } }],\r\n };\r\n break;\r\n\r\n case 'Abstract':\r\n docTypeFacets = {\r\n topics: [{ type: 'value', name: 'topics', size: 250, sort: { value: 'asc' } }],\r\n country: [{ type: 'value', name: 'country', size: 250, sort: { value: 'asc' } }],\r\n };\r\n break;\r\n\r\n case 'IndustryStand':\r\n //docTypeFacets = {};\r\n docTypeFacets = {\r\n //session_type: [{ type: 'value', name: 'session_type', size: 250, sort: { value: 'asc' } }],\r\n //tracks: [{ type: 'value', name: 'tracks', size: 250, sort: { value: 'asc' } }],\r\n topics: [{ type: 'value', name: 'topics', size: 250, sort: { value: 'asc' } }],\r\n //session_type: [{ type: 'value', name: 'session_type', size: 250, sort: { value: 'asc' } }],\r\n specialities: [{ type: 'value', name: 'specialities', size: 250, sort: { value: 'asc' } }],\r\n rooms: [{ type: 'value', name: 'rooms', size: 250, sort: { value: 'asc' } }],\r\n };\r\n //if (!forControls) docTypeFacets.tracks = [{ type: 'value', name: 'tracks', size: 250, sort: { value: 'asc' } }];\r\n break;\r\n }\r\n return docTypeFacets;\r\n },\r\n getDocTypeHeader(value) {\r\n switch (value) {\r\n case 'All':\r\n return 'All Sessions';\r\n case 'DigitalSession':\r\n return 'Scientific Sessions';\r\n case 'DigitalSessionIndustry':\r\n return 'Industry Sessions';\r\n case 'DigitalSessionDailyHighLight':\r\n return 'Global Community';\r\n case 'DigitalSessionEscTV':\r\n return 'ESC TV';\r\n case 'Speaker':\r\n return 'Faculty & Presenters';\r\n case 'Abstract':\r\n return 'Abstracts';\r\n case 'IndustryStand':\r\n return 'Exhibition Stands';\r\n default:\r\n return value;\r\n }\r\n },\r\n addTopicWithParent(topicParentId, topicToAdd, topicsArr) {\r\n const topicParent = topicsArr.find((x) => x.id == topicParentId);\r\n if (topicParent) {\r\n if (!topicParent.children) topicParent.children = [];\r\n\r\n topicParent.children.push(topicToAdd);\r\n } else {\r\n for (let i = 0; i < topicsArr.length; i++) {\r\n const topic = topicsArr[i];\r\n if (topic.children) this.addTopicWithParent(topicParentId, topicToAdd, topic.children);\r\n }\r\n }\r\n },\r\n\r\n onTextInputKeydown(e) {\r\n if (e.which === 13) {\r\n this.onSearchClick();\r\n return;\r\n }\r\n },\r\n\r\n async onOnShowChange(args) {\r\n this.showCards = false;\r\n this.showList = false;\r\n this.showCalendar = false;\r\n if (args.showList || args.showCalendar) {\r\n this.perPage = 999;\r\n this.sort = 'Earliest';\r\n } else {\r\n this.perPage = 20;\r\n this.sort = 'MostRelevant';\r\n }\r\n this.showCards = args.showCards;\r\n this.showList = args.showList;\r\n this.showCalendar = args.showCalendar;\r\n //console.log('refreshSessionDetails onOnShowChange');\r\n await this.refreshSessionDetails({ currentPage: 1 });\r\n },\r\n\r\n async setDay(selectDay) {\r\n const year = selectDay.getFullYear();\r\n const month = String(selectDay.getMonth() + 1).padStart(2, '0');\r\n const day = String(selectDay.getDate()).padStart(2, '0');\r\n this.daySelected = `${year}-${month}-${day}`;\r\n //console.log('refreshSessionDetails selectDay');\r\n await this.refreshSessionDetails({ currentPage: 1 });\r\n },\r\n\r\n onActivateTab(newTabIndex, _, bvEvent) {\r\n if (this.docTypes[newTabIndex].count == 0) bvEvent.preventDefault();\r\n },\r\n OnChildLoading(isLoading) {\r\n //console.log('OnChildLoading', isLoading);\r\n this.isChildLoading = isLoading;\r\n },\r\n handleScroll() {\r\n this.showScrollToTop = window.scrollY > 50;\r\n },\r\n scrollToSearchBar() {\r\n this.$refs.searchBar?.scrollIntoViewExtended({ behavior: 'smooth', block: 'start',baseOffset:20,navOffset:true,daysBarOffset:false });\r\n },\r\n },\r\n };\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n #tabsContainer {\r\n min-height: 78px;\r\n }\r\n\r\n .tab__title {\r\n vertical-align: text-bottom;\r\n }\r\n\r\n .tab__title_xl {\r\n }\r\n\r\n .tab__title__count {\r\n font-size: 0.75em;\r\n }\r\n\r\n .tab__title__active,\r\n .nav-link.active .tab__title {\r\n color: var(--congress);\r\n border-bottom: 2px solid var(--congress);\r\n }\r\n\r\n .btn-clear {\r\n font-size: 0.8em;\r\n padding: 0;\r\n background: #525252;\r\n border-color: transparent;\r\n border: 0;\r\n color: $secondary;\r\n\r\n &:hover,\r\n :focus,\r\n :active,\r\n :target {\r\n background: #525252;\r\n color: $secondary;\r\n border-color: transparent;\r\n text-decoration: underline;\r\n box-shadow: none;\r\n }\r\n }\r\n\r\n .clear-icon {\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n ::v-deep .spinner-border {\r\n position: absolute;\r\n top: 10%;\r\n left: 50%;\r\n width: 3rem;\r\n height: 3rem;\r\n }\r\n\r\n /*ONBOARDING TOUR*/\r\n .row.v-tour__target--highlighted {\r\n border-radius: 0.75rem;\r\n box-shadow: inset 0 0 0 4px rgba(0, 0, 0, 0.4);\r\n margin: 0;\r\n background: white;\r\n }\r\n\r\n .v-tour__target--highlighted,\r\n .v-step {\r\n z-index: inherit;\r\n }\r\n\r\n .search {\r\n font-size: 0.9em;\r\n background-color: #525252;\r\n\r\n & .btn {\r\n font-size: 0.9rem;\r\n }\r\n }\r\n\r\n @include media-breakpoint-up(sm) {\r\n .search {\r\n padding: 8px;\r\n text-align: center;\r\n border-radius: 55px;\r\n margin-bottom: 1rem;\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n .search {\r\n padding-top: 1rem;\r\n padding-bottom: 1rem;\r\n border-radius: 1rem;\r\n }\r\n\r\n .btn-clear {\r\n display: block;\r\n margin: auto;\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(lg) {\r\n .filter__list {\r\n display: none;\r\n }\r\n }\r\n\r\n .jumbotron {\r\n padding: 0;\r\n background-color: transparent !important;\r\n margin: 0;\r\n }\r\n\r\n .display-3 {\r\n font-size: 1.8em;\r\n }\r\n\r\n .lead {\r\n font-size: 1.15em;\r\n }\r\n\r\n .searchInput {\r\n border-radius: 55px;\r\n border: 0;\r\n height: 40px;\r\n }\r\n\r\n .nav-tabs .nav-link {\r\n &:hover {\r\n border-color: #e9ecef #e9ecef #dee2e6;\r\n }\r\n }\r\n\r\n .disabled {\r\n pointer-events: none;\r\n opacity: 0.5;\r\n }\r\n\r\n .badge__selected {\r\n line-height: 1.38;\r\n }\r\n\r\n .badge-secondary {\r\n background-color: var(--congress-light);\r\n color: var(--congress-dark);\r\n font-size: 0.8em;\r\n }\r\n\r\n .btn-floating.scroller {\r\n position: fixed;\r\n border: 2px solid;\r\n bottom: 50px;\r\n right: 20px;\r\n z-index: 1000;\r\n width: 35px;\r\n height: 35px;\r\n border-radius: 50%;\r\n text-align: center;\r\n vertical-align: middle;\r\n margin: auto;\r\n padding: 5px 0px;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=0089cff8&scoped=true\"\nimport script from \"./Search.vue?vue&type=script&lang=js\"\nexport * from \"./Search.vue?vue&type=script&lang=js\"\nimport style0 from \"./Search.vue?vue&type=style&index=0&id=0089cff8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0089cff8\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <!-- \r\n ========================================================================================================================================================================\r\n HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-row class=\"hero__banner\">\r\n <b-col\r\n v-if=\"!isMobileAppPage && !isHomePage\"\r\n cols=\"12\"\r\n class=\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"eventInfo\">\r\n <h1>Programme</h1>\r\n <div class=\"eventDate mt-3\">Browse the sessions, bookmark your favourites and start the journey to your congress.</div>\r\n <div class=\"eventDate\">Please note that the programme times are displayed in local times for {{ locationEvent }}.</div>\r\n <div v-if=\"this.confCmsData && this.confCmsData.paag_doc && this.confCmsData.paag_doc.filename\">\r\n <b-button variant=\"link\" :href=\"this.confCmsData.paag_doc.filename\" class=\"d-inline-flex align-items-center mt-3 px-0\"\r\n ><span class=\"material-icons-round align-middle mr-2\"> system_update_alt </span> Download the Programme at a glance</b-button\r\n >\r\n </div>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <!-- \r\n ========================================================================================================================================================================\r\n END HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n\r\n <b-container fluid class=\"px-lg-5\" :class=\"isTimelineExpanded ? 'd-block d-md-none' : 'd-block'\">\r\n <b-row no-gutters>\r\n <!-- ESC Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\">\r\n <EscBanners />\r\n </b-col>\r\n\r\n <!-- Search -->\r\n\r\n <b-col cols=\"12\" :lg=\"hasBoostedTerms || hasTrending || hasPopularity ? 9 : 12\" class=\"pt-3\">\r\n <Search :searchDocType=\"'DigitalSession'\" @is-loading=\"OnLoading\" />\r\n </b-col>\r\n\r\n <b-col cols=\"12\" class=\"pt-3\">\r\n <!-- Register Promo -->\r\n <RegisterPromoWidget />\r\n </b-col>\r\n\r\n <!-- IndustryBanners Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\" class=\"pt-3\">\r\n <IndustryBanners />\r\n </b-col>\r\n </b-row>\r\n\r\n <v-tour v-if=\"!isMobile\" name=\"search-tour\" :steps=\"steps\" :callbacks=\"callbacks\" :active=\"isTourActive\"></v-tour>\r\n </b-container>\r\n\r\n <!-- Suggestions -->\r\n <RecommendationBlock />\r\n\r\n <!-- NEW CARDS FROM SLIDER -->\r\n <div class=\"authoredSlidesBlock px-0\">\r\n <h3 class=\"px-5 mb-3\">You may also be interested in</h3>\r\n <AuthoredSlidesBlock />\r\n </div>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n import toursManagerMixin from 'src/mixins/toursManagerMixin';\r\n import EscBanners from 'src/components/Banners/EscBanners';\r\n import IndustryBanners from 'src/components/Banners/IndustryBanners';\r\n import RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\n import RecommendationBlock from 'src/components/Blocks/RecommendationBlock.vue';\r\n import Search from 'src/components/Search/Search';\r\n import { constants } from 'src/constants';\r\n import AuthoredSlidesBlock from 'src/components/Blocks/AuthoredSlidesBlock.vue';\r\n\r\n export default {\r\n name: 'Overview',\r\n mixins: [openModalMixin, toursManagerMixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners,\r\n Search,\r\n RegisterPromoWidget,\r\n RecommendationBlock,\r\n AuthoredSlidesBlock,\r\n },\r\n data() {\r\n return {\r\n isTourActive: false,\r\n steps: [\r\n {\r\n target: '[data-v-step-search=\"0\"]',\r\n header: {\r\n //title: '<b>Type your search</b>'\r\n },\r\n content: `Search for authors, speakers, title or keywords.`,\r\n params: {\r\n placement: 'top',\r\n enableScrolling: false,\r\n highlight: true,\r\n },\r\n },\r\n {\r\n target: '[data-v-step-search=\"1\"]', // We're using document.querySelector() under the hood\r\n header: {\r\n //title: '<b>Welcome to search in the programme 🙂</b>'\r\n },\r\n content: `Filter the sessions by category. The number in brackets shows the number of sessions per option.`,\r\n params: {\r\n placement: 'bottom',\r\n enableScrolling: false,\r\n highlight: true,\r\n },\r\n },\r\n {\r\n target: '[data-v-step-search=\"2\"]',\r\n header: {\r\n //title: '<b>Search by day, types and tracks and topics</b>'\r\n },\r\n content: `Select a date and discover the daily schedule. In brackets, the number of sessions per day.`,\r\n params: {\r\n placement: 'top',\r\n highlight: true,\r\n enableScrolling: false,\r\n },\r\n },\r\n {\r\n target: '[data-v-step-search=\"3\"]',\r\n header: {\r\n //title: '<b>Session details</b>'\r\n },\r\n content: `Change your results’ presentation.`,\r\n params: {\r\n placement: 'bottom',\r\n highlight: true,\r\n enableScrolling: false,\r\n },\r\n },\r\n {\r\n target: '[data-v-step-search=\"4\"]',\r\n header: {\r\n //title: '<b>Session of interest</b>'\r\n },\r\n content: `Click on the icon to add a session to My Programme. Only available when you’re signed in.`,\r\n params: {\r\n placement: 'top',\r\n highlight: true,\r\n enableScrolling: false,\r\n },\r\n },\r\n ],\r\n callbacks: {\r\n onSkip: () => this.onTourCompleted('search'),\r\n onFinish: () => this.onTourCompleted('search'),\r\n },\r\n userRecos: [],\r\n trendingRecos: [],\r\n popularRecos: [],\r\n hasTrending: false,\r\n hasBoostedTerms: false,\r\n hasPopularity: false,\r\n selectedRecommendationType: null,\r\n selectedContentType: null,\r\n recommendationData: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventRoute: (state) => state.app.eventRoute,\r\n appVersion: (state) => state.app.version,\r\n locationEvent: (state) => state.app.locationEvent,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n confCmsData: (state) => state.app.confCmsData,\r\n }),\r\n ...mapGetters(['isTimelineExpanded', 'isLogged', 'currentUser', 'appVersion']),\r\n\r\n isMobileAppPage() {\r\n const pagesWithoutTimeline = [\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_PRE_HOME}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_HAPPENING_NOW}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_INTERACTIVITY}`,\r\n ];\r\n return pagesWithoutTimeline.map((x) => `/${this.eventRoute}/${x}`).includes(this.$route.path);\r\n },\r\n isMobile() {\r\n return this.$screen.breakpoint === 'xs' || this.$screen.breakpoint === 'sm' || this.$screen.breakpoint === 'md'; // window.innerWidth <= 768; // Détecte les écrans de 768px de large ou moins comme étant des appareils mobiles\r\n },\r\n isHomePage() {\r\n return this.$route.path === `/${this.eventRoute}` || this.$route.path === `/${this.eventRoute}/` || this.$route.path === `/${this.eventRoute}/home`;\r\n },\r\n },\r\n async mounted() {},\r\n methods: {\r\n hasUserRecos() {\r\n return this.recommendationData.BoostedTerms && this.recommendationData.BoostedTerms.Sessions && this.recommendationData.BoostedTerms.Sessions.length > 0;\r\n },\r\n hasTrendingRecos() {\r\n return this.recommendationData.Trending && this.recommendationData.Trending.Sessions && this.recommendationData.Trending.Sessions.length > 0;\r\n },\r\n hasPopularRecos() {\r\n return this.recommendationData.Popularity && this.recommendationData.Popularity.Sessions && this.recommendationData.Popularity.Sessions.length > 0;\r\n },\r\n filterRecos(recos) {\r\n return recos.filter((obj, pos, arr) => {\r\n return obj['content'] !== null && obj['content'] !== '' && arr.map((mapObj) => mapObj['content']).indexOf(obj['content']) === pos;\r\n });\r\n },\r\n sanitizeId(rawId) {\r\n if (!rawId) return '#';\r\n return rawId.substring(1, rawId.length);\r\n },\r\n extractId(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return parseFloat(rawcontent);\r\n },\r\n extractTitle(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return rawcontent.replace(parseFloat(rawcontent), '');\r\n },\r\n OnLoading(isLoading) {\r\n if (!isLoading) {\r\n this.$nextTick(() => {\r\n if (!this.isMobile && !this.isTourActive) {\r\n this.isTourActive = true;\r\n if (!this.tours || !this.tours.search) this.$tours['search-tour'].start();\r\n }\r\n });\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .v-step__header {\r\n background: #000;\r\n }\r\n\r\n .v-step {\r\n z-index: 1;\r\n }\r\n\r\n /*TEST RECOMMENDATION CARD*/\r\n .card {\r\n border: 0;\r\n }\r\n\r\n .card-body {\r\n padding: 0.75rem !important;\r\n }\r\n\r\n .card-body a {\r\n display: flex;\r\n }\r\n\r\n .card-body a:hover {\r\n text-decoration: none;\r\n }\r\n\r\n .card-text {\r\n margin-bottom: 0;\r\n font-size: 0.9em;\r\n line-height: 1.25;\r\n }\r\n\r\n .search__card__footer__action i {\r\n align-self: center;\r\n }\r\n\r\n ::v-deep .nav-pills .nav-link {\r\n font-size: 0.83em;\r\n }\r\n\r\n ::v-deep .card-header {\r\n border-bottom: 0;\r\n background: transparent;\r\n }\r\n\r\n ::v-deep .tab-pane {\r\n padding: 0 !important;\r\n }\r\n\r\n .authoredSlidesBlock {\r\n background-color: #fff;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Overview.vue?vue&type=template&id=723590e9&scoped=true\"\nimport script from \"./Overview.vue?vue&type=script&lang=js\"\nexport * from \"./Overview.vue?vue&type=script&lang=js\"\nimport style0 from \"./Overview.vue?vue&type=style&index=0&id=723590e9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"723590e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('b-row',{staticClass:\"hero__banner\"},[(!_vm.isMobileAppPage && !_vm.isHomePage)?_c('b-col',{staticClass:\"hero__bg px-3 px-md-0 pt-5 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo\"},[_c('h1',[_vm._v(\"Faculty & Presenters\")]),_c('div',{staticClass:\"eventDate mt-3\"},[_vm._v(\"Meet with your cardiology heroes and the inspirational members of the global cardiology community.\")])])]):_vm._e()],1),_c('b-container',{staticClass:\"px-5 mb-5\",class:_vm.isTimelineExpanded ? 'd-block d-md-none' : 'd-block',attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('EscBanners')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"12\",\"lg\":_vm.hasBoostedTerms || _vm.hasTrending || _vm.hasPopularity ? 9 : 12}},[_c('Search',{attrs:{\"searchDocType\":'Speaker'}})],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"12\"}},[_c('RegisterPromoWidget')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('IndustryBanners')],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment>\r\n <!-- \r\n ========================================================================================================================================================================\r\n HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-row class=\"hero__banner\">\r\n <b-col\r\n v-if=\"!isMobileAppPage && !isHomePage\"\r\n cols=\"12\"\r\n class=\"hero__bg px-3 px-md-0 pt-5 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"eventInfo\">\r\n <h1>Faculty & Presenters</h1>\r\n <div class=\"eventDate mt-3\">Meet with your cardiology heroes and the inspirational members of the global cardiology community.</div>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <!-- \r\n ========================================================================================================================================================================\r\n END HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-container fluid class=\"px-5 mb-5\" :class=\"isTimelineExpanded ? 'd-block d-md-none' : 'd-block'\">\r\n <b-row>\r\n <!-- ESC Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\">\r\n <EscBanners />\r\n </b-col>\r\n\r\n <!-- OverviewTabs -->\r\n <b-col cols=\"12\" :lg=\"hasBoostedTerms || hasTrending || hasPopularity ? 9 : 12\" class=\"pt-3\">\r\n <Search :searchDocType=\"'Speaker'\" />\r\n </b-col>\r\n\r\n <b-col cols=\"12\" class=\"pt-3\">\r\n <!-- Register Promo -->\r\n <RegisterPromoWidget />\r\n </b-col>\r\n\r\n <!-- IndustryBanners Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\" class=\"pt-3\">\r\n <IndustryBanners />\r\n </b-col>\r\n </b-row>\r\n\r\n <!--<v-tour name=\"search-tour\" :steps=\"steps\" :callbacks=\"callbacks\"></v-tour> -->\r\n </b-container>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n import toursManagerMixin from 'src/mixins/toursManagerMixin';\r\n import { constants } from 'src/constants';\r\n import EscBanners from 'src/components/Banners/EscBanners';\r\n import IndustryBanners from 'src/components/Banners/IndustryBanners';\r\n import RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\n import Search from 'src/components/Search/Search';\r\n export default {\r\n name: 'Overview',\r\n mixins: [openModalMixin, toursManagerMixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners,\r\n Search,\r\n RegisterPromoWidget,\r\n },\r\n data() {\r\n return {\r\n // steps: [\r\n // {\r\n // target: '[data-v-step-search=\"0\"]', // We're using document.querySelector() under the hood\r\n // header: {\r\n // //title: '<b>Welcome to search in the programme 🙂</b>'\r\n // },\r\n // content: `Find sessions of special interest to you and prepare your personalised programme.`,\r\n // params: {\r\n // placement: 'bottom',\r\n // enableScrolling: false,\r\n // highlight: true,\r\n // },\r\n // },\r\n // {\r\n // target: '[data-v-step-search=\"1\"]',\r\n // header: {\r\n // //title: '<b>Type your search</b>'\r\n // },\r\n // content: `Search for authors, speakers, title or keywords.`,\r\n // params: {\r\n // placement: 'bottom',\r\n // enableScrolling: false,\r\n // highlight: true,\r\n // },\r\n // },\r\n // {\r\n // target: '[data-v-step-search=\"2\"]',\r\n // header: {\r\n // //title: '<b>Search by day, types and tracks and topics</b>'\r\n // },\r\n // content: `Get an overview of the programme by day, type and track and by topic.`,\r\n // params: {\r\n // placement: 'bottom',\r\n // highlight: true,\r\n // enableScrolling: false,\r\n // },\r\n // },\r\n // {\r\n // target: '[data-v-step-search=\"3\"]',\r\n // header: {\r\n // //title: '<b>Session details</b>'\r\n // },\r\n // content: `Click on See details to get more information about the session.`,\r\n // params: {\r\n // placement: 'bottom',\r\n // highlight: true,\r\n // enableScrolling: false,\r\n // },\r\n // },\r\n // {\r\n // target: '[data-v-step-search=\"4\"]',\r\n // header: {\r\n // //title: '<b>Session of interest</b>'\r\n // },\r\n // content: `Save a session that interests you by clicking on the icon. `,\r\n // params: {\r\n // placement: 'bottom',\r\n // highlight: true,\r\n // enableScrolling: false,\r\n // },\r\n // },\r\n // {\r\n // target: '[data-v-step-search=\"5\"]',\r\n // header: {\r\n // //title: '<b>Find your programme</b>'\r\n // },\r\n // content: `The sessions you saved can be found in My Programme. `,\r\n // params: {\r\n // placement: 'bottom',\r\n // highlight: true,\r\n // enableScrolling: true,\r\n // },\r\n // },\r\n //],\r\n // callbacks: {\r\n // onSkip: () => this.onTourCompleted('search'),\r\n // onFinish: () => this.onTourCompleted('search'),\r\n // },\r\n userRecos: [],\r\n trendingRecos: [],\r\n popularRecos: [],\r\n hasTrending: false,\r\n hasBoostedTerms: false,\r\n hasPopularity: false,\r\n selectedRecommendationType: null,\r\n selectedContentType: null,\r\n recommendationData: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventRoute: (state) => state.app.eventRoute,\r\n appVersion: (state) => state.app.version,\r\n locationEvent: (state) => state.app.locationEvent,\r\n }),\r\n ...mapGetters(['isTimelineExpanded', 'isLogged', 'currentUser', 'appVersion']),\r\n\r\n isMobileAppPage() {\r\n const pagesWithoutTimeline = [\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_PRE_HOME}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_HAPPENING_NOW}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_INTERACTIVITY}`,\r\n ];\r\n return pagesWithoutTimeline.map((x) => `/${this.eventRoute}/${x}`).includes(this.$route.path);\r\n },\r\n\r\n isHomePage() {\r\n return this.$route.path === `/${this.eventRoute}` || this.$route.path === `/${this.eventRoute}/` || this.$route.path === `/${this.eventRoute}/home`;\r\n },\r\n },\r\n async mounted() {\r\n\r\n },\r\n methods: {\r\n hasUserRecos() {\r\n return this.recommendationData.BoostedTerms && this.recommendationData.BoostedTerms.Sessions && this.recommendationData.BoostedTerms.Sessions.length > 0;\r\n },\r\n hasTrendingRecos() {\r\n return this.recommendationData.Trending && this.recommendationData.Trending.Sessions && this.recommendationData.Trending.Sessions.length > 0;\r\n },\r\n hasPopularRecos() {\r\n return this.recommendationData.Popularity && this.recommendationData.Popularity.Sessions && this.recommendationData.Popularity.Sessions.length > 0;\r\n },\r\n //get partId from cookies\r\n\r\n filterRecos(recos) {\r\n return recos.filter((obj, pos, arr) => {\r\n return obj['content'] !== null && obj['content'] !== '' && arr.map((mapObj) => mapObj['content']).indexOf(obj['content']) === pos;\r\n });\r\n },\r\n sanitizeId(rawId) {\r\n if (!rawId) return '#';\r\n return rawId.substring(1, rawId.length);\r\n },\r\n extractId(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return parseFloat(rawcontent);\r\n },\r\n extractTitle(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return rawcontent.replace(parseFloat(rawcontent), '');\r\n },\r\n getuuid(uuid) {\r\n let uid = '';\r\n if (uuid.length > 0) {\r\n uid = uuid[uuid.length - 1];\r\n } else {\r\n uid = uuid[0];\r\n }\r\n return uid;\r\n },\r\n getuuidTrending(uuid) {\r\n let uid = '';\r\n if (uuid.length > 0) {\r\n uid = uuid[1];\r\n } else {\r\n uid = uuid[0];\r\n }\r\n return uid;\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .v-step__header {\r\n background: #000;\r\n }\r\n\r\n .v-step {\r\n z-index: 1;\r\n }\r\n\r\n /*TEST RECOMMENDATION CARD*/\r\n .card {\r\n border: 0;\r\n }\r\n\r\n .card-body {\r\n padding: 0.75rem !important;\r\n }\r\n\r\n .card-body a {\r\n display: flex;\r\n }\r\n\r\n .card-body a:hover {\r\n text-decoration: none;\r\n }\r\n\r\n .card-text {\r\n margin-bottom: 0;\r\n font-size: 0.9em;\r\n line-height: 1.25;\r\n }\r\n\r\n .search__card__footer__action i {\r\n align-self: center;\r\n }\r\n\r\n ::v-deep .nav-pills .nav-link {\r\n font-size: 0.83em;\r\n }\r\n\r\n ::v-deep .card-header {\r\n border-bottom: 0;\r\n background: transparent;\r\n }\r\n\r\n ::v-deep .tab-pane {\r\n padding: 0 !important;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Overview.vue?vue&type=template&id=03a6428a&scoped=true\"\nimport script from \"./Overview.vue?vue&type=script&lang=js\"\nexport * from \"./Overview.vue?vue&type=script&lang=js\"\nimport style0 from \"./Overview.vue?vue&type=style&index=0&id=03a6428a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03a6428a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"w-100\"},[_c('div',{staticClass:\"hero__banner\"},[_c('b-col',{staticClass:\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${_vm.version}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo\"},[_c('h1',[_vm._v(\"Simulation village\")]),_c('div',{staticClass:\"eventDate mt-3\"},[_vm._v(\"These sessions are restricted to onsite congress delegates and based on first-come first-served.\")]),_c('div',{staticClass:\"eventDate\"},[_vm._v(\"Please note that the programme times are displayed on local times in \"+_vm._s(_vm.venue)+\".\")])])])],1),_c('b-container',{staticClass:\"px-lg-5\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('div',{staticClass:\"timeLine px-lg-3\",attrs:{\"id\":\"topStickyDays\"}},[_c('b-row',{staticClass:\"p-2 mb-4 font-black\"},_vm._l((_vm.eventDays),function(day,index){return _c('b-col',{key:day.toString(),staticClass:\"date__text\",class:{ 'selected' : index === _vm.eventDaySelectedIndex}},[_c('span',{staticClass:\"d-block\",on:{\"click\":function($event){return _vm.updateTab(index)}}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPart\")(day)))])])}),1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"px-0\",attrs:{\"cols\":\"12\"}},[_c('b-container',{staticClass:\"mb-3\",attrs:{\"fluid\":\"\"}},[(_vm.isLoading)?_c('div',{staticClass:\"d-flex justify-content-center m-5\"},[_c('b-spinner',{staticStyle:{\"width\":\"2rem\",\"height\":\"2rem\"},attrs:{\"variant\":\"congress\",\"label\":\"loading\"}})],1):_vm._l((_vm.workshops),function(workshop){return _c('div',{key:workshop.id,staticClass:\"session-item mb-4\"},[(workshop.slots.length > 0)?_c('b-row',{staticClass:\"card session__card px-4 py-3 d-block\",class:{ 'session__card-disabled': _vm.isPastSlot }},[_c('b-row',[_c('b-col',{staticClass:\"header\"},[_c('h4',{staticClass:\"card-title\"},[_vm._v(_vm._s(workshop.displayName))]),_c('div',{staticClass:\"d-block text-left lh-1\"},[_c('div',{staticClass:\"session__type font-regular d-block d-lg-flex\"},[_c('div',{staticClass:\"d-inline-flex align-items-center mr-3 lh-sm\"},[_c('span',{staticClass:\"material-icons-outlined mr-1\"},[_vm._v(\" co_present \")]),_vm._v(\" \"),_c('span',[_vm._v(\"Workshop\")])]),(workshop.sessionDuration > 0)?_c('div',{staticClass:\"d-inline-flex align-items-center mr-3 lh-sm\"},[_c('span',{staticClass:\"material-icons-outlined mr-1\"},[_vm._v(\" access_time \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(workshop.sessionDuration)+\" min.\")])]):_vm._e(),(workshop.room)?_c('div',{staticClass:\"d-inline-flex align-items-center mr-3 lh-sm\"},[_c('span',{staticClass:\"material-icons-outlined mr-1\"},[_vm._v(\" place \")]),_c('span',[_vm._v(_vm._s(workshop.room))])]):_vm._e()])])]),(workshop.price)?_c('b-col',{staticClass:\"font-black text-md-right text-congress\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_vm._v(\" €\"+_vm._s(workshop.price)+\"/session \")]):_vm._e()],1),_c('b-row',[_c('b-col',[_c('div',{staticClass:\"session__description mt-3 font-italic\"},[_c('small',[_vm._v(\" \"+_vm._s(workshop.description)+\" \")])]),_c('div',{staticClass:\"select__sesions mt-2\"},[(workshop.purchased && _vm.isRegisteredOnSite)?[_c('b-badge',{staticClass:\"px-3 py-2 alert-success\",attrs:{\"pill\":\"\",\"variant\":\"success\"}},[_vm._v(\"You have already booked a seat for this session\")])]:_vm._l((workshop.slots),function(slot){return _c('span',{key:slot.id,attrs:{\"id\":`tooltip-target-${slot.id}`}},[_c('b-button',{staticClass:\"d-inline-flex align-items-center justify-content-between mb-2 mr-2 pl-3 pr-2\",class:{ 'btn-congress': slot.checked, 'btn-light': !slot.checked },attrs:{\"pill\":\"\",\"size\":\"sm\",\"disabled\":_vm.isPastSlot || slot.availableSits <= 0 || !_vm.isLogged || !_vm.isRegisteredOnSite},on:{\"click\":function($event){return _vm.selectSlot(workshop, slot)}}},[_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(slot.startTime.substring(0, slot.startTime.lastIndexOf(':'))))]),_vm._v(\" \"),_c('b-form-checkbox',{staticClass:\"ml-2\",attrs:{\"disabled\":\"\",\"checked\":slot.checked},on:{\"change\":function($event){slot.checked = !slot.checked}}}),_c('b-tooltip',{attrs:{\"target\":`tooltip-target-${slot.id}`,\"triggers\":\"hover\",\"placement\":\"topright\"}},[(!_vm.isPastSlot)?[(!_vm.isLogged)?[_vm._v(\" Please sign in to register \")]:(!_vm.isRegisteredOnSite)?[_vm._v(\" You need to have an onsite registration to register \")]:(slot.availableSits <= 0)?[_vm._v(\" No more seats available \")]:_vm._e()]:_vm._e()],2)],1)],1)})],2)])],1)],1):_vm._e()],1)})],2)],1)],1)],1),_c('b-modal',{attrs:{\"id\":\"modal-selection-fail\",\"hide-header\":\"\",\"hide-footer\":\"\",\"size\":\"lg\"}},[_c('div',{staticClass:\"signIn__card position-relative p-5 text-center mb-3\"},[_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"22rem\",\"height\":\"22rem\",\"top\":\"24rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"22rem\",\"height\":\"22rem\",\"top\":\"0rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"14rem\",\"height\":\"14rem\",\"top\":\"24rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"14rem\",\"height\":\"14rem\",\"top\":\"0rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"6rem\",\"height\":\"6rem\",\"top\":\"24rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"6rem\",\"height\":\"6rem\",\"top\":\"0rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"font-black mb-3 text-center position-relative\"},[_vm._v(\"You can't select this session\")]),_c('div',{staticClass:\"mb-4 text-center position-relative\"},[_c('small',[_vm._v(\"You have already booked a slot for this session or another session at the same time.\")])]),_c('div',[_c('b-button',{staticClass:\"d-inline-block m-auto position-relative\",attrs:{\"pill\":\"\"},on:{\"click\":function($event){return _vm.$bvModal.hide('modal-selection-fail')}}},[_vm._v(\"Close\")])],1)])])]),_c('b-modal',{attrs:{\"id\":\"modal-check-cart\",\"hide-footer\":\"\"}},[_c('div',{staticClass:\"flex\"},[_c('p',[_vm._v(\"The following slots are no more available:\")]),_c('ul',_vm._l((_vm.cartCheckErrors),function(item){return _c('li',{key:item.id},[_vm._v(\" \"+_vm._s(item.name)+\" from \"+_vm._s(item.startTime.substring(0, item.startTime.lastIndexOf(':')))+\" to \"+_vm._s(item.endTime.substring(0, item.endTime.lastIndexOf(':')))+\" \")])}),0),_c('div',[_c('b-button',{staticClass:\"d-block w-100 position-relative\",attrs:{\"pill\":\"\"},on:{\"click\":function($event){return _vm.$bvModal.hide('modal-check-cart')}}},[_vm._v(\"Back\")]),(_vm.slotSelection.length - _vm.cartCheckErrors.length > 0)?_c('b-button',{staticClass:\"d-block w-100 position-relative\",attrs:{\"pill\":\"\"},on:{\"click\":_vm.redirectToCheckout}},[_vm._v(\"Continue\")]):_vm._e()],1)])]),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[(_vm.isRegistrationLoaded)?[(!_vm.isLogged)?_c('div',{staticClass:\"signIn__card position-relative p-4 text-center mb-4\"},[_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"22rem\",\"height\":\"22rem\",\"top\":\"24rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"22rem\",\"height\":\"22rem\",\"top\":\"0rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"14rem\",\"height\":\"14rem\",\"top\":\"24rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"14rem\",\"height\":\"14rem\",\"top\":\"0rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"6rem\",\"height\":\"6rem\",\"top\":\"24rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"position-absolute rounded-line\",staticStyle:{\"width\":\"6rem\",\"height\":\"6rem\",\"top\":\"0rem\",\"right\":\"6rem\"}}),_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"font-black mb-3 text-center position-relative\"},[_vm._v(\"Book your seat\")]),_c('div',{staticClass:\"mb-4 text-center position-relative\"},[_vm._v(\"To discover availability, prices and to register, please sign in.\")]),_c('div',[_c('b-button',{staticClass:\"d-block w-100 position-relative\",attrs:{\"pill\":\"\"},on:{\"click\":_vm.login}},[_vm._v(\" Sign in \")])],1)])]):(!_vm.isRegisteredOnSite)?_c('RegisterPromoWidget',{attrs:{\"is-registered-overrided\":_vm.isRegisteredOnSite}}):_c('div',{staticClass:\"cart__card p-4 mb-4\"},[_c('div',{staticClass:\"font-black mb-3\"},[_vm._v(\"Your selection\")]),(_vm.slotSelection.length > 0)?[_vm._l((_vm.slotSelection),function(item){return _c('div',{key:item.id,staticClass:\"cart__element\"},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\"}},[_c('small',{staticClass:\"font-regular\"},[_vm._v(_vm._s(item.name))])]),_c('b-col',{staticClass:\"text-right font-bold\",attrs:{\"cols\":\"2\"}},[_vm._v(\" €\"+_vm._s(item.price)+\" \")])],1),_c('b-row',[_c('b-col',{staticClass:\"grey__text\",attrs:{\"cols\":\"6\"}},[_c('small',[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPartNoTimezone\")(item.date))+\" • \"+_vm._s(item.startTime.substring(0, item.startTime.lastIndexOf(':')))+\" to \"+_vm._s(item.endTime.substring(0, item.endTime.lastIndexOf(':'))))])]),_c('b-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"text-right\"},[_c('b-link',{staticClass:\"grey__text\",on:{\"click\":function($event){return _vm.removeSlot(item)}}},[_c('span',{staticClass:\"material-icons-outlined align-middle mr-1\",staticStyle:{\"font-size\":\"18px\"}},[_vm._v(\" delete \")]),_vm._v(\" \"),_c('small',[_vm._v(\"Remove\")])])],1)])],1),_c('div',{staticClass:\"dotted__separator my-3\"})],1)}),_c('div',{staticClass:\"mb-3\"},[_c('b-row',[_c('b-col',{staticClass:\"font-black\",attrs:{\"cols\":\"10\"}},[_vm._v(\" Total amount \")]),_c('b-col',{staticClass:\"text-right font-black\",attrs:{\"cols\":\"2\"}},[_vm._v(\" €\"+_vm._s(_vm.slotSelection.reduce((total, item) => total + item.price, 0))+\" \")])],1)],1),_c('div',[_c('b-button',{staticClass:\"d-block w-100 position-relative btn-congress\",attrs:{\"pill\":\"\"},on:{\"click\":_vm.processOrder}},[_vm._v(\"Place order\")])],1)]:[_c('p',[_vm._v(\"No session selected\")])]],2),(_vm.registrations.size > 0 && _vm.isRegisteredOnSite)?_c('div',{staticClass:\"cart__card p-4 mb-4\"},[_c('div',{staticClass:\"font-black mb-3\"},[_vm._v(\"Your Simulation Village programme\")]),_c('b-row',{attrs:{\"no-gutters\":\"\"}},_vm._l((_vm.registrations),function([key, value]){return _c('div',{key:key,staticClass:\"w-100\"},[_c('div',{staticClass:\"cart__date font-bold w-100 mb-2\"},[_c('b-badge',{attrs:{\"pill\":\"\",\"variant\":\"primary px-3 py-2\"}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPartNoTimezone\")(new Date(key))))])],1),_vm._l((value),function(item){return _c('b-row',{key:item.id},[_c('b-col',{staticClass:\"timeline-time pl-xl-1 pr-xl-3 font-bold\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"3\",\"lg\":\"2\",\"xl\":\"1\"}},[_c('div',[_c('small',[_vm._v(_vm._s(item.startTime.substring(0, item.startTime.lastIndexOf(':'))))])])]),(false)?_c('b-col',{staticClass:\"timeline-line\",attrs:{\"cols\":\"1\",\"sm\":\"1\",\"md\":\"1\",\"lg\":\"\",\"xl\":\"\"}}):_vm._e(),_c('b-col',{staticClass:\"px-0 pl-lg-3\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"9\",\"lg\":\"9\",\"xl\":\"10\"}},[_c('b-container',{staticClass:\"mb-3\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"session-item\"},[_c('div',{staticClass:\"row d-block\"},[_c('div',{staticClass:\"font-regular\"},[_vm._v(_vm._s(item.displayName))])])])])],1)],1)})],2)}),0)],1):_vm._e()]:_vm._e()],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"w-100\">\r\n <div class=\"hero__banner\">\r\n <b-col cols=\"12\" class=\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\" :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${version}')` }\">\r\n <div class=\"eventInfo\">\r\n <h1>Simulation village</h1>\r\n <div class=\"eventDate mt-3\">These sessions are restricted to onsite congress delegates and based on first-come first-served.</div>\r\n <div class=\"eventDate\">Please note that the programme times are displayed on local times in {{ venue }}.</div>\r\n </div>\r\n </b-col>\r\n </div>\r\n <b-container fluid class=\"px-lg-5\">\r\n <b-row>\r\n <b-col cols=\"12\" md=\"8\">\r\n <div id=\"topStickyDays\" class=\"timeLine px-lg-3\">\r\n <b-row class=\"p-2 mb-4 font-black\">\r\n <b-col v-for=\"(day, index) in eventDays\" :key=\"day.toString()\" class=\"date__text\" :class=\"{ 'selected' : index === eventDaySelectedIndex}\">\r\n <span @click=\"updateTab(index)\" class=\"d-block\">{{ day | formatUnixEpocDayPart }}</span> \r\n </b-col>\r\n </b-row>\r\n </div>\r\n <b-row no-gutters>\r\n <b-col cols=\"12\" class=\"px-0\">\r\n <b-container fluid class=\"mb-3\">\r\n <div v-if=\"isLoading\" class=\"d-flex justify-content-center m-5\">\r\n <b-spinner style=\"width: 2rem; height: 2rem;\" variant=\"congress\" label=\"loading\"></b-spinner>\r\n </div>\r\n <template v-else>\r\n <div v-for=\"workshop in workshops\" :key=\"workshop.id\" class=\"session-item mb-4\">\r\n <b-row class=\"card session__card px-4 py-3 d-block\" v-if=\"workshop.slots.length > 0\" :class=\"{ 'session__card-disabled': isPastSlot }\">\r\n <b-row>\r\n <b-col class=\"header\">\r\n <h4 class=\"card-title\">{{ workshop.displayName }}</h4>\r\n <div class=\"d-block text-left lh-1\">\r\n <div class=\"session__type font-regular d-block d-lg-flex\">\r\n <div class=\"d-inline-flex align-items-center mr-3 lh-sm\">\r\n <span class=\"material-icons-outlined mr-1\"> co_present </span> <span>Workshop</span>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center mr-3 lh-sm\" v-if=\"workshop.sessionDuration > 0\">\r\n <span class=\"material-icons-outlined mr-1\"> access_time </span> <span>{{ workshop.sessionDuration }} min.</span>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center mr-3 lh-sm\" v-if=\"workshop.room\">\r\n <span class=\"material-icons-outlined mr-1\"> place </span>\r\n <span>{{ workshop.room }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </b-col>\r\n <b-col v-if=\"workshop.price\" cols=\"12\" md=\"2\" class=\"font-black text-md-right text-congress\"> €{{ workshop.price }}/session </b-col>\r\n </b-row>\r\n <b-row>\r\n <b-col>\r\n <div class=\"session__description mt-3 font-italic\">\r\n <small>\r\n {{ workshop.description }}\r\n </small>\r\n </div>\r\n <div class=\"select__sesions mt-2\">\r\n <template v-if=\"workshop.purchased && isRegisteredOnSite\">\r\n <b-badge pill variant=\"success\" class=\"px-3 py-2 alert-success\">You have already booked a seat for this session</b-badge>\r\n </template>\r\n <template v-else>\r\n <span v-for=\"slot in workshop.slots\" :key=\"slot.id\" :id=\"`tooltip-target-${slot.id}`\">\r\n <b-button pill size=\"sm\" class=\"d-inline-flex align-items-center justify-content-between mb-2 mr-2 pl-3 pr-2\" :class=\"{ 'btn-congress': slot.checked, 'btn-light': !slot.checked }\" @click=\"selectSlot(workshop, slot)\" :disabled=\"isPastSlot || slot.availableSits <= 0 || !isLogged || !isRegisteredOnSite\">\r\n <span class=\"mr-2\">{{ slot.startTime.substring(0, slot.startTime.lastIndexOf(':')) }}</span> <!--<span v-html=\"slot.description\"></span>-->\r\n <b-form-checkbox disabled class=\"ml-2\" :checked=\"slot.checked\" @change=\"slot.checked = !slot.checked\"></b-form-checkbox>\r\n\r\n <b-tooltip :target=\"`tooltip-target-${slot.id}`\" triggers=\"hover\" placement=\"topright\">\r\n <template v-if=\"!isPastSlot\">\r\n <template v-if=\"!isLogged\">\r\n Please sign in to register\r\n </template>\r\n <template v-else-if=\"!isRegisteredOnSite\">\r\n You need to have an onsite registration to register\r\n </template>\r\n <template v-else-if=\"slot.availableSits <= 0\">\r\n No more seats available\r\n </template>\r\n </template>\r\n </b-tooltip>\r\n </b-button>\r\n </span>\r\n </template>\r\n \r\n <!-- <b-modal v-model=\"modalVisible\" id=\"signIn__modal\" hide-footer>\r\n <div class=\"signIn__card position-relative p-5 text-center mb-3\">\r\n <div class=\"position-absolute rounded-line\" style=\"width: 22rem; height: 22rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 22rem; height: 22rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 14rem; height: 14rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 14rem; height: 14rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 6rem; height: 6rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 6rem; height: 6rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"flex\">\r\n <div class=\"font-black mb-3 text-center position-relative\">Sign in and join the Simulation Village</div>\r\n <div class=\"mb-4 text-center position-relative\">Please sign in to register to Simulation Village sessions</div>\r\n <div>\r\n <b-button pill class=\"d-block w-100 position-relative\" @click=\"startLoading\" :href=\"loginUrl\"> Sign in </b-button>\r\n </div>\r\n </div>\r\n </div>\r\n </b-modal> -->\r\n </div>\r\n </b-col>\r\n </b-row>\r\n </b-row>\r\n </div>\r\n </template>\r\n </b-container>\r\n </b-col>\r\n </b-row>\r\n </b-col>\r\n\r\n <b-modal id=\"modal-selection-fail\" hide-header hide-footer size=\"lg\">\r\n <div class=\"signIn__card position-relative p-5 text-center mb-3\">\r\n <div class=\"position-absolute rounded-line\" style=\"width: 22rem; height: 22rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 22rem; height: 22rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 14rem; height: 14rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 14rem; height: 14rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 6rem; height: 6rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 6rem; height: 6rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"flex\">\r\n <div class=\"font-black mb-3 text-center position-relative\">You can't select this session</div>\r\n <div class=\"mb-4 text-center position-relative\"><small>You have already booked a slot for this session or another session at the same time.</small></div>\r\n <div>\r\n <b-button pill class=\"d-inline-block m-auto position-relative\" @click=\"$bvModal.hide('modal-selection-fail')\">Close</b-button>\r\n </div>\r\n </div>\r\n </div>\r\n </b-modal>\r\n <b-modal id=\"modal-check-cart\" hide-footer>\r\n <div class=\"flex\">\r\n <p>The following slots are no more available:</p>\r\n <ul>\r\n <li v-for=\"item in cartCheckErrors\" :key=\"item.id\">\r\n {{ item.name }} from {{ item.startTime.substring(0, item.startTime.lastIndexOf(':')) }} to {{ item.endTime.substring(0, item.endTime.lastIndexOf(':')) }}\r\n </li>\r\n </ul>\r\n <div>\r\n <b-button pill class=\"d-block w-100 position-relative\" @click=\"$bvModal.hide('modal-check-cart')\">Back</b-button>\r\n <b-button pill class=\"d-block w-100 position-relative\" v-if=\"slotSelection.length - cartCheckErrors.length > 0\" @click=\"redirectToCheckout\">Continue</b-button>\r\n </div>\r\n </div>\r\n </b-modal>\r\n\r\n <b-col cols=\"12\" md=\"4\">\r\n <template v-if=\"isRegistrationLoaded\">\r\n <div class=\"signIn__card position-relative p-4 text-center mb-4\" v-if=\"!isLogged\">\r\n <div class=\"position-absolute rounded-line\" style=\"width: 22rem; height: 22rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 22rem; height: 22rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 14rem; height: 14rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 14rem; height: 14rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 6rem; height: 6rem; top: 24rem; right: 6rem\"></div>\r\n <div class=\"position-absolute rounded-line\" style=\"width: 6rem; height: 6rem; top: 0rem; right: 6rem\"></div>\r\n <div class=\"flex\">\r\n <div class=\"font-black mb-3 text-center position-relative\">Book your seat</div>\r\n <div class=\"mb-4 text-center position-relative\">To discover availability, prices and to register, please sign in.</div>\r\n <div>\r\n <b-button pill class=\"d-block w-100 position-relative\" @click=\"login\"> Sign in </b-button>\r\n </div>\r\n </div>\r\n </div>\r\n <RegisterPromoWidget v-bind:is-registered-overrided=\"isRegisteredOnSite\" v-else-if=\"!isRegisteredOnSite\" />\r\n <!-- Cart -->\r\n <div class=\"cart__card p-4 mb-4\" v-else>\r\n <div class=\"font-black mb-3\">Your selection</div>\r\n <template v-if=\"slotSelection.length > 0\">\r\n <div class=\"cart__element\" v-for=\"item in slotSelection\" :key=\"item.id\">\r\n <b-row>\r\n <b-col cols=\"10\">\r\n <small class=\"font-regular\">{{ item.name }}</small>\r\n </b-col>\r\n <b-col cols=\"2\" class=\"text-right font-bold\"> €{{ item.price }} </b-col>\r\n </b-row>\r\n <b-row>\r\n <b-col cols=\"6\" class=\"grey__text\">\r\n <small>{{ item.date | formatUnixEpocDayPartNoTimezone }} • {{ item.startTime.substring(0, item.startTime.lastIndexOf(':')) }} to {{ item.endTime.substring(0, item.endTime.lastIndexOf(':')) }}</small>\r\n </b-col>\r\n <b-col cols=\"6\">\r\n <div class=\"text-right\">\r\n <b-link @click=\"removeSlot(item)\" class=\"grey__text\">\r\n <span class=\"material-icons-outlined align-middle mr-1\" style=\"font-size: 18px\"> delete </span> <small>Remove</small>\r\n </b-link>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <div class=\"dotted__separator my-3\"></div>\r\n </div>\r\n\r\n <!-- Total price -->\r\n <div class=\"mb-3\">\r\n <b-row>\r\n <b-col cols=\"10\" class=\"font-black\"> Total amount </b-col>\r\n <b-col cols=\"2\" class=\"text-right font-black\"> €{{ slotSelection.reduce((total, item) => total + item.price, 0) }} </b-col>\r\n </b-row>\r\n </div>\r\n\r\n <!-- Place older CTA -->\r\n <div>\r\n <b-button pill class=\"d-block w-100 position-relative btn-congress\" @click=\"processOrder\">Place order</b-button>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <p>No session selected</p>\r\n </template>\r\n </div>\r\n <!-- end Cart -->\r\n\r\n <!-- Your Simulation Village programme -->\r\n <div class=\"cart__card p-4 mb-4\" v-if=\"registrations.size > 0 && isRegisteredOnSite\">\r\n <div class=\"font-black mb-3\">Your Simulation Village programme</div>\r\n <b-row no-gutters>\r\n <div class=\"w-100\" v-for=\"[key, value] of registrations\" :key=\"key\">\r\n <div class=\"cart__date font-bold w-100 mb-2\">\r\n <b-badge pill variant=\"primary px-3 py-2\">{{ new Date(key) | formatUnixEpocDayPartNoTimezone }}</b-badge>\r\n </div>\r\n <b-row v-for=\"item in value\" :key=\"item.id\">\r\n <b-col cols=\"12\" sm=\"12\" md=\"3\" lg=\"2\" xl=\"1\" class=\"timeline-time pl-xl-1 pr-xl-3 font-bold\">\r\n <div><small>{{ item.startTime.substring(0, item.startTime.lastIndexOf(':')) }}</small></div>\r\n </b-col>\r\n <b-col v-if=\"false\" cols=\"1\" sm=\"1\" md=\"1\" lg=\"\" xl=\"\" class=\"timeline-line\"> </b-col>\r\n <b-col cols=\"12\" sm=\"12\" md=\"9\" lg=\"9\" xl=\"10\" class=\"px-0 pl-lg-3\">\r\n <b-container fluid class=\"mb-3\">\r\n <div class=\"session-item\">\r\n <div class=\"row d-block\">\r\n <div class=\"font-regular\">{{ item.displayName }}</div>\r\n </div>\r\n </div>\r\n </b-container>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </b-row>\r\n </div>\r\n <!-- end Your Simulation Village programme -->\r\n </template>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import { mapGetters, mapState } from 'vuex';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { login } from 'src/services/auth';\r\n import { SET_WORKSHOP_CART , SET_WORKSHOP_CART_FULL} from 'src/store/mutations';\r\n import RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\n\r\n export default {\r\n name: \"SimulationVillage\",\r\n components: {\r\n RegisterPromoWidget\r\n },\r\n computed: {\r\n ...mapGetters(['isLogged', 'currentUser']),\r\n ...mapState({\r\n eventId: state => state.app.eventId,\r\n startDate: state => state.app.eventStartDate,\r\n endDate: state => state.app.eventEndDate,\r\n location: state => state.app.location,\r\n version: state => state.app.version,\r\n userInfo: state => state.app.userInfo,\r\n slotSelection: state => state.app.workshopCart,\r\n homeCmsData: (state) => state.app.homeCmsData\r\n }),\r\n venue() {\r\n return this.homeCmsData?.venue;\r\n },\r\n isPastSlot() {\r\n return this.serverDate && new Date(this.eventDays[this.eventDaySelectedIndex].toDateString()) < new Date(this.serverDate.toDateString());\r\n },\r\n returnUrl() {\r\n return window.location.origin + this.$route.fullPath;\r\n },\r\n cartData() {\r\n const cartData = {\r\n slots: [],\r\n totalPrice: 0\r\n };\r\n\r\n const slotSelectionCopy = new Map(this.slotSelection); // Make a copy to ensure reactivity\r\n for (const [key, value] of slotSelectionCopy.entries()) {\r\n const workshopData = this.workshops.find(x => x.id == key.split('_')[0]);\r\n cartData.slots.push({\r\n id: value.id,\r\n workshopId: workshopData.id,\r\n name: workshopData.displayName,\r\n price: workshopData.price,\r\n date: new Date(value.date),\r\n startTime: value.startTime,\r\n });\r\n }\r\n cartData.totalPrice = cartData.slots.reduce((total, item) => total + item.price, 0);\r\n cartData.slots.sort((a, b) => {\r\n if (a.date - b.date !== 0) {\r\n return a.date - b.date;\r\n }\r\n return a.startTime.localeCompare(b.startTime);\r\n });\r\n return cartData;\r\n } \r\n },\r\n methods: {\r\n login() {\r\n login(this.returnUrl, true);\r\n },\r\n async fetchWorkshopData(date) {\r\n this.isLoading = true;\r\n try {\r\n const workshopData = (await MediaApiService.getWorkshops(this.eventId, DateHelper.formatISODate(date), this.currentUser?.escId)).data.sort((a, b) => a.displayName.localeCompare(b.displayName));\r\n for (const workshop of workshopData) {\r\n workshop.purchased = false;\r\n workshop.slots.map(slot => {\r\n const selectedSlot = this.slotSelection.find(x => x.workshopId == workshop.id && x.id == slot.id);\r\n slot.checked = selectedSlot != null;\r\n if (!workshop.purchased && this.registrations.size > 0) {\r\n workshop.purchased = this.registrations.get(slot.date)?.find(x => x.id == slot.id) != null;\r\n } \r\n return slot;\r\n });\r\n workshop.slots.sort((a, b) => a.startTime.localeCompare(b.startTime));\r\n }\r\n this.workshops = workshopData;\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n finally {\r\n this.isLoading = false;\r\n }\r\n },\r\n async fetchUserWorkshopRegistration() {\r\n if (this.currentUser?.escId) {\r\n try {\r\n const registrationData = (await MediaApiService.getWorkshopUserSlots(this.eventId, this.currentUser.escId)).data;\r\n const registrationMap = new Map();\r\n for (const reg of registrationData) {\r\n if (!registrationMap.has(reg.date)) {\r\n registrationMap.set(reg.date, [reg]);\r\n } else {\r\n registrationMap.get(reg.date).push(reg);\r\n }\r\n }\r\n const sortedMap = new Map([...registrationMap.entries()].sort((a, b) => new Date(a[0]) - new Date(b[0])));\r\n for (const [, value] of sortedMap.entries()) {\r\n value.sort((a, b) => a.startTime.localeCompare(b.startTime));\r\n }\r\n\r\n this.registrations = sortedMap;\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n },\r\n async updateTab(index) {\r\n if (this.eventDaySelectedIndex !== index) {\r\n this.eventDaySelectedIndex = index;\r\n await this.fetchWorkshopData(this.eventDays[index]);\r\n }\r\n },\r\n selectSlot(workshop, slot) {\r\n if (this.hasCartSelectionConflicts(workshop, slot)) {\r\n return;\r\n }\r\n this.$store.commit(SET_WORKSHOP_CART, { workshopId: workshop.id, workshopName: workshop.displayName, workshopPrice: workshop.price, slotId: slot.id, slotDate: slot.date, slotStartTime: slot.startTime, slotEndTime: slot.endTime });\r\n workshop.slots.map(slot => {\r\n const selectedSlot = this.slotSelection.find(x => x.workshopId == workshop.id && x.id == slot.id);\r\n slot.checked = selectedSlot != null; \r\n return slot;\r\n });\r\n },\r\n removeSlot(stateItem) {\r\n this.$store.commit(SET_WORKSHOP_CART, { workshopId: stateItem.workshopId , workshopName: stateItem.name, workshopPrice: stateItem.price, slotId: stateItem.id, slotDate: stateItem.date, slotStartTime: stateItem.startTime, slotEndTime: stateItem.endTime });\r\n for (const workshop of this.workshops) {\r\n workshop.slots.map(slot => {\r\n const selectedSlot = this.slotSelection.find(x => x.workshopId == stateItem.workshopId && x.id == stateItem.id);\r\n slot.checked = selectedSlot != null; \r\n return slot;\r\n });\r\n }\r\n },\r\n hasCartSelectionConflicts(workshop, slot) { \r\n let conflictArray = this.checkCartOverlapConstraint(workshop, slot).concat(this.checkUniqueCartWorkshopConstraint(workshop, slot));\r\n if (conflictArray.length > 0) {\r\n this.$bvModal.show('modal-selection-fail');\r\n return true;\r\n }\r\n return false;\r\n },\r\n checkUniqueCartWorkshopConstraint(workshop, slot) {\r\n const duplicateArray = [];\r\n const purchasedWorkshop = Array.from(this.registrations.values()).flat().find(x => x.workshopId == workshop.id);\r\n const selectedWorkshop = this.slotSelection.find(x => x.workshopId === workshop.id && x.date.getTime() !== new Date(slot.date).getTime());\r\n if (purchasedWorkshop || selectedWorkshop) {\r\n duplicateArray.push({ \r\n id: purchasedWorkshop?.id ?? selectedWorkshop.id, \r\n name: purchasedWorkshop?.displayName ?? selectedWorkshop.name, \r\n date: purchasedWorkshop?.date ?? selectedWorkshop.date\r\n });\r\n }\r\n return duplicateArray;\r\n },\r\n checkCartOverlapConstraint(workshop, slot) {\r\n const slotTimeOverlap = {\r\n start: this.getTimeStringSeconds(slot.startTime),\r\n end: this.getTimeStringSeconds(slot.endTime)\r\n };\r\n\r\n const overlapArray = [];\r\n const cartProducts = this.slotSelection.filter(x => x.workshopId !== workshop.id && x.date.getTime() === new Date(slot.date).getTime());\r\n const programmeProducts = this.registrations.get(slot.date) ?? [];\r\n\r\n for (const cart of cartProducts) {\r\n if (this.isRangeOverlap(slotTimeOverlap.start, slotTimeOverlap.end, this.getTimeStringSeconds(cart.startTime), this.getTimeStringSeconds(cart.endTime))) {\r\n overlapArray.push({ id: cart.id, name: cart.name, date: cart.date });\r\n }\r\n }\r\n\r\n for (const programme of programmeProducts) {\r\n if (this.isRangeOverlap(slotTimeOverlap.start, slotTimeOverlap.end, this.getTimeStringSeconds(programme.startTime), this.getTimeStringSeconds(programme.endTime))) {\r\n overlapArray.push({ id: programme.id, name: programme.displayName, date: programme.date });\r\n }\r\n }\r\n return overlapArray;\r\n },\r\n async processOrder() {\r\n this.cartCheckErrors = [];\r\n try {\r\n const result = await MediaApiService.getWorkshopSlots(this.eventId, this.slotSelection.map(x => x.id));\r\n const conflictItems = result.data.filter(x => x.availableSits <= 0);\r\n if (conflictItems.length > 0) {\r\n this.cartCheckErrors = conflictItems;\r\n const conflictItemIds = conflictItems.map(x => x.id);\r\n this.$store.commit(SET_WORKSHOP_CART_FULL, this.slotSelection.filter(x => !conflictItemIds.includes(x.id)));\r\n for (const workshop of this.workshops) {\r\n workshop.slots.map(slot => {\r\n slot.checked = this.slotSelection.some(x => x.workshopId == slot.workshopId && x.id == slot.id)\r\n return slot;\r\n });\r\n }\r\n this.$bvModal.show('modal-check-cart');\r\n } else {\r\n this.redirectToCheckout();\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n },\r\n getTimeStringSeconds(time) {\r\n const timeArray = time.split(':');\r\n return Number(timeArray[0]) * 3600 + Number(timeArray[1]) * 60 + Number(timeArray[2]);\r\n\r\n },\r\n isRangeOverlap(xStart, xEnd, yStart, yEnd) {\r\n return xStart < yEnd && yStart < xEnd;\r\n },\r\n redirectToCheckout() {\r\n const slotIds = this.slotSelection.map(x => x.id);\r\n const returnUrl = window.location.origin + this.$route.path;\r\n const url = `${process.env.VUE_APP_MY_PROFILE_URL}order-workshop?returnUrl=${returnUrl}&slotIds=${slotIds.join(',')}`;\r\n window.location = url;\r\n }\r\n },\r\n data() {\r\n return {\r\n workshops: [],\r\n registrations: new Map(),\r\n eventDays: [],\r\n eventDaySelectedIndex: undefined,\r\n cartCheckErrors: [],\r\n isRegisteredOnSite: false,\r\n isRegistrationLoaded: false,\r\n serverDate: null,\r\n isLoading: false\r\n };\r\n },\r\n async mounted() {\r\n this.eventDays = DateHelper.getDates(DateHelper.onSiteDateTime(this.startDate), DateHelper.onSiteDateTime(this.endDate));\r\n if (this.userInfo && this.userInfo.isRegistered) {\r\n try {\r\n const regType = (await MediaApiService.getUserRegType(this.eventId)).data;\r\n this.isRegisteredOnSite = regType.registrationType === 'Onsite';\r\n } catch (err) {\r\n this.isRegisteredOnSite = false;\r\n }\r\n }\r\n this.isRegistrationLoaded = true;\r\n try {\r\n const { data } = await MediaApiService.getTime();\r\n this.serverDate = DateHelper.onSiteDateTime(data);\r\n this.eventDaySelectedIndex = Math.max(0, this.eventDays.findIndex(x => x.toDateString() === this.serverDate.toDateString()));\r\n await this.fetchUserWorkshopRegistration();\r\n await this.fetchWorkshopData(this.eventDays[this.eventDaySelectedIndex]);\r\n } catch (err) {\r\n console.error(err);\r\n this.eventDaySelectedIndex = 0;\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .signIn__card {\r\n background: var(--congress);\r\n border-radius: 2rem;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n color: #fff;\r\n overflow: hidden;\r\n }\r\n\r\n .rounded-line {\r\n border-radius: 9999px;\r\n border: 1px solid var(--congress-light);\r\n transform: translate(50%, -50%);\r\n }\r\n\r\n .session__card-disabled {\r\n background-color: #fff;\r\n opacity:0.4;\r\n }\r\n\r\n .session__card .btn-light:hover, .session__card .btn-light:active, .session__card .btn-light:focus {\r\n background-color: var(--congress-lighter)!important;\r\n color: var(--congress);\r\n }\r\n\r\n .btn-congress:hover, .btn-congress:active, .btn-congress:focus {\r\n background-color: var(--congress)!important;\r\n color: #fff;\r\n }\r\n\r\n .btn-light.disabled, .btn-light.disabled:hover {\r\n background-color: #F1F1F1 !important;\r\n color: #212529;\r\n }\r\n\r\n .session__card-disabled .btn-light.disabled:hover {\r\n background-color: #F1F1F1 !important;\r\n color: #212529;\r\n }\r\n\r\n .cart__card {\r\n background: #fff;\r\n border-radius: 2rem;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n color: #000;\r\n .cart__element {\r\n .dotted__separator {\r\n border-bottom: 2px dotted #e5e5e5;\r\n :last-of-type {\r\n border-bottom: 0 !important;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .grey__text {\r\n color: #5f6368;\r\n }\r\n\r\n .timeline-time {\r\n color: var(--congress);\r\n border-right: 3px solid var(--congress);\r\n }\r\n\r\n .timeline-time:after {\r\n display: block;\r\n position: absolute;\r\n -webkit-box-shadow: 0 0 0 5px #fff;\r\n box-shadow: 0 0 0 5px #fff;\r\n right: -0.5rem;\r\n background: var(--congress);\r\n border-radius: 50%;\r\n height: 14px;\r\n width: 14px;\r\n content: '';\r\n top: 5px;\r\n }\r\n\r\n\r\n\r\n @media (max-width: 992px) {\r\n .timeline-time {\r\n border-right: 0;\r\n }\r\n .timeline-time:after {\r\n display: none;\r\n }\r\n }\r\n\r\n @media (min-width: 992px) {\r\n .timeline-time .sticky__lg {\r\n position: sticky;\r\n top: 120px;\r\n }\r\n }\r\n\r\n @media (min-width: 1200px) {\r\n .timeline-time.col-lg-2 {\r\n max-width: fit-content;\r\n min-width: 4rem;\r\n }\r\n }\r\n\r\n .custom-checkbox .custom-control-label::before {\r\n border-radius: 50% !important;\r\n }\r\n\r\n ::v-deep .modal {\r\n backdrop-filter: blur(10px);\r\n }\r\n\r\n ::v-deep .modal-backdrop {\r\n background: #fff;\r\n }\r\n\r\n ::v-deep .modal-content {\r\n background-color: transparent;\r\n border: 0;\r\n }\r\n\r\n ::v-deep .modal-header {\r\n border: 0;\r\n }\r\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimuVillage.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimuVillage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SimuVillage.vue?vue&type=template&id=5c6862ec&scoped=true\"\nimport script from \"./SimuVillage.vue?vue&type=script&lang=js\"\nexport * from \"./SimuVillage.vue?vue&type=script&lang=js\"\nimport style0 from \"./SimuVillage.vue?vue&type=style&index=0&id=5c6862ec&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c6862ec\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"w-100\"},[_c('div',{staticClass:\"hero__banner\"},[_c('b-col',{staticClass:\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${_vm.version}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo mr-auto\"},[_c('div',[_c('img',{staticClass:\"navbar-logo\",attrs:{\"src\":`${_vm.publicPath}img/events/${_vm.eventId}/logo.png?v=${this.appVersion}`,\"alt\":\"Congress Logo\"}})]),_c('h1',[_vm._v(\"Simulation village\")])]),_c('div',{staticClass:\"pt-5 mr-4\"},[_c('b-button',{staticClass:\"btn-congress border-0\",attrs:{\"pill\":\"\",\"href\":`simulation-village-host-admin?password=${_vm.password}`}},[_vm._v(\"Admin\")])],1)])],1),(!_vm.displayError)?_c('b-container',{staticClass:\"px-lg-5\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"no-gutters\":\"\"}},_vm._l((_vm.workshops),function(workshop){return _c('b-col',{key:workshop.id,staticClass:\"card-deck pb-2 pb-md-4 px-0 mx-0\",attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('b-card',{staticClass:\"session__card\",attrs:{\"title\":workshop.displayName},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"pb-2\"},[_c('div',{staticClass:\"session__time font-bold d-block\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(workshop.date))+\" • \"+_vm._s(_vm._f(\"formatTime\")(workshop.startTime))+\" - \"+_vm._s(_vm._f(\"formatTime\")(workshop.endTime))+\" \")]),_c('div',{staticClass:\"session__time font-bold d-block\"},[_vm._v(\" \"+_vm._s(workshop.roomName)+\" \")])])]},proxy:true}],null,true)},[_c('b-card-text',[_c('b-list-group',_vm._l((workshop.contacts),function(contact){return _c('b-list-group-item',{key:contact.ESCID},[_vm._v(\" \"+_vm._s(contact.name)+\" \")])}),1)],1)],1)],1)}),1)],1):_c('b-container',[_c('AccessDeniedBlock')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"row align-items-start mt-5\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"alert alert-danger\",attrs:{\"role\":\"alert\"}},[_c('div',{staticClass:\"d-flex align-items-top\"},[_c('span',{staticClass:\"material-symbols-rounded\"},[_vm._v(\" warning \")]),_c('div',{staticClass:\"lh-sm\"},[_c('span',{staticClass:\"font-black d-block mb-2 lh-base\"},[_vm._v(\"Access denied \")]),_vm._v(\" We regret to inform you that you currently do not have access to this page. If you believe there may be an error, we kindly request you to please contact our support team for further assistance. \")])])])])])\n}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./AccessDeniedBlock.vue?vue&type=template&id=076abb5b&scoped=true\"\nvar script = {}\nimport style0 from \"./AccessDeniedBlock.vue?vue&type=style&index=0&id=076abb5b&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"076abb5b\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"w-100\">\r\n <div class=\"hero__banner\">\r\n <b-col\r\n cols=\"12\"\r\n class=\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${version}')` }\"\r\n >\r\n <div class=\"eventInfo mr-auto\">\r\n <div>\r\n <img :src=\"`${publicPath}img/events/${eventId}/logo.png?v=${this.appVersion}`\" class=\"navbar-logo\" alt=\"Congress Logo\" />\r\n </div>\r\n <h1>Simulation village</h1>\r\n </div>\r\n <div class=\"pt-5 mr-4\">\r\n <b-button pill class=\"btn-congress border-0\" :href=\"`simulation-village-host-admin?password=${password}`\">Admin</b-button>\r\n </div>\r\n </b-col>\r\n </div>\r\n <b-container fluid class=\"px-lg-5\" v-if=\"!displayError\">\r\n <b-row no-gutters>\r\n <b-col cols=\"12\" md=\"6\" lg=\"4\" xl=\"3\" class=\"card-deck pb-2 pb-md-4 px-0 mx-0\" v-for=\"workshop in workshops\" :key=\"workshop.id\">\r\n <b-card :title=\"workshop.displayName\" class=\"session__card\">\r\n <template #header>\r\n <div class=\"pb-2\">\r\n <div class=\"session__time font-bold d-block\">\r\n {{ workshop.date | formatUnixEpocDayPart }} • {{ workshop.startTime | formatTime }} -\r\n {{ workshop.endTime | formatTime }}\r\n </div>\r\n <div class=\"session__time font-bold d-block\">\r\n {{ workshop.roomName }}\r\n </div>\r\n </div>\r\n </template>\r\n <b-card-text>\r\n <b-list-group>\r\n <b-list-group-item v-for=\"contact in workshop.contacts\" :key=\"contact.ESCID\">\r\n {{ contact.name }}\r\n </b-list-group-item>\r\n </b-list-group>\r\n </b-card-text>\r\n </b-card>\r\n </b-col>\r\n </b-row>\r\n </b-container>\r\n <b-container v-else>\r\n <AccessDeniedBlock />\r\n </b-container>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import AccessDeniedBlock from 'src/components/Blocks/AccessDeniedBlock.vue';\r\n\r\n export default {\r\n name: 'SimulationVillage',\r\n components: {\r\n AccessDeniedBlock,\r\n },\r\n computed: {\r\n publicPath() {\r\n return process.env.BASE_URL;\r\n },\r\n ...mapGetters(['isLogged', 'currentUser']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n startDate: (state) => state.app.eventStartDate,\r\n endDate: (state) => state.app.eventEndDate,\r\n version: (state) => state.app.version,\r\n appVersion: (state) => state.app.version,\r\n }),\r\n },\r\n data() {\r\n return {\r\n workshops: [],\r\n intervalId: null,\r\n timeoutId: null,\r\n isLoading: false,\r\n password: null,\r\n displayError: false\r\n };\r\n },\r\n async mounted() {\r\n this.getQueryPassword();\r\n await this.fetchWorkshopData();\r\n\r\n this.intervalId = setInterval(() => {\r\n this.timeoutId = setTimeout(async () => {\r\n await this.fetchWorkshopData();\r\n }, 5000);\r\n }, 60000);\r\n },\r\n beforeDestroy() {\r\n if (this.intervalId) {\r\n clearInterval(this.intervalId);\r\n }\r\n if (this.timeoutId) {\r\n clearTimeout(this.timeoutId);\r\n }\r\n },\r\n methods: {\r\n async fetchWorkshopData() {\r\n this.isLoading = true;\r\n MediaApiService.getCurrentWorkshopSesssions(this.eventId, this.password).then(async ({ data }) => {\r\n this.workshops = data.data;\r\n this.displayError = !data.success;\r\n\r\n this.isLoading = false;\r\n });\r\n },\r\n getQueryPassword() {\r\n this.password = this.$route.query.password;\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .signIn__card {\r\n background: var(--congress);\r\n border-radius: 2rem;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n color: #fff;\r\n overflow: hidden;\r\n }\r\n\r\n .rounded-line {\r\n border-radius: 9999px;\r\n border: 1px solid var(--congress-light);\r\n transform: translate(50%, -50%);\r\n }\r\n\r\n .session__card-disabled {\r\n background-color: #fff;\r\n opacity: 0.4;\r\n }\r\n\r\n .session__card .btn-light:hover,\r\n .session__card .btn-light:active,\r\n .session__card .btn-light:focus {\r\n background-color: var(--congress-lighter) !important;\r\n color: var(--congress);\r\n }\r\n\r\n .btn-congress:hover,\r\n .btn-congress:active,\r\n .btn-congress:focus {\r\n background-color: var(--congress) !important;\r\n color: #fff;\r\n }\r\n\r\n .btn-light.disabled,\r\n .btn-light.disabled:hover {\r\n background-color: #f1f1f1 !important;\r\n color: #212529;\r\n }\r\n\r\n .session__card-disabled .btn-light.disabled:hover {\r\n background-color: #f1f1f1 !important;\r\n color: #212529;\r\n }\r\n\r\n ::v-deep .cart__card {\r\n background: #fff;\r\n border-radius: 2rem;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n color: #000;\r\n .cart__element {\r\n .dotted__separator {\r\n border-bottom: 2px dotted #e5e5e5;\r\n :last-of-type {\r\n border-bottom: 0 !important;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .grey__text {\r\n color: #5f6368;\r\n }\r\n\r\n .list-group {\r\n background: #f3f6f7;\r\n border-radius: 20px;\r\n .list-group-item {\r\n font-size: 0.9rem;\r\n border: 0;\r\n border-bottom: 1px dotted rgba(0, 0, 0, 0.125);\r\n background: transparent;\r\n }\r\n }\r\n .list-group-item:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n .form-inline .form-control {\r\n min-width: 300px;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimuVillageHost.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimuVillageHost.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SimuVillageHost.vue?vue&type=template&id=896937e8&scoped=true\"\nimport script from \"./SimuVillageHost.vue?vue&type=script&lang=js\"\nexport * from \"./SimuVillageHost.vue?vue&type=script&lang=js\"\nimport style0 from \"./SimuVillageHost.vue?vue&type=style&index=0&id=896937e8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"896937e8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"w-100\"},[_c('div',{staticClass:\"hero__banner\"},[_c('b-col',{staticClass:\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${_vm.version}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo mr-auto\"},[_c('div',[_c('img',{staticClass:\"navbar-logo\",attrs:{\"src\":`${_vm.publicPath}img/events/${_vm.eventId}/logo.png?v=${this.appVersion}`,\"alt\":\"Congress Logo\"}})]),_c('h1',[_vm._v(\"Simulation village\")])]),_c('div',{staticClass:\"pt-5 mr-4\"},[_c('b-button',{staticClass:\"btn-danger border-0\",attrs:{\"pill\":\"\",\"href\":`simulation-village-host?password=${_vm.password}`}},[_vm._v(\"Current sessions\")])],1),(!_vm.displayError)?_c('div',{staticClass:\"float-right pr-5 pt-5\"},[_c('b-navbar-nav',[_c('b-nav-form',[_c('b-form-input',{staticClass:\"mr-sm-2 rounded-pill\",attrs:{\"type\":\"search\",\"placeholder\":\"Search by ESC ID...\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();}},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1)],1)],1):_vm._e()])],1),(!_vm.displayError)?_c('b-container',{staticClass:\"px-lg-5\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"timeLine px-lg-3\",attrs:{\"id\":\"topStickyDays\"}},[_c('b-row',{staticClass:\"p-2 mb-4 font-black\"},_vm._l((_vm.eventDays),function(day,index){return _c('b-col',{key:day.toString(),staticClass:\"date__text\",class:{ selected: index === _vm.eventDaySelectedIndex }},[_c('span',{staticClass:\"d-block\",on:{\"click\":function($event){return _vm.updateTab(index)}}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPart\")(day)))])])}),1)],1)])],1),_c('b-container',{staticClass:\"mb-3 px-0\",attrs:{\"fluid\":\"\"}},[_c('b-row',{attrs:{\"no-gutters\":\"\"}},[(_vm.isLoading)?_c('div',{staticClass:\"d-flex justify-content-center m-5\"},[_c('b-spinner',{staticStyle:{\"width\":\"2rem\",\"height\":\"2rem\"},attrs:{\"variant\":\"congress\",\"label\":\"loading\"}})],1):_vm._l((_vm.workshops),function(workshop){return _c('b-col',{key:workshop.id,staticClass:\"card-deck pb-2 pb-md-4 px-0 mx-0\",attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('b-card',{staticClass:\"session__card\",attrs:{\"title\":workshop.displayName},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"pb-2\"},[_c('div',{staticClass:\"session__time font-bold d-block\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(workshop.date))+\" • \"+_vm._s(_vm._f(\"formatTime\")(workshop.startTime))+\" - \"+_vm._s(_vm._f(\"formatTime\")(workshop.endTime))+\" \")]),_c('div',{staticClass:\"session__time font-bold d-block\"},[_vm._v(\" \"+_vm._s(workshop.roomName)+\" \")])])]},proxy:true}],null,true)},[_c('b-card-text',[_c('b-list-group',_vm._l((workshop.contacts),function(contact){return _c('b-list-group-item',{key:contact.ESCID},[_vm._v(\" \"+_vm._s(contact.name)+\" \")])}),1)],1)],1)],1)})],2)],1)],1):_c('b-container',[_c('AccessDeniedBlock')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"w-100\">\r\n <div class=\"hero__banner\">\r\n <b-col\r\n cols=\"12\"\r\n class=\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${version}')` }\"\r\n >\r\n <div class=\"eventInfo mr-auto\">\r\n <div>\r\n <img :src=\"`${publicPath}img/events/${eventId}/logo.png?v=${this.appVersion}`\" class=\"navbar-logo\" alt=\"Congress Logo\" />\r\n </div>\r\n <h1>Simulation village</h1>\r\n </div>\r\n <div class=\"pt-5 mr-4\">\r\n <b-button pill class=\"btn-danger border-0\" :href=\"`simulation-village-host?password=${password}`\">Current sessions</b-button>\r\n </div>\r\n <div class=\"float-right pr-5 pt-5\" v-if=\"!displayError\">\r\n <b-navbar-nav>\r\n <b-nav-form>\r\n <b-form-input v-model=\"searchQuery\" @keydown.enter.prevent type=\"search\" class=\"mr-sm-2 rounded-pill\" placeholder=\"Search by ESC ID...\" />\r\n </b-nav-form>\r\n </b-navbar-nav>\r\n </div>\r\n </b-col>\r\n </div>\r\n <b-container fluid class=\"px-lg-5\" v-if=\"!displayError\">\r\n <b-row>\r\n <b-col cols=\"12\">\r\n <div id=\"topStickyDays\" class=\"timeLine px-lg-3\">\r\n <b-row class=\"p-2 mb-4 font-black\">\r\n <b-col v-for=\"(day, index) in eventDays\" :key=\"day.toString()\" class=\"date__text\" :class=\"{ selected: index === eventDaySelectedIndex }\">\r\n <span @click=\"updateTab(index)\" class=\"d-block\">{{ day | formatUnixEpocDayPart }}</span>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <b-container fluid class=\"mb-3 px-0\">\r\n <b-row no-gutters>\r\n <div v-if=\"isLoading\" class=\"d-flex justify-content-center m-5\">\r\n <b-spinner style=\"width: 2rem; height: 2rem\" variant=\"congress\" label=\"loading\"></b-spinner>\r\n </div>\r\n <template v-else>\r\n <b-col cols=\"12\" md=\"6\" lg=\"4\" xl=\"3\" class=\"card-deck pb-2 pb-md-4 px-0 mx-0\" v-for=\"workshop in workshops\" :key=\"workshop.id\">\r\n <b-card :title=\"workshop.displayName\" class=\"session__card\">\r\n <template #header>\r\n <div class=\"pb-2\">\r\n <div class=\"session__time font-bold d-block\">\r\n {{ workshop.date | formatUnixEpocDayPart }} • {{ workshop.startTime | formatTime }} -\r\n {{ workshop.endTime | formatTime }}\r\n </div>\r\n <div class=\"session__time font-bold d-block\">\r\n {{ workshop.roomName }}\r\n </div>\r\n </div>\r\n </template>\r\n <b-card-text>\r\n <b-list-group>\r\n <b-list-group-item v-for=\"contact in workshop.contacts\" :key=\"contact.ESCID\">\r\n {{ contact.name }}\r\n </b-list-group-item>\r\n </b-list-group>\r\n </b-card-text>\r\n </b-card>\r\n </b-col>\r\n </template>\r\n </b-row>\r\n </b-container>\r\n </b-container>\r\n <b-container v-else>\r\n <AccessDeniedBlock />\r\n </b-container>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import { mapGetters, mapState } from 'vuex';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import AccessDeniedBlock from 'src/components/Blocks/AccessDeniedBlock.vue';\r\n\r\n export default {\r\n name: 'SimulationVillage',\r\n components: {\r\n AccessDeniedBlock,\r\n },\r\n computed: {\r\n publicPath() {\r\n return process.env.BASE_URL;\r\n },\r\n ...mapGetters(['isLogged', 'currentUser']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n startDate: (state) => state.app.eventStartDate,\r\n endDate: (state) => state.app.eventEndDate,\r\n location: (state) => state.app.location,\r\n version: (state) => state.app.version,\r\n userInfo: (state) => state.app.userInfo,\r\n slotSelection: (state) => state.app.workshopCart,\r\n homeCmsData: (state) => state.app.homeCmsData,\r\n appVersion: (state) => state.app.version,\r\n }),\r\n isPastSlot() {\r\n return this.serverDate && new Date(this.eventDays[this.eventDaySelectedIndex].toDateString()) < new Date(this.serverDate.toDateString());\r\n },\r\n returnUrl() {\r\n return window.location.origin + this.$route.fullPath;\r\n },\r\n },\r\n data() {\r\n return {\r\n workshops: [],\r\n allWorkshops: [],\r\n eventDays: [],\r\n eventDaySelectedIndex: undefined,\r\n serverDate: null,\r\n isLoading: false,\r\n searchQuery: '',\r\n password: null,\r\n displayError: false,\r\n };\r\n },\r\n watch: {\r\n searchQuery() {\r\n this.applyFilter();\r\n },\r\n },\r\n async mounted() {\r\n this.getQueryPassword();\r\n\r\n this.eventDays = DateHelper.getDates(DateHelper.onSiteDateTime(this.startDate), DateHelper.onSiteDateTime(this.endDate));\r\n try {\r\n const { data } = await MediaApiService.getTime();\r\n this.serverDate = DateHelper.onSiteDateTime(data);\r\n this.eventDaySelectedIndex = Math.max(\r\n 0,\r\n this.eventDays.findIndex((x) => x.toDateString() === this.serverDate.toDateString())\r\n );\r\n\r\n await this.fetchWorkshopData(this.eventDays[this.eventDaySelectedIndex]);\r\n } catch (err) {\r\n console.error(err);\r\n this.eventDaySelectedIndex = 0;\r\n }\r\n },\r\n methods: {\r\n getQueryPassword() {\r\n this.password = this.$route.query.password;\r\n },\r\n\r\n async fetchWorkshopData(date) {\r\n this.isLoading = true;\r\n\r\n MediaApiService.getAllWorkshopsByDate(this.eventId, DateHelper.formatISODate(date), this.password).then(async ({ data }) => {\r\n this.allWorkshops = data.data;\r\n this.isLoading = false;\r\n this.displayError = !data.success;\r\n this.applyFilter();\r\n });\r\n },\r\n\r\n searchWorkshops() {\r\n this.fetchWorkshopData(this.eventDays[this.eventDaySelectedIndex]);\r\n },\r\n\r\n applyFilter() {\r\n if (!this.searchQuery) {\r\n this.workshops = this.allWorkshops;\r\n return;\r\n }\r\n this.workshops = this.allWorkshops.filter((workshop) => workshop.contacts.some((contact) => contact.escid && contact.escid.includes(this.searchQuery)));\r\n },\r\n\r\n async updateTab(index) {\r\n if (this.eventDaySelectedIndex !== index) {\r\n this.eventDaySelectedIndex = index;\r\n await this.fetchWorkshopData(this.eventDays[index]);\r\n }\r\n },\r\n\r\n getTimeStringSeconds(time) {\r\n const timeArray = time.split(':');\r\n return Number(timeArray[0]) * 3600 + Number(timeArray[1]) * 60 + Number(timeArray[2]);\r\n },\r\n\r\n isRangeOverlap(xStart, xEnd, yStart, yEnd) {\r\n return xStart < yEnd && yStart < xEnd;\r\n },\r\n\r\n redirectToCheckout() {\r\n const slotIds = this.slotSelection.map((x) => x.id);\r\n const url = `${process.env.VUE_APP_MY_PROFILE_URL}order-workshop?returnUrl=${this.returnUrl}&slotIds=${slotIds.join(',')}`;\r\n window.location = url;\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .signIn__card {\r\n background: var(--congress);\r\n border-radius: 2rem;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n color: #fff;\r\n overflow: hidden;\r\n }\r\n\r\n .rounded-line {\r\n border-radius: 9999px;\r\n border: 1px solid var(--congress-light);\r\n transform: translate(50%, -50%);\r\n }\r\n\r\n .session__card-disabled {\r\n background-color: #fff;\r\n opacity: 0.4;\r\n }\r\n\r\n .session__card .btn-light:hover,\r\n .session__card .btn-light:active,\r\n .session__card .btn-light:focus {\r\n background-color: var(--congress-lighter) !important;\r\n color: var(--congress);\r\n }\r\n\r\n .btn-congress:hover,\r\n .btn-congress:active,\r\n .btn-congress:focus {\r\n background-color: var(--congress) !important;\r\n color: #fff;\r\n }\r\n\r\n .btn-light.disabled,\r\n .btn-light.disabled:hover {\r\n background-color: #f1f1f1 !important;\r\n color: #212529;\r\n }\r\n\r\n .session__card-disabled .btn-light.disabled:hover {\r\n background-color: #f1f1f1 !important;\r\n color: #212529;\r\n }\r\n\r\n ::v-deep .cart__card {\r\n background: #fff;\r\n border-radius: 2rem;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n color: #000;\r\n .cart__element {\r\n .dotted__separator {\r\n border-bottom: 2px dotted #e5e5e5;\r\n :last-of-type {\r\n border-bottom: 0 !important;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .grey__text {\r\n color: #5f6368;\r\n }\r\n\r\n .list-group {\r\n background: #f3f6f7;\r\n border-radius: 20px;\r\n .list-group-item {\r\n font-size: 0.9rem;\r\n border: 0;\r\n border-bottom: 1px dotted rgba(0, 0, 0, 0.125);\r\n background: transparent;\r\n }\r\n }\r\n .list-group-item:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n .form-inline .form-control {\r\n min-width: 300px;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimuVillageHostAdmin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SimuVillageHostAdmin.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SimuVillageHostAdmin.vue?vue&type=template&id=05505689&scoped=true\"\nimport script from \"./SimuVillageHostAdmin.vue?vue&type=script&lang=js\"\nexport * from \"./SimuVillageHostAdmin.vue?vue&type=script&lang=js\"\nimport style0 from \"./SimuVillageHostAdmin.vue?vue&type=style&index=0&id=05505689&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05505689\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('b-row',{staticClass:\"hero__banner\"},[(!_vm.isMobileAppPage && !_vm.isHomePage)?_c('b-col',{staticClass:\"hero__bg px-3 px-md-0 pt-5 px-0 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo\"},[_c('h1',[_vm._v(\"Abstracts\")]),_c('div',{staticClass:\"eventDate mt-3\"},[_vm._v(\"Discover original science, new cardiovascular research and findings for your clinical practice.\")]),_c('div',{staticClass:\"eventDate\"},[_vm._v(\" Please note that the programme times are displayed on local times in \"+_vm._s(_vm.locationEvent)+\". \")])])]):_vm._e()],1),_c('b-container',{staticClass:\"px-5 mb-5\",class:_vm.isTimelineExpanded ? 'd-block d-md-none' : 'd-block',attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('EscBanners')],1),_c('b-col',{staticClass:\"pt-3 abstracts__search\",attrs:{\"cols\":\"12\",\"lg\":_vm.hasBoostedTerms || _vm.hasTrending || _vm.hasPopularity ? 9 : 12}},[_c('Search',{attrs:{\"searchDocType\":'Abstract'}})],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"12\"}},[_c('RegisterPromoWidget')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('IndustryBanners')],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <fragment>\r\n <!-- \r\n ========================================================================================================================================================================\r\n HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-row class=\"hero__banner\">\r\n <b-col v-if=\"!isMobileAppPage && !isHomePage\" cols=\"12\" class=\"hero__bg px-3 px-md-0 pt-5 px-0 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${this.appVersion}')` }\">\r\n <div class=\"eventInfo\">\r\n <h1>Abstracts</h1>\r\n <div class=\"eventDate mt-3\">Discover original science, new cardiovascular research and findings for your clinical practice.</div>\r\n <div class=\"eventDate\">\r\n Please note that the programme times are displayed on local times in {{ locationEvent }}.\r\n </div>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <!-- \r\n ========================================================================================================================================================================\r\n END HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-container fluid class=\"px-5 mb-5\" :class=\"isTimelineExpanded ? 'd-block d-md-none' : 'd-block'\">\r\n <b-row>\r\n <!-- ESC Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\">\r\n <EscBanners />\r\n </b-col>\r\n\r\n <!-- OverviewTabs -->\r\n <b-col cols=\"12\" :lg=\"hasBoostedTerms || hasTrending || hasPopularity ? 9 : 12\" class=\"pt-3 abstracts__search\">\r\n <Search :searchDocType=\"'Abstract'\"/>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" class=\"pt-3\">\r\n <!-- Register Promo -->\r\n <RegisterPromoWidget />\r\n </b-col>\r\n\r\n <!-- IndustryBanners Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\" class=\"pt-3\">\r\n <IndustryBanners />\r\n </b-col>\r\n </b-row>\r\n\r\n </b-container>\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapState } from 'vuex';\r\nimport openModalMixin from 'src/mixins/openModalMixin';\r\nimport toursManagerMixin from 'src/mixins/toursManagerMixin';\r\nimport { constants } from 'src/constants';\r\nimport EscBanners from 'src/components/Banners/EscBanners';\r\nimport IndustryBanners from 'src/components/Banners/IndustryBanners';\r\nimport RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\nimport Search from 'src/components/Search/Search';\r\nexport default {\r\n name: 'Overview',\r\n mixins: [openModalMixin, toursManagerMixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners,\r\n Search,\r\n RegisterPromoWidget,\r\n },\r\n data() {\r\n return {\r\n userRecos: [],\r\n trendingRecos: [],\r\n popularRecos: [],\r\n hasTrending: false,\r\n hasBoostedTerms: false,\r\n hasPopularity: false,\r\n selectedRecommendationType: null,\r\n selectedContentType: null,\r\n recommendationData: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: (state) => state.app.eventId, eventRoute: (state) => state.app.eventRoute,\r\n appVersion: (state) => state.app.version,\r\n locationEvent: (state) => state.app.locationEvent,\r\n }),\r\n ...mapGetters(['isTimelineExpanded', 'isLogged', 'currentUser', 'appVersion']),\r\n\r\n isMobileAppPage() {\r\n const pagesWithoutTimeline = [\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_PRE_HOME}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_HAPPENING_NOW}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_INTERACTIVITY}`,\r\n ];\r\n return pagesWithoutTimeline.map((x) => `/${this.eventRoute}/${x}`).includes(this.$route.path);\r\n },\r\n\r\n isHomePage() {\r\n return this.$route.path === `/${this.eventRoute}` || this.$route.path === `/${this.eventRoute}/` || this.$route.path === `/${this.eventRoute}/home`;\r\n },\r\n },\r\n async mounted() {},\r\n methods: {\r\n hasUserRecos() {\r\n return this.recommendationData.BoostedTerms && this.recommendationData.BoostedTerms.Sessions && this.recommendationData.BoostedTerms.Sessions.length > 0;\r\n },\r\n hasTrendingRecos() {\r\n return this.recommendationData.Trending && this.recommendationData.Trending.Sessions && this.recommendationData.Trending.Sessions.length > 0;\r\n },\r\n hasPopularRecos() {\r\n return this.recommendationData.Popularity && this.recommendationData.Popularity.Sessions && this.recommendationData.Popularity.Sessions.length > 0;\r\n },\r\n\r\n filterRecos(recos) {\r\n return recos.filter((obj, pos, arr) => {\r\n return obj['content'] !== null && obj['content'] !== '' && arr.map((mapObj) => mapObj['content']).indexOf(obj['content']) === pos;\r\n });\r\n },\r\n sanitizeId(rawId) {\r\n if (!rawId) return '#';\r\n return rawId.substring(1, rawId.length);\r\n },\r\n extractId(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return parseFloat(rawcontent);\r\n },\r\n extractTitle(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return rawcontent.replace(parseFloat(rawcontent), '');\r\n },\r\n getuuid(uuid) {\r\n let uid = '';\r\n if (uuid.length > 0) {\r\n uid = uuid[uuid.length - 1];\r\n } else {\r\n uid = uuid[0];\r\n }\r\n return uid;\r\n },\r\n getuuidTrending(uuid) {\r\n let uid = '';\r\n if (uuid.length > 0) {\r\n uid = uuid[1];\r\n } else {\r\n uid = uuid[0];\r\n }\r\n return uid;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n.v-step__header {\r\n background: #000;\r\n}\r\n\r\n.v-step {\r\n z-index: 1;\r\n}\r\n\r\n/*TEST RECOMMENDATION CARD*/\r\n.card {\r\n border: 0;\r\n}\r\n\r\n.card-body {\r\n padding: 0.75rem !important;\r\n}\r\n\r\n.card-body a {\r\n display: flex;\r\n}\r\n\r\n.card-body a:hover {\r\n text-decoration: none;\r\n}\r\n\r\n.card-text {\r\n margin-bottom: 0;\r\n font-size: 0.9em;\r\n line-height: 1.25;\r\n}\r\n\r\n.search__card__footer__action i {\r\n align-self: center;\r\n}\r\n\r\n::v-deep .nav-pills .nav-link {\r\n font-size: 0.83em;\r\n}\r\n\r\n::v-deep .card-header {\r\n border-bottom: 0;\r\n background: transparent;\r\n}\r\n\r\n::v-deep .tab-pane {\r\n padding: 0 !important;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Overview.vue?vue&type=template&id=5e603e92&scoped=true\"\nimport script from \"./Overview.vue?vue&type=script&lang=js\"\nexport * from \"./Overview.vue?vue&type=script&lang=js\"\nimport style0 from \"./Overview.vue?vue&type=style&index=0&id=5e603e92&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e603e92\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('b-row',{staticClass:\"hero__banner\"},[(!_vm.isMobileAppPage && !_vm.isHomePage)?_c('b-col',{staticClass:\"hero__bg px-3 px-md-0 pt-5 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo\"},[_c('h1',[_vm._v(\"Replay\")]),_c('div',{staticClass:\"eventDate mt-3\"},[_vm._v(\"Access the resources on demand a few hours after their presentation.\")])])]):_vm._e()],1),_c('b-container',{staticClass:\"px-5 mb-5\",class:_vm.isTimelineExpanded ? 'd-block d-md-none' : 'd-block',attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('EscBanners')],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('OnDemand')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"12\"}},[_c('RegisterPromoWidget')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('IndustryBanners')],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-tabs',[_c('b-tab',{attrs:{\"active\":_vm.postCongressMode}},[_c('b-alert',{attrs:{\"show\":_vm.postCongressMode,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" \"+_vm._s(this.confCmsData.postcongress_on_demand_message)+\" \")],1),_c('SessionsBlock',{attrs:{\"eventId\":this.eventId,\"mode\":\"Replay\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.isLoading && !_vm.sessionAvailable)?_c('div',[_c('b-alert',{attrs:{\"show\":_vm.isLive,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" There are currently no live sessions taking place. \")],1),_c('b-alert',{attrs:{\"show\":_vm.isReplay,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" Replays will be available shortly – watch this space ! \")],1)],1):_vm._e(),(_vm.isReplay && _vm.newReplaysAvailable)?_c('div',{staticClass:\"alert_icon refresh-list__alert\",on:{\"click\":function($event){return _vm.refreshReplays()}}},[_c('b-alert',{staticClass:\"text-center\",attrs:{\"show\":\"\",\"variant\":\"congress\"}},[_vm._v(\" New replays available: please click here to refresh the list. \"),_c('font-awesome-icon',{staticClass:\"la-t-plus-1 ml-2\",attrs:{\"icon\":\"redo\",\"size\":\"1x\"}})],1)],1):_vm._e(),_c('div',[(_vm.isLoading)?_vm._l((4),function(index){return _c('b-col',{key:index,staticClass:\"card-deck pb-2 pb-md-4 px-0 mx-0\",attrs:{\"cols\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"320px\"}})],1)}):_vm._e(),(!_vm.isLoading)?[(_vm.isReplay)?_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"pb-2 pb-md-4 px-1 px-md-2\",attrs:{\"cols\":\"12\",\"md\":\"8\",\"lg\":\"3\"}},[_c('treeselect',{attrs:{\"options\":_vm.daysOptions,\"multiple\":true,\"placeholder\":\"Days\",\"appendToBody\":true,\"limit\":0,\"limitText\":(count) => `Days (${count} applied)`},on:{\"input\":_vm.onTreeSelectInput},model:{value:(_vm.daysValues),callback:function ($$v) {_vm.daysValues=$$v},expression:\"daysValues\"}})],1),_c('b-col',{staticClass:\"pb-2 pb-md-4 px-1 px-md-2\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"6\"}},[_c('treeselect',{attrs:{\"options\":_vm.channelOptions,\"multiple\":true,\"placeholder\":_vm.channelFilterLabel,\"appendToBody\":true,\"limit\":0,\"limitText\":(count) => `${_vm.channelFilterLabel} (${count} applied)`},on:{\"input\":_vm.onTreeSelectInput},model:{value:(_vm.channelValues),callback:function ($$v) {_vm.channelValues=$$v},expression:\"channelValues\"}})],1)],1):_vm._e(),(_vm.isLive)?_c('div',[(_vm.onlineSessions && _vm.onlineSessions.length > 0)?_c('b-row',[_c('b-col',{staticClass:\"text-left pb-2 px-3\",attrs:{\"cols\":\"12\"}},[_c('span',{staticClass:\"channeltype-row__text font-black\"},[_vm._v(\"Online\")])]),_vm._l((_vm.onlineSessions),function(session){return _c('b-col',{key:session.id,staticClass:\"card-deck pb-2 pb-md-4 px-0 mx-0\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode,\"forceOnlineChannel\":true,\"isLiveSession\":session.isLive,\"forceProgress\":true}})],1)})],2):_vm._e(),(_vm.onsiteSessions && _vm.onsiteSessions.length > 0)?_c('b-row',{staticClass:\"mt-3\"},[_c('b-col',{staticClass:\"text-left pb-2 px-3\",attrs:{\"cols\":\"12\"}},[_c('span',{staticClass:\"channeltype-row__text font-black\"},[_vm._v(\" \"+_vm._s(_vm.locationCity))])]),_vm._l((_vm.onsiteSessions),function(session){return _c('b-col',{key:session.id,staticClass:\"card-deck pb-2 pb-md-4 px-0 mx-0\",attrs:{\"cols\":\"12\",\"md\":\"4\",\"lg\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode,\"forceOnlineChannel\":false,\"forceProgress\":true,\"hideWatchButton\":true,\"isLiveSession\":true}})],1)})],2):_vm._e()],1):_c('div',[_c('b-row',_vm._l((_vm.sessions),function(session){return _c('b-col',{key:session.id,staticClass:\"card-deck pb-2 pb-md-4 px-0 mx-0\",attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":session,\"isLive\":session.isLive,\"mode\":_vm.mode}})],1)}),1)],1)]:_vm._e(),(_vm.isLoadingMore)?[_c('b-col',{attrs:{\"cols\":\"12\"}}),_vm._l((4),function(index){return _c('b-col',{key:index,staticClass:\"card-deck pb-2 pb-md-4 px-1 px-md-2\",attrs:{\"cols\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"320px\"}})],1)})]:_vm._e(),_c('b-col',{attrs:{\"cols\":\"12\"}},[(_vm.sessionAvailable && _vm.loadMoreVisible && !_vm.isLoadingMore)?_c('b-button',{attrs:{\"pill\":\"\",\"variant\":\"congress\"},on:{\"click\":function($event){$event.preventDefault();return _vm.loadMore()}}},[_vm._v(\" Load more \"),_c('i',{staticClass:\"las la-sync\"})]):_vm._e()],1)],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <div v-if=\"!isLoading && !sessionAvailable\">\r\n <!-- No live at this time -->\r\n <b-alert :show=\"isLive\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n There are currently no live sessions taking place.\r\n </b-alert>\r\n\r\n <!-- No replay at this time -->\r\n <b-alert :show=\"isReplay\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n Replays will be available shortly – watch this space !\r\n </b-alert>\r\n </div>\r\n\r\n <!-- New replays available -->\r\n <div @click=\"refreshReplays()\" v-if=\"isReplay && newReplaysAvailable\" class=\"alert_icon refresh-list__alert\">\r\n <b-alert show variant=\"congress\" class=\"text-center\">\r\n New replays available: please click here to refresh the list.\r\n <font-awesome-icon icon=\"redo\" size=\"1x\" class=\"la-t-plus-1 ml-2\" />\r\n </b-alert>\r\n </div>\r\n\r\n <div>\r\n <!-- IsLoadingTemplate -->\r\n <template v-if=\"isLoading\">\r\n <b-col cols=\"6\" md=\"4\" lg=\"3\" v-for=\"index in 4\" :key=\"index\" class=\"card-deck pb-2 pb-md-4 px-0 mx-0\">\r\n <b-skeleton-img no-aspect height=\"320px\"></b-skeleton-img>\r\n </b-col>\r\n </template>\r\n\r\n <!-- MainTemplate -->\r\n <template v-if=\"!isLoading\">\r\n <!-- channel and days filter in ondemand mode -->\r\n <b-row class=\"no-gutters\" v-if=\"isReplay\">\r\n <b-col cols=\"12\" md=\"8\" lg=\"3\" class=\"pb-2 pb-md-4 px-1 px-md-2\">\r\n <treeselect\r\n v-model=\"daysValues\"\r\n :options=\"daysOptions\"\r\n :multiple=\"true\"\r\n placeholder=\"Days\"\r\n :appendToBody=\"true\"\r\n @input=\"onTreeSelectInput\"\r\n :limit=\"0\"\r\n :limitText=\"(count) => `Days (${count} applied)`\"\r\n />\r\n </b-col>\r\n\r\n <b-col cols=\"12\" md=\"4\" lg=\"6\" class=\"pb-2 pb-md-4 px-1 px-md-2\">\r\n <treeselect\r\n v-model=\"channelValues\"\r\n :options=\"channelOptions\"\r\n :multiple=\"true\"\r\n :placeholder=\"channelFilterLabel\"\r\n :appendToBody=\"true\"\r\n @input=\"onTreeSelectInput\"\r\n :limit=\"0\"\r\n :limitText=\"(count) => `${channelFilterLabel} (${count} applied)`\"\r\n />\r\n </b-col>\r\n </b-row>\r\n <div v-if=\"isLive\">\r\n <b-row v-if=\"onlineSessions && onlineSessions.length > 0\">\r\n <b-col cols=\"12\" class=\"text-left pb-2 px-3\">\r\n <span class=\"channeltype-row__text font-black\">Online</span>\r\n </b-col>\r\n <b-col cols=\"12\" md=\"4\" lg=\"3\" v-for=\"session in onlineSessions\" :key=\"session.id\" class=\"card-deck pb-2 pb-md-4 px-0 mx-0\">\r\n <SessionCard\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n :mode=\"mode\"\r\n :forceOnlineChannel=\"true\"\r\n :isLiveSession=\"session.isLive\"\r\n :forceProgress=\"true\"\r\n ></SessionCard>\r\n </b-col>\r\n </b-row>\r\n <b-row v-if=\"onsiteSessions && onsiteSessions.length > 0\" class=\"mt-3\">\r\n <b-col cols=\"12\" class=\"text-left pb-2 px-3\">\r\n <span class=\"channeltype-row__text font-black\"> {{ locationCity }}</span>\r\n </b-col>\r\n <b-col cols=\"12\" md=\"4\" lg=\"3\" v-for=\"session in onsiteSessions\" :key=\"session.id\" class=\"card-deck pb-2 pb-md-4 px-0 mx-0\">\r\n <SessionCard\r\n :currentSession=\"session\"\r\n :isLive=\"session.isLive\"\r\n :mode=\"mode\"\r\n :forceOnlineChannel=\"false\"\r\n :forceProgress=\"true\"\r\n :hideWatchButton=\"true\"\r\n :isLiveSession=\"true\"\r\n ></SessionCard>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n <div v-else>\r\n <b-row>\r\n <b-col cols=\"12\" md=\"6\" lg=\"4\" xl=\"3\" v-for=\"session in sessions\" :key=\"session.id\" class=\"card-deck pb-2 pb-md-4 px-0 mx-0\">\r\n <SessionCard :currentSession=\"session\" :isLive=\"session.isLive\" :mode=\"mode\"></SessionCard>\r\n </b-col>\r\n </b-row>\r\n </div>\r\n </template>\r\n\r\n <!-- IsLoadingMoreTemplate -->\r\n <template v-if=\"isLoadingMore\">\r\n <b-col cols=\"12\"></b-col>\r\n <b-col cols=\"6\" md=\"4\" lg=\"3\" v-for=\"index in 4\" :key=\"index\" class=\"card-deck pb-2 pb-md-4 px-1 px-md-2\">\r\n <b-skeleton-img no-aspect height=\"320px\"></b-skeleton-img>\r\n </b-col>\r\n </template>\r\n\r\n <!-- LoadMore (Button) -->\r\n <b-col cols=\"12\">\r\n <b-button pill variant=\"congress\" @click.prevent=\"loadMore()\" v-if=\"sessionAvailable && loadMoreVisible && !isLoadingMore\">\r\n Load more <i class=\"las la-sync\"></i>\r\n </b-button>\r\n </b-col>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters } from 'vuex';\r\n import { constants } from 'src/constants';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import Treeselect from '@riophae/vue-treeselect';\r\n import '@riophae/vue-treeselect/dist/vue-treeselect.css';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n import SessionCard from 'src/components/Cards/SessionCard';\r\n\r\n export default {\r\n name: 'SessionsBlock',\r\n mixins: [hybridEventMixin],\r\n props: {\r\n // eventId: Number,\r\n mode: {\r\n type: String,\r\n default: 'Live',\r\n validator: function (value) {\r\n // The value must match one of these strings\r\n return value !== null && ['Live', 'Coming', 'Replay'].indexOf(value) !== -1;\r\n },\r\n },\r\n },\r\n components: {\r\n SessionCard,\r\n Treeselect,\r\n },\r\n data() {\r\n return {\r\n isLoading: true,\r\n isLoadingMore: false,\r\n sessions: [],\r\n skip: 0,\r\n loadMoreVisible: false,\r\n newReplaysAvailable: false,\r\n sessionAvailable: false,\r\n fetchLiveNowSessionsJob: null,\r\n fetchReplaySessionsJob: null,\r\n channelValues: null,\r\n channelOptions: [],\r\n daysValues: null,\r\n daysOptions: [],\r\n };\r\n },\r\n computed: {\r\n isReplay() {\r\n return this.mode == 'Replay';\r\n },\r\n isComing() {\r\n return this.mode == 'Coming';\r\n },\r\n isLive() {\r\n return this.mode == 'Live';\r\n },\r\n poolingLiveSessionsInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_LIVE_SESSIONS_INTERVAL);\r\n },\r\n poolingReplaySessionsInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_REPLAY_SESSIONS_INTERVAL);\r\n },\r\n onlineSessions() {\r\n return (\r\n (this.locationTypeId === constants.EVENT_LOCATION_ONLINE || this.locationTypeId === constants.EVENT_LOCATION_HYBRID) &&\r\n this.sessions?.filter((s) => s.isOnline)\r\n );\r\n },\r\n onsiteSessions() {\r\n return (\r\n (this.locationTypeId === constants.EVENT_LOCATION_ONSITE || this.locationTypeId === constants.EVENT_LOCATION_HYBRID) &&\r\n this.sessions?.filter((s) => s.isOnsite)\r\n );\r\n },\r\n channelFilterLabel() {\r\n return this.showChannelOnline ? 'Channels' : 'Rooms';\r\n },\r\n ...mapGetters(['isPoolingEnabled']),\r\n },\r\n watch: {\r\n isPoolingEnabled(enabled) {\r\n if (enabled) {\r\n if (this.isLive) this.fetchLiveNowSessions();\r\n if (this.isComing) this.fetchComingSessions();\r\n if (this.isReplay) this.fetchReplaySessions(); // this.refreshLoadMoreReplayButton();\r\n }\r\n },\r\n },\r\n mounted() {\r\n if (this.isLive) {\r\n this.fetchLiveNowSessions();\r\n\r\n // Polling live sessions...\r\n this.fetchLiveNowSessionsJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n this.fetchLiveNowSessions();\r\n }\r\n }, this.poolingLiveSessionsInterval);\r\n }\r\n\r\n if (this.isComing) this.fetchComingSessions();\r\n\r\n if (this.isReplay) {\r\n this.getChannelsOptions();\r\n this.getDaysOptions();\r\n\r\n this.fetchReplaySessions();\r\n\r\n // Polling replay sessions...\r\n this.fetchReplaySessionsJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n this.fetchReplaySessions(); //this.refreshLoadMoreReplayButton();\r\n }\r\n }, this.poolingReplaySessionsInterval);\r\n }\r\n },\r\n beforeDestroy() {\r\n clearInterval(this.fetchLiveNowSessionsJob);\r\n clearInterval(this.fetchReplaySessionsJob);\r\n },\r\n methods: {\r\n fetchLiveNowSessions() {\r\n MediaApiService.getAllLiveNowSessions(this.eventId).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n //data.filter((sess) => sess.isLiveNow);\r\n this.sessions = data;\r\n let nbSession = data.length;\r\n this.sessionAvailable = nbSession > 0;\r\n }\r\n });\r\n },\r\n fetchComingSessions() {\r\n MediaApiService.getComingSessions(this.eventId, this.skip, constants.LOAD_MORE_SESSIONS_COUNT + 1, false).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n // data.filter((sess) => !sess.isLiveNow);\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = data;\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n this.sessionAvailable = nbSession > 0;\r\n }\r\n });\r\n },\r\n fetchReplaySessions() {\r\n //console.log('fetchReplaySessions');\r\n\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n\r\n //No replays displayed fetch replays from 0\r\n if (!this.sessionAvailable) {\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n this.skip,\r\n constants.LOAD_MORE_SESSIONS_COUNT + 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = data;\r\n this.sessionAvailable = nbSession > 0;\r\n if (this.sessionAvailable) {\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n }\r\n });\r\n }\r\n //At least one replay displayed, check for new replays\r\n else {\r\n //console.log('fetchcheckNewReplaysAvailable');\r\n if (!this.isLoading) this.checkNewReplaysAvailable();\r\n /*\r\n MediaApiService.getReplaySessions(this.eventId, this.skip, 1).then(({ data }) => {\r\n if (data) {\r\n this.loadMoreVisible = data.length > 0;\r\n }\r\n });\r\n */\r\n }\r\n },\r\n //Check if new replays available comparing 1st dispayed item and 1st iem from fetch\r\n checkNewReplaysAvailable() {\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n 0,\r\n 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n if (data && data.length > 0) {\r\n //console.log(data[0].id);\r\n //console.log(this.sessions[0].id);\r\n this.newReplaysAvailable = data[0].id != this.sessions[0].id;\r\n }\r\n });\r\n },\r\n //Refresh replays list. Resets sessionAvailable, skip and dissmiss new replays alert\r\n refreshReplays() {\r\n //console.log('refreshReplays');\r\n this.isLoading = true;\r\n this.sessionAvailable = false;\r\n this.skip = 0;\r\n this.newReplaysAvailable = false;\r\n this.fetchReplaySessions();\r\n },\r\n /*\r\n refreshLoadMoreReplayButton() {\r\n MediaApiService.getReplaySessions(this.eventId, this.skip, 1).then(({ data }) => {\r\n if (data) {\r\n this.loadMoreVisible = data.length > 0;\r\n }\r\n });\r\n },\r\n */\r\n loadMore() {\r\n if (this.mode == 'Live') {\r\n this.loadMoreLiveNowSessions();\r\n }\r\n if (this.mode == 'Coming') {\r\n this.loadMoreComingSessions();\r\n }\r\n if (this.mode == 'Replay') {\r\n this.loadMoreReplaySessions();\r\n }\r\n },\r\n loadMoreLiveNowSessions() {\r\n this.isLoadingMore = true;\r\n MediaApiService.getLiveNowSessions(this.eventId, this.skip, constants.LOAD_MORE_SESSIONS_COUNT + 1, false).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n loadMoreComingSessions() {\r\n this.isLoadingMore = true;\r\n MediaApiService.getComingSessions(this.eventId, this.skip, constants.LOAD_MORE_SESSIONS_COUNT + 1, false).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n loadMoreReplaySessions() {\r\n this.isLoadingMore = true;\r\n const channelsSelected = this.channelValues;\r\n const daysSelected = this.daysValues;\r\n MediaApiService.getReplaySessions(\r\n this.eventId,\r\n this.skip,\r\n constants.LOAD_MORE_SESSIONS_COUNT + 1,\r\n channelsSelected?.length > 0 ? channelsSelected : null,\r\n daysSelected?.length > 0 ? daysSelected : null\r\n ).then(({ data }) => {\r\n this.isLoadingMore = false;\r\n if (data) {\r\n let nbSession = data.length;\r\n this.loadMoreVisible = nbSession > constants.LOAD_MORE_SESSIONS_COUNT;\r\n if (this.loadMoreVisible) {\r\n data.splice(-1, 1);\r\n }\r\n this.sessions = [...this.sessions, ...data];\r\n this.skip += Math.min(nbSession, constants.LOAD_MORE_SESSIONS_COUNT); //constants.LOAD_MORE_SESSIONS_COUNT;\r\n }\r\n });\r\n },\r\n getChannelsOptions() {\r\n MediaApiService.getChannelsOptions(this.eventId).then(({ data }) => {\r\n if (data) {\r\n this.channelOptions = data;\r\n }\r\n });\r\n },\r\n onTreeSelectInput() {\r\n this.sessionAvailable = false;\r\n this.skip = 0;\r\n this.fetchReplaySessions();\r\n },\r\n getDaysOptions() {\r\n MediaApiService.getDaysOptions(this.eventId).then(({ data }) => {\r\n if (data) {\r\n this.daysOptions = data;\r\n }\r\n });\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .button__load-more {\r\n color: $secondary;\r\n background-color: var(--congress);\r\n border-radius: 6px;\r\n }\r\n\r\n .comming-next__title {\r\n display: inline-block;\r\n background-color: var(--congress);\r\n color: $secondary;\r\n border-radius: 2px;\r\n font-size: 1.2em;\r\n }\r\n\r\n .refresh-list__alert {\r\n cursor: pointer;\r\n }\r\n\r\n .alert_icon {\r\n color: var(--congress-dark);\r\n }\r\n\r\n .channeltype-row__text {\r\n color: $grey-dark;\r\n text-transform: uppercase;\r\n }\r\n \r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionsBlock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionsBlock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SessionsBlock.vue?vue&type=template&id=98817804&scoped=true\"\nimport script from \"./SessionsBlock.vue?vue&type=script&lang=js\"\nexport * from \"./SessionsBlock.vue?vue&type=script&lang=js\"\nimport style0 from \"./SessionsBlock.vue?vue&type=style&index=0&id=98817804&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"98817804\",\n null\n \n)\n\nexport default component.exports","<template>\r\n<b-tabs>\r\n <!-- Replay -->\r\n <b-tab :active=\"postCongressMode\">\r\n <!-- After Congress -->\r\n <b-alert :show=\"postCongressMode\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n <!--\r\n Missed it? Watch it again. On demand, available until {{ this.confCmsData.date_on_demand_close | formatUnixEpocDayPartWithYear }}.\r\n -->\r\n {{ this.confCmsData.postcongress_on_demand_message }}\r\n </b-alert>\r\n <!-- Always (after & druring congress) -->\r\n <SessionsBlock :eventId=\"this.eventId\" mode=\"Replay\"></SessionsBlock>\r\n </b-tab>\r\n </b-tabs>\r\n</template>\r\n<script>\r\n import { mapState } from 'vuex';\r\n\r\n import SessionsBlock from 'src/components/Blocks/SessionsBlock';\r\n\r\n export default {\r\n name: 'OnDemand',\r\n components: {\r\n SessionsBlock,\r\n },\r\n props: {\r\n eventId: Number,\r\n },\r\n data() {\r\n return {\r\n on_demand_close_date: null,\r\n next_congress_dates: null,\r\n congress_name: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n confCmsData: (state) => state.app.confCmsData,\r\n }),\r\n },\r\n mounted() {\r\n // If needed...\r\n },\r\n methods: {},\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .alert_icon {\r\n color: var(--congress-dark);\r\n }\r\n</style>","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OnDemand.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OnDemand.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./OnDemand.vue?vue&type=template&id=a28591ce&scoped=true\"\nimport script from \"./OnDemand.vue?vue&type=script&lang=js\"\nexport * from \"./OnDemand.vue?vue&type=script&lang=js\"\nimport style0 from \"./OnDemand.vue?vue&type=style&index=0&id=a28591ce&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a28591ce\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment>\r\n <!-- \r\n ========================================================================================================================================================================\r\n HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-row class=\"hero__banner\">\r\n <b-col\r\n v-if=\"!isMobileAppPage && !isHomePage\"\r\n cols=\"12\"\r\n class=\"hero__bg px-3 px-md-0 pt-5 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"eventInfo\">\r\n <h1>Replay</h1>\r\n <div class=\"eventDate mt-3\">Access the resources on demand a few hours after their presentation.</div>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <!-- \r\n ========================================================================================================================================================================\r\n END HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-container fluid class=\"px-5 mb-5\" :class=\"isTimelineExpanded ? 'd-block d-md-none' : 'd-block'\">\r\n <b-row>\r\n <!-- ESC Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\">\r\n <EscBanners />\r\n </b-col>\r\n \r\n <!-- OverviewTabs -->\r\n <b-col cols=\"12\" >\r\n <OnDemand/>\r\n </b-col>\r\n \r\n <b-col cols=\"12\" class=\"pt-3\">\r\n <!-- Register Promo -->\r\n <RegisterPromoWidget />\r\n </b-col>\r\n \r\n <!-- IndustryBanners Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\" class=\"pt-3\">\r\n <IndustryBanners />\r\n </b-col>\r\n </b-row>\r\n \r\n </b-container>\r\n </fragment>\r\n </template>\r\n \r\n <script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n import toursManagerMixin from 'src/mixins/toursManagerMixin';\r\n import { constants } from 'src/constants';\r\n import EscBanners from 'src/components/Banners/EscBanners';\r\n import IndustryBanners from 'src/components/Banners/IndustryBanners';\r\n import RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\n import OnDemand from 'src/views/OnDemand/OnDemand';\r\n export default {\r\n name: 'Overview',\r\n mixins: [openModalMixin, toursManagerMixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners,\r\n OnDemand,\r\n RegisterPromoWidget,\r\n },\r\n data() {\r\n return {\r\n userRecos: [],\r\n trendingRecos: [],\r\n popularRecos: [],\r\n hasTrending: false,\r\n hasBoostedTerms: false,\r\n hasPopularity: false,\r\n selectedRecommendationType: null,\r\n selectedContentType: null,\r\n recommendationData: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventRoute: (state) => state.app.eventRoute,\r\n appVersion: (state) => state.app.version,\r\n locationEvent: (state) => state.app.locationEvent,\r\n }),\r\n ...mapGetters(['isTimelineExpanded', 'isLogged', 'currentUser', 'appVersion']),\r\n \r\n isMobileAppPage() {\r\n const pagesWithoutTimeline = [\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_PRE_HOME}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_HAPPENING_NOW}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_INTERACTIVITY}`,\r\n ];\r\n return pagesWithoutTimeline.map((x) => `/${this.eventRoute}/${x}`).includes(this.$route.path);\r\n },\r\n \r\n isHomePage() {\r\n return this.$route.path === `/${this.eventRoute}` || this.$route.path === `/${this.eventRoute}/` || this.$route.path === `/${this.eventRoute}/home`;\r\n },\r\n },\r\n async mounted() {\r\n\r\n },\r\n methods: {\r\n hasUserRecos() {\r\n return this.recommendationData.BoostedTerms && this.recommendationData.BoostedTerms.Sessions && this.recommendationData.BoostedTerms.Sessions.length > 0;\r\n },\r\n hasTrendingRecos() {\r\n return this.recommendationData.Trending && this.recommendationData.Trending.Sessions && this.recommendationData.Trending.Sessions.length > 0;\r\n },\r\n hasPopularRecos() {\r\n return this.recommendationData.Popularity && this.recommendationData.Popularity.Sessions && this.recommendationData.Popularity.Sessions.length > 0;\r\n },\r\n //get partId from cookies\r\n \r\n filterRecos(recos) {\r\n return recos.filter((obj, pos, arr) => {\r\n return obj['content'] !== null && obj['content'] !== '' && arr.map((mapObj) => mapObj['content']).indexOf(obj['content']) === pos;\r\n });\r\n },\r\n sanitizeId(rawId) {\r\n if (!rawId) return '#';\r\n return rawId.substring(1, rawId.length);\r\n },\r\n extractId(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return parseFloat(rawcontent);\r\n },\r\n extractTitle(rawcontent) {\r\n if (!rawcontent) return '#';\r\n return rawcontent.replace(parseFloat(rawcontent), '');\r\n },\r\n getuuid(uuid) {\r\n let uid = '';\r\n if (uuid.length > 0) {\r\n uid = uuid[uuid.length - 1];\r\n } else {\r\n uid = uuid[0];\r\n }\r\n return uid;\r\n },\r\n getuuidTrending(uuid) {\r\n let uid = '';\r\n if (uuid.length > 0) {\r\n uid = uuid[1];\r\n } else {\r\n uid = uuid[0];\r\n }\r\n return uid;\r\n },\r\n },\r\n };\r\n </script>\r\n \r\n <style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n \r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n \r\n .v-step__header {\r\n background: #000;\r\n }\r\n \r\n .v-step {\r\n z-index: 1;\r\n }\r\n \r\n /*TEST RECOMMENDATION CARD*/\r\n .card {\r\n border: 0;\r\n }\r\n \r\n .card-body {\r\n padding: 0.75rem !important;\r\n }\r\n \r\n .card-body a {\r\n display: flex;\r\n }\r\n \r\n .card-body a:hover {\r\n text-decoration: none;\r\n }\r\n \r\n .card-text {\r\n margin-bottom: 0;\r\n font-size: 0.9em;\r\n line-height: 1.25;\r\n }\r\n \r\n .search__card__footer__action i {\r\n align-self: center;\r\n }\r\n \r\n ::v-deep .nav-pills .nav-link {\r\n font-size: 0.83em;\r\n }\r\n \r\n ::v-deep .card-header {\r\n border-bottom: 0;\r\n background: transparent;\r\n }\r\n \r\n ::v-deep .tab-pane {\r\n padding: 0 !important;\r\n }\r\n </style>\r\n ","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Overview.vue?vue&type=template&id=73fd46b0&scoped=true\"\nimport script from \"./Overview.vue?vue&type=script&lang=js\"\nexport * from \"./Overview.vue?vue&type=script&lang=js\"\nimport style0 from \"./Overview.vue?vue&type=style&index=0&id=73fd46b0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73fd46b0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-col',{attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"12\",\"lg\":\"12\"}},[_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('Timeline',{attrs:{\"eventId\":_vm.eventId,\"expanded\":true,\"toggable\":false,\"entity\":\"Channel\"}})],1)],1),_c('v-tour',{attrs:{\"name\":\"overview-tour\",\"steps\":_vm.steps,\"callbacks\":_vm.callbacks}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"timeline\",attrs:{\"data-expanded\":_vm.expandedData,\"data-toggable\":_vm.toggable}},[_c('div',{staticClass:\"timeline-title\"},[_c('div',{staticClass:\"p-3 pl-4 align-middle\"},[(_vm.isTimeLoading)?[_c('i',{staticClass:\"las la-3x la-t-plus-3 la-circle-notch la-spin mr-1\"}),_vm._v(\" Synchronization... \")]:_vm._e(),(!_vm.isTimeLoading)?[(!_vm.expanded)?[_c('span',{staticClass:\"date__text\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.timeFromServer))+\" \")])]:[(_vm.$screen.lg || _vm.$screen.xl || _vm.$screen.xxl)?_c('div',{staticClass:\"d-none d-lg-block\",attrs:{\"order-lg\":\"1\"}},[_vm._l((_vm.eventDays),function(eventDay,index){return _c('span',{key:eventDay.toString(),staticClass:\"date__text\",class:{ selected: _vm.isSelectedDay(eventDay) },style:({ cursor: !_vm.isSliding && !_vm.isLoading && !_vm.isSelectedDay(eventDay) ? 'pointer' : null }),attrs:{\"data-v-step-schedule\":index == 0 && (_vm.$screen.lg || _vm.$screen.xl || _vm.$screen.xxl) ? 0 : null}},[_c('span',{on:{\"click\":function($event){return _vm.onDayClick(eventDay)}}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPart\")(eventDay)))])])}),(this.confCmsData && this.confCmsData.paag_doc && this.confCmsData.paag_doc.filename)?_c('a',{staticClass:\"btn btn-congress\",attrs:{\"href\":this.confCmsData.paag_doc.filename,\"target\":\"_blank\"}},[_vm._v(\"Download the Programme at a glance\")]):_vm._e()],2):_vm._e(),_c('div',{staticClass:\"d-lg-none\",attrs:{\"order\":\"1\"}},[_c('span',{staticClass:\"date__control date__control--previous\",class:{ invisible: _vm.isSliding || _vm.isLoading || !_vm.allowPreviousDay },on:{\"click\":function($event){return _vm.onPreviousDayClick()}}},[_c('i',{staticClass:\"las la-07x la-t-minus-2_5 la-white la-angle-left\"})]),_c('span',{staticClass:\"date__text\",attrs:{\"data-v-step-schedule\":_vm.$screen.xs || _vm.$screen.sm || _vm.$screen.md ? 0 : null}},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.timeToDisplay))+\" \")]),_c('span',{staticClass:\"date__control date__control--next\",class:{ invisible: _vm.isSliding || _vm.isLoading || !_vm.allowNextDay },on:{\"click\":function($event){return _vm.onNextDayClick()}}},[_c('i',{staticClass:\"las la-07x la-t-minus-2_5 la-white la-angle-right\"})])])]]:_vm._e()],2),(_vm.toggable)?_c('div',{staticClass:\"timeline-toggle-action\",on:{\"click\":_vm.toggleTimeLine}},[_c('i',{staticClass:\"las la-2x la-t-plus-6 la-calendar-alt timeline-expand-action\"}),_c('i',{staticClass:\"las la-07x la-t-plus-1 la-angle-right timeline-expand-action\"}),_c('i',{staticClass:\"las la-2x la-t-plus-6 la-times timeline-collapse-action\"})]):_vm._e()]),_c('div',{staticClass:\"timeline-items pt-3\",class:_vm.toggable ? ' mr-4' : 'mr-0'},[_c('div',{staticClass:\"time-line-digest\"},[(_vm.isLoading)?_vm._l((6),function(index){return _c('b-row',{key:index,staticClass:\"timeline-item pb-2 no-gutters\"},[_c('b-col',{attrs:{\"cols\":\"timeline-now pr-1\"}},[_c('b-skeleton')],1),_c('b-col',{attrs:{\"cols\":\"timeline-time\"}},[_c('div',{staticClass:\"timeline-time px-1\"},[_c('b-skeleton')],1),_c('div',{staticClass:\"timeline-line\"})]),_c('b-col',{staticClass:\"timeline-text pl-2 pr-2\"},[_c('div',{staticClass:\"timeline-text__title\"},[_c('b-skeleton',{attrs:{\"width\":\"65%\"}})],1),_c('div',{staticClass:\"timeline-text__subtitle\"},[_c('b-skeleton',{attrs:{\"width\":\"90%\"}})],1)])],1)}):_vm._e(),(!_vm.isLoading)?_vm._l((_vm.timeLine),function(sessionTimeLineItem){return _c('b-row',{key:sessionTimeLineItem.Id,staticClass:\"timeline-item pb-2 no-gutters\"},[_c('b-col',{attrs:{\"cols\":\"timeline-now\"}},[(_vm.showLiveBadge && sessionTimeLineItem.isLive)?_c('div',{staticClass:\"timeline-now\"},[_vm._v(\"live\")]):_vm._e()]),_c('b-col',{attrs:{\"cols\":\"timeline-time\"}},[_c('div',{staticClass:\"timeline-time\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(sessionTimeLineItem.startTime))+\" \")]),_c('div',{staticClass:\"timeline-line\"})]),_c('b-col',{staticClass:\"timeline-text pl-2 pr-2\"},[(sessionTimeLineItem.isOnsite)?_c('span',{staticClass:\"session__location--onsite\"},[_c('i',{staticClass:\"las la-6x la-landmark mr-1\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.locationCity))])]):_vm._e(),(sessionTimeLineItem.isOnline)?_c('span',{staticClass:\"session__location--online\"},[_c('i',{staticClass:\"las la-6x la-globe mr-1\"}),_vm._v(\" \"),_c('span',[_vm._v(\"Online\")])]):_vm._e(),_c('div',{staticClass:\"timeline-text__title\"},[_vm._v(_vm._s(sessionTimeLineItem.title))]),(sessionTimeLineItem.description)?_c('div',{staticClass:\"timeline-text__description\"},[_vm._v(\" \"+_vm._s(sessionTimeLineItem.description)+\" \")]):_vm._e(),(sessionTimeLineItem.subTitle)?_c('div',{staticClass:\"timeline-text__subtitle\"},[_vm._v(\" \"+_vm._s(sessionTimeLineItem.subTitle)+\" \")]):_vm._e()])],1)}):_vm._e()],2),_c('div',{staticClass:\"time-line-full\"},[(_vm.isLoading)?[_c('b-carousel',{attrs:{\"interval\":10}},[_c('b-carousel-slide',{scopedSlots:_vm._u([{key:\"img\",fn:function(){return [_c('b-row',{staticClass:\"channels-row no-gutters w-100\"},[_c('b-col',{attrs:{\"cols\":\"carousel__control\"}},[_c('div',{staticClass:\"carousel__control carousel__control--previous\"},[_c('i',{staticClass:\"las la-6x la-t-plus-1 la-white la-angle-left\"})])]),_vm._l((3),function(index){return _c('b-col',{key:index},[_c('b-skeleton',{staticClass:\"mx-auto\",attrs:{\"width\":\"50%\",\"height\":\"30px\"}})],1)}),_c('b-col',{attrs:{\"cols\":\"carousel__control\"}},[_c('div',{staticClass:\"carousel__control carousel__control--next\"},[_c('i',{staticClass:\"las la-6x la-t-plus-1 la-white la-angle-right\"})])])],2),_c('b-row',{staticClass:\"sessions-row\"},[_c('b-col',{attrs:{\"cols\":\"carousel__control\"}}),_vm._l((3),function(index){return _c('b-col',{key:index,staticClass:\"channels-divider\"},_vm._l((4),function(itemIndex){return _c('div',{key:itemIndex,staticClass:\"pb-2 pb-md-4 px-1 px-md-2\"},[_c('b-card',{staticClass:\"h-100 p-2\",attrs:{\"no-body\":\"\",\"bg-variant\":\"light\"}},[_c('div',[_c('b-skeleton',{staticClass:\"d-inline-block mr-1\",attrs:{\"width\":\"10%\"}}),_c('b-skeleton',{staticClass:\"d-inline-block\",attrs:{\"width\":\"5%\"}})],1),_c('div',{staticClass:\"session__title\"},[_c('b-skeleton',{attrs:{\"width\":\"50%\"}})],1)])],1)}),0)}),_c('b-col',{attrs:{\"cols\":\"carousel__control\"}})],2)]},proxy:true}],null,false,3576114717)})],1)]:_vm._e(),(!_vm.isLoading && _vm.slidesCount > 0)?_c('div',[_c('b-carousel',{ref:\"timelineCarousel\",attrs:{\"interval\":0},on:{\"sliding-start\":_vm.onSlideStart,\"sliding-end\":_vm.onSlideEnd}},_vm._l((_vm.slidesCount),function(slideNumber){return _c('b-carousel-slide',{key:slideNumber,scopedSlots:_vm._u([{key:\"img\",fn:function(){return [_c('b-row',{staticClass:\"channels-row no-gutters w-100\"},[(_vm.needChannelCarousel)?_c('b-col',{attrs:{\"cols\":\"carousel__control\"}},[_c('div',{staticClass:\"carousel__control carousel__control--previous\",class:{ invisible: _vm.isSliding },on:{\"click\":function($event){return _vm.onCarouselPrevClick()}}},[_c('i',{staticClass:\"las la-6x la-t-plus-1 la-white la-angle-left\"})])]):_vm._e(),_vm._l((_vm.getChannelsBySlide(slideNumber)),function(channel){return _c('b-col',{key:channel.id},[_c('span',{staticClass:\"channels-row__text\",domProps:{\"innerHTML\":_vm._s(_vm.$options.filters.formatChannelName(channel.name))}})])}),(_vm.needChannelCarousel)?_c('b-col',{attrs:{\"cols\":\"carousel__control\"}},[_c('div',{staticClass:\"carousel__control carousel__control--next\",class:{ invisible: _vm.isSliding },attrs:{\"data-v-step-schedule\":\"1\"},on:{\"click\":function($event){return _vm.onCarouselNextClick()}}},[_c('i',{staticClass:\"las la-6x la-t-plus-1 la-white la-angle-right\"})])]):_vm._e()],2),_c('div',{staticClass:\"sessions-row-container\"},[_c('b-row',{staticClass:\"sessions-row\",style:(`padding-top:10px;min-height:${20 + _vm.dayDuration / (1000 * _vm.stepSizeFactor)}px`),attrs:{\"align-h\":\"center\"}},[_c('b-col',{attrs:{\"cols\":\"carousel__timeline\"}},_vm._l((Math.ceil(_vm.dayDuration / (1000 * 60 * 30))),function(index){return _c('fragment',{key:index},[_c('div',{staticClass:\"timeline-time\",style:(`padding-left: 25px;min-height:${(1000 * 60 * 30) / (1000 * _vm.stepSizeFactor)}px;`)},[(_vm.showSharpTimeLine(index))?_c('div',{staticStyle:{\"z-index\":\"2\",\"position\":\"absolute\",\"width\":\"100%\",\"border-top\":\"1px solid #e2e2e2\"}}):_vm._e(),_c('span',{staticStyle:{\"z-index\":\"2\",\"margin\":\"5px 0px\"}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocTimePart\")((_vm.startDayTime + (index - 1) * 1000 * 60 * 30))))]),_c('div',{staticClass:\"channel-timeline-line\"})])])}),1),_vm._l((_vm.getChannelsBySlide(slideNumber)),function(channel){return _c('b-col',{key:channel.id,staticClass:\"channels-divider\"},[_c('div',{staticClass:\"px-2\",style:(`overflow:hidden;position:absolute;width:100%;height:${(channel.items[0].startTime - _vm.startDayTime) / (1000 * _vm.stepSizeFactor)}px;top:0px;`)},[_c('div',{staticClass:\"stripe\",staticStyle:{\"height\":\"100%\"}})]),_vm._l((channel.items),function(item){return _c('div',{key:item.id,staticClass:\"px-1 px-md-2 session-item\",style:(`z-index: 3;overflow:hidden;position:absolute;width:100%;height:${(item.endTime - item.startTime) /\n (1000 * _vm.stepSizeFactor)}px;min-height:${(item.endTime - item.startTime) / (1000 * _vm.stepSizeFactor)}px;top:${(item.startTime -\n _vm.startDayTime) /\n (1000 * _vm.stepSizeFactor)}px;`),on:{\"click\":function($event){return _vm.onSessionItemClick(item)}}},[_c('b-card',{class:`h-100 p-1 session-item-card`,attrs:{\"no-body\":\"\"}},[_c('span',{staticClass:\"session__favorite__button\"},[_c('FavoriteButton',{attrs:{\"title\":item.title,\"digitalSessionId\":item.id,\"scientificSessionId\":item.scientificSessionId,\"width\":\"20\",\"height\":\"20\"}})],1),_c('div',[_c('span',{staticClass:\"session__time\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(item.startTime))+\" \")]),_c('span',{staticClass:\"session__duration\"},[_vm._v(\"(\"+_vm._s(item.duration)+\"mn)\")]),(_vm.showLiveBadge && item.isLive)?_c('span',{staticClass:\"session__now\"},[_vm._v(\" live \")]):_vm._e(),(item.isOnsite)?_c('span',{staticClass:\"session__location--onsite ml-2\"},[_c('i',{staticClass:\"las la-6x la-landmark mr-1\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.locationCity))])]):_vm._e(),(item.isOnline)?_c('span',{staticClass:\"session__location--online\"},[_c('i',{staticClass:\"las la-6x la-globe mr-1\"}),_vm._v(\" \"),_c('span',[_vm._v(\"Online\")])]):_vm._e()]),(!_vm.isSponsoredSession(item))?_c('div',[_c('div',{staticClass:\"session__title\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('div',{staticClass:\"session__sub_title\"},[_vm._v(\" \"+_vm._s(item.subTitle)+\" \")])]):_c('div',[_c('div',{staticClass:\"sponsored-session\"},[_c('div',{staticClass:\"sponsored-front\"},[_c('div',{staticClass:\"session__title\"},[_vm._v(\"Industry Session\")])]),_c('div',{staticClass:\"sponsored-back\"},[_c('div',{staticClass:\"session__title\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_c('div',{staticClass:\"session__sub_title\"},[_vm._v(\" \"+_vm._s(item.subTitle)+\" \")])])])]),_c('div',[_c('SessionButton',{attrs:{\"session\":item}}),(item.isLive)?_c('div',{staticClass:\"session__progress pt-2\"},[_c('b-progress',{attrs:{\"value\":item.progress,\"max\":item.duration,\"height\":\"0.5em\"}})],1):_vm._e()],1)])],1)}),_c('div',{staticClass:\"px-2\",style:(`overflow:hidden;position:absolute;width:100%;height:${(_vm.endDayTime - channel.items[channel.items.length - 1].endTime) /\n (1000 * _vm.stepSizeFactor)}px;top:${(channel.items[channel.items.length - 1].endTime - _vm.startDayTime) / (1000 * _vm.stepSizeFactor)}px;`)},[_c('div',{staticClass:\"stripe\",staticStyle:{\"height\":\"100%\"}})])],2)}),_c('b-col',{attrs:{\"cols\":\"carousel__control\"}})],2)],1),(_vm.showDuplicatedHeader)?_c('b-row',{staticClass:\"channels-row no-gutters w-100\"},[(_vm.needChannelCarousel)?_c('b-col',{attrs:{\"cols\":\"carousel__control\"}},[_c('div',{staticClass:\"carousel__control carousel__control--previous\",class:{ invisible: _vm.isSliding },on:{\"click\":function($event){return _vm.onCarouselPrevClick()}}},[_c('i',{staticClass:\"las la-6x la-t-plus-1 la-white la-angle-left\"})])]):_vm._e(),_vm._l((_vm.getChannelsBySlide(slideNumber)),function(channel){return _c('b-col',{key:channel.id},[_c('span',{staticClass:\"channels-row__text\",domProps:{\"innerHTML\":_vm._s(_vm.$options.filters.formatChannelName(channel.name))}})])}),(_vm.needChannelCarousel)?_c('b-col',{attrs:{\"cols\":\"carousel__control\"}},[_c('div',{staticClass:\"carousel__control carousel__control--next\",class:{ invisible: _vm.isSliding },attrs:{\"data-v-step-schedule\":\"1\"},on:{\"click\":function($event){return _vm.onCarouselNextClick()}}},[_c('i',{staticClass:\"las la-6x la-t-plus-1 la-white la-angle-right\"})])]):_vm._e()],2):_vm._e()]},proxy:true}],null,true)})}),1)],1):_vm._e()],2),(_vm.showDuplicatedHeader)?_c('div',{staticClass:\"timeline-title\"},[_c('div',{staticClass:\"p-3 pl-4 align-middle\"},[(_vm.isTimeLoading)?[_c('i',{staticClass:\"las la-3x la-t-plus-3 la-circle-notch la-spin mr-1\"}),_vm._v(\" Synchronization... \")]:_vm._e(),(!_vm.isTimeLoading)?[(!_vm.expanded)?[_c('span',{staticClass:\"date__text\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.timeFromServer))+\" \")])]:[(_vm.$screen.lg || _vm.$screen.xl || _vm.$screen.xxl)?_c('div',{staticClass:\"d-none d-lg-block\",attrs:{\"order-lg\":\"1\"}},[_vm._l((_vm.eventDays),function(eventDay,index){return _c('span',{key:eventDay.toString(),staticClass:\"date__text\",class:{ selected: _vm.isSelectedDay(eventDay) },style:({ cursor: !_vm.isSliding && !_vm.isLoading && !_vm.isSelectedDay(eventDay) ? 'pointer' : null }),attrs:{\"data-v-step-schedule\":index == 0 && (_vm.$screen.lg || _vm.$screen.xl || _vm.$screen.xxl) ? 0 : null}},[_c('span',{on:{\"click\":function($event){return _vm.onDayClick(eventDay)}}},[_vm._v(_vm._s(_vm._f(\"formatUnixEpocDayPart\")(eventDay)))])])}),(this.confCmsData && this.confCmsData.paag_doc && this.confCmsData.paag_doc.filename)?_c('a',{staticClass:\"btn btn-congress\",attrs:{\"href\":this.confCmsData.paag_doc.filename,\"target\":\"_blank\"}},[_vm._v(\"Download the Programme at a glance\")]):_vm._e()],2):_vm._e(),_c('div',{staticClass:\"d-lg-none\",attrs:{\"order\":\"1\"}},[_c('span',{staticClass:\"date__control date__control--previous\",class:{ invisible: _vm.isSliding || _vm.isLoading || !_vm.allowPreviousDay },on:{\"click\":function($event){return _vm.onPreviousDayClick()}}},[_c('i',{staticClass:\"las la-07x la-t-minus-2_5 la-white la-angle-left\"})]),_c('span',{staticClass:\"date__text\",attrs:{\"data-v-step-schedule\":_vm.$screen.xs || _vm.$screen.sm || _vm.$screen.md ? 0 : null}},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.timeToDisplay))+\" \")]),_c('span',{staticClass:\"date__control date__control--next\",class:{ invisible: _vm.isSliding || _vm.isLoading || !_vm.allowNextDay },on:{\"click\":function($event){return _vm.onNextDayClick()}}},[_c('i',{staticClass:\"las la-07x la-t-minus-2_5 la-white la-angle-right\"})])])]]:_vm._e()],2),(_vm.toggable)?_c('div',{staticClass:\"timeline-toggle-action\",on:{\"click\":_vm.toggleTimeLine}},[_c('i',{staticClass:\"las la-2x la-t-plus-6 la-calendar-alt timeline-expand-action\"}),_c('i',{staticClass:\"las la-07x la-t-plus-1 la-angle-right timeline-expand-action\"}),_c('i',{staticClass:\"las la-2x la-t-plus-6 la-times timeline-collapse-action\"})]):_vm._e()]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <section class=\"timeline\" :data-expanded=\"expandedData\" :data-toggable=\"toggable\">\r\n <!-- Time line header -->\r\n <div class=\"timeline-title\">\r\n <div class=\"p-3 pl-4 align-middle\">\r\n <!-- IsTimeLoadingTemplate -->\r\n <template v-if=\"isTimeLoading\"> <i class=\"las la-3x la-t-plus-3 la-circle-notch la-spin mr-1\"></i> Synchronization... </template>\r\n\r\n <!-- MainTemplate (time) -->\r\n <template v-if=\"!isTimeLoading\">\r\n <!-- Time line header -->\r\n <template v-if=\"!expanded\">\r\n <span class=\"date__text\">\r\n {{ timeFromServer | formatUnixEpocDayPart }}\r\n </span>\r\n </template>\r\n <!-- Full calendar header -->\r\n <template v-else>\r\n <!-- desktop display -->\r\n <div v-if=\"$screen.lg || $screen.xl || $screen.xxl\" class=\"d-none d-lg-block\" order-lg=\"1\">\r\n <span\r\n :key=\"eventDay.toString()\"\r\n v-for=\"(eventDay, index) in eventDays\"\r\n class=\"date__text\"\r\n :class=\"{ selected: isSelectedDay(eventDay) }\"\r\n :style=\"{ cursor: !isSliding && !isLoading && !isSelectedDay(eventDay) ? 'pointer' : null }\"\r\n :data-v-step-schedule=\"index == 0 && ($screen.lg || $screen.xl || $screen.xxl) ? 0 : null\"\r\n >\r\n <span @click=\"onDayClick(eventDay)\">{{ eventDay | formatUnixEpocDayPart }}</span>\r\n </span>\r\n <a\r\n v-if=\"this.confCmsData && this.confCmsData.paag_doc && this.confCmsData.paag_doc.filename\"\r\n :href=\"this.confCmsData.paag_doc.filename\"\r\n target=\"_blank\"\r\n class=\"btn btn-congress\"\r\n >Download the Programme at a glance</a\r\n >\r\n </div>\r\n <!-- mobile display -->\r\n <div class=\"d-lg-none\" order=\"1\">\r\n <span class=\"date__control date__control--previous\" @click=\"onPreviousDayClick()\" :class=\"{ invisible: isSliding || isLoading || !allowPreviousDay }\">\r\n <i class=\"las la-07x la-t-minus-2_5 la-white la-angle-left\"></i>\r\n </span>\r\n <span class=\"date__text\" :data-v-step-schedule=\"$screen.xs || $screen.sm || $screen.md ? 0 : null\">\r\n {{ timeToDisplay | formatUnixEpocDayPart }}\r\n </span>\r\n <span class=\"date__control date__control--next\" @click=\"onNextDayClick()\" :class=\"{ invisible: isSliding || isLoading || !allowNextDay }\">\r\n <i class=\"las la-07x la-t-minus-2_5 la-white la-angle-right\"></i>\r\n </span>\r\n </div>\r\n </template>\r\n </template>\r\n </div>\r\n\r\n <div v-if=\"toggable\" @click=\"toggleTimeLine\" class=\"timeline-toggle-action\">\r\n <i class=\"las la-2x la-t-plus-6 la-calendar-alt timeline-expand-action\"></i>\r\n <i class=\"las la-07x la-t-plus-1 la-angle-right timeline-expand-action\"></i>\r\n <i class=\"las la-2x la-t-plus-6 la-times timeline-collapse-action\"></i>\r\n </div>\r\n </div>\r\n\r\n <!-- timeline items -->\r\n <div class=\"timeline-items pt-3\" :class=\"toggable ? ' mr-4' : 'mr-0'\">\r\n <!-- timeline digest (one row only) -->\r\n <div class=\"time-line-digest\">\r\n <!-- IsLoadingTemplate -->\r\n <template v-if=\"isLoading\">\r\n <b-row v-for=\"index in 6\" :key=\"index\" class=\"timeline-item pb-2 no-gutters\">\r\n <b-col cols=\"timeline-now pr-1\">\r\n <b-skeleton></b-skeleton>\r\n </b-col>\r\n\r\n <b-col cols=\"timeline-time\">\r\n <div class=\"timeline-time px-1\">\r\n <b-skeleton></b-skeleton>\r\n </div>\r\n <div class=\"timeline-line\"></div>\r\n </b-col>\r\n\r\n <b-col class=\"timeline-text pl-2 pr-2\">\r\n <div class=\"timeline-text__title\"><b-skeleton width=\"65%\"></b-skeleton></div>\r\n <div class=\"timeline-text__subtitle\"><b-skeleton width=\"90%\"></b-skeleton></div>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n\r\n <!-- MainTemplate (timeline digest items) -->\r\n <template v-if=\"!isLoading\">\r\n <b-row v-for=\"sessionTimeLineItem in timeLine\" :key=\"sessionTimeLineItem.Id\" class=\"timeline-item pb-2 no-gutters\">\r\n <b-col cols=\"timeline-now\">\r\n <div class=\"timeline-now\" v-if=\"showLiveBadge && sessionTimeLineItem.isLive\">live</div>\r\n </b-col>\r\n\r\n <b-col cols=\"timeline-time\">\r\n <div class=\"timeline-time\">\r\n {{ sessionTimeLineItem.startTime | formatUnixEpocTimePart }}\r\n </div>\r\n <div class=\"timeline-line\"></div>\r\n </b-col>\r\n\r\n <b-col class=\"timeline-text pl-2 pr-2\">\r\n <span class=\"session__location--onsite\" v-if=\"sessionTimeLineItem.isOnsite\">\r\n <i class=\"las la-6x la-landmark mr-1\"></i> <span>{{ locationCity }}</span>\r\n </span>\r\n <span class=\"session__location--online\" v-if=\"sessionTimeLineItem.isOnline\"> <i class=\"las la-6x la-globe mr-1\"></i> <span>Online</span> </span>\r\n <div class=\"timeline-text__title\">{{ sessionTimeLineItem.title }}</div>\r\n <div class=\"timeline-text__description\" v-if=\"sessionTimeLineItem.description\">\r\n {{ sessionTimeLineItem.description }}\r\n </div>\r\n <div class=\"timeline-text__subtitle\" v-if=\"sessionTimeLineItem.subTitle\">\r\n {{ sessionTimeLineItem.subTitle }}\r\n </div>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n </div>\r\n\r\n <!-- timeline full (all rows) -->\r\n <div class=\"time-line-full\">\r\n <!-- IsLoadingTemplate -->\r\n <template v-if=\"isLoading\">\r\n <b-carousel :interval=\"10\">\r\n <b-carousel-slide>\r\n <template #img>\r\n <b-row class=\"channels-row no-gutters w-100\">\r\n <!-- Previous -->\r\n <b-col cols=\"carousel__control\">\r\n <div class=\"carousel__control carousel__control--previous\">\r\n <i class=\"las la-6x la-t-plus-1 la-white la-angle-left\"></i>\r\n </div>\r\n </b-col>\r\n\r\n <b-col v-for=\"index in 3\" :key=\"index\">\r\n <b-skeleton width=\"50%\" height=\"30px\" class=\"mx-auto\"></b-skeleton>\r\n </b-col>\r\n\r\n <!-- Next -->\r\n <b-col cols=\"carousel__control\">\r\n <div class=\"carousel__control carousel__control--next\">\r\n <i class=\"las la-6x la-t-plus-1 la-white la-angle-right\"></i>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n\r\n <b-row class=\"sessions-row\">\r\n <b-col cols=\"carousel__control\"></b-col>\r\n\r\n <b-col v-for=\"index in 3\" :key=\"index\" class=\"channels-divider\">\r\n <div class=\"pb-2 pb-md-4 px-1 px-md-2\" v-for=\"itemIndex in 4\" :key=\"itemIndex\">\r\n <b-card no-body class=\"h-100 p-2\" bg-variant=\"light\">\r\n <div>\r\n <b-skeleton width=\"10%\" class=\"d-inline-block mr-1\"></b-skeleton>\r\n <b-skeleton width=\"5%\" class=\"d-inline-block\"></b-skeleton>\r\n </div>\r\n <div class=\"session__title\">\r\n <b-skeleton width=\"50%\"></b-skeleton>\r\n </div>\r\n </b-card>\r\n </div>\r\n </b-col>\r\n\r\n <b-col cols=\"carousel__control\"></b-col>\r\n </b-row>\r\n </template>\r\n </b-carousel-slide>\r\n </b-carousel>\r\n </template>\r\n\r\n <!-- timeline full items -->\r\n <div v-if=\"!isLoading && slidesCount > 0\">\r\n <b-carousel ref=\"timelineCarousel\" :interval=\"0\" @sliding-start=\"onSlideStart\" @sliding-end=\"onSlideEnd\">\r\n <b-carousel-slide v-for=\"slideNumber in slidesCount\" :key=\"slideNumber\">\r\n <template #img>\r\n <b-row class=\"channels-row no-gutters w-100\">\r\n <!-- Previous -->\r\n <b-col v-if=\"needChannelCarousel\" cols=\"carousel__control\">\r\n <div class=\"carousel__control carousel__control--previous\" @click=\"onCarouselPrevClick()\" :class=\"{ invisible: isSliding }\">\r\n <i class=\"las la-6x la-t-plus-1 la-white la-angle-left\"></i>\r\n </div>\r\n </b-col>\r\n\r\n <b-col v-for=\"channel in getChannelsBySlide(slideNumber)\" :key=\"channel.id\">\r\n <span class=\"channels-row__text\" v-html=\"$options.filters.formatChannelName(channel.name)\"></span>\r\n </b-col>\r\n\r\n <!-- Next -->\r\n <b-col v-if=\"needChannelCarousel\" cols=\"carousel__control\">\r\n <div class=\"carousel__control carousel__control--next\" @click=\"onCarouselNextClick()\" :class=\"{ invisible: isSliding }\" data-v-step-schedule=\"1\">\r\n <i class=\"las la-6x la-t-plus-1 la-white la-angle-right\"></i>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <div class=\"sessions-row-container\">\r\n <b-row class=\"sessions-row\" :style=\"`padding-top:10px;min-height:${20 + dayDuration / (1000 * stepSizeFactor)}px`\" align-h=\"center\">\r\n <b-col cols=\"carousel__timeline\">\r\n <fragment v-for=\"index in Math.ceil(dayDuration / (1000 * 60 * 30))\" :key=\"index\">\r\n <div :style=\"`padding-left: 25px;min-height:${(1000 * 60 * 30) / (1000 * stepSizeFactor)}px;`\" class=\"timeline-time\">\r\n <div v-if=\"showSharpTimeLine(index)\" style=\"z-index: 2; position: absolute; width: 100%; border-top: 1px solid #e2e2e2\"></div>\r\n <span style=\"z-index: 2; margin: 5px 0px\">{{ (startDayTime + (index - 1) * 1000 * 60 * 30) | formatUnixEpocTimePart }}</span>\r\n <div class=\"channel-timeline-line\"></div>\r\n </div>\r\n </fragment>\r\n </b-col>\r\n\r\n <b-col v-for=\"channel in getChannelsBySlide(slideNumber)\" :key=\"channel.id\" class=\"channels-divider\">\r\n <div\r\n class=\"px-2\"\r\n :style=\"\r\n `overflow:hidden;position:absolute;width:100%;height:${(channel.items[0].startTime - startDayTime) / (1000 * stepSizeFactor)}px;top:0px;`\r\n \"\r\n >\r\n <div class=\"stripe\" style=\"height: 100%\"></div>\r\n </div>\r\n\r\n <div\r\n v-for=\"item in channel.items\"\r\n :key=\"item.id\"\r\n class=\"px-1 px-md-2 session-item\"\r\n :style=\"\r\n `z-index: 3;overflow:hidden;position:absolute;width:100%;height:${(item.endTime - item.startTime) /\r\n (1000 * stepSizeFactor)}px;min-height:${(item.endTime - item.startTime) / (1000 * stepSizeFactor)}px;top:${(item.startTime -\r\n startDayTime) /\r\n (1000 * stepSizeFactor)}px;`\r\n \"\r\n @click=\"onSessionItemClick(item)\"\r\n >\r\n <b-card no-body :class=\"`h-100 p-1 session-item-card`\">\r\n <span class=\"session__favorite__button\">\r\n <FavoriteButton :title=\"item.title\" :digitalSessionId=\"item.id\" :scientificSessionId=\"item.scientificSessionId\" width=\"20\" height=\"20\" />\r\n </span>\r\n <div>\r\n <span class=\"session__time\">\r\n <!--\r\n {{ item.startTime | formatUnixEpocDayPart }} - {{ item.startTime | formatUnixEpocTimePart }}\r\n -->\r\n {{ item.startTime | formatUnixEpocTimePart }}\r\n </span>\r\n <span class=\"session__duration\">({{ item.duration }}mn)</span>\r\n <span class=\"session__now\" v-if=\"showLiveBadge && item.isLive\"> live </span>\r\n <span class=\"session__location--onsite ml-2\" v-if=\"item.isOnsite\">\r\n <i class=\"las la-6x la-landmark mr-1\"></i> <span>{{ locationCity }}</span>\r\n </span>\r\n <span class=\"session__location--online\" v-if=\"item.isOnline\"> <i class=\"las la-6x la-globe mr-1\"></i> <span>Online</span> </span>\r\n </div>\r\n <div v-if=\"!isSponsoredSession(item)\">\r\n <div class=\"session__title\">\r\n {{ item.title }}\r\n </div>\r\n <div class=\"session__sub_title\">\r\n {{ item.subTitle }}\r\n </div>\r\n </div>\r\n <div v-else>\r\n <div class=\"sponsored-session\">\r\n <div class=\"sponsored-front\">\r\n <div class=\"session__title\">Industry Session</div>\r\n </div>\r\n <div class=\"sponsored-back\">\r\n <div class=\"session__title\">\r\n {{ item.title }}\r\n </div>\r\n <div class=\"session__sub_title\">\r\n {{ item.subTitle }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <SessionButton :session=\"item\" />\r\n <div class=\"session__progress pt-2\" v-if=\"item.isLive\">\r\n <b-progress :value=\"item.progress\" :max=\"item.duration\" height=\"0.5em\"></b-progress>\r\n </div>\r\n </div>\r\n </b-card>\r\n </div>\r\n\r\n <div\r\n class=\"px-2\"\r\n :style=\"\r\n `overflow:hidden;position:absolute;width:100%;height:${(endDayTime - channel.items[channel.items.length - 1].endTime) /\r\n (1000 * stepSizeFactor)}px;top:${(channel.items[channel.items.length - 1].endTime - startDayTime) / (1000 * stepSizeFactor)}px;`\r\n \"\r\n >\r\n <div class=\"stripe\" style=\"height: 100%\"></div>\r\n </div>\r\n </b-col>\r\n\r\n <b-col cols=\"carousel__control\"></b-col>\r\n </b-row>\r\n </div>\r\n <b-row v-if=\"showDuplicatedHeader\" class=\"channels-row no-gutters w-100\">\r\n <!-- Previous -->\r\n <b-col v-if=\"needChannelCarousel\" cols=\"carousel__control\">\r\n <div class=\"carousel__control carousel__control--previous\" @click=\"onCarouselPrevClick()\" :class=\"{ invisible: isSliding }\">\r\n <i class=\"las la-6x la-t-plus-1 la-white la-angle-left\"></i>\r\n </div>\r\n </b-col>\r\n\r\n <b-col v-for=\"channel in getChannelsBySlide(slideNumber)\" :key=\"channel.id\">\r\n <span class=\"channels-row__text\" v-html=\"$options.filters.formatChannelName(channel.name)\"></span>\r\n </b-col>\r\n\r\n <!-- Next -->\r\n <b-col v-if=\"needChannelCarousel\" cols=\"carousel__control\">\r\n <div class=\"carousel__control carousel__control--next\" @click=\"onCarouselNextClick()\" :class=\"{ invisible: isSliding }\" data-v-step-schedule=\"1\">\r\n <i class=\"las la-6x la-t-plus-1 la-white la-angle-right\"></i>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n </b-carousel-slide>\r\n </b-carousel>\r\n </div>\r\n </div>\r\n <div v-if=\"showDuplicatedHeader\" class=\"timeline-title\">\r\n <div class=\"p-3 pl-4 align-middle\">\r\n <!-- IsTimeLoadingTemplate -->\r\n <template v-if=\"isTimeLoading\"> <i class=\"las la-3x la-t-plus-3 la-circle-notch la-spin mr-1\"></i> Synchronization... </template>\r\n\r\n <!-- MainTemplate (time) -->\r\n <template v-if=\"!isTimeLoading\">\r\n <!-- Time line header -->\r\n <template v-if=\"!expanded\">\r\n <span class=\"date__text\">\r\n {{ timeFromServer | formatUnixEpocDayPart }}\r\n </span>\r\n </template>\r\n <!-- Full calendar header -->\r\n <template v-else>\r\n <!-- desktop display -->\r\n <div v-if=\"$screen.lg || $screen.xl || $screen.xxl\" class=\"d-none d-lg-block\" order-lg=\"1\">\r\n <span\r\n :key=\"eventDay.toString()\"\r\n v-for=\"(eventDay, index) in eventDays\"\r\n class=\"date__text\"\r\n :class=\"{ selected: isSelectedDay(eventDay) }\"\r\n :style=\"{ cursor: !isSliding && !isLoading && !isSelectedDay(eventDay) ? 'pointer' : null }\"\r\n :data-v-step-schedule=\"index == 0 && ($screen.lg || $screen.xl || $screen.xxl) ? 0 : null\"\r\n >\r\n <span @click=\"onDayClick(eventDay)\">{{ eventDay | formatUnixEpocDayPart }}</span>\r\n </span>\r\n <a\r\n v-if=\"this.confCmsData && this.confCmsData.paag_doc && this.confCmsData.paag_doc.filename\"\r\n :href=\"this.confCmsData.paag_doc.filename\"\r\n target=\"_blank\"\r\n class=\"btn btn-congress\"\r\n >Download the Programme at a glance</a\r\n >\r\n </div>\r\n <!-- mobile display -->\r\n <div class=\"d-lg-none\" order=\"1\">\r\n <span class=\"date__control date__control--previous\" @click=\"onPreviousDayClick()\" :class=\"{ invisible: isSliding || isLoading || !allowPreviousDay }\">\r\n <i class=\"las la-07x la-t-minus-2_5 la-white la-angle-left\"></i>\r\n </span>\r\n <span class=\"date__text\" :data-v-step-schedule=\"$screen.xs || $screen.sm || $screen.md ? 0 : null\">\r\n {{ timeToDisplay | formatUnixEpocDayPart }}\r\n </span>\r\n <span class=\"date__control date__control--next\" @click=\"onNextDayClick()\" :class=\"{ invisible: isSliding || isLoading || !allowNextDay }\">\r\n <i class=\"las la-07x la-t-minus-2_5 la-white la-angle-right\"></i>\r\n </span>\r\n </div>\r\n </template>\r\n </template>\r\n </div>\r\n\r\n <div v-if=\"toggable\" @click=\"toggleTimeLine\" class=\"timeline-toggle-action\">\r\n <i class=\"las la-2x la-t-plus-6 la-calendar-alt timeline-expand-action\"></i>\r\n <i class=\"las la-07x la-t-plus-1 la-angle-right timeline-expand-action\"></i>\r\n <i class=\"las la-2x la-t-plus-6 la-times timeline-collapse-action\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Time line footer -->\r\n\r\n </section>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import SessionButton from 'src/components/Buttons/SessionButton';\r\n import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\n import { constants } from 'src/constants';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n\r\n export default {\r\n name: 'Timeline',\r\n mixins: [hybridEventMixin],\r\n components: {\r\n SessionButton,\r\n FavoriteButton\r\n },\r\n props: {\r\n // eventId: Number,\r\n channelId: Number,\r\n /*datetime: Date,*/\r\n entity: {\r\n type: String,\r\n required: true,\r\n validator: function(value) {\r\n // The value must match one of these strings\r\n return value !== null && ['Channel', 'Session'].indexOf(value) !== -1;\r\n }\r\n },\r\n expanded: Boolean,\r\n toggable: {\r\n default: true,\r\n type: Boolean\r\n }\r\n },\r\n data() {\r\n return {\r\n showDuplicatedHeader:false,\r\n isTimeLoading: true,\r\n isLoading: true,\r\n timeLine: [],\r\n timeLineFull: [],\r\n isTimelineFullFirstOpen: true,\r\n timeFromServer: null,\r\n timeToDisplay: null,\r\n fetchTimeLineJob: null,\r\n isSliding: false,\r\n allowNextDay: false,\r\n allowPreviousDay: false,\r\n dayDuration: 0,\r\n startDayTime: 0,\r\n endDayTime: 0,\r\n eventDays: [],\r\n hover: {}\r\n };\r\n },\r\n computed: {\r\n channelsPerSlide() {\r\n let responsivechannelsPerSlide; /* constants.CHANNELS_COUNT_BY_SLIDE_POC; */\r\n if (this.$screen.xxl) responsivechannelsPerSlide = 6;\r\n else if (this.$screen.xl) responsivechannelsPerSlide = 5;\r\n else if (this.$screen.lg) responsivechannelsPerSlide = 4;\r\n else if (this.$screen.md) responsivechannelsPerSlide = 3;\r\n else if (this.$screen.sm) responsivechannelsPerSlide = 2;\r\n else if (this.$screen.xs) responsivechannelsPerSlide = 1;\r\n return responsivechannelsPerSlide;\r\n },\r\n stepSizeFactor() {\r\n return constants.STEP_SIZE_FACTOR;\r\n },\r\n slidesCount() {\r\n if (!this.timeLineFull || this.timeLineFull.length == 0) return 0;\r\n\r\n return Math.ceil(this.timeLineFull.length / this.channelsPerSlide /* constants.CHANNELS_COUNT_BY_SLIDE_POC */);\r\n },\r\n // Timeline status data attribute\r\n expandedData() {\r\n return this.expanded ? 'expanded' : 'collapsed';\r\n },\r\n needChannelCarousel() {\r\n return this.timeLineFull.length > this.channelsPerSlide /* constants.CHANNELS_COUNT_BY_SLIDE_POC */;\r\n },\r\n poolingTimelineDigestInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_TIMELINE_DIGEST_INTERVAL);\r\n },\r\n ...mapGetters(['isPoolingEnabled', 'eventStartDate', 'eventEndDate']),\r\n ...mapState({\r\n eventRoute: state => state.app.eventRoute,\r\n eventStartDate: state => state.app.eventStartDate,\r\n eventEndDate: state => state.app.eventEndDate,\r\n confCmsData: state => state.app.confCmsData\r\n })\r\n },\r\n watch: {\r\n isPoolingEnabled(enabled) {\r\n if (enabled) {\r\n // Fetching timeline to display...\r\n this.fetchtime();\r\n // Fetching timeline digest...\r\n this.fetchtimeLine();\r\n\r\n // Fetching timeline full...\r\n if (this.expanded) this.fetchtimeLineFull();\r\n }\r\n },\r\n /*\r\n $route() {\r\n //if(this.expanded && this.toggable) this.toggleTimeLine();\r\n },\r\n */\r\n expanded(isExpanded) {\r\n //this.$router.push({ query: { qz: 1 } });\r\n //this.$router.push({ query: { /*isTimelineExpanded: this.isExpanded,*/ day: this.timeToDisplay } });\r\n if (isExpanded) {\r\n if (this.isTimelineFullFirstOpen) {\r\n this.isTimelineFullFirstOpen = false;\r\n this.isLoading = true;\r\n }\r\n this.fetchtimeLineFull();\r\n }\r\n }\r\n },\r\n async mounted() {\r\n //Retrieve server time\r\n if(this.$route.path.includes(constants.ROUTE_SCHEDULE)){\r\n this.showDuplicatedHeader = true\r\n }else{\r\n this.showDuplicatedHeader = false\r\n }\r\n await this.fetchtime();\r\n const qDay = this.$route.query.day;\r\n if(DateHelper.isValidDate(qDay)) this.timeToDisplay = Number(qDay)\r\n if (!this.timeToDisplay) this.timeToDisplay = this.timeFromServer;\r\n\r\n this.refreshDaysList();\r\n this.refreshDaySelectors();\r\n\r\n // Fetching timeline digest...\r\n this.fetchtimeLine();\r\n\r\n if (this.expanded) this.fetchtimeLineFull(); // Fetching timeline full...\r\n\r\n // Polling sessions time line...\r\n this.fetchTimeLineJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n // Fetching timeline to display...\r\n this.fetchtime();\r\n // Fetching timeline content...\r\n this.fetchtimeLine();\r\n // Fetching timeline full...\r\n if (this.expanded) this.fetchtimeLineFull();\r\n }\r\n }, this.poolingTimelineDigestInterval);\r\n },\r\n beforeDestroy() {\r\n clearInterval(this.fetchTimeLineJob);\r\n },\r\n methods: {\r\n isSelectedDay(day) {\r\n //console.log('isSelectedDay ' + day + ' ' + this.timeToDisplay + ' ' + DateHelper.browserDateTime(this.timeToDisplay))\r\n return (\r\n this.$options.filters.formatUnixEpocDayPart(day) === this.$options.filters.formatUnixEpocDayPart(this.timeToDisplay)\r\n //day.getMonth() + day.getDate() == DateHelper.browserDateTime(this.timeToDisplay).getMonth() + DateHelper.browserDateTime(this.timeToDisplay).getDate()\r\n );\r\n },\r\n showSharpTimeLine(index) {\r\n return (DateHelper.isSharpHour(this.startDayTime) && index % 2 == 1) || (!DateHelper.isSharpHour(this.startDayTime) && index % 2 == 0);\r\n },\r\n isSponsoredSession(session) {\r\n //console.log(`session?.isIndustry ${session?.isIndustry}`)\r\n //return false;\r\n //return session && session?.subTitle && session?.subTitle?.toLowerCase()?.includes('sponsored by');\r\n //return session && session?.subTitle && (session?.subTitle?.toLowerCase()?.includes('sponsored') || session?.subTitle?.toLowerCase()?.includes('supported'));\r\n return session && session?.isIndustry;\r\n },\r\n getSessionBgCssClass(session) {\r\n let bgCssClass = 'default-session';\r\n if (session && session?.isIndustry) bgCssClass = 'sponsored-session';\r\n\r\n return bgCssClass;\r\n },\r\n getUniqueColor(n) {\r\n //console.log('getUniqueColor '+n);\r\n const rgb = [0, 0, 0];\r\n\r\n for (let i = 0; i < 24; i++) {\r\n rgb[i % 3] <<= 1;\r\n rgb[i % 3] |= n & 0x01;\r\n n >>= 1;\r\n }\r\n\r\n return '#' + rgb.reduce((a, c) => (c > 0x0f ? c.toString(16) : '0' + c.toString(16)) + a, '');\r\n },\r\n fetchtimeLine() {\r\n MediaApiService.getTimeLineDigest(this.eventId, this.entity, this.channelId, DateHelper.browserDateTime(this.timeFromServer)).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) this.timeLine = data;\r\n });\r\n },\r\n async fetchtime() {\r\n const { data } = await MediaApiService.getTimelineTimeToDisplay(this.eventId);\r\n this.timeFromServer = data;\r\n this.isTimeLoading = false;\r\n //console.log('[Timeline] Time to display (local): ' + DateHelper.browserDateTime(this.timeFromServer));\r\n //console.log('[Timeline] Time to display: (UTC)' + DateHelper.browserDateTime(this.timeFromServer).toUTCString());\r\n },\r\n fetchtimeLineFull() {\r\n MediaApiService.getTimeLineFull(this.eventId, DateHelper.browserDateTime(this.timeToDisplay)).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n this.timeLineFull = data;\r\n //console.log('items '+this.timeLineFull?.items);\r\n //let sessions = [].concat.apply([], this.timeLineFull?.items);\r\n let firstDaySessions = this.timeLineFull.reduce((flat, next) => flat.concat(next.items[0]), []);\r\n let lastDaysessions = this.timeLineFull.reduce((flat, next) => flat.concat(next.items[next.items.length - 1]), []);\r\n //console.log('sessions '+JSON.stringify(sessions));\r\n this.startDayTime = firstDaySessions.reduce((a, b) => (a.startTime < b.startTime ? a : b)).startTime;\r\n this.endDayTime = lastDaysessions.reduce((a, b) => (a.endTime > b.endTime ? a : b)).endTime;\r\n\r\n this.startDayTime = DateHelper.ceilToHalfHour(this.startDayTime);\r\n this.endDayTime = DateHelper.floorToHalfHour(this.endDayTime);\r\n\r\n //console.log('startDayTime ' + DateHelper.browserDateTime(this.startDayTime));\r\n //console.log('endDayTime ' + DateHelper.browserDateTime(this.endDayTime));\r\n this.dayDuration = this.endDayTime - this.startDayTime;\r\n //console.log('dayDuration ' + this.dayDuration / (1000 * 60) + ' min');\r\n //console.log('dayDuration ' + this.dayDuration / (1000 * 60 * 60) + ' h');\r\n }\r\n });\r\n },\r\n // Toggle timeLine status flag & send timeline-toggle event\r\n toggleTimeLine: function() {\r\n this.showDuplicatedHeader = !this.showDuplicatedHeader;\r\n this.$emit('timeline-toggle');\r\n },\r\n // Carousel\r\n getChannelsBySlide(slideNumber) {\r\n const slideIndex = slideNumber - 1;\r\n\r\n const sliceFrom = slideIndex * this.channelsPerSlide; /*constants.CHANNELS_COUNT_BY_SLIDE_POC*/\r\n let sliceTo = sliceFrom + this.channelsPerSlide; /*constants.CHANNELS_COUNT_BY_SLIDE_POC*/\r\n if (sliceTo > this.timeLineFull.length) sliceTo = this.timeLineFull.length;\r\n\r\n return this.timeLineFull.slice(sliceFrom, sliceTo);\r\n },\r\n onCarouselPrevClick() {\r\n this.$refs.timelineCarousel.prev();\r\n },\r\n onCarouselNextClick() {\r\n this.$refs.timelineCarousel.next();\r\n },\r\n // Date selector\r\n moveToDay(step) {\r\n this.isLoading = true;\r\n this.timeToDisplay = DateHelper.addDaysToTime(this.timeToDisplay, step);\r\n if(this.$route.path.includes(constants.ROUTE_SCHEDULE) && this.$route.query.day != this.timeToDisplay) \r\n {\r\n this.$router.push({ query: { day: this.timeToDisplay } });\r\n }\r\n this.refreshDaySelectors();\r\n this.fetchtimeLineFull();\r\n },\r\n refreshDaySelectors() {\r\n const compareWithFirstDay = DateHelper.compareTimeDatePart(this.timeToDisplay, this.eventStartDate);\r\n const compareWithLastDay = DateHelper.compareTimeDatePart(this.timeToDisplay, this.eventEndDate);\r\n this.allowPreviousDay = compareWithFirstDay > 0;\r\n this.allowNextDay = compareWithLastDay < 0;\r\n },\r\n refreshDaysList() {\r\n const startDate = DateHelper.browserDateTime(this.eventStartDate);\r\n const endDate = DateHelper.browserDateTime(this.eventEndDate);\r\n this.eventDays = DateHelper.getDates(startDate, endDate);\r\n /*\r\n //console.log('[C] eventStartDate '+this.$options.filters.formatUnixEpocDayPart(this.eventStartDate))\r\n //console.log('[C] startDate '+this.$options.filters.formatUnixEpocDayPart(startDate))\r\n //console.log('[C] eventDays[FIRST] '+this.$options.filters.formatUnixEpocDayPart(this.eventDays[0]))\r\n //console.log('[C] eventEndDate '+this.$options.filters.formatUnixEpocDayPart(this.eventEndDate))\r\n //console.log('[C] endDate '+this.$options.filters.formatUnixEpocDayPart(endDate))\r\n //console.log('[C] eventDays[LAST] '+this.$options.filters.formatUnixEpocDayPart(this.eventDays[this.eventDays.length - 1]))\r\n */\r\n },\r\n moveToDayByDay(day) {\r\n this.isLoading = true;\r\n this.timeToDisplay = day.getTime();\r\n if(this.$route.path.includes(constants.ROUTE_SCHEDULE) && this.$route.query.day != this.timeToDisplay) \r\n {\r\n this.$router.push({ query: { day: this.timeToDisplay } });\r\n }\r\n this.fetchtimeLineFull();\r\n },\r\n onSlideStart() {\r\n this.isSliding = true;\r\n },\r\n onSlideEnd() {\r\n this.isSliding = false;\r\n },\r\n onPreviousDayClick() {\r\n this.moveToDay(-1);\r\n },\r\n onNextDayClick() {\r\n this.moveToDay(1);\r\n },\r\n onDayClick(date) {\r\n if (!this.isSliding && !this.isLoading && !this.isSelectedDay(date)) this.moveToDayByDay(date);\r\n },\r\n onSessionItemClick(item) {\r\n /*\r\n if (this.toggable && this.expanded) {\r\n this.$emit('timeline-toggle');\r\n }\r\n */\r\n //console.log('🚀 ~ file: Schedule.vue ~ line 584 ~ onSessionItemClick ~ eventRoute', this.eventRoute);\r\n //console.log('🚀 ~ file: Schedule.vue ~ line 585 ~ onSessionItemClick ~ item.furl', item.furl);\r\n\r\n this.$router.push({ path: `/${this.eventRoute}`, name: 'Session details', params: { sessionFurl: item.furl } });\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .timeline {\r\n font-size: 0.9em;\r\n height: 100%;\r\n\r\n /* timeline toggable mode */\r\n &[data-toggable] {\r\n .timeline-title {\r\n /*cursor: pointer;*/ /*full view disabled*/\r\n border-radius: 0px 0px 5px 0px;\r\n border-width: 0px 1px 1px 0px;\r\n border-style: solid;\r\n border-color: $grey-light;\r\n background-color: $secondary;\r\n\r\n /* timeline title date */\r\n div:nth-child(1) {\r\n width: calc(100% - 60px);\r\n }\r\n\r\n /* timeline title button (calendar or close) */\r\n div:nth-child(2) {\r\n display: inline-block;\r\n text-align: center;\r\n margin: auto;\r\n font-size: 2em;\r\n width: 60px;\r\n color: var(--congress);\r\n }\r\n }\r\n\r\n .timeline-toggle-action {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n /* timeline not toggable mode */\r\n &:not([data-toggable]) {\r\n .timeline-title {\r\n border-radius: none;\r\n /* timeline title date */\r\n div:nth-child(1) {\r\n width: 100%;\r\n }\r\n /* timeline title button (calendar or close) */\r\n div:nth-child(2) {\r\n display: hidden;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* timeline title */\r\n .timeline-title {\r\n /* timeline title date */\r\n div:nth-child(1) {\r\n color: $secondary;\r\n background-color: var(--congress);\r\n text-transform: capitalize;\r\n font-size: 1.5em;\r\n display: inline-block;\r\n }\r\n }\r\n\r\n /* timeline vertical line */\r\n .timeline-line {\r\n position: absolute;\r\n width: 1px;\r\n height: 80%;\r\n left: 24px;\r\n background: var(--congress);\r\n }\r\n\r\n /* timeline vertical line */\r\n .channel-timeline-line {\r\n width: 1px;\r\n height: 80%;\r\n margin-left: 19px;\r\n background: var(--congress);\r\n }\r\n\r\n /* timeline items content */\r\n .timeline-items {\r\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2);\r\n padding-left: 10px;\r\n height: 100%;\r\n min-height: 110vh;\r\n background-color: $secondary;\r\n }\r\n\r\n /* timeline last item stop vertical line and disable bottom separator */\r\n .timeline-items .timeline-item {\r\n &:last-child {\r\n .timeline-text {\r\n border-bottom: none;\r\n }\r\n .timeline-line {\r\n height: 100%;\r\n background: linear-gradient(to bottom, var(--congress) 0%, $secondary 100%);\r\n }\r\n }\r\n }\r\n\r\n /* timeline item live now badge */\r\n .col-timeline-now {\r\n flex: 0 0 42px;\r\n }\r\n\r\n .timeline-now {\r\n position: relative;\r\n top: 3px;\r\n left: -4px;\r\n color: $secondary;\r\n background-color: var(--congress);\r\n font-size: 0.6em;\r\n text-transform: uppercase;\r\n text-align: center;\r\n padding: 2px 8px;\r\n border-radius: 8px;\r\n }\r\n\r\n /* timeline item bottom separator */\r\n .timeline-text {\r\n border-bottom: 1px solid $grey-lighter;\r\n }\r\n\r\n /* timeline item time */\r\n .col-timeline-time {\r\n position: relative;\r\n flex: 0 0 50px;\r\n }\r\n\r\n .timeline-time {\r\n text-align: center;\r\n margin: auto;\r\n }\r\n\r\n /* timeline item title */\r\n .timeline-text__title,\r\n .session__title {\r\n padding-right: 5px;\r\n overflow-wrap: anywhere;\r\n font-size: 1.2em;\r\n }\r\n\r\n /* timeline item subtitle */\r\n .timeline-text__subtitle {\r\n padding: 5px 0px;\r\n font-size: 1em;\r\n text-transform: uppercase;\r\n color: lighten($grey, 10%);\r\n }\r\n\r\n /* timeline item description */\r\n .timeline-text__description,\r\n .session__sub_title {\r\n padding: 5px 0px;\r\n font-size: 1em;\r\n }\r\n\r\n /* full view background color force for overlay */\r\n .time-line-full {\r\n background-color: $secondary;\r\n }\r\n\r\n /* timeline collapsed */\r\n .timeline[data-expanded='collapsed'] {\r\n /* button calendar icon visible */\r\n .timeline-expand-action {\r\n display: inline;\r\n }\r\n /* button close icon hidden */\r\n .timeline-collapse-action {\r\n display: none;\r\n }\r\n /* full view hidden on both desktop and mobile */\r\n .time-line-full {\r\n display: none;\r\n }\r\n /* digest view visible on both desktop and mobile */\r\n .time-line-digest {\r\n display: block;\r\n }\r\n .date__text {\r\n opacity: 1 !important;\r\n }\r\n }\r\n\r\n /* timeline expanded */\r\n .timeline[data-expanded='expanded'] {\r\n .timeline-items {\r\n padding-top: 0 !important;\r\n padding-left: 0 !important;\r\n }\r\n\r\n /* desktop timeline expanded*/\r\n @include media-breakpoint-up(sm) {\r\n /* full view visible */\r\n .time-line-full {\r\n display: block; /*full view disabled*/\r\n }\r\n /* digest view hidden */\r\n .time-line-digest {\r\n display: none; /*full view disabled*/\r\n }\r\n /* button calendar icon hidden */\r\n .timeline-expand-action {\r\n display: none; /*full view disabled*/\r\n }\r\n /* button close icon visible */\r\n .la-times {\r\n display: block; /*full view disabled*/\r\n }\r\n }\r\n\r\n /* mobile timeline expanded*/\r\n @include media-breakpoint-down(sm) {\r\n /* timeline toggable mode */\r\n &[data-toggable] {\r\n /* full view hidden */\r\n .time-line-full {\r\n display: none;\r\n }\r\n /* digest view visible */\r\n .time-line-digest {\r\n padding: 0.6rem 0 0rem 0.6rem;\r\n display: block;\r\n }\r\n /* button calendar icon hidden */\r\n .timeline-expand-action {\r\n display: none;\r\n }\r\n /* button close icon visible */\r\n .timeline-collapse-action {\r\n display: block;\r\n cursor: pointer;\r\n }\r\n\r\n .date__control {\r\n display: none;\r\n }\r\n }\r\n\r\n /* timeline not toggable mode */\r\n &:not([data-toggable]) {\r\n /* full view visible */\r\n .time-line-full {\r\n display: block; /*full view disabled*/\r\n }\r\n /* digest view hidden */\r\n .time-line-digest {\r\n display: none; /*full view disabled*/\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* full view design */\r\n /*full view disabled*/\r\n\r\n .channels-row {\r\n text-align: center;\r\n box-shadow: 4.5px 2.3px 8.7px 0.3px rgba(0, 0, 0, 0.1);\r\n padding: 0.5rem 0;\r\n align-items: center;\r\n\r\n div:nth-child(2) .channels-row__text {\r\n padding-right: 23px;\r\n }\r\n\r\n div:nth-last-child(2) .channels-row__text {\r\n padding-left: 23px;\r\n }\r\n }\r\n\r\n .channels-row__text {\r\n text-transform: uppercase;\r\n font-size: 0.96rem;\r\n display: block;\r\n }\r\n\r\n .sessions-row {\r\n font-size: 0.8rem;\r\n /*padding: 1.2rem 0;*/\r\n /*min-height: 75vh;*/\r\n /*\r\n min-height:1200px;\r\n height:1200px;\r\n max-height:1200px;\r\n */\r\n .channels-divider {\r\n border-right: 1px solid $grey-lighter;\r\n max-width: 970px;\r\n padding: 0;\r\n /*flex-basis: auto;*/ /*ie fix center content */\r\n }\r\n\r\n div:nth-last-child(2) {\r\n border: none;\r\n }\r\n }\r\n\r\n /* Test for load more scroll */\r\n /*\r\n .sessions-row-container {\r\n\r\n max-height: 90vh;\r\n overflow: scroll;\r\n overflow: -moz-scrollbars-none;\r\n -ms-overflow-style: none;\r\n\r\n &::-webkit-scrollbar {\r\n width: 0 !important;\r\n }\r\n }\r\n */\r\n\r\n .session-item-card {\r\n cursor: pointer;\r\n background-color: var(--congress-lighter) !important;\r\n &:hover:not(a),\r\n :focus:not(a) {\r\n background-color: var(--congress-light) !important;\r\n }\r\n ::v-deep .card-link {\r\n &:focus,\r\n &:hover {\r\n color: var(--congress-lighter) !important;\r\n }\r\n }\r\n }\r\n\r\n /* short sessions expand on hover */\r\n .session-item:hover,\r\n .session-item:focus {\r\n z-index: 4 !important;\r\n display: grid;\r\n height: auto !important;\r\n }\r\n\r\n /* sponsored sessions reveal on hover */\r\n .session-item .sponsored-session {\r\n background-color: transparent;\r\n }\r\n\r\n .session-item .sponsored-session .sponsored-back {\r\n /*position: absolute;*/\r\n display: none;\r\n opacity: 0;\r\n /* animation */\r\n /*\r\n transform: scale(0);\r\n transition: all 1s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item:hover .sponsored-session .sponsored-back,\r\n .session-item:focus .sponsored-session .sponsored-back {\r\n display: block;\r\n opacity: 1;\r\n /* animation */\r\n /*\r\n transform: scale(1);\r\n transition: all 0.25s ease-in-out;\r\n */\r\n }\r\n\r\n .session-item .sponsored-session .sponsored-front {\r\n /*position: absolute;*/\r\n display: block;\r\n opacity: 1;\r\n /* animation */\r\n /*\r\n transform: scale(1);\r\n transition: all 1s ease-in-out;\r\n */\r\n }\r\n .session-item:hover .sponsored-session .sponsored-front,\r\n .session-item:focus .sponsored-session .sponsored-front {\r\n display: none;\r\n opacity: 0;\r\n /* animation */\r\n /*\r\n transform: scale(0);\r\n transition: all 0.25s ease-in-out;\r\n */\r\n }\r\n\r\n .session__favorite__button {\r\n width: 20px;\r\n height: 20px;\r\n position: absolute;\r\n right: 5px;\r\n top: 5px;\r\n }\r\n\r\n .session__time {\r\n font-size: 1.2em;\r\n }\r\n\r\n .session__duration {\r\n font-size: 1em;\r\n color: $grey;\r\n }\r\n\r\n .session__now {\r\n flex: 0 0 42px;\r\n /*float: right;*/\r\n color: $secondary;\r\n background-color: var(--congress);\r\n font-size: 0.6em;\r\n text-transform: uppercase;\r\n text-align: center;\r\n padding: 2px 8px;\r\n border-radius: 8px;\r\n /*margin-right: 25px;*/\r\n position: absolute;\r\n right: 30px;\r\n top: 9px;\r\n }\r\n\r\n [class^='session__location--'] {\r\n font-size: 1em;\r\n }\r\n\r\n [class^='session__location--'] span {\r\n }\r\n\r\n /* Carousel */\r\n .carousel {\r\n width: 100%;\r\n }\r\n\r\n .col-carousel__timeline {\r\n flex: 0 0 50px;\r\n text-align: right;\r\n }\r\n\r\n .col-carousel__control {\r\n flex: 0 0 36px;\r\n\r\n & .carousel__control--previous {\r\n margin-left: 12px;\r\n }\r\n\r\n & .carousel__control--next {\r\n margin-right: 12px;\r\n }\r\n }\r\n\r\n .carousel__control {\r\n background-color: $grey;\r\n padding: 6px 9px;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n }\r\n\r\n .date__control {\r\n background-color: var(--congress-dark);\r\n padding: 0px 4px;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n position: relative;\r\n top: 2px;\r\n }\r\n\r\n .date__text {\r\n padding: 0px 10px;\r\n }\r\n\r\n /* Skeletons */\r\n .b-skeleton {\r\n background-color: rgb(224, 224, 224) !important;\r\n }\r\n\r\n .stripe {\r\n background: repeating-linear-gradient(-55deg, #eee, #eee 1px, #fff 0, #fff 5px);\r\n /*repeating-linear-gradient(-55deg, #eeeeee, #eeeeee 5px, #fff 5px, #fff 10px);*/\r\n }\r\n\r\n .default-session {\r\n background-color: #f8f9fa;\r\n }\r\n\r\n .sponsored-session {\r\n /*background-color: #e6b0aa;*/\r\n background-color: #f8f9fa;\r\n }\r\n\r\n /* date list */\r\n @media (min-width: 992px) {\r\n .date__text {\r\n opacity: 0.6;\r\n }\r\n }\r\n\r\n .date__text:hover {\r\n opacity: 1;\r\n }\r\n\r\n .date__text a {\r\n color: #fff;\r\n }\r\n\r\n .date__text a:hover {\r\n text-decoration: none;\r\n }\r\n\r\n .date__text.selected {\r\n opacity: 1;\r\n position: relative;\r\n }\r\n\r\n .date__text.selected:before {\r\n content: '';\r\n position: absolute;\r\n width: 15px;\r\n height: 15px;\r\n left: calc(50% - 15px);\r\n top: -20px;\r\n transform: translate(50%, -50%) rotate(45deg);\r\n background: #fff;\r\n }\r\n\r\n .btn.btn-congress {\r\n background-color: #000;\r\n float: right;\r\n }\r\n\r\n .timeline-title div.d-lg-block {\r\n font-size: 1em;\r\n }\r\n\r\n /*ONBOARDING TOUR*/\r\n .v-tour__target--highlighted {\r\n border-radius: 0.25rem;\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Schedule.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Schedule.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Schedule.vue?vue&type=template&id=372686ca&scoped=true\"\nimport script from \"./Schedule.vue?vue&type=script&lang=js\"\nexport * from \"./Schedule.vue?vue&type=script&lang=js\"\nimport style0 from \"./Schedule.vue?vue&type=style&index=0&id=372686ca&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"372686ca\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <!-- main content column -->\r\n <b-col cols=\"12\" sm=\"12\" md=\"12\" lg=\"12\">\r\n <b-row no-gutters>\r\n <!-- Overview -->\r\n <b-col cols=\"12\">\r\n <Timeline :eventId=\"eventId\" :expanded=\"true\" :toggable=\"false\" entity=\"Channel\" />\r\n </b-col>\r\n </b-row>\r\n <v-tour name=\"overview-tour\" :steps=\"steps\" :callbacks=\"callbacks\"></v-tour>\r\n </b-col>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n import toursManagerMixin from 'src/mixins/toursManagerMixin';\r\n\r\n import Timeline from 'src/components/Timeline/Schedule';\r\n\r\n export default {\r\n name: 'Schedule',\r\n mixins: [openModalMixin, toursManagerMixin],\r\n components: {\r\n Timeline\r\n },\r\n data() {\r\n return {\r\n query: '',\r\n steps: [\r\n {\r\n target: '[data-v-step-schedule=\"0\"]', // We're using document.querySelector() under the hood\r\n header: {\r\n //title: 'Date'\r\n },\r\n content: `Select a date and discover the daily schedule.<br><br>Click on the icon to save a session to My Programme.`,\r\n params: {\r\n placement: 'bottom',\r\n enableScrolling: false,\r\n highlight: true\r\n }\r\n },\r\n {\r\n target: '[data-v-step-schedule=\"1\"]',\r\n header: {\r\n //title: 'Channels'\r\n },\r\n content: `Discover the programme by channel.`,\r\n params: {\r\n placement: 'bottom',\r\n enableScrolling: false,\r\n highlight: true\r\n }\r\n }\r\n ],\r\n callbacks: {\r\n onSkip: () => this.onTourCompleted('schedule'),\r\n onFinish: () => this.onTourCompleted('schedule')\r\n }\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['isTimelineExpanded']),\r\n ...mapState({\r\n eventId: state => state.app.eventId\r\n })\r\n },\r\n mounted() {\r\n if (!this.tours || !this.tours.schedule) {\r\n this.$nextTick(() => {\r\n this.$tours['overview-tour'].start();\r\n });\r\n }\r\n },\r\n methods: {\r\n onSearchRequested(query) {\r\n this.query = query;\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Schedule.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Schedule.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Schedule.vue?vue&type=template&id=092304c7&scoped=true\"\nimport script from \"./Schedule.vue?vue&type=script&lang=js\"\nexport * from \"./Schedule.vue?vue&type=script&lang=js\"\nimport style0 from \"./Schedule.vue?vue&type=style&index=0&id=092304c7&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"092304c7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"btn__back mb-2 position-sticky float-lg-left\"},[_c('b-button',{staticClass:\"font-regular mt-3 d-inline d-inline-flex align-items-center border-0\",attrs:{\"pill\":\"\",\"variant\":\"clear\",\"size\":\"sm\"},on:{\"click\":_vm.onBackClick}},[_c('span',{staticClass:\"material-icons-round mr-2\"},[_vm._v(\" arrow_back \")]),_vm._v(\" Back \")])],1),_c('b-col',{staticClass:\"toggable-main-content m-auto\",class:_vm.isTimelineExpanded ? 'd-none' : 'd-block',attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"8\",\"lg\":\"9\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('EscBanners')],1),_c('b-col',{staticClass:\"my-4\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"session__details__wrapper\"},[_c('div',{staticClass:\"session__details__content\"},[_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('h3',{staticClass:\"session__details__content__title\"},[(_vm.isMoreDetailsLoading)?[_c('b-skeleton',{attrs:{\"height\":\"30px\",\"width\":\"85%\"}})]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.sessionMoreDetails.title)?[_vm._v(\" \"+_vm._s(_vm.sessionMoreDetails.title)+\" \")]:_vm._e()],2)]),(_vm.sessionMoreDetails && _vm.sessionMoreDetails.categories && _vm.sessionMoreDetails.categories.length > 0)?_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"3\",\"xxl\":\"1\"}},[_c('span',{staticClass:\"pl-xl-2 m-auto\"},_vm._l((_vm.sessionMoreDetails.categories),function(categorie,index){return _c('span',{key:index},[(_vm.categorieImage(categorie))?_c('img',{staticClass:\"session__details__categorie_img img-fluid\",attrs:{\"src\":_vm.categorieImage(categorie),\"alt\":categorie.description}}):_vm._e()])}),0)]):_vm._e()],1),(_vm.sessionMoreDetails && (_vm.sessionMoreDetails.subTitle || _vm.sessionMoreDetails.industryLink || _vm.sessionMoreDetails.tutorialLink))?_c('h5',{staticClass:\"mb-3 font-light\"},[(_vm.isMoreDetailsLoading)?[_c('b-skeleton',{attrs:{\"height\":\"30px\",\"width\":\"85%\"}})]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.sessionMoreDetails.subTitle)?[_vm._v(\" \"+_vm._s(_vm.sessionMoreDetails.subTitle)+\" \")]:_vm._e(),(!_vm.isMoreDetailsLoading && !_vm.preCongressMode && _vm.sessionMoreDetails.industryLink)?[_c('a',{staticClass:\"industry-link\",attrs:{\"href\":_vm.sessionMoreDetails.industryLink,\"target\":\"_blank\"}},[_c('b-button',{staticClass:\"font-weight-bold\",attrs:{\"variant\":\"clear\",\"size\":\"sm\"}},[_c('i',{staticClass:\"las la-3x la-t-plus-2 la la-external-link mr-1\"}),_vm._v(\" Exhibitor Profile \")])],1)]:_vm._e(),(!_vm.isMoreDetailsLoading && !_vm.preCongressMode && _vm.sessionMoreDetails.tutorialLink)?[_c('a',{staticClass:\"industry-link\",attrs:{\"href\":_vm.sessionMoreDetails.tutorialLink,\"target\":\"_blank\"}},[_c('b-button',{staticClass:\"font-weight-bold\",attrs:{\"variant\":\"clear\",\"size\":\"sm\"}},[_c('i',{staticClass:\"las la-3x la-t-plus-2 la la-external-link mr-1\"}),_vm._v(\" Register \")])],1)]:_vm._e()],2):_vm._e(),_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"mb-3\",attrs:{\"cols\":\"12\"}},[(_vm.isMoreDetailsLoading)?[_c('div',{staticClass:\"b-custom-skeleton-wrapper\"},[_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"100%\",\"width\":\"65%\"}})],1)]:_vm._e(),(!_vm.isMoreDetailsLoading)?[(_vm.sessionMoreDetails.isLive || _vm.sessionMoreDetails.isInInterlude || _vm.sessionMoreDetails.isReplay)?_c('div',{staticClass:\"pt-1 pb-4\"},[(_vm.sessionMoreDetails.isLive || _vm.sessionMoreDetails.isInInterlude || _vm.sessionMoreDetails.isReplay)?_c('SessionButton',{staticClass:\"session__card__footer__action\",attrs:{\"renderAs\":\"button\",\"session\":_vm.sessionMoreDetails,\"forceInteract\":_vm.sessionMoreDetails.isReplay}}):_vm._e(),(_vm.sessionMoreDetails.isLive)?_c('b-progress',{staticClass:\"mt-3 session__progress\",attrs:{\"value\":_vm.sessionMoreDetails.progress,\"max\":_vm.sessionMoreDetails.duration,\"height\":\"0.6em\"}}):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"session__details__content__flags d-block font-regular\"},[(!_vm.sessionMoreDetails.isOnDemand && _vm.sessionMoreDetails.startTime)?_c('div',{staticClass:\"session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"mr-1 material-icons-round\"},[_vm._v(\" calendar_month \")]),_c('span',{staticClass:\"flags__label\"}),_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(_vm.sessionMoreDetails.startTime))+\" from \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.sessionMoreDetails.startTime))+\" to \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(_vm.sessionMoreDetails.endTime))+\" \")]):_vm._e(),(!_vm.showChannelOnline && !_vm.sessionMoreDetails.isOnDemand && _vm.sessionMoreDetails.channelOnSiteDisplayName)?_c('div',{staticClass:\"session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" place \")]),_vm._v(\" \"+_vm._s(_vm.sessionMoreDetails.channelOnSiteDisplayName)+\" \")]):_vm._e(),(_vm.showChannelOnline && !_vm.sessionMoreDetails.isOnDemand && _vm.sessionMoreDetails.channel)?_c('div',{staticClass:\"session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"mr-1 material-icons-round\"},[_vm._v(\" cast \")]),_c('span',{staticClass:\"flags__label\"},[_vm._v(\"Online \")])]):_vm._e(),(_vm.sessionMoreDetails.sessionType && _vm.sessionMoreDetails.sessionType.trim() !== '')?_c('div',{staticClass:\"session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"mr-1 material-icons-outlined\"},[_vm._v(\" co_present \")]),_vm._v(\" \"+_vm._s(_vm.sessionMoreDetails.sessionType)+\" \")]):_vm._e(),(_vm.sessionMoreDetails.topic && _vm.sessionMoreDetails.topic.trim() !== '')?_c('div',{staticClass:\"session__details__content__flags__inner d-inline-flex align-items-center\"},[_c('span',{staticClass:\"mr-1 material-symbols-rounded\"},[_vm._v(\" ecg_heart \")]),_vm._v(\" \"+_vm._s(_vm.sessionMoreDetails.topic)+\" \")]):_vm._e()])]:_vm._e()],2)],1),_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"mt-2 mb-5\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"session__details__header__button\"},[(_vm.sessionMoreDetails)?_c('FavoriteButton',{attrs:{\"title\":_vm.sessionMoreDetails.title,\"digitalSessionId\":_vm.sessionId,\"scientificSessionId\":_vm.sessionMoreDetails.scientificSessionId,\"mode\":\"large\",\"width\":\"18\",\"height\":\"18\"}}):_vm._e()],1)])],1),_c('b-row',[(_vm.sessionMoreDetails && _vm.sessionMoreDetails.disclaimer && _vm.sessionMoreDetails.disclaimer.trim() !== '')?_c('b-col',{staticClass:\"mt-3 mb-3 px-0\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"disclaimer__wrapper\"},[_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"light\"}},[_c('span',{staticClass:\"font-bold\"},[_vm._v(\"Disclaimer: \")]),_c('span',{staticClass:\"disclaimer__text\",domProps:{\"innerHTML\":_vm._s(_vm.sessionMoreDetails.disclaimer)}})])],1)]):_vm._e()],1),(\n _vm.isMoreDetailsLoading ||\n _vm.sessionMoreDetails.chairpersons.length > 0 ||\n _vm.sessionMoreDetails.learningObjectives.trim() !== '' ||\n _vm.sessionMoreDetails.moreDetailsLink\n )?_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"mb-4\",attrs:{\"cols\":\"12\"}},[(_vm.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"30%\"}}),_c('b-skeleton',{attrs:{\"width\":\"50%\"}})],1)]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.sessionMoreDetails.chairpersons.length > 0)?[_c('h5',[_vm._v(\"Chairpersons\")]),_c('p',{staticClass:\"card-text mb-4\"},_vm._l((this.sessionMoreDetails.chairpersons),function(chair,index){return _c('span',{key:index,staticClass:\"card-text__speaker mb-2 mb-lg-0\"},[_c('router-link',{staticClass:\"btn-link font-light\",attrs:{\"to\":`/${_vm.eventRoute}/speakers/${chair.userId}`}},[_vm._v(\" \"+_vm._s(_vm.fullNameWithAddress(chair))+\" \")]),(chair.twitterId && chair.twitterUrl)?[_c('a',{attrs:{\"href\":chair.twitterUrl,\"target\":\"_blank\"}},[_c('span',{staticClass:\"follow-speaker-twitter mr-1 ml-2\"},[_c('img',{attrs:{\"height\":\"12\",\"src\":require(\"@/assets/images/platform/logo-x.svg\"),\"alt\":\"X Logo\"}})]),_c('span',{staticClass:\"font-regular\"},[_vm._v(_vm._s(chair.twitterId))])])]:_vm._e()],2)}),0)]:_vm._e(),(_vm.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"30%\"}}),_c('b-skeleton',{attrs:{\"width\":\"50%\"}})],1)]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.sessionMoreDetails.juryAbstract.length > 0)?[_c('h5',[_vm._v(\"Jury Members\")]),_c('p',{staticClass:\"card-text\"},_vm._l((this.sessionMoreDetails.juryAbstract),function(judge,index){return _c('span',{key:index,staticClass:\"card-text__speaker\"},[_vm._v(\" \"+_vm._s(_vm.fullNameWithAddress(judge))+\" \"),(judge.twitterId && judge.twitterUrl)?[_c('a',{attrs:{\"href\":judge.twitterUrl,\"target\":\"_blank\"}},[_c('span',{staticClass:\"follow-speaker-twitter mr-1 ml-2\"},[_c('img',{attrs:{\"height\":\"12\",\"src\":require(\"@/assets/images/platform/logo-x.svg\"),\"alt\":\"X Logo\"}})]),_c('span',{staticClass:\"font-regular\"},[_vm._v(_vm._s(judge.twitterId))])])]:_vm._e()],2)}),0)]:_vm._e(),(_vm.isMoreDetailsLoading)?[_c('div',{staticClass:\"mb-4\"},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"40%\"}}),_c('b-skeleton',{attrs:{\"width\":\"90%\"}}),_c('b-skeleton',{attrs:{\"width\":\"90%\"}}),_c('b-skeleton',{attrs:{\"width\":\"90%\"}}),_c('b-skeleton',{attrs:{\"width\":\"90%\"}})],1)]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.sessionMoreDetails.learningObjectives.trim() !== '')?[_c('h5',[_vm._v(\"More on the session\")]),_c('p',{staticClass:\"card-text text-white-space-pre-wrap\"},[_c('span',[_vm._v(_vm._s(_vm._f(\"trim\")(_vm.sessionMoreDetails.learningObjectives)))]),(!_vm.preCongressMode && _vm.sessionMoreDetails.moreDetailsLink)?_c('span',{staticClass:\"d-block font-weight-bold\"},[_c('a',{staticClass:\"session__details__more_action\",attrs:{\"href\":_vm.sessionMoreDetails.moreDetailsLink}},[_vm._v(\"Session and faculty details can be found here.\")])]):_vm._e()])]:_vm._e()],2)],1):_vm._e(),(_vm.isMoreDetailsLoading)?[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"15%\"}}),_c('b-skeleton-img',{staticClass:\"mb-5\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}}),_c('b-skeleton-img',{staticClass:\"mb-1\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}}),_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}})]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.sessionMoreDetails.presentations && _vm.sessionMoreDetails.presentations.length > 0)?[_c('h5',{staticClass:\"mb-3\"},[_vm._v(\"Presentations\")]),_vm._l((_vm.sessionMoreDetails.presentations),function(presentation,index){return _c('div',{key:index,staticClass:\"session__details__presentation px-4 py-3\"},[(!_vm.sessionMoreDetails.isOnDemand && presentation.startTime > 0)?_c('span',{staticClass:\"session__details__presentation__start-time font-bold\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(presentation.startTime))+\" \")]):_vm._e(),_c('span',{staticClass:\"session__details__presentation__title font-black\"},[_vm._v(_vm._s(presentation.title))]),_vm._l((presentation.persons),function(person,index){return _c('span',{key:index,staticClass:\"session__details__presentation__person\",attrs:{\"variant\":\"link\"}},[_vm._v(\" \"+_vm._s(_vm.roleFormatted(person.role))+\": \"),_c('router-link',{staticClass:\"btn-link font-light\",attrs:{\"to\":`/${_vm.eventRoute}/speakers/${person.userId}`}},[_vm._v(\" \"+_vm._s(_vm.fullNameWithAddress(person))+\" \")]),(person.twitterId)?[_c('a',{attrs:{\"href\":person.twitterUrl,\"target\":\"_blank\"}},[_c('span',{staticClass:\"follow-speaker-twitter mr-1 ml-2\"},[_c('img',{attrs:{\"height\":\"12\",\"src\":require(\"@/assets/images/platform/logo-x.svg\"),\"alt\":\"X Logo\"}})]),_c('span',{staticClass:\"font-regular\"},[_vm._v(_vm._s(person.twitterId))])])]:_vm._e()],2)}),(_vm.indexAbstracts && presentation.scientificPresentationId && presentation.presentationAbstract)?_c('span',{staticClass:\"font-regular abstract-link d-block text-right mt-3 mt-md-0\",on:{\"click\":function($event){return _vm.onAbstractView(presentation.scientificPresentationId)}}},[_c('i',{staticClass:\"las la-4x la-t-plus-2 la-file-image\"}),_vm._v(\" View abstract \")]):_vm._e()],2)})]:_vm._e()],2)])]),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"12\"}},[_c('RegisterPromoWidget')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('IndustryBanners')],1)],1)],1),_c('AbstractModal',{attrs:{\"presentationId\":_vm.currentAbstractModalPresentationId,\"visible\":_vm.abstractModalVisible},on:{\"abstract-modal-close\":_vm.onAbstractModalClose,\"abstract-modal-hidden\":_vm.onAbstractModalHidden}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-container fluid>\r\n <div class=\"btn__back mb-2 position-sticky float-lg-left\">\r\n <b-button pill variant=\"clear\" size=\"sm\" class=\"font-regular mt-3 d-inline d-inline-flex align-items-center border-0\" @click=\"onBackClick\">\r\n <span class=\"material-icons-round mr-2\"> arrow_back </span>\r\n Back\r\n </b-button>\r\n </div>\r\n\r\n <b-col cols=\"12\" sm=\"12\" md=\"8\" lg=\"9\" class=\"toggable-main-content m-auto\" :class=\"isTimelineExpanded ? 'd-none' : 'd-block'\">\r\n <b-row>\r\n <!-- ESC Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\">\r\n <EscBanners />\r\n </b-col>\r\n\r\n <!-- SessionDetails -->\r\n <b-col cols=\"12\" class=\"my-4\">\r\n <div class=\"session__details__wrapper\">\r\n <div class=\"session__details__content\">\r\n <b-row class=\"no-gutters\">\r\n <b-col cols=\"12\">\r\n <h3 class=\"session__details__content__title\">\r\n <!-- Title -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <b-skeleton height=\"30px\" width=\"85%\"></b-skeleton>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading && sessionMoreDetails.title\">\r\n {{ sessionMoreDetails.title }}\r\n </template>\r\n </h3>\r\n </b-col>\r\n <b-col cols=\"12\" xl=\"3\" xxl=\"1\" v-if=\"sessionMoreDetails && sessionMoreDetails.categories && sessionMoreDetails.categories.length > 0\">\r\n <span class=\"pl-xl-2 m-auto\">\r\n <span v-for=\"(categorie, index) in sessionMoreDetails.categories\" :key=\"index\">\r\n <img\r\n v-if=\"categorieImage(categorie)\"\r\n :src=\"categorieImage(categorie)\"\r\n :alt=\"categorie.description\"\r\n class=\"session__details__categorie_img img-fluid\"\r\n />\r\n </span>\r\n </span>\r\n </b-col>\r\n </b-row>\r\n <h5 class=\"mb-3 font-light\" v-if=\"sessionMoreDetails && (sessionMoreDetails.subTitle || sessionMoreDetails.industryLink || sessionMoreDetails.tutorialLink)\">\r\n <!-- SubTitle -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <b-skeleton height=\"30px\" width=\"85%\"></b-skeleton>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading && sessionMoreDetails.subTitle\">\r\n {{ sessionMoreDetails.subTitle }}\r\n </template>\r\n\r\n <!-- Industry link -->\r\n <template v-if=\"!isMoreDetailsLoading && !preCongressMode && sessionMoreDetails.industryLink\">\r\n <a class=\"industry-link\" :href=\"sessionMoreDetails.industryLink\" target=\"_blank\">\r\n <b-button variant=\"clear\" size=\"sm\" class=\"font-weight-bold\">\r\n <i class=\"las la-3x la-t-plus-2 la la-external-link mr-1\"></i>\r\n Exhibitor Profile\r\n </b-button>\r\n </a>\r\n </template>\r\n\r\n <!-- Tutorial register link -->\r\n <template v-if=\"!isMoreDetailsLoading && !preCongressMode && sessionMoreDetails.tutorialLink\">\r\n <a class=\"industry-link\" :href=\"sessionMoreDetails.tutorialLink\" target=\"_blank\">\r\n <b-button variant=\"clear\" size=\"sm\" class=\"font-weight-bold\">\r\n <i class=\"las la-3x la-t-plus-2 la la-external-link mr-1\"></i>\r\n Register\r\n </b-button>\r\n </a>\r\n </template>\r\n </h5>\r\n\r\n <b-row class=\"no-gutters\">\r\n <b-col cols=\"12\" class=\"mb-3\">\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <div class=\"b-custom-skeleton-wrapper\">\r\n <b-skeleton-img no-aspect height=\"100%\" width=\"65%\"></b-skeleton-img>\r\n </div>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading\">\r\n <div class=\"pt-1 pb-4\" v-if=\"sessionMoreDetails.isLive || sessionMoreDetails.isInInterlude || sessionMoreDetails.isReplay\">\r\n <SessionButton\r\n v-if=\"sessionMoreDetails.isLive || sessionMoreDetails.isInInterlude || sessionMoreDetails.isReplay\"\r\n renderAs=\"button\"\r\n :session=\"sessionMoreDetails\"\r\n :forceInteract=\"sessionMoreDetails.isReplay\"\r\n class=\"session__card__footer__action\"\r\n />\r\n <b-progress\r\n v-if=\"sessionMoreDetails.isLive\"\r\n class=\"mt-3 session__progress\"\r\n :value=\"sessionMoreDetails.progress\"\r\n :max=\"sessionMoreDetails.duration\"\r\n height=\"0.6em\"\r\n ></b-progress>\r\n </div>\r\n <div class=\"session__details__content__flags d-block font-regular\">\r\n <!-- Date + Start Time + End Time -->\r\n <div\r\n class=\"session__details__content__flags__inner d-inline-flex align-items-center\"\r\n v-if=\"!sessionMoreDetails.isOnDemand && sessionMoreDetails.startTime\"\r\n >\r\n <span class=\"mr-1 material-icons-round\"> calendar_month </span>\r\n <span class=\"flags__label\"></span>\r\n {{ sessionMoreDetails.startTime | formatUnixEpocDayPart }} from {{ sessionMoreDetails.startTime | formatUnixEpocTimePart }} to\r\n {{ sessionMoreDetails.endTime | formatUnixEpocTimePart }}\r\n </div>\r\n <!-- Location -->\r\n <div\r\n class=\"session__details__content__flags__inner d-inline-flex align-items-center\"\r\n v-if=\"!showChannelOnline && !sessionMoreDetails.isOnDemand && sessionMoreDetails.channelOnSiteDisplayName\"\r\n >\r\n <span class=\"mr-1 material-icons-outlined\"> place </span>\r\n {{ sessionMoreDetails.channelOnSiteDisplayName }}\r\n </div>\r\n <!-- is Online -->\r\n <div\r\n class=\"session__details__content__flags__inner d-inline-flex align-items-center\"\r\n v-if=\"showChannelOnline && !sessionMoreDetails.isOnDemand && sessionMoreDetails.channel\"\r\n >\r\n <span class=\"mr-1 material-icons-round\"> cast </span>\r\n <span class=\"flags__label\">Online </span>\r\n </div>\r\n <!-- Session type -->\r\n <div\r\n class=\"session__details__content__flags__inner d-inline-flex align-items-center\"\r\n v-if=\"sessionMoreDetails.sessionType && sessionMoreDetails.sessionType.trim() !== ''\"\r\n >\r\n <span class=\"mr-1 material-icons-outlined\"> co_present </span>\r\n {{ sessionMoreDetails.sessionType }}\r\n </div>\r\n <!-- Topic -->\r\n <div\r\n class=\"session__details__content__flags__inner d-inline-flex align-items-center\"\r\n v-if=\"sessionMoreDetails.topic && sessionMoreDetails.topic.trim() !== ''\"\r\n >\r\n <span class=\"mr-1 material-symbols-rounded\"> ecg_heart </span>\r\n {{ sessionMoreDetails.topic }}\r\n </div>\r\n\r\n <!-- <div class=\"session__details__content__flags__inner\" v-if=\"!sessionMoreDetails.isOnDemand && sessionMoreDetails.startTime\">\r\n <i class=\"las la-6x la-t-plus-2 la-clock mr-1\"></i>\r\n <span class=\"flags__label\">Start time: </span>\r\n {{ sessionMoreDetails.startTime | formatUnixEpocTimePart }}\r\n </div>\r\n <div class=\"session__details__content__flags__inner\" v-if=\"!sessionMoreDetails.isOnDemand && sessionMoreDetails.endTime\">\r\n <i class=\"las la-6x la-t-plus-2 la-hourglass-end mr-1\"></i>\r\n <span class=\"flags__label\">End time: </span>\r\n {{ sessionMoreDetails.endTime | formatUnixEpocTimePart }}\r\n </div> -->\r\n </div>\r\n </template>\r\n </b-col>\r\n <!-- WATCH & Progress -->\r\n <!--\r\n <b-col v-if=\"!isMoreDetailsLoading\" cols=\"6\" class=\"mb-3\">\r\n <div class=\"ml-3\">\r\n <SessionButton v-if=\"sessionMoreDetails.isLive || sessionMoreDetails.isReplay\" renderAs=\"button\" :session=\"sessionMoreDetails\" :forceInteract=\"sessionMoreDetails.isReplay\" class=\"session__card__footer__action\" />\r\n <b-progress v-if=\"sessionMoreDetails.isLive\" class=\"mt-3 session__progress\" :value=\"sessionMoreDetails.progress\" :max=\"sessionMoreDetails.duration\" height=\"0.6em\"></b-progress>\r\n </div>\r\n </b-col>\r\n -->\r\n </b-row>\r\n\r\n <b-row class=\"no-gutters\">\r\n <b-col cols=\"12\" class=\"mt-2 mb-5\">\r\n <div class=\"session__details__header__button\">\r\n <FavoriteButton\r\n v-if=\"sessionMoreDetails\"\r\n :title=\"sessionMoreDetails.title\"\r\n :digitalSessionId=\"sessionId\"\r\n :scientificSessionId=\"sessionMoreDetails.scientificSessionId\"\r\n mode=\"large\"\r\n width=\"18\"\r\n height=\"18\"\r\n />\r\n </div>\r\n </b-col>\r\n </b-row>\r\n\r\n <b-row>\r\n <b-col v-if=\"sessionMoreDetails && sessionMoreDetails.disclaimer && sessionMoreDetails.disclaimer.trim() !== ''\" cols=\"12\" class=\"mt-3 mb-3 px-0\">\r\n <div class=\"disclaimer__wrapper\">\r\n <b-alert show variant=\"light\">\r\n <span class=\"font-bold\">Disclaimer: </span>\r\n <span class=\"disclaimer__text\" v-html=\"sessionMoreDetails.disclaimer\"></span>\r\n </b-alert>\r\n </div>\r\n </b-col>\r\n </b-row>\r\n <b-row\r\n v-if=\"\r\n isMoreDetailsLoading ||\r\n sessionMoreDetails.chairpersons.length > 0 ||\r\n sessionMoreDetails.learningObjectives.trim() !== '' ||\r\n sessionMoreDetails.moreDetailsLink\r\n \"\r\n class=\"no-gutters\"\r\n >\r\n <b-col cols=\"12\" class=\"mb-4\">\r\n <!-- Chairpersons -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"30%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton width=\"50%\"></b-skeleton>\r\n </div>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading && sessionMoreDetails.chairpersons.length > 0\">\r\n <h5>Chairpersons</h5>\r\n <p class=\"card-text mb-4\">\r\n <span v-for=\"(chair, index) in this.sessionMoreDetails.chairpersons\" :key=\"index\" class=\"card-text__speaker mb-2 mb-lg-0\">\r\n <router-link class=\"btn-link font-light\" :to=\"`/${eventRoute}/speakers/${chair.userId}`\">\r\n {{ fullNameWithAddress(chair) }}\r\n </router-link>\r\n <!-- Twitter -->\r\n <template v-if=\"chair.twitterId && chair.twitterUrl\">\r\n <a :href=\"chair.twitterUrl\" target=\"_blank\" class=\"\">\r\n <span class=\"follow-speaker-twitter mr-1 ml-2\"><img height=\"12\" src=\"~@/assets/images/platform/logo-x.svg\" alt=\"X Logo\" /></span>\r\n <span class=\"font-regular\">{{ chair.twitterId }}</span>\r\n </a>\r\n </template>\r\n </span>\r\n </p>\r\n </template>\r\n\r\n <!-- judge -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"30%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton width=\"50%\"></b-skeleton>\r\n </div>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading && sessionMoreDetails.juryAbstract.length > 0\">\r\n <h5>Jury Members</h5>\r\n <p class=\"card-text\">\r\n <span v-for=\"(judge, index) in this.sessionMoreDetails.juryAbstract\" :key=\"index\" class=\"card-text__speaker\">\r\n {{ fullNameWithAddress(judge) }}\r\n <!-- Twitter -->\r\n <template v-if=\"judge.twitterId && judge.twitterUrl\">\r\n <a :href=\"judge.twitterUrl\" target=\"_blank\">\r\n <span class=\"follow-speaker-twitter mr-1 ml-2\"><img height=\"12\" src=\"~@/assets/images/platform/logo-x.svg\" alt=\"X Logo\" /></span>\r\n <span class=\"font-regular\">{{ judge.twitterId }}</span>\r\n </a>\r\n </template>\r\n </span>\r\n </p>\r\n </template>\r\n\r\n <!-- LearningObjectives -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <div class=\"mb-4\">\r\n <b-skeleton width=\"40%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton width=\"90%\"></b-skeleton>\r\n <b-skeleton width=\"90%\"></b-skeleton>\r\n <b-skeleton width=\"90%\"></b-skeleton>\r\n <b-skeleton width=\"90%\"></b-skeleton>\r\n </div>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading && sessionMoreDetails.learningObjectives.trim() !== ''\">\r\n <h5>More on the session</h5>\r\n <p class=\"card-text text-white-space-pre-wrap\">\r\n <span>{{ sessionMoreDetails.learningObjectives | trim }}</span>\r\n <span v-if=\"!preCongressMode && sessionMoreDetails.moreDetailsLink\" class=\"d-block font-weight-bold\">\r\n <a class=\"session__details__more_action\" :href=\"sessionMoreDetails.moreDetailsLink\">Session and faculty details can be found here.</a>\r\n </span>\r\n </p>\r\n </template>\r\n </b-col>\r\n </b-row>\r\n\r\n <!-- Presentations -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <b-skeleton width=\"15%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\" class=\"mb-5\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\" class=\"mb-1\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\"></b-skeleton-img>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading && sessionMoreDetails.presentations && sessionMoreDetails.presentations.length > 0\">\r\n <h5 class=\"mb-3\">Presentations</h5>\r\n\r\n <div v-for=\"(presentation, index) in sessionMoreDetails.presentations\" :key=\"index\" class=\"session__details__presentation px-4 py-3\">\r\n <span v-if=\"!sessionMoreDetails.isOnDemand && presentation.startTime > 0\" class=\"session__details__presentation__start-time font-bold\">\r\n {{ presentation.startTime | formatUnixEpocTimePart }}\r\n </span>\r\n <span class=\"session__details__presentation__title font-black\">{{ presentation.title }}</span> \r\n \r\n <span v-for=\"(person, index) in presentation.persons\" :key=\"index\" class=\"session__details__presentation__person\" variant=\"link\">\r\n {{ roleFormatted(person.role) }}: <router-link class=\"btn-link font-light\" :to=\"`/${eventRoute}/speakers/${person.userId}`\"> {{ fullNameWithAddress(person) }} </router-link>\r\n <!-- Twitter -->\r\n <template v-if=\"person.twitterId\">\r\n <a :href=\"person.twitterUrl\" target=\"_blank\">\r\n <span class=\"follow-speaker-twitter mr-1 ml-2\"><img height=\"12\" src=\"~@/assets/images/platform/logo-x.svg\" alt=\"X Logo\" /></span>\r\n <span class=\"font-regular\">{{ person.twitterId }}</span>\r\n </a>\r\n </template>\r\n </span>\r\n <span v-if=\"indexAbstracts && presentation.scientificPresentationId && presentation.presentationAbstract\" class=\"font-regular abstract-link d-block text-right mt-3 mt-md-0\" @click=\"onAbstractView(presentation.scientificPresentationId)\">\r\n <i class=\"las la-4x la-t-plus-2 la-file-image\"></i>\r\n View abstract\r\n </span>\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" class=\"pt-3\">\r\n <!-- Register Promo -->\r\n <RegisterPromoWidget />\r\n </b-col>\r\n\r\n <!-- IndustryBanners Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\" class=\"pt-3\">\r\n <IndustryBanners />\r\n </b-col>\r\n </b-row>\r\n </b-col>\r\n <AbstractModal :presentationId=\"currentAbstractModalPresentationId\" :visible=\"abstractModalVisible\"\r\n @abstract-modal-close=\"onAbstractModalClose\" @abstract-modal-hidden=\"onAbstractModalHidden\" />\r\n </b-container>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import { QueryHelper } from 'src/utils/query-helper';\r\n import { MediaApiService } from 'src/services/media-api';\r\n\r\n import personsMixin from 'src/mixins/personsMixin';\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n import hybridEventMixin from 'src/mixins/hybridEventMixin';\r\n\r\n import EscBanners from 'src/components/Banners/EscBanners';\r\n import IndustryBanners from 'src/components/Banners/IndustryBanners';\r\n import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\n import RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\n import SessionButton from 'src/components/Buttons/SessionButton';\r\n import esc365Mixin from 'src/mixins/esc365Mixin';\r\n import AbstractModal from 'src/components/Modals/AbstractModal';\r\n\r\n\r\n export default {\r\n name: 'SessionDetails',\r\n mixins: [personsMixin, openModalMixin, hybridEventMixin, esc365Mixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners,\r\n FavoriteButton,\r\n RegisterPromoWidget,\r\n SessionButton,\r\n AbstractModal\r\n },\r\n data() {\r\n return {\r\n isMoreDetailsLoading: true,\r\n sessionId: null,\r\n sessionMoreDetails: null,\r\n abstractModalVisible: false,\r\n currentAbstractModalPresentationId: null\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['isTimelineExpanded']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventRoute: (state) => state.app.eventRoute,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n ressourcesMovedTo365: (state) => state.app.ressourcesMovedTo365,\r\n indexAbstracts: (state) => state.app.indexAbstracts,\r\n }),\r\n showAbstractModal: {\r\n get() {\r\n return this.abstractModalVisible;\r\n },\r\n set(show) {\r\n if (this.abstractModalVisible != show) this.abstractModalVisible = show;\r\n }\r\n },\r\n },\r\n watch: {\r\n '$route.params.sessionFurl'() {\r\n this.fetchSession();\r\n },\r\n },\r\n beforeRouteEnter(to, from, next) {\r\n next((vm) => {\r\n vm.fromRoute = from;\r\n });\r\n },\r\n mounted() {\r\n this.fetchSession();\r\n },\r\n methods: {\r\n fetchSession() {\r\n this.isMoreDetailsLoading = true;\r\n const sessionFurl = this.$route.params?.sessionFurl;\r\n const sessionId = QueryHelper.extractSessionId(sessionFurl);\r\n if (sessionId && sessionId > 0) {\r\n this.sessionId = sessionId;\r\n MediaApiService.getSessionMoreDetails(sessionId).then(({ data }) => {\r\n if (data) {\r\n this.sessionMoreDetails = data;\r\n this.isMoreDetailsLoading = false;\r\n }\r\n });\r\n }\r\n },\r\n onBackClick() {\r\n window.history.back();\r\n },\r\n categorieImage(categorie) {\r\n try {\r\n return require(`@/assets/images/congress/${this.eventId}/${categorie.code}.png`);\r\n } catch (err) {\r\n return null;\r\n }\r\n },\r\n\r\n onAbstractModalClose() {\r\n this.currentAbstractModalPresentationId = null;\r\n this.showAbstractModal = false;\r\n },\r\n onAbstractView(e) {\r\n //console.log(e)\r\n this.currentAbstractModalPresentationId = e;\r\n this.showAbstractModal = true;\r\n\r\n // this.$gtm.push({\r\n // event: 'viewAbstract',\r\n // eventId: this.result.event.id,\r\n // title: this.result.title,\r\n // presentationId: `P${this.result.presentations}`,\r\n // digitalSessionId: `${this.result.digitalSessionIds ? this.result.digitalSessionIds[0] : 0}`,\r\n // uniqId: `SESS${this.result.dbId ? this.result.dbId : 0}`,\r\n // });\r\n },\r\n onAbstractModalHidden() {\r\n this.currentAbstractModalPresentationId = null;\r\n this.showAbstractModal = false;\r\n }\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n /*\r\n .session__details__content__title {\r\n max-width: 85%;\r\n }\r\n*/\r\n .session__details__header__button {\r\n display: inline-block;\r\n position: relative;\r\n }\r\n\r\n .session__details__content__flags {\r\n font-size: 0.9rem;\r\n\r\n &__inner {\r\n margin-right: 1.25rem;\r\n .material-icons-round,\r\n .material-icons-outlined,\r\n .material-symbols-rounded {\r\n font-size: 22px;\r\n }\r\n }\r\n\r\n &__inner:last-of-type {\r\n margin-right: 0;\r\n }\r\n\r\n &__inner:not(:first-child) {\r\n border-top: solid 1px white;\r\n }\r\n }\r\n\r\n .session__details__presentation {\r\n background: $secondary;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n padding: 0.6rem 0.8rem;\r\n border-radius: 6px;\r\n margin-bottom: 1rem;\r\n\r\n &__title {\r\n display: block;\r\n }\r\n\r\n &__person {\r\n display: block;\r\n }\r\n\r\n &__start-time {\r\n display: block;\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n }\r\n\r\n img {\r\n vertical-align: baseline;\r\n }\r\n }\r\n\r\n .b-skeleton-img {\r\n margin-bottom: 0.8rem;\r\n }\r\n\r\n .b-custom-skeleton-wrapper {\r\n height: 150px;\r\n\r\n & .b-skeleton-img {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n .industry-link {\r\n margin-left: 10px;\r\n }\r\n\r\n .follow-speaker .la-twitter {\r\n color: #1da1f2;\r\n margin-left: 5px;\r\n font-size: 0.9em;\r\n }\r\n\r\n .btn-x {\r\n color: #343a40;\r\n background-color: #fff;\r\n border-color: #343a40;\r\n border-radius: 50rem !important;\r\n border: 2px solid;\r\n &:hover {\r\n background-color: #eee;\r\n border-color: #eee;\r\n }\r\n }\r\n\r\n .session__card__footer__action {\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n\r\n &:hover,\r\n :focus {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n .card-text__speaker {\r\n display: block;\r\n }\r\n\r\n .session__details__categorie_img {\r\n max-height: 4em;\r\n }\r\n\r\n .session__details__more_action {\r\n color: var(--congress);\r\n }\r\n @media (min-width: 1024px) {\r\n .btn__back {\r\n position: sticky;\r\n top: 140px;\r\n height: 40px;\r\n }\r\n .btn__back button {\r\n position: absolute;\r\n }\r\n }\r\n\r\n .disclaimer__text {\r\n display: inline;\r\n}\r\n.abstract-link {\r\n cursor: pointer;\r\n color: var(--congress);\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionDetails.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SessionDetails.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SessionDetails.vue?vue&type=template&id=04528a3e&scoped=true\"\nimport script from \"./SessionDetails.vue?vue&type=script&lang=js\"\nexport * from \"./SessionDetails.vue?vue&type=script&lang=js\"\nimport style0 from \"./SessionDetails.vue?vue&type=style&index=0&id=04528a3e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04528a3e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"btn__back mb-2 position-sticky float-lg-left\"},[_c('b-button',{staticClass:\"font-regular mt-2 d-inline d-inline-flex align-items-center border-0\",attrs:{\"pill\":\"\",\"variant\":\"clear\",\"size\":\"sm\"},on:{\"click\":_vm.onBackClick}},[_c('span',{staticClass:\"material-icons-round mr-2\"},[_vm._v(\" arrow_back \")]),_vm._v(\" Back \")])],1),_c('b-col',{staticClass:\"toggable-main-content m-auto\",class:_vm.isTimelineExpanded ? 'd-none' : 'd-block',attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"8\",\"lg\":\"9\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('EscBanners')],1),_c('b-col',{staticClass:\"my-4\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"speaker__details__wrapper\"},[_c('div',{staticClass:\"session__details__header\"},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-3\"},[_c('b-img',{staticClass:\"search__card__header__picture border\",attrs:{\"src\":_vm.photoUrl ? _vm.photoUrl : _vm.defaultPicture,\"fluid\":\"\",\"alt\":\"Speaker's Picture\"}})],1),_c('div',{staticClass:\"w-100\"},[_c('h3',{staticClass:\"speaker__details__content__title mb-0\"},[(_vm.isMoreDetailsLoading)?[_c('b-skeleton',{attrs:{\"height\":\"30px\",\"width\":\"85%\"}})]:_vm._e(),(!_vm.isMoreDetailsLoading)?[_vm._v(\" \"+_vm._s(_vm.speakerDetails.firstName)+\" \"+_vm._s(_vm.speakerDetails.lastName)+\" \")]:_vm._e()],2),(_vm.isMoreDetailsLoading || _vm.speakerDetails.address)?_c('div',{staticClass:\"speaker_info mb-2\"},[(!_vm.isMoreDetailsLoading)?[_vm._v(\" \"+_vm._s(_vm.fullAddressFormatted(_vm.speakerDetails.address))+\" \")]:_vm._e()],2):_vm._e(),[_c('b-list-group',{staticClass:\"speakerDetailsLinks\",attrs:{\"horizontal\":\"md\"}},[(_vm.speakerDetails && _vm.esc365ProfileUrl)?_c('b-list-group-item',[_c('small',[_c('a',{staticClass:\"follow-speaker\",attrs:{\"href\":_vm.esc365ProfileUrl,\"target\":\"_blank\"}},[_c('span',{staticClass:\"follow-speaker-365\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/platform/logo-esc-icon.svg\"),\"alt\":\"ESC Logo\"}})]),_c('span',[_vm._v(\"ESC 365 Profile\")])])])]):_vm._e(),(!_vm.isMoreDetailsLoading && _vm.speakerDetails.twitterId)?_c('b-list-group-item',[_c('small',[_c('a',{staticClass:\"follow-speaker\",attrs:{\"href\":_vm.speakerDetails.twitterUrl,\"target\":\"_blank\"}},[_c('span',{staticClass:\"follow-speaker-twitter\"},[_c('img',{attrs:{\"src\":require(\"@/assets/images/platform/logo-x.svg\"),\"alt\":\"X Logo\"}})]),_c('span',[_vm._v(_vm._s(_vm.speakerDetails.twitterId))])])])]):_vm._e()],1)]],2)])]),_c('div',{staticClass:\"speaker__details__content mt-5\"},[_c('h5',{staticClass:\"speaker__details__content__title\"},[(_vm.isMoreDetailsLoading)?[_c('b-skeleton',{attrs:{\"height\":\"30px\",\"width\":\"85%\"}})]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.speakerDetails.specialities)?[_vm._v(\" Specialities \")]:_vm._e()],2),_c('div',{staticClass:\"speaker_info\"},[(!_vm.isMoreDetailsLoading && _vm.speakerDetails.specialities)?[_vm._v(\" \"+_vm._s(_vm.speakerDetails.specialities)+\" \")]:_vm._e()],2),(_vm.isMoreDetailsLoading)?[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"15%\"}}),_c('b-skeleton-img',{staticClass:\"mb-5\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}}),_c('b-skeleton-img',{staticClass:\"mb-1\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}}),_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}})]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.speakerDetails.presentations && _vm.speakerDetails.presentations.length > 0)?[_c('h5',{staticClass:\"mt-5 mb-3\"},[_vm._v(\"Presentations\")]),_vm._l((_vm.speakerDetails.presentations),function(presentation,index){return _c('div',{key:index,staticClass:\"speaker__details__presentation px-4 py-3\"},[(presentation.presentationStartTime)?_c('div',{staticClass:\"presentation_date\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(presentation.presentationStartTime))+\" • \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(presentation.presentationStartTime))+\" \")]):_vm._e(),(presentation.presentationTitle && presentation.presentationTitle.trim() !== '')?_c('span',{staticClass:\"speaker__details__presentation__title\"},[_vm._v(_vm._s(presentation.presentationTitle))]):_vm._e(),(presentation.sessionTitle && presentation.sessionTitle.trim() !== '')?_c('div',{staticClass:\"mb-3\"},[_c('span',{staticClass:\"d-inline-block align-items-center p-0 font-light text-left\",attrs:{\"variant\":\"link\"}},[_vm._v(\" Session: \"),_c('router-link',{staticClass:\"btn-link font-light\",attrs:{\"to\":`/${_vm.eventRoute}/sessions/${presentation.digitalSessionId}`}},[_vm._v(\" \"+_vm._s(presentation.sessionTitle)+\" \")])],1)]):_vm._e(),_c('div',[(presentation.sessionType && presentation.sessionType.trim() !== '')?_c('div',{staticClass:\"d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"material-symbols-rounded mr-2\"},[_vm._v(\" co_present \")]),_vm._v(\" \"+_vm._s(presentation.sessionType)+\" \")]):_vm._e()]),_c('div',[(presentation.presentationTopic && presentation.presentationTopic.trim() !== '')?_c('div',{staticClass:\"d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"material-symbols-rounded mr-2\"},[_vm._v(\" ecg_heart \")]),_vm._v(\"Topic: \"+_vm._s(presentation.presentationTopic)+\" \")]):_vm._e()]),(presentation.presentationRoles && presentation.presentationRoles.trim() !== '')?_c('div',[_c('i',{staticClass:\"las la-6x la-t-plus-2 la-user-tag mr-1\"}),_c('span',{staticClass:\"flags__label\"},[_vm._v(\"Role:\")]),_vm._v(\" \"+_vm._s(_vm.roleFormatted(presentation.presentationRoles))+\" \")]):_vm._e(),(presentation.presentationAbstract && _vm.ressourcesMovedTo365)?_c('div',{staticClass:\"presentation_abstract\"},[_c('b-button',{staticClass:\"presentation_abstract_text\",on:{\"click\":function($event){return _vm.onAbstractView(presentation)}}},[_vm._v(\" Read the abstract > \")])],1):_vm._e()])})]:_vm._e(),(_vm.isMoreDetailsLoading)?[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"15%\"}}),_c('b-skeleton-img',{staticClass:\"mb-5\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}}),_c('b-skeleton-img',{staticClass:\"mb-1\",attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}}),_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"80px\",\"width\":\"100%\"}})]:_vm._e(),(!_vm.isMoreDetailsLoading && _vm.speakerDetails.sessions && _vm.speakerDetails.sessions.length > 0)?[_c('h5',{staticClass:\"mt-5\"},[_vm._v(\"Sessions\")]),_vm._l((_vm.speakerDetails.sessions),function(session,index){return _c('div',{key:index,staticClass:\"speaker__details__presentation px-4 py-3\"},[(session.sessionStartTime)?_c('div',{staticClass:\"presentation_date\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatUnixEpocDayPart\")(session.sessionStartTime))+\" • \"+_vm._s(_vm._f(\"formatUnixEpocTimePart\")(session.sessionStartTime))+\" \")]):_vm._e(),_c('router-link',{staticClass:\"btn-link font-light\",attrs:{\"to\":`/${_vm.eventRoute}/sessions/${session.sessionId}`}},[(session.sessionTitle && session.sessionTitle.trim() !== '')?_c('span',{staticClass:\"speaker__details__presentation__title mb-3\"},[_vm._v(_vm._s(session.sessionTitle))]):_vm._e()]),_c('div',[(session.sessionType && session.sessionType.trim() !== '')?_c('div',{staticClass:\"d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"material-symbols-rounded mr-2\"},[_vm._v(\" co_present \")]),_vm._v(\" \"+_vm._s(session.sessionType)+\" \")]):_vm._e()]),_c('div',[(session.sessionTopic && session.sessionTopic.trim() !== '')?_c('div',{staticClass:\"d-inline-flex align-items-center font-regular\"},[_c('span',{staticClass:\"material-symbols-rounded mr-2\"},[_vm._v(\" ecg_heart \")]),_vm._v(\" \"+_vm._s(session.sessionTopic)+\" \")]):_vm._e()])],1)})]:_vm._e()],2)])]),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"12\"}},[_c('RegisterPromoWidget')],1),_c('b-col',{staticClass:\"pt-3\",attrs:{\"cols\":\"10\",\"md\":\"12\",\"offset\":\"2\",\"offset-md\":\"0\"}},[_c('IndustryBanners')],1)],1)],1),_c('AbstractModal',{attrs:{\"presentationId\":_vm.currentAbstractModalPresentationId,\"visible\":_vm.abstractModalVisible},on:{\"abstract-modal-close\":_vm.onAbstractModalClose,\"abstract-modal-hidden\":_vm.onAbstractModalHidden}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-container fluid>\r\n <div class=\"btn__back mb-2 position-sticky float-lg-left\">\r\n <b-button pill variant=\"clear\" size=\"sm\"\r\n class=\"font-regular mt-2 d-inline d-inline-flex align-items-center border-0\" @click=\"onBackClick\">\r\n <span class=\"material-icons-round mr-2\"> arrow_back </span>\r\n Back\r\n </b-button>\r\n </div>\r\n <b-col cols=\"12\" sm=\"12\" md=\"8\" lg=\"9\" class=\"toggable-main-content m-auto\"\r\n :class=\"isTimelineExpanded ? 'd-none' : 'd-block'\">\r\n <b-row>\r\n <!-- ESC Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\">\r\n <EscBanners />\r\n </b-col>\r\n <!-- SpeakerDetails -->\r\n <b-col cols=\"12\" class=\"my-4\">\r\n <div class=\"speaker__details__wrapper\">\r\n <div class=\"session__details__header\">\r\n <div class=\"d-flex\">\r\n <div class=\"mr-3\">\r\n <b-img class=\"search__card__header__picture border\" :src=\"photoUrl ? photoUrl : defaultPicture\" fluid\r\n alt=\"Speaker's Picture\"></b-img>\r\n </div>\r\n <div class=\"w-100\">\r\n <h3 class=\"speaker__details__content__title mb-0\">\r\n <!-- Name -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <b-skeleton height=\"30px\" width=\"85%\"></b-skeleton>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading\"> {{ speakerDetails.firstName }} {{ speakerDetails.lastName }}\r\n </template>\r\n </h3>\r\n\r\n <!-- Institutions -->\r\n <div class=\"speaker_info mb-2\" v-if=\"isMoreDetailsLoading || speakerDetails.address\">\r\n <template v-if=\"!isMoreDetailsLoading\">\r\n {{ fullAddressFormatted(speakerDetails.address) }}\r\n </template>\r\n </div>\r\n <!-- Twitter -->\r\n <!-- <template v-if=\"!isMoreDetailsLoading && speakerDetails.twitterId\">\r\n <a :href=\"speakerDetails.twitterUrl\" target=\"_blank\">\r\n <span class=\"follow-speaker\"><i class=\"la la-twitter\"></i></span> <span>{{ speakerDetails.twitterId }}</span>\r\n </a>\r\n </template> -->\r\n <!-- ESC Profile + Twitter -->\r\n <template>\r\n <b-list-group horizontal=\"md\" class=\"speakerDetailsLinks\">\r\n <b-list-group-item v-if=\"speakerDetails && esc365ProfileUrl\">\r\n <small>\r\n <a :href=\"esc365ProfileUrl\" class=\"follow-speaker\" target=\"_blank\">\r\n <span class=\"follow-speaker-365\"><img src=\"~@/assets/images/platform/logo-esc-icon.svg\"\r\n alt=\"ESC Logo\" /></span>\r\n <span>ESC 365 Profile</span>\r\n </a>\r\n </small>\r\n </b-list-group-item>\r\n <b-list-group-item v-if=\"!isMoreDetailsLoading && speakerDetails.twitterId\">\r\n <small>\r\n <a :href=\"speakerDetails.twitterUrl\" class=\"follow-speaker\" target=\"_blank\">\r\n <span class=\"follow-speaker-twitter\"><img src=\"~@/assets/images/platform/logo-x.svg\"\r\n alt=\"X Logo\" /></span>\r\n <span>{{ speakerDetails.twitterId }}</span>\r\n </a>\r\n </small>\r\n </b-list-group-item>\r\n </b-list-group>\r\n </template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"speaker__details__content mt-5\">\r\n <!-- Specialities -->\r\n <h5 class=\"speaker__details__content__title\">\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <b-skeleton height=\"30px\" width=\"85%\"></b-skeleton>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading && speakerDetails.specialities\"> Specialities </template>\r\n </h5>\r\n <div class=\"speaker_info\">\r\n <template v-if=\"!isMoreDetailsLoading && speakerDetails.specialities\">\r\n {{ speakerDetails.specialities }}\r\n </template>\r\n </div>\r\n\r\n <!-- Presentations -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <b-skeleton width=\"15%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\" class=\"mb-5\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\" class=\"mb-1\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\"></b-skeleton-img>\r\n </template>\r\n\r\n <template\r\n v-if=\"!isMoreDetailsLoading && speakerDetails.presentations && speakerDetails.presentations.length > 0\">\r\n <h5 class=\"mt-5 mb-3\">Presentations</h5>\r\n\r\n <div v-for=\"(presentation, index) in speakerDetails.presentations\" :key=\"index\"\r\n class=\"speaker__details__presentation px-4 py-3\">\r\n <div class=\"presentation_date\" v-if=\"presentation.presentationStartTime\">\r\n {{ presentation.presentationStartTime | formatUnixEpocDayPart }} • {{\r\n presentation.presentationStartTime | formatUnixEpocTimePart }}\r\n </div>\r\n <span v-if=\"presentation.presentationTitle && presentation.presentationTitle.trim() !== ''\"\r\n class=\"speaker__details__presentation__title\">{{\r\n presentation.presentationTitle\r\n }}</span>\r\n\r\n <div v-if=\"presentation.sessionTitle && presentation.sessionTitle.trim() !== ''\" class=\"mb-3\">\r\n <span variant=\"link\" class=\"d-inline-block align-items-center p-0 font-light text-left\">\r\n Session: <router-link class=\"btn-link font-light\" :to=\"`/${eventRoute}/sessions/${presentation.digitalSessionId}`\"> {{ presentation.sessionTitle }} </router-link>\r\n </span>\r\n </div>\r\n <div>\r\n <div v-if=\"presentation.sessionType && presentation.sessionType.trim() !== ''\"\r\n class=\"d-inline-flex align-items-center font-regular\">\r\n <span class=\"material-symbols-rounded mr-2\"> co_present </span> {{ presentation.sessionType }}\r\n </div>\r\n </div>\r\n <div>\r\n <div v-if=\"presentation.presentationTopic && presentation.presentationTopic.trim() !== ''\"\r\n class=\"d-inline-flex align-items-center font-regular\">\r\n <span class=\"material-symbols-rounded mr-2\"> ecg_heart </span>Topic: {{\r\n presentation.presentationTopic }}\r\n </div>\r\n </div>\r\n <div v-if=\"presentation.presentationRoles && presentation.presentationRoles.trim() !== ''\">\r\n <i class=\"las la-6x la-t-plus-2 la-user-tag mr-1\"></i><span class=\"flags__label\">Role:</span> {{\r\n roleFormatted(presentation.presentationRoles) }}\r\n </div>\r\n <div v-if=\"presentation.presentationAbstract && ressourcesMovedTo365\" class=\"presentation_abstract\">\r\n <b-button @click=\"onAbstractView(presentation)\" class=\"presentation_abstract_text\">\r\n Read the abstract >\r\n </b-button>\r\n </div>\r\n </div>\r\n </template>\r\n\r\n <!-- Sessions -->\r\n <template v-if=\"isMoreDetailsLoading\">\r\n <b-skeleton width=\"15%\" class=\"mb-2\"></b-skeleton>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\" class=\"mb-5\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\" class=\"mb-1\"></b-skeleton-img>\r\n <b-skeleton-img no-aspect height=\"80px\" width=\"100%\"></b-skeleton-img>\r\n </template>\r\n\r\n <template v-if=\"!isMoreDetailsLoading && speakerDetails.sessions && speakerDetails.sessions.length > 0\">\r\n <h5 class=\"mt-5\">Sessions</h5>\r\n\r\n <div v-for=\"(session, index) in speakerDetails.sessions\" :key=\"index\"\r\n class=\"speaker__details__presentation px-4 py-3\">\r\n <div class=\"presentation_date\" v-if=\"session.sessionStartTime\">\r\n {{ session.sessionStartTime | formatUnixEpocDayPart }} • {{ session.sessionStartTime |\r\n formatUnixEpocTimePart }}\r\n </div>\r\n <router-link class=\"btn-link font-light\" :to=\"`/${eventRoute}/sessions/${session.sessionId}`\">\r\n <span v-if=\"session.sessionTitle && session.sessionTitle.trim() !== ''\"\r\n class=\"speaker__details__presentation__title mb-3\">{{\r\n session.sessionTitle\r\n }}</span>\r\n </router-link>\r\n <div>\r\n <div v-if=\"session.sessionType && session.sessionType.trim() !== ''\"\r\n class=\"d-inline-flex align-items-center font-regular\">\r\n <span class=\"material-symbols-rounded mr-2\"> co_present </span> {{ session.sessionType }}\r\n </div>\r\n </div>\r\n <div>\r\n <div v-if=\"session.sessionTopic && session.sessionTopic.trim() !== ''\"\r\n class=\"d-inline-flex align-items-center font-regular\">\r\n <span class=\"material-symbols-rounded mr-2\"> ecg_heart </span> {{ session.sessionTopic }}\r\n </div>\r\n </div>\r\n <!--\r\n <div v-if=\"session.sessionStartTime\">\r\n <i class=\"las la-6x la-t-plus-2 la-clock mr-1\"></i>\r\n <span class=\"flags__label\">Time: </span>\r\n {{ session.sessionStartTime | formatUnixEpocTimePart }}\r\n </div>\r\n <div v-if=\"session.sessionRoles && session.sessionRoles.trim() !== ''\">\r\n <i class=\"las la-6x la-t-plus-2 la-user-tag mr-1\"></i><span class=\"flags__label\">Role:</span> {{ roleFormatted(session.sessionRoles) }}\r\n </div>\r\n -->\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" class=\"pt-3\">\r\n <!-- Register Promo -->\r\n <RegisterPromoWidget />\r\n </b-col>\r\n\r\n <!-- IndustryBanners Banner(s) -->\r\n <b-col cols=\"10\" md=\"12\" offset=\"2\" offset-md=\"0\" class=\"pt-3\">\r\n <IndustryBanners />\r\n </b-col>\r\n </b-row>\r\n </b-col>\r\n <AbstractModal :presentationId=\"currentAbstractModalPresentationId\" :visible=\"abstractModalVisible\"\r\n @abstract-modal-close=\"onAbstractModalClose\" @abstract-modal-hidden=\"onAbstractModalHidden\" />\r\n </b-container>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex';\r\nimport { mapState } from 'vuex';\r\nimport { QueryHelper } from 'src/utils/query-helper';\r\nimport { MediaApiService } from 'src/services/media-api';\r\nimport DefaultPicture from '@/assets/images/platform/default-picture.jpg';\r\n\r\nimport personsMixin from 'src/mixins/personsMixin';\r\nimport openModalMixin from 'src/mixins/openModalMixin';\r\nimport esc365Mixin from 'src/mixins/esc365Mixin';\r\n\r\n// import FavoriteButton from 'src/components/Buttons/FavoriteButton';\r\nimport RegisterPromoWidget from 'src/components/Widgets/RegisterPromoWidget';\r\nimport EscBanners from 'src/components/Banners/EscBanners';\r\nimport IndustryBanners from 'src/components/Banners/IndustryBanners';\r\nimport AbstractModal from 'src/components/Modals/AbstractModal';\r\n\r\nexport default {\r\n name: 'SpeakerDetails',\r\n mixins: [personsMixin, openModalMixin, esc365Mixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners,\r\n // FavoriteButton,\r\n RegisterPromoWidget,\r\n AbstractModal\r\n },\r\n data() {\r\n return {\r\n isMoreDetailsLoading: true,\r\n userId: null,\r\n speakerDetails: null,\r\n defaultPicture: DefaultPicture,\r\n abstractModalPresentationId: null,\r\n abstractModalVisible: false\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['isTimelineExpanded']),\r\n ...mapState({\r\n eventId: (state) => state.app.eventId,\r\n eventRoute: (state) => state.app.eventRoute,\r\n ressourcesMovedTo365: state => state.app.ressourcesMovedTo365,\r\n }),\r\n photoUrl() {\r\n return this.speakerDetails?.photoUrl;\r\n },\r\n esc365ProfileUrl() {\r\n return this.esc365PersonUrl(this.userId);\r\n },\r\n\r\n showAbstractModal: {\r\n get() {\r\n return this.abstractModalVisible;\r\n },\r\n set(show) {\r\n if (this.abstractModalVisible != show) this.abstractModalVisible = show;\r\n }\r\n },\r\n currentAbstractModalPresentationId: {\r\n get() {\r\n return this.abstractModalPresentationId;\r\n },\r\n set(presentationId) {\r\n if (this.abstractModalPresentationId != presentationId) this.abstractModalPresentationId = presentationId;\r\n }\r\n }\r\n },\r\n beforeRouteEnter(to, from, next) {\r\n next((vm) => {\r\n vm.fromRoute = from;\r\n });\r\n },\r\n mounted() {\r\n const speakerFurl = this.$route.params?.speakerFurl;\r\n //console.log(speakerFurl);\r\n const userId = QueryHelper.extractSessionId(speakerFurl);\r\n //console.log(userId);\r\n //console.log('eventid: ' + this.eventId);\r\n if (userId && userId > 0) {\r\n this.userId = userId;\r\n MediaApiService.getSpeakerMoreDetails(this.eventId, userId).then(({ data }) => {\r\n if (data) {\r\n //console.log(data);\r\n this.speakerDetails = data;\r\n this.isMoreDetailsLoading = false;\r\n }\r\n });\r\n }\r\n },\r\n methods: {\r\n onBackClick() {\r\n window.history.back();\r\n },\r\n onAbstractModalClose() {\r\n //console.log('onAbstractModalClose ' + e.presentationId);\r\n this.currentAbstractModalPresentationId = null;\r\n this.showAbstractModal = false;\r\n },\r\n onAbstractView(e) {\r\n //console.log('onAbstractView ' + e.presentationId);\r\n //console.log(e);\r\n this.currentAbstractModalPresentationId = e.presentationId;\r\n this.showAbstractModal = true;\r\n },\r\n onAbstractModalHidden() {\r\n //console.log('onAbstractModalClose ' + e.presentationId);\r\n this.currentAbstractModalPresentationId = null;\r\n this.showAbstractModal = false;\r\n }\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '~@/styles/theme';\r\n\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n\r\n.speaker__details__wrapper {\r\n background: white;\r\n //box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.1);\r\n border-radius: 6px;\r\n width: 100%;\r\n}\r\n\r\n.speaker__details__header__button {\r\n display: block; //inline-block;\r\n position: absolute;\r\n right: 15px;\r\n top: 15px;\r\n padding: 10px;\r\n border-left: solid 1px $grey-lighter;\r\n border-bottom: solid 1px $grey-lighter;\r\n border-radius: 0 6px;\r\n}\r\n\r\n.speaker__details__content__flags {\r\n background: var(--congress-lighter);\r\n border-radius: 6px;\r\n font-size: 0.9rem;\r\n float: right;\r\n padding: 0.2rem 0;\r\n\r\n &__inner {\r\n padding: 0.3rem 1rem 0.4rem;\r\n }\r\n\r\n &__inner:not(:first-child) {\r\n border-top: solid 1px white;\r\n }\r\n}\r\n\r\n.speaker__details__presentation {\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n padding: 0.6rem 0.8rem;\r\n border-radius: 6px;\r\n margin-bottom: 1rem;\r\n\r\n &__title {\r\n display: block;\r\n font-family: 'Interstate WGL Black';\r\n }\r\n\r\n &__person {\r\n display: block;\r\n }\r\n\r\n &__start-time {\r\n display: block;\r\n }\r\n\r\n .material-icons-outlined {\r\n font-size: 20px;\r\n }\r\n\r\n .material-symbols-rounded {\r\n font-size: 22px;\r\n }\r\n}\r\n.btn-link .material-icons-round {\r\n font-size: 20px;\r\n}\r\n.b-skeleton-img {\r\n margin-bottom: 0.8rem;\r\n}\r\n\r\n.b-custom-skeleton-wrapper {\r\n height: 150px;\r\n\r\n & .b-skeleton-img {\r\n margin-left: auto;\r\n margin-bottom: 0;\r\n }\r\n}\r\n\r\n.presentation_date {\r\n font-size: 0.9rem;\r\n font-family: $font-bold;\r\n color: var(--congress);\r\n margin-bottom: 0.8rem;\r\n}\r\n\r\n.speaker__details__content {\r\n margin-top: 0.8rem;\r\n}\r\n\r\n.img-speaker {\r\n height: 10rem;\r\n}\r\n\r\n.speakerDetailsLinks .list-group-item {\r\n padding: 0 1.25rem 0 0;\r\n border: 0;\r\n}\r\n\r\n.speaker__details__presentation__title {\r\n display: contents;\r\n}\r\n\r\n.follow-speaker .la-twitter {\r\n color: #1da1f2;\r\n margin-left: 5px;\r\n font-size: 1.2rem;\r\n}\r\n\r\n.follow-speaker {\r\n position: relative;\r\n -webkit-transition: all 0.3s ease-in-out;\r\n -moz-transition: all 0.3s ease-in-out;\r\n -ms-transition: all 0.3s ease-in-out;\r\n -o-transition: all 0.3s ease-in-out;\r\n transition: all 0.3s ease-in-out;\r\n}\r\n\r\n.follow-speaker:hover {\r\n text-decoration: none;\r\n &:after {\r\n content: \"\";\r\n display: block;\r\n height: 1px;\r\n background: #000000;\r\n margin-top: 2px;\r\n position: absolute;\r\n left: 0;\r\n width: 100%;\r\n }\r\n}\r\n\r\n.follow-speaker * {\r\n vertical-align: middle;\r\n height: 0.9rem;\r\n font-size: 0.9rem;\r\n line-height: 0.9rem;\r\n}\r\n\r\n\r\n\r\n.follow-speaker-365 img {\r\n height: 1rem;\r\n vertical-align: middle;\r\n margin-right: 4px;\r\n}\r\n\r\n.follow-speaker-twitter img {\r\n height: 0.8rem;\r\n vertical-align: middle;\r\n margin-right: 4px;\r\n}\r\n\r\n.search__card__header__picture {\r\n width: 100px;\r\n border-radius: 1.25rem;\r\n border-left: 1px solid #e5e5e5;\r\n border-bottom: 1px solid #e5e5e5;\r\n}\r\n\r\n.presentation_abstract {\r\n text-align: end;\r\n}\r\n\r\n.presentation_abstract_text {\r\n color: var(--congress);\r\n}\r\n\r\n@media (min-width: 1024px) {\r\n .btn__back {\r\n position: sticky;\r\n top: 120px;\r\n height: 40px;\r\n }\r\n\r\n .btn__back button {\r\n position: absolute;\r\n }\r\n}\r\n\r\n@media (max-width: 992px) {\r\n .btn__back {\r\n position: relative !important;\r\n top: 10px;\r\n }\r\n}\r\n\r\n@media (max-width: 576px) {\r\n .search__card__header__picture {\r\n width: 80px;\r\n top: -3rem;\r\n }\r\n\r\n .speaker__details__content__title,\r\n .speaker_info {\r\n max-width: 100%;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpeakerDetails.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpeakerDetails.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SpeakerDetails.vue?vue&type=template&id=7a882114&scoped=true\"\nimport script from \"./SpeakerDetails.vue?vue&type=script&lang=js\"\nexport * from \"./SpeakerDetails.vue?vue&type=script&lang=js\"\nimport style0 from \"./SpeakerDetails.vue?vue&type=style&index=0&id=7a882114&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a882114\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-col',{staticClass:\"toggable-main-content pt-4\",class:_vm.isTimelineExpanded ? 'd-block d-md-none' : 'd-block',attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"8\",\"lg\":\"9\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":_vm.postCongressMode ? 12 : 10,\"md\":\"12\",\"offset\":_vm.postCongressMode ? 0 : 2,\"offset-md\":\"0\"}},[_c('EscBanners')],1),_c('div',{staticClass:\"pt-5 col-12 text-center mb-4\"},[_c('b-img',{attrs:{\"src\":_vm.floorplanUrl,\"fluid\":\"\",\"alt\":\"Responsive image\"}})],1),_c('b-col',{staticClass:\"pt-1 pb-3\",attrs:{\"cols\":\"12\",\"md\":\"12\",\"offset-md\":\"0\"}},[_c('IndustryBanners')],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <!-- main content column -->\r\n <b-col cols=\"12\" sm=\"12\" md=\"8\" lg=\"9\" class=\"toggable-main-content pt-4\" :class=\"isTimelineExpanded ? 'd-block d-md-none' : 'd-block'\">\r\n <b-row>\r\n <!-- ESC Banner(s) -->\r\n <b-col :cols=\"postCongressMode ? 12 : 10\" md=\"12\" :offset=\"postCongressMode ? 0 : 2\" offset-md=\"0\">\r\n <EscBanners />\r\n </b-col>\r\n\r\n <!-- Content -->\r\n <div class=\"pt-5 col-12 text-center mb-4\">\r\n <!--\r\n <h2><b>Congress Floorplan</b></h2>\r\n -->\r\n <b-img :src=\"floorplanUrl\" fluid alt=\"Responsive image\"></b-img>\r\n </div>\r\n\r\n <!-- Industry Banner(s) -->\r\n <b-col cols=\"12\" md=\"12\" offset-md=\"0\" class=\"pt-1 pb-3\">\r\n <IndustryBanners />\r\n </b-col>\r\n </b-row>\r\n </b-col>\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n\r\n import IndustryBanners from 'src/components/Banners/IndustryBanners';\r\n import EscBanners from 'src/components/Banners/EscBanners';\r\n\r\n export default {\r\n name: 'VenueOverview',\r\n mixins: [openModalMixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners\r\n },\r\n computed: {\r\n ...mapGetters(['isTimelineExpanded']),\r\n ...mapState({\r\n eventId: state => state.app.eventId,\r\n postCongressMode: state => state.app.postCongressMode,\r\n preCongressMode: state => state.app.preCongressMode,\r\n appVersion: state => state.app.version\r\n }),\r\n floorplanUrl() {\r\n return require(`@/assets/images/congress/${this.eventId}/venue/overview.png`);\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VenueOverview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VenueOverview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VenueOverview.vue?vue&type=template&id=2977c15b&scoped=true\"\nimport script from \"./VenueOverview.vue?vue&type=script&lang=js\"\nexport * from \"./VenueOverview.vue?vue&type=script&lang=js\"\nimport style0 from \"./VenueOverview.vue?vue&type=style&index=0&id=2977c15b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2977c15b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-col',{staticClass:\"toggable-main-content pt-0 px-0 overflow-hidden\",class:_vm.isTimelineExpanded ? 'd-block d-md-none' : 'd-flex flex-column',attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"hero__banner\"},[(!_vm.isMobileAppPage && !_vm.isHomePage)?_c('b-col',{staticClass:\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\",style:({ backgroundImage: `url('/congress/img/events/${_vm.eventId}/hero-bg.png?v=${this.appVersion}')` }),attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"eventInfo\"},[_c('h1',[_vm._v(\"Happening now\")]),_c('div',{staticClass:\"eventDate mt-3\"}),_c('div',{staticClass:\"eventDate\"},[_vm._v(\"Please note that the programme times are displayed on local times in \"+_vm._s(_vm.locationEvent)+\".\")])])]):_vm._e()],1),_c('b-row',[_c('b-col',{attrs:{\"cols\":_vm.postCongressMode ? 12 : 10,\"md\":\"12\",\"offset\":_vm.postCongressMode ? 0 : 2,\"offset-md\":\"0\"}},[_c('EscBanners',{attrs:{\"filter\":\"live\"}})],1)],1),_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"pt-3 pb-2 px-4\",attrs:{\"cols\":\"12\"}},[_c('HomeTabs',{attrs:{\"eventId\":this.eventId}})],1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"pt-1 pb-3\",attrs:{\"cols\":\"12\",\"md\":\"12\",\"offset-md\":\"0\"}},[_c('IndustryBanners',{attrs:{\"filter\":\"live\"}})],1)],1),_c('b-row',{staticClass:\"mosaic-row no-gutters\"},[_c('b-col',{staticClass:\"pt-2 mosaic-container\",attrs:{\"cols\":\"12\"}},[(_vm.isMosaicEnabled)?_c('MosaicWidget',{attrs:{\"mosaicUploadUrl\":_vm.mosaicUploadUrl,\"lang\":\"en\"}}):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mosaic-wrapper\"},[_c('div',{staticClass:\"mosaic-container\"},[_c('div',{staticClass:\"mosaic-bg\",style:({ backgroundImage: `url('${_vm.publicPath}img/events/${_vm.eventId}/mosaic-bg.png?v=${this.appVersion}')` })}),_c('b-container',[_c('b-row',[_c('b-col',{staticClass:\"mosaic-header mt-2 mt-lg-5\",attrs:{\"cols\":\"12\",\"lg\":\"5\"}},[_c('div',{staticClass:\"title-heading text-center text-lg-left ml-lg-5\"},[_c('h3',{staticClass:\"heading text-white mb-4 mt-4\"},[_vm._v(\"EACVI - Wall of fame\")]),_c('p',{staticClass:\"para-desc text-white\"},[_vm._v(\"We will miss seeing you, but to capture the moment please join our wall of fame!\")]),_c('div',{staticClass:\"mt-4 pt-2 mb-2 mb-lg-4\"},[(_vm.mosaicUploadUrl)?_c('a',{staticClass:\"btn btn-outline-secondary mb-4\",attrs:{\"href\":_vm.mosaicUploadUrl,\"target\":\"_blank\"}},[_vm._v(\" Take your picture \"),_c('i',{staticClass:\"las la-camera la-4x la-t-plus-3\"})]):_vm._e()])])]),_c('div',{staticClass:\"col-lg-7 col-12 mt-4 pt-2 mt-sm-0 pt-sm-0 mb-4\"},[_c('div',{staticClass:\"pt-3 pb-3 col-md-8 col-12 offset-md-2 mt-n5\"},[_c('b-overlay',{staticClass:\"embed-responsive embed-responsive-1by1\",attrs:{\"show\":_vm.isLoading}},[_c('div',{attrs:{\"id\":\"noUpload\"},on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return (e => {\n e.stopPropagation();\n }).apply(null, arguments)}}}),_c('iframe',{ref:\"mosaicIframe\",staticClass:\"embed-responsive-item\",class:{ 'd-none': _vm.isLoading },attrs:{\"contenteditable\":\"“trueâ€\",\"id\":_vm.iframeId,\"src\":_vm.mosaicIframeUrl},on:{\"load\":_vm.onIframeLoaded}})])],1)])],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"mosaic-wrapper\">\r\n <div class=\"mosaic-container\">\r\n <div class=\"mosaic-bg\" :style=\"{ backgroundImage: `url('${publicPath}img/events/${eventId}/mosaic-bg.png?v=${this.appVersion}')` }\"></div>\r\n\r\n <b-container>\r\n <b-row>\r\n <b-col cols=\"12\" lg=\"5\" class=\"mosaic-header mt-2 mt-lg-5\">\r\n <div class=\"title-heading text-center text-lg-left ml-lg-5\">\r\n <h3 class=\"heading text-white mb-4 mt-4\">EACVI - Wall of fame</h3>\r\n <p class=\"para-desc text-white\">We will miss seeing you, but to capture the moment please join our wall of fame!</p>\r\n <div class=\"mt-4 pt-2 mb-2 mb-lg-4\">\r\n <a v-if=\"mosaicUploadUrl\" :href=\"mosaicUploadUrl\" target=\"_blank\" class=\"btn btn-outline-secondary mb-4\">\r\n Take your picture <i class=\"las la-camera la-4x la-t-plus-3\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n </b-col>\r\n\r\n <div class=\"col-lg-7 col-12 mt-4 pt-2 mt-sm-0 pt-sm-0 mb-4\">\r\n <div class=\"pt-3 pb-3 col-md-8 col-12 offset-md-2 mt-n5\">\r\n <b-overlay :show=\"isLoading\" class=\"embed-responsive embed-responsive-1by1\">\r\n <div\r\n id=\"noUpload\"\r\n @click.self=\"\r\n e => {\r\n e.stopPropagation();\r\n }\r\n \"\r\n ></div>\r\n <!-- MosaicWidget -->\r\n <iframe\r\n contenteditable=\"“trueâ€\"\r\n :id=\"iframeId\"\r\n ref=\"mosaicIframe\"\r\n :src=\"mosaicIframeUrl\"\r\n @load=\"onIframeLoaded\"\r\n class=\"embed-responsive-item\"\r\n :class=\"{ 'd-none': isLoading }\"\r\n >\r\n </iframe>\r\n </b-overlay>\r\n </div>\r\n </div>\r\n </b-row>\r\n </b-container>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n\r\n export default {\r\n name: 'MosaicWidget',\r\n props: {\r\n lang: {\r\n type: String,\r\n default: 'en'\r\n },\r\n mosaicUploadUrl: {\r\n type: String\r\n }\r\n },\r\n data() {\r\n return {\r\n iframeId: 'mosaicIframe',\r\n isLoading: true,\r\n publicPath: process.env.BASE_URL\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n appVersion: state => state.app.version,\r\n eventId: state => state.app.eventId\r\n }),\r\n mosaicIframeUrl() {\r\n return `${process.env.VUE_APP_MOSAIC_IFRAME_URL}?lg=${this.lang}`;\r\n }\r\n /*\r\n mosaicUploadUrl() {\r\n return process.env.VUE_APP_MOSAIC_UPLOAD_URL;\r\n },\r\n */\r\n },\r\n methods: {\r\n onIframeLoaded() {\r\n // this.$refs.mosaicIframe.contentDocument.document.body.style.display = 'none';\r\n this.isLoading = false;\r\n this.$emit('loaded');\r\n }\r\n }\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n #noUpload {\r\n height: 40px;\r\n width: 99.99%;\r\n // padding:0px 10px;\r\n background-color: white;\r\n //background-image: url('/congress/img/events/980/mosaic-logo.jpg');\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: 5px 2px;\r\n position: absolute;\r\n z-index: 1;\r\n top: 0;\r\n left: 0;\r\n cursor: default;\r\n }\r\n\r\n #app .mosaic-wrapper .b-overlay-wrap {\r\n min-height: auto;\r\n }\r\n .embed-responsive {\r\n height: 100%;\r\n border-radius: 10px !important;\r\n }\r\n\r\n .mosaic-wrapper {\r\n margin-top: 4rem;\r\n }\r\n\r\n .mosaic-bg {\r\n position: absolute;\r\n left: -39px;\r\n right: 0;\r\n height: 100%;\r\n width: calc(100% + 4.9rem);\r\n background-image: url('~@/assets/images/congress/mosaic-bg.jpg');\r\n // background-color: #c6168d;\r\n background-size: cover;\r\n // border-radius: 12px;\r\n }\r\n\r\n @media (max-width: 767.98px) {\r\n .mosaic-bg {\r\n position: absolute;\r\n left: -59px;\r\n right: 0;\r\n height: 100%;\r\n width: calc(100% + 4.25rem);\r\n }\r\n }\r\n\r\n @media only screen and (min-width: 992px) and (max-width: 1325px) {\r\n .mosaic-wrapper .container .mt-5 {\r\n margin-top: 0 !important;\r\n }\r\n\r\n .mosaic-wrapper .col-lg-7 .mt-n5 {\r\n margin-top: 3rem !important;\r\n }\r\n }\r\n\r\n @media only screen and (min-width: 576px) and (max-width: 991px) {\r\n .mosaic-header {\r\n margin-bottom: 2rem !important;\r\n }\r\n }\r\n\r\n @media only screen and (max-width: 1325px) {\r\n .mosaic-wrapper {\r\n margin-top: 1rem;\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MosaicWidget.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MosaicWidget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MosaicWidget.vue?vue&type=template&id=a1327b64&scoped=true\"\nimport script from \"./MosaicWidget.vue?vue&type=script&lang=js\"\nexport * from \"./MosaicWidget.vue?vue&type=script&lang=js\"\nimport style0 from \"./MosaicWidget.vue?vue&type=style&index=0&id=a1327b64&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a1327b64\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"px-md-4 px-3\"},[_c('b-tabs',{attrs:{\"content-class\":\"mt-3\",\"fill\":\"\"}},[_c('b-tab',{attrs:{\"title\":\"\",\"active\":!_vm.postCongressMode},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('b-card-title',[_c('span',{staticClass:\"tab__title\"},[_vm._v(\" Happening now \")])])]},proxy:true}])},[_c('b-alert',{attrs:{\"show\":_vm.postCongressMode,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" \"+_vm._s(this.confCmsData.postcongress_happening_now_message)+\" \")],1),(!_vm.postCongressMode)?_c('div',[_c('SessionsBlock',{attrs:{\"eventId\":this.eventId,\"mode\":\"Live\"}})],1):_vm._e()],1),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('b-card-title',[_c('span',{staticClass:\"tab__title\"},[_vm._v(\" Coming next \")])])]},proxy:true}])},[_c('b-alert',{attrs:{\"show\":_vm.postCongressMode,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" \"+_vm._s(this.confCmsData.postcongress_coming_next_message)+\" \")],1),(!_vm.postCongressMode)?_c('div',[_c('ChannelSessionsBlock',{attrs:{\"eventId\":this.eventId,\"itemTake\":4}})],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.isLoading && _vm.channels && _vm.channels.length == 0)?_c('div',[_c('b-alert',{attrs:{\"show\":true,\"variant\":\"congress\"}},[_c('font-awesome-icon',{staticClass:\"alert_icon la-t-plus-1 mr-2 float-left\",attrs:{\"icon\":\"info-circle\",\"size\":\"lg\"}}),_vm._v(\" Stay tuned for the next session. \")],1)],1):_vm._e(),(_vm.isLoading)?[_c('b-row',{staticClass:\"channel-row\"},[_c('b-col',{staticClass:\"text-left pb-2\",attrs:{\"cols\":\"12\"}},[_c('b-skeleton',{attrs:{\"width\":\"25%\"}})],1),_vm._l((4),function(index){return _c('b-col',{key:index,staticClass:\"pb-2 pb-md-4 px-1 px-md-2\",attrs:{\"cols\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('b-skeleton-img',{attrs:{\"no-aspect\":\"\",\"height\":\"320px\"}})],1)})],2)]:_vm._e(),(!_vm.isLoading && _vm.channels && _vm.channels.length > 0)?_vm._l((_vm.channels),function(channel){return _c('b-row',{key:channel.id,staticClass:\"channel-row mt-3\"},[_c('b-col',{staticClass:\"text-left pb-2 font-black\",attrs:{\"cols\":\"12\"}},[_c('span',{staticClass:\"channel-row__text\"},[_vm._v(_vm._s(channel.name))])]),_vm._l((channel.items),function(item){return _c('b-col',{key:item.id,staticClass:\"card-deck pb-2 pb-md-4 px-0 mx-0\",attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('SessionCard',{attrs:{\"currentSession\":item,\"isLive\":item.isLiveNow,\"mode\":\"Coming\"}})],1)})],2)}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <div v-if=\"!isLoading && channels && channels.length == 0\">\r\n <!-- No upcoming sessions -->\r\n <b-alert :show=\"true\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n Stay tuned for the next session.\r\n </b-alert>\r\n </div>\r\n\r\n <!-- IsLoadingTemplate -->\r\n <template v-if=\"isLoading\">\r\n <b-row class=\"channel-row\">\r\n <b-col cols=\"12\" class=\"text-left pb-2\">\r\n <b-skeleton width=\"25%\"></b-skeleton>\r\n </b-col>\r\n\r\n <b-col cols=\"6\" md=\"4\" lg=\"3\" v-for=\"index in 4\" :key=\"index\" class=\"pb-2 pb-md-4 px-1 px-md-2\">\r\n <b-skeleton-img no-aspect height=\"320px\"></b-skeleton-img>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n\r\n <!-- MainTemplate -->\r\n <template v-if=\"!isLoading && channels && channels.length > 0\">\r\n <b-row v-for=\"channel in channels\" :key=\"channel.id\" class=\"channel-row mt-3\">\r\n <b-col cols=\"12\" class=\"text-left pb-2 font-black\">\r\n <span class=\"channel-row__text\">{{ channel.name }}</span>\r\n </b-col>\r\n\r\n <b-col cols=\"12\" md=\"6\" lg=\"4\" xl=\"3\" class=\"card-deck pb-2 pb-md-4 px-0 mx-0\" v-for=\"item in channel.items\" :key=\"item.id\">\r\n <SessionCard :currentSession=\"item\" :isLive=\"item.isLiveNow\" mode=\"Coming\"></SessionCard>\r\n </b-col>\r\n </b-row>\r\n </template>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { MediaApiService } from 'src/services/media-api';\r\n import SessionCard from 'src/components/Cards/SessionCard';\r\n import { mapGetters } from 'vuex';\r\n\r\n export default {\r\n name: 'ChannelSessionsBlock',\r\n props: {\r\n eventId: Number,\r\n itemTake: Number,\r\n },\r\n components: {\r\n SessionCard,\r\n },\r\n data() {\r\n return {\r\n isLoading: true,\r\n channels: null,\r\n fetchComingSessionsJob: null,\r\n };\r\n },\r\n computed: {\r\n poolingLiveSessionsInterval() {\r\n return parseInt(process.env.VUE_APP_POOLING_LIVE_SESSIONS_INTERVAL);\r\n },\r\n ...mapGetters(['isPoolingEnabled']),\r\n },\r\n mounted() {\r\n this.fetchComingSessions();\r\n // Polling coming sessions...\r\n this.fetchComingSessionsJob = setInterval(() => {\r\n if (this.isPoolingEnabled) {\r\n this.fetchComingSessions();\r\n }\r\n }, this.poolingLiveSessionsInterval);\r\n },\r\n methods: {\r\n fetchComingSessions() {\r\n MediaApiService.getTimeLineComing(this.eventId, this.itemTake).then(({ data }) => {\r\n this.isLoading = false;\r\n if (data) {\r\n this.channels = data;\r\n }\r\n });\r\n },\r\n },\r\n watch: {\r\n isPoolingEnabled(enabled) {\r\n if (enabled) {\r\n this.fetchComingSessions();\r\n }\r\n },\r\n },\r\n beforeDestroy() {\r\n clearInterval(this.fetchComingSessionsJob);\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .channel-row {\r\n @include media-breakpoint-down(lg) {\r\n :nth-child(6) {\r\n display: none;\r\n }\r\n }\r\n @include media-breakpoint-down(md) {\r\n :nth-child(5) {\r\n display: none;\r\n }\r\n }\r\n @include media-breakpoint-down(sm) {\r\n :nth-child(4) {\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n .channel-row__text {\r\n color: $grey-dark;\r\n text-transform: uppercase;\r\n }\r\n\r\n .alert_icon {\r\n color: var(--congress-dark);\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChannelSessionsBlock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChannelSessionsBlock.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChannelSessionsBlock.vue?vue&type=template&id=268eae24&scoped=true\"\nimport script from \"./ChannelSessionsBlock.vue?vue&type=script&lang=js\"\nexport * from \"./ChannelSessionsBlock.vue?vue&type=script&lang=js\"\nimport style0 from \"./ChannelSessionsBlock.vue?vue&type=style&index=0&id=268eae24&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"268eae24\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"px-md-4 px-3\">\r\n <b-tabs content-class=\"mt-3\" fill>\r\n <!-- Happening now -->\r\n <b-tab title=\"\" :active=\"!postCongressMode\">\r\n <template #title>\r\n <b-card-title>\r\n <span class=\"tab__title\"> Happening now </span>\r\n </b-card-title>\r\n </template>\r\n <!-- LiveSessions Now -->\r\n <!-- After Congress -->\r\n <b-alert :show=\"postCongressMode\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n <!--\r\n Thank you! It was a pleasure to welcome you to {{ this.confCmsData.congress_name }}.\r\n You can now review all presentations on demand until {{ this.confCmsData.date_on_demand_close | formatUnixEpocDayPartWithYear }}.\r\n -->\r\n {{ this.confCmsData.postcongress_happening_now_message }}\r\n </b-alert>\r\n <!-- During Congress -->\r\n <div v-if=\"!postCongressMode\">\r\n <SessionsBlock :eventId=\"this.eventId\" mode=\"Live\"></SessionsBlock>\r\n </div>\r\n </b-tab>\r\n\r\n <!-- Coming Next -->\r\n <b-tab>\r\n <template #title>\r\n <b-card-title>\r\n <span class=\"tab__title\"> Coming next </span>\r\n </b-card-title>\r\n </template>\r\n <!-- After Congress -->\r\n <b-alert :show=\"postCongressMode\" variant=\"congress\">\r\n <font-awesome-icon icon=\"info-circle\" size=\"lg\" class=\"alert_icon la-t-plus-1 mr-2 float-left\" />\r\n <!--\r\n It’s never too early to start planning.\r\n Put it in your agenda now: our next congress will be\r\n {{ this.confCmsData.date_next_congress_start | formatUnixEpocDayPart }} - {{ this.confCmsData.date_next_congress_end | formatUnixEpocDayPartWithYear }}.\r\n -->\r\n {{ this.confCmsData.postcongress_coming_next_message }}\r\n </b-alert>\r\n <!-- During Congress -->\r\n <div v-if=\"!postCongressMode\">\r\n <ChannelSessionsBlock :eventId=\"this.eventId\" :itemTake=\"4\"></ChannelSessionsBlock>\r\n </div>\r\n </b-tab>\r\n\r\n </b-tabs>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n\r\n import SessionsBlock from 'src/components/Blocks/SessionsBlock';\r\n import ChannelSessionsBlock from 'src/components/Blocks/ChannelSessionsBlock';\r\n\r\n export default {\r\n name: 'HomeTabs',\r\n components: {\r\n SessionsBlock,\r\n ChannelSessionsBlock,\r\n },\r\n props: {\r\n eventId: Number,\r\n },\r\n data() {\r\n return {\r\n on_demand_close_date: null,\r\n next_congress_dates: null,\r\n congress_name: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n confCmsData: (state) => state.app.confCmsData,\r\n }),\r\n },\r\n mounted() {\r\n // If needed...\r\n },\r\n methods: {},\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n\r\n .alert_icon {\r\n color: var(--congress-dark);\r\n }\r\n</style>\r\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeTabs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeTabs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HomeTabs.vue?vue&type=template&id=6b91db73&scoped=true\"\nimport script from \"./HomeTabs.vue?vue&type=script&lang=js\"\nexport * from \"./HomeTabs.vue?vue&type=script&lang=js\"\nimport style0 from \"./HomeTabs.vue?vue&type=style&index=0&id=6b91db73&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b91db73\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <!-- main content column -->\r\n <b-col cols=\"12\" class=\"toggable-main-content pt-0 px-0 overflow-hidden\" :class=\"isTimelineExpanded ? 'd-block d-md-none' : 'd-flex flex-column'\">\r\n <!-- \r\n ========================================================================================================================================================================\r\n HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <div class=\"hero__banner\">\r\n <b-col\r\n v-if=\"!isMobileAppPage && !isHomePage\"\r\n cols=\"12\"\r\n class=\"hero__bg pt-5 px-3 px-md-0 d-flex justify-content-left\"\r\n :style=\"{ backgroundImage: `url('/congress/img/events/${eventId}/hero-bg.png?v=${this.appVersion}')` }\"\r\n >\r\n <div class=\"eventInfo\">\r\n <h1>Happening now</h1>\r\n <div class=\"eventDate mt-3\"></div>\r\n <div class=\"eventDate\">Please note that the programme times are displayed on local times in {{ locationEvent }}.</div>\r\n </div>\r\n </b-col>\r\n </div>\r\n <!-- \r\n ========================================================================================================================================================================\r\n END HERO BANNER\r\n ========================================================================================================================================================================\r\n -->\r\n <b-row>\r\n <!-- ESC Banner(s) -->\r\n <b-col :cols=\"postCongressMode ? 12 : 10\" md=\"12\" :offset=\"postCongressMode ? 0 : 2\" offset-md=\"0\">\r\n <EscBanners filter=\"live\" />\r\n </b-col>\r\n </b-row>\r\n <!-- home tabs (happening now & replays) -->\r\n <b-row class=\"no-gutters\">\r\n <b-col cols=\"12\" class=\"pt-3 pb-2 px-4\">\r\n <HomeTabs :eventId=\"this.eventId\" />\r\n </b-col>\r\n </b-row>\r\n <b-row no-gutters>\r\n <!-- Industry Banner(s) -->\r\n <b-col cols=\"12\" md=\"12\" offset-md=\"0\" class=\"pt-1 pb-3\">\r\n <IndustryBanners filter=\"live\" />\r\n </b-col>\r\n </b-row>\r\n <b-row class=\"mosaic-row no-gutters\">\r\n <b-col cols=\"12\" class=\"pt-2 mosaic-container\">\r\n <MosaicWidget v-if=\"isMosaicEnabled\" :mosaicUploadUrl=\"mosaicUploadUrl\" lang=\"en\" />\r\n </b-col>\r\n </b-row>\r\n </b-col>\r\n\r\n <!-- twitter feed column -->\r\n <!--\r\n <b-col cols=\"2\" class=\"twitter-widget-wrapper p-2\">\r\n <TwitterWidget :limit=4 />\r\n </b-col>\r\n -->\r\n</template>\r\n\r\n<script>\r\n import { mapGetters, mapState } from 'vuex';\r\n import openModalMixin from 'src/mixins/openModalMixin';\r\n import { constants } from 'src/constants';\r\n import IndustryBanners from 'src/components/Banners/IndustryBanners';\r\n import EscBanners from 'src/components/Banners/EscBanners';\r\n import MosaicWidget from 'src/components/Widgets/MosaicWidget';\r\n import HomeTabs from './components/HomeTabs';\r\n\r\n export default {\r\n name: 'Home',\r\n mixins: [openModalMixin],\r\n components: {\r\n EscBanners,\r\n IndustryBanners,\r\n HomeTabs,\r\n MosaicWidget,\r\n },\r\n data() {\r\n return {\r\n publicPath: process.env.BASE_URL,\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['isTimelineExpanded']),\r\n ...mapState({\r\n appVersion: (state) => state.app.version,\r\n eventId: (state) => state.app.eventId,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n homeCmsData: (state) => state.app.homeCmsData,\r\n chatParticipantConfig: (state) => state.app.chatParticipantConfig,\r\n locationEvent: (state) => state.app.locationEvent,\r\n }),\r\n isMosaicEnabled() {\r\n return this.chatParticipantConfig && this.chatParticipantConfig.mosaicEventId && this.chatParticipantConfig.mosaicEventId == this.eventId;\r\n },\r\n mosaicUploadUrl() {\r\n return null; //this.chatParticipantConfig && this.chatParticipantConfig.mosaicRoute;\r\n },\r\n isHomePage() {\r\n return this.$route.path === `/${this.eventRoute}` || this.$route.path === `/${this.eventRoute}/` || this.$route.path === `/${this.eventRoute}/home`;\r\n },\r\n isMobileAppPage() {\r\n const pagesWithoutTimeline = [\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_PRE_HOME}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_HAPPENING_NOW}`,\r\n `${constants.ROUTE_MOBILE_APP}/${constants.ROUTE_MOBILE_APP_INTERACTIVITY}`,\r\n ];\r\n return pagesWithoutTimeline.map((x) => `/${this.eventRoute}/${x}`).includes(this.$route.path);\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import '~@/styles/theme';\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n .home__bg {\r\n // background: no-repeat center center fixed;\r\n -webkit-background-size: cover;\r\n -moz-background-size: cover;\r\n -o-background-size: cover;\r\n background-size: cover;\r\n background: no-repeat;\r\n background-color: var(--congress-dark);\r\n background-position: top center;\r\n border-radius: 6px;\r\n }\r\n\r\n .home__countdown__wrapper {\r\n color: white;\r\n }\r\n\r\n /*\r\n.mosaic-row\r\n{\r\n margin-top:500px;\r\n}\r\n\r\n.mosaic-container\r\n{\r\n position: absolute;\r\n bottom:0;\r\n display: inline-block;\r\n\r\n}\r\n*/\r\n\r\n /* Mosaic */\r\n @media (max-width: 767.98px) {\r\n .mosaic-row {\r\n position: relative;\r\n left: 0;\r\n right: 0;\r\n margin-left: 15px !important;\r\n width: inherit;\r\n z-index: 1;\r\n }\r\n }\r\n\r\n @media screen and (max-width: 767px) {\r\n .main-container {\r\n padding-right: 0 !important;\r\n }\r\n }\r\n\r\n @media screen and (min-width: 992px) {\r\n .toggable-main-content > .row {\r\n /*margin-bottom: 300px;*/\r\n }\r\n\r\n .mosaic-row {\r\n /*margin-bottom: auto !important;*/\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=936e601c&scoped=true\"\nimport script from \"./Home.vue?vue&type=script&lang=js\"\nexport * from \"./Home.vue?vue&type=script&lang=js\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=936e601c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"936e601c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.isLoading || !_vm.partnerResource)?_c('fragment',[(_vm.partnerResource)?_c('MobileAppChannel',{attrs:{\"channelId\":_vm.partnerResource.id}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('b-container',{staticClass:\"m-0 p-0 bg-gray bg-full-page\",attrs:{\"fluid\":\"\"}},[_c('b-col',{staticClass:\"m-0 p-0 d-block\",attrs:{\"cols\":\"12\"}},[(!_vm.isMetadataLoading)?[_c('b-row',[(false)?_c('b-col',{staticClass:\"d-lg-none\",attrs:{\"cols\":\"12\"}},[_c('h1',[_vm._v(\" \"+_vm._s(this.session.title)),(this.session.subTitle)?_c('span',[_vm._v(\" - \"+_vm._s(this.session.subTitle))]):_vm._e()])]):_vm._e(),(false && _vm.EscDisclaimer && _vm.EscDisclaimer.trim() !== '')?_c('b-col',{staticClass:\"pb-2 pb-lg-4\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"disclaimer__wrapper\"},[_c('div',{staticClass:\"disclaimer__text\",domProps:{\"innerHTML\":_vm._s(_vm.EscDisclaimer)}})])]):_vm._e(),(false && _vm.session.disclaimer && _vm.session.disclaimer.trim() !== '')?_c('b-col',{staticClass:\"pb-2 pb-lg-4\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"disclaimer__wrapper\"},[_c('div',{staticClass:\"disclaimer__text\",domProps:{\"innerHTML\":_vm._s(_vm.session.disclaimer )}})])]):_vm._e(),(!_vm.isLogged)?[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('LogginWidget',{staticClass:\"rounded-lg mt-5\",staticStyle:{\"background\":\"#e9ecef\",\"align-content\":\"center\"},attrs:{\"forceCheckAccess\":true,\"headerText\":\"Access restricted to registered participants\",\"buttonText\":\"Sign in\",\"message\":!_vm.postCongressMode ? `Please sign in to access the congress or register - it's not too late!` : `Please sign in to access the congress.`,\"isMemberExclusive\":_vm.isMemberExclusive}})],1)]:(!_vm.hasAccess)?[_c('b-col',{staticClass:\"m-0 p-0\",attrs:{\"cols\":\"12\"}},[_c('RegisterWidget',{staticStyle:{\"background\":\"#e9ecef\",\"align-content\":\"center\"},attrs:{\"headerText\":\"Access restricted to registered participants\",\"linkText\":!_vm.postCongressMode ? `I have already registered and want to access the live event.` : `I have already registered and want to access the content.`,\"buttonText\":!_vm.postCongressMode ? `Register Now` : ``,\"showButton\":!_vm.postCongressMode,\"message\":\"This content is only available to users who have registered to the event.\",\"isMemberExclusive\":_vm.isMemberExclusive}})],1)]:[_c('b-col',{staticClass:\"mb-2 mb-lg-0\",attrs:{\"cols\":\"12\"}},[_c('BrightcovePlayer',{key:this.videoId,ref:\"bcPlayer\",staticClass:\"modal-widget mb-lg-4\",attrs:{\"accountId\":this.brightcoveAccountId,\"playerId\":this.brightcovePlayerId,\"videoId\":this.videoId},on:{\"loaded\":_vm.onBrightcovePlayerLoaded}})],1),(false)?_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"4\"}},[_c('PigeonWidget',{key:this.session.interactRoomId,staticClass:\"modal-widget\",attrs:{\"pigeonId\":this.session.interactRoomId},on:{\"loaded\":_vm.onPigeonWidgetLoaded}})],1):_vm._e()]],2)]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <b-container fluid class=\"m-0 p-0 bg-gray bg-full-page\">\r\n <b-col cols=\"12\" class=\"m-0 p-0 d-block\">\r\n <template v-if=\"!isMetadataLoading\">\r\n <b-row>\r\n <b-col v-if=\"false\" cols=\"12\" class=\"d-lg-none\">\r\n <!-- Informations -->\r\n <h1>\r\n {{ this.session.title }}<span v-if=\"this.session.subTitle\"> - {{ this.session.subTitle }}</span>\r\n </h1>\r\n </b-col>\r\n <b-col cols=\"12\" class=\"pb-2 pb-lg-4\" v-if=\"false && EscDisclaimer && EscDisclaimer.trim() !== ''\">\r\n <!-- ESC Disclaimer -->\r\n <div class=\"disclaimer__wrapper\">\r\n <div class=\"disclaimer__text\" v-html=\"EscDisclaimer\"></div>\r\n </div>\r\n </b-col>\r\n <b-col cols=\"12\" class=\"pb-2 pb-lg-4\" v-if=\"false && session.disclaimer && session.disclaimer.trim() !== ''\">\r\n <!-- Disclaimer -->\r\n <div class=\"disclaimer__wrapper\">\r\n <div class=\"disclaimer__text\" v-html=\"session.disclaimer \"></div>\r\n </div>\r\n </b-col>\r\n <!-- Not logged -->\r\n <template v-if=\"!isLogged\">\r\n <b-col cols=\"12\">\r\n <LogginWidget\r\n style=\"background: #e9ecef; align-content: center\"\r\n class=\"rounded-lg mt-5\"\r\n :forceCheckAccess=\"true\"\r\n headerText=\"Access restricted to registered participants\"\r\n buttonText=\"Sign in\"\r\n :message=\"!postCongressMode ? `Please sign in to access the congress or register - it's not too late!` : `Please sign in to access the congress.`\"\r\n :isMemberExclusive=\"isMemberExclusive\"\r\n />\r\n </b-col>\r\n </template>\r\n <!-- Not registered -->\r\n <template v-else-if=\"!hasAccess\">\r\n <b-col cols=\"12\" class=\"m-0 p-0\">\r\n <RegisterWidget\r\n style=\"background: #e9ecef; align-content: center\"\r\n headerText=\"Access restricted to registered participants\"\r\n :linkText=\"\r\n !postCongressMode ? `I have already registered and want to access the live event.` : `I have already registered and want to access the content.`\r\n \"\r\n :buttonText=\"!postCongressMode ? `Register Now` : ``\"\r\n :showButton=\"!postCongressMode\"\r\n message=\"This content is only available to users who have registered to the event.\"\r\n :isMemberExclusive=\"isMemberExclusive\"\r\n />\r\n </b-col>\r\n </template>\r\n <template v-else>\r\n <!-- Player -->\r\n <b-col cols=\"12\" class=\"mb-2 mb-lg-0\">\r\n <!-- BrightcovePlayer -->\r\n <BrightcovePlayer\r\n ref=\"bcPlayer\"\r\n :key=\"this.videoId\"\r\n :accountId=\"this.brightcoveAccountId\"\r\n :playerId=\"this.brightcovePlayerId\"\r\n :videoId=\"this.videoId\"\r\n v-on:loaded=\"onBrightcovePlayerLoaded\"\r\n class=\"modal-widget mb-lg-4\"\r\n />\r\n </b-col>\r\n <!-- Widget -->\r\n <b-col v-if=\"false\" cols=\"12\" lg=\"4\">\r\n <!-- PigeonWidget -->\r\n <PigeonWidget :key=\"this.session.interactRoomId\" :pigeonId=\"this.session.interactRoomId\" v-on:loaded=\"onPigeonWidgetLoaded\" class=\"modal-widget\" />\r\n </b-col>\r\n </template>\r\n </b-row>\r\n </template>\r\n </b-col>\r\n </b-container>\r\n</template>\r\n\r\n<script>\r\n import { CLOSE_CHANNEL_MODAL, DISABLE_POOLING, ENABLE_POOLING } from 'src/store/actions';\r\n import { mapGetters, mapState } from 'vuex';\r\n import { MediaApiService } from 'src/services/media-api';\r\n import { consoleColors } from 'src/utils/console-color.js';\r\n import { constants } from 'src/constants';\r\n import personsMixin from 'src/mixins/personsMixin';\r\n import { DateHelper } from 'src/utils/date-helper';\r\n import BrightcovePlayer from 'src/components/Players/BrightcovePlayer';\r\n import PigeonWidget from 'src/components/Widgets/PigeonWidget';\r\n import LogginWidget from 'src/components/Widgets/LogginWidget';\r\n import RegisterWidget from 'src/components/Widgets/RegisterWidget';\r\n import { Duration } from 'luxon';\r\n\r\n export default {\r\n name: 'MobileAppChannel',\r\n mixins: [personsMixin],\r\n components: {\r\n BrightcovePlayer,\r\n PigeonWidget,\r\n LogginWidget,\r\n RegisterWidget,\r\n },\r\n props: {\r\n channelId: {\r\n type: Number,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n isMetadataLoading: true,\r\n isPigeonLoading: true,\r\n isMoreDetailsLoading: true,\r\n isFirstClickOnMoreDetails: true,\r\n isBcPlayerLoaded: false,\r\n waitingForClosing: false,\r\n hasAccess: false,\r\n session: null,\r\n sessionMoreDetails: null,\r\n sessionBanners: null,\r\n fetchNextSessionDetailsJob: null,\r\n networks: [\r\n { network: 'facebook', name: 'facebook', icon: require('@/assets/images/social/facebook-black.png') },\r\n { network: 'twitter', name: 'twitter', icon: require('@/assets/images/social/x-logo-black.png') },\r\n { network: 'linkedin', name: 'linkedin', icon: require('@/assets/images/social/linkedin-black.png') },\r\n ],\r\n };\r\n },\r\n metaInfo() {\r\n if (this.session) {\r\n return {\r\n meta: [\r\n { name: 'description', vmid: 'description', content: this.metaDescription },\r\n // OpenGraph\r\n { property: 'og:title', vmid: 'og:title', content: this.metaTitle },\r\n { property: 'og:description', vmid: 'og:description', content: this.metaDescription },\r\n { property: 'og:type', vmid: 'og:type', content: 'video.movie' },\r\n { property: 'og:url', vmid: 'og:url', content: this.metaUrl },\r\n // Twitter\r\n { property: 'twitter:title', vmid: 'twitter:title', content: this.metaTitle },\r\n { property: 'twitter:description', vmid: 'twitter:description', content: this.metaDescription },\r\n ],\r\n };\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['currentUser']),\r\n ...mapState({\r\n isLogged: (state) => state.auth.loggedIn,\r\n eventBaseTitle: (state) => state.app.eventBaseTitle,\r\n brightcoveAccountId: (state) => state.app.brightcoveAccountId,\r\n brightcovePlayerId: (state) => state.app.brightcovePlayerId,\r\n preCongressMode: (state) => state.app.preCongressMode,\r\n postCongressMode: (state) => state.app.postCongressMode,\r\n eventRoute: (state) => state.app.eventRoute,\r\n }),\r\n metaTitle() {\r\n return `${this.eventBaseTitle} | ${this.session.title}`;\r\n },\r\n metaDescription() {\r\n return `${this.session.title} session at ${this.eventBaseTitle}`;\r\n },\r\n hasExternalLink() {\r\n return this.session.hasExternalLink;\r\n },\r\n sessionId() {\r\n return this.session?.id;\r\n },\r\n videoId() {\r\n return this.session?.liveVideoId;\r\n },\r\n isMemberExclusive() {\r\n const memberExclusiveDigitalSessionIds = [5767, 5768, 5769, 5770];\r\n return memberExclusiveDigitalSessionIds.includes(this.session?.id);\r\n },\r\n EscDisclaimer() {\r\n return (this.session.EscDisclaimer ?? '').length == 0\r\n ? this.session.isIndustry\r\n ? constants.INDUSTRY_DEFAULT_DISCLAIMER\r\n : null\r\n : this.session.EscDisclaimer;\r\n },\r\n },\r\n watch: {\r\n // This function will run everytime data.isBcPlayerLoaded change\r\n isBcPlayerLoaded(isLoaded) {\r\n if (isLoaded && this.waitingForClosing) this.$store.dispatch(CLOSE_CHANNEL_MODAL);\r\n },\r\n },\r\n mounted() {\r\n // Disabling pooling...\r\n this.$store.dispatch(DISABLE_POOLING);\r\n\r\n // if (this.isLogged) await checkAccess(undefined, false, window.location, false);\r\n this.refreshSessionDetails();\r\n },\r\n beforeDestroy() {\r\n // Enabling pooling...\r\n this.$store.dispatch(ENABLE_POOLING);\r\n\r\n // We are reseting modal's state...\r\n this.resetState();\r\n\r\n // We are clearing jobs...\r\n this.clearNextSessionDetailsJob();\r\n },\r\n methods: {\r\n close() {\r\n if (!this.isLogged || this.isMetadataLoading || this.isBcPlayerLoaded || !this.hasAccess) this.$store.dispatch(CLOSE_CHANNEL_MODAL);\r\n else this.waitingForClosing = true;\r\n },\r\n refreshSessionDetails() {\r\n MediaApiService.getSessionDetailsByChannel(this.channelId).then(async ({ data }) => {\r\n if (data) {\r\n this.hasAccess = data?.hasAccess ?? false;\r\n this.session = data;\r\n\r\n if (!this.hasAccess) this.logAccessDenied();\r\n this.isMetadataLoading = false;\r\n\r\n const hasExternalLink = data?.hasExternalLink;\r\n if (hasExternalLink && this.hasAccess) {\r\n const externalLink = data?.externalLink;\r\n window.open(externalLink, '_blank');\r\n this.close();\r\n } else {\r\n this.createNextSessionDetailsJob();\r\n }\r\n }\r\n });\r\n },\r\n fetchNextSessionDetails() {\r\n let previousVideoId = this.videoId;\r\n\r\n MediaApiService.getSessionDetailsByChannel(this.channelId)\r\n .then(async ({ data }) => {\r\n if (data) {\r\n // We are reseting modal's state...\r\n this.resetState();\r\n this.hasAccess = data?.hasAccess ?? false;\r\n this.session = data;\r\n this.isMetadataLoading = false;\r\n this.createNextSessionDetailsJob();\r\n if (!this.hasAccess) this.logAccessDenied();\r\n const hasExternalLink = data?.hasExternalLink;\r\n\r\n // If video id doesn't change BC player is not reload -> player loaded falg forced to true;\r\n if (!hasExternalLink && this.videoId == previousVideoId) this.isBcPlayerLoaded = true;\r\n\r\n if (hasExternalLink && this.hasAccess) {\r\n const externalLink = data?.externalLink;\r\n window.open(externalLink, '_blank');\r\n this.close();\r\n } /*else {\r\n this.createNextSessionDetailsJob();\r\n }*/\r\n }\r\n })\r\n .catch((err) => {\r\n if (err?.response?.status == 404) {\r\n // TODO: Display a message instead ?\r\n this.close();\r\n }\r\n });\r\n },\r\n onMoreDetailsClick() {\r\n if (!this.isFirstClickOnMoreDetails) return;\r\n\r\n this.isFirstClickOnMoreDetails = false;\r\n\r\n MediaApiService.getSessionMoreDetails(this.sessionId).then(({ data }) => {\r\n if (data) {\r\n this.isMoreDetailsLoading = false;\r\n this.sessionMoreDetails = data;\r\n }\r\n });\r\n },\r\n onBrightcovePlayerLoaded() {\r\n this.isBcPlayerLoaded = true;\r\n },\r\n onPigeonWidgetLoaded() {\r\n // If needed...\r\n },\r\n createNextSessionDetailsJob() {\r\n const currentTime = DateHelper.browserDateTime().getTime();\r\n const endTime = this.session.endTime;\r\n\r\n let nextRefreshTime = this.session.nextRefreshTime;\r\n if (!nextRefreshTime) nextRefreshTime = endTime;\r\n\r\n let nextRefreshDelay = this.session.nextRefreshDelay;\r\n if (!nextRefreshDelay) nextRefreshDelay = nextRefreshTime - currentTime; // If you want to test set: 10000;\r\n // if nextRefreshDelay negative set 30sec\r\n if (nextRefreshDelay <= 0) nextRefreshDelay = 30000;\r\n //console.log('nextRefreshDelay', Duration.fromMillis(nextRefreshDelay).toFormat(\"hh:mm:ss\"));\r\n //console.log(`end ${this.$options.filters.formatUnixEpocTimePartForLog(endTime)}`);\r\n console.debug(`%cnext Session -30sec: ${this.$options.filters.formatUnixEpocTimePartForLog(nextRefreshTime)}`, consoleColors.misc);\r\n console.debug(`%cnext refresh in: ${Duration.fromMillis(nextRefreshDelay).toFormat('hh:mm:ss')}`, consoleColors.misc);\r\n\r\n // We are clearing jobs...\r\n this.clearNextSessionDetailsJob();\r\n\r\n // 🙃 -> https://stackoverflow.com/a/3468650\r\n if (nextRefreshDelay >= 2147483648) nextRefreshDelay = 2147483647;\r\n\r\n this.fetchNextSessionDetailsJob = setTimeout(this.fetchNextSessionDetails, nextRefreshDelay);\r\n },\r\n clearNextSessionDetailsJob() {\r\n if (this.fetchNextSessionDetailsJob) {\r\n clearTimeout(this.fetchNextSessionDetailsJob);\r\n this.fetchNextSessionDetailsJob = null;\r\n }\r\n },\r\n resetState() {\r\n this.hasAccess = false;\r\n\r\n this.isBcPlayerLoaded = false;\r\n this.waitingForClosing = false;\r\n\r\n this.isMetadataLoading = true;\r\n this.isMoreDetailsLoading = true;\r\n\r\n this.isFirstClickOnMoreDetails = true;\r\n\r\n this.session = null;\r\n },\r\n logAccessDenied() {\r\n if (this.$appInsights && this.currentUser) {\r\n const logAccessDeniedProps = {\r\n escId: this.currentUser?.escId,\r\n channelId: this.channelId,\r\n sessionId: this.sessionId,\r\n videoId: this.videoId,\r\n source: 'MobileAppChannel',\r\n };\r\n console.info(`%cAppInsights: logAccessDenied ${JSON.stringify(logAccessDeniedProps)}`, consoleColors.insights);\r\n this.$appInsights?.trackEvent({ name: 'logAccessDenied', properties: logAccessDeniedProps });\r\n }\r\n },\r\n },\r\n };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n @import 'node_modules/bootstrap/scss/_functions';\r\n @import 'node_modules/bootstrap/scss/_variables';\r\n @import 'node_modules/bootstrap/scss/mixins/_breakpoints';\r\n\r\n @import '~@/styles/theme';\r\n\r\n $media-modal-bg-primary: linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(0, 0, 0, 0.15) 100%),\r\n radial-gradient(at top center, rgba(255, 255, 255, 0.4) 0%, rgba(0, 0, 0, 0.8) 120%) #989898;\r\n $media-modal-bg-secondary: #656565;\r\n\r\n $media-modal-primary: $primary;\r\n $media-modal-secondary: #9e9e9e;\r\n\r\n .session__favorite__button {\r\n margin-left: auto;\r\n cursor: pointer;\r\n z-index: 100;\r\n }\r\n\r\n .session__details__presentation__hour {\r\n color: var(--congress);\r\n }\r\n\r\n ::v-deep #media-modal > .modal-dialog {\r\n height: 100%;\r\n max-width: 100%;\r\n overflow-y: auto;\r\n margin: 0 auto;\r\n }\r\n\r\n ::v-deep #media-modal {\r\n padding: 0 !important;\r\n }\r\n\r\n ::v-deep #media-modal .modal-header {\r\n border-bottom: none;\r\n margin-bottom: 25px;\r\n\r\n .close {\r\n font-size: 2.5rem;\r\n opacity: 1;\r\n margin: 0 0 -1.5rem auto;\r\n border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n padding: 0;\r\n }\r\n\r\n .close::after {\r\n position: absolute;\r\n top: 72px;\r\n right: 24px;\r\n white-space: pre;\r\n line-height: 1.2;\r\n font-size: 0.9rem;\r\n content: 'Close\\avideo';\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n ::v-deep #media-modal .modal-header {\r\n padding: 0.3rem 1rem;\r\n\r\n .close {\r\n font-size: 1.6rem;\r\n margin: 0 0 0.3rem auto;\r\n width: 30px;\r\n height: 30px;\r\n }\r\n\r\n .close::after {\r\n top: 42px;\r\n right: 17px;\r\n line-height: 1.3;\r\n font-size: 0.6rem;\r\n }\r\n }\r\n }\r\n\r\n ::v-deep #media-modal .modal-content {\r\n height: 100%;\r\n overflow-y: auto;\r\n background: #fff;\r\n background-blend-mode: multiply, multiply;\r\n border: none;\r\n border-radius: unset;\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n ::v-deep #media-modal .modal-body {\r\n padding: 0;\r\n }\r\n }\r\n\r\n .modal-widget {\r\n height: 100svh;\r\n width: 100svw;\r\n }\r\n\r\n .bg-gray {\r\n background: rgb(233, 236, 239);\r\n }\r\n\r\n .bg-full-page {\r\n height: 100svh;\r\n widows: 100svw;\r\n }\r\n\r\n h1 {\r\n font-size: 1.75rem;\r\n }\r\n\r\n h5 {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .modal__session-subtitle {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .modal__session-contact-label {\r\n display: block;\r\n color: #d1d1d1;\r\n }\r\n\r\n .modal__session-contact-link {\r\n color: $media-modal-primary;\r\n text-decoration: underline;\r\n }\r\n\r\n .disclaimer__wrapper {\r\n display: flex;\r\n align-items: center;\r\n color: $media-modal-primary;\r\n }\r\n\r\n .disclaimer__icon {\r\n padding-right: 10px;\r\n }\r\n\r\n .disclaimer__text {\r\n display: inline-block;\r\n font-size: 0.9em;\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n .disclaimer__text {\r\n text-align: justify;\r\n font-size: 0.65em;\r\n }\r\n }\r\n\r\n .share-wrapper {\r\n color: $media-modal-primary;\r\n }\r\n\r\n .share-link {\r\n position: relative;\r\n top: -3px;\r\n padding-left: 8px;\r\n padding-right: 8px;\r\n cursor: pointer;\r\n }\r\n\r\n .session-duration {\r\n font-size: 0.85em;\r\n }\r\n\r\n .card__more-details {\r\n border: 0;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n box-shadow: inherit;\r\n overflow: visible;\r\n\r\n .card-body {\r\n color: $primary;\r\n padding: 0;\r\n padding-top: 2rem;\r\n }\r\n\r\n .b-skeleton-img {\r\n margin-bottom: 10px;\r\n }\r\n }\r\n\r\n .card-text__speaker {\r\n display: block;\r\n }\r\n\r\n .session__details__presentation {\r\n background: $secondary;\r\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);\r\n padding: 0.6rem 0.8rem;\r\n border-radius: 6px;\r\n margin-bottom: 1rem;\r\n\r\n &__title {\r\n display: block;\r\n }\r\n\r\n &__person {\r\n display: block;\r\n }\r\n\r\n &__start-time {\r\n display: block;\r\n color: var(--congress);\r\n font-size: 0.9rem;\r\n }\r\n\r\n img {\r\n vertical-align: baseline;\r\n }\r\n }\r\n\r\n @include media-breakpoint-down(md) {\r\n .card__presentation {\r\n max-width: 100%;\r\n }\r\n\r\n .btn-collapse {\r\n display: block;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .btn__back {\r\n top: 1rem;\r\n left: 1rem;\r\n }\r\n\r\n @include media-breakpoint-down(sm) {\r\n .btn__back {\r\n position: relative !important;\r\n top: 0.5rem;\r\n left: 0;\r\n padding-left: 1.5rem;\r\n }\r\n }\r\n\r\n .btn-collapse {\r\n color: $primary;\r\n }\r\n\r\n .collapsed > .when-opened,\r\n :not(.collapsed) > .when-closed {\r\n display: none;\r\n }\r\n\r\n :not(.collapsed).btn-collapse {\r\n border-radius: 0.25em 0.25em 0 0;\r\n }\r\n\r\n .session__details__content__flags {\r\n font-size: 0.9rem;\r\n\r\n &__inner {\r\n margin-right: 1.25rem;\r\n\r\n .material-icons-round,\r\n .material-icons-outlined,\r\n .material-symbols-rounded {\r\n font-size: 22px;\r\n }\r\n }\r\n\r\n &__inner:last-of-type {\r\n margin-right: 0;\r\n }\r\n\r\n &__inner:not(:first-child) {\r\n border-top: solid 1px white;\r\n }\r\n }\r\n</style>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Channel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Channel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Channel.vue?vue&type=template&id=ec98574e&scoped=true\"\nimport script from \"./Channel.vue?vue&type=script&lang=js\"\nexport * from \"./Channel.vue?vue&type=script&lang=js\"\nimport style0 from \"./Channel.vue?vue&type=style&index=0&id=ec98574e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ec98574e\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <fragment v-if=\"!isLoading || !partnerResource\">\r\n <MobileAppChannel v-if=\"partnerResource\" :channelId=\"partnerResource.id\" />\r\n </fragment>\r\n</template>\r\n\r\n<script>\r\n import { mapState } from 'vuex';\r\n import { SET_IS_LOADING } from 'src/store/mutations';\r\n //import { redirectErrorNotFound } from 'src/services/auth';\r\n import MobileAppChannel from 'src/components/MobileApp/Channel';\r\n import { MediaApiService } from 'src/services/media-api';\r\n\r\n export default {\r\n name: 'MobileAppResource',\r\n components: {\r\n MobileAppChannel,\r\n },\r\n data() {\r\n return {\r\n partnerResource: null,\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n isLoading: (state) => state.app.isLoading,\r\n }),\r\n },\r\n created() {\r\n /*\r\n //Rotate left\r\n document.documentElement.style.setProperty('transform', 'rotate(-90deg)');\r\n document.documentElement.style.setProperty('transform-origin', 'top left');\r\n document.documentElement.style.setProperty('top', '100vh');\r\n */\r\n //Rotate right\r\n /*\r\n document.documentElement.style.setProperty('transform', 'rotate(90deg)');\r\n document.documentElement.style.setProperty('transform-origin', 'top left');\r\n document.documentElement.style.setProperty('left', '100vw');\r\n */\r\n },\r\n beforeDestroy() {\r\n /*\r\n document.documentElement.style.removeProperty('transform');\r\n document.documentElement.style.removeProperty('transform-origin');\r\n document.documentElement.style.removeProperty('left');\r\n document.documentElement.style.removeProperty('top');\r\n */\r\n },\r\n mounted() {\r\n const queryString = window.location.search;\r\n //console.log(queryString);\r\n if (queryString) {\r\n MediaApiService.partnerGetVideo(queryString).then(({ data }) => {\r\n if (data) {\r\n //console.log(data);\r\n this.partnerResource = data;\r\n //console.log(data);\r\n }\r\n this.stopLoading();\r\n });\r\n } else {\r\n this.stopLoading();\r\n //redirectErrorNotFound();\r\n }\r\n },\r\n methods: {\r\n stopLoading() {\r\n this.$store.commit(SET_IS_LOADING, false);\r\n }, \r\n },\r\n };\r\n</script>\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Resource.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Resource.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Resource.vue?vue&type=template&id=124313a2\"\nimport script from \"./Resource.vue?vue&type=script&lang=js\"\nexport * from \"./Resource.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function middlewarePipeline(context, middleware, index) {\r\n const nextMiddleware = middleware[index];\r\n\r\n if (!nextMiddleware) {\r\n return context.next;\r\n }\r\n\r\n return () => {\r\n const nextPipeline = middlewarePipeline(context, middleware, index + 1);\r\n nextMiddleware({ ...context, next: nextPipeline });\r\n };\r\n}\r\n\r\nexport { middlewarePipeline };","import HomeSelector from 'src/components/Selectors/HomeSelector';\r\nimport { constants } from 'src/constants';\r\nimport EventWrapper from 'src/layout/EventWrapper';\r\nimport PartnerWrapper from 'src/layout/PartnerWrapper';\r\nimport { hasExpired, processEncryptedEscID } from 'src/services/auth';\r\nimport { loadEventConfiguration } from 'src/services/eventConfig';\r\nimport { store } from 'src/store';\r\nimport { LOGIN, LOGOUT } from 'src/store/actions';\r\nimport MobileAppHappeningNow from 'src/views/MobileApp/HappeningNow';\r\nimport MobileAppInteractivity from 'src/views/MobileApp/Interactivity';\r\nimport MobileAppInteractivityDemo from 'src/views/MobileApp/InteractivityDemo';\r\nimport MyProgrammeOverview from 'src/views/MyProgramme/Overview';\r\nimport NetworkingMessages from 'src/views/Networking/NetworkingMessages';\r\n//import NetworkingOpeningSoon from 'src/views/Networking/NetworkingOpeningSoon';\r\nimport NetworkingSearch from 'src/views/Networking/NetworkingSearch';\r\nimport HealthWidget from 'src/views/Partner/Health';\r\nimport PartnerRegistrationStatus from 'src/views/Partner/RegistrationStatus';\r\nimport PartnerMediaVideo from 'src/views/Partner/Media/Video';\r\nimport PartnerMediaResources from 'src/views/Partner/Media/Resources.vue';\r\nimport ProgrammeOverview from 'src/views/Programme/Overview';\r\nimport FacultyOverview from 'src/views/Faculty/Overview';\r\nimport SimuVillage from 'src/views/SimuVillage/SimuVillage';\r\nimport SimuVillageHost from 'src/views/SimuVillage/SimuVillageHost';\r\nimport SimuVillageHostAdmin from 'src/views/SimuVillage/SimuVillageHostAdmin';\r\nimport AbstractOverview from 'src/views/Abstract/Overview';\r\nimport OnDemandOverview from 'src/views/OnDemand/Overview.vue';\r\nimport Schedule from 'src/views/Programme/Schedule';\r\nimport SessionDetails from 'src/views/Programme/SessionDetails';\r\nimport SpeakerDetails from 'src/views/Programme/SpeakerDetails';\r\nimport VenueOverview from 'src/views/Venue/VenueOverview';\r\nimport Home from 'src/views/Home/Home';\r\n// import ZoomsList from 'src/views/Zooms/ZoomsList';\r\nimport MobileAppResource from 'src/views/MobileApp/Resource';\r\nimport Vue from 'vue';\r\nimport Router from 'vue-router';\r\nimport { getDefaultRoute } from './default';\r\nimport { middlewarePipeline } from './middlewarePipeline';\r\nimport { UPDATE_SCROLL_POSITION } from 'src/store/actions';\r\n\r\nconst originalPush = Router.prototype.push;\r\nRouter.prototype.push = function push(location) {\r\n return originalPush.call(this, location).catch((err) => err);\r\n};\r\n\r\nVue.use(Router);\r\n\r\nexport const router = new Router({\r\n mode: 'history',\r\n //base: '/congress/',\r\n routes: [\r\n {\r\n path: '/partner',\r\n name: 'PartnerWrapper',\r\n component: PartnerWrapper,\r\n meta: { requireEvent: false },\r\n children: [\r\n { path: 'health', name: 'Health', component: HealthWidget },\r\n { path: 'registrationStatus', name: 'RegistrationStatus', component: PartnerRegistrationStatus },\r\n { path: 'media/video', name: 'Video', component: PartnerMediaVideo },\r\n {\r\n path: 'media/resources',\r\n alias: constants.ROUTE_PARTNER_MEDIA_RESOURCES,\r\n name: 'Resources',\r\n component: PartnerMediaResources,\r\n meta: { requireEncryptedEscID: true },\r\n },\r\n ],\r\n },\r\n {\r\n path: '/:eventRoute/mobile-app',\r\n name: 'MobileEventWrapper',\r\n component: EventWrapper,\r\n props: {\r\n showHeader: false,\r\n showFooter: false,\r\n enableNotifications: false,\r\n },\r\n meta: { requireEvent: true },\r\n children: [\r\n {\r\n path: constants.ROUTE_MOBILE_APP_PRE_HOME,\r\n name: 'MobileAppPreHome',\r\n component: HomeSelector,\r\n props: {\r\n mobileApp: true,\r\n },\r\n },\r\n { path: constants.ROUTE_MOBILE_APP_HAPPENING_NOW, name: 'MobileAppHappeningNow', component: MobileAppHappeningNow },\r\n { path: constants.ROUTE_MOBILE_APP_INTERACTIVITY, name: 'MobileAppInteractivity', component: MobileAppInteractivity },\r\n { path: constants.ROUTE_MOBILE_APP_RESOURCE, name: 'MobileAppResource', component: MobileAppResource },\r\n { path: constants.ROUTE_MOBILE_APP_INTERACTIVITY_DEMO, name: 'MobileAppInteractivityDemo', component: MobileAppInteractivityDemo },\r\n ],\r\n },\r\n {\r\n path: '/:eventRoute',\r\n name: 'EventWrapper',\r\n component: EventWrapper,\r\n meta: { requireEvent: true },\r\n children: [\r\n { path: '', alias: constants.ROUTE_HOME, name: 'Home', component: HomeSelector },\r\n { path: constants.ROUTE_LIVE, name: 'Live', component: Home },\r\n { path: constants.ROUTE_SCHEDULE, name: 'Schedule', component: Schedule },\r\n {\r\n path: constants.ROUTE_MY_PROGRAMME,\r\n name: 'MyProgramme',\r\n component: MyProgrammeOverview,\r\n },\r\n {\r\n path: constants.ROUTE_PROGRAMME,\r\n name: 'Programme',\r\n component: ProgrammeOverview,\r\n },\r\n {\r\n path: constants.ROUTE_FACULTY,\r\n name: 'Faculty',\r\n component: FacultyOverview,\r\n },\r\n {\r\n path: constants.ROUTE_SIMULATION_VILLAGE,\r\n name: 'Simulation Village',\r\n component: SimuVillage,\r\n },\r\n {\r\n path: constants.ROUTE_SIMULATION_VILLAGE_HOST,\r\n name: 'Simulation Village Host ',\r\n component: SimuVillageHost,\r\n meta: { hideHeaderFooter: true },\r\n },\r\n {\r\n path: constants.ROUTE_SIMULATION_VILLAGE_HOST_ADMIN,\r\n name: 'Simulation Village Host Admin',\r\n component: SimuVillageHostAdmin,\r\n meta: { hideHeaderFooter: true },\r\n },\r\n {\r\n path: constants.ROUTE_ABSTRACT,\r\n name: 'Abstract',\r\n component: AbstractOverview,\r\n },\r\n {\r\n path: constants.ROUTE_ONDEMAND,\r\n name: 'OnDemand',\r\n component: OnDemandOverview,\r\n },\r\n { path: constants.ROUTE_SESSION_DETAILS, name: 'Session details', component: SessionDetails },\r\n { path: constants.ROUTE_SPEAKER_DETAILS, name: 'Speaker details', component: SpeakerDetails },\r\n // { path: constants.ROUTE_ZOOMS_LIST, name: 'Zooms', component: ZoomsList },\r\n { path: constants.ROUTE_NETWORKING_SEARCH, name: 'Networking search', component: NetworkingSearch },\r\n { path: constants.ROUTE_NETWORKING_MESSAGES, name: 'Networking messages', component: NetworkingMessages },\r\n { path: constants.ROUTE_VENUE, name: 'Venue overview', component: VenueOverview },\r\n {\r\n path: '*',\r\n beforeEnter: (to, from, next) => {\r\n next(to.params.eventRoute);\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: '*',\r\n beforeEnter: (to, from, next) => {\r\n next(getDefaultRoute());\r\n },\r\n },\r\n ],\r\n scrollBehavior(to, from, savedPosition) {\r\n if (savedPosition) {\r\n //console.log('scroll to savedPosition ' + JSON.stringify(savedPosition));\r\n store.dispatch(UPDATE_SCROLL_POSITION, savedPosition);\r\n return;\r\n } else if (to.hash) {\r\n //console.log('scroll to hash ' + to.hash);\r\n return {\r\n selector: to.hash,\r\n behavior: 'smooth',\r\n };\r\n } else if (to.path !== from.path) {\r\n //console.log('scroll to top');\r\n return { x: 0, y: 0 };\r\n } else if (to.query.vue === 'cards' && to.query.page && from.query.page && to.query.page !== from.query.page) {\r\n //console.log('scroll to search bar');\r\n store.dispatch(UPDATE_SCROLL_POSITION, {\r\n selector: '#search',\r\n behavior: 'smooth',\r\n });\r\n return;\r\n } else {\r\n //console.log('no scroll');\r\n return;\r\n }\r\n },\r\n});\r\n\r\nrouter.beforeEach(async (to, from, next) => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n //console.log('beforeEach ' + window.location.origin + to.fullPath);\r\n\r\n if (to.matched.some((record) => record.meta.requireEvent)) {\r\n await loadEventConfiguration(to, from);\r\n }\r\n\r\n //token param, process login result\r\n if (urlParams.has('token')) {\r\n //console.log('beforeEach token detected');\r\n //If a login token is in query string, dispatch login action\r\n await store.dispatch(LOGIN, urlParams);\r\n }\r\n\r\n //if (to.matched.some((record) => record.meta.requireEncryptedEscID)) {\r\n if (urlParams.has('eescid')) {\r\n //process encrypted escId\r\n processEncryptedEscID(urlParams.get('eescid'));\r\n }\r\n\r\n //hpa param, process hpa check access\r\n /*\r\n if (urlParams.has('hpa')) {\r\n //console.log('beforeEach hpa detected')\r\n // If an hpa token is in query string force hasAccess refresh\r\n await checkQueryPlatformAccessFallbackToken(undefined, true, undefined, window.location.origin + to.fullPath);\r\n }\r\n\r\n //fca param, process force check access\r\n if (urlParams.has('fca')) {\r\n //console.log('beforeEach fca detected');\r\n //If an fca token is in query string force redirect to salesforce check access page\r\n //console.log('to.fullPath '+ to.fullPath);\r\n let newurl = QueryHelper.removeUrlParameter('fca', to.fullPath);\r\n //console.log('newurl '+ newurl);\r\n await checkAccess(undefined, false, window.location.origin + newurl, true);\r\n }\r\n */\r\n\r\n let expired = hasExpired();\r\n\r\n if (to.path.endsWith('/logout')) {\r\n expired = true;\r\n }\r\n\r\n if (expired) await store.dispatch(LOGOUT);\r\n\r\n const middleware = to.meta.middleware;\r\n if (!middleware) return next();\r\n\r\n const context = {\r\n router,\r\n to,\r\n from,\r\n next,\r\n store,\r\n };\r\n\r\n return middleware[0]({\r\n ...context,\r\n next: middlewarePipeline(context, middleware, 1),\r\n });\r\n});\r\n\r\nrouter.afterEach((to) => {\r\n const query = to.query;\r\n if (query.token || query.hpa || query.acl || query.eescid) {\r\n let nextQuery = Object.assign({}, query);\r\n delete nextQuery.token;\r\n delete nextQuery.expires;\r\n delete nextQuery.escId;\r\n delete nextQuery.email;\r\n delete nextQuery.title;\r\n delete nextQuery.title;\r\n delete nextQuery.firstName;\r\n delete nextQuery.lastName;\r\n delete nextQuery.hpa;\r\n delete nextQuery.acl;\r\n delete nextQuery.usr;\r\n delete nextQuery.fca;\r\n delete nextQuery.forcesso;\r\n delete nextQuery.eescid;\r\n\r\n return router.replace({\r\n path: to.path,\r\n query: nextQuery,\r\n });\r\n }\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"position-relative\",attrs:{\"id\":\"appcontainer\"}},[_c('b-overlay',{style:({ height: _vm.isLoading ? '100vh' : 'auto' }),attrs:{\"show\":_vm.isLoading,\"opacity\":1,\"spinner-type\":\"grow\"}},[_c('router-view')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from 'axios';\r\n\r\nimport { consoleColors } from 'src/utils/console-color';\r\n\r\nexport const refreshPageMixin = {\r\n data() {\r\n return {\r\n currentHash: '{{POST_BUILD_ENTERS_HASH_HERE}}',\r\n newVersion: false,\r\n newHash: ''\r\n }\r\n },\r\n computed: {\r\n checkVersionFile() {\r\n return process.env.VUE_APP_CHECK_VERSION_FILE;\r\n }\r\n },\r\n methods: {\r\n initVersionCheck(frequency) {\r\n setInterval(() => {\r\n this.checkVersion();\r\n }, frequency);\r\n },\r\n async checkVersion() {\r\n try {\r\n const fileResponse = await axios.create({\r\n baseURL: `${window.location.origin}`,\r\n headers: {\r\n 'Content-type': 'application/json'\r\n }\r\n }).get('/' + this.checkVersionFile + '?t=' + new Date().getTime());\r\n\r\n this.newHash = fileResponse.data.hash;\r\n\r\n this.newVersion = this.hasHashChanged(this.currentHash, this.newHash);\r\n if (this.newVersion)\r\n console.debug(`%cNewVersion: ${JSON.stringify({ currentHash: this.currentHash, newHash: this.newHash })}`,\r\n consoleColors.events);\r\n } catch (error) {\r\n if (!error.response) {\r\n this.errorStatus = 'Error: Network Error'\r\n } else {\r\n this.errorStatus = error.response.data.message;\r\n }\r\n }\r\n },\r\n hasHashChanged(currentHash, newHash) {\r\n if (!currentHash || currentHash === '{{POST_BUILD_ENTERS_HASH_HERE}}') {\r\n return true;\r\n }\r\n\r\n return currentHash !== newHash;\r\n },\r\n reloadApp() {\r\n this.currentHash = this.newHash;\r\n window.location.reload();\r\n }\r\n }\r\n};\r\n","<template>\r\n <div id=\"appcontainer\" class=\"position-relative\">\r\n <b-overlay :show=\"isLoading\" :opacity=\"1\" spinner-type=\"grow\" :style=\"{ height: isLoading ? '100vh' : 'auto' }\">\r\n <!-- RouterView -->\r\n <router-view />\r\n </b-overlay>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState, mapGetters } from 'vuex';\r\nimport { DISABLE_POOLING, ENABLE_POOLING } from 'src/store/actions';\r\nimport { consoleColors } from 'src/utils/console-color';\r\nimport { refreshPageMixin } from 'src/mixins/refreshPageMixin';\r\n//import { MediaApiService } from 'src/services/media-api';\r\n//import { SfChatBot } from 'src/assets/scripts/sf-chatbot';\r\n\r\nexport default {\r\n name: 'App',\r\n mixins: [refreshPageMixin],\r\n data() {\r\n return {\r\n inView: true,\r\n };\r\n },\r\n computed: {\r\n ...mapGetters(['isLogged', 'currentUser', 'isMediaModalOpen', 'isChannelModalOpen']),\r\n ...mapState({\r\n isLoading: (state) => state.app.isLoading,\r\n }),\r\n },\r\n watch: {\r\n inView(inView) {\r\n console.info(`%cFocus changed: ${JSON.stringify(inView)}`, consoleColors.events);\r\n //console.log(`isMediaModalOpen ${this.isMediaModalOpen}`);\r\n //console.log(`isChannelModalOpen ${this.isChannelModalOpen}`);\r\n if (!this.isMediaModalOpen && !this.isChannelModalOpen) {\r\n if (!inView) {\r\n this.$store.dispatch(DISABLE_POOLING); // Disabling pooling...\r\n //console.info(`%cFocus out - Pooling disabled`, consoleColors.events);\r\n } else {\r\n this.$store.dispatch(ENABLE_POOLING); // Enabling pooling...\r\n //console.info(`%cFocus in - Pooling enabled`, consoleColors.events);\r\n }\r\n } else {\r\n console.info(`%cModal opened - Pooling suspended`, consoleColors.events);\r\n }\r\n },\r\n newVersion(newVersion) {\r\n if (newVersion) this.$bvToast.show('new-version-toast');\r\n },\r\n },\r\n async mounted() {\r\n if (this.$appInsights) {\r\n const logAppInfosProps = { version: this.appVersion };\r\n console.info(`%cAppInsights: logAppInfos ${JSON.stringify(logAppInfosProps)}`, consoleColors.insights);\r\n this.$appInsights?.trackEvent({ name: 'logAppInfos', properties: logAppInfosProps });\r\n }\r\n\r\n // Init version check...\r\n const checkVersionInterval = parseInt(process.env.VUE_APP_CHECK_VERSION_INTERVAL);\r\n this.initVersionCheck(checkVersionInterval); // If you want to test set: 2000\r\n\r\n // Listening for update requests...\r\n this.$root.$on('updateRequested', () => {\r\n this.reloadApp();\r\n });\r\n\r\n/*\r\n if (this.isLogged) {\r\n MediaApiService.setHeader();\r\n\r\n //DataLayer\r\n this.$gtm.push({ event: 'logEscId', escid: this.currentUser.escId });\r\n\r\n if (this.$appInsights) {\r\n const logEscIdProps = { escId: this.currentUser.escId };\r\n console.info(`%cAppInsights: logEscId ${JSON.stringify(logEscIdProps)}`, consoleColors.insights);\r\n this.$appInsights?.trackEvent({ name: 'logEscId', properties: logEscIdProps });\r\n }\r\n }\r\n*/\r\n\r\n //this.chatBot = new SfChatBot(this.currentUser);\r\n //this.chatBot.load();\r\n\r\n // Watching if user focus is getting out...\r\n this.detectFocusOut();\r\n },\r\n methods: {\r\n detectFocusOut() {\r\n //console.log('detectFocusOut triggered');\r\n const _this = this;\r\n\r\n const onWindowFocusChange = (e) => {\r\n //console.log('onWindowFocusChange triggered');\r\n if ({ focus: 1, pageshow: 1 }[e.type]) {\r\n //console.log('onWindowFocusChange - FOCUS IN');\r\n if (_this.inView) return;\r\n this.tabFocus = true;\r\n _this.inView = true;\r\n } else if (_this.inView) {\r\n //console.log('onWindowFocusChange - FOCUS OUT');\r\n this.tabFocus = !this.tabFocus;\r\n _this.inView = false;\r\n }\r\n };\r\n\r\n window.addEventListener('focus', onWindowFocusChange);\r\n window.addEventListener('blur', onWindowFocusChange);\r\n window.addEventListener('pageshow', onWindowFocusChange);\r\n window.addEventListener('pagehide', onWindowFocusChange);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n@import '~@/styles/theme';\r\n@import 'node_modules/bootstrap/scss/bootstrap';\r\n@import 'node_modules/bootstrap-vue/src/index';\r\n@import '~@/styles/app';\r\n</style>\r\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=fe597134\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=fe597134&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","//#region Polyfills\r\nimport 'core-js/stable';\r\nimport 'intersection-observer';\r\nimport 'regenerator-runtime/runtime';\r\n//#endregion\r\n\r\nimport Vue from 'vue';\r\n\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { faExclamationCircle, faInfoCircle, faPlayCircle, faRedo, faSpinner, faSyncAlt, faUsers } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\r\nimport { BootstrapVue } from 'bootstrap-vue';\r\nimport VueScreen from 'vue-screen';\r\nimport VueSocialSharing from 'vue-social-sharing';\r\n\r\nimport JsonUrl from 'json-url';\r\nimport observer from 'vue-mutation-observer';\r\nimport UUID from 'vue-uuid';\r\n\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport VueAppInsights from 'vue-application-insights';\r\nimport VueTagManager from 'vue-tag-manager';\r\n\r\nimport VueMeta from 'vue-meta';\r\nimport LoadScript from 'vue-plugin-load-script';\r\n\r\nimport VueTour from 'vue-tour';\r\nrequire('vue-tour/dist/vue-tour.css');\r\n\r\nimport { Plugin } from 'vue-fragment';\r\n\r\nimport './utils/filters.js';\r\n//import { consoleColors } from './utils/console-color.js';\r\n\r\nimport { router } from './router';\r\nimport { store } from './store';\r\n\r\nimport App from './layout/App';\r\n\r\n// import { AppSearchService } from './services/app-search';\r\nimport { MediaApiService } from './services/media-api';\r\n//import { RecoApiService } from './services/reco-api';\r\n\r\nimport { CyimPlugin } from '@congress/pf-components-esc';\r\n\r\n//import \"./styles/app.scss\";\r\n\r\n/*\r\nfor (const envKey in process.env) {\r\n console.debug(`%cEnvironment: ${envKey}=${process.env[envKey]}`, consoleColors.misc);\r\n}\r\n*/\r\n\r\nconst hidePageLoader = () => {\r\n const loader = document.querySelector('#loader');\r\n loader.style.display = 'none';\r\n};\r\n\r\nHTMLElement.prototype.scrollIntoViewExtended = function (args) {\r\n //retrieve scroll to target element\r\n let element = this;\r\n if (element && element instanceof HTMLElement) {\r\n //default offset\r\n let scrollOffset = args.baseOffset;\r\n if (args.navOffset) {\r\n //add top sticky nav height to offset to avoid scrolled element under nav\r\n const topStickyNav = document.getElementById('topStickyNav');\r\n if (topStickyNav) {\r\n scrollOffset += topStickyNav.offsetHeight;\r\n }\r\n }\r\n //add top sticky days bar height to offset to avoid scrolled element under days bar\r\n if (args.daysBarOffset) {\r\n const topStickyDays = document.getElementById('topStickyDays');\r\n if (topStickyDays) {\r\n scrollOffset += topStickyDays.offsetHeight;\r\n }\r\n }\r\n //apply scroll offset to target element\r\n element.style.scrollMarginTop = `${scrollOffset}px`;\r\n //scroll target element into view\r\n element.scrollIntoView({ behavior:args.behavior??'smooth', block: args.block??'start' });\r\n }\r\n};\r\n\r\n// Initializing AppInsights from outside the Vue application\r\nlet appInsights = null;\r\nconst instrumentationKey = process.env.VUE_APP_INSIGHTS_INSTRUMENTATION_KEY;\r\nif (instrumentationKey) {\r\n //console.info(`%cAppInsights: instrumentationKey=${instrumentationKey}`, consoleColors.insights);\r\n\r\n appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: instrumentationKey\r\n }\r\n });\r\n\r\n appInsights = appInsights.loadAppInsights();\r\n appInsights.trackPageView();\r\n\r\n //console.info(`%cAppInsights: initialized successfully`, consoleColors.insights);\r\n}\r\n\r\n// Init MediaApiService\r\nMediaApiService.init(appInsights);\r\n\r\n// Init AppSearchService\r\n// AppSearchService.init();\r\n\r\n// Init RecoApiService\r\n// RecoApiService.init(appInsights);\r\n\r\n// Install AppInsights\r\nif (instrumentationKey) {\r\n Vue.use(VueAppInsights, {\r\n appInsights: appInsights,\r\n baseName: 'MediaPlatform',\r\n id: instrumentationKey,\r\n router\r\n });\r\n}\r\n\r\n// Chat Cyim\r\nVue.use(CyimPlugin);\r\n\r\n// Install BootstrapVue\r\nVue.use(BootstrapVue);\r\nVue.use(VueScreen, 'bootstrap');\r\n\r\n// Install FontAwesome\r\nlibrary.add([faPlayCircle, faExclamationCircle, faInfoCircle, faSyncAlt, faUsers, faRedo, faSpinner]);\r\nVue.component('font-awesome-icon', FontAwesomeIcon);\r\n\r\n// Install observer\r\nVue.use(observer);\r\n\r\n// Instal UUID\r\nVue.use(UUID);\r\n\r\n// Install VueMeta\r\nVue.use(VueMeta, {\r\n refreshOnceOnNavigation: true\r\n});\r\n\r\n/*\r\nconst metaInfo = {\r\n title: process.env.VUE_APP_TITLE,\r\n meta: [\r\n { name: 'description', vmid: 'description', content: process.env.VUE_APP_META_SITE_NAME },\r\n // OpenGraph\r\n { property: 'og:title', vmid: 'og:title', content: process.env.VUE_APP_META_TITLE_BASE },\r\n { property: 'og:description', vmid: 'og:description', content: process.env.VUE_APP_META_SITE_NAME },\r\n { property: 'og:site_name', vmid: 'og:site_name', content: process.env.VUE_APP_META_SITE_NAME },\r\n { property: 'og:card', vmid: 'og:card', content: 'summary' },\r\n { property: 'og:og:site', vmid: 'og:og:site', content: process.env.VUE_APP_META_SITE_NAME },\r\n { property: 'og:type', vmid: 'og:type', content: 'website' },\r\n { property: 'og:locale', vmid: 'og:locale', content: 'en_GB' },\r\n { property: 'fb:admins', vmid: 'fb:admins', content: process.env.VUE_APP_META_FB_ADMIN },\r\n { property: 'og:url', vmid: 'og:url', content: window.location.origin },\r\n {\r\n property: 'og:image:secure_url',\r\n vmid: 'image:secure_url',\r\n content: `${window.location.origin}${process.env.BASE_URL}img/sharing-1200x630.jpg`\r\n },\r\n {\r\n property: 'og:image',\r\n vmid: 'og:image',\r\n content: `${window.location.origin}${process.env.BASE_URL}img/sharing-1200x630.jpg`\r\n },\r\n // Twitter\r\n { property: 'twitter:site', vmid: 'twitter:site', content: process.env.VUE_APP_META_SITE_NAME },\r\n {\r\n property: 'twitter:description',\r\n vmid: 'twitter:description',\r\n content: process.env.VUE_APP_META_SITE_NAME\r\n },\r\n { property: 'twitter:card', vmid: 'twitter:card', content: 'summary' },\r\n { property: 'twitter:title', vmid: 'twitter:title', content: process.env.VUE_APP_META_TITLE_BASE },\r\n {\r\n property: 'twitter:image',\r\n vmid: 'twitter:image',\r\n content: `${window.location.origin}${process.env.BASE_URL}img/sharing-1200x630.jpg`\r\n }\r\n ]\r\n};\r\n*/\r\n\r\n// Install VueSocialSharing\r\nVue.use(VueSocialSharing);\r\n\r\n// Install VueTagManager\r\nVue.use(VueTagManager, {\r\n gtmId: process.env.VUE_APP_GTM_ID\r\n});\r\n\r\n// Install VueFragment\r\nVue.use(Plugin);\r\n\r\n// Vue configuration\r\nVue.config.productionTip = false;\r\nVue.config.ignoredElements = ['video-js'];\r\n\r\n// JsonUrl\r\nVue.prototype.$lzma = JsonUrl('lzma');\r\n\r\n// LoadScript\r\nVue.use(LoadScript);\r\n\r\n// VueTour\r\nVue.use(VueTour);\r\n\r\n// Hiding loader\r\nhidePageLoader();\r\n\r\nnew Vue({\r\n el: '#appcontainer',\r\n /*\r\n metaInfo() {\r\n return metaInfo;\r\n },\r\n */\r\n router,\r\n store,\r\n render: h => h(App)\r\n});\r\n","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 82682,\n\t\"./ar-sa.js\": 82682,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 44429,\n\t\"./bs.js\": 44429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 99893,\n\t\"./nb.js\": 99893,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","var map = {\n\t\"./1256/venue/overview.png\": 22274,\n\t\"./1274/venue/overview.png\": 62122,\n\t\"./1304/venue/overview.png\": 46694,\n\t\"./1322/venue/overview.png\": 44666,\n\t\"./1546/venue/overview.png\": 64638,\n\t\"./2334/banner-register.png\": 49667,\n\t\"./986/CROSSLINK.png\": 94814,\n\t\"./986/CROSSLINK_LIVE.png\": 88221,\n\t\"./986/LOCSESS.png\": 55242,\n\t\"./986/venue/overview.png\": 51857,\n\t\"./990/venue/overview.png\": 75114,\n\t\"./995/venue/overview.png\": 64837\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 75292;","var map = {\n\t\"./1256/venue/overview.png\": 22274,\n\t\"./1274/venue/overview.png\": 62122,\n\t\"./1304/venue/overview.png\": 46694,\n\t\"./1322/venue/overview.png\": 44666,\n\t\"./1546/venue/overview.png\": 64638,\n\t\"./986/venue/overview.png\": 51857,\n\t\"./990/venue/overview.png\": 75114,\n\t\"./995/venue/overview.png\": 64837\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 69513;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/congress/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmedia_platform_front\"] = self[\"webpackChunkmedia_platform_front\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(64491); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["constants","LOCAL_USER_KEY","LOCAL_TOURS_KEY","LOCAL_NOTIFS_HISTORY_KEY","MEDIA_API_USER_BADGES_ENDPOINT","MEDIA_API_USER_HASACCESS_ENDPOINT","MEDIA_API_USER_DECRYPT_ENDPOINT","MEDIA_API_USER_CHAT_CONFIG_ENDPOINT","MEDIA_API_USER_INFO_ENDPOINT","MEDIA_API_USER_REGTYPE_ENDPOINT","MEDIA_API_LIVE_SESSIONS_LIST_ENDPOINT","MEDIA_API_SESSIONS_TIMELINE_ENDPOINT","MEDIA_API_REPLAY_SESSIONS_LIST_ENDPOINT","MEDIA_API_SESSION_DETAILS_ENDPOINT","MEDIA_API_SESSION_EXTERNAL_LINK_ENDPOINT","MEDIA_API_NEXT_SESSION_DETAILS_ENDPOINT","MEDIA_API_SESSION_MORE_DETAILS_ENDPOINT","MEDIA_API_SCIENTIFIC_SESSION_DETAILS_ENDPOINT","MEDIA_API_SESSION_DETAILS_BY_CHANNEL_ENDPOINT","MEDIA_API_ALL_SESSION_ELASTIC_ENDPOINT","MEDIA_API_SPEAKER_MORE_DETAILS_ENDPOINT","MEDIA_API_PRESENTATION_ABSTRACT_ENDPOINT","ESC365_API_SCIENTIFIC_CONTENT_SEARCH","ESC365_API_SCIENTIFIC_CONTENT_SEARCH_SPEAKERS","ESC365_API_SCIENTIFIC_CONTENT_SEARCH_PROGRAMME","ESC365_API_SCIENTIFIC_CONTENT_SEARCH_FACULTY","ESC365_API_SCIENTIFIC_CONTENT_SEARCH_ABSTRACT","MEDIA_API_TIMELINE_TIME_ENDPOINT","MEDIA_API_TIMELINE_TIME_TO_DISPLAY_ENDPOINT","MEDIA_API_TIMELINE_DIGEST_ENDPOINT","MEDIA_API_TIMELINE_FULL_ENDPOINT","MEDIA_API_TIMELINE_FULLV2_ENDPOINT","MEDIA_API_TIMELINE_COMING_ENDPOINT","SESSION_ID_PREFIX","DIGITAL_SESSION_ID_PREFIX","MEDIA_API_CHANNELS_LIST_ENDPOINT","MEDIA_API_CHANNELS_LIST_OPTIONS_ENDPOINT","MEDIA_API_CONGRESS_CONFIG_ENDPOINT","MEDIA_API_CONGRESS_BANNERS_ENDPOINT","MEDIA_API_CONGRESS_DAYS_ENDPOINT","MEDIA_API_WORKSHOPS","MEDIA_API_WORKSHOP_SLOTS","MEDIA_API_WORKSHOP_USER_SLOTS","MEDIA_API_CURRENT_WORKSHOP_SESSIONS","MEDIA_API_ALL_WORKSHOP_BY_DATE","MEDIA_API_NETWORKING_COUNTRIES_LIST","MEDIA_API_NETWORKING_SPECIALITIES_LIST","MEDIA_API_NETWORKING_PARTICIPANTS","MEDIA_API_NETWORKING_GET_PARTICIPANT","MEDIA_API_NETWORKING_GET_SIGNATURE","MEDIA_API_NETWORKING_ALTER_CHAT_AGREEMENT","MEDIA_API_LIST_FAVORITES_ENDPOINT","MEDIA_API_ADD_FAVORITE_ENDPOINT","MEDIA_API_REMOVE_FAVORITE_ENDPOINT","MEDIA_API_PARTNER_HASACCESS_ENDPOINT","MEDIA_API_PARTNER_GETVIDEO_ENDPOINT","MEDIA_API_PARTNER_GETREGISTRATIONSTATUS_ENDPOINT","ESC365_API_GET_USER_RECOMMENDATIONS","ESC365_API_GET_ITEM_RECOMMENDATIONS","LOAD_MORE_SESSIONS_COUNT","CHANNELS_COUNT_BY_SLIDE","STEP_SIZE_FACTOR","ROUTE_HOME","ROUTE_PROGRAMME","ROUTE_FACULTY","ROUTE_ABSTRACT","ROUTE_ONDEMAND","ROUTE_SCHEDULE","ROUTE_SESSION_DETAILS","ROUTE_VIDEO","ROUTE_MY_PROGRAMME","ROUTE_SIMULATION_VILLAGE","ROUTE_SIMULATION_VILLAGE_HOST","ROUTE_SIMULATION_VILLAGE_HOST_ADMIN","ROUTE_SPEAKER_DETAILS","ROUTE_PARTNER_MEDIA_VIDEO","ROUTE_PARTNER_HEALTH","ROUTE_ZOOMS_LIST","ROUTE_NETWORKING_SEARCH","ROUTE_NETWORKING_MESSAGES","ROUTE_NETWORKING_HOT_DISCUSSIONS","ROUTE_VENUE","ROUTE_LIVE","ROUTE_MOBILE_APP","ROUTE_MOBILE_APP_PRE_HOME","ROUTE_MOBILE_APP_HAPPENING_NOW","ROUTE_MOBILE_APP_INTERACTIVITY","ROUTE_MOBILE_APP_INTERACTIVITY_DEMO","ROUTE_MOBILE_APP_RESOURCE","EVENT_LOCATION_ONSITE","EVENT_LOCATION_ONLINE","EVENT_LOCATION_HYBRID","HF_2022_EVENT_ID","ACNAP_2022_EVENT_ID","ESC_2022_EVENT_ID","ESC_ASIA_2022_EVENT_ID","ACVC_2023_EVENT_ID","EHRA_2023_EVENT_ID","EACVI_2023_EVENT_ID","EAPC_2023_EVENT_ID","HF_2023_EVENT_ID","ACNAP_2023_EVENT_ID","ESC_2023_EVENT_ID","ACVC_2024_EVENT_ID","EHRA_2024_EVENT_ID","PREV_2024_EVENT_ID","ESC_2024_EVENT_ID","HF_2024_EVENT_ID","EE_2024_EVENT_ID","ICNC_2024_EVENT_ID","ACVC_2025_EVENT_ID","EHRA_2025_EVENT_ID","PREV_2025_EVENT_ID","ESC_2025_EVENT_ID","INDUSTRY_DEFAULT_DISCLAIMER","NO_BANNER_SMART_BANNER_META","name","vmid","content","EHRA_2025_SMART_BANNER_META","PREV_2025_SMART_BANNER_META","getUser","JSON","parse","window","localStorage","getItem","e","saveUser","user","setItem","stringify","destroyUser","removeItem","login","backUrl","forceCheckAccess","url","URL","searchParams","append","href","location","process","concat","encodeURIComponent","redirectErrorNotFound","origin","register","store","state","app","registrationLink","refreshAccess","logout","hasExpired","Date","getTime","parseInt","expires","processEncryptedEscID","eescid","Cookies","set","LOGIN","LOGOUT","TOGGLE_TIMELINE","ENABLE_POOLING","DISABLE_POOLING","OPEN_MEDIA_MODAL","CLOSE_MEDIA_MODAL","OPEN_CHANNEL_MODAL","CLOSE_CHANNEL_MODAL","FETCH_BANNERS","FETCH_FAVS","ADD_FAV","REM_FAV","UPDATE_SCROLL_POSITION","UPDATE_PARTNER_USER","DateHelper","compareTimeDatePart","time1","time2","date1","setHours","date2","valueOf","compareDays","addDaysToTime","time","nbDays","addDaysToDate","date","_date","setDate","getDate","getDates","startDate","endDate","onsiteStartDate","onsiteEndDate","timeDiff","Math","abs","diffDays","ceil","dateArr","Array","i","push","this","ceilToHalfHour","roundedTime","timeMinutes","getMinutes","setMinutes","setMilliseconds","setSeconds","floorToHalfHour","timeHours","getHours","isSharpHour","isValidDate","d","undefined","isNaN","browserTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","formatISODate","getFullYear","getMonth","padStart","join","onSiteDateTime","timestamp","browserDate","browserDateTime","onsiteDateTimeString","toLocaleString","onsiteDateTime","axiosInstance","axiosInstanceV2","MediaApiService","init","appInsights","axios","baseURL","interceptors","response","use","async","error","status","message","data","console","warn","dispatch","defaults","raxConfig","instance","retry","noResponseRetries","retryDelay","httpMethodsToRetry","statusCodesToRetry","backoffType","onRetryAttempt","err","trackException","exception","Error","rax","setHeader","headers","common","accessToken","GetUserInfo","eventId","get","params","getUserRegType","replace","getUserBadges","getUserParticipantChatConfig","userHasAccess","post","decryptEscId","escId","getAllLiveNowSessions","votingFirst","isInteractivity","removeExternalLinks","getLiveSessions","getLiveNowSessions","skip","take","getComingSessions","coming","liveNow","EventId","LiveNow","Coming","Take","Skip","VotingFirst","Interactivity","RemoveExternalLinks","getReplaySessions","channels","days","Channels","Days","getSessionDetails","sessionId","getSessionExternalLink","getNextSessionDetails","getSessionDetailsByChannel","channelId","getSessionMoreDetails","getScientificSessions","getSpeakerMoreDetails","userId","UserId","getAllSessionElasticDetails","getAllSpeakersElasticDetails","getTimeLineDigest","entity","dateTime","Entity","ChannelId","Datetime","TimeZoneOffset","getTimezoneOffset","getTimeLineFull","GroupSkip","GroupTake","ItemSkip","ItemTake","getTimeLineComing","itemTake","getTimelineTimeToDisplay","getChannels","getChannelsOptions","getConfig","eventRoute","EventRoute","getBanners","getDaysOptions","getWorkshops","getWorkshopSlots","slotIds","length","paramsSerializer","qs","arrayFormat","getWorkshopUserSlots","getCurrentWorkshopSesssions","password","log","getAllWorkshopsByDate","getCountries","getSpecialities","getSignature","searchParticipants","pageNumber","pageSize","countries","specialities","roles","onlyOnline","Name","Countries","Specialities","Roles","OnlyOnline","PageNumber","PageSize","alterChatAgreement","networkingChatAgreement","NetworkingChatAgreement","getFavorites","addFavorite","digitalSessionId","subSessionId","presentationId","personId","DigitalSessionId","SessionId","SubSessionId","PresentationId","PersonId","removeFavorite","getPresentationAbstract","partnerHasAccess","queryString","partnerGetVideo","partnerGetRegistrationStatus","getRecommendations","fullQuery","SET_AUTH","PURGE_AUTH","SET_IS_LOADING","SET_EVENT_CONFIG","SET_BANNERS","SET_POOLING_ENABLED","SET_TIMELINE_VISIBILITY","SET_MEDIA_MODAL_VISIBILITY","SET_MEDIA_MODAL_METADATA","PURGE_MEDIA_MODAL_METADATA","SET_CHANNEL_MODAL_VISIBILITY","SET_CHANNEL_MODAL_PARAMS","PURGE_CHANNEL_MODAL_PARAMS","SET_FAVS","PUSH_FAV","FILTER_FAV","SET_CONGRESS_MODE","SET_CMS_CACHE_VERSION","SET_CONF_CMS_DATA","SET_HOME_CMS_DATA","SET_UNREAD_NOTIFICATION","SET_CHAT_PARTICIPANT_CONFIG","SET_USER_INFO","SET_WORKSHOP_CART","SET_WORKSHOP_CART_FULL","SET_SCROLL_POSITION","SET_PARTNER_USER","initialState","version","isLoading","timelineExpanded","eventStartDate","eventEndDate","eventBaseTitle","isInPreviewMode","preCongressMode","postCongressMode","ressourcesMovedTo365","brightcoveAccountId","brightcovePlayerId","cmsEndpoint","escBanners","cmsCacheVersion","confCmsData","homeCmsData","widgetsParameters","industryStandsSearch","indexAbstracts","indexIndustries","indexLiveSessions","indexOnDemandSessions","indexSpeakers","locationTypeId","locationCity","showLiveBadge","showChannelOnline","unreadNotifications","chatParticipantConfig","locationType","organiserName","eventName","userInfo","workshopCart","getters","appVersion","isTimelineExpanded","actions","commit","then","mutations","escEventId","locationEvent","split","trim","banners","top","industryBanners","bottom","visibility","count","workshopId","workshopName","workshopPrice","slotId","slotDate","slotStartTime","slotEndTime","workshopItemIndex","findIndex","x","toRemove","id","splice","price","startTime","endTime","cartList","loggedIn","favs","isLogged","currentUser","fullName","firstName","lastName","urlParams","atob","email","title","token","fav","filter","userFavoriteId","consoleColors","misc","insights","events","enabled","isPoolingEnabled","info","media","show","metadata","type","channel","isMediaModalOpen","isChannelModalOpen","esc365Url","esc365MediaUrl","scientificSessionId","position","scrollPosition","partnerUser","Vue","Vuex","modules","auth","pooling","modal","scroll","partner","MediaType","SESSION","PRESENTATION","QueryHelper","extractMediaMetadata","furl","indexOf","splitArr","mediaType","charAt","mediaId","substring","extractChannelParams","extractSessionId","Number","addUrlParameter","parameter","value","resultQueryString","removeUrlParameter","urlParts","urlBase","shift","prefix","parts","lastIndexOf","getParameterByName","regex","RegExp","results","exec","decodeURIComponent","getStoryBlokPreviewToken","storyBlokPreviewToken","getStoryBlokClient","StoryblokClient","cache","clear","isInStoryBlokEditorPreview","result","validationString","validationToken","crypto","update","digest","month","day","hour","minute","second","hour12","hourCycle","format","timeZoneName","formatToParts","map","reduce","string","part","slice","richTextResolver","render","year","formatedChannelName","_vm","_c","_self","mobileApp","_e","staticRenderFns","attrs","staticClass","style","backgroundImage","publicPath","_v","isLive","onlineSessionsAvailable","Ismobile","_s","onlineSessions","_l","session","key","mode","index","computed","mapState","methods","getChannelName","channelOnlineName","channelOnsiteName","forceOnlineChannelName","channelName","getSessionThumbnail","forceOnlineChannelThumbnail","thumbnailURL","getChannelThumbnail","channelCode","channelOnSiteCode","channelOnlineCode","channelOnsiteCode","channelThumbnail","require","currentSession","scopedSlots","_u","fn","isOnDemand","_f","sessionType","channelOnSiteDisplayName","proxy","isLiveSession","forceProgress","progress","duration","forceOnlineChannel","interactivity","esc365SessionUrl","hideWatchButton","isReplay","showVoteButton","votingUrl","showAskQuestionButton","askQuestionUrl","subTitle","isInInterlude","forceInteract","renderAs","on","$event","stopPropagation","preventDefault","onWatchClick","apply","arguments","isExternal","props","Object","Boolean","String","required","default","validator","hasExternalLink","hasAccess","open","externalLink","$store","$router","encryptedChannelId","component","votingTitle","showModal","onClose","onVoteClick","visible","directives","rawName","isloading","showWaiter","expression","staticStyle","onBackClick","isContentVisible","onLoad","components","loaded","watch","newurl","odlurl","$nextTick","showContent","newvisible","oldvisible","onShow","onHide","created","eventDetails","$emit","document","body","classList","add","remove","onHidden","hideContent","showLoading","hideLoading","IframeModal","askQuestionTitle","onAskQuestionClick","includes","isLarge","onFavClick","ref","width","height","isFavorite","find","mounted","$gtm","event","uniqId","action","esc365PersonUrl","esc365PresentationUrl","scientificPresentationId","esc365AbstractUrl","mixins","hybridEventMixin","esc365Mixin","SessionButton","SessionVoteButton","AskQuestionButton","FavoriteButton","isComing","navigateToSession","target","closest","SessionCard","isLoadingMore","sessions","loadMoreVisible","newReplaysAvailable","sessionAvailable","fetchLiveNowSessionsJob","fetchReplaySessionsJob","channelValues","channelOptions","daysValues","daysOptions","poolingLiveSessionsInterval","poolingReplaySessionsInterval","s","isOnline","onsiteSessions","isOnsite","channelFilterLabel","onsiteSessionsAvailable","mapGetters","fetchLiveNowSessions","fetchComingSessions","fetchReplaySessions","setInterval","beforeDestroy","clearInterval","nbSession","min","channelsSelected","daysSelected","checkNewReplaysAvailable","refreshReplays","loadMore","loadMoreLiveNowSessions","loadMoreComingSessions","loadMoreReplaySessions","onTreeSelectInput","HappeningNow","domProps","tagline","register_active","isRegistered","register_button_link","Register_button_link_text_register","isInternalLink","register_button_link_isRegistered","Register_button_link_text_isRegistered","quizz_active","navigate","quizz_text","quizz_link","quizz_link_text","isRegisteredOverrided","register_text","register_button_text","register_text_isRegistered","register_button_text_isRegistered","HtmlHelper","decodeHTMLEntities","text","textArea","createElement","innerHTML","removeExtraBreakLines","startsWith","slider_blocks","sliderBlock","_uid","slider_title","slider_image","filename","slider_button_link","link_internal","link_value","link_new_tab","link_text","$options","filters","formatStoryRichText","slider_text","happeningNowSessionsChunks","chunk","sessionsBySlide","responsivechannelsPerSlide","$screen","xxl","xl","lg","md","sm","xs","happeningNowSessions","chunkArray","array","size","chunkedArray","TakeQuizzMobileWidget","RegisterPromoWidget","AuthoredSlidesBlock","HappeningNowBlock","carouselContentComponent","speakerSearchQuery","abstractSearchQuery","nbTitles","nb","tileSize","titlesContainerSize","countdown_active","countdown_text","_m","remainingTime","onCountdownEnd","hours","minutes","seconds","VueCountdown","now","PreHomeCountDownWidget","PreHomeContentV2","MobileAppPreHome","MobileAppHappeningNow","enableNotifications","showHeader","$route","meta","hideHeaderFooter","class","isLiveMode","isPageWithoutTimeline","timelineExpandedData","toggleTimeLine","isMounted","generateRouterKey","hasNetworkingAccess","isNetworkingMessagePage","isNetworkingEnabled","showFooter","SfChatBot","EventEmitter","constructor","super","script","load","embedded_svc","_this","onload","settings","extraPrechatFormDetails","label","displayToAgent","prepopulatedPrechatFields","FirstName","LastName","Email","Subject","extraPrechatInfo","entityName","showOnCreate","linkToEntityName","linkToEntityField","saveToTranscript","entityFieldMaps","isExactMatch","fieldName","doCreate","doFind","setAttribute","head","appendChild","gslbBaseURL","displayHelpButton","language","enabledFeatures","entryFeature","defaultMinimizedText","baseLiveAgentContentURL","deploymentId","buttonId","baseLiveAgentURL","eswLiveAgentDevName","isOfflineSupportEnabled","dispose","removeChild","getDefaultRoute","model","callback","$$v","close","isMetadataLoading","EscDisclaimer","disclaimer","videoId","onBrightcovePlayerLoaded","isModerated","misconductEmailFamily","eventGuid","sessionGuid","firebaseConfig","isMemberExclusive","industryLink","networks","network","metaUrl","metaTitle","metaDescription","icon","industryEmail","modifiers","onMoreDetailsClick","isMoreDetailsLoading","sessionMoreDetails","chairpersons","learningObjectives","presentations","chair","fullNameWithAddress","presentation","persons","person","role","fullNameWithAddr","address","fullAddressFormatted","addressFormatted","roleFormatted","formattedRole","sessionBanners","banner","banner_href","banner_target","_b","banner_image","imgPlaceholder","center","blank","blankColor","Banners","getModalBanners","modal_banners_blocks","banner_session_id","accountId","playerId","$uuid","v1","brightcovePlayer","scriptUrl","onScriptLoaded","self","videojs","getPlayer","ready","browser_language","navigator","userLanguage","substr","track_language","track_found","fallback_track","tracks","textTracks","headerText","buttonText","returnUrl","fullPath","showButton","becomeAmember","checkAccess","linkText","personsMixin","ModalBanners","BrightcovePlayer","LogginWidget","RegisterWidget","isPigeonLoading","isFirstClickOnMoreDetails","isBcPlayerLoaded","waitingForClosing","fetchNextSessionDetailsJob","metaInfo","property","channelModal","liveVideoId","memberExclusiveDigitalSessionIds","isIndustry","newSession","oldFurl","query","c","channelFurl","assign","isLoaded","refreshSessionDetails","resetState","clearNextSessionDetailsJob","logAccessDenied","createNextSessionDetailsJob","fetchNextSessionDetails","previousVideoId","catch","onPigeonWidgetLoaded","currentTime","nextRefreshTime","nextRefreshDelay","debug","formatUnixEpocTimePartForLog","Duration","fromMillis","toFormat","setTimeout","clearTimeout","$appInsights","logAccessDeniedProps","source","trackEvent","properties","replayMode","interactRoomId","pigeonUrl","onIframeLoaded","pigeonId","PigeonWidget","isSession","replayVideoId","v","hidden","me","inbox","signature","Talk","User","recipient","recipientId","isInteger","r","Session","appId","unreads","onUnreadsChange","conversation","getOrCreateConversation","oneOnOneId","setParticipant","createInbox","selected","useBrowserHistory","mount","getElementById","destroy","unreadConversations","amountOfUnreads","delay","history","localHistory","start","getSeconds","getMilliseconds","checkNotifications","notifs_blocks","DateTime","utc","notifications","fromFormat","notif_start","zone","notif_end","notification","createIndustryToast","el","$createElement","toastBodyNodes","notif_text","variant","notif_href","notif_target","$bvToast","toast","toaster","noAutoHide","noHoverPause","autoHideDelay","bodyClass","flagNotification","notificationId","onUpdateBtnClick","$root","about_text","learn_more_url","venue","footer_blocks","footerEntry","footer_terms_and_conditions_link","footer_contact_us_link","footer_data_privacy","formatStoryRichTextWithoutEncapsulatingParagraph","registerUrl","becomeMemberUrl","userProfileUrl","myAccountUrl","sloUrl","navbar_blocks","navEntry","isDisplayed","inline_css","clickToCollapse","display_icon_live","children","tourIndex","handleToggleClick","isCollapsedSection","subNavEntry","isNetworkingLinkActive","slot","hasUnreadNotifications","route","newMessage","isMobile","steps2","callbacks","isTourActive","steps","callbacksNav","isTourNavActive","callbacksNavLive","isTourNavLiveActive","widgetData","to","onClick","img","crossLinkImageNamePrefix","crossLinkToUrl","crossLinkToAlt","alt","channelParams","mediaFurl","mediaMetadata","tours","search","overview","nav","searchCalendar","schedule","navLive","toursState","onTourCompleted","tour","TakeQuizzWidget","CrossLinkWidget","openModalMixin","toursManagerMixin","searchInput","home_link_text","abstracts_link_text","abstracts_link_url","exhibition_link_text","exhibition_link_url","esc_stand_link_text","esc_stand_link_url","esc_stand_link_target","support_link_text","support_link_url","header","placement","enableScrolling","highlight","onSkip","onFinish","toursEnd","myProfileUrl","breakpoint","path","immediate","handler","newVal","initializeCollapsedSections","$tours","generateTourSteps","destroyUserAndLogout","navbarBlocks","sections","forEach","section","$set","isCollapsed","displayCommunity","tour_text","Navbar","Footer","ChannelModal","MediaModal","NewVersionToast","IndustryToastManager","NetworkingChat","chatBot","inView","isMobileAppPage","isHomePage","pagesWithoutTimeline","isChatbotEnabled","smartBannerMeta","__sharethis__","host","escid","logEscIdProps","loadEventConfiguration","$loadScript","loadEventCmsConfiguration","loadUserChatParticipantConfiguration","loadUserInfo","toString","eventRouteToLower","toLowerCase","storyblokClient","sbConfigData","sbVersion","space","isInEditorPreview","configData","cv","configStoryData","story","homeData","homeStoryData","injectCongressTheme","congressThemeLink","congressTheme","querySelector","rel","cssVars","congressFavicon","refreshBanners","redirectToDefaultRoute","defaultRoute","router","eventConfig","basePageTitle","isCommingSession","happeningNowSessionAvailable","commingNextSessionAvailable","recoUUID","channelOrder","tutorialLink","channelOnSite","channelOnSiteId","channelOnSiteOrder","banners_blocks","banner_position","banner_start","banner_end","banner_page","hasBoostedTerms","hasTrending","hasPopularity","recommendationData","BoostedTerms","Sessions","Popularity","Trending","fetchRecommendations","hasUserRecos","hasTrendingRecos","hasPopularRecos","guestUserId","fetchRecommendationRequest","selectedRecommendationType","selectedContentType","fetchRecommendationData","RecommenderTypesOptions","Contenttypes","recoId","uuid","filterRecos","recos","obj","pos","arr","mapObj","sanitizeId","rawId","extractId","rawcontent","parseFloat","extractTitle","getuuid","uid","getuuidTrending","liveAndUpcomingFavs","onDemandFavs","eventDays","eventDay","isSelectedDay","cursor","color","onDayClick","resultsFiltered","onFavoriteRemove","sessionDetailsUrl","digitalUrl","ListSessionCard","items","resultsToDisplay","daySelected","timeFromServer","fetchtime","fetchResults","refreshDaysList","noDaysSelected","nbResults","nbDisplayedResults","nbResultsToTake","loadMoreResult","resultsToAppend","formatUnixEpocDayPart","timeToDisplay","moveToDayByDay","dayDateOnly","sessionStartDate","sessionDateOnly","serverTime","ListSessionBlock","EscBanners","IndustryBanners","RecommendationBlock","OverviewTabs","networkingHasAccess","isAgreementLoading","onSwitchChange","alterResStatus","_chatParticipantConfig","NetworkingConsent","NetworkingNoAccessWidget","nativeOn","onTextInputKeydown","nameValue","countriesOptions","countriesValues","specialitiesOptions","specialitiesValues","onSearchClick","searchResults","totalRows","photoUrl","getPlaceOfWork","custom","institution","country","specialty","linkedInUrl","twitterUrl","perPage","onPageChange","currentPage","Treeselect","statusValues","statusOptions","countriesData","specialitiesData","which","searchResultsData","totalResults","getCountryDescription","code","countryCode","placeOfWork","page","registrationStatus","logged","registered","startLoading","loginUrl","accessCodeUrl","pushAnalytics","stopLoading","partnerResource","screen","orientation","unlock","isFullscreen","lock","BrightcovePartnerPlayer","paag_doc","OnLoading","showScrollToTop","scrollToSearchBar","searchDocType","searchPlaceholder","getDocTypeFacets","facet","facetConf","getFacetConfiguration","refInFor","selectedDocTypesFacetsOptions","multiple","placeholder","limit","limitText","selectedDocTypesFacetsValues","isComponentOrChildLoading","onClearFilter","keys","onClearClick","hasResults","hasValidDoctypesCount","docTypes","selectedDocTypeIndex","onActivateTab","docType","onTabClick","tab__title_xl","disabled","tab__title__active","getDocTypeHeader","componentKey","selectedDocType","selectedDocTypeResultsElastic","resultsFacets","eventDates","showList","showCalendar","showCards","selectedDate","onOnShowChange","setDay","OnChildLoading","buttonStyle","showCardsComponent","showListComponent","showCalendarComponent","getDayDocCount","resultType","sortedTimes","closestTime","sticky__lg","scrollTarget","groupedResults","dbId","onAbstractView","contentId","currentAbstractModalPresentationId","abstractModalVisible","onAbstractModalClose","onAbstractModalHidden","startTimeUnixEpoc","endTimeUnixEpoc","digitalSessionIds","roomDisplayName","showRoom","showChannelRoom","isSponsoredSessionType","durationMinutes","presentationsSplit","speakers","fulltext","sessionResult","rooms","platformFullVideoId","extractTopicFromSnippet","rawTopics","rawTopicsList","room","rst","formatContentSnippet","rawContentSnippet","isSponsoredSession","rawResult","sub_title","raw","processType","thumbnail","defaultPicture","primarySpeciality","DefaultPicture","rawTopicsToDisplay","rt","contributors","fullname","abstractContentSearch","topic","researchGatewayLink","onViewClick","getAbstractContentSearch","values","emNembre","replaceAll","subtitle","abstract","authors","n","isUnderEmbargo","embargoDate","abstractContentFormatted","fecthAbstract","SessionResultCard","SpeakerResultCard","AbstractResultCard","IndustryStandResultCard","AbstractModal","newResults","abstractModalPresentationId","showAbstractModal","calculateDuration","end","diffInMs","diffInMinutes","expandedData","toggable","searchResultsByChannel","slidesCount","onSlideStart","onSlideEnd","slideNumber","needChannelCarousel","invisible","isSliding","onCarouselPrevClick","getChannelsBySlide","formatChannelName","onCarouselNextClick","dayDuration","stepSizeFactor","showSharpTimeLine","startDayTime","channelLoopIndex","item","idbId","endDayTime","expanded","types","topics","isTimelineFullFirstOpen","allowNextDay","allowPreviousDay","hover","channelsPerSlide","timeLineFull","poolingTimelineDigestInterval","channelList","timeLinePosition","totalDayDuration","_timeLineFull","channelItems","calculatedDuration","order","oldResults","fetchtimeLineFull","getSessionBgCssClass","bgCssClass","a","b","slideIndex","sliceFrom","sliceTo","$refs","timelineCarousel","prev","next","SearchResultsCards","SearchResultsCalendar","SearchResultsTimeline","resultsBlock","acc","formatUnixEpocTimePart","sort","onShowChangeArg","button","scrollToClosestTime","getClosestTime","element","scrollIntoViewExtended","behavior","block","baseOffset","navOffset","daysBarOffset","lesserTimes","sortedTime","SearchResultsBlock","y","scrollTo","offset","selector","isChildLoading","pageFromUrl","reloadKey","totalSpeakersCount","resultToSend","selectedDocTypeResults","selectedDocTypeResultsContributors","selectedSpeakersList","selectedSessionIndustryList","facetSessionIndustryList","selectedSpeakersListFacets","topicListes","facetContributors","sessionListes","facetsTreeSelect","selectedDocTypeDefault","fetchTimeJob","textValue","endPointToUse","channelsOptions","indexEscTvSessions","indexDailyHighLight","poolingTimeInterval","some","hasChannels","defaultDay","addEventListener","handleScroll","unmounted","removeEventListener","getValueFromUrl","forceRerender","handleSearch","Promise","resolve","collapseAllNodes","facetName","treeSelectTopics","traverseAllNodesByIndex","node","isBranch","isExpanded","getDaysTreeSelect","daysTreeSelect","daysTreeSelectRef","getTypesTreeSelect","typesTreeSelect","typesTreeSelectRef","getTracksTreeSelect","tracksTreeSelect","tracksTreeSelectRef","getTopicsTreeSelect","topicsTreeSelect","topicsTreeSelectRef","getCountriesTreeSelect","countriesTreeSelect","countriesTreeSelectRef","countryTreeSelect","getSpecialitiesTreeSelect","specialitiesTreeSelect","specialitiesTreeSelectRef","getRoomsTreeSelect","roomsTreeSelect","roomsTreeSelectRef","oldQueryString","hasFilters","updateQueryString","vueMode","session_type","vue","fulltextqueryparam","pageparam","filterdocTypeparam","filterdaysparam","filtersessionTypesparam","filtersessionTracksparam","filtertopicsparam","filtercountryparam","filterspecialitiesparam","filterroomsparam","vueparam","updateSelectedDocType","updateFacets","countryList","facets","facetIndex","facetOptions","facetOptionIndex","facetOption","topicId","topicToAdd","contries","allFilter","getFullFilter","documentsWithHighlight","total","sourceIndu","docTypeAllData","firstDocTypeWithResults","firstDateStringWithResults","firstDateWithResults","allSession","digitalSession","digitalSessionDailyHighLight","digitalSessionEscTV","digitalSessionIndustry","industryStand","speaker","addDataToSessionList","docTypesRes","_docTypes","hasAnySessions","hasAnyScientificSessions","hasAnyIndustrySessions","hasAnyDailyHighlightSessions","hasAnyEscTvSessions","hasAnyIndustryStands","hasAnySpeakers","hasAnyAbstracts","facetsOrder","searchScientificContentsRequest","hasControl","display","forControls","startTimeRanges","fromJSDate","from","toISO","setLocale","docTypeFacets","addTopicWithParent","topicParentId","topicsArr","topicParent","args","selectDay","newTabIndex","_","bvEvent","scrollY","searchBar","Search","userRecos","trendingRecos","popularRecos","eventDaySelectedIndex","updateTab","workshops","workshop","slots","isPastSlot","displayName","sessionDuration","description","purchased","isRegisteredOnSite","checked","availableSits","selectSlot","$bvModal","hide","cartCheckErrors","slotSelection","redirectToCheckout","isRegistrationLoaded","removeSlot","processOrder","registrations","serverDate","toDateString","cartData","totalPrice","slotSelectionCopy","Map","entries","workshopData","localeCompare","fetchWorkshopData","selectedSlot","fetchUserWorkshopRegistration","registrationData","registrationMap","reg","has","sortedMap","hasCartSelectionConflicts","stateItem","conflictArray","checkCartOverlapConstraint","checkUniqueCartWorkshopConstraint","duplicateArray","purchasedWorkshop","flat","selectedWorkshop","slotTimeOverlap","getTimeStringSeconds","overlapArray","cartProducts","programmeProducts","cart","isRangeOverlap","programme","conflictItems","conflictItemIds","timeArray","xStart","xEnd","yStart","yEnd","regType","registrationType","max","displayError","roomName","contacts","contact","ESCID","AccessDeniedBlock","intervalId","timeoutId","getQueryPassword","success","_k","keyCode","searchQuery","allWorkshops","applyFilter","searchWorkshops","postcongress_on_demand_message","SessionsBlock","on_demand_close_date","next_congress_dates","congress_name","OnDemand","isTimeLoading","onPreviousDayClick","onNextDayClick","timeLine","sessionTimeLineItem","Id","itemIndex","onSessionItemClick","showDuplicatedHeader","fetchTimeLineJob","fetchtimeLine","qDay","refreshDaySelectors","getUniqueColor","rgb","firstDaySessions","lastDaysessions","moveToDay","step","compareWithFirstDay","compareWithLastDay","sessionFurl","Timeline","onSearchRequested","categories","categorie","categorieImage","moreDetailsLink","twitterId","juryAbstract","judge","presentationAbstract","fetchSession","beforeRouteEnter","vm","fromRoute","back","speakerDetails","esc365ProfileUrl","presentationStartTime","presentationTitle","sessionTitle","presentationTopic","presentationRoles","sessionStartTime","sessionTopic","speakerFurl","floorplanUrl","isMosaicEnabled","mosaicUploadUrl","currentTarget","iframeId","mosaicIframeUrl","lang","postcongress_happening_now_message","postcongress_coming_next_message","isLiveNow","fetchComingSessionsJob","ChannelSessionsBlock","HomeTabs","MosaicWidget","mosaicEventId","MobileAppChannel","middlewarePipeline","context","middleware","nextMiddleware","nextPipeline","originalPush","Router","prototype","call","routes","PartnerWrapper","requireEvent","HealthWidget","PartnerRegistrationStatus","PartnerMediaVideo","alias","ROUTE_PARTNER_MEDIA_RESOURCES","PartnerMediaResources","requireEncryptedEscID","EventWrapper","HomeSelector","MobileAppInteractivity","MobileAppResource","MobileAppInteractivityDemo","Home","Schedule","MyProgrammeOverview","ProgrammeOverview","FacultyOverview","SimuVillage","SimuVillageHost","SimuVillageHostAdmin","AbstractOverview","OnDemandOverview","SessionDetails","SpeakerDetails","NetworkingSearch","NetworkingMessages","VenueOverview","beforeEnter","scrollBehavior","savedPosition","hash","beforeEach","URLSearchParams","matched","record","expired","endsWith","afterEach","hpa","acl","nextQuery","usr","fca","forcesso","refreshPageMixin","currentHash","newVersion","newHash","checkVersionFile","initVersionCheck","frequency","checkVersion","fileResponse","hasHashChanged","errorStatus","reloadApp","reload","logAppInfosProps","checkVersionInterval","$on","detectFocusOut","onWindowFocusChange","focus","pageshow","tabFocus","hidePageLoader","loader","HTMLElement","scrollOffset","topStickyNav","offsetHeight","topStickyDays","scrollMarginTop","scrollIntoView","instrumentationKey","ApplicationInsights","config","loadAppInsights","trackPageView","VueAppInsights","baseName","CyimPlugin","BootstrapVue","VueScreen","library","faPlayCircle","faExclamationCircle","faInfoCircle","faSyncAlt","faUsers","faRedo","faSpinner","FontAwesomeIcon","observer","UUID","VueMeta","refreshOnceOnNavigation","VueSocialSharing","VueTagManager","gtmId","Plugin","productionTip","ignoredElements","$lzma","JsonUrl","LoadScript","VueTour","h","App","webpackContext","req","webpackContextResolve","__webpack_require__","o","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","definition","defineProperty","enumerable","g","globalThis","Function","hmd","create","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","bind","__webpack_exports__"],"sourceRoot":""}