{"version":3,"file":"js/app.0c37d4eb.js","mappings":"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","sources":["webpack://media-platform-front/./node_modules/moment/locale/ sync ^\\.\\/.*$","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?36f5","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?919c","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?b5f4","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?351a","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?4e6b","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?ed26","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?eaa1","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?c8ed","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?4f74","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?e23c","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?05fd","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?f144","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?a00f","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?2bba","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?9590","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?59d9","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?9e5d","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?4102","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?720a","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?a50b","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?997a","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?7dbe","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?dde1","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?1ded","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?f7af","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?a2b8","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?c6dd","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?c2df","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?cd04","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?5a4a","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?8058","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?9850","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?0ad7","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?9c3c","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?6ff1","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?20fb","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?5adb","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?be93","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?9ae7","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?4f1b","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?655f","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?23e6","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?7b1d","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?36f8","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?4045","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?874d","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?f1a5","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?5b23","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?cadb","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?e4f8","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?8a1a","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?b872","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?c34d","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?df4b","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?2723","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?a443","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?2e43","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?347a","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?f587","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?5081","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?912b","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?f5a6","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?bcd3","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?4a85","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?8ec2","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?2981","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?8a7b","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?167c","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?710b","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?d565","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?2b5d","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?0aa5","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?e53b","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?96a1","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?bae1","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?0e05","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?ff44","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?d929","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?ede9","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?fe46","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?7ad2","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?fffd","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?53bc","webpack://media-platform-front/./src/layout/App.vue?0ea8","webpack://media-platform-front/./src/main.js","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":["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;","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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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-dark\",attrs:{\"role\":\"alert\"}},[_c('span',{staticClass:\"font-black\"},[_vm._v(\"Please report any misconduct to \"),_c('a',{staticClass:\"misconductMail font-light\",attrs:{\"href\":'mailto:' + _vm.session.misconductEmailFamily}},[_vm._v(_vm._s(_vm.session.misconductEmailFamily))])])]):_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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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-dark\" role=\"alert\">\r\n <span class=\"font-black\"\r\n >Please report any misconduct to\r\n <a class=\"misconductMail font-light\" :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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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=18d0dc06&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=18d0dc06&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 \"18d0dc06\",\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),(false)?_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):_vm._e()],_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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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 v-if=\"false\" 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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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=4050b194&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=4050b194&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 \"4050b194\",\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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../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/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../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/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../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/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../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/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../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/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../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/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../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/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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\r\n maxlength=\"100\"\r\n type=\"search\"\r\n :placeholder=\"searchPlaceholder\"\r\n @keydown.native=\"onTextInputKeydown\"\r\n class=\"searchInput\"\r\n v-model=\"query\"\r\n />\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 } 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 } 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 || 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 topicToAdd = {\r\n name: 'topicNode',\r\n id: facetOption.id,\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) && this.indexEscTvSessions && x.value === 'DigitalSessionEscTV') ||\r\n ((this.indexLiveSessions || this.indexOnDemandSessions) && this.indexDailyHighLight && 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\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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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=0dcd8473&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=0dcd8473&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 \"0dcd8473\",\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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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.isLoading)?_c('div',[(!_vm.displayError)?_c('b-container',{staticClass:\"px-lg-5\",attrs:{\"fluid\":\"\"}},[(_vm.workshops.length)?_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):_vm._e(),_c('b-alert',{attrs:{\"show\":_vm.workshops.length == 0,\"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 workshop sessions taking place. \")],1)],1):_c('b-container',[_c('AccessDeniedBlock')],1)],1):_c('div',[_c('b-container',{staticClass:\"px-lg-5\",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._e()])],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 <div v-if=\"!isLoading\">\r\n <b-container fluid class=\"px-lg-5\" v-if=\"!displayError\">\r\n <b-row no-gutters v-if=\"workshops.length\">\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-alert :show=\"workshops.length == 0\" 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 workshop sessions taking place.\r\n </b-alert>\r\n </b-container>\r\n <b-container v-else>\r\n <AccessDeniedBlock />\r\n </b-container>\r\n </div>\r\n <div v-else>\r\n <b-container fluid class=\"px-lg-5\">\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 </b-container>\r\n </div>\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: true,\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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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=4fe1ce7a&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=4fe1ce7a&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 \"4fe1ce7a\",\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('b-col',{attrs:{\"cols\":\"12\"}},[_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 }","b-row\r\n<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 <b-col v-if=\"isLoading\" cols=\"12\">\r\n <div 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 </b-col>\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: true,\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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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=4c2bf8fa&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=4c2bf8fa&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 \"4c2bf8fa\",\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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../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/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../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/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../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/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../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\"./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__(87869); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","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","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","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","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","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","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","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","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","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","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","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","__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":""}