{"version":3,"sources":["components/Utils.js","consts/defaultValues.js","redux/actions/index.js","components/Storage.js","assets/UnknownPic.png","assets/1pxTransparent.png","components/ApiCalls.js","consts/consts.js","idEvent.js","helpers/Utils.js","assets/logo-kingconf.png","assets/messageSound.mp3","assets/enterStand.mp3","assets/notificationSound.mp3","serviceWorker.js","redux/reducers/conversation.js","redux/reducers/seachBar.js","redux/reducers/menu/index.js","redux/reducers/settings/index.js","redux/chat/reducer.js","redux/reducers/liveFeed.js","redux/reducers/notificationCenter.js","redux/reducers/certificate.js","redux/reducers/miniVideoPlayer.js","redux/reducers/businessRoundsReducer.js","redux/reducers/index.js","redux/chat/actions.js","redux/chat/saga.js","redux/sagas.js","redux/store.js","services/bussinesRounds.service.js","redux/actions/businessRounds.actions.js","components/SignalrSocket.js","index.js","redux/actions/menu/index.js","redux/actions/settings/index.js","redux/actionsTypes.js"],"names":["Utils","guid","replace","c","r","Math","random","toString","move","array","fromIndex","toIndex","splice","isVideoCallLink","link","match","renderIf","condition","content","getDashboardWidth","document","getElementById","offsetWidth","getDashboardHeight","offsetHeight","getProfilePictureOrUnknown","pictureId","UnknownPic","__IMAGEHANDLER_URL__","abs","getPictureOrTransparent","onePxTransparent","getEventLogoOrDefault","logoPictureId","LogoKC","getPlatformPicture","virtualEventPlatformPictureId","getUTCDate","inDate","outDate","Date","setMinutes","getMinutes","getTimezoneOffset","isValidForCertificate","email","validEmails","__VALID_MAILS_FOR_CERTIFICATES__","toLowerCase","indexOf","isEventFinished","moment","require","currentDate","utc","Storage","getEventEndDate","isAfter","getRandomNumber","topNumber","round","logOut","clearAll","setTimeout","window","location","href","getLanguageOverride","locale","split","getLanguageOverrideEs","getLanguageOverrideEn","getLanguageOverridePt","getLanguageOverrideFr","getStartupPage","replaceLinks","replaceAll","_getModuleConverted","module","itemNr","languageOverrideEs","languageOverrideEn","languageOverridePt","languageOverrideFr","iconSrc","menuConverted","imgSrc","menuOption","id","icon","label","to","menuButtonText_ES","menuButtonText_EN","menuButtonText_PT","menuButtonText_FR","setStartupPage","isHomeLobbyType","subs","push","menuOptionConfiguration","url","menuEs","getRegistrationType","__EXHIBITOR_PROFILE__","pageCode","category","registeredOnly","convertMenu","menu","forEach","moduleConverted","listMenuButtonStoreData","moduleSubMenu","moduleConverted2","setLanguageOverrideEs","setLanguageOverrideEn","setLanguageOverridePt","setLanguageOverrideFr","sort","a","b","order","getDescriptionText","activity","description_EN","description","description_ES","description_PT","description_FR","getTitleText","title_EN","title","title_ES","title_PT","title_FR","getAttendeesFilterBy","myRegistrationType","__BR_ROUNDS_GROUP_ONE__","__BR_ROUNDS_GROUP_TWO__","htmlDecode","t","logOnConsole","message","console","log","toISOString","logOnClick","type","idExhibitor","additionalData","types","video","banner","endpointURL","__APIURLVIRTUALEXPO__","formData","options","headers","getJwtToken","axios","post","response","error","getFileHandlerUrl","idFile","createRegExWithAcentosInsensitive","patronABuscar","palabrasEnCualquierOrden","undefined","regexPattern","palabra","trim","RegExp","getSpeakerName","values","speakerName","treatment","firstName","lastName","name","getShowPeopleLastNameFirst","nameSeparator","insertCss","code","style","createElement","styleSheet","cssText","innerHTML","getElementsByTagName","appendChild","getRegistrationTypeAlias","registrationType","__EXHIBITOR_ALIAS__","__HOSTEDBUYER_ALIAS__","__ATTENDEES_ALIAS__","__SPEAKER_ALIAS__","removeHtml","text","errorThrown","deviceId","trunc","navigator","userAgent","messageToreport","__APIKCURL__","method","data","networkingAction","idEvent","Number","getIdEvent","feedback","encodeURIComponent","getPersonCompletename","getIdRegistration","getPersonEmail","then","resp","catch","outerWidth","array1","array2","length","i","this","checkIfEqualsObjects","obj1","obj2","JSON","stringify","str","params","search","param","index","slice","storedEmail","urlParams","parse","localStorage","getItem","receivedAccessCode","atob","accesscode","storedEvent","parseInt","receivedEvent","AcEventId","defaultMenuType","subHiddenBreakpoint","menuHiddenBreakpoint","defaultLocale","localeOptions","direction","defaultDirection","enterStand","payload","leaveStand","receiveMessageFromServer","notificationReceived","liveFeedMessageReceived","liveFeedClearMessages","miniVideoPlayerShow","miniVideoPlayerHide","certificateCreated","stands","setItem","floorPlans","filter","o","deleted","getPersonName","getPersonLastname","idPerson","getIdPerson","pavilionUrl","areas","element","map","s","exhibitorName","shape","coords","standPositionOnFloorplan","preFillColor","fillColor","tooltip","actionType","imageUrl","actionPayload","encodeURI","decodeURI","normalize","normalizeName","exhibitorNameDecoded","getStands","find","standsWithDifferentPavilion","Map","item","getFloorPlans","e","floorPlan","f","pavilionName","alert","floorPlanType","idPersonExhibitor","Cookies","remove","path","domain","__DOMAIN__","clear","jwtToken","set","cookies","get","time","sessions","speakers","activityTracks","activityTypes","registrationCode","lastname","idPicture","idRegistration","tags","additionalInformation","overdueAccess","businessRoundEnabled","roomsArray","virtualBasicInfo","cssStyles","VirtualEventLogoPictureId","topBarBackgroundColor","virtualEventLoginPageBackgroundPictureId","VirtualEventLoginFormBackgroundPictureId","VirtualEventLoginFormBackgroundVideoUrl","VirtualExhibitionOutsideVenuePictureId","timeZoneId","menuJson","virtualMenuJson","mainScheduleNr","abstractScheduleNr","showPeopleLastNameFirst","orderPeopleByLastNameFirst","menuButtonStoreData","endDate","oficialRegistrationWebsiteAddress","lobbyBannersList","LobbyBannersList","imagePosition","hoverImageUrl","VirtualEventPlatformPictureId","eventConfigurationList","EventConfigurationList","config","clave","valor","VirtualEventHomePageType","mainLanguage","err","ApiCalls","logMessage","idEventFromQuery","URLSearchParams","__IDEVENT_FORCED__","__SHOW_SPLASH_VIDEO__","value","videolink","myStand","getMyStandToRepresent","videoConferenceConfiguration","startupPage","promoCode","rooms","roomId","loginConfiguration","isLoginHorizontal","LoginBox","hasLoginTitle","loginBoxColor","LoginBoxColor","loginBoxTextColor","LoginBoxTextColor","loginBoxHeaderTextColor","LoginBoxHeaderTextColor","loginBoxTitle","LoginBoxTitle","loginBoxPosition","LoginBoxPosition","__LOGIN_SCREEN_POSITION__","hasBackgroundPicture","backgroundPicture","hasBackgroundFormPicture","backgroundFormPicture","videoBackgroundURL","hasVideoBackground","registrationEnabled","__REGISTRATION_ENABLED__","passwordResetEnabled","__PASSWORD_RESET_ENABLED__","emailOnlyAuthentication","__EMAIL_ONLY_AUTHENTICATION__","banners","getLobbyBannersList","Array","isArray","password","eventId","pathname","urlQuery","Object","entries","Boolean","showSocialWallInNetworking","getEventConfiguration","ShowSocialWallInNetworking","Error","StartupScriptFrontEndCongress","status","bsconfig","exports","getTrivias","challengeId","Promise","resolve","__API_TRIVIA_URL__","trivias","triviaAnswers","from","p","trivia","concat","triviaItems","sendErrorToServer","logOnTriviaClick","redeemPoints","__API_REDEEM_POINTS_URL__","logOnClickBanner","additionalDataName","getNews","__APIKCURL_V3__","getPersonRegistrationCode","news","publishedDate","localeCompare","getVideos","__API_VIDEO_URL__","videosList","getSpeakers","__APIPACKAGEURL__","eventFinished","__API_VIRTUAL_BASIC_INFO__","getPosters","getConversationsBusinessRound","__BR_ATTENDEES_PAGINATED__","getBusinessRoundType","getRequestForVideoCall","getWords","__LIVEAPIURL__","getVideoMeeting","slotId","__BR_MEETING__","results","getSponsorsData","getOnlySpeakers","__API_SPEAKERS_URL__","getActivityDescription","__API_SESSIONS_CONTENT_URL__","optConf","res","logGenericAction","endpoint","logOnSponsorsClick","logOnSponsorDetailClick","idSponsor","logOnLobbyClick","logOnNetworkingClick","logOnLiveStreamClick","roomName","logOnPostersClick","logOnPosterDetailClick","idActivity","logOnHtmlLinkMenuClick","menuName","getRooms","__API_ROOMS_URL__","getSponsors","sponsors","categoryOrder","orderInCategory","showInCarousel","getExhibitorRepresentative","__API_EXHIBITOR_REPRESENTATIVE__","getExhibitorProducts","getEventSearchableData","attendees","__API_ATTENDEES_URL__","all","__API_SPONSORS_URL__","attendeesData","sponsorsData","standsData","Items","unblockSlot","__BR_SLOT_UNBLOCK__","cancelMeeting","__BR_RESPONSE_MEETING__","blockCalendar","cancelMessage","__BR_CALENDAR_BLOCK__","responseNote","unBlockCalendar","__BR_CALENDAR_UNBLOCK__","messageToLog","__API_LOGS__","__FORCE_SESSIONS_UPDATE_ALWAYS__","__API_FEED_ROOM__","__BR_REQUEST_MEETING__","__BR_DECLINE_MEETING__","__BR_ACCEPT_MEETING__","__BR_MY_MEETINGS_SLOTS__","__BR_AVAILABLE_MEETINGS_SLOTS__","__BR_SLOT_BLOCK__","__BR_CONFIGURATION__","__API_FEED_FORUM__","getCurrentTime","now","getHours","getPictureHandlerUrl","normalizeText","hostname","initialState","selectedParticipant","participantsOnStand","allUnreadMessages","conversationReducer","state","action","fromPersonId","alreadyInStand","unreadMessagesCount","unreadMessages","obj","messageFromServer","selectedExhibitor","searchBarReducer","assign","INIT_STATE","containerClassnames","menuClickCount","selectedMenuHasSubItems","x","allContacts","contacts","conversations","searchKeyword","loadingContacts","loadingConversations","currentUser","selectedUser","selectedUserId","liveFeed","liveFeedReducer","notifications","notificationsUnread","notificationCenterReducer","certificateUrl","certificateReducer","show","miniVideoPlayerReducer","calendar","counterpartList","configuration","isUIEnabled","isEnabled","filters","categories","investmentRanges","spotlightCompany","businessRoundsReducer","UPDATE_CALENDAR","UPDATE_COUNTERPARTS","LOCK_UI","UNLOCK_UI","UPDATE_CONFIGURATION","UPDATE_FILTERS","allReducers","combineReducers","MENU_CHANGE_HAS_SUB_ITEM_STATUS","MENU_SET_CLASSNAMES","MENU_CLICK_MOBILE_MENU","MENU_CONTAINER_ADD_CLASSNAME","MENU_CHANGE_DEFAULT_CLASSES","settings","CHANGE_LOCALE","conversation","searchBar","chatApp","CHAT_GET_CONTACTS","CHAT_GET_CONTACTS_SUCCESS","CHAT_GET_CONTACTS_ERROR","CHAT_GET_CONVERSATIONS","CHAT_GET_CONVERSATIONS_SUCCESS","CHAT_GET_CONVERSATIONS_ERROR","CHAT_CHANGE_CONVERSATION","CHAT_ADD_MESSAGE_TO_CONVERSATION","CHAT_CREATE_CONVERSATION","CHAT_SEARCH_CONTACT","keyword","searchedContacts","notificationCenter","certificate","miniVideoPlayer","getContactsSuccess","getConversationsSuccess","getConversationsError","loadContacts","loadConversations","addMessageToConversation","changeConversation","createNewConversation","watchGetContact","watchGetConversation","watchAddMessageToConversation","watchCreateConversation","watchChangeConversation","rootSaga","call","getMyUser","put","userId","loadConversationsAsync","contactedPersonId","success","fail","result","dateTotransform","postedDate","author","postedByPersonId","timestamp","setHours","confirmed","socket","currentUserId","allConversations","addMessageToConversationAsync","sendMessage","messages","sender","lastMessageTime","createNewConversationAsync","users","takeEvery","fork","chatSagas","sagaMiddleware","createSagaMiddleware","middlewares","thunk","getCalendar","MyStorage","token","meetingDays","meetings","slot","date","meetingStartDateTime","includes","day","dayMeetings","handleError","requestingMethod","request","logDescription","level","process","IdEvent","AdditionalInformation","exceptionType","statusText","SignalrSocket","chatHandler","fromIdPerson","toPersonId","msgId","Audio","messageSound","play","messageId","store","dispatch","standActionHandler","personIdExhibitor","standEventInfo","fromPersonExhibitorId","enterStandSound","notificationHandler","notification","newNotification","unsanitazed","showToast","notificationSound","liveFeedHandler","liveFeedMessage","heartbeatHandler","getOverdueAccess","idRoom","getLiveStreamRoomId","showingMiniVideoPlayer","getMiniPlayerSelectedRoomId","signalRSocket","invoke","ex","certificateCreatedHandler","pageTitle","unfocusMessagesReceived","signalR","withUrl","accessTokenFactory","withAutomaticReconnect","configureLogging","Information","withHubProtocol","build","ret","start","connection","baseUrl","on","refreshCalendar","onclose","socketClosed","SignalRSocket","createStore","reducers","compose","applyMiddleware","run","sagas","configureStore","App","React","lazy","ReactDOM","render","StrictMode","fallback","className","serviceWorker","ready","registration","unregister","changeLocale"],"mappings":"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","file":"static/js/main.6cff76d0.chunk.js","sourcesContent":["import UnknownPic from '../assets/UnknownPic.png';\nimport onePxTransparent from '../assets/1pxTransparent.png';\nimport LogoKC from '../assets/logo-kingconf.png';\nimport { __IMAGEHANDLER_URL__, __SPEAKER_ALIAS__, __APIURLVIRTUALEXPO__, __EXHIBITOR_ALIAS__, __HOSTEDBUYER_ALIAS__, __ATTENDEES_ALIAS__, __VALID_MAILS_FOR_CERTIFICATES__, __APIKCURL__, __API_ATTENDEES_URL__, __BR_ROUNDS_GROUP_ONE__, __BR_ROUNDS_GROUP_TWO__, __EXHIBITOR_PROFILE__ } from '../consts/consts';\nimport Storage from './Storage';\nimport axios from 'axios';\n\nlet Utils = {\n\tguid: function () {\n\t\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n\t\t\tvar r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n\t\t\treturn v.toString(16);\n\t\t});\n\t},\n\n\tmove: function (array, fromIndex, toIndex) {\n\t\treturn array.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);\n\t},\n\n\n\tisVideoCallLink: function (link) {\n\t\tif (link.match(/zoom.us/gi) ||\n\t\t\tlink.match(/teams.microsoft/gi) ||\n\t\t\tlink.match(/meet.google/gi)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\trenderIf: function (condition, content) {\n\t\tif (condition) {\n\t\t\treturn content;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t},\n\tgetDashboardWidth: function () {\n\t\treturn document.getElementById(\"Dashboard-Wrapper\").offsetWidth;\n\t},\n\tgetDashboardHeight: function () {\n\t\treturn document.getElementById(\"Dashboard-Wrapper\").offsetHeight;\n\t},\n\n\tgetProfilePictureOrUnknown: function (pictureId) {\n\n\t\treturn pictureId == 0 || pictureId == null ? UnknownPic : __IMAGEHANDLER_URL__ + Math.abs(pictureId);\n\t},\n\n\tgetPictureOrTransparent: function (pictureId) {\n\t\treturn pictureId == 0 || pictureId == null ? onePxTransparent : __IMAGEHANDLER_URL__ + Math.abs(pictureId)\n\t},\n\n\tgetEventLogoOrDefault: function (logoPictureId) {\n\t\treturn logoPictureId == 0 || logoPictureId == null ? LogoKC : __IMAGEHANDLER_URL__ + Math.abs(logoPictureId)\n\t},\n\n\tgetPlatformPicture: function (virtualEventPlatformPictureId) {\n\t\treturn __IMAGEHANDLER_URL__ + Math.abs(virtualEventPlatformPictureId)\n\t},\n\tgetUTCDate: function (inDate) {\n\t\t//Date in format 2020:10:00T00:00\n\t\tlet outDate = new Date(inDate);\n\t\toutDate.setMinutes(outDate.getMinutes() + outDate.getTimezoneOffset());\n\t\treturn outDate;\n\t},\n\n\tisValidForCertificate: function (email) {\n\t\tlet validEmails = __VALID_MAILS_FOR_CERTIFICATES__;\n\t\tif (validEmails == \"*\" || validEmails.toLowerCase().indexOf(email.toLowerCase()) >= 0) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\tisEventFinished: function () {\n\t\tvar moment = require(\"moment-timezone\");\n\t\tconst currentDate = moment.utc();\n\t\tif (Storage.getEventEndDate() == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (currentDate.isAfter(moment(Storage.getEventEndDate()))) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tgetRandomNumber: function (topNumber) {\n\t\treturn Math.round((Math.random() * 100000)) % topNumber;\n\t},\n\n\tlogOut() {\n\t\tStorage.clearAll();\n\t\tsetTimeout(function () {\n\t\t\twindow.location.href = \"/\";\n\t\t}, 2000)\n\t},\n\n\tgetLanguageOverride: function (locale) {\n\t\tswitch (locale.split('-')[0]) { //Viene como es-ES\n\t\t\tcase 'es': return Storage.getLanguageOverrideEs();\n\t\t\tcase 'en': return Storage.getLanguageOverrideEn();\n\t\t\tcase 'pt': return Storage.getLanguageOverridePt();\n\t\t\tcase 'fr': return Storage.getLanguageOverrideFr();\n\t\t}\n\t},\n\n\tgetStartupPage: function () {\n\t\treturn Storage.getStartupPage();\n\t},\n\n\treplaceLinks: function (content) {\n\t\tif (content != null)\n\t\t\treturn content.replaceAll('#https://', 'https://').replaceAll('#http://', 'http://');\n\t\treturn content;\n\t},\n\n\n\n\t_getModuleConverted: function (module, itemNr, languageOverrideEs, languageOverrideEn, languageOverridePt, languageOverrideFr) {\n\t\tlet iconSrc = null;\n\t\tlet menuConverted = {};\n\t\tif (module.imgSrc.match('data:image') != null)\n\t\t\ticonSrc = module.imgSrc;\n\n\t\tswitch (module.menuOption) {\n\t\t\tcase 'home':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'home',\n\t\t\t\t\ticon: 'simple-icon-home',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.home',\n\t\t\t\t\tto: '/',\n\t\t\t\t};\n\t\t\t\tlanguageOverrideEs['menu.home'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.home'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.home'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.home'] = module.menuButtonText_FR;\n\t\t\t\tif (itemNr == 1) {\n\t\t\t\t\tStorage.setStartupPage(\n\t\t\t\t\t\tStorage.isHomeLobbyType() ? 'home' : 'panel'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'liveStream':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'liveStream',\n\t\t\t\t\ticon: 'iconsminds-youtube',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.liveStream',\n\t\t\t\t\tto: '/liveStream',\n\t\t\t\t};\n\t\t\t\tlanguageOverrideEs['menu.liveStream'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.liveStream'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.liveStream'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.liveStream'] = module.menuButtonText_FR;\n\t\t\t\tif (itemNr == 1) {\n\t\t\t\t\tStorage.setStartupPage('liveStream');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'exhibition':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'fair',\n\t\t\t\t\ticon: 'iconsminds-opera-house',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.fair',\n\t\t\t\t\tto: '/fair',\n\t\t\t\t};\n\t\t\t\tlanguageOverrideEs['menu.fair'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.fair'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.fair'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.fair'] = module.menuButtonText_FR;\n\t\t\t\tif (itemNr == 1) {\n\t\t\t\t\tStorage.setStartupPage('fair');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Sessions':\n\t\t\tcase 'programmeByDay':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'programmeByDay',\n\t\t\t\t\ticon: 'simple-icon-calendar',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.programme',\n\t\t\t\t\tto: '/programme/programmeView',\n\t\t\t\t};\n\t\t\t\tlanguageOverrideEs['menu.programme'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.programme'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.programme'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.programme'] = module.menuButtonText_FR;\n\t\t\t\tif (itemNr == 1) {\n\t\t\t\t\tStorage.setStartupPage('programmeByDay');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'speakers':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'speakers',\n\t\t\t\t\ticon: 'simple-icon-microphone',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.speakers',\n\t\t\t\t\tto: '/speakers/speakersDetail',\n\n\t\t\t\t};\n\t\t\t\tlanguageOverrideEs['menu.speakers'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.speakers'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.speakers'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.speakers'] = module.menuButtonText_FR;\n\t\t\t\tif (itemNr == 1) {\n\t\t\t\t\tStorage.setStartupPage('speakers');\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'programme':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'programme',\n\t\t\t\t\ticon: 'simple-icon-calendar',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.programme',\n\t\t\t\t\tto: '/programme/programmeView',\n\t\t\t\t\tsubs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ticon: 'simple-icon-calendar',\n\t\t\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\t\t\tlabel: 'menu.programme',\n\t\t\t\t\t\t\tto: '/programme/programmeView',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'speakersDetail',\n\t\t\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\t\t\ticon: 'simple-icon-microphone',\n\t\t\t\t\t\t\tlabel: 'menu.speakers',\n\t\t\t\t\t\t\tto: '/speakers/speakersDetail',\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\n\t\t\t\t};\n\t\t\t\tlanguageOverrideEs['menu.programme'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.programme'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.programme'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.programme'] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'businessRound':\n\t\t\t\tlet subs = []\n\n\t\t\t\tsubs.push(\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'iconsminds-affiliate',\n\t\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\t\tlabel: 'menu.makemeeting',\n\t\t\t\t\t\tto: '/businessRound/businessRoundView',\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tsubs.push({\n\t\t\t\t\tid: 'myMeetingsView',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\ticon: 'iconsminds-address-book-2',\n\t\t\t\t\tlabel: 'menu.mymeetings',\n\t\t\t\t\tto: '/businessRound/myMeetingsView',\n\t\t\t\t})\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'businessRound',\n\t\t\t\t\ticon: 'iconsminds-speach-bubbles',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.brounds',\n\t\t\t\t\tsubs: subs,\n\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.brounds'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.brounds'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.brounds'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.brounds'] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'attendees':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'attendees',\n\t\t\t\t\ticon: 'simple-icon-people',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.attendees',\n\t\t\t\t\tto: '/panel',\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.attendees'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.attendees'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.attendees'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.attendees'] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'posters':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'posters',\n\t\t\t\t\ticon: 'iconsminds-blackboard',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.posters',\n\t\t\t\t\tto: '/posters',\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.posters'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.posters'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.posters'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.posters'] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'sponsors':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'sponsorsData',\n\t\t\t\t\ticon: 'iconsminds-crown-2',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.sponsors',\n\t\t\t\t\tto: '/sponsors/sponsorsData',\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.sponsors'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.sponsors'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.sponsors'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.sponsors'] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'htmlLink':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'htmlLink_' + itemNr,\n\t\t\t\t\ticon: 'simple-icon-web',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.htmlLink_' + itemNr,\n\t\t\t\t\tto: module.menuOptionConfiguration.url,\n\n\t\t\t\t}\n\t\t\t\tlet menuEs = module.menuButtonText_ES;\n\t\t\t\tif (module.menuButtonText_ES == 'Mis compras' && Storage.getRegistrationType() == __EXHIBITOR_PROFILE__) {\n\t\t\t\t\tmenuEs = \"Mis ventas\";\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.htmlLink_' + itemNr] = menuEs;\n\t\t\t\tlanguageOverrideEn['menu.htmlLink_' + itemNr] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.htmlLink_' + itemNr] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.htmlLink_' + itemNr] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'restrictedPages':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'restricteredPages_' + itemNr,\n\t\t\t\t\ticon: 'simple-icon-lock',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.restricteredPages_' + itemNr,\n\t\t\t\t\tto: '/restricteredPages',\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.restricteredPages_' + itemNr] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.restricteredPages_' + itemNr] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.restricteredPages_' + itemNr] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.restricteredPages_' + itemNr] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'htmlGenericView':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'htmlGenericView_' + itemNr,\n\t\t\t\t\ticon: 'iconsminds-information',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.htmlGenericView_' + itemNr,\n\t\t\t\t\tto: '/pages/' + module.menuOptionConfiguration.pageCode,\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.htmlGenericView_' + itemNr] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.htmlGenericView_' + itemNr] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.htmlGenericView_' + itemNr] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.htmlGenericView_' + itemNr] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'htmlGenericViewList':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'htmlGenericViewList_' + itemNr,\n\t\t\t\t\ticon: 'iconsminds-information',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.htmlGenericViewList_' + itemNr,\n\t\t\t\t\tto: '/pagesList/' + module.menuButtonText_ES.toLowerCase(),\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.htmlGenericViewList_' + itemNr] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.htmlGenericViewList_' + itemNr] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.htmlGenericViewList_' + itemNr] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.htmlGenericViewList_' + itemNr] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'ListMenu': //TODO: falta implementar\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'ListMenu_' + itemNr,\n\t\t\t\t\ticon: 'simple-icon-menu',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.listMenu_' + itemNr,\n\t\t\t\t\tto: '/',\n\t\t\t\t\tsubs: [],\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.listMenu_' + itemNr] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.listMenu_' + itemNr] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.listMenu_' + itemNr] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.listMenu_' + itemNr] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'videos':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'videos',\n\t\t\t\t\ticon: 'simple-icon-control-play',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.videos',\n\t\t\t\t\tto: '/videos',\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.videos'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.videos'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.videos'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.videos'] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'support':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'support',\n\t\t\t\t\ticon: 'simple-icon-control-play',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.support',\n\t\t\t\t\tto: '/pages/' + module.menuOptionConfiguration.pageCode,\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.support'] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.support'] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.support'] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.support'] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'internalLink':\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'internalLink_' + itemNr,\n\t\t\t\t\ticon: 'simple-icon-web',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.internalLink_' + itemNr,\n\t\t\t\t\tto: module.menuOptionConfiguration.url,\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.internalLink_' + itemNr] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.internalLink_' + itemNr] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.internalLink_' + itemNr] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.internalLink_' + itemNr] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t\tcase 'forums':\n\t\t\t\tlet category = '';\n\t\t\t\tif (module.registeredOnly == \"1\") {\n\t\t\t\t\tcategory = \"/restrictered\"\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (module.menuButtonText_ES == \"After\") {\n\t\t\t\t\t\tcategory = \"/public\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmenuConverted = {\n\t\t\t\t\t...module,\n\t\t\t\t\tid: 'forums_' + itemNr,\n\t\t\t\t\ticon: 'iconsminds-speach-bubble-comic-2',\n\t\t\t\t\ticonSrc: iconSrc,\n\t\t\t\t\tlabel: 'menu.forums_' + itemNr,\n\t\t\t\t\tto: '/forums' + category\n\t\t\t\t}\n\t\t\t\tlanguageOverrideEs['menu.forums_' + itemNr] = module.menuButtonText_ES;\n\t\t\t\tlanguageOverrideEn['menu.forums_' + itemNr] = module.menuButtonText_EN;\n\t\t\t\tlanguageOverridePt['menu.forums_' + itemNr] = module.menuButtonText_PT;\n\t\t\t\tlanguageOverrideFr['menu.forums_' + itemNr] = module.menuButtonText_FR;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn menuConverted;\n\t},\n\tconvertMenu: function (menu) {\n\t\tlet menuConverted = [];\n\t\tlet languageOverrideEs = {};\n\t\tlet languageOverrideEn = {};\n\t\tlet languageOverridePt = {};\n\t\tlet languageOverrideFr = {};\n\t\tlet itemNr = 0;\n\t\tmenu.forEach(module => {\n\n\t\t\titemNr++;\n\t\t\tlet moduleConverted = this._getModuleConverted(module, itemNr, languageOverrideEs, languageOverrideEn, languageOverridePt, languageOverrideFr);\n\t\t\tif (module.menuOption == \"ListMenu\") {\n\t\t\t\tmodule.menuOptionConfiguration.listMenuButtonStoreData.forEach(\n\t\t\t\t\tmoduleSubMenu => {\n\t\t\t\t\t\titemNr++;\n\t\t\t\t\t\tlet moduleConverted2 = this._getModuleConverted(moduleSubMenu, itemNr, languageOverrideEs, languageOverrideEn, languageOverridePt, languageOverrideFr);\n\t\t\t\t\t\tif (moduleConverted2 != null)\n\t\t\t\t\t\t\tmoduleConverted.subs.push(moduleConverted2);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tmenuConverted.push(moduleConverted);\n\t\t\tStorage.setLanguageOverrideEs(languageOverrideEs);\n\t\t\tStorage.setLanguageOverrideEn(languageOverrideEn);\n\t\t\tStorage.setLanguageOverridePt(languageOverridePt);\n\t\t\tStorage.setLanguageOverrideFr(languageOverrideFr);\n\t\t}\n\t\t);\n\t\treturn menuConverted.sort((a, b) => b.order - a.order);\n\t},\n\n\tgetDescriptionText(activity, locale) {\n\t\tswitch (locale) {\n\t\t\tcase \"en\":\n\t\t\t\treturn activity.description_EN != \"\" ? activity.description_EN : activity.description;\n\t\t\tcase \"es\":\n\t\t\t\treturn activity.description_ES != \"\" ? activity.description_ES : activity.description;\n\t\t\tcase \"pt\":\n\t\t\t\treturn activity.description_PT != \"\" ? activity.description_PT : activity.description;\n\t\t\tcase \"fr\":\n\t\t\t\treturn activity.description_FR != \"\" ? activity.description_FR : activity.description;\n\t\t\tdefault:\n\t\t\t\treturn activity.description;\n\t\t}\n\n\t},\n\tgetTitleText(activity, locale) {\n\t\tswitch (locale) {\n\t\t\tcase \"en\":\n\t\t\t\treturn activity.title_EN != \"\" ? activity.title_EN : activity.title;\n\t\t\tcase \"es\":\n\t\t\t\treturn activity.title_ES != \"\" ? activity.title_ES : activity.title;\n\t\t\tcase \"pt\":\n\t\t\t\treturn activity.title_PT != \"\" ? activity.title_PT : activity.title;\n\t\t\tcase \"fr\":\n\t\t\t\treturn activity.title_FR != \"\" ? activity.title_FR : activity.title;\n\t\t\tdefault:\n\t\t\t\treturn activity.title;\n\t\t}\n\n\t},\n\n\tgetAttendeesFilterBy() {\n\n\t\tlet myRegistrationType = Storage.getRegistrationType().toLowerCase();\n\t\tif (myRegistrationType == __BR_ROUNDS_GROUP_ONE__ ||\n\t\t\tmyRegistrationType == __BR_ROUNDS_GROUP_TWO__) {\n\t\t\tswitch (myRegistrationType) {\n\t\t\t\tcase __BR_ROUNDS_GROUP_ONE__: return __BR_ROUNDS_GROUP_TWO__;\n\t\t\t\tcase __BR_ROUNDS_GROUP_TWO__: return __BR_ROUNDS_GROUP_ONE__;\n\t\t\t\tdefault: return '';\n\t\t\t}\n\t\t}\n\t},\n\n\n\thtmlDecode(t) {\n\t\tif (t != null)\n\t\t\treturn t.replace(/</g, '<').replace(/>/g, '>')\n\t\treturn '';\n\t},\n\n\tlogOnConsole(message) {\n\t\tconsole.log(new Date().toISOString() + ': ' + message);\n\t},\n\n\tasync logOnClick(type, idExhibitor, additionalData) {\n\t\tconst types = {\n\t\t\tvideo: 'logOnVideoClick',\n\t\t\tbanner: 'logOnBannerClick',\n\t\t\t'360Tour': 'logOn360TourClick'\n\t\t};\n\t\tconst endpointURL = `${__APIURLVIRTUALEXPO__}logger/${types[type]}`;\n\t\tconst formData = {\n\t\t\tidExhibitor,\n\t\t\tadditionalData\n\t\t};\n\n\t\tconst options = {\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t\t//La siguiente linea hace la magia de autenticar con el token!\n\t\t\t\t'Authorization': 'bearer ' + Storage.getJwtToken()\n\t\t\t},\n\t\t};\n\t\ttry {\n\t\t\tconst response = await axios.post(endpointURL, options, formData)\n\t\t\treturn response;\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t},\n\n\n\tgetFileHandlerUrl(idFile) {\n\t\treturn \"https://www.kingconf.com/Handlers/EventFileHandler.ashx?AcEventFileId=\" + idFile + \"&AcEventFileInlineContent=true\";\n\t},\n\n\tcreateRegExWithAcentosInsensitive(patronABuscar, palabrasEnCualquierOrden) {\n\t\tif (palabrasEnCualquierOrden == undefined)\n\t\t\tpalabrasEnCualquierOrden = true;\n\t\t//supuestamente tambien se puede escribir el caracter é en unicode así: e\\u0341 pero no logro hacer andar esto combinado con [eéêe\\u0341]]\n\t\tvar arraySpecialCharacters = [[/[aáâã]/g, '[aáâã]'], [/[eéê]/g, '[eéê]'], [/[ií]/g, '[ií]'], [/[oóõô]/g, '[oóõô]'], [/[uúü]/g, '[uúü]'], [/[cç]/g, '[cç]']];\n\t\tpalabrasEnCualquierOrden = false;\n\t\tarraySpecialCharacters.forEach(function (a) { patronABuscar = patronABuscar.replace(a[0], a[1]); });\n\t\tlet regexPattern = patronABuscar;\n\t\tif (palabrasEnCualquierOrden) {\n\t\t\tregexPattern = '';\n\t\t\tvar palabras = patronABuscar.split(' ');\n\t\t\tpalabras.forEach(function (palabra) {\n\t\t\t\tif (palabra.trim() != '')\n\t\t\t\t\tregexPattern = regexPattern + '(?=.*' + palabra.trim() + ')';\n\t\t\t}\n\t\t\t);\n\t\t}\n\t\telse {\n\t\t\t//Esto es para que cuando se busca con palabras ordenadas acepte palabras intermedias (reemplaza espacios por comodines)\n\t\t\t// patronABuscar = patronABuscar.replace(/\\s/g, \".*\");\n\t\t\tregexPattern = patronABuscar;\n\t\t}\n\t\treturn new RegExp(regexPattern, \"i\");\n\t},\n\n\tgetSpeakerName(values) {\n\t\tvar speakerName = '';\n\t\tif (values.treatment != null && values.treatment != '') {\n\t\t\tspeakerName = values.treatment + ' ';\n\t\t}\n\t\tif (values.firstName == null && values.lastName == null) {\n\t\t\t//ESTO LO PONGO POR SI SE HACE UN UPDATE A UNA APP VIEJA QUE NO TIENE LOS CAMPOS NUEVOS\n\t\t\treturn speakerName += values.name;\n\t\t}\n\t\tif (Storage.getShowPeopleLastNameFirst() == false) {\n\t\t\tspeakerName += values.firstName + ' ' + values.lastName;\n\t\t}\n\t\telse {\n\t\t\tvar nameSeparator = '';\n\t\t\tif (values.firstName && values.lastName)\n\t\t\t\tnameSeparator = ', ';\n\t\t\tspeakerName += values.lastName + nameSeparator + values.firstName;\n\t\t}\n\t\treturn speakerName;\n\t},\n\n\tinsertCss: function (code) {\n\t\tvar style = document.createElement('style');\n\t\tstyle.type = 'text/css';\n\n\t\tif (style.styleSheet) {\n\t\t\t// IE\n\t\t\tstyle.styleSheet.cssText = code;\n\t\t} else {\n\t\t\t// Other browsers\n\t\t\tstyle.innerHTML = code;\n\t\t}\n\n\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(style);\n\t},\n\tgetRegistrationTypeAlias(registrationType) {\n\t\tswitch (registrationType) {\n\t\t\tcase \"Exhibitor\": return __EXHIBITOR_ALIAS__;\n\t\t\tcase \"HostedBuyer\": return __HOSTEDBUYER_ALIAS__;\n\t\t\tcase \"Attendee\": return __ATTENDEES_ALIAS__;\n\t\t\tcase \"Speaker\": return __SPEAKER_ALIAS__;\n\t\t}\n\t},\n\tremoveHtml: function (text) {\n\t\tconst regex = /(<([^>]+)>)/ig;\n\t\t\n\t\treturn text && text.replace(regex, '');\n\t},\n\tlogOnConsole(message) {\n\t\tconsole.log(new Date().toISOString() + ': ' + message);\n\t},\n\tsendErrorToServer: function (message, module, errorThrown) {\n\n\t\tlet deviceId = \"\";\n\t\tdeviceId += Math.trunc(Math.random() * 10000) + navigator.userAgent;\n\t\tlet messageToreport = message + \" in module \" + module + \" error thrown: \" + errorThrown;\n\t\tconst options = {\n\t\t\turl: __APIKCURL__ + 'Attendees/',\n\t\t\tmethod: 'POST',\n\t\t\theaders: { 'Content-Type': 'application/json' },\n\t\t\tdata: {\n\t\t\t\tnetworkingAction: 'SendErrorReport',\n\t\t\t\tidEvent: Number(Storage.getIdEvent()),\n\t\t\t\tfeedback: encodeURIComponent('

Este usuario experimento un ERROR: ' + Storage.getPersonCompletename() + '

RegistrationID: ' + Storage.getIdRegistration() +\n\t\t\t\t\t'

Email: ' + Storage.getPersonEmail() + '

' +\n\t\t\t\t\t'

EventId: ' + Storage.getIdEvent() + '

' +\n\t\t\t\t\t'

Token: ' + Storage.getJwtToken() + '

' +\n\t\t\t\t\t'ErrorInfo:

' + messageToreport + '
+ |END|'),\n\t\t\t\tdeviceId: deviceId\n\t\t\t}\n\t\t};\n\n\t\taxios(options).then(resp => {\n\t\t\tconsole.log('An Error has occurred sended to server OK--------')\n\t\t}).catch(error => {\n\n\t\t\tconsole.error('reporte de errores enviado al servidor! ' + messageToreport);\n\t\t});//fin del Ajax call\n\t},\n\n\tisMobile: function () {\n\t\treturn (window.outerWidth <= 464);\n\t},\n\tcheckIfEqualsArrays(array1, array2) {\n\t\t//Verifica que los objetos de array1 y 2 son iguales\n\t\tif (array1.length != array2.length)\n\t\t\treturn false;\n\t\tif (array1 == null && array2 == null)\n\t\t\treturn true\n\t\tfor (let i = 0; i < array1.length; i++) {\n\t\t\tif (!this.checkIfEqualsObjects(array1[i], array2[i]))\n\t\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\n\t},\n\tcheckIfEqualsObjects(obj1, obj2) {\n\t\treturn JSON.stringify(obj1) === JSON.stringify(obj2);\n\t},\n\tisNullOrEmpty(str) {\n\t\treturn (str == null || str == '')\n\t},\n\tgetInitialURLParams() {\n\t\tconst params = {}\n\t\tconsole.log(window.location.search);\n\t\twindow.location.search.split(\"&\").forEach((param, index) => {\n\t\t\tif (index === 0) {\n\t\t\t\tparam = param.slice(1)\n\t\t\t}\n\t\t\tif (param) {\n\t\t\t\tparams[param.split(\"=\")[0]] = param.split(\"=\")[1]\n\t\t\t}\n\t\t})\n\t\treturn params\n\t},\n\tcredentialsMatch() {\n\t\tconst storedEmail = Storage.getPersonEmail()\n\t\tconst urlParams = JSON.parse(window.localStorage.getItem('urlParams'))\n\t\ttry {\n\t\t\tconst receivedAccessCode = atob(urlParams.accesscode)\n\t\t\treturn storedEmail === receivedAccessCode || !receivedAccessCode\n\n\t\t} catch (error) {\n\t\t\treturn true\n\t\t}\n\t},\n\teventMatch() {\n\t\tconst storedEvent = parseInt(window.localStorage.getItem('AcEventId'))\n\t\tconst urlParams = JSON.parse(window.localStorage.getItem('urlParams'))\n\t\tconst receivedEvent = parseInt(urlParams.AcEventId)\n\t\treturn storedEvent === receivedEvent || !receivedEvent\n\t},\n\teventRedDelSol() {\n\t\tconst urlParams = JSON.parse(window.localStorage.getItem('urlParams'))\n\t\tconst receivedEvent = parseInt(urlParams.AcEventId)\n\n\t\treturn receivedEvent == 11091\n\t}\n};\n\nexport default Utils;\n","/* \nMenu Types:\n\"menu-default\", \"menu-sub-hidden\", \"menu-hidden\"\n*/\nexport const defaultMenuType = 'menu-default';\n\nexport const subHiddenBreakpoint = 1200;//1440;\nexport const menuHiddenBreakpoint = 768;\nexport const defaultLocale = 'es';\nexport const localeOptions = [\n { id: 'es', name: 'Español', direction: 'ltr' },\n { id: 'en', name: 'English', direction: 'ltr' },\n { id: 'pt', name: 'Portuguese', direction: 'ltr' },\n { id: 'fr', name: 'French', direction: 'ltr' },\n\n];\n\nexport const searchPath = '#';\nexport const servicePath = 'https://api.coloredstrategies.com';\n\nexport const themeColorStorageKey = '__theme_selected_color';\nexport const isMultiColorActive = false;\nexport const defaultColor = 'light.bluenavy';\nexport const isDarkSwitchActive = false;\nexport const defaultDirection = 'ltr';\nexport const themeRadiusStorageKey = '__theme_radius';\nexport const isDemo = true;\nexport const colors = [\n 'bluenavy',\n 'blueyale',\n 'blueolympic',\n 'greenmoss',\n 'greenlime',\n 'purplemonster',\n 'orangecarrot',\n 'redruby',\n 'yellowgranola',\n 'greysteel',\n];\n","export const increment = () => {\n return {\n type: 'INCREMENT'\n }\n}\n\nexport const selectParticipant = (payload) => {\n return {\n type: 'SELECT_PARTICIPANT',\n payload: payload\n }\n}\n\n\n\nexport const markAsReadAllMessagesFrom = (payload) => {\n return {\n type: 'MARK_AS_READ_ALL_MESSAGES_FROM',\n payload: payload\n }\n}\n\nexport const enterStand = (payload) => {\n return {\n type: 'ENTER_STAND',\n payload: payload\n }\n}\n\nexport const leaveStand = (payload) => {\n return {\n type: 'LEAVE_STAND',\n payload: payload\n }\n}\n\nexport const receiveMessageFromServer = (payload) => {\n return {\n type: 'RECEIVE_MESSAGE_FROM_SERVER',\n payload: payload\n }\n}\n\n\nexport const selectExhibitor = (payload) => {\n return {\n type: 'GOTOEXHIBITOR',\n payload: payload\n }\n}\n\nexport const notificationReceived = (payload) => {\n return {\n type: 'NOTIFICATION_RECEIVED',\n payload: payload\n }\n}\n\nexport const notificationReaded = (payload) => {\n return {\n type: 'NOTIFICATION_READED',\n payload: payload\n }\n}\n\nexport const clearNotificationCounter = (payload) => {\n return {\n type: 'CLEAR_NOTIFICATION_COUNTER',\n payload: payload\n }\n}\n\n\nexport const liveFeedMessageReceived = (payload) => {\n return {\n type: 'LIVEFEED_MESSAGE_RECEIVED',\n payload: payload\n }\n}\nexport const liveFeedClearMessages = (payload) => {\n return {\n type: 'LIVEFEED_CLEAR',\n payload: payload\n }\n}\n\nexport const miniVideoPlayerShow = (payload) => {\n return {\n type: 'MINI_VIDEO_PLAYER_SHOW',\n payload: payload\n }\n}\nexport const miniVideoPlayerHide = (payload) => {\n return {\n type: 'MINI_VIDEO_PLAYER_HIDE',\n payload: payload\n }\n}\n\nexport const certificateCreated = (payload) => {\n return {\n type: 'CERTIFICATE_CREATED',\n payload: payload\n }\n}\n\nexport const updateGameResults = (payload) => {\n return {\n type: 'UPDATE_GAME_RESULTS',\n payload: payload\n }\n}\n\nexport const setGameResults = (payload) => {\n return {\n type: 'SET_GAME_RESULTS',\n payload: payload\n }\n}\n\n","import {\n\t__DOMAIN__,\n\t__SHOW_SPLASH_VIDEO__,\n\t__LOGIN_VIDEO_BACKGROUND_URL__,\n\t__HORIZONTAL_LOGIN__,\n\t__LOGIN_TITLE_ENABLED__,\n\t__PASSWORD_RESET_ENABLED__,\n\t__LOGIN_SCREEN_POSITION__,\n\t__REGISTRATION_ENABLED__,\n\t__EMAIL_ONLY_AUTHENTICATION__,\n\t__IDEVENT_FORCED__,\n\t__IMAGEHANDLER_URL__,\n\tENABLED_EVENTS\n} from '../consts/consts';\nimport Cookies from 'universal-cookie';\nimport Utils from './Utils';\nimport ApiCalls from './ApiCalls';\n// import moment from 'moment';\n\nclass Storage {\n\tstatic saveStands(stands) {\n\t\tlocalStorage.setItem('stands', stands);\n\t}\n\n\tstatic saveFloorPlans(floorPlans) {\n\t\tlocalStorage.setItem('floorPlans', floorPlans);\n\t}\n\tstatic getFloorPlans() {\n\t\treturn JSON.parse(localStorage.getItem('floorPlans'))\n\t\t\t.filter(o => o.deleted == 0)\n\t\t\t.sort((a, b) => a.order - b.order)\n\n\t}\n\n\tstatic getCurrentLanguage() {\n\t\t//Este metodo no tiene set porque lo pone solo gogo\n\t\treturn localStorage.getItem('currentLanguage');\n\t}\n\n\tstatic getMyUser() {\n\t\treturn { firstName: Storage.getPersonName(), lastName: Storage.getPersonLastname(), idPerson: Storage.getIdPerson() }\n\t}\n\n\tstatic getStands() {\n\t\treturn JSON.parse(localStorage.getItem('stands'));\n\t}\n\tstatic getPavilionMap(pavilionUrl) {\n\n\t\tvar stands = JSON.parse(localStorage.getItem('stands')).filter(element => element.pavilionUrl === pavilionUrl);\n\t\treturn {\n\t\t\tname: \"my-map\",\n\t\t\tareas: stands.map(s => {\n\t\t\t\treturn {\n\t\t\t\t\tname: s.exhibitorName,\n\t\t\t\t\tshape: \"rect\",\n\t\t\t\t\tcoords: s.standPositionOnFloorplan,\n\t\t\t\t\tpreFillColor: \"transparent\",\n\t\t\t\t\tfillColor: \"transparent\"\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tstatic getNewPavilionMap(pavilionUrl) {\n\n\t\tvar stands = JSON.parse(localStorage.getItem('stands')).filter(element => element.pavilionUrl === pavilionUrl);\n\t\treturn stands.map(s => {\n\t\t\treturn {\n\t\t\t\tname: s.exhibitorName,\n\t\t\t\tcoords: s.standPositionOnFloorplan,\n\t\t\t\ttooltip: s.exhibitorName,\n\t\t\t\tactionType: \"internalLink\",\n\t\t\t\timageUrl: \"https://kingconfimages.s3.amazonaws.com/88138f7b-ba52-35b9-328e-12fc7a582059_1pxtransparent.png\",\n\t\t\t\tactionPayload: \"/fair/stand/\" + encodeURI(s.exhibitorName)\n\t\t\t}\n\t\t})\n\t}\n\n\tstatic normalizeName(name) {\n\t\treturn decodeURI(name).normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").replace(' ', '').replace('%20', '').toLowerCase();\n\t}\n\n\tstatic getStandsInPavilion(pavilionUrl) {\n\t\tvar stands = JSON.parse(localStorage.getItem('stands')).filter(element => this.normalizeName(element.pavilionUrl) === this.normalizeName(pavilionUrl));\n\t\treturn stands;\n\t}\n\n\tstatic findExhibitor(exhibitorName) {\n\t\tlet exhibitorNameDecoded = decodeURI(exhibitorName);\n\t\tlet standSeleccionado = Storage.getStands().find(element => element.exhibitorName.toLowerCase() === exhibitorNameDecoded.toLowerCase());\n\t\treturn standSeleccionado;\n\t}\n\n\tstatic getPavilions() {\n\n\t\tvar stands = JSON.parse(localStorage.getItem('stands'));\n\t\tvar standsWithDifferentPavilion = [...new Map(stands.map(item => [item['pavilionName'], item])).values()]//Con esto me quedo las categorias con disctintc\n\t\tvar floorPlans = Storage.getFloorPlans();\n\t\tvar pavilions = standsWithDifferentPavilion.map(e => {\n\t\t\tlet floorPlan = floorPlans.find(f => f.name == e.pavilionName);\n\t\t\tlet order = 0;\n\t\t\tif (floorPlan == null) {\n\t\t\t\talert('El floorplan del pabellón ' + e.pavilionName + \" no existe. El expositor \" + e.exhibitorName + \" debe estar asociado a un pabellón con un floorplan existente\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\torder = floorPlan.order;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpavilionName: e.pavilionName,\n\t\t\t\tpavilionUrl: e.pavilionUrl,\n\t\t\t\tfloorPlanType: floorPlan.floorPlanType,\n\t\t\t\torder: order\n\t\t\t}\n\t\t}\n\n\t\t)\n\t\treturn pavilions.sort((a, b) => a.order == b.order ? a.floorPlanType - b.floorPlanType : a.order - b.order);\n\t}\n\tstatic getMyStandToRepresent() {\n\t\tvar idPerson = Storage.getIdPerson();\n\t\tvar stands = JSON.parse(localStorage.getItem('stands'));\n\t\tif (stands == null) {\n\t\t\tthrow \"\";\n\t\t}\n\t\treturn stands.find(o => o.idPersonExhibitor == idPerson);\n\t}\n\tstatic clearAll() {\n\t\tconst cookies = new Cookies();\n\t\tcookies.remove('jwtToken', { path: \"/\", domain: __DOMAIN__ });\n\t\twindow.localStorage.clear();\n\t}\n\tstatic storeCredentials(jwtToken, registrationType, idPerson) {\n\t\twindow.localStorage.setItem('registrationType', registrationType);\n\t\twindow.localStorage.setItem('isAuthenticated', true);\n\t\twindow.localStorage.setItem('idPerson', idPerson);\n\t\twindow.localStorage.setItem('jwtToken', jwtToken); //Guardo por las dudas que no me deje guardar cookies\n\t\tconst cookies = new Cookies();\n\t\tcookies.set('jwtToken', jwtToken, { path: \"/\", domain: __DOMAIN__ });\n\n\t}\n\n\tstatic getJwtToken() {\n\t\tconst cookies = new Cookies();\n\t\tlet jwtToken = typeof (cookies.get('jwtToken')) != undefined ? cookies.get('jwtToken') : '';\n\t\tif (jwtToken == '' || typeof (cookies.get('jwtToken')) == \"undefined\") {\n\t\t\tjwtToken = window.localStorage.getItem('jwtToken');\n\t\t}\n\t\treturn jwtToken;\n\t}\n\tstatic getIsAuthenticated() {\n\t\treturn window.localStorage.getItem('isAuthenticated');\n\t}\n\n\tstatic getRegistrationType() {\n\t\treturn window.localStorage.getItem('registrationType');\n\t}\n\tstatic getIdPerson() {\n\t\treturn window.localStorage.getItem('idPerson');\n\t}\n\tstatic getIdRegistration() {\n\t\treturn window.localStorage.getItem('idRegistration');\n\t}\n\tstatic setAudioPlayingTime(time) {\n\t\twindow.localStorage.setItem('audioPlayingTime', time);\n\t}\n\tstatic getAudioPlayingTime(time) {\n\t\treturn window.localStorage.getItem('audioPlayingTime');\n\t}\n\tstatic setAudioPlayingTimeLogin(time) {\n\t\twindow.localStorage.setItem('audioPlayingTimeLogin', time);\n\t}\n\tstatic getAudioPlayingTimeLogin(time) {\n\t\treturn window.localStorage.getItem('audioPlayingTimeLogin');\n\t}\n\tstatic setProgramme(sessions, speakers, activityTracks, activityTypes) {\n\t\twindow.localStorage.setItem('sessions', JSON.stringify(sessions));\n\t\twindow.localStorage.setItem('speakers', JSON.stringify(speakers));\n\t\twindow.localStorage.setItem('activityTracks', JSON.stringify(activityTracks));\n\t\twindow.localStorage.setItem('activityTypes', JSON.stringify(activityTypes));\n\t}\n\n\n\tstatic getProgramme() {\n\t\tconst sessions = window.localStorage.getItem('sessions');\n\t\tconst speakers = window.localStorage.getItem('speakers');\n\t\tconst activityTracks = window.localStorage.getItem('activityTracks');\n\t\tconst activityTypes = window.localStorage.getItem('activityTypes');\n\t\tif (!sessions || !speakers || !activityTracks || !activityTypes) return null;\n\t\treturn {\n\t\t\tsessions: JSON.parse(sessions),\n\t\t\tspeakers: JSON.parse(speakers),\n\t\t\tactivityTracks: JSON.parse(activityTracks),\n\t\t\tactivityTypes: JSON.parse(activityTypes)\n\t\t}\n\t}\n\n\tstatic clearProgramme() {\n\t\twindow.localStorage.setItem('sessions', null);\n\t\twindow.localStorage.setItem('speakers', null);\n\t\twindow.localStorage.setItem('activityTracks', null);\n\t\twindow.localStorage.setItem('activityTypes', null);\n\t}\n\n\n\t/*GEC: Methods for handling menu from api call instead of hardcode.*/\n\t/*\t Object needs to be stringyfied and then parsed for this to work. \n\t\t\tAlso, at least ONE OPTION MUST EXIST otherwise it will fail.*/\n\t// static storeVirtualMenu(){\n\t// \t\n\t// \tvar menu = [ \n\t// \t\t{\n\t// \t\t\tid: 'home',\n\t// \t\t\ticon: 'simple-icon-home',\n\t// \t\t\tlabel: 'menu.home',\n\t// \t\t\tto: '/',\n\t// \t \t}\n\t// \t]\n\t// \twindow.localStorage.setItem('virtualMenu',JSON.stringify(menu));\n\t// }\n\n\t// static getVirtualMenu(){\n\t// \t\n\t// \treturn JSON.parse(window.localStorage.getItem('virtualMenu'));\n\n\t// }\n\n\tstatic storeLoginInfo(registrationCode, email, name, lastname, idPicture, idRegistration, tags, additionalInformation, overdueAccess, businessRoundEnabled) {\n\t\twindow.localStorage.setItem('registrationCode', registrationCode);\n\t\twindow.localStorage.setItem('idRegistration', idRegistration);\n\t\twindow.localStorage.setItem('email', email);\n\t\twindow.localStorage.setItem('name', name);\n\t\twindow.localStorage.setItem('lastname', lastname);\n\t\twindow.localStorage.setItem('idPicture', Math.abs(idPicture));\n\t\twindow.localStorage.setItem('businessRoundEnabled', businessRoundEnabled)\n\t\tif (tags != null)\n\t\t\twindow.localStorage.setItem('tags', tags);\n\t\tif (additionalInformation != null)\n\t\t\twindow.localStorage.setItem('additionalInformation', additionalInformation);\n\t\tif (overdueAccess != null && overdueAccess == true)\n\t\t\twindow.localStorage.setItem('overdueAccess', overdueAccess);\n\t}\n\n\tstatic saveRoomsInfo(roomsArray) {\n\t\twindow.localStorage.setItem('roomsArray', JSON.stringify(roomsArray));\n\t}\n\n\tstatic getRoomsInfo() {\n\t\treturn JSON.parse(window.localStorage.getItem('roomsArray'))\n\t}\n\n\tstatic saveEventBasicInfo(virtualBasicInfo) {\n\t\tconst { cssStyles, VirtualEventLogoPictureId } = virtualBasicInfo;\n\t\tconst topBarBackgroundColor = '#' + cssStyles.split(',')[2].split('#')[2].replace(';}', '');\n\t\twindow.localStorage.setItem('topbarBackgroundColor', topBarBackgroundColor);\n\t\twindow.localStorage.setItem('VirtualEventLogoPictureId', VirtualEventLogoPictureId);\n\t\twindow.localStorage.setItem('loginPageBackgroundPictureId', virtualBasicInfo.virtualEventLoginPageBackgroundPictureId);\n\t\twindow.localStorage.setItem('loginFormBackgroundPictureId', virtualBasicInfo.VirtualEventLoginFormBackgroundPictureId);\n\t\twindow.localStorage.setItem('virtualEventLoginFormBackgroundVideoUrl', virtualBasicInfo.VirtualEventLoginFormBackgroundVideoUrl)\n\t\twindow.localStorage.setItem('outsideVenuePictureId', virtualBasicInfo.VirtualExhibitionOutsideVenuePictureId);\n\t\twindow.localStorage.setItem('logoPictureId', virtualBasicInfo.VirtualEventLogoPictureId);\n\t\twindow.localStorage.setItem('eventTitle', virtualBasicInfo.title);\n\t\twindow.localStorage.setItem('timeZone', virtualBasicInfo.timeZoneId);\n\t\tlet menuJson = JSON.parse(virtualBasicInfo.virtualMenuJson);\n\t\twindow.localStorage.setItem('mainScheduleNr', menuJson.mainScheduleNr);\n\t\twindow.localStorage.setItem('abstractScheduleNr', menuJson.abstractScheduleNr);\n\t\twindow.localStorage.setItem('showPeopleLastNameFirst', menuJson.showPeopleLastNameFirst);\n\t\twindow.localStorage.setItem('orderPeopleByLastNameFirst', menuJson.orderPeopleByLastNameFirst);\n\t\tlet menuConverted = Utils.convertMenu(menuJson.menuButtonStoreData);\n\t\twindow.localStorage.setItem(\"menu\", JSON.stringify(menuConverted));\n\t\twindow.localStorage.setItem(\"eventEndDate\", virtualBasicInfo.endDate);\n\t\twindow.localStorage.setItem(\"oficialRegistrationWebsiteAddress\", virtualBasicInfo.oficialRegistrationWebsiteAddress);\n\t\tconst lobbyBannersList = virtualBasicInfo.LobbyBannersList ?\n\t\t\tvirtualBasicInfo.LobbyBannersList.map(banner => {\n\t\t\t\tlet actionType = ''\n\t\t\t\tswitch (banner.actionType) {\n\t\t\t\t\tcase 'Trivia':\n\t\t\t\t\t\tactionType = 'InternalLink';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Tour360':\n\t\t\t\t\t\tactionType = '';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tactionType = banner.actionType;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tcoords: banner.imagePosition,\n\t\t\t\t\t...banner,\n\t\t\t\t\tactionType: actionType,\n\t\t\t\t\thoverImageUrl: null,\n\t\t\t\t\timageUrl: 'https://kingconfimages.s3.amazonaws.com/d1a74060-ca9c-f835-75b2-1d708c808173_1pxTransparent.png'\n\t\t\t\t}\n\t\t\t})\n\t\t\t: [];\n\t\twindow.localStorage.setItem(\"lobbyBannersList\", JSON.stringify(lobbyBannersList));\n\t\twindow.localStorage.setItem(\"platformPictureId\", virtualBasicInfo.VirtualEventPlatformPictureId);\n\t\tconst eventConfigurationList = {};\n\t\tvirtualBasicInfo.EventConfigurationList.forEach(config => {\n\t\t\teventConfigurationList[config.clave] = config.valor\n\t\t})\n\t\twindow.localStorage.setItem(\"eventConfigurationList\", JSON.stringify(eventConfigurationList));\n\t\twindow.localStorage.setItem(\"virtualEventHomePageType\", JSON.stringify(virtualBasicInfo.VirtualEventHomePageType));\n\t\twindow.localStorage.setItem(\"mainLanguage\", virtualBasicInfo.mainLanguage.toLowerCase())\n\t}\n\n\tstatic getOfficialRegistrationWebsite() {\n\t\treturn window.localStorage.getItem('oficialRegistrationWebsiteAddress');\n\t}\n\tstatic getOverdueAccess() {\n\t\treturn (window.localStorage.getItem('overdueAccess') != null && window.localStorage.getItem('overdueAccess') == 'true');\n\t}\n\n\tstatic getEventEndDate() {\n\t\treturn window.localStorage.getItem('eventEndDate');\n\t}\n\tstatic recreateMenu() {\n\t\tlet menuJson = JSON.parse(window.localStorage.getItem(\"menu\"));\n\t\tlet menuConverted = Utils.convertMenu(menuJson);\n\t\twindow.localStorage.setItem(\"menu\", JSON.stringify(menuConverted))\n\t}\n\n\tstatic getTimeZone() {\n\t\treturn window.localStorage.getItem('timeZone');\n\t}\n\n\tstatic getMenu() {\n\t\treturn JSON.parse(window.localStorage.getItem(\"menu\"));\n\t}\n\n\tstatic getAbstractScheduleNr() {\n\t\treturn window.localStorage.getItem(\"abstractScheduleNr\");\n\t}\n\n\tstatic getMainScheduleNr() {\n\t\treturn window.localStorage.getItem(\"mainScheduleNr\");\n\t}\n\n\tstatic getMainLanguage() {\n\t\treturn window.localStorage.getItem(\"mainLanguage\");\n\t}\n\n\tstatic getEventLogoPictureId() {\n\t\treturn window.localStorage.getItem(\"logoPictureId\");\n\t}\n\tstatic getEventTitle() {\n\t\treturn window.localStorage.getItem('eventTitle') != null ? window.localStorage.getItem('eventTitle') : '';\n\t}\n\n\tstatic getOutsideVenuePictureId() {\n\t\treturn window.localStorage.getItem(\"outsideVenuePictureId\");\n\t}\n\n\tstatic getLoginPageBackgroundPictureId() {\n\t\treturn window.localStorage.getItem(\"loginPageBackgroundPictureId\");\n\n\t}\n\n\tstatic getLoginFormBackgroundPictureId() {\n\t\treturn window.localStorage.getItem(\"loginFormBackgroundPictureId\");\n\t}\n\n\tstatic getShowPeopleLastNameFirst() {\n\t\treturn window.localStorage.getItem(\"showPeopleLastNameFirst\") == \"true\"\n\t}\n\n\tstatic getOrderPeopleByLastNameFirst() {\n\t\treturn window.localStorage.getItem(\"orderPeopleByLastNameFirst\") == \"true\"\n\t}\n\n\tstatic getPersonRegistrationCode() {\n\t\treturn window.localStorage.getItem('registrationCode');\n\t}\n\n\tstatic getPersonTags() {\n\t\treturn window.localStorage.getItem('tags');\n\t}\n\tstatic getPersonAdditionalInformation() {\n\t\treturn window.localStorage.getItem('additionalInformation');\n\t}\n\tstatic getPersonEmail() {\n\t\treturn window.localStorage.getItem('email');\n\t}\n\tstatic getPersonName() {\n\t\treturn window.localStorage.getItem('name');\n\t}\n\tstatic getPersonLastname() {\n\t\treturn window.localStorage.getItem('lastname');\n\t}\n\tstatic getPersonCompletename() {\n\t\ttry {\n\t\t\treturn window.localStorage.getItem('name') + ' ' + window.localStorage.getItem('lastname');\n\t\t} catch (err) {\n\t\t\tApiCalls.logMessage(`Storage.getPersonCompletename: ${err.message}`)\n\t\t}\n\t}\n\tstatic getIdPicture() {\n\t\treturn window.localStorage.getItem('idPicture');\n\t}\n\n\tstatic getIdEvent() {\n\t\tvar storageEventId = window.localStorage.getItem('AcEventId');\n\t\treturn storageEventId\n\t}\n\n\tstatic setIdEvent() {\n\t\t//SI VIENE POR QUERY PARAM\n\t\tlet urlParams = new URLSearchParams(window.location.search)\n\t\tlet idEventFromQuery = urlParams.get('AcEventId')\n\t\tif (idEventFromQuery) {\n\t\t\twindow.localStorage.setItem('AcEventId', idEventFromQuery)\n\t\t\treturn idEventFromQuery\n\t\t}\n\t\t//SI NO VIENE POR QUERY BUSCO EN CONSTS\n\t\tif (__IDEVENT_FORCED__) {\n\t\t\twindow.localStorage.setItem('AcEventId', __IDEVENT_FORCED__)\n\t\t\treturn __IDEVENT_FORCED__\n\t\t}\n\t}\n\n\tstatic getWelcomeVideoPlayed() {\n\t\treturn (__SHOW_SPLASH_VIDEO__ == true && (window.localStorage.getItem('WelcomeVideoPlayed') == null ||\n\t\t\twindow.localStorage.getItem('WelcomeVideoPlayed') == 'false'))\n\t\t\t? false : true;\n\t}\n\tstatic setWelcomeVideoPlayed(value) {\n\n\t\twindow.localStorage.setItem('WelcomeVideoPlayed', value == null ? true : value);\n\t}\n\n\tstatic overrideMyVideoConferenceConfiguration(link) {\n\t\t//Escribo esto en el localstorage para que no tenga que volver a cargar los stands\n\t\twindow.localStorage.setItem('videoConferenceConfiguration', link);\n\t}\n\n\tstatic getMyVideoConferenceConfiguration() {\n\t\tvar videolink = window.localStorage.getItem('videoConferenceConfiguration');\n\t\tif (videolink != null) {\n\t\t\treturn videolink;\n\t\t}\n\t\telse {\n\t\t\tvar myStand = Storage.getMyStandToRepresent();\n\t\t\tif (myStand != null) {\n\t\t\t\treturn myStand.videoConferenceConfiguration;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tstatic setLanguageOverrideEs(languageOverrideEs) {\n\t\twindow.localStorage.setItem('LanguageOverrideEs', JSON.stringify(languageOverrideEs));\n\t}\n\tstatic getLanguageOverrideEs() {\n\t\treturn JSON.parse(window.localStorage.getItem('LanguageOverrideEs'));\n\t}\n\tstatic setLanguageOverrideEn(languageOverrideEn) {\n\t\twindow.localStorage.setItem('LanguageOverrideEn', JSON.stringify(languageOverrideEn));\n\t}\n\n\tstatic getLanguageOverrideEn(languageOverrideEn) {\n\t\treturn JSON.parse(window.localStorage.getItem('LanguageOverrideEn'));\n\t}\n\tstatic setLanguageOverridePt(languageOverridePt) {\n\t\twindow.localStorage.setItem('LanguageOverridePt', JSON.stringify(languageOverridePt));\n\t}\n\tstatic getLanguageOverridePt(languageOverridePt) {\n\t\treturn JSON.parse(window.localStorage.getItem('LanguageOverridePt'));\n\t}\n\tstatic setLanguageOverrideFr(languageOverrideFr) {\n\t\twindow.localStorage.setItem('LanguageOverrideFr', JSON.stringify(languageOverrideFr));\n\t}\n\tstatic getLanguageOverrideFr(languageOverrideFr) {\n\t\treturn JSON.parse(window.localStorage.getItem('LanguageOverrideFr'));\n\t}\n\tstatic setStartupPage(startupPage) {\n\t\twindow.localStorage.setItem('StartupPage', startupPage);\n\t}\n\tstatic getStartupPage(startupPage) {\n\t\treturn window.localStorage.getItem('StartupPage');\n\t}\n\n\tstatic setPromoCode(promoCode) {\n\t\twindow.localStorage.setItem('PromoCode', promoCode);\n\t}\n\tstatic getPromoCode() {\n\t\treturn window.localStorage.getItem('PromoCode');\n\t}\n\tstatic setRooms(rooms) {\n\t\twindow.localStorage.setItem('rooms', JSON.stringify(rooms));\n\t}\n\tstatic getRooms() {\n\t\treturn JSON.parse(window.localStorage.getItem('rooms'));\n\t}\n\n\tstatic setMiniPlayerSelectedRoomId(roomId) {\n\t\twindow.localStorage.setItem('miniPlayerSelectedRoomId', roomId);\n\t}\n\tstatic getMiniPlayerSelectedRoomId() {\n\t\tlet roomId = window.localStorage.getItem('miniPlayerSelectedRoomId');\n\t\tif (roomId == null || roomId == \"null\")\n\t\t\treturn null;\n\t\treturn window.localStorage.getItem('miniPlayerSelectedRoomId');\n\t}\n\tstatic setLiveStreamRoomId(roomId) {\n\t\twindow.localStorage.setItem('liveStreamRoomId', roomId);\n\t}\n\tstatic getLiveStreamRoomId() {\n\t\tlet roomId = window.localStorage.getItem('liveStreamRoomId');\n\t\tif (roomId == null || roomId == \"null\")\n\t\t\treturn null;\n\t\treturn window.localStorage.getItem('liveStreamRoomId');\n\t}\n\n\tstatic getLoginConfiguration() {\n\t\tconst loginConfiguration = JSON.parse(window.localStorage.getItem('eventConfigurationList'));\n\t\tconst isLoginHorizontal = loginConfiguration.LoginBox === 'Rectangle';\n\t\tconst hasLoginTitle = window.localStorage.getItem('loginVideoBackgroundUrl');\n\t\tconst loginBoxColor = loginConfiguration.LoginBoxColor;\n\t\tconst loginBoxTextColor = loginConfiguration.LoginBoxTextColor;\n\t\tconst loginBoxHeaderTextColor = loginConfiguration.LoginBoxHeaderTextColor;\n\t\tconst loginBoxTitle = loginConfiguration.LoginBoxTitle;\n\t\tlet loginBoxPosition = loginConfiguration.LoginBoxPosition;\n\t\tif (loginBoxPosition) {\n\t\t\tif (loginBoxPosition === 'Center') {\n\t\t\t\tloginBoxPosition = 'center'\n\t\t\t}\n\t\t\tif (loginBoxPosition === 'UpperLeft') {\n\t\t\t\tloginBoxPosition = 'topLeft'\n\t\t\t}\n\t\t\tif (loginBoxPosition === 'BottomRight') {\n\t\t\t\tloginBoxPosition = 'bottomRight'\n\t\t\t}\n\t\t} else loginBoxPosition = __LOGIN_SCREEN_POSITION__\n\t\tconsole.log(loginBoxPosition);\n\t\tconst hasBackgroundPicture = !!window.localStorage.getItem(\"loginPageBackgroundPictureId\");\n\t\tconst backgroundPicture = `${__IMAGEHANDLER_URL__}${window.localStorage.getItem(\"loginPageBackgroundPictureId\")}`;\n\t\tconst hasBackgroundFormPicture = !!window.localStorage.getItem(\"loginFormBackgroundPictureId\");\n\t\tconst backgroundFormPicture = `${__IMAGEHANDLER_URL__}${window.localStorage.getItem(\"loginFormBackgroundPictureId\")}`;\n\n\t\tconst videoBackgroundURL = window.localStorage.getItem('VirtualEventLoginFormBackgroundVideoUrl');\n\t\tconst hasVideoBackground = !!videoBackgroundURL;\n\t\tconst registrationEnabled = window.localStorage.getItem('loginRegistrationEnabled') || __REGISTRATION_ENABLED__;\n\t\tconst passwordResetEnabled = window.localStorage.getItem('loginPasswordResetEnabled') || __PASSWORD_RESET_ENABLED__;\n\t\tconst emailOnlyAuthentication = window.localStorage.getItem('loginEmailOnlyAuthentication') || __EMAIL_ONLY_AUTHENTICATION__;\n\n\t\treturn {\n\t\t\tvideoBackgroundURL,\n\t\t\thasVideoBackground,\n\t\t\thasBackgroundPicture,\n\t\t\tbackgroundPicture,\n\t\t\thasBackgroundFormPicture,\n\t\t\tbackgroundFormPicture,\n\t\t\tloginBoxColor,\n\t\t\tloginBoxTextColor,\n\t\t\tloginBoxHeaderTextColor,\n\t\t\tloginBoxTitle,\n\t\t\tloginBoxPosition,\n\t\t\tisLoginHorizontal,\n\t\t\thasLoginTitle,\n\t\t\tregistrationEnabled,\n\t\t\tpasswordResetEnabled,\n\t\t\temailOnlyAuthentication\n\t\t}\n\t}\n\tstatic getPlatformPictureID() {\n\t\treturn window.localStorage.getItem('platformPictureId');\n\t}\n\tstatic getLobbyBannersList() {\n\t\treturn JSON.parse(window.localStorage.getItem('lobbyBannersList'))\n\t}\n\tstatic hasLobbyBannersList() {\n\t\tconst banners = this.getLobbyBannersList()\n\t\treturn Array.isArray(banners) && banners.length > 0\n\t}\n\n\tstatic getInitialCrendentials() {\n\t\tconst email = localStorage.getItem('accesscode')\n\t\tconst password = localStorage.getItem('password')\n\t\tif (email && password) {\n\t\t\treturn ({\n\t\t\t\temail: atob(email),\n\t\t\t\tpassword: atob(password)\n\t\t\t})\n\t\t}\n\t\treturn ({\n\t\t\temail: \"\",\n\t\t\tpassword: \"\"\n\t\t})\n\t}\n\n\tstatic getIsBussinesRoundApp() {\n\t\treturn !!localStorage.getItem('bsroundapp')\n\t}\n\n\tstatic isHomeLobbyType() {\n\t\treturn !!Number(localStorage.getItem('virtualEventHomePageType'))\n\t}\n\n\tstatic saveURLParams() {\n\t\tconst eventId = window.location.pathname.split('&')[0].replace('/AcEventId=', '');\n\n\t\twindow.localStorage.setItem(\"AcEventId\", eventId)\n\t\tconsole.log(\"Saving event id\", eventId);\n\t\tif (localStorage.getItem('currentLanguage')) {\n\t\t\tconst locale = localStorage.getItem('currentLanguage').toLowerCase()\n\t\t\tlocalStorage.setItem('currentLanguage', locale)\n\t\t}\n\t}\n\n\tstatic saveProcessedURLParams() {\n\t\tconst urlQuery = JSON.parse(window.localStorage.getItem(\"urlParams\"))\n\t\t// const currentEvent = parseInt(this.getIdEvent())\n\t\t// const paramEvent = parseInt(urlQuery.AcEventId)\n\t\t// console.log(currentEvent, paramEvent, urlQuery);\n\t\t// if (paramEvent && currentEvent !== paramEvent) {\n\t\t// \twindow.localStorage.clear()\n\t\t// }\n\t\tif (urlQuery) {\n\t\t\tconst paramsArray = Object.entries(urlQuery)\n\t\t\tparamsArray.forEach(param => {\n\t\t\t\twindow.localStorage.setItem(param[0], param[1]);\n\t\t\t})\n\t\t}\n\t}\n\n\tstatic embeddedBSRounds() {\n\t\treturn Boolean(window.localStorage.getItem('bsroundapp'))\n\t}\n\n\tstatic getEventConfiguration() {\n\t\treturn JSON.parse(window.localStorage.getItem('eventConfigurationList'))\n\t}\n\n\tstatic getShowSociallWall() {\n\t\tconst showSocialWallInNetworking = this.getEventConfiguration()?.ShowSocialWallInNetworking.toLowerCase()\n\t\tif (showSocialWallInNetworking === 'false') return false\n\t\tif (showSocialWallInNetworking === 'true') return true\n\t\tthrow new Error(\"Expected boolean value in EventConfiguration - ShowSocialWallInNetworking\");\n\t}\n\n\tstatic getStartupScript() {\n\t\treturn this.getEventConfiguration()?.StartupScriptFrontEndCongress\n\t}\n\n\tstatic getBusinessRoundStatus() {\n\t\tconst status = window.localStorage.getItem('businessRoundEnabled')\n\t\tif (status === 'false') return false\n\t\treturn true\n\t}\n\n\tstatic setBusinessRoundStatus(status) {\n\t\twindow.localStorage.setItem('businessRoundEnabled', status)\n\t}\n\n\tstatic getBusinessRoundsConfiguration() {\n\t\treturn Number(localStorage.getItem('bsroundsConfig'));\n\t}\n\n\tstatic setBusinessRoundsConfiguration(bsconfig) {\n\t\tlocalStorage.setItem('bsroundsConfig', bsconfig);\n\t}\n}\n\nexport default Storage;","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAMAAAAoyzS7AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMAUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALMw9IgAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAAsSAAALEgHS3X78AAAAGXRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjIx8SBplQAAAApJREFUGFdj+A8AAQEBAFpNb/EAAAAASUVORK5CYII=\"","import {\n\t__APIURLVIRTUALEXPO__,\n\t__API_TRIVIA_URL__,\n\t__APIKCURL__,\n\t__APIKCURL_V3__,\n\t__LIVEAPIURL__,\n\t__API_ROOMS_URL__,\n\t__API_LEADERBOARD_URL__,\n\t__API_REDEEM_POINTS_URL__,\n\t__API_LEADERBOARDBRIEF_URL__,\n\t__API_VIDEO_URL__,\n\t__APIPACKAGEURL__,\n\t__API_SPEAKERS_URL__,\n\t__API_SESSIONS_CONTENT_URL__,\n\t__API_VIRTUAL_BASIC_INFO__,\n\t__API_EXHIBITOR_REPRESENTATIVE__,\n\t__API_ATTENDEES_URL__,\n\t__API_SPONSORS_URL__,\n\t__BR_ATTENDEES_PAGINATED__,\n\t__BR_MEETING__,\n\t__BR_MY_MEETINGS_SLOTS__,\n\t__BR_SLOT_BLOCK,\n\t__BR_SLOT_UNBLOCK__,\n\t__BR_RESPONSE_MEETING__,\n\t__BR_CALENDAR_BLOCK__,\n\t__BR_CALENDAR_UNBLOCK__,\n\t__API_LOGS__\n} from '../consts/consts';\nimport Storage from './Storage';\nimport axios from 'axios';\n// import { store } from '../index';\nimport Utils from './Utils';\nimport { setGameResults, updateGameResults } from '../redux/actions';\nimport moment from 'moment';\n\nlet ApiCalls = {\n\tgetTrivias: function (challengeId) {\n\t\treturn new Promise(resolve => {\n\n\t\t\tconst options = {\n\t\t\t\turl: __API_TRIVIA_URL__ + challengeId,\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t\t}\n\n\t\t\t};\n\t\t\taxios(options).then(response => {\n\t\t\t\tif (response.data && response.data.trivias) {\n\t\t\t\t\tvar trivias = response.data.trivias.filter(o => o.deleted == 0);\n\t\t\t\t\tvar idTrivias = Array.from(trivias, p => Number(p.id));\n\n\t\t\t\t\tvar triviaAnswers = [];\n\t\t\t\t\ttrivias.forEach(trivia => {\n\t\t\t\t\t\ttriviaAnswers = triviaAnswers.concat(trivia.triviaItems);\n\t\t\t\t\t});\n\t\t\t\t\tresolve({ trivias, triviaAnswers });\n\n\n\t\t\t\t}\n\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\tUtils.sendErrorToServer(\"Ocurrió un error en getTrivias\", \"API CALLS\", JSON.stringify(err));\n\t\t\t\t});\n\t\t});\n\n\t},\n\t// sendGameResults: function (idTrivia, IdTriviaItemAnswered) {\n\t// \treturn new Promise(resolve => {\n\n\t// \t\tconst options = {\n\t// \t\t\turl: __API_LEADERBOARD_URL__,\n\t// \t\t\tmethod: 'POST',\n\t// \t\t\theaders: {\n\t// \t\t\t\t'Accept': 'application/json',\n\t// \t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\n\t// \t\t\t},\n\t// \t\t\tdata: { \"IdEvent\": Number(Storage.getIdEvent()), \"IdRegistration\": Number(Storage.getIdRegistration()), \"IdTrivia\": Number(idTrivia), \"IdTriviaItemAnswered\": Number(IdTriviaItemAnswered), \"AnswerDateTime\": new Date().toISOString() }\n\n\t// \t\t};\n\t// \t\taxios(options).then(response => {\n\n\t// \t\t\tif (response.status == 201 || response.status == 200) {\n\t// \t\t\t\tstore.dispatch(updateGameResults(response.data.earnedPoints));\n\t// \t\t\t\tresolve(response);\n\t// \t\t\t}\n\t// \t\t}).catch(err => {\n\t// \t\t\tconsole.log(err);\n\t// \t\t\tUtils.sendErrorToServer(\"Ocurrió un error en sendGameResults\", \"API CALLS\", JSON.stringify(err));\n\t// \t\t})\n\t// \t});\n\n\t// },\n\n\tlogOnTriviaClick(challengeId, idExhibitor) {\n\t\tconst idEvent = Storage.getIdEvent();\n\t\tconst endpointURL = `${__APIURLVIRTUALEXPO__}logger/logOnTriviaClick`;\n\n\t\tconst formData = {\n\t\t\tidExhibitor,\n\t\t\tadditionalData: `idChallenge ${challengeId}`,\n\t\t\tidEvent,\n\t\t}\n\n\t\tconst options = {\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t\t'Authorization': 'Bearer ' + Storage.getJwtToken()\n\t\t\t},\n\t\t};\n\n\t\taxios.post(endpointURL, options, formData)\n\t\t\t.then(response => {\n\t\t\t\tconsole.log(response);\n\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tconsole.log(error);\n\t\t\t\tUtils.sendErrorToServer(\"Ocurrió un error en logOnTriviaClick\", \"API CALLS\", JSON.stringify(error));\n\t\t\t});\n\t},\n\n\tredeemPoints: function () {\n\t\treturn new Promise(resolve => {\n\n\t\t\tconst options = {\n\t\t\t\turl: __API_REDEEM_POINTS_URL__ + Storage.getIdRegistration(),\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\n\t\t\t\t},\n\t\t\t\tdata: {\n\n\t\t\t\t\tregistrationCode: 'ASD123',\n\t\t\t\t}\n\n\t\t\t};\n\t\t\taxios(options).then(response => {\n\n\t\t\t\tif (response.status == 200) {\n\t\t\t\t\tresolve({ promoCode: response.data });\n\n\n\t\t\t\t}\n\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\tUtils.sendErrorToServer(\"Ocurrió un error en redeemPoints\", \"API CALLS\", JSON.stringify(err));\n\t\t\t\t});\n\t\t});\n\n\t},\n\t// getLeaderboard: function () {\n\t// \treturn new Promise(resolve => {\n\n\t// \t\tconst options = {\n\t// \t\t\turl: __API_LEADERBOARDBRIEF_URL__ + Storage.getIdRegistration(),\n\t// \t\t\tmethod: 'GET',\n\t// \t\t\theaders: {\n\t// \t\t\t\t'Accept': 'application/json',\n\t// \t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t// \t\t\t}\n\n\t// \t\t};\n\t// \t\taxios(options).then(response => {\n\t// \t\t\tif (response.data) {\n\n\t// \t\t\t\tstore.dispatch(setGameResults(response.data.totalPoints));\n\t// \t\t\t\tresolve(response.data);\n\n\n\t// \t\t\t}\n\t// \t\t})\n\t// \t\t\t.catch(err => {\n\t// \t\t\t\tUtils.sendErrorToServer(\"Ocurrió un error en getLeaderboard\", \"API CALLS\", JSON.stringify(err));\n\t// \t\t\t});\n\t// \t});\n\n\t// },\n\n\tasync logOnClickBanner(idExhibitor, additionalDataName) {\n\t\tconst endpointURL = `${__APIURLVIRTUALEXPO__}logger/logOnBannerClick`;\n\t\tconst formData = {\n\t\t\tidExhibitor,\n\t\t\tadditionalData: `{name:${additionalDataName}}`\n\t\t};\n\n\t\tconst options = {\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t\t//La siguiente linea hace la magia de autenticar con el token!\n\t\t\t\t'Authorization': 'bearer ' + Storage.getJwtToken()\n\t\t\t},\n\t\t};\n\n\t\ttry {\n\t\t\tconst response = await axios.post(endpointURL, options, formData);\n\t\t\treturn response;\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t},\n\n\tgetNews() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __APIKCURL_V3__ + 'news',\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t\t'x-registrationCode': Storage.getPersonRegistrationCode()\n\t\t\t\t},\n\t\t\t};\n\t\t\taxios(options).then(response => {\n\t\t\t\tvar news = response.data != null ? response.data.filter(o => o.deleted != 1).sort((a, b) => b.publishedDate.localeCompare(a.publishedDate)) : [];\n\t\t\t\tresolve(news);\n\t\t\t});\n\t\t}).catch(error => {\n\t\t\tconsole.log(\"Error fetching package news: \")\n\t\t\tconsole.log(error)\n\t\t});\n\t},\n\t/* Nacho agregando functions */\n\tgetVideos() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __API_VIDEO_URL__,\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t\t}\n\n\t\t\t};\n\t\t\taxios(options).then(response => {\n\n\t\t\t\tif (response.data) {\n\n\t\t\t\t\tvar videosList = response.data.filter(o => o.deleted == 0);\n\n\t\t\t\t\tresolve(videosList);\n\t\t\t\t}\n\t\t\t});\n\t\t})\n\t},\n\tgetSpeakers() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __APIPACKAGEURL__,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t\t'Access-Control-Allow-Credentials': 'true'\n\t\t\t\t},\n\t\t\t};\n\n\t\t\taxios(options).then(response => {\n\n\t\t\t\tresolve(response);\n\t\t\t})\n\t\t})\n\t},\n\teventFinished() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __API_VIRTUAL_BASIC_INFO__,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t\t'Access-Control-Allow-Credentials': 'true'\n\t\t\t\t},\n\t\t\t};\n\n\t\t\taxios(options).then(response => {\n\t\t\t\tresolve(response);\n\t\t\t})\n\t\t})\n\t},\n\tgetPosters() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __APIPACKAGEURL__,\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t\t}\n\n\t\t\t}\n\t\t\taxios(options).then(resp => {\n\t\t\t\tresolve(resp.data);\n\n\t\t\t}).catch(error => {\n\t\t\t\tconsole.log(\"Error during Poster Fetch: \")\n\t\t\t\tconsole.log(error)\n\n\t\t\t})\n\t\t})\n\t},\n\tgetConversationsBusinessRound() {\n\t\tconst options = {\n\t\t\turl: __BR_ATTENDEES_PAGINATED__ + \"?currentPage=1&resultsPerPage=3000&searchString=&orderByFields=Person.Company&IsBusinessRound=true\",\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t'registrationCode': Storage.getPersonRegistrationCode()\n\t\t\t},\n\n\t\t};\n\t\treturn axios(options).then(response => {\n\t\t\treturn response.data;\n\t\t})\n\t},\n\tgetBusinessRoundType() {\n\t\tconst endpointURL = __APIKCURL_V3__ + 'businessRoundConfiguration?utcTimeStamp=2012-01-01'\n\t\treturn axios(endpointURL)\n\t\t\t.then(({ data }) => data)\n\t}\n\t,\n\tgetRequestForVideoCall(formData) {\n\t\tconst endpointURL = `${__APIURLVIRTUALEXPO__}notification/Requestvideocall`\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t\t\t'Access-Control-Allow-Credentials': 'true',\n\t\t\t\t\t//La siguiente linea hace la magia de autenticar con el token!\n\t\t\t\t\t'Authorization': 'bearer ' + Storage.getJwtToken()\n\t\t\t\t},\n\t\t\t};\n\t\t\taxios.post(endpointURL, options, formData).then(response => {\n\t\t\t\tresolve(response);\n\t\t\t}).catch(error => {\n\t\t\t\tconsole.error(error.response);\n\t\t\t})\n\t\t})\n\t},\n\tgetWords() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __LIVEAPIURL__ + 'wordscloud/' + Storage.getIdEvent() + '/',\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t\t'Access-Control-Allow-Credentials': 'true'\n\t\t\t\t},\n\t\t\t};\n\n\t\t\taxios(options).then(response => {\n\t\t\t\tresolve(response.data);\n\t\t\t}\n\t\t\t);\n\t\t})\n\t},\n\tgetVideoMeeting(slotId) {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __BR_MEETING__ + slotId,\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t\t}\n\n\t\t\t};\n\t\t\taxios(options).then(results => {\n\t\t\t\tresolve(results);\n\t\t\t});\n\t\t})\n\t},\n\tgetSponsorsData() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\n\t\t\t\turl: __APIKCURL__ + 'sponsors/' + Storage.getIdEvent(),\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t\t},\n\n\t\t\t};\n\t\t\tconsole.log(\"actualizando datos a las \" + new Date().toISOString())\n\t\t\taxios(options).then(response => {\n\t\t\t\tresolve(response);\n\t\t\t})\n\t\t})\n\t},\n\tgetOnlySpeakers() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __API_SPEAKERS_URL__,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t\t'Access-Control-Allow-Credentials': 'true'\n\t\t\t\t}\n\t\t\t}\n\t\t\taxios(options).then(response => {\n\t\t\t\tresolve(response);\n\t\t\t}).catch(error => {\n\t\t\t\tconsole.log(\"Error\")\n\t\t\t\tconsole.log(error)\n\t\t\t})\n\t\t})\n\t},\n\t/* Darle un vistazo */\n\tasync getActivityDescription(activity) {\n\t\tconst options = {\n\t\t\turl: __API_SESSIONS_CONTENT_URL__ + \"/\" + activity.id,\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t}\n\t\t}\n\t\treturn await axios(options)\n\t},\n\toptConf() {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\t\t\t\turl: __APIKCURL_V3__ + 'exhibitionStands/' + Storage.getMyStandToRepresent().id,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t\t},\n\t\t\t}\n\t\t\taxios(options).then(res => {\n\t\t\t\tresolve(res.data);\n\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\tconsole.log(\"Error en GET trayendo datos de conferencia\")\n\t\t\t\t\tconsole.log(err.data)\n\t\t\t\t})\n\t\t})\n\t},\n\t/* Up to here */\n\tasync logGenericAction(endpoint, additionalData) {\n\t\tconst endpointURL = `${__APIURLVIRTUALEXPO__}logger/${endpoint}`\n\t\tconst formData = {};\n\t\tif (additionalData) {\n\t\t\tformData.additionalData = additionalData;\n\t\t}\n\n\t\tconst options = {\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t\t//La siguiente linea hace la magia de autenticar con el token!\n\t\t\t\t'Authorization': 'bearer ' + Storage.getJwtToken()\n\t\t\t},\n\t\t};\n\n\t\ttry {\n\t\t\tconst response = await axios.post(endpoint, options, formData);\n\t\t\treturn response\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t},\n\n\tlogOnSponsorsClick() {\n\t\treturn this.logGenericAction(\"logOnSponsorsClick\");\n\t},\n\tlogOnSponsorDetailClick(idSponsor) {\n\t\treturn this.logGenericAction(\"logOnSponsorDetailClick\", \"{idSponsor:\" + idSponsor + \"}\");\n\t},\n\tlogOnLobbyClick() {\n\t\treturn this.logGenericAction(\"logOnLobbyClick\");\n\t},\n\n\tlogOnNetworkingClick() {\n\t\treturn this.logGenericAction(\"logOnNetworkingClick\");\n\t},\n\tlogOnLiveStreamClick(roomName) {\n\t\treturn this.logGenericAction(\"logOnLiveStreamClick\", \"{name:\" + roomName + \"}\");\n\t},\n\tlogOnPostersClick() {\n\t\treturn this.logGenericAction(\"logOnPostersClick\");\n\t},\n\tlogOnPosterDetailClick(idActivity) {\n\t\treturn this.logGenericAction(\"logOnPosterDetailClick\", \"{idActivity:\" + idActivity + \"}\");\n\t},\n\tlogOnHtmlLinkMenuClick(menuName) {\n\t\treturn this.logGenericAction(\"logOnHtmlLinkMenuClick\", \"{menuName:\" + menuName + \"}\");\n\t},\n\n\n\n\tgetRooms: function () {\n\t\treturn new Promise(resolve => {\n\t\t\taxios.get(__API_ROOMS_URL__).then(resp => {\n\n\t\t\t\tresolve(resp.data);\n\n\t\t\t}).catch(error => {\n\t\t\t\tconsole.log(\"Error fetching package RoomStreaming: \")\n\t\t\t\tconsole.log(error)\n\t\t\t})\n\t\t});\n\t},\n\tgetSponsors: function () {\n\t\treturn new Promise(resolve => {\n\t\t\tconst options = {\n\n\t\t\t\turl: __APIKCURL__ + 'sponsors/' + Storage.getIdEvent(),\n\t\t\t\tmethod: 'GET',\n\t\t\t\theaders: {\n\t\t\t\t\t'Accept': 'application/json',\n\t\t\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t\t},\n\n\t\t\t};\n\t\t\tconsole.log(\"actualizando datos a las \" + new Date().toISOString())\n\t\t\taxios(options).then(response => {\n\t\t\t\tlet sponsors = response.data.sort((a, b) => a.categoryOrder - b.categoryOrder || a.orderInCategory - b.orderInCategory)\n\t\t\t\t\t.filter(o => o.showInCarousel == true && o.deleted == 0)\n\t\t\t\tresolve(sponsors);\n\t\t\t})\n\t\t});\n\n\n\t},\n\tgetExhibitorRepresentative: function (idExhibitor) {\n\t\treturn new Promise(resolve => {\n\t\t\taxios.get(__API_EXHIBITOR_REPRESENTATIVE__ + idExhibitor + \"/exhibitorInfo\").then(resp => {\n\n\t\t\t\tresolve(resp.data);\n\n\t\t\t}).catch(error => {\n\t\t\t\tconsole.log(\"Error fetching package RoomStreaming: \")\n\t\t\t\tconsole.log(error)\n\t\t\t})\n\t\t});\n\t},\n\tgetExhibitorProducts: function (idExhibitor) {\n\t\treturn new Promise(resolve => {\n\t\t\taxios.get(__API_EXHIBITOR_REPRESENTATIVE__ + idExhibitor + \"/exhibitorProducts\").then(resp => {\n\n\t\t\t\tresolve(resp.data);\n\n\t\t\t}).catch(error => {\n\t\t\t\tconsole.log(\"Error fetching package RoomStreaming: \")\n\t\t\t\tconsole.log(error)\n\t\t\t})\n\t\t});\n\t},\n\n\tasync getEventSearchableData() {\n\t\tconst attendees = {\n\t\t\turl: __API_ATTENDEES_URL__ + \"attendeesPaginated?currentPage=1&orderByFields=LastName,FirstName&resultsPerPage=3000&searchString=\",\n\t\t\tmethod: \"GET\",\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t'registrationCode': Storage.getPersonRegistrationCode()\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst [attendeesData, sponsorsData] = await axios.all([axios(attendees), axios.get(__API_SPONSORS_URL__)])\n\t\t\tconst standsData = JSON.parse(localStorage.getItem('stands'))\n\n\t\t\t// console.log(standsData)\n\t\t\t// console.log(attendeesData.data.Items)\n\t\t\t// console.log(sponsorsData.data)\n\n\t\t\treturn {\n\t\t\t\tstands: standsData,\n\t\t\t\tattendees: attendeesData.data.Items,\n\t\t\t\tsponsors: sponsorsData.data\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(`Error al recuperar datos del evento (participantes, sponsors)`);\n\t\t\treturn e\n\t\t}\n\t},\n\tasync unblockSlot(data) {\n\t\tconst options = {\n\t\t\turl: __BR_SLOT_UNBLOCK__,\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t'registrationCode': Storage.getPersonRegistrationCode()\n\t\t\t},\n\t\t\tdata\n\t\t};\n\t\taxios(options).then(response => {\n\t\t\tconsole.log(response);\n\t\t}).catch(error => {\n\t\t\tconsole.error(error)\n\t\t})\n\t},\n\tasync cancelMeeting(data) {\n\t\tconst options = {\n\t\t\turl: __BR_RESPONSE_MEETING__,\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json',\n\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t\t\"registrationCode\": Storage.getPersonRegistrationCode()\n\t\t\t},\n\t\t\tdata\n\t\t}\n\t\treturn axios(options)\n\t},\n\tasync blockCalendar(cancelMessage) {\n\t\treturn axios.post(__BR_CALENDAR_BLOCK__, {\n\t\t\tidRegistration: Storage.getIdRegistration(),\n\t\t\tresponseNote: cancelMessage,\n\t\t})\n\t},\n\tasync unBlockCalendar() {\n\t\treturn axios.post(__BR_CALENDAR_UNBLOCK__, {\n\t\t\tidRegistration: Storage.getIdRegistration(),\n\t\t})\n\t},\n\tasync logMessage(messageToLog) {\n\t\tconst payload = {\n\t\t\tidEvent: Storage.getIdEvent(),\n\t\t\tlogMessage: messageToLog\n\t\t}\n\t\tconsole.log(payload);\n\t\treturn axios.post(__API_LOGS__, payload)\n\t}\n}\n\nexport default ApiCalls\n","import Storage from '../components/Storage';\nimport { __IDEVENT_SETTED__ } from '../idEvent';\nconsole.log('ejecutando consts')\n\nexport const ENABLED_EVENTS = {\n 'd781f776-72e9-448f-9ebe-2da4e17b6d8f': 11163,\n '6a3ac914-4629-4c47-9ef0-cf5a4c4c0c80': 10972,\n '864fef96-d9cb-45f3-9060-182b960cdd44': 11122,\n}\nexport const __IDEVENT_FORCED__ = __IDEVENT_SETTED__;//Defecto 0,Si aca pongo el id del evento entonces no lo toma por parámetro\nexport const __IS_TEST__ = false;\nexport const __ISDDEVELPMENT__ = false;\nexport const __USELOCAHOSTAPI__ = false;\nexport const __DOMAIN__ = __ISDDEVELPMENT__ == false ? '.kingconf.com' : 'localhost';\nexport const __APIURLVIRTUALEXPO__ = __USELOCAHOSTAPI__ == true ? 'http://localhost:54652/' : 'https://virtualapi.kingconf.com/';\nexport const __USEDEMO__ = false;\nexport const __ATTENDEE_PROFILE__ = \"attendee\";\nexport const __CLIENT_PROFILE__ = \"hostedbuyer\";\nexport const __EXHIBITOR_PROFILE__ = \"exhibitor\";\nexport const __VIDEOCALL_MAGIC_FRASE__ = \"Te he solicitado una video llamada\";\nexport const __ENTERSTAND_MAGIC_FRASE__ = \"Visitó tu stand\";\nexport const __VENUE_IMAGE__ = \"https://kingconfimages.s3.amazonaws.com/36883789-0abb-4e61-8466-e7b4c7a70151_200922_FachadaBSAS.jpg\"\nexport const __STREAMING_URL__ = 'https://www.youtube.com/embed/9i6lcb8dink';\nexport const __INTERACTIVITY_CODE__ = 'COCAL2020';\nexport const __BR_ROUNDS_GROUP_ONE__ = \"attendee\" //hostedBuyer | exhibitor | attendee\nexport const __BR_ROUNDS_GROUP_TWO__ = \"exhibitor\";\nexport const __ZOOM_MEETING_LINK__ = \"https://zoom.us/j/98108552207?pwd=OEZOSlZDbC9TU25MYnp2WTBKRjAwQT09\";\nexport const __ZOOM_MEETING_ID__ = \"981 0855 2207\";\nexport const __ZOOM_MEETING_PASS__ = \"cipdh\";\nexport const __ATTENDEES_ALIAS__ = \"Participante/Attendee\"; //Esto es el badge que se muestra en la lista de networking\nexport const __EXHIBITOR_ALIAS__ = \"Docente/Speaker\";//Esto es el badge que se muestra en la lista de networking\nexport const __HOSTEDBUYER_ALIAS__ = \"CIPDH-UNESCO\";//Esto es el badge que se muestra en la lista de networking\nexport const __SPEAKER_ALIAS__ = \"Personaje\";//Esto es el badge que se muestra en la lista de networking\nexport const __SHOW_EVENT_FINISHED_LANDING__ = false;\nexport const __SHOW_SPLASH_VIDEO__ = false;\nexport const __SHOW_LOBBY__ = true;\nexport const __DDS_HOME__ = false;\nexport const __FLAT_PAVILION__ = false;\nexport const __FORCE_SESSIONS_UPDATE_ALWAYS__ = true;\n\n//CONFIGURATION CONSTS START\n/* LOGIN */\nexport const __LOGIN_VIDEO_BACKGROUND_URL__ = \"\";\nexport const __HORIZONTAL_LOGIN__ = false;\nexport const __LOGIN_TITLE_ENABLED__ = false;\nexport const __PASSWORD_RESET_ENABLED__ = false;\nexport const __LOGIN_SCREEN_POSITION__ = \"left\";\nexport const __REGISTRATION_ENABLED__ = false;\nexport const __EMAIL_ONLY_AUTHENTICATION__ = false;\nexport const __ALLOW_DOWNLOAD_POSTERS__ = false;\n\n/* LOBBY */\nexport const LOBBY_HAS_VIDEO = false;\n\n\n//CONFIGURATION CONSTS END\n\n\nexport const __GOOGLE_ANALYTICS_TAG__ = 'G-TNWTTXS96K';\nexport const __CERTIFICATE_FORM__ = \"https://docs.google.com/forms/d/e/1FAIpQLSc5SRTcB7PSASS-ubOMqy1TZ2PsS7S3im0iDP7-sxwK7NcTcw/viewform?entry.74033905=@@email&entry.1716438152=@@name&entry.1755343842=@@lastname\";\nexport const __CERTIFICATE_FORM__EN = \"https://docs.google.com/forms/d/e/1FAIpQLSc5SRTcB7PSASS-ubOMqy1TZ2PsS7S3im0iDP7-sxwK7NcTcw/viewform?entry.74033905=@@email&entry.1716438152=@@name&entry.1755343842=@@lastname\";\nexport const __VALID_MAILS_FOR_CERTIFICATES__ = \"\" // USAR \"\" para no mostrar la funcion o * para habilitar todos\nexport const __WHATSAPP_MSG__ = \"Hola,%20estoy%20visitando%20tu%20Stand%20en%20Expo%20Esencia%20Corrientes\";\n\nexport const __APIKCURL__ = 'https://api.kingconf.com/api/';\nexport const __APIKCURL_V3__ = (__IS_TEST__ ? 'https://testapi.kingconf.com/v3.0/events/' : 'https://api.kingconf.com/v3.0/events/') + Storage.getIdEvent() + '/';\nexport const __LIVEAPIURL__ = 'https://liveapi.kingconf.com/api/';\nexport const __APIPACKAGEURL__ = \"https://api.kingconf.com/api/eventpackage/\" + Storage.getIdEvent();\nexport const __API_STANDS_URL__ = __APIKCURL_V3__ + 'exhibitionStands';\nexport const __API_FLOORPLANS_URL__ = __APIKCURL_V3__ + 'floorplans';\nexport const __API_TRIVIA_URL__ = __APIKCURL_V3__ + 'challenges/';\nexport const __API_SPONSORS_URL__ = __APIKCURL__ + \"sponsors/\" + Storage.getIdEvent()\nexport const __API_WALL_COUNTED_POSTS_URL = __APIKCURL_V3__ + \"wall/getPostsCounted\";\nexport const __API_HTML_STATIC_PAGES_URL = \"https://api.kingconf.com/api/htmlstaticpages/\" + Storage.getIdEvent();\nexport const __API_VIRTUAL_BASIC_INFO__ = \"https://api.kingconf.com/v3.0/events/\" + Storage.getIdEvent() + \"/virtualBasicInfo\";\nexport const __API_ROOMS_URL__ = __APIKCURL_V3__ + \"rooms\";\nexport const __IMAGEHANDLER_URL__ = \"https://www.kingconf.com/Handlers/ImageHandler.ashx?AcImageId=\";\nexport const __FILEHANDLER_URL__ = \"https://www.kingconf.com/Handlers/EventFileHandler.ashx?AcEventFileId=\";\n\nexport const __API_FEED_ROOM__ = __APIKCURL_V3__ + \"chatMessagesByRoom/\"\nexport const __API_SESSIONS_URL__ = __APIKCURL__ + \"sessions/\" + Storage.getIdEvent(); // 10688 tests dogui\nexport const __API_SESSIONS_CONTENT_URL__ = __APIKCURL__ + \"sessionContent/\"; // 10688 tests dogui\nexport const __API_SPEAKERS_URL__ = __APIKCURL__ + \"speakers/\" + Storage.getIdEvent();\nexport const __API_ATTENDEES_URL__ = __APIKCURL_V3__ + \"/attendees/\";\nexport const __API_SEND_MESSAGE_URL__ = __APIURLVIRTUALEXPO__ + \"message/send/\";\n\n//BUSSINES ROUNDS\nexport const __BR_REQUEST_MEETING__ = __APIKCURL_V3__ + \"requestBusinessRoundMeeting/\";\nexport const __BR_DECLINE_MEETING__ = __APIKCURL_V3__ + \"declineBusinessRoundMeeting/\";\nexport const __BR_ACCEPT_MEETING__ = __APIKCURL_V3__ + \"acceptBusinessRoundMeeting/\";\nexport const __BR_RESPONSE_MEETING__ = __APIKCURL_V3__ + \"responseBusinessRoundMeeting/\";\nexport const __BR_MY_MEETINGS_SLOTS__ = __APIKCURL_V3__ + \"businessRoundMyMeetingSlots/\";\nexport const __BR_AVAILABLE_MEETINGS_SLOTS__ = __APIKCURL_V3__ + \"businessRoundAvailableMeetingSlots/\"; //AGENDA CONJUNTA CON UN REQUESTEE\nexport const __BR_SLOT_BLOCK__ = __APIKCURL_V3__ + \"blockBusinessRoundMeeting/\";\nexport const __BR_SLOT_UNBLOCK__ = __APIKCURL_V3__ + \"unblockBusinessRoundMeeting/\";\nexport const __BR_ATTENDEES_PAGINATED__ = __APIKCURL_V3__ + \"attendees/attendeesPaginated\";\nexport const __BR_CONFIGURATION__ = __APIKCURL_V3__ + 'businessRoundConfiguration?utcTimeStamp=2012-01-01'\nexport const __BR_CALENDAR_BLOCK__ = __APIKCURL_V3__ + \"blockMeetings/\";\nexport const __BR_CALENDAR_UNBLOCK__ = __APIKCURL_V3__ + \"unblockMeetings/\";\n\nexport const __BR_MY_MEETINGS__ = __APIKCURL_V3__ + \"businessRoundMyMeetings/\"; //TODAS LAS MEETINGS DE TODOS LOS PARTICIPANTES PERO REQUIERE IDREGISTRATION (?)\nexport const __BR_MEETING__ = __APIKCURL_V3__ + \"businessRoundMeeting/\"; //TODAS LAS MEETINGS DE TODOS LOS PARTICIPANTES\n\nexport const __API_CERTIFICATE_CHECK = __APIURLVIRTUALEXPO__ + \"certificate/url/\"\nexport const __API_VIDEO_URL__ = __APIKCURL__ + '/videos/' + Storage.getIdEvent();\nexport const __TWILIO_VIDEO_TOKEN__ = __APIURLVIRTUALEXPO__ + \"createTwilioToken/\";\nexport const __FILTER_IN_HOME_ONLY_HOME_HTMLPAGES__ = true; //Si esta en true muestra en la home solo las paginas que tienen \"home\" en PageField1\nexport const __API_FORUM__ = \"https://api.kingconf.com/v3.0/events/\" + Storage.getIdEvent() + \"/forums\";\nexport const __API_FEED_FORUM__ = __APIKCURL_V3__ + \"chatMessagesByForum/\"\nexport const __API_LEADERBOARD_URL__ = __APIKCURL_V3__ + \"leaderBoard/\";\nexport const __API_LEADERBOARDBRIEF_URL__ = __APIKCURL_V3__ + \"/leaderBoardBrief/\";\nexport const __API_REDEEM_POINTS_URL__ = __APIKCURL_V3__ + \"/RedeemPointsUniferia/\";\nexport const __API_ATTENDEES_ONLINE__ = __APIURLVIRTUALEXPO__ + \"client/getUsersstatus/\" + __IDEVENT_FORCED__;\nexport const __API_ATTENDEES_FORGOTPASSWORD__ = __APIKCURL_V3__ + \"attendees/forgotPassword?email=\";\nexport const __API_BANNERS__ = __APIKCURL__ + \"banners/\" + Storage.getIdEvent();\nexport const __API_EXHIBITOR_REPRESENTATIVE__ = __APIKCURL_V3__ + \"exhibitor/\";\nexport const __API_LOGS__ = __APIKCURL_V3__ + \"/log\";\n","export const __IDEVENT_SETTED__ = 0;\n","import { defaultDirection } from '../consts/defaultValues';\nimport { __IMAGEHANDLER_URL__ } from '../consts/consts';\nimport UnknownPic from '../assets/UnknownPic.png';\nimport onePxTransparent from '../assets/1pxTransparent.png';\n\nexport const mapOrder = (array, order, key) => {\n array.sort(function (a, b) {\n const A = a[key];\n const B = b[key];\n if (order.indexOf(`${A}`) > order.indexOf(`${B}`)) {\n return 1;\n }\n return -1;\n });\n return array;\n};\n\nexport const getDateWithFormat = () => {\n const today = new Date();\n let dd = today.getDate();\n let mm = today.getMonth() + 1; // January is 0!\n\n const yyyy = today.getFullYear();\n if (dd < 10) {\n dd = `0${dd}`;\n }\n if (mm < 10) {\n mm = `0${mm}`;\n }\n return `${dd}.${mm}.${yyyy}`;\n};\n\nexport const getCurrentTime = () => {\n const now = new Date();\n return `${now.getHours()}:${now.getMinutes()}`;\n};\n\nexport const getDirection = () => {\n let direction = defaultDirection;\n if (localStorage.getItem('direction')) {\n const localValue = localStorage.getItem('direction');\n if (localValue === 'rtl' || localValue === 'ltr') {\n direction = localValue;\n }\n }\n return {\n direction,\n isRtl: direction === 'rtl',\n };\n};\n\nexport const setDirection = (localValue) => {\n let direction = 'ltr';\n if (localValue === 'rtl' || localValue === 'ltr') {\n direction = localValue;\n }\n localStorage.setItem('direction', direction);\n};\n\n\nexport const getPicture = (pictureId) => {\n\n return pictureId != \"null\" && pictureId != 0 ?\n __IMAGEHANDLER_URL__ + Math.abs(pictureId) :\n UnknownPic\n}\n\nexport const getPictureHandlerUrl = (pictureId) => {\n if (!pictureId) return UnknownPic;\n\n return `${__IMAGEHANDLER_URL__}${Math.abs(pictureId)}`\n}\n\nexport const getPictureOrTransparent = (pictureId) => {\n return pictureId == 0 || pictureId == null ? onePxTransparent : __IMAGEHANDLER_URL__ + Math.abs(pictureId)\n}\n\nexport function normalizeText(text) {\n if (!text) {\n return '';\n }\n\n return text\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n}","module.exports = __webpack_public_path__ + \"static/media/logo-kingconf.d859010a.png\";","module.exports = __webpack_public_path__ + \"static/media/messageSound.765be77c.mp3\";","module.exports = __webpack_public_path__ + \"static/media/enterStand.d46d7db1.mp3\";","module.exports = __webpack_public_path__ + \"static/media/notificationSound.afded356.mp3\";","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","\n\nconst initialState = {\n selectedParticipant:0,\n participantsOnStand:[],\n allUnreadMessages: {\n \n }\n\n\n }\n \nconst conversationReducer = (state = initialState,action) => {\n switch(action.type){\n case 'ENTER_STAND':{\n //Agrego el id a las personas en el stand solo si no estan\n if (state.participantsOnStand.indexOf(action.payload.fromPersonId) == -1){\n return {\n ...state,\n participantsOnStand : [...state.participantsOnStand,action.payload.fromPersonId]\n \n };\n }\n else{\n return state;\n }\n }\n case 'LEAVE_STAND':{\n \n let alreadyInStand = state.participantsOnStand.filter( o => o != action.payload.fromPersonId) ||[];\n return {\n ...state,\n participantsOnStand : Array.from (alreadyInStand)\n \n };\n }\n case 'SELECT_PARTICIPANT':{\n const fromPersonId = Number(action.payload);\n return {\n ...state,\n selectedParticipant:fromPersonId,\n allUnreadMessages: {\n ...state.allUnreadMessages,\n [fromPersonId]: {\n unreadMessagesCount:0,\n unreadMessages:[]\n }\n }\n \n };\n }\n case 'MARK_AS_READ_ALL_MESSAGES_FROM':{\n const fromPersonId = action.payload;\n let unreadMessagesCount = 1;\n var obj = state.allUnreadMessages[fromPersonId];\n if (typeof obj != 'undefined'){\n return {\n ...state,\n allUnreadMessages: {\n ...state.allUnreadMessages,\n [fromPersonId]: {\n unreadMessagesCount:0,\n //Saco la lista de mensajes no leidos \n unreadMessages:[]\n }\n }\n };\n }\n }\n\n case 'RECEIVE_MESSAGE_FROM_SERVER':{\n //Incremento el counter para ese participante\n const messageFromServer = action.payload;\n const fromPersonId = messageFromServer.fromPersonId;\n let unreadMessagesCount = 1;\n var obj = state.allUnreadMessages[fromPersonId];\n if (typeof obj != 'undefined'){\n //Ya tengo ese usario en el store\n unreadMessagesCount = obj.unreadMessagesCount+1;\n return {\n ...state,\n allUnreadMessages: {\n ...state.allUnreadMessages,\n [fromPersonId]: {\n unreadMessagesCount:unreadMessagesCount,\n unreadMessages:[...state.allUnreadMessages[fromPersonId].unreadMessages,action.payload]\n }\n }\n };\n }\n else{\n return {\n ...state,\n allUnreadMessages: {\n ...state.allUnreadMessages,\n [fromPersonId]: {\n unreadMessagesCount:1,\n unreadMessages:[action.payload]\n }\n }\n \n };\n }\n \n }\n default:\n return state;\n }\n}\n\nexport default conversationReducer;","\nconst initialState = {\n selectedExhibitor:null\n }\n \nconst searchBarReducer = (state = initialState,action) => {\n switch(action.type){\n case 'GOTOEXHIBITOR':\n return Object.assign({},{selectedExhibitor:action.payload});\n default:\n return state;\n }\n}\n\nexport default searchBarReducer;","import {\n MENU_SET_CLASSNAMES,\n MENU_CONTAINER_ADD_CLASSNAME,\n MENU_CLICK_MOBILE_MENU,\n MENU_CHANGE_DEFAULT_CLASSES,\n MENU_CHANGE_HAS_SUB_ITEM_STATUS,\n} from '../../actionsTypes';\n\nimport {\n defaultMenuType,\n subHiddenBreakpoint,\n menuHiddenBreakpoint,\n} from '../../../consts/defaultValues';\n\nconst INIT_STATE = {\n containerClassnames: defaultMenuType,\n subHiddenBreakpoint,\n menuHiddenBreakpoint,\n menuClickCount: 0,\n selectedMenuHasSubItems: defaultMenuType === 'menu-default', // if you use menu-sub-hidden as default menu type, set value of this variable to false\n};\n\nexport default (state = INIT_STATE, action) => {\n switch (action.type) {\n case MENU_CHANGE_HAS_SUB_ITEM_STATUS:\n return { ...state, selectedMenuHasSubItems: action.payload };\n\n case MENU_SET_CLASSNAMES:\n return {\n ...state,\n containerClassnames: action.payload.containerClassnames,\n menuClickCount: action.payload.menuClickCount,\n };\n\n case MENU_CLICK_MOBILE_MENU:\n return {\n ...state,\n containerClassnames: action.payload.containerClassnames,\n menuClickCount: action.payload.menuClickCount,\n };\n\n case MENU_CONTAINER_ADD_CLASSNAME:\n return { ...state, containerClassnames: action.payload };\n\n case MENU_CHANGE_DEFAULT_CLASSES:\n return { ...state, containerClassnames: action.payload };\n\n default:\n return { ...state };\n }\n};\n","import { defaultLocale, localeOptions } from '../../../consts/defaultValues';\n\nimport { CHANGE_LOCALE } from '../../actionsTypes';\n\nconst INIT_STATE = {\n locale:\n localStorage.getItem('currentLanguage') &&\n localeOptions.filter(\n (x) => x.id === localStorage.getItem('currentLanguage')\n ).length > 0\n ? localStorage.getItem('currentLanguage')\n : defaultLocale,\n};\n\nexport default (state = INIT_STATE, action) => {\n switch (action.type) {\n case CHANGE_LOCALE:\n return { ...state, locale: action.payload };\n\n default:\n return { ...state };\n }\n};\n","import {\n CHAT_GET_CONTACTS,\n CHAT_GET_CONTACTS_SUCCESS,\n CHAT_GET_CONTACTS_ERROR,\n CHAT_GET_CONVERSATIONS,\n CHAT_GET_CONVERSATIONS_SUCCESS,\n CHAT_GET_CONVERSATIONS_ERROR,\n CHAT_ADD_MESSAGE_TO_CONVERSATION,\n CHAT_CREATE_CONVERSATION,\n CHAT_SEARCH_CONTACT,\n CHAT_CHANGE_CONVERSATION,\n} from '../actionsTypes';\n\nconst INIT_STATE = {\n allContacts: null,\n contacts: null,\n conversations: null,\n error: '',\n searchKeyword: '',\n loadingContacts: false,\n loadingConversations: false,\n currentUser: null,\n selectedUser: null,\n selectedUserId: null,\n};\n\nexport default (state = INIT_STATE, action) => {\n switch (action.type) {\n case CHAT_GET_CONTACTS:\n return { ...state, loadingContacts: false };\n\n case CHAT_GET_CONTACTS_SUCCESS:\n return {\n ...state,\n loadingContacts: true,\n allContacts: action.payload.contacts,\n contacts: action.payload.contacts,\n currentUser: action.payload.currentUser,\n };\n\n case CHAT_GET_CONTACTS_ERROR:\n return { ...state, loadingContacts: false, error: action.payload };\n\n case CHAT_GET_CONVERSATIONS:\n return { ...state, loadingConversations: false };\n\n case CHAT_GET_CONVERSATIONS_SUCCESS:\n return {\n ...state,\n loadingConversations: true,\n conversations: action.payload.conversations,\n selectedUserId: action.payload.selectedUser,\n };\n\n case CHAT_GET_CONVERSATIONS_ERROR:\n return { ...state, loadingConversations: false, error: action.payload };\n\n case CHAT_CHANGE_CONVERSATION:\n return {\n ...state,\n selectedUser: state.allContacts.find((x) => x.id === action.payload),\n };\n\n case CHAT_ADD_MESSAGE_TO_CONVERSATION:\n return { ...state };\n\n case CHAT_CREATE_CONVERSATION:\n return { ...state };\n\n case CHAT_SEARCH_CONTACT:\n if (action.payload === '') {\n return { ...state, contacts: state.allContacts };\n }\n const keyword = action.payload.toLowerCase();\n const searchedContacts = state.allContacts.filter(\n (item) => item.name.toLowerCase().indexOf(keyword) > -1\n );\n return { ...state, contacts: searchedContacts };\n\n default:\n return { ...state };\n }\n};\n","\nconst initialState = {\n liveFeed: []\n\n\n }\n \nconst liveFeedReducer = (state = initialState,action) => {\n switch(action.type){\n case 'LIVEFEED_MESSAGE_RECEIVED':{\n return { \n ...state,\n liveFeed: state.liveFeed.concat(action.payload)\n }\n \n }\n case 'LIVEFEED_CLEAR':{\n return { \n ...state,\n liveFeed: []\n }\n \n }\n \n \n default:\n return state;\n }\n}\n\nexport default liveFeedReducer;","\nconst initialState = {\n notifications: {},\n notificationsUnread:0\n\n }\n \nconst notificationCenterReducer = (state = initialState,action) => {\n switch(action.type){\n case 'NOTIFICATION_RECEIVED':{\n\n return Object.assign({}, state, {\n notifications: action.payload,\n notificationsUnread:state.notificationsUnread + 1\n })\n }\n //Cuando se oculta o cierro el toast, tengo que sacarla\n case 'NOTIFICATION_READED':{\n return Object.assign({}, state, {\n notifications: {}\n })\n }\n \n //Cuando toco la barra de navegación hago un clear\n case 'CLEAR_NOTIFICATION_COUNTER':{\n return Object.assign({}, state, {\n notificationsUnread:0\n })\n }\n \n default:\n return state;\n }\n}\n\nexport default notificationCenterReducer;","\nconst initialState = {\n certificateCreated: false,\n certificateUrl:''\n\n\n }\n \nconst certificateReducer = (state = initialState,action) => {\n switch(action.type){\n case 'CERTIFICATE_CREATED':{\n return { \n ...state,\n certificateCreated: true,\n certificateUrl:action.payload\n }\n \n }\n \n \n default:\n return state;\n }\n}\n\nexport default certificateReducer;","\nconst initialState = {\n show: false\n\n\n }\n \nconst miniVideoPlayerReducer = (state = initialState,action) => {\n switch(action.type){\n case 'MINI_VIDEO_PLAYER_SHOW':{\n return { \n ...state,\n show: true\n }\n \n }\n case 'MINI_VIDEO_PLAYER_HIDE':{\n return { \n ...state,\n show: false\n }\n \n }\n \n \n default:\n return state;\n }\n}\n\nexport default miniVideoPlayerReducer;","import {\n LOCK_UI,\n UNLOCK_UI,\n UPDATE_CALENDAR,\n UPDATE_COUNTERPARTS,\n UPDATE_CONFIGURATION,\n UPDATE_FILTERS,\n // BLOCK_CALENDAR, \n // UNBLOCK_CALENDAR,\n} from '../actionsTypes'\n\nconst initialState = {\n calendar: [],\n counterpartList: [],\n configuration: 0,\n isUIEnabled: true,\n isEnabled: getBusinessRoundStatus(),\n filters: {\n categories: [],\n investmentRanges: [],\n },\n spotlightCompany: true,\n}\n\nconst businessRoundsReducer = (state = initialState, action) => {\n const { type, payload } = action;\n switch (type) {\n case UPDATE_CALENDAR:\n return {\n ...state,\n calendar: payload\n }\n case UPDATE_COUNTERPARTS:\n return {\n ...state,\n counterpartList: payload\n }\n case LOCK_UI:\n return {\n ...state,\n isUIEnabled: false,\n }\n case UNLOCK_UI:\n return {\n ...state,\n isUIEnabled: true,\n }\n case UPDATE_CONFIGURATION:\n return {\n ...state,\n configuration: payload\n }\n case UPDATE_FILTERS:\n return {\n ...state,\n filters: payload,\n }\n // case BLOCK_CALENDAR:\n // return {\n // ...state,\n // isEnabled: false\n // }\n // case UNBLOCK_CALENDAR:\n // return {\n // ...state,\n // isEnabled: true\n // }\n default:\n return state;\n }\n}\n\nexport default businessRoundsReducer\n\nfunction getBusinessRoundStatus() {\n const status = window.localStorage.getItem('businessRoundEnabled')\n if (status === 'false') return false\n return true\n}","import loggedReducer from './isLogged';\nimport conversationReducer from './conversation';\nimport { combineReducers } from 'redux';\nimport searchBarReducer from './seachBar';\nimport menuReducer from './menu';\nimport settingsReducer from './settings';\nimport chatReducer from '../chat/reducer';\nimport liveFeed from './liveFeed';\nimport notificationCenterReducer from './notificationCenter';\nimport certificateReducer from './certificate';\nimport miniVideoPlayerReducer from './miniVideoPlayer';\nimport businessRoundsReducer from './businessRoundsReducer';\n\nconst allReducers = combineReducers({\n menu: menuReducer,\n settings: settingsReducer,\n conversation: conversationReducer,\n searchBar: searchBarReducer,\n chatApp: chatReducer,\n liveFeed: liveFeed,\n notificationCenter: notificationCenterReducer,\n certificate: certificateReducer,\n miniVideoPlayer: miniVideoPlayerReducer,\n businessRoundsReducer\n})\n\nexport default allReducers;","import {\n CHAT_GET_CONTACTS,\n CHAT_GET_CONTACTS_SUCCESS,\n CHAT_GET_CONTACTS_ERROR,\n CHAT_GET_CONVERSATIONS,\n CHAT_GET_CONVERSATIONS_SUCCESS,\n CHAT_GET_CONVERSATIONS_ERROR,\n CHAT_ADD_MESSAGE_TO_CONVERSATION,\n CHAT_CREATE_CONVERSATION,\n CHAT_SEARCH_CONTACT,\n CHAT_CHANGE_CONVERSATION,\n} from '../actionsTypes';\n\nexport const getContacts = () => ({\n type: CHAT_GET_CONTACTS,\n});\n\nexport const getContactsSuccess = (contacts, currentUser) => {\n return {\n type: CHAT_GET_CONTACTS_SUCCESS,\n payload: { contacts, currentUser },\n };\n};\n\nexport const getContactsError = (error) => ({\n type: CHAT_GET_CONTACTS_ERROR,\n payload: error,\n});\n\nexport const getConversations = (userId) => ({\n type: CHAT_GET_CONVERSATIONS,\n payload: userId,\n});\nexport const getConversationsSuccess = (conversations, selectedUser) => ({\n type: CHAT_GET_CONVERSATIONS_SUCCESS,\n payload: { conversations, selectedUser },\n});\n\nexport const getConversationsError = (error) => ({\n type: CHAT_GET_CONVERSATIONS_ERROR,\n payload: error,\n});\n\nexport const addMessageToConversation = (\n currentUserId,\n selectedUserId,\n message,\n allConversations\n) => ({\n type: CHAT_ADD_MESSAGE_TO_CONVERSATION,\n payload: { currentUserId, selectedUserId, message, allConversations },\n});\n\nexport const createConversation = (\n currentUserId,\n selectedUserId,\n allConversations\n) => {\n return {\n type: CHAT_CREATE_CONVERSATION,\n payload: { currentUserId, selectedUserId, allConversations },\n };\n};\n\nexport const searchContact = (keyword) => ({\n type: CHAT_SEARCH_CONTACT,\n payload: keyword,\n});\n\nexport const changeConversation = (userId) => ({\n type: CHAT_CHANGE_CONVERSATION,\n payload: userId,\n});\n","import { all, call, fork, put, takeEvery } from 'redux-saga/effects';\nimport { getCurrentTime } from '../../helpers/Utils';\nimport axios from 'axios';\nimport {__APIKCURL__} from '../../consts/consts';\nimport Storage from '../../components/Storage';\n\n\nimport {\n CHAT_GET_CONTACTS,\n CHAT_GET_CONVERSATIONS,\n CHAT_ADD_MESSAGE_TO_CONVERSATION,\n CHAT_CREATE_CONVERSATION,\n CHAT_CHANGE_CONVERSATION\n} from '../actionsTypes';\n\nimport {\n getContactsSuccess,\n getContactsError,\n getConversationsSuccess,\n getConversationsError,\n} from './actions';\n\nimport contactsData from '../../data/chat.contacts.json';\nimport conversationsData from '../../data/chat.conversations.json';\nimport Utils from '../../components/Utils';\n\nfunction* loadContacts() {\n try {\n\t\tconst options = {\n\t\t\turl: __APIKCURL__+'Attendees/',\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t'Accept': 'application/json',\n\t\t\t'Content-Type': 'application/json;charset=UTF-8'\n\t\t\t},\n\t\t\tdata: {\n\t\t\tidEvent: Storage.getIdEvent(),\n\t\t\tnetworkingAction: \"GetAttendeeChatList\",\n\t\t\tregistrationCode: Storage.getPersonRegistrationCode()\n\t\t\t}\n\t\t};\n\t\n const response = yield call(() => axios(options));\n //const response = yield call(loadContactsAsync);\n const contacts = response.data;\n const currentUser = Storage.getMyUser();\n yield put(getContactsSuccess(contacts, currentUser));\n } catch (error) {\n yield put(getContactsError(error));\n }\n}\n\nconst loadContactsAsync = async () => {\n const contacts = contactsData.data;\n const currentUser = contacts[0];\n return await new Promise((success, fail) => {\n setTimeout(() => {\n success({ contacts, currentUser });\n }, 2000);\n })\n .then((response) => response)\n .catch((error) => error);\n};\n\nfunction* loadConversations(userId) {\n try {\n const response = yield call(loadConversationsAsync, userId);\n const { conversations, selectedUser } = response;\n yield put(getConversationsSuccess(conversations, selectedUser));\n } catch (error) {\n yield put(getConversationsError(error));\n }\n}\n\nconst loadConversationsAsync = async ({ payload }) => {\n const selectedUser = payload;\n const options = {\n url: __APIKCURL__+'Attendees/',\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n data: {\n \n idEvent: Storage.getIdEvent(),\n networkingAction: \"GetMessagesBetweenUsers\",\n registrationCode: Storage.getPersonRegistrationCode(),\n contactedPersonId: selectedUser\n }\n };\n\n \n return await new Promise((success, fail) => {\n let response = axios(options);\n let conversations = response.data.map(result => {\n \n let dateTotransform = new Date(result.postedDate);\n return {\n id: result.id,\n message: result.message,\n author:Number(result.postedByPersonId),\n timestamp:dateTotransform.setHours(dateTotransform.getHours() - 3),\n confirmed:true\n };\n });\n success({ conversations, selectedUser });\n })\n .then((response) => response)\n .catch((error) => error);\n};\n\nfunction* addMessageToConversation(socket,{ payload }) {\n try {\n const {\n currentUserId,\n selectedUserId,\n message,\n allConversations,\n } = payload;\n\n const response = yield call(\n addMessageToConversationAsync,\n socket,\n currentUserId,\n selectedUserId,\n message,\n allConversations\n );\n const { conversation, selectedUser } = response;\n yield put(getConversationsSuccess(conversation, selectedUser));\n } catch (error) {\n yield put(getConversationsError(error));\n }\n}\nconst addMessageToConversationAsync = async (\n socket,\n currentUserId,\n selectedUserId,\n message,\n conversation\n) => {\n socket.sendMessage(selectedUserId,message,'123122');\n \n const time = getCurrentTime();\n if (conversation) {\n conversation.messages.push({\n sender: currentUserId,\n time,\n text: message,\n });\n conversation.lastMessageTime = time;\n\n return await new Promise((success, fail) => {\n setTimeout(() => {\n success({ conversation, selectedUser: selectedUserId });\n }, 500);\n })\n .then((response) => response)\n .catch((error) => error);\n }\n};\nfunction* changeConversation({ payload }) {\n try {\n const response = yield call(loadConversationsAsync, payload);\n const { conversations, selectedUser } = response;\n yield put(getConversationsSuccess(conversations, selectedUser));\n } catch (error) {\n yield put(getConversationsError(error));\n }\n}\n\nfunction* createNewConversation({ payload }) {\n try {\n const { currentUserId, selectedUserId, allConversations } = payload;\n const response = yield call(\n createNewConversationAsync,\n currentUserId,\n selectedUserId,\n allConversations\n );\n const { conversations, selectedUser } = response;\n yield put(getConversationsSuccess(conversations, selectedUser));\n } catch (error) {\n yield put(getConversationsError(error));\n }\n}\n\nconst createNewConversationAsync = async (\n currentUserId,\n selectedUserId,\n allConversations\n) => {\n const conversation = {\n id: allConversations.length + 1,\n users: [currentUserId, selectedUserId],\n lastMessageTime: '-',\n messages: [],\n };\n\n allConversations.splice(0, 0, conversation);\n return await new Promise((success, fail) => {\n setTimeout(() => {\n success({\n conversations: allConversations,\n selectedUser: selectedUserId,\n });\n }, 500);\n })\n .then((response) => response)\n .catch((error) => error);\n};\n\nexport function* watchGetContact() {\n yield takeEvery(CHAT_GET_CONTACTS, loadContacts);\n}\nexport function* watchGetConversation() {\n yield takeEvery(CHAT_GET_CONVERSATIONS, loadConversations);\n}\nexport function* watchAddMessageToConversation(socket) {\n yield takeEvery(CHAT_ADD_MESSAGE_TO_CONVERSATION, addMessageToConversation,socket);\n}\nexport function* watchCreateConversation() {\n yield takeEvery(CHAT_CREATE_CONVERSATION, createNewConversation);\n}\nexport function* watchChangeConversation() {\n yield takeEvery(CHAT_CHANGE_CONVERSATION, changeConversation);\n}\n\nexport default function* rootSaga(socket) {\n yield all([\n fork(watchGetContact),\n fork(watchGetConversation),\n fork(watchAddMessageToConversation,socket),\n fork(watchCreateConversation),\n fork(watchChangeConversation),\n ]);\n}\n","import { all } from 'redux-saga/effects';\nimport chatSagas from './chat/saga';\n// import authSagas from './auth/saga';\n\nexport default function* rootSaga(socket) {\n yield all([\n chatSagas(socket)\n ]);\n}\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport createSagaMiddleware from 'redux-saga';\nimport reducers from './reducers';\nimport sagas from './sagas';\nimport thunk from 'redux-thunk'\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst middlewares = [sagaMiddleware, thunk];\n\nexport function configureStore(initialState, socket) {\n // const store = createStore(allReducers,\n // window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n const store = createStore(\n reducers,\n initialState,\n compose(applyMiddleware(...middlewares)\n // ,window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\n )\n );\n\n sagaMiddleware.run(sagas, socket);\n\n if (module.hot) {\n module.hot.accept('./reducers', () => {\n const nextRootReducer = require('./reducers');\n store.replaceReducer(nextRootReducer);\n });\n }\n\n\n\n return store;\n}\n","import axios from 'axios';\nimport {\n __BR_ATTENDEES_PAGINATED__,\n __BR_MY_MEETINGS_SLOTS__,\n __BR_SLOT_BLOCK__,\n __BR_SLOT_UNBLOCK__,\n __BR_DECLINE_MEETING__,\n __BR_ACCEPT_MEETING__,\n __BR_REQUEST_MEETING__,\n __BR_AVAILABLE_MEETINGS_SLOTS__,\n __BR_CONFIGURATION__\n} from '../consts/consts';\nimport MyStorage from '../components/Storage';\nimport { __API_LOGS__ } from '../consts/consts';\n\nexport async function getCounterParts() {\n try {\n const options = {\n url: __BR_ATTENDEES_PAGINATED__ + \"?currentPage=1&resultsPerPage=3000&searchString=&orderByFields=Person.Company&IsBusinessRound=true\",\n method: 'GET',\n headers: {\n registrationCode: MyStorage.getPersonRegistrationCode(),\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n token: MyStorage.getJwtToken(),\n },\n };\n\n const { data } = await axios(options);\n\n const counterpartsWithExhibitor = data.Items.filter(attendee => attendee.exhibitor);\n const counterpartsWithoutExhibitor = data.Items.filter(attendee => !attendee.exhibitor);\n\n counterpartsWithExhibitor.sort((a, b) => a.exhibitor.name.localeCompare(b.exhibitor.name));\n counterpartsWithoutExhibitor.sort((a, b) => a.firstName.localeCompare(b.firstName));\n\n const counterparts = counterpartsWithExhibitor.concat(counterpartsWithoutExhibitor);\n return counterparts;\n } catch (error) {\n handleError(error, 'getCounterParts - Pedir el listado de personas habilitadas para reuniones');\n return error;\n }\n}\n\nexport async function getCalendar() {\n const options = {\n url: __BR_MY_MEETINGS_SLOTS__ + MyStorage.getIdRegistration(),\n headers: {\n registrationCode: MyStorage.getPersonRegistrationCode(),\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n token: MyStorage.getJwtToken(),\n },\n };\n try {\n const { data } = await axios(options)\n const meetingDays = []\n const meetings = []\n\n data.forEach(slot => {\n const date = slot.meetingStartDateTime.split(\"T\")[0]\n if (!meetingDays.includes(date)) {\n meetingDays.push(date)\n }\n })\n\n meetingDays.forEach(day => {\n const dayMeetings = data.filter(slot => slot.meetingStartDateTime.split(\"T\")[0] === day)\n meetings.push({\n date: day,\n meetings: dayMeetings\n })\n })\n\n return meetings\n } catch (error) {\n handleError(error, 'getCalendar - Pedir mi agenda');\n console.log(error)\n }\n}\n\nexport async function getBussinesRoundConfiguration() {\n try {\n const { data } = await axios.get(__BR_CONFIGURATION__)\n return Number(data[0].businessRoundType)\n } catch (error) {\n handleError(error, 'getBussinesRoundConfiguration');\n return error\n }\n}\n\nexport async function blockSlot(meetingStartDateTime, meetingEndDateTime) {\n try {\n const body = {\n id: 0,\n idRegistrationRequester: MyStorage.getIdRegistration(),\n meetingStartDateTime,\n meetingEndDateTime\n }\n\n await axios.post(__BR_SLOT_BLOCK__, body, {\n headers: {\n registrationCode: MyStorage.getPersonRegistrationCode(),\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n token: MyStorage.getJwtToken(),\n }\n });\n\n return true;\n } catch (error) {\n handleError(error, 'blockSlot - Bloquear horario');\n return error;\n }\n}\n\nexport async function unblockSlot(slotId) {\n try {\n const body = {\n id: slotId,\n idRegistrationRequester: MyStorage.getIdRegistration()\n }\n await axios.post(__BR_SLOT_UNBLOCK__, body, {\n headers: {\n registrationCode: MyStorage.getPersonRegistrationCode(),\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n token: MyStorage.getJwtToken(),\n }\n })\n } catch (error) {\n handleError(error, 'unblockSlot - Desbloquear horario');\n return error;\n }\n}\n\nexport async function rejectOrCancelMeeting(slotId, responseMessage) {\n try {\n const body = {\n id: slotId,\n responseNote: responseMessage\n }\n await axios.post(__BR_DECLINE_MEETING__, body, {\n headers: {\n registrationCode: MyStorage.getPersonRegistrationCode(),\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n token: MyStorage.getJwtToken(),\n }\n })\n } catch (error) {\n handleError(error, 'rejectOrCancelMeeting - Rechazar / Cancelar solicitud');\n return error;\n }\n}\n\nexport async function acceptMeeting(slotId, responseMessage) {\n try {\n const body = {\n id: slotId,\n responseNote: responseMessage\n }\n await axios.post(__BR_ACCEPT_MEETING__, body, {\n headers: {\n registrationCode: MyStorage.getPersonRegistrationCode(),\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n token: MyStorage.getJwtToken(),\n }\n })\n } catch (error) {\n handleError(error, 'acceptMeeting - Aceptar solicitud')\n return error;\n }\n}\n\nexport async function requestMeeting(responseMessage, meetingStartDateTime, meetingEndDateTime, idRegistrationRequestee) {\n try {\n const body = {\n requestNote: responseMessage,\n meetingStartDateTime,\n meetingEndDateTime,\n idRegistrationRequestee,\n idRegistrationRequester: MyStorage.getIdRegistration()\n }\n const { data } = await axios.post(__BR_REQUEST_MEETING__, body, {\n headers: {\n registrationCode: MyStorage.getPersonRegistrationCode(),\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n token: MyStorage.getJwtToken(),\n }\n })\n return data;\n } catch (error) {\n handleError(error, 'requestMeeting - Solicitud de reunion')\n const response = {\n success: false,\n code: error.response.data.error.code,\n message: error.response.data.error.message,\n }\n throw response;\n }\n}\n\nexport async function getJointCalendar(idRegistrationRequestee) {\n try {\n const url = `${__BR_AVAILABLE_MEETINGS_SLOTS__}${MyStorage.getIdRegistration()}/${idRegistrationRequestee}`\n const { data } = await axios.get(url, {\n headers: {\n registrationCode: MyStorage.getPersonRegistrationCode(),\n 'Accept': 'application/json',\n 'Content-Type': 'application/json;charset=UTF-8',\n token: MyStorage.getJwtToken(),\n }\n })\n\n const meetingDays = []\n const meetings = []\n\n data.forEach(slot => {\n const date = slot.meetingStartDateTime.split(\"T\")[0]\n if (!meetingDays.includes(date)) {\n meetingDays.push(date)\n }\n })\n\n meetingDays.forEach(day => {\n const dayMeetings = data.filter(slot => slot.meetingStartDateTime.split(\"T\")[0] === day && slot.status.toLowerCase() === 'notset')\n meetings.push({\n date: day,\n meetings: dayMeetings\n })\n })\n\n return meetings\n } catch (error) {\n handleError(error, 'getJointCalendar - Pedido de horarios disponibles para solicitar reunión')\n return error\n }\n}\n\nfunction handleError(error, requestingMethod) {\n const { response, request } = error\n\n const logDescription = {\n level: 'ERROR',\n process: requestingMethod,\n IdEvent: MyStorage.getIdEvent(),\n };\n\n if (request || response) {\n logDescription.AdditionalInformation = JSON.stringify({\n registrationCode: MyStorage.getPersonRegistrationCode(),\n token: MyStorage.getJwtToken(),\n })\n }\n\n if (response) {\n logDescription.exceptionType = response.status + response.statusText\n logDescription.title = response.data.message\n } else if (request) {\n logDescription.title = 'No se recibio respuesta del servidor'\n } else {\n logDescription.title = 'Error de ejecución'\n }\n\n try {\n axios.post(__API_LOGS__, logDescription)\n } catch (err) {\n console.error(err);\n }\n}","import { getCalendar, getCounterParts } from '../../services/bussinesRounds.service'\nimport { UPDATE_CALENDAR, UPDATE_COUNTERPARTS, UPDATE_CONFIGURATION, LOCK_UI, UNLOCK_UI, UPDATE_FILTERS } from '../actionsTypes'\n\nexport const updateCalendar = () => {\n return async (dispatch) => {\n try {\n const payload = await getCalendar()\n\n dispatch({\n type: UPDATE_CALENDAR,\n payload\n })\n } catch (error) {\n console.log(error);\n }\n }\n}\n\nexport const updateCounterparts = () => {\n return async (dispatch) => {\n try {\n const payload = await getCounterParts()\n\n dispatch({\n type: UPDATE_COUNTERPARTS,\n payload\n })\n } catch (error) {\n console.log(error);\n }\n }\n}\n\nexport const lockUI = () => {\n return {\n type: LOCK_UI\n }\n}\n\nexport const unLockUI = () => {\n return {\n type: UNLOCK_UI\n }\n}\n\nexport const setCalendar = (myMeetings) => {\n return {\n type: UPDATE_CALENDAR,\n payload: myMeetings\n }\n}\n\nexport const setCounterparts = (myCounterparts) => {\n return {\n type: UPDATE_COUNTERPARTS,\n payload: myCounterparts\n }\n}\n\nexport const setConfiguration = (configuration) => {\n return {\n type: UPDATE_CONFIGURATION,\n payload: configuration\n }\n}\n\nexport const setFiltersData = (categories, investmentRanges) => {\n const categoriesTransformed = categories.map((category, index) => ({\n id: index + 1,\n label: category,\n checked: true,\n }));\n categoriesTransformed.unshift({ id: 0, label: 'Todas los rubros', checked: true });\n const investmentRangesTransformed = {\n lowEnd: parseInt(investmentRanges[0]),\n highEnd: parseInt(investmentRanges[1]),\n };\n return {\n type: UPDATE_FILTERS,\n payload: { categories: categoriesTransformed, investmentRanges: investmentRangesTransformed }\n }\n}\n// export const blockCalendar = (message) => {\n// return async (dispatch) => {\n// try {\n// const { data } = await blockCalendar(message)\n// Storage.setBusinessRoundStatus(false)\n// dispatch({\n// type: BLOCK_CALENDAR,\n// })\n// } catch (error) {\n// console.log(error)\n// }\n// }\n// }\n\n// export const unBlockCalendar = () => {\n// return async (dispatch) => {\n// try {\n// await unBlockCalendar()\n// Storage.setBusinessRoundStatus(true)\n// dispatch({\n// type: UNBLOCK_CALENDAR,\n// })\n// } catch (error) {\n// console.log(error);\n// }\n// }\n// }","import * as signalR from '@microsoft/signalr';\nimport { __APIURLVIRTUALEXPO__ } from '../consts/consts';\nimport Storage from './Storage';\nimport { store } from '../index';\nimport { notificationReceived, liveFeedMessageReceived, receiveMessageFromServer, enterStand, leaveStand, certificateCreated } from '../redux/actions';\nimport messageSound from '../assets/messageSound.mp3';\nimport enterStandSound from '../assets/enterStand.mp3';\nimport notificationSound from '../assets/notificationSound.mp3';\nimport Utils from './Utils';\nimport { updateCalendar } from '../redux/actions/businessRounds.actions';\n\nclass SignalrSocket {\n\n constructor() {\n this.signalRSocket = null;\n this.pageTitle = document.title;\n this.unfocusMessagesReceived = 0;\n }\n\n getSocket() {\n return this.signalRSocket;\n }\n\n create() {\n this.signalRSocket = new signalR.HubConnectionBuilder()\n .withUrl(__APIURLVIRTUALEXPO__ + 'chat', { accessTokenFactory: () => Storage.getJwtToken() })\n .withAutomaticReconnect([0, 2000, 5000, 5000, 5000, 5000, 10000, 10000, 10000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, 30000, null])\n .configureLogging(signalR.LogLevel.Information)\n .withHubProtocol(new signalR.JsonHubProtocol())\n .build()\n }\n\n chatHandler = (fromIdPerson, toPersonId, message, msgId) => {\n\n if (fromIdPerson.toString() != Storage.getIdPerson().toString()) {\n let audio = new Audio(messageSound);\n audio.play();\n // if (document.hasFocus() == false){\n // document.title = ++this.unfocusMessagesReceived + \" mensaje(s) nuevo\";\n // }\n // else{\n // document.title = this.pageTitle;\n // this.unfocusMessagesReceived =0;\n // }\n\n }\n\n let messageFromServer = {\n fromPersonId: fromIdPerson,\n toPersonId: toPersonId,\n message: message,\n messageId: msgId\n }\n store.dispatch(receiveMessageFromServer(messageFromServer));\n }\n standActionHandler = (fromIdPerson, personIdExhibitor, action) => {\n\n\n if (personIdExhibitor != Storage.getIdPerson()) {\n return;//Me llego el msj de otro expositor\n }\n let standEventInfo = {\n fromPersonId: fromIdPerson,\n fromPersonExhibitorId: personIdExhibitor\n }\n if (action == \"enter\") {\n let audio = new Audio(enterStandSound);\n audio.play();\n store.dispatch(enterStand(standEventInfo));\n }\n else {\n store.dispatch(leaveStand(standEventInfo));\n }\n\n }\n unsanitazed(str) {\n var ret = str.replace(/>/g, '>');\n ret = ret.replace(/</g, '<');\n ret = ret.replace(/"/g, '\"');\n ret = ret.replace(/'/g, \"'\");\n ret = ret.replace(/&/g, '&');\n return ret;\n };\n notificationHandler = (notification) => {\n\n var newNotification = { ...notification, content: this.unsanitazed(notification.content), showToast: true }\n store.dispatch(notificationReceived(newNotification));\n let audio = new Audio(notificationSound);\n audio.play();\n }\n\n\n liveFeedHandler = (liveFeedMessage) => {\n\n store.dispatch(liveFeedMessageReceived(liveFeedMessage));\n }\n\n heartbeatHandler = () => {\n try {\n\n Utils.logOnConsole('Se recibió un heartbeat<=...');\n // verifico que el evento siga abierto\n if (Utils.isEventFinished() && Storage.getOverdueAccess() == false) {\n Utils.logOnConsole('Se desloguea porque no esta abierto el evento y no tiene permisos...');\n Utils.logOut();\n }\n let idRoom = Storage.getLiveStreamRoomId();\n let showingMiniVideoPlayer = false;\n if (Storage.getMiniPlayerSelectedRoomId() != null) {\n showingMiniVideoPlayer = true;\n }\n if (idRoom == null) {\n idRoom = Storage.getMiniPlayerSelectedRoomId();\n }\n this.signalRSocket.invoke('heartbeat', window.location.href + \"||\" + Number(idRoom) + \"||\" + showingMiniVideoPlayer);\n Utils.logOnConsole('Se envió un heartbeat=>...');\n }\n catch (ex) {\n Utils.sendErrorToServer(\"Ocurrio un error enviando un HEARTBEAT\", \"SignalrSocket\", ex);\n }\n }\n\n\n certificateCreatedHandler = (certificateUrl) => {\n\n store.dispatch(certificateCreated(certificateUrl));\n }\n\n refreshCalendar() {\n console.log(\"Refrescando calendario por pedido de websockets\");\n store.dispatch(updateCalendar())\n }\n\n socketClosed() {\n console.log('socket cerrado!');\n }\n\n start() {\n this.signalRSocket.start().then(() => {\n\n console.log('socket abierto!');\n // var heartBeat = this.signalRSocket.connection.heartBeatHub;\n // heartBeat.server.send('Heart beat listening');\n })\n .catch(err => {\n console.error(err, 'red');\n let error = \"Obj err: \" + JSON.stringify(err);\n error += \"Hub Url: \" + this.signalRSocket.connection.baseUrl;\n Utils.sendErrorToServer(\"Ocurrio un error abriendo en el start del socket\", \"SignalrSocket\", error);\n setTimeout(function () {\n Storage.clearAll();//puede ser un tema con las cookies\n window.location.href = \"/\";\n }, 4000);\n throw err;\n });\n this.signalRSocket.on('chat', this.chatHandler);\n this.signalRSocket.on('standAction', this.standActionHandler);\n this.signalRSocket.on('notification', this.notificationHandler);\n this.signalRSocket.on('liveFeed', this.liveFeedHandler);\n this.signalRSocket.on('certificateCreated', this.certificateCreatedHandler);\n this.signalRSocket.on('heartbeat', this.heartbeatHandler);\n this.signalRSocket.on('RefreshMeetings', this.refreshCalendar);\n this.signalRSocket.onclose(this.socketClosed());\n var me = this;\n }\n\n\n\n}\n\nexport default SignalrSocket","import React, { Suspense } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport * as serviceWorker from './serviceWorker';\nimport { BrowserRouter } from 'react-router-dom';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport { createStore } from 'redux';\nimport allReducers from './redux/reducers';\nimport { Provider } from 'react-redux';\nimport './assets/main.scss';\nimport { configureStore } from './redux/store';\nimport 'react-image-lightbox/style.css';\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport SignalRSocket from './components/SignalrSocket';\nimport Utils from './components/Utils';\nimport Storage from './components/Storage';\nimport ApiCalls from './components/ApiCalls';\n\n// const store = createStore(allReducers,\n// window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\nexport const socket = new SignalRSocket();\nexport const store = configureStore(undefined, socket);\n\nconst App = React.lazy(() => import(/* webpackChunkName: \"App\" */ './App'));\nconsole.log(`Virtual Congress version: ${process.env.REACT_APP_VIRTUAL_CONGRESS_VERSION}`);\nReactDOM.render(\n \n \n \n }>\n \n \n \n \n ,\n document.getElementById('root')\n);\nserviceWorker.unregister();\n","/* eslint-disable import/no-cycle */\n/* eslint-disable no-param-reassign */\nimport {\n MENU_SET_CLASSNAMES,\n MENU_CONTAINER_ADD_CLASSNAME,\n MENU_CLICK_MOBILE_MENU,\n MENU_CHANGE_DEFAULT_CLASSES,\n MENU_CHANGE_HAS_SUB_ITEM_STATUS,\n} from '../../actionsTypes';\n\nexport const changeSelectedMenuHasSubItems = (payload) => {\n return {\n type: MENU_CHANGE_HAS_SUB_ITEM_STATUS,\n payload,\n };\n};\n\nexport const changeDefaultClassnames = (strCurrentClasses) => {\n return {\n type: MENU_CHANGE_DEFAULT_CLASSES,\n payload: strCurrentClasses,\n };\n};\n\nexport const addContainerClassname = (classname, strCurrentClasses) => {\n const newClasses =\n !strCurrentClasses.indexOf(classname) > -1\n ? `${strCurrentClasses} ${classname}`\n : strCurrentClasses;\n return {\n type: MENU_CONTAINER_ADD_CLASSNAME,\n payload: newClasses,\n };\n};\n\nexport const clickOnMobileMenu = (strCurrentClasses) => {\n const currentClasses = strCurrentClasses\n ? strCurrentClasses\n .split(' ')\n .filter((x) => x !== '' && x !== 'sub-show-temporary')\n : '';\n let nextClasses = '';\n if (currentClasses.includes('main-show-temporary')) {\n nextClasses = currentClasses\n .filter((x) => x !== 'main-show-temporary')\n .join(' ');\n } else {\n nextClasses = `${currentClasses.join(' ')} main-show-temporary`;\n }\n return {\n type: MENU_CLICK_MOBILE_MENU,\n payload: { containerClassnames: nextClasses, menuClickCount: 0 },\n };\n};\n\nexport const setContainerClassnames = (\n clickIndex,\n strCurrentClasses,\n selectedMenuHasSubItems\n) => {\n const currentClasses = strCurrentClasses\n ? strCurrentClasses.split(' ').filter((x) => x !== '')\n : '';\n let nextClasses = '';\n if (!selectedMenuHasSubItems) {\n if (\n currentClasses.includes('menu-default') &&\n (clickIndex % 4 === 0 || clickIndex % 4 === 3)\n ) {\n clickIndex = 1;\n }\n if (currentClasses.includes('menu-sub-hidden') && clickIndex % 4 === 2) {\n clickIndex = 0;\n }\n if (\n currentClasses.includes('menu-hidden') &&\n (clickIndex % 4 === 2 || clickIndex % 4 === 3)\n ) {\n clickIndex = 0;\n }\n }\n\n if (clickIndex % 4 === 0) {\n if (\n currentClasses.includes('menu-default') &&\n currentClasses.includes('menu-sub-hidden')\n ) {\n nextClasses = 'menu-default menu-sub-hidden';\n } else if (currentClasses.includes('menu-default')) {\n nextClasses = 'menu-default';\n } else if (currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-sub-hidden';\n } else if (currentClasses.includes('menu-hidden')) {\n nextClasses = 'menu-hidden';\n }\n clickIndex = 0;\n } else if (clickIndex % 4 === 1) {\n if (\n currentClasses.includes('menu-default') &&\n currentClasses.includes('menu-sub-hidden')\n ) {\n nextClasses = 'menu-default menu-sub-hidden main-hidden sub-hidden';\n } else if (currentClasses.includes('menu-default')) {\n nextClasses = 'menu-default sub-hidden';\n } else if (currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-sub-hidden main-hidden sub-hidden';\n } else if (currentClasses.includes('menu-hidden')) {\n nextClasses = 'menu-hidden main-show-temporary';\n }\n } else if (clickIndex % 4 === 2) {\n if (\n currentClasses.includes('menu-default') &&\n currentClasses.includes('menu-sub-hidden')\n ) {\n nextClasses = 'menu-default menu-sub-hidden sub-hidden';\n } else if (currentClasses.includes('menu-default')) {\n nextClasses = 'menu-default main-hidden sub-hidden';\n } else if (currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-sub-hidden sub-hidden';\n } else if (currentClasses.includes('menu-hidden')) {\n nextClasses = 'menu-hidden main-show-temporary sub-show-temporary';\n }\n } else if (clickIndex % 4 === 3) {\n if (\n currentClasses.includes('menu-default') &&\n currentClasses.includes('menu-sub-hidden')\n ) {\n nextClasses = 'menu-default menu-sub-hidden sub-show-temporary';\n } else if (currentClasses.includes('menu-default')) {\n nextClasses = 'menu-default sub-hidden';\n } else if (currentClasses.includes('menu-sub-hidden')) {\n nextClasses = 'menu-sub-hidden sub-show-temporary';\n } else if (currentClasses.includes('menu-hidden')) {\n nextClasses = 'menu-hidden main-show-temporary';\n }\n }\n if (currentClasses.includes('menu-mobile')) {\n nextClasses += ' menu-mobile';\n }\n return {\n type: MENU_SET_CLASSNAMES,\n payload: { containerClassnames: nextClasses, menuClickCount: clickIndex },\n };\n};\n","import { CHANGE_LOCALE } from '../../actionsTypes';\n\nexport const changeLocale = (locale) => {\n localStorage.setItem('currentLanguage', locale);\n return {\n type: CHANGE_LOCALE,\n payload: locale,\n };\n};\n","/* eslint-disable import/no-cycle */\r\n/* SETTINGS */\r\nexport const CHANGE_LOCALE = 'CHANGE_LOCALE';\r\n\r\n/* AUTH */\r\nexport const LOGIN_USER = 'LOGIN_USER';\r\nexport const LOGIN_USER_SUCCESS = 'LOGIN_USER_SUCCESS';\r\nexport const LOGIN_USER_ERROR = 'LOGIN_USER_ERROR';\r\nexport const REGISTER_USER = 'REGISTER_USER';\r\nexport const REGISTER_USER_SUCCESS = 'REGISTER_USER_SUCCESS';\r\nexport const REGISTER_USER_ERROR = 'REGISTER_USER_ERROR';\r\nexport const LOGOUT_USER = 'LOGOUT_USER';\r\nexport const FORGOT_PASSWORD = 'FORGOT_PASSWORD';\r\nexport const FORGOT_PASSWORD_SUCCESS = 'FORGOT_PASSWORD_SUCCESS';\r\nexport const FORGOT_PASSWORD_ERROR = 'FORGOT_PASSWORD_ERROR';\r\nexport const RESET_PASSWORD = 'RESET_PASSWORD';\r\nexport const RESET_PASSWORD_SUCCESS = 'RESET_PASSWORD_SUCCESS';\r\nexport const RESET_PASSWORD_ERROR = 'RESET_PASSWORD_ERROR';\r\n\r\n/* CHAT APP */\r\nexport const CHAT_GET_CONTACTS = 'CHAT_GET_CONTACTS';\r\nexport const CHAT_GET_CONTACTS_SUCCESS = 'CHAT_GET_CONTACTS_SUCCESS';\r\nexport const CHAT_GET_CONTACTS_ERROR = 'CHAT_GET_CONTACTS_ERROR';\r\nexport const CHAT_GET_CONVERSATIONS = 'CHAT_GET_CONVERSATIONS';\r\nexport const CHAT_GET_CONVERSATIONS_SUCCESS = 'CHAT_GET_CONVERSATIONS_SUCCESS';\r\nexport const CHAT_GET_CONVERSATIONS_ERROR = 'CHAT_GET_CONVERSATIONS_ERROR';\r\nexport const CHAT_ADD_MESSAGE_TO_CONVERSATION =\r\n 'CHAT_ADD_MESSAGE_TO_CONVERSATION';\r\nexport const CHAT_CREATE_CONVERSATION = 'CHAT_CREATE_CONVERSATION';\r\nexport const CHAT_SEARCH_CONTACT = 'CHAT_SEARCH_CONTACT';\r\nexport const CHAT_CHANGE_CONVERSATION = 'CHAT_CHANGE_CONVERSATION';\r\n\r\n\r\n/* MENU */\r\nexport const MENU_SET_CLASSNAMES = 'MENU_SET_CLASSNAMES';\r\nexport const MENU_CONTAINER_ADD_CLASSNAME = 'MENU_CONTAINER_ADD_CLASSNAME';\r\nexport const MENU_CLICK_MOBILE_MENU = 'MENU_CLICK_MOBILE_MENU';\r\nexport const MENU_CHANGE_DEFAULT_CLASSES = 'MENU_CHANGE_DEFAULT_CLASSES';\r\nexport const MENU_CHANGE_HAS_SUB_ITEM_STATUS =\r\n 'MENU_CHANGE_HAS_SUB_ITEM_STATUS';\r\n\r\nexport * from './actions/menu';\r\nexport * from './actions/settings';\r\n\r\n\r\n//BUSSINESS ROUNDS\r\n\r\nexport const LOCK_UI = \"LOCK_UI\"\r\nexport const UNLOCK_UI = \"UNLOCK_UI\"\r\nexport const UPDATE_CALENDAR = \"UPDATE_CALENDAR\"\r\nexport const UPDATE_COUNTERPARTS = 'UPDATE_COUNTERPARTS'\r\nexport const UPDATE_CONFIGURATION = 'UPDATE_CONFIGURATION'\r\nexport const UPDATE_FILTERS = 'UPDATE_FILTERS'\r\n// export const BLOCK_CALENDAR = 'BLOCK_CALENDAR'\r\n// export const UNBLOCK_CALENDAR = 'UNBLOCK_CALENDAR'"],"sourceRoot":""}