{"version":3,"sources":["assets/gear-icon.svg","constants/UniversalConstants.js","store/PublicPages/action-types.js","assets/simunation-logo.png","constants/Cookies.js","components/helpers/MessagesComponent.js","components/helpers/LanguageSelector.js","assets/abogados-logo.png","assets/creambow-logo.png","assets/pop-out-button.svg","constants/FetchApi.js","components/helpers/LogoutButton.js","components/header/HeaderButtons.js","components/header/HeaderComponent.js","services/FetchService.js","store/PublicPages/actions.js","store/Medica/action-types.js","translations/resources.js","assets/pl-logo.png","components/titles/mainTitle/MainTitleComponent.js","components/studentJoinTeam/StudentJoinTeamComponent.module.css","components/helpers/LoadingComponent.js","assets/youtube-icon-grey.png","services/NavigationService.js","components/helpers/DropDownComponent.js","assets/calendar-icon.png","components/medicaStandingsPublic/index.js","components/medicaStandingsPublic/StandingsComponent.js","assets/profileIcon.png","assets/recommended.svg","assets/simunation-logo-transparent.png","assets/android.png","assets/ios.png","components/standings/index.js","components/standings/StandingsComponent.js","components/standings/ShareSimulationStandingsModal.js","assets/youtube-icon-red.png","assets/background-one.png","assets/background-two.png","assets/background-mobile-one.png","assets/background-mobile-two.png","services/MedicaService.js","store/Medica/actions.js","components/utilities/LanguageUtilities.js","components/helpers/BackButton.js","components/helpers/HelpHoverComponent.js","components/helpers/DefaultButton.js","services/SentryReportService.js","assets/extentionsImages sync /^/.//.*/.svg$","assets/extentionsImages/docx.svg","assets/extentionsImages/img.svg","assets/extentionsImages/pdf.svg","assets/extentionsImages/ppt.svg","assets/extentionsImages/xlsx.svg","constants/ConfigAuth0.js","services/AuthService.js","utilities/storeStatusDictionary.js","utilities/discountCodeUtils.js","store/CrisisBuySimulation/action-types.js","store/CrisisBuySimulation/reducer.js","store/CrisisBuySimulation/actions.js","store/CrisisBuySimulation/index.js","store/CrisisJoinSimulation/action-types.js","store/CrisisJoinSimulation/reducer.js","store/CrisisJoinSimulation/actions.js","store/CrisisJoinSimulation/index.js","store/CrisisSimulationDetails/action-types.js","store/CrisisSimulationDetails/reducer.js","store/CrisisSimulationDetails/actions.js","store/CrisisSimulationDetails/index.js","store/Medica/reducer.js","store/Medica/index.js","store/MedicaQuestionnaire/reducer.js","services/MedicaQuestionnaireService.js","store/MedicaQuestionnaire/actions.js","store/MedicaQuestionnaire/action-types.js","store/MedicaQuestionnaire/index.js","store/Profile/action-types.js","store/Profile/reducer.js","services/ProfileService.js","store/Profile/actions.js","store/Profile/index.js","store/Scenario/action-types.js","store/Scenario/reducer.js","services/ScenarioInformationService.js","store/Scenario/actions.js","store/Scenario/index.js","store/Simulations/action-types.js","store/Simulations/reducer.js","services/SimulationsService.js","store/Simulations/actions.js","store/Simulations/index.js","store/Simunation/action-types.js","store/Simunation/reducer.js","services/SimunationService.js","store/Simunation/actions.js","store/Simunation/index.js","store/SimunationQuestionnaire/action-types.js","store/SimunationQuestionnaire/reducer.js","services/SimunationQuestionnaireService.js","store/SimunationQuestionnaire/actions.js","store/SimunationQuestionnaire/index.js","store/SupplyChainBuySimulation/action-types.js","store/SupplyChainBuySimulation/reducer.js","store/SupplyChainBuySimulation/actions.js","store/SupplyChainBuySimulation/index.js","store/SupplyChainJoinSimulation/action-types.js","store/SupplyChainJoinSimulation/reducer.js","store/SupplyChainJoinSimulation/actions.js","store/SupplyChainJoinSimulation/index.js","store/SupplyChainSimulationDetails/action-types.js","store/SupplyChainSimulationDetails/reducer.js","store/SupplyChainSimulationDetails/actions.js","store/SupplyChainSimulationDetails/index.js","store/Tutorials/action-types.js","store/Tutorials/reducer.js","services/TutorialsService.js","store/Tutorials/actions.js","store/Tutorials/index.js","store/User/reducer.js","store/User/index.js","store/PublicPages/reducer.js","store/PublicPages/index.js","store/AbogadosBuySimulation/action-types.js","store/AbogadosBuySimulation/reducer.js","store/AbogadosBuySimulation/actions.js","store/AbogadosBuySimulation/index.js","store/AbogadosSimulationDetails/action-types.js","store/AbogadosSimulationDetails/reducer.js","store/AbogadosSimulationDetails/actions.js","store/AbogadosSimulationDetails/index.js","store/CreambowBuySimulation/action-types.js","store/CreambowBuySimulation/reducer.js","store/CreambowBuySimulation/actions.js","store/CreambowBuySimulation/index.js","store/CreambowSimulationDetails/action-types.js","store/CreambowSimulationDetails/reducer.js","store/CreambowSimulationDetails/actions.js","store/CreambowSimulationDetails/index.js","store/StripePayment/action-types.js","store/StripePayment/reducer.js","store/StripePayment/actions.js","store/StripePayment/index.js","store/reducers.js","store/configureStore.js","translations/i18n.js","components/authComponents/CallBackComponent.js","components/modals/ConfirmationModal.js","components/modals/StudentInstructionsModal.js","components/authComponents/InstructionsComponent.js","components/authComponents/CheckAuth.js","components/authComponents/LogoutComponent.js","components/helpers/NavigationButton.js","components/catalogue/Products.js","components/catalogue/CatalogueComponent.js","components/catalogue/index.js","components/helpers/InputComponent.js","components/abogadosBuyQuestionnaire/buyQuestionnaireForm.js","components/abogadosBuyQuestionnaire/index.js","components/abogadosDetail/ActionButtons.js","components/abogadosDetail/SimulationTitle.js","components/abogadosDetail/AbogadosDetailComponent.js","components/modals/ErrorModal.js","components/modals/CrisisShareModal.js","components/modals/AbogadosAdvanceSimulationModal.js","components/utilities/ForioSimulationUtilities.js","components/abogadosDetail/index.js","components/abogadosRegisteredStudents/RegisteredStudentsComponent.js","components/abogadosRegisteredStudents/index.js","components/abogadosStandings/index.js","components/helpers/InputSliderComponent.js","components/helpers/InputToggleComponent.js","constants/ColorPalette.js","components/utilities/DashBoardUtilities.js","components/utilities/ScenarioInformationUtilities.js","components/createNewScenario/NewScenarioFormItems.js","components/createNewScenario/CreateNewScenarioComponent.js","components/modals/CreateNewScenarioModal.js","components/createNewScenario/index.js","components/crisisBuyQuestionnaire/buyQuestionnaireForm.js","components/crisisBuyQuestionnaire/index.js","components/modals/GraphModal.js","components/crisisDashboards/utilities.js","components/crisisDashboards/VisChart.js","components/crisisDashboards/DashBoardContainer.js","components/crisisDashboards/CurrentDayRefreshSection.js","components/crisisDashboards/DashBoardSection.js","components/crisisDashboards/TeamListMobile.js","components/crisisDashboards/TeamsHandlers.js","components/crisisDashboards/TeamsListAside.js","components/dashBoards/TeamsHandlers.js","components/crisisDashboards/TeamsListModal.js","components/crisisDashboards/DashBoardsComponent.js","components/crisisDashboards/index.js","components/crisisDetail/ActionButtons.js","components/crisisDetail/SimulationTitle.js","components/crisisDetail/CrisisDetailComponent.js","components/modals/CrisisAdvanceSimulationModal.js","constants/CrisisConstants.js","components/utilities/CrisisSimulationUtilities.js","components/utilities/DateTimeUtilities.js","components/helpers/DateTimeSelector.js","components/helpers/CalendarComponent.js","components/crisisDetail/ModifySimulationModal.js","components/modals/DocumentsModal.js","components/crisisDetail/index.js","components/modals/SuccessModal.js","components/modals/PaymentVerificationModal.js","components/crisisJoinSimulation/index.js","components/crisisJoinSimulationPreamble/index.js","components/crisisRegisteredStudents/RegisteredStudentsComponent.js","components/crisisRegisteredStudents/index.js","components/crisisStandings/index.js","components/titles/leftTitle/LeftTitleComponent.js","components/crisisRunAgain/NextRunFormComponent.js","components/modals/RedirectModal.js","components/crisisAdvancedOptions/AdvancedOptions.js","components/crisisRunAgain/index.js","components/crisisBadLink/index.js","components/modals/TeamsListModal.js","components/dashBoards/TeamsListAside.js","components/dashBoards/VisChart.js","components/dashBoards/DashBoardContainer.js","components/dashBoards/CurrentDayRefreshSection.js","components/dashBoards/DashBoardSection.js","components/dashBoards/DataSourceNavigator.js","components/dashBoards/TeamListMobile.js","components/dashBoards/DashBoardsComponent.js","components/dashBoards/index.js","components/home/HomeComponent.js","components/helpers/VersionComponent.js","components/home/WelcomeModal.js","components/home/index.js","components/medicaBadLink/index.js","components/medicaBuyQuestionnaire/MedicaBuyQuestionnaireComponent.js","components/medicaBuyQuestionnaire/index.js","components/actionButtonComponent/ActionButtons.js","components/actionButtonComponent/MobileActionButtons.js","components/medicaDetail/SimulationTitle.js","components/medicaDetail/MedicaDetailComponent.js","components/modals/ShareModal.js","components/modals/ModifyModal.js","components/modals/AdvanceSimulationModal.js","components/medicaDetail/index.js","components/medicaDetail/actionButtonBuilder.js","components/medicaDetail/actionButtonConstants.js","components/utilities/MobileBrowserChecker.js","services/ChatWidgetPositionService.js","components/activationForio/ActivationCodeModal.js","components/activationForio/PaymentValidationComponent.js","components/activationAbogados/activationAbogados.js","components/activationAbogados/index.js","components/paymentManagerStripe/CheckoutForm.js","components/paymentManagerStripe/PaymentManagerStripe.js","components/paymentManagerStripe/index.js","components/payment/AmountsComponent.js","components/payment/DiscountCodeModal.js","components/payment/PaymentComponent.js","components/payment/index.js","components/paymentMedica/PaymentMedica.js","components/paymentMedica/index.js","components/paymentCrisis/PaymentCrisis.js","components/paymentCrisis/index.js","components/paymentSimunation/PaymentSimunation.js","components/paymentSimunation/index.js","components/paymentSupplyChain/PaymentSupplyChain.js","components/paymentSupplyChain/index.js","components/profile/ProfileDetailComponent.js","components/modals/RequestFeatureModal.js","components/profile/index.js","components/purchasedAbogados/createAbogadosSimulationForm.js","components/purchasedAbogados/index.js","components/purchasedCrisis/createCrisisSimulationForm.js","components/purchasedCrisis/index.js","components/purchasedMedica/AdvancedOptionsComponent.js","components/purchasedMedica/PurchasedMedicaComponent.js","components/medicaAdvancedOptions/AdvancedOptions.js","components/medicaAdvancedOptions/CustomTableHeader.js","components/medicaAdvancedOptions/ScenarioInitialValuesSection.js","components/medicaAdvancedOptions/ScenarioGraphSection.js","components/medicaAdvancedOptions/ScenarioPlayerValuesSection.js","components/medicaAdvancedOptions/ScenarioComparison.js","components/medicaAdvancedOptions/index.js","components/purchasedMedica/AddVariationInformationModal.js","components/purchasedMedica/index.js","components/purchasedSimunation/PurchasedSimunationComponent.js","components/purchasedSimunation/index.js","components/pushNotifications/PushNotificationsComponent.js","components/pushNotifications/SuggestionAccordion.js","components/pushNotifications/index.js","components/registeredStudents/RegisteredStudentsComponent.js","components/registeredStudents/index.js","components/runAgain/RunAgainComponent.js","components/runAgain/InformativeParagraph.js","components/runAgain/index.js","components/scenarioManager/ScenarioManagerComponent.js","components/modals/DeleteProfessorScenarioModal.js","components/scenarioManager/index.js","components/simulationCreated/DownloadLinksComponent.js","components/simulationCreated/index.js","components/simunationBuyQuestionnaire/SimunationBuyQuestionnaireComponent.js","components/simunationBuyQuestionnaire/index.js","components/simunationDetail/SimulationTitle.js","components/simunationDetail/SimunationDetailComponent.js","components/modals/AdvanceSimunationModal.js","components/simunationDetail/index.js","components/simunationDetail/actionButtonBuilder.js","components/simunationDetail/actionButtonConstants.js","components/simunationRegisteredStudents/RegisteredStudentsComponent.js","components/simunationRegisteredStudents/index.js","components/simunationStandings/StandingsComponent.js","components/simunationStandings/index.js","components/studentCreateTeam/StudentCreateTeamComponent.js","components/studentCreateTeam/index.js","components/studentJoinTeam/StudentJoinTeamComponent.js","components/modals/JoinedTeamModal.js","components/studentJoinTeam/index.js","components/helpers/FAQContent.js","components/studentsLogin/StudentsLoginComponent.js","components/studentsLogin/index.js","components/supplychainBuyQuestionnaire/buyQuestionnaireForm.js","components/supplychainBuyQuestionnaire/index.js","components/modals/SupplyChainShareModal.js","constants/SupplyChainConstants.js","components/utilities/SupplyChainSimulationUtilities.js","components/purchasedSupplyChain/createSupplyChainSimulationForm.js","components/supplyChainAdvancedOptions/AdvancedOptions.js","components/purchasedSupplyChain/index.js","components/tutorials/VideoIframe.js","components/tutorials/TutorialFrame.js","components/tutorials/TutorialsComponent.js","components/modals/VideoViewerModal.js","components/tutorials/index.js","components/supplyChainJoinSimulationPreamble/index.js","components/supplyChainJoinSimulation/index.js","components/supplyChainDashboards/CurrentDayRefreshSection.js","components/supplyChainDashboards/utilities.js","components/supplyChainDashboards/VisChart.js","components/supplyChainDashboards/DashBoardContainer.js","components/supplyChainDashboards/DashBoardSectionRow.js","components/supplyChainDashboards/DashBoardSection.js","components/supplyChainDashboards/TeamListMobile.js","components/supplyChainDashboards/TeamsHandlers.js","components/supplyChainDashboards/TeamsListAside.js","components/supplyChainDashboards/DataSourceNavigator.js","components/supplyChainDashboards/TeamsListModal.js","components/supplyChainDashboards/DashBoardsComponent.js","components/supplyChainDashboards/index.js","components/supplyChainDetail/ActionButtons.js","components/supplyChainDetail/SimulationTitle.js","components/supplyChainDetail/SupplyChainDetailComponent.js","components/modals/SupplyChainAdvanceSimulationModal.js","components/supplyChainDetail/ModifySimulationModal.js","components/supplyChainDetail/index.js","components/supplyChainRegisteredStudents/RegisteredStudentsComponent.js","components/supplyChainRegisteredStudents/index.js","components/supplyChainStandings/index.js","components/supplyChainRunAgain/NextRunFormComponent.js","components/supplyChainRunAgain/index.js","components/creambowBuyQuestionnaire/buyQuestionnaireForm.js","components/creambowBuyQuestionnaire/index.js","components/activationCreambow/activationCreambow.js","components/activationCreambow/index.js","components/purchasedCreambow/createCreambowSimulationForm.js","components/purchasedCreambow/index.js","components/creambowDetail/ActionButtons.js","components/creambowDetail/SimulationTitle.js","components/creambowDetail/CreambowDetailComponent.js","components/modals/CreambowAdvanceSimulationModal.js","components/creambowDetail/index.js","components/creambowRegisteredStudents/RegisteredStudentsComponent.js","components/creambowRegisteredStudents/index.js","components/creambowStandings/index.js","components/medicaDecisionHistory/DecisionHistory.js","components/medicaDecisionHistory/MedicaDecisionHistory.js","components/medicaDecisionHistory/index.js","constants/FAQ_DATA_STRUCTURE.js","components/processimLabsFaq/ProductOption.js","components/processimLabsFaq/FaqTag.js","components/processimLabsFaq/ProcessimLabsFaq.js","components/processimLabsFaq/index.js","components/Navigation.js","components/cookiesDisable/index.js","components/utilities/BackgroundUtilities.js","App.js","registerServiceWorker.js","index.js","constants/Routes.js","constants/History.js","assets/medica-logo-transparent.png","store/User/actions.js","constants/LocalStorage.js","assets/crisis-logo.png","assets/pay-icon.png","services/CookieService.js","services/StorageService.js","store/User/action-types.js","components/utilities/DataValidationUtilities.js","assets/supplychain-logo.png"],"names":["module","exports","START_DATE","END_DATE","HOUR_MERIDIEM","key","value","HOUR_NUMBERS","n","push","MEDICA_NAME","SIMUNATION_NAME","SIX_HOURS_MILLISECONDS","SEVEN_DAYS_MILLISECONDS","ROLES","PROFESSOR","STUDENT","SIMULATION_DEFAULT_TEMPLATE","ENV_DEVELOPMENT","DEV_LOCATION","START_SIMULATION","ADVANCE_SIMULATION","FINISH_SIMULATION","AWAITING_INITIALIZATION","INITIALIZED","RUNNING","FINISHED","LANGUAGES_LIST","PRODUCTS","MEDICA","SIMUNATION","CRISIS","CRISIS_NAME","ABOGADOS_NAME","CREAM_BOW_NAME","SUPPLY_CHAIN_NAME","APP_VERSION_NUMBER","APP_DISTRIBUTION_NUMBER","GET_MEDICA_STANDINGS","GET_MEDICA_STANDINGS_SUCCESSFUL","GET_MEDICA_STANDINGS_FAILED","AUTH_INFORMATION","withTranslation","props","translate","t","className","warning","positive","messageType","info","negative","Header","message","LanguageSelector","Component","state","language","onSelectLanguage","setUserLanguage","this","languageSelected","processLanguageAndSave","componentDidUpdate","prevProps","setState","render","languageText","options","text","onSelection","compose","connect","user","userProfile","dispatch","lang","window","location","origin","MEDICA_BASE_API_URL","process","SIMUNATION_BASE_API_URL","CRISIS_BASE_API_URL","SUPPLY_CHAIN_BASE_API_URL","FORIO_APPS_BASE_API_URL","GET_SIMULATIONS_MEDICA","GET_SIMULATIONS_SIMUNATION","GET_SIMULATIONS_CRISIS","GET_SIMULATIONS_SUPPLY_CHAIN","GET_SIMULATION_DETAIL_MEDICA","GET_SIMULATION_DETAIL_SIMUNATION","GET_REGISTERED_STUDENTS_MEDICA","GET_REGISTERED_STUDENTS_SIMUNATION","GET_STANDINGS_MEDICA","GET_STANDINGS_MEDICA_PUBLIC","GET_STANDINGS_SIMUNATION","GET_TEAMS_MEDICA","GET_SIMULATION_LINK","GET_SIMUNATION_VALIDATE_DISCOUNT_CODE","GET_PROFESSOR_SCENARIOS","GET_STUDENT_PREVIOUS_PAYMENT","GET_MEDICA_DOCUMENTS","GET_MEDICA_PERFORMANCE_DATA","GET_VIDEO_TUTORIALS","GET_MEDICA_DECISIONS_DATA","GET_MEDICA_SCENARIO_INFORMATION","GET_MEDICA_CHANGE_REQUEST_HISTORY","GET_MEDICA_SUGGESTIONS","CRISIS_GET_SIMULATION_DETAILS","CRISIS_GET_REGISTERED_STUDENTS","CRISIS_GET_NUMBER_REGISTERED_STUDENTS","CRISIS_GET_PERFORMANCE_DATA","CRISIS_GET_STANDINGS","CRISIS_GET_STUDENT_HAS_PAID","CRISIS_GET_PROFESSOR_SCENARIOS","SUPPLY_CHAIN_GET_SIMULATION_DETAILS","SUPPLY_CHAIN_GET_REGISTERED_STUDENTS","SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS","SUPPLY_CHAIN_GET_STANDINGS","SUPPLY_CHAIN_GET_PERFORMANCE_DATA","SUPPLY_CHAIN_GET_DECISIONS_DATA","SUPPLY_CHAIN_GET_STUDENT_HAS_PAID","SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS","GET_SIMULATIONS_FORIO","FORIO_GET_SIMULATION_DETAILS","FORIO_GET_STANDINGS","FORIO_GET_REGISTERED_STUDENTS","CRISIS_GET_DOCUMENTATION","SUPPLY_CHAIN_GET_DOCUMENTATION","MODIFY_SIMULATION_DATES_MEDICA","SEND_PUSH_NOTIFICATION_MEDICA","MEDICA_CREATE_SIMULATION","MEDICA_CREATE_SIMULATION_MANAGED_PROGRESS","MEDICA_RUN_AGAIN_SIMULATION","CREATE_TEAM","JOIN_TEAM","ADVANCE_SIMULATION_MEDICA","ADVANCE_SIMULATION_SIMUNATION","SIMUNATION_CREATE_SIMULATION","MEDICA_VALIDATE_DISCOUNT_CODE","REQUEST_FEATURE","PROFESSOR_CREATE_NEW_SCENARIO","CRISIS_CREATE_SIMULATION","CRISIS_CREATE_AUTOMATIC_SIMULATION","CRISIS_JOIN_SIMULATION","CRISIS_ADVANCE_SIMULATION","CRISIS_START_SIMULATION","CRISIS_VALIDATE_DISCOUNT_CODE","CRISIS_CREATE_NEXT_RUN","CRISIS_MODIFY_SIMULATION","SUPPLY_CHAIN_CREATE_SIMULATION","SUPPLY_CHAIN_CREATE_AUTOMATIC_SIMULATION","SUPPLY_CHAIN_JOIN_SIMULATION","SUPPLY_CHAIN_VALIDATE_DISCOUNT_CODE","SUPPLY_CHAIN_ADVANCE_SIMULATION","SUPPLY_CHAIN_START_SIMULATION","SUPPLY_CHAIN_CREATE_NEXT_RUN","SUPPLY_CHAIN_MODIFY_SIMULATION","FORIO_VALIDATE_DISCOUNT_CODE","FORIO_CREATE_SIMULATION","FORIO_ADVANCE_SIMULATION","MEDICA_GET_PAYMENT_INTENT","CRISIS_GET_PAYMENT_INTENT","SUPPLY_CHAIN_GET_PAYMENT_INTENT","SIMUNATION_GET_PAYMENT_INTENT","MEDICA_CONFIRM_PAYMENT","CRISIS_CONFIRM_PAYMENT","SUPPLY_CHAIN_CONFIRM_PAYMENT","SIMUNATION_CONFIRM_PAYMENT","PROFESSOR_DELETE_SCENARIO","LogoutButton","Button","basic","onClick","logout","label","headerButtons","name","pathname","HeaderButtons","headerButtonsPack","headerButtonsPackDropdown","Dropdown","trigger","color","icon","faBars","size","Menu","direction","map","button","index","buttonName","toUpperCase","Item","to","exact","activeStyle","withRouter","showLogoutButton","showBackButton","dropdown","showCompleteMenu","showLanguageSelector","history","logoutButton","dropDownButton","backButton","languageSelector","BackButton","href","Image","src","processimLogo","getConfig","a","getCurrentSession","session","token","tokenInfo","idToken","axiosConfig","headers","Authorization","login","sendGetRequest","apiRoute","reference","config","encodeURI","axios","method","url","responseType","sendGetWithParamsRequest","params","get","sendUnauthorizedGetRequest","sendPostRequest","postData","data","JSON","stringify","sendDeleteRequest","encodedReference","axiosLogErrorsFromBackend","response","status","outcome","translationExists","includes","shouldLogErrorInSentry","apiURL","URL","simulationName","getSimulationNameFromAPI","reportMessage","sentryTag","sentryExtras","requestData","parse","Object","keys","title","toString","responseData","sentryReportEvent","axiosLogExceptionsFromBackend","error","errorMessage","logErrorInSentry","getStandings","type","actions","FETCHAPI","then","standings","standingsTable","payload","length","catch","GET_MEDICA_DETAILS","GET_MEDICA_DETAILS_SUCCESSFUL","GET_MEDICA_DETAILS_FAILED","GET_MEDICA_REGISTERED_STUDENTS","GET_MEDICA_REGISTERED_STUDENTS_SUCCESSFUL","GET_MEDICA_REGISTERED_STUDENTS_FAILED","GET_MEDICA_TEAMS","GET_MEDICA_TEAMS_SUCCESSFUL","GET_MEDICA_TEAMS_FAILED","CREATE_MEDICA_TEAM","CREATE_MEDICA_TEAM_SUCCESSFUL","CREATE_MEDICA_TEAM_FAILED","JOIN_MEDICA_TEAM","JOIN_MEDICA_TEAM_SUCCESSFUL","JOIN_MEDICA_TEAM_FAILED","ADVANCE_MEDICA_SIMULATION","ADVANCE_MEDICA_SIMULATION_SUCCESSFUL","ADVANCE_MEDICA_SIMULATION_FAILED","GET_PROFESSOR_SCENARIOS_SUCCESSFUL","GET_PROFESSOR_SCENARIOS_FAILED","CHECK_STUDENT_PAYMENT","CHECK_STUDENT_PAYMENT_SUCCESSFUL","CHECK_STUDENT_PAYMENT_FAILED","RESET_ADVANCE_SIMULATION_PROPS","SEND_PUSH_NOTIFICATION","SEND_PUSH_NOTIFICATION_SUCCESSFUL","SEND_PUSH_NOTIFICATION_FAILED","GET_MEDICA_PERFORMANCE_DATA_SUCCESSFUL","GET_MEDICA_PERFORMANCE_DATA_FAILED","RESET_PUSH_NOTIFICATION_STATE","RUN_AGAIN","RUN_AGAIN_SUCCESSFUL","RUN_AGAIN_FAILED","GET_MEDICA_DOCUMENTATION","GET_MEDICA_DOCUMENTATION_SUCCESSFUL","GET_MEDICA_DOCUMENTATION_FAILED","GET_MEDICA_DECISIONS_DATA_SUCCESSFUL","GET_MEDICA_DECISIONS_DATA_FAILED","RESET_CREATE_TEAM_STORE","RESET_RUN_AGAIN_STORE","MEDICA_GET_DECISION_HISTORY_START","MEDICA_GET_DECISION_HISTORY_FAIL","MEDICA_GET_DECISION_HISTORY_SUCCESS","GET_MEDICA_SUGGESTIONS_SUCCESSFUL","GET_MEDICA_SUGGESTIONS_FAILED","resources","en","AbogadosAdvanceSimulationModal","AdvanceSimulationController_SimulationNotFound","AdvanceSimulationController_SimulationFinished","AdvanceSimulationController_FailedAdvanceTeam","AdvanceSimulationController_WrongSimulation","AdvanceSimulationController_SimulationHasNoTeams","AdvanceSimulationController_CouldNotSaveChanges","AdvanceMessage","StartSimulationMessage","outdatedTeams","AdvanceSimulationModal","advanceSimulation","startSimulation","start","finishSimulation","advance","remainingDays","currentDays","daysToAdvance","futureDays","warningFinishMessage","currentYear","yearsToAdvance","resultingYear","simulationFinishedSuccessfully","days","errorAdvancingSimulation","advanceAgain","errorSimultaneousChangeRequest","BackendSimulation_SimulationLimitError","AuthComponents","loadingProfile","loadingPage","CatalogueScreen","catalogue","getCreative","select","back","medicaFlavor","medicaTopics","simunationFlavor","simunationTopics","bindzFlavor","bindzTopics","supplyGrainFlavor","supplyGrainTopics","abogadosFlavor","abogadosTopics","creambowFlavor","creambowTopics","topic","CreambowAdvanceSimulationModal","CreateNewScenarioScreen","createNewScenario","hasVariance","description","seed","initialCash","stationOneMachineCapacity","stationTwoMachineCapacity","stationThreeMachineCapacity","inventoryLeadTime","batchSetupTime","customLineWipLimit","customDemandInitialValue","customDemandFinalValue","customDemandStabilizationDay","customDemand","customDemandHasVariance","required","stationOneMachineHasVariance","stationTwoMachineHasVariance","stationThreeMachineHasVariance","areYouSureDoYouWantCreateNewScenario","newScenarioConfirmation","create","scenarioHasBeenCreatedSuccessfully","errorCreatingNewScenario","scenarioNameAlreadyExist","units","orders","UnitInterpolation","UnitInterpolation_plural","DayInterpolation","DayInterpolation_plural","OrderInterpolation","OrderInterpolation_plural","DollarsInterpolation","UnitPerDayInterpolation","UnitPerDayInterpolation_plural","randomize","seedMustBeBetweenZeroAndTwentyThousand","goToList","initialCashHelp","stationOneMachineCapacityHelp","stationTwoMachineCapacityHelp","stationThreeMachineCapacityHelp","inventoryLeadTimeHelp","batchSetupTimeHelp","customLineWipLimitHelp","customDemandInitialValueHelp","customDemandFinalValueHelp","customDemandStabilizationDayHelp","seedValueHelp","CrisisAdvancedOptions","selectYourScenario","defaultScenarioTitle","defaultScenarioDescription","CrisisAdvanceSimulationModal","StartSimulationController_SimulationEmpty","StartSimulationController_MoreTeamThanStudents","StartSimulationController_InsufficientTeams","StartSimulationController_FailedStartTeam","StartSimulationController_SimulationNotFound","AdvanceSimulationController_SimulatinNotFound","AdvanceSimulationController_FailedAdvanceSimulation","NumberOfTeams","NumberOfWeeks","AdvanceSimulationController_SimulationDoesntBelong","AdvanceSimulationController_StartSimulation","StudentsAreJoined","RegisteredStudents","RecommendedNumberOfTeams","RoundedUp","MissingSpotsMessage","CrisisBadLink","badLink","tryFollowing","CrisisBuySimulation","creatingSimulation","numberOfStudentsError","numberOfStudents","whoPaysSelected","pleaseChooseOne","whoPaysHelp","verifyFieldsCorrectlyFilled","CreateSimulationController_MissingPayment","SimulationNameInUse","SimulationNameTooLong","CrisisDetailScreen","createNextRun","GetSimulationDetailsController_CantUseAPI","GetSimulationDetailsController_SimulatinNotFound","CrisisJoinSimulation","joinSimulationSuccessful","JoinSimulationController_SimulationNotFound","failedJoinSimulation","JoinSimulationController_AlreadyJoined","JoinSimulationController_MissingPaymentSummary","JoinSimulationController_ExcededLicenses","CrisisCommon","OneStationUnknownPeers","OneStationKnownPeers","AllStationsKnownPeers","GameModeHelp","OneStationUnknownPeersHelp","OneStationKnownPeersHelp","AllStationsKnownPeersHelp","SimulationPerformanceCatalogue_SupplyAndAssemblyRawMaterials","SimulationPerformanceCatalogue_SupplyAndAssemblyProductA","SimulationPerformanceCatalogue_SupplyAndAssemblyProductB","SimulationPerformanceCatalogue_ProductionOneProductA","SimulationPerformanceCatalogue_ProductionOneProductB","SimulationPerformanceCatalogue_ProductionTwoProductA","SimulationPerformanceCatalogue_ProductionTwoProductB","SimulationPerformanceCatalogue_RetailerOnlineProductA","SimulationPerformanceCatalogue_RetailerOnlineProductB","SimulationPerformanceCatalogue_RetailerOfflineProductA","SimulationPerformanceCatalogue_RetailerOfflineProductB","SimulationPerformanceCatalogue_Finance","SimulationPerformanceCatalogue_MaterialX","SimulationPerformanceCatalogue_MaterialY","SimulationPerformanceCatalogue_Production","SimulationPerformanceCatalogue_FinishedGoods","SimulationPerformanceCatalogue_IncomingInventory","SimulationPerformanceCatalogue_StationOne","SimulationPerformanceCatalogue_ManualStation","SimulationPerformanceCatalogue_LaborUtilization","SimulationPerformanceCatalogue_Deliveries","SimulationPerformanceCatalogue_Demand","SimulationPerformanceCatalogue_SupplyAndAssembly","SimulationPerformanceCatalogue_ProductionOne","SimulationPerformanceCatalogue_ProductionTwo","SimulationPerformanceCatalogue_Retailer","CrisisDashboards","GetSimulationPerformanceController_SimulationShouldStarted","CrisisModifyModal","ModifySimulation","cancel","accept","success","CrisisPurchased","GameModeTitle","SimulationStartInTheFuture","SimulationMinDurationError","SimulationMaxDurationError","AdvancedOptions","CrisisShareModal","ShareJoinLInk","CrisisStandings","standingsTitle","Team","Total","SupplyAndAssembly","ProductionOne","ProductionTwo","Retail","EmptyStandings","All","Email","Role","Position","CrisisRunAgain","CreateNextRunController_SimulationNotFound","CreateNextRunController_ErrorInitializingSimulation","scrambleTeamMembers","createNextRunSuccess","Success","CookiesDisabledScreen","cookiesNotEnabled","Common","simulation","endDate","previous","pushNotification","team","showing","of","continue","notValidNumber","yes","no","next","startDate","students","Students","institution","welcome","Professor","Student","today","close","home","confirmation","currentDay","dashboards","finish","notice","teams","documents","setLanguage","Initialized","AwaitingInitialization","Running","Finished","profile","Spanish","English","tryAgain","unknownBackendErrorMessage","unknownBackendExceptionMessage","scenarioManager","DiscountCodeModal","discountCode","yourCode","validate","discountSuccess","errorValidatingDiscountCode","ValidateDiscountCodeController_DiscountCodeNotFound","ValidateDiscountCodeController_DiscountCodeExpired","ValidateDiscountCodeController_ExceededNumberOfLicenses","ValidateDiscountCodeController_DiscountCodeDoesntBelong","ValidateDiscountCodeController_EmptySimulationId","ValidateDiscountCodeController_PaymentSummaryNotFound","DashBoardsScreen","loadingTeamData","teamAlreadySelected","errorGettingPerformance","errorGettingDecisions","manageTeams","refresh","chooseATeam","selectAll","unselectAll","noTeamsSelected","loadingGraphMarkers","General","Finances","Inventory","Cash","Debt","Deliveries","Rookies","Experts","Units","Workers","day","topThree","topFive","topTen","graphs","performance","decisions","noTeamsToDisplayInformation","loadingDecisionsData","noTeamSelectedToDisplayInformation","DecisionHistory","DecisionHistoryTitle","loadingDecisionHistory","userName","timeSubmitted","simulationDay","noChangesYet","DownloadApp","youAreGoodToGo","pleaseDownloadOurMobileApp","sameCredentials","userPlayedBefore","orClickHereToDownloadItToYourWindowsComputer","FAQ","Login","Payment","Gameplay","HomeScreen","addNewSimulation","simulations","errorFetchingSimulations","loadingSimulations","professorManaged","pending","noSimulationList","at","welcomeToProcessimlabs","WelcomeModalGoToVideos","WelcomeModalTitle","WelcomeModalBody1","WelcomeModalBody2","WelcomeModalNeverShowAgain","JoinTeamModal","ok","retry","MedicaDetailScreen","simulationDetails","initializationPeriod","studentInteractionPeriod","endingPeriod","activationCode","startTime","templateName","modify","registeredStudents","shareSimulation","runAgain","decisionHistory","errorFetchDetails","virtualDaysPerHour","medicaVirtualDaysHelp","virtualDays","medicaStatusHelp","medicaInitializationPeriodHelp","medicaStudentInteractionPeriodHelp","medicaEndOfSimulationPeriodHelp","downloadAll","runAgainModalTitle","runAgainModalMessage","documentationCurrentlyBeingCreated","errorFetchingDocuments","MedicaBuyQuestionnaire","MedicaBadLink","tryingToCreateTeam","tryingToJoinTeam","lastResort","ModifyModal","modifyDatesSuccess","equalDatesSimulationError","errorPosting","simulationMustStartLeastOneHourInFuture","payment","wouldYouLikeToCompleteThePurchase","purchaseComplete","creditCardInformation","cardHolderName","yourPaymentHasBeenSuccessfullyRegistered","paymentSuccess","purchasedCompleted","pay","removeDiscountCode","writeValidCode","checkingStudentPayment","studentAlreadyPayedMessage","checkPreviousPaymentError","simulationAlreadyFinished","errorPostingPayment","expired_card","fraudulent","generic_decline","card_declined","insufficient_funds","transaction_not_allowed","incorrect_cvc","invalid_cvc","card_not_supported","duplicate_transaction","do_not_honor","do_not_try_again","currency_not_supported","PaymentCrisis","ProcessPaymentController_OnlyProfessorCreateSimulation","ProcessPaymentController_MissingPaymentSummary","ProcessPaymentController_PaymentFailed","StudentHasPaidController_SimulationNotFound","StudentHasPaidController_PaymentSummaryNotFound","StudentHasPaidController_StudentHasNotPaid","PaymentSupplyChain","PaymentForio","activationCodeHelpText","PaymentVerificationModal","defaultErrorMessage","ProfileScreen","profileDetails","fullName","email","requestFeature","describeYourFeature","send","featureDescription","pleaseDescribeYourFeature","featureRequestedSuccessfully","errorRequestingFeature","product","Purchased","numbersStudents","course","knowsDateSelected","notValidNumberMin","notEnoughStudentErrorSimunation","setDates","notSimulationName","simulationAddedSuccessfully","errorCreatingSimulation","professorAdvanceSimulation","simunationWhoAdvancesSimulation","simunationOptionProfessor","simunationOptionStudents","medicaProfessorAdvanceSimulationHelp","simunationProfessorAdvanceSimulationHelp","daysToPlay","daysToPlayHelp","errorGettingScenarios","advancedOptionsButtonText","secondRunWarningMessage","secondRunParagraphPartOne","secondRunParagraphPartTwo","invalidSimulationNameCharacterError","PushNotificationsScreen","sendNotification","allTeams","selectTeam","pushNotificationSuccess","errorPushing","noTeamsList","errorFetchingTeams","pushNotificationHelpMessage","suggestionsSubTitle1","suggestionsSubTitle2","RegisteredStudentsScreen","registeredStudentsOf","loadingRegisteredStudents","notStudentList","errorFetchStudents","MedicaAdvancedOptions","advancedOptionsTitle","advancedOptionsDescription1","advancedOptionsDescription2","recommended","easyDifficultyTemplateName","easyDifficultyTemplateDescription","mediumDifficultyTemplate","mediumDifficultyTemplateDescription","hardDifficultyTemplate","hardDifficultyTemplateDescription","customOnlyDifficultyTemplate","customOnlyTemplateDescription","loadingScenarioComparison","noScenarioInformation","errorFetchScenarioInformation","scenarioComparison","ATemplate","BTemplate","CTemplate","DTemplate","StandardLine","CustomLine","InventoryUnitsPerOrder","StandardCostPerOrder","StandardStationOneCapacity","HoldingCost","RookieSalary","ExpertSalary","ExpertProductivity","StandardMarketPrice","PriceVsDemand","CustomDemand","WIPLimit","CustomStationTwoCapacity","CustomStationThreeCapacity","CustomProductPrice","InventoryOrderCost","InventoryUnitCost","InventoryDeliveryTime","Distribution","LogNormalDistribution","TriangularDistribution","Days","Days_plural","Units_plural","Parts","Parts_plural","DollarsPerDay","UnitsPerDay","UnitsPerDay_plural","Orders","Orders_plural","lowerBound","upperBound","mode","mean","stdDev","graphBelow","playerConfigurable","StandardOrderQuantity","StandardOrderFrequency","StationOneCapacityAllocation","StandardProductPrice","StationTwoAllocation","InventoryReorderPoint","InventoryReorderQuantity","WorkForce","NumberOfEmployees","Employees","Employees_plural","unitsIfPriceRatio","addVariationInformationModalTitle","addVariationInformationModalSubtitle","addVariationInformationModalBody1","addVariationInformationModalBody2","addVariationInformationModalBody3","neverShowThisAgain","addVariation","addSuggestions","addSuggestionsExplanation","addSuggestionsInformationModalSubtitle","addSuggestionsInformationModalBody","newFeaturesInRegularAndEasyScenarioSubtitle","newFeaturesInRegularAndEasyScenarioBody","ScenarioManagerScreen","loadingProfessorScenarioList","noProfessorScenarioList","errorFetchProfessorScenarioList","scenarioManagerIntro","scenarioName","createdAt","lastUsedDate","timesUsed","edit","delete","createScenario","deleteScenario","scenarioDeletedSuccesfully","errorDeletingScenario","errorFetchProfessorDeleteScenario","areYouSureYouWantDeleteScenario","ShareModal","share","shareStudent","copy","copySuccess","shareActivationCode","SimunationDetailScreen","userAdvanceConfirmation","advancingSimulation","simulationAdvancedSuccessfully","simunationCurrentDayHelp","StandingsScreen","cash","teamCode","loadingStandings","notStandingsList","errorFetchStandings","score","gdp","year","standingsHelpMessage","standingsSimunationHelpMessage","totalTeams","shareModalInformation","shareModalCopy","shareModalCopySuccess","firstName","lastName","joinTeamLink","StudentCreateTeam","createTeamDescription","teamName","createTeam","creatingTeam","createTeamSuccess","play","sureYouWantCreateTeam","welcomeToProcessimLabs","youAreAboutToCreateATeam","wereYouAssignedAsATeamLeader","errorCreatingTeam","invalidTeamNameCharacterError","StudentInstructionsModal","teamLeaderInstructions","studentInstructions","leaderIntroduction","noLeaderIntroduction","afterDismissingThisPopUpYouWillNeedCreateOrLogin","thenEnterTheNameOfYourChoiseForYourTeam","youWillBePresentedWithAUniqueLink","downloadOurMobileAppAndLogIn","enjoyManagingYourVirtualCompany","waitForYourTeamLeadToShareTheTeamsUniqueLinkWithYou","clickOnTheLinkToSetUpYourAccountOnOurWebsite","youCanNowDownloadTheMobileAppOnYourSmartphone","StudentJoinTeamScreen","joiningTeam","joinTeamSuccess","errorJoiningTeam","sureYouWantJoinTeam","noTeamMessageError","noJoinTeamTeamCode","StudentsLoginScreen","itSeemsYouAreNotInTheRightPlace","areYouTryingToJoinSimulationQuestion","areYouTryingToJoinSimulationResponse","haveYouAlreadyJoinedATeamQuestion","haveYouAlreadyJoinedATeamResponse","doYouWantToChangeTeamNameQuestion","doYouWantToChangeTeamNameResponse","areYouTryingToCreateSecondTeamQuestion","areYouTryingToCreateSecondTeamResponse","doYouWantToSwitchTeamsQuestion","doYouWantToSwitchTeamsResponse","canIBePartOfTwoTeamsQuestion","canIBePartOfTwoTeamsResponse","canIAccessTheAppBeforeSimulationStartsQuestion","canIAccessTheAppBeforeSimulationStartsResponse","howDoIKnowSimulationStartsEndsQuestion","howDoIKnowSimulationStartsEndsResponse","contactUs","supportEmail","howDoISwitchFromAPreviousSimulationQuestion","howDoISwitchFromAPreviousSimulationResponse","SupplyChainAdvancedOptions","SupplyChainAdvanceSimulationModal","SupplyChainBuySimulation","SupplyChainCommon","Decision_RiceSupplier","Decision_RiceReorderQuantity","Decision_RiceReorderPoint","Decision_AgaveReorderQuantity","Decision_RicelyOrder","Decision_KrispsOrder","Decision_RicelyOrderSize","Decision_KrispsOrderSize","Decision_MachinesRicely","Decision_MachinesKrisps","Decision_RicelyEmployees","Decision_KrispsEmployees","Decision_RicelyShiftLength","Decision_KrispsShiftLength","Decision_LMRicelyReorderQuantity","Decision_LMRicelyReorderPoint","Decision_LMKrispsOrderSize","Decision_AuroraTransportMethod","Decision_AuroraDispatcher","Decision_BarcelonaOrderUpToSize","Decision_BarcelonaWarehouseState","Decision_BarcelonaSupplier","Decision_BarcelonaTransportMethod","Decision_BarcelonaDispatcher","Decision_GenevaOrderUpToSize","Decision_GenevaWarehouseState","Decision_GenevaSupplier","Decision_GenevaTransportMethod","Decision_GenevaDispatcher","Decision_AlamedaWarehouseState","Decision_AlamedaSupplier","Decision_AlamedaProductPrice","Decision_AlamedaTransportMethod","Decision_BelmontOrderSize","Decision_BelmontWarehouseState","Decision_BelmontSupplier","Decision_BelmontProductPrice","Decision_BelmontTransportMethod","Decision_GrantOrderSize","Decision_GrantWarehouseState","Decision_GrantSupplier","Decision_GrantProductPrice","Decision_GrantTransportMethod","Decision_WarehouseBuilt","Decision_WarehouseClosed","Decision_SupplierA","Decision_SupplierB","Decision_TransportMethodTruck","Decision_TransportMethodDrone","Decision_TransportMethodLand","Decision_TransportMethodAir","Production","NetworkA","NetworkB","LastMile","GameMode","LastMileHelp","SimulationPerformanceCatalogue_AccumulatedOrders","SimulationPerformanceCatalogue_SupplyAndAssemblyInventory","SimulationPerformanceCatalogue_ProductionProductA","SimulationPerformanceCatalogue_ManualLaborQueue","SimulationPerformanceCatalogue_ProductionProductB","SimulationPerformanceCatalogue_NetworkA","SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseAlphaFromLocalSupplier","SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseBetaFromLocalSupplier","SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseGammaFromLocalSupplier","SimulationPerformanceCatalogue_WarehouseAProductA","SimulationPerformanceCatalogue_WarehouseBProductA","SimulationPerformanceCatalogue_WarehouseCProductA","SimulationPerformanceCatalogue_RegionAProductADemand","SimulationPerformanceCatalogue_RegionBProductADemand","SimulationPerformanceCatalogue_RegionCProductADemand","SimulationPerformanceCatalogue_RegionAProductABacklog","SimulationPerformanceCatalogue_RegionBProductABacklog","SimulationPerformanceCatalogue_RegionCProductABacklog","SimulationPerformanceCatalogue_NetworkB","SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseAlphaFromLocalSupplier","SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseBetaFromLocalSupplier","SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseGammaFromLocalSupplier","SimulationPerformanceCatalogue_WarehouseAProductB","SimulationPerformanceCatalogue_WarehouseBProductB","SimulationPerformanceCatalogue_WarehouseCProductB","SimulationPerformanceCatalogue_RegionAProductBDemand","SimulationPerformanceCatalogue_RegionBProductBDemand","SimulationPerformanceCatalogue_RegionCProductBDemand","SupplyChainDetailScreen","SupplyChainJoinSimulation","SupplyChainModifyModal","SupplyChainPurchased","advancePeriod","TimeBetweenAdvancesOneHour","TimeBetweenAdvancesTwoHours","SupplyChainRunAgain","SupplyChainShareModal","SupplyChainStandings","RunAgainScreen","addedSuccessfully","TutorialsScreen","loadingTutorials","noVideosList","Simunation","MedicaScientific","errorFetchVideos","es","notValid_number","homeVideoDescription","dontShowVideoAgain","role","advancingSimulacion","standigsSimunationHelpMessage","MainTitleComponent","reducedSubTitle","helpHoverComponent","hasIcon","alt","hasHelp","helpMessage","iconSize","subtitle","LoadingComponent","image","centered","fullSize","as","textAlign","Subheader","getUrlSearchParam","decodeURIComponent","search","slice","preventBack","pushState","document","addEventListener","backPressEvent","allowBack","removeEventListener","DropDownComponent","selectError","placeholder","labelAlignment","id","selection","descriptionLabel","dropDownContainerClasses","labelClassNames","Field","disabled","scrolling","onChange","e","event","onSelectOption","faChevronDown","MedicaStandingsPublic","constructor","super","simulationNameBase64","Buffer","from","requestedSimulationName","componentDidMount","standingsStore","loader","messageComponent","standingsComponent","loading","simulationStandings","publicPages","medicaPublicStandings","StandingsComponent","handleSort","clickedColumn","column","standingsList","reverse","_","sortBy","numberWithCommas","Math","round","toLocaleString","arrowsIcon","faSort","ref","topTable","unstackable","sortable","selectable","Row","HeaderCell","sorted","Body","standing","Cell","singleLine","openShareModal","handleShareModal","medica","openShareModalHandler","bind","encodedSimulationName","sharedLink","replace","ROUTES","shareModal","open","onClose","getStandingsError","expandedRows","renderItemCaret","rowId","fixedWidth","faChevronRight","handleRowClick","currentExpandedRows","newExpandedRows","filter","concat","renderItem","item","clickCallback","caretCell","tableRowOnClick","teammates","collapsing","itemRows","toFixed","teamLink","colSpan","renderItemDetails","columns","Column","action","ShareSimulationStandingsModal","simulationLink","handleCopyToClipboard","fakeInput","createElement","body","appendChild","setAttribute","execCommand","removeChild","shareLabel","titleModal","Content","Actions","content","getMedicaDetail","simulationId","getMedicaLink","configureMedicaDetails","medicaDetailResponse","medicaLinkResponse","medicaLink","medicaDetailsFormatter","activationLink","details","languagePrefix","getLanguagePrefix","calculateSimulationHours","moment","diff","startTimeFormatted","locale","format","endDateFormatted","getRegisteredStudents","getTeams","joinTeam","simulationExecution","prepareCustomResponse","emptyError","customResponse","prepareAdvanceResponse","prepareJoinTeamResponse","checkForPreviousPayment","sendPushNotification","pushData","getPerformanceData","getDecisionsData","getSimulationDetails","all","medicaService","spread","getProfessorScenarios","teamResponse","code","checkIfStudentHasPaid","studentPaid","resetAdvanceSimulationProps","resetPushNotificationState","runAgainSimulation","getDocuments","documentsData","medicaGetDecisionHistory","API_PATHS","medicaGetSuggestions","preferredLanguage","actionTypes","resetCreateTeamStore","resetRunAgainStore","i18n","changeLanguage","setStorage","LOCALSTORAGE","some","namespace","exists","generateTranslationKey","ns","goBack","HelpHoverComponent","faQuestionCircle","style","DefaultButton","tag","extras","Sentry","scope","setTag","forEach","extra","setExtra","sentryReportException","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","resolve","CONFIG","domain","clientID","redirectUri","authSDK","auth0","WebAuth","authorize","cookie","getCookie","COOKIES","getAuthOptions","jwtDecode","require","decodedToken","timeNow","floor","Date","getTime","tokenExpirationDate","exp","renewSession","getStorage","loginSuccessful","Promise","reject","parseHash","err","authResult","accessToken","authInformation","extractUserDataAndProfileFromToken","deleteCookie","removeStorage","returnTo","checkSession","timeout","hash","userTokenDataAndProfile","idTokenPayload","setCookie","redirectionHandler","crisisJoinSimulationCode","supplyChainJoinSimulationCode","CONSTANT","studentRedirection","securityCode","charAt","discountCodeStatuses","initial","activated","activatedPaid","confirmPaymentStatuses","generateDiscountCodeStatus","discountedPrice","Number","isInteger","CREATE_SIMULATION_REQUEST_FAIL","CONFIRM_PAYMENT_FAIL","initialState","buyForm","isInstitution","createSimulation","simulationCreated","shortLink","paymentSummaryId","discountCodeMessage","studentHasAlreadyPaid","studentHasPaid","confirmPayment","restoreCrisisPurchaseInformationFromStorage","cachedQuestionnaireInformation","commitCrisisBuyFormData","updateTransactionCrisisData","transactionData","crisisCreateSimulation","createSimulationRequest","crisisCreateAutomaticSimulation","createAutomaticSimulationRequest","crisisValidateDiscountCode","discountCodeResponse","validDiscountCode","mergeDataToStorage","crisisResetDiscountCode","crisisConfirmPayment","paymentIntentId","reducer","crisisJoinSimulation","joinSimulationRequest","CRISIS_START_SIMULATION_FAIL","simulationDetailsRequestStatus","detailsValid","professorManagedProgress","professorPaid","iterationNumber","advanceSimulationRequestStatus","startSimulationRequestStatus","simulationPerformanceDataRequestStatus","currentStep","performanceData","teamMembers","numberOfRegisteredStudentsStatus","createNextRunStatus","professorScenarios","scenarios","modifySimulationStatus","documentationStatus","documentation","crisisGetSimulationDetails","crisisAdvanceSimulation","advanceSimulationRequest","crisisStartSimulation","startSimulationRequest","crisisGetPerformanceData","flowsInformation","crisisGetSimulationStandings","teamPositionStandings","studentsInformation","crisisGetRegisteredStudents","crisisGetNumberOfRegisteredStudents","crisisCreateNextRun","request","crisisGetProfessorScenarios","scenarioPayload","x","crisisModifySimulation","crisisGetDocumentation","currentSimulationDay","endTime","hasANextIteration","gameMode","simulationShareLink","simulationRegisteredStudents","simulationTeams","simulationDocumentation","loadingDocumentation","getDocumentationError","getDocumentationSuccess","decisionHistoryStatus","suggestionsStatus","suggestions","simulationPerformanceData","simulationDecisionsData","joinTeamSuccessfully","advanceSimulationSuccessfully","pushNotificationSuccessfully","runAgainSuccessfully","getTeamsError","getRegisteredStudentsError","getSimulationDetailsError","pushNotificationError","createTeamError","joinTeamError","runAgainError","advanceSimulationError","loadingTeams","loadingDetails","loadingPushNotification","loadingPerformanceData","loadingProfessorScenarios","loadingRunAgain","getProfessorScenariosError","customScenarios","checkingIfStudentHasPaid","checkStudentHasPaidError","simulationPerformanceDataError","simulationDecisionsDataError","startOf","add","paymentId","purchasedSimulationName","totalSimulatedDays","prepareSimulationData","medicaQuestionnaire","offset","getTimezoneOffset","trim","maxNumberOfStudents","timeOffset","transactionId","UserLanguage","prepareSimulationDataWithManagedProgress","totalStudentInteractionDays","handleStorage","purchasedData","validateDiscountCode","checkStorageInformation","cacheMedicaQuestionnaireData","updateSimulationInformation","updateTransactionData","medicaQuestionnaireService","medicaConfirmPayment","medicaResetDiscountCode","resetMedicaQuestionnaireStore","loadingRequestFeature","requestFeatureSuccess","requestFeatureMessage","featureData","profileService","resetRequestFeatureStore","loadingScenarioInformation","scenarioData","scenarioInformationErrorMessage","professorScenarioList","professorScenarioListErrorMessage","loadingCreateNewScenario","createNewScenarioSuccess","createNewScenarioMessage","loadingProfessorDeleteScenario","professorDeleteScenarioSuccess","professorDeleteScenarioMessage","formatProfessorScenarioList","scenario","dateFormatter","date","professorCreateNewScenario","professorDeleteScenario","scenarioId","getScenarioInformation","scenarioInformation","getProfessorScenarioList","scenarioInformationService","professorDelete","resetProfessorCreateNewScenarioStore","resetProfesorDeleteScenarioStore","getUserSimulations","medicaResponse","simunationResponse","crisisResponse","supplyChainResponse","forioResponse","showVideoToBuy","medicaSimulations","simunationSimulations","crisisSimulations","supplyChainSimulations","abogadosSimulations","creambowSimulations","listToArray","simulationType","joinSimulationData","supplyChainsSimulations","simulationsList","formatSimulationDatesAndSetId","simunationFormatSimulationDatesAndSetId","sort","b","simulationWithFormattedDate","console","log","list","newListArr","getSimulations","getMedicaSimulationTask","getSimunationSimulationsTask","getCrisisSimulationsTask","getSupplyChainList","getForioList","allSettled","medicaSettledTask","simunationSettledTask","crisisSettledTask","supplyChainSettledTask","forioSettledTask","simulationService","advanceSimunationSuccess","loadingAdvanceSimunation","advanceSimunationErrorMessage","getSimunationDetail","advanceSimunationAction","prepareCustomListResponse","areStandings","formatStandingsItems","newPayload","formatToPercentage","number","newStanding","spi","assign","simunationService","resetAdvancedSimunationData","advanceSimunation","loadingCreateSimulation","simulationCreatedData","createdSimulationMessage","createSimulationErrorMessage","simunationQuestionnaire","Name","NumberOfStudents","ProfessorManagedProgress","validateSimunationDiscountCode","checkStorageSimunationInformation","cacheSimunationQuestionnaireData","updateTransactionSimunationData","resetSimunationQuestionnaireStore","checkStorageSimunationCreated","storageData","storagePayload","simunationQuestionnaireService","simunationConfirmPayment","simunationResetDiscountCode","restoreSupplyChainPurchaseInformationFromStorage","commitSupplyChainBuyFormData","updateTransactionSupplyChainData","supplychainCreateSimulation","supplychainCreateAutomaticSimulation","supplyChainValidateDiscountCode","supplyChainResetDiscountCode","supplyChainConfirmPayment","supplyChainJoinSimulation","SUPPLY_CHAIN_START_SIMULATION_FAIL","simulationDecisionsDataRequestStatus","decisionsData","supplyChainGetSimulationDetails","supplyChainGetRegisteredStudents","supplyChainAdvanceSimulation","supplyChainStartSimulation","supplyChainGetNumberOfRegisteredStudents","supplyChainGetSimulationStandings","supplyChainGetPerformanceData","supplyChainGetDecisionsData","sections","supplyChainCreateNextRun","supplyChainGetProfessorScenarios","supplyChainModifySimulation","supplyChainModifyReset","supplyChainGetDocumentation","pace","tutorials","tutorialsErrorMessage","getTutorials","tutorialsData","section","discountActivated","loadingDiscountCode","paidWithDiscountCode","commitAbogadosBuyFormData","abogadosValidateDiscountCode","abogadosResetDiscountCode","restoreAbogadosPurchaseInformationFromStorage","abogadosCreateSimulation","GET_SIMULATION_DETAILS_FAIL","ADVANCE_SIMULATION_FAIL","GET_REGISTERED_STUDENTS_FAIL","failedTeams","abogadosGetSimulationDetails","abogadosAdvanceSimulation","abogadosGetRegisteredStudents","abogadosGetSimulationStandings","standingsInformation","commitCreambowBuyFormData","creambowValidateDiscountCode","creambowResetDiscountCode","restoreCreambowPurchaseInformationFromStorage","creambowCreateSimulation","creambowGetSimulationDetails","creambowAdvanceSimulation","creambowGetRegisteredStudents","creambowGetSimulationStandings","paymentIntent","clientSecret","getPaymentIntent","apiUrl","combineReducers","router","connectRouter","UserReducer","SimulationsReducer","MedicaReducer","MedicaQuestionnaireReducer","simunation","simunationReducer","SimunationQuestionnaireReducer","TutorialsReducer","ProfileReducer","ScenarioReducer","crisisBuySimulation","crisisSimulationDetails","CrisisSimulationDetails","supplychainBuySimulation","supplyChainSimulationDetails","SupplyChainSimulationDetails","PublicPages","abogadosBuySimulation","AbogadosBuySimulation","abogadosSimulationDetails","AbogadosSimulationDetails","creambowBuySimulation","CreambowBuySimulation","creambowSimulationDetails","CreambowSimulationDetails","stripePayment","StripePayment","sentryStateTransform","sentryActionTransform","use","initReactI18next","init","lng","keySeparator","nsSeparator","interpolation","escapeValue","CallBackComponent","checkLoginSuccessful","COOKIE","test","ConfirmationModal","Modal","openConfirmModal","headerContent","confirmationBody","confirmButton","onConfirm","cancelButton","onCancel","leaderInstructions","noLeaderInstructions","openStudentInstructionsModal","isTeamLeader","handleStudentInstructionsModal","checkIsLoggedIn","modalTitle","introduction","instructionsList","continueButton","actionButtons","List","instruction","InstructionsComponent","openTeamLeaderConfirmation","confirmationModal","studentInstructionsModal","CheckAuth","getPathParams","searchParams","split","handleUserWithoutLink","removeOldStoredData","element","equalPosition","indexOf","storageName","substring","formattedElement","decodedElement","handleConfirmationModal","isLoggedIn","LogoutComponent","NavigationButton","route","Products","RenderProductListing","comingSoonBadge","Card","fluid","backgroundColor","logo","comingSoon","flavorText","Grid","mobile","tablet","computer","largeScreen","topics","topicsList","verticalAlign","floated","stackable","products","numberOfRows","ceil","rows","row","rowStartItemIndex","lastItemInRowOffset","rowItems","RenderGridContent","productsList","CATALOGUE_LIST","MedicaLogo","SimunationLogo","CrisisLogo","SupplyChainLogo","AbogadosLogo","CreambowLogo","CatalogueComponent","catalogueList","transactionStorages","storage","Container","HeaderComponent","InputComponent","handleChange","onError","multiLine","min","counter","maxLength","boldContent","handleInputChange","target","inputSection","errorMessageSpan","counterSpan","inputClassNames","TextArea","Input","counterClassNames","Form","BuyQuestionnaireForm","form","valid","rules","minValue","formValid","handleFormChange","updatedForm","updatedFormElement","validateFormErrors","isValid","handleContinue","dataForm","every","storeData","dataEntry","optionsWhoPaying","inputComponent","messagesComponent","MessagesComponent","HOC","AbogadosBuyQuestionnaire","payIcon","buildActionButtons","abogadosButtons","buttonIndex","findIndex","hide","advanceButtonIndex","startButtonIndex","ActionButtons","requestedSimulation","component","actionsDictionary","handleAdvanceModal","detailsLoaded","isMobile","SimulationTitle","AbogadosDetailComponent","detailBoxStyles","listDetails","abogadosLogo","detail","ErrorModal","openErrorModal","handleErrorModal","retryText","hasRetry","handleRetry","customTitle","actionButton","CrisisShareSimulationModal","setRedirection","shareLink","handleSecondaryButton","Message","visible","titleSecondaryButton","advanceParams","handleClose","abogadosResetRequestsState","successAction","oncloseFunction","statusComponent","buttonContent","customSuccessMessage","titleText","align","createAbogadosTeamLink","createCreambowTeamLink","AbogadosDetail","getSimulationId","openAdvanceModal","isWarning","messageSuccess","simulationSetUpError","errorTitle","shareSimulationModal","errorModal","advanceModal","header","abogadosSimulationDetailsRequestStatus","errorMessageTranslation","only","toLowerCase","RegisteredStudentsComponent","registeredStudentList","teamsAssigned","Table","student","studentFirstName","studentLastName","AbogadosRegisteredStudents","requestedSimulationId","registeredStudentsStatus","registeredStudentsRequestStatus","abogadosStandings","PureComponent","newColumn","newDirection","standingsTableData","teamStandings","teamMembersList","find","position","memoizedStandingsTableData","memoizeOne","standingsState","bodyContent","sortedStandingsData","orderBy","standingsTableRows","InputSliderComponent","maxValue","minValueLabel","maxValueLabel","valueLabel","onChangeInputRange","numberAddition","numberSubtraction","toggleLabel","toggleId","onChangeInputToggle","step","onChangeToggle","checked","toggle","Checkbox","labelContainerClassNames","faMinus","faPlus","max","InputToggleComponent","toggleComponent","COLOR_PALETTE","GRAPHS_GROUP","prepareGraphSections","selectedGraphs","graphData","sectionName","changeRequestHistories","statuses","prepareGraphData","graph","graphName","teamsData","displayText","changeRequestHistoricDataPerTeam","prepareTeamsHistoricData","teamData","historicData","dashboadsDataGenerator","selectedTeams","graphsData","createSectionsList","createStatusesList","graphsGroup","graphGroup","createLineValues","instances","lineValues","lineLabels","newTeamsData","i","formatHistoricData","simplifiedHistoricData","simplifyDecisionsData","simplifyHistoricData","historicDataSimplified","iconName","figure","decisionData","simplifiedDecisionData","currentData","dataPoint","y","simplifiedData","shouldSimplifyData","tolerance","toleranceCalculator","simplify","pointsQuantity","getColorPointIcon","abbreviateNumber","isNegative","formattedNumber","prefixIndex","log10","suffix","scaled","pow","fixedScaled","getModalPlotOptions","plot","filteredPlot","responsive","animation","duration","display","legend","labels","fontColor","defaultFontFamily","boxWidth","usePointStyle","fullWidth","scales","yAxes","ticks","callback","values","YAxisNeedsTranslation","Conversions","beginAtZero","scaleLabel","labelString","xAxes","tooltips","enabled","custom","tooltipModel","tooltipElement","getElementById","innerHTML","opacity","showTooltip","hideTooltip","hideTooltipTimer","setTimeout","onmouseover","onmousedown","onmouseleave","classList","remove","yAlign","titleLines","innerHtml","dataPoints","point","datasetIndex","teamIcon","teamColor","yLabel","iconStyle","querySelector","bottomAjustment","_chart","canvas","getBoundingClientRect","left","pageXOffset","caretX","top","pageYOffset","caretY","fontFamily","fontSize","bodyFontSize","fontStyle","_bodyFontStyle","padding","maxHeight","width","overflow","border","zIndex","getDataPoints","points","statusAlwaysPresent","plotName","getLineWidth","teamsQuantity","isChecked","lineWidth","checkControlStanding","tableNames","CREATE_NEW_SCENARIO_SECTIONS","items","createGraphsSection","allGraphSeries","segmentData","graphSerie","graphUnits","groupByGraph","graphSeries","rawGraphNames","Array","Set","currentGraphSeries","flattenValuesData","templatesData","tableName","templateData","configurations","configuration","configurationName","flat","inflateScenarioValues","flatValuesData","reduce","formattedValues","currentValue","currentSectionIndex","currentConfigurationIndex","getItemOperationData","itemId","splitedId","itemName","getOperationValue","operationValue","NewScenarioFormItems","onChangeInputText","setRamdomValue","Fragment","Divider","horizontal","inputId","inputValue","toggleLabelText","minValueInfo","maxValueInfo","count","showInputError","buttonSectionClasses","descriptionError","seedError","nameError","inputTextError","CreateNewScenarioComponent","rangeChanged","toggleChanged","random","validateCreateNewScenarioForm","handleCreateScenarioModal","formItemsStateKeys","formDataPost","itemKey","validateInputsTextPreFilled","formItemsRefs","refs","formItems","inputsTextPreFilled","nameFilled","validateInputName","descriptionFilled","validateInputDescription","seedBetweenRanges","validateInputSeed","validateScenarioNameExist","scrollTo","offsetTop","initialFormItemsState","stateItem","stateToggleItem","middleValue","createInitialFormItemsState","CreateNewScenarioModal","openCreateNewScenarioModal","flattenItems","acc","val","newScenarioItems","postProfessorCreateNewScenario","goScenarioManagerScreenAndResetStore","closeModalAndResetStore","actionButtonsContent","divided","itemFinded","flatItem","valueData","itemWithUnits","currency","validateProfessorScenarioList","createNewScenarioModal","professorScenarioLisrErrorMessage","onSelectionInstitution","CrisisBuyQuestionnaire","GraphModal","openGraphModal","handleGraphModal","screenHeight","innerHeight","screenWidth","innerWidth","isPhone","hideToolTipAndCloseModal","closeButton","faWindowClose","plotData","datasets","lineObj","pointsAndLabels","line","showLine","fillColor","fill","borderColor","borderWidth","pointRadius","pointHoverRadius","pointBackgroundColor","pointStyle","getModalPlotDatasets","modalSizes","height","closeIcon","VisChart","lineSeries","maxYDomain","minYDomain","selectedTeamNames","linesToShow","currentLine","setLinesToShow","lineYvalues","stroke","strokeWidth","yDomain","margin","tickFormat","v","openPopUpIcon","openButton","CurrentDayRefreshSection","DashBoardSection","shouldComponentUpdate","nextProps","currentDayRefreshSection","dashboadRow","stretched","TeamListMobile","handleTeamsListModal","buttonTitle","TeamsHandlers","teamsList","handleAllChecked","handleTopSelection","topTreeButton","topFiveButton","topTenButton","selectAllContainer","clickHandler","specialSelectionsContainer","TeamsListAside","checkType","standingModified","handleCheckChildElement","modifySelectedTeamsList","controlStanding","newTeamsList","showStandingNumber","showStanding","lastProps","itemsList","htmlFor","TeamsListModal","areAllChecked","areAllUnchecked","openTeamsListModal","DashBoardsComponent","configureDashboardData","sectionsData","structuredData","getGraphSections","getTeamsList","teamA","teamB","createTeamsList","loadingSections","prevState","teamsListAside","dashBoardSection","teamsListModal","graphModal","anyTeamSelected","teamListMobile","Translation","dashBoardsComponent","crisisButtons","nextRunButtonIndex","modifyButtonIndex","navigateTo","searchParam","handleModifyModal","dashboardsAction","openDocumentationModal","CrisisDetailComponent","formatDate","startDateText","endDateText","crisisLogo","inputNumberValue","advanceMethod","crisisResetRequestsState","handleInputNumberValueChanged","parseInt","handleWeeksToAdvanceChanged","valueToSave","requestStatus","advanceButtonMethod","disabledAdvanceButton","isNaN","numberInput","messageToStartSimulation","specialLabel","createCrisisLink","CRISIS_JOIN_SIMULATION_PREAMBLE","crisisGameModeOptions","crisisValidateDates","invalidStartTime","invalidEndTime","dateValidationError","switchTo24HourFormat","hour","formattedHour","switchTo12HourFormat","unifyDateTime","hourFormat","formattedTime","convertHoursToMilliseconds","hours","DateTimeSelector","hourFormats","hourNumbers","timeOptions","isArray","handleCalendar","dateToSet","calendarIcon","Select","settingHour","faClock","CalendarComponent","handleClickOutside","calendar","contains","onDateClick","dateToModify","nextMonth","currentMonth","prevMonth","subtract","setToday","selectedDate","componentWillUnmount","renderHeader","renderDays","renderCells","monthStart","monthEnd","endOf","formattedDate","cloneDay","isSame","node","faChevronLeft","ModifySimulationModal","onFormChanged","validateFormValue","formValidated","updateFormValidation","updatedElement","minLength","minHoursBeforeDate","unifiedDateTime","setHour","statePropertyToModify","segmentedStartTime","setDate","updatedDateValue","updatedDateField","adjustedEndDateValue","adjustedEndDateField","openCalendar","submitModifySimulationRequest","preventDefault","convertedStartTime","convertedEndTime","dateValidation","modifySimulation","modifySuccesful","renderDates","onFocus","renderGameModeDropdown","gameModeOptions","renderCalendar","calendarSelectedDay","renderMessage","hidden","advancedOptions","formOnSubmit","undefined","errorToDisplay","onSubmit","DocumentsModal","selectedLanguage","setDocumentsLanguage","openDocumentsModal","handleDocumentsModal","documentsLanguages","documentsList","fileLinkRender","file","rel","displayName","modalBody","showCreatingDocumentationWarning","isError","CrisisDetail","checkIfSimulationIsCached","getDocumentation","openModifyModal","transaction","op","spanGetSimulationDetail","startChild","modifyModal","crisisSimulationDetailsRequestStatus","documentationModal","SuccessModal","handleSuccessModal","openSuccessModal","retryAction","useTranslation","errorText","validatePayment","attemptToJoinSimulation","closeSuccessModal","showSuccessMessage","redirectToDownload","handleModalOk","URLSearchParams","has","prevConfirmPaymentStatus","confirmPaymentStatus","currentConfirmPaymentStatus","showSuccessModal","successModal","errorMessageModal","CONSTANTS","intentId","CrisisJoinSimulationPreamble","query","entries","param","CHECK_AUTH","CRISIS_STUDENT_PAYMENT","CrisisRegisteredStudents","crisisGetRegisteredStudentsRequestStatus","crisisStandings","allPositionStandings","teamPosition","supplyAndAssemblyStandings","ProductionOneStandings","ProductionTwoStandings","RetailerStandings","cashSupplyAndAssembly","cashProductionOne","cashProductionTwo","cashRetailer","cashGlobal","LeftTitleComponent","NextRunFormComponent","formChanged","advanceSimulationOptions","handleSubmit","formValues","checkWithDatesSelected","calendarComponent","formData","Value","dateSelectors","professorAdvance","setStartHour","setEndHour","teamsStayTheSame","RedirectModal","scenarioLabel","advancedOptionsChanged","scenarioOptions","predefinedScenarios","advancedOptionsBody","radio","segmentedEndTime","formatedHour","segmentedTime","formatDateTime","time","convertedDate","handleAdvancedOptionsComponent","openAdvancedOptions","submitCreateSimulationRequest","formEndTime","onAdvancedOptionsChanged","clone","storedSimulationDetailsId","resetCreateNextRunState","getNextRunSimulationName","currentSimulationName","currentIteration","baseName","nextIteration","nextIterationAffix","numberString","endsWith","getSimulationAffix","detailsLoading","detailErrorMessage","createNextRunLoading","createNextRunErrorMessage","formBody","nextRunSimulationName","gearIcon","messageToDisplay","professorScenariosStatus","advancedOptionsComponent","toLocaleUpperCase","HOCs","Trans","i18nKey","disableTeam","DashBoardContainer","DataSourceNavigator","handleGraphSelector","decisionsDataError","performanceClass","decisionsClass","decisionsDataExist","selectGraphContainer","Popup","on","teamStanding","seriesTheme","userSelectedGraphs","lastDecisionsData","actionComponent","defaultButton","checkIfPerformanceDataIsCached","teamsPerformance","spanCheckIfPerformanceDataIsCached","performanceDataIsCached","spanGetPerformanceData","spanGetStandings","spanGetDecisionsData","teamsDecisions","performanceDataError","showLoadingComponent","showMessageComponent","showNoDashboardContainer","showDashboardComponent","noDashboardContainer","HomeComponent","sortSimulationsByCreationDate","sortedSimulationsList","simulationList","getPagination","chunkedSimulationsArray","simulationsChunk","activePage","totalPages","handlePaginationChange","valuesArr","goToPage","tableBody","tableRow","customStartTime","showPendingForio","showPendingBindzSupply","Pagination","boundaryRange","onPageChange","siblingRange","ellipsisItem","firstItem","lastItem","prevItem","nextItem","Footer","VersionComponent","isDevelop","version","handleModal","Description","Link","openWelcomeModal","getAllSimulations","handleWelcomeModal","neverShowAgain","homeLoadedCheck","reportHomeDidntLoad","span","userRole","userFullName","welcomeModal","mainComponent","addSimulationButton","clearTimeout","ROUTE","WelcomeModal","MedicaBuyQuestionnaireComponent","isInstitutionError","professorAdvanceSimulationError","handleChangeNumberStudents","onSelectionAdvanceSimulation","questionnaire","saveStateAndRoute","optionsAdvanceSimulation","MedicaBuyQuestionnaireScreen","medicaBuyQuestionnaireComponent","MobileActionButtons","templateNames","MedicaDetailComponent","customEndDate","templateScenarioName","templateNameWithTranslation","endOfSimulationPeriod","medicaLogo","ShareSimulationModal","isStudent","isSimunation","startHour","startHourFormat","endHour","endHourFormat","posting","isSuccessResponse","settingStartHour","settingEndHour","endDateMustBeGreaterError","sixHoursError","sevenDaysError","simulationMustStartLeastOneHourInFutureError","timeFormat","formatedStartHour","formatedEndHour","todayString","startDateString","endDateString","newDates","differenceBetweenDates","validateStartDateRealTime","postSimulationDates","simulationRequested","toISOString","errorEmptyInput","actionToAdvance","setRemainingDaysToState","setSimulationStatusToState","daysToRun","maxDaysToRun","studentInteractionToRun","setAdvanceOrFinishSimulationToState","onSelectionDay","idealFutureDays","customDaysToAdvance","daysToSimulate","populateOptions","successMessage","optionsDaysToAdvance","customfutureDays","remainingDaysTemplate","daysToAdvanceItem","registeredStudentsAction","encodeURIComponent","pushNotificationsAction","standingsAction","decisionsHistoryAction","dashBoardsAction","onShowDocumentationClicked","onRunAgainClicked","actionButtonsMapping","simulationIsCached","spanGetDocumentation","documentsModal","mobileActionButtons","advanceSimulationProps","actionButtonsList","currentRun","maxNumberOfRuns","filterActionButtons","isDeviceMobile","check","navigator","userAgent","vendor","opera","substr","chatWidgetBottomPosition","fixChatWidgetPlacement","chatWidget","bottom","ActivationCodeModal","retryActivated","errorInputMessage","resetDiscountCodeStore","handleDiscountModal","retryCode","resetDiscountCode","updateStorage","discountCodeStatus","discountCodeInitialValues","PaymentValidationController","openDiscountCodeModal","successPaymentRoute","discountCodeButton","redirectModal","ActivationAbogados","LOCAL_STORAGE","numberOfLicenses","targetSimulation","abogadosQuestionnaire","restorePurchaseInformationFromStorage","PaymentValidationComponent","CheckoutForm","stripe","useStripe","elements","useElements","useState","setMessage","isLoading","setIsLoading","useEffect","retrievePaymentIntent","return_url","confirmParams","stripePromise","loadStripe","appearance","theme","variables","colorBackground","colorTextPlaceholder","colorText","colorDanger","spacingUnit","borderRadius","outline","PaymentManagerStripe","amount","paymentIntentAPI","successRoute","returnUrl","displayElement","api","AmountsComponent","amountByStudent","paymentData","studentsTranslate","displaySuccessMessage","displayErrorMessage","PaymentComponent","openRedirectModal","loadingCache","studentPayment","validatePreviousStudentPayment","resetChatWidgetPlacement","getAmount","getNumberOfLicenses","productPrice","getDescription","simulatorType","paymentSuccessRoute","errorComponent","currentAmountByStudent","PaymentMedica","getSuccessRoute","getStorageOrDefault","crisisQuestionnaire","PaymentSimunation","supplychainQuestionnaire","ProfileDetailComponent","handleRequestFeatureModal","justifyContent","productOptions","RequestFeatureModal","onSelectProduct","onChangeFeatureDescription","showDescriptionError","closeModalResetStateAndStore","postFeatureRequest","descriprionErrorMessage","openRequestFeatureModal","requestFeatureData","loadingComponent","modalContent","requestFeatureModal","profileImage","CreateAbogadosSimulationForm","simulationNameErrorText","PurchasedAbogados","onModalDismiss","resetAbogadosBuySimulationStoreDefaults","ABOGADOS_SIMULATION_DETAILS","resetCreateSimulationDefaults","navigationButton","CreateCrisisSimulationForm","PurchasedCrisis","unifiedStartTime","unifiedEndTime","unifiedDate","resetCrisisBuySimulationStoreDefaults","CRISIS_SIMULATION_DETAILS","errorToTranslate","linkToDisplay","willDisplayAdvancedOptionsButton","AdvancedOptionsComponent","advancedOptionsClick","PurchasedMedicaComponent","fieldsError","settingSimulationName","checkNameIsValid","simulationNameError","validateFormData","managedProgress","daysToRunError","optionsDaysToRun","daysToRunDropDown","dateStartDateSelector","dateEndDateSelector","concatCustomScenarios","formattedScenarios","formatCustomScenarios","hideSuggestionsToggle","recommendedSign","RecommendedIcon","suggestionsToggle","CustomTableHeader","tableTitle","tableColumnNames","columnName","ScenarioInitialValuesSection","prepareTableSectionData","initialValuesSectionData","flatInitialValuesData","scenarioInitialValuesSection","getValueTranslation","pluralKey","dollarValue","getConfigurationItem","valueTranslation","showGraphBellowText","DistributionType","LowerBound","UpperBound","Mode","Mean","StdDev","getPriceVsDemandConfigurationItem","priceVsDemandItems","ratio","getPriceVsDemandValueTranslation","tableHeaderColumns","configurationItem","ScenarioGraphSection","prepareGraphSectionData","graphSectionData","scenarioGraphSection","showHideLine","targetLineData","lineIndex","match","join","legendData","alignItems","onItemClick","orientation","ScenarioPlayerValuesSection","playerValuesSectionData","flatPlayerValuesData","scenarioPlayerValuesSection","ScenarioComparison","suggestionsText","showSuggestionsInformation","opened","PurchasedMedicaScreen","lookingQuestionnaireCache","createdSimulation","simulationData","creatingSimulationResponse","purchasedMedica","saving","successRedirection","optionId","newAdvancedOptions","setErrorMessage","closeAddVariationModal","showAddVariationInformationModal","showForm","checkStorage","purchasedMedicaComponent","medicaAdvancedOptions","addVariationInformationModal","paymentIntentid","PurchasedSimunationComponent","saveInformation","PurchasedSimunationScreen","verifyPayment","purchasedSimunation","purchasedSimunationComponent","simunationLogo","PushNotificationsComponent","formState","teamOptions","dropdownText","titleErrorMessage","messageErrorMessage","SuggestionAccordion","activeIndex","setActiveIndex","handleClick","titleProps","accordionContent","Accordion","Title","active","Icon","suggestion","selectSuggestion","Segment","suggestionList","styled","sendToAllTeams","initialFormState","pushNotificationForm","oldForm","pushMessage","selectedTeam","getTeamOptions","validateAllFormFields","submitPushNotification","validatedForm","sendingPush","SimulationName","sendAllTeams","SimulationId","allTeamsOption","getSuggestions","messageToShow","messageSuccessful","suggestionsAccordion","refreshForm","pushNotificationWasDelivered","username","registeredStudentsComponent","isInfo","nextRunAffix","2","3","4","5","6","7","8","RunAgainComponent","createNewSimulationName","parentSimulation","nextRun","handleShowCalendar","onCalendarDateClicked","isProfessorManagedProgress","formattedStartHour","formattedEndHour","onSelectionProfessorManagedProgress","managedProgressError","onSetSimulationParameters","optionsProfessorManagedProgress","errorMessageComponent","startDateSelector","endDateSelector","InformativeParagraph","paragraphOne","paragraphTwo","openIntroductionModal","simulationParameters","firstTimeShowIntroductionModal","handleOpenCloseIntroductionModal","parameterName","newSimulationParameters","runAgainComponent","currentSimulation","redirectSimulationModal","introductionModal","ScenarioManagerComponent","deleteProfessorScenarioClick","faTrash","DeleteProfessorScenarioModal","openDeleteProfessorScenarioModal","scenarioSelected","professorDeleteScenarioData","getScenarioList","closeModalResetStoreAndGetProfessorScenarios","createNewScenarioButtonClick","scenarioList","scenarioManagerComponent","deleteProfessorScenarioModal","DownloadLinksComponent","appInformation","windowsLink","links","windows","logoClassName","android","androidDownload","ios","iosDownload","GridColumn","PRODUCT_APPS","medicaLogoTransparent","BINDZ","SUPPLY_GRAIN","supplyChainLogo","SimulationCreatedPage","appToDownload","productApp","logoImageSrc","SimunationBuyQuestionnaireComponent","advanceSimunationError","SimunationBuyQuestionnaireScreen","simunationBuyQuestionnaireComponent","SimunationDetailComponent","mostAdvancedTeamYear","AdvanceSimunationModal","advanceSimunationData","handleAdvanceSimunationModal","closeAndRefreshSimulation","showComponent","loadingAdvance","translatedMessage","controlButtons","openAdvanceSimunationModal","advanceSimunationModal","showDropdown","isMedica","simunationId","SimunationRegisteredStudentsScreen","calculatedScore","SimunationStandingsScreen","StudentCreateTeamComponent","setTeamName","teamNameRequiredError","teamNameRequiredErrorText","handleConfirmModal","timeDifference","sendTeamCreationEmail","closeErrorModal","StudentCreateTeamScreen","studentCreateTeamComponent","StudentJoinTeamComponent","styles","loadingContainer","loadingInformation","JoinedTeamModal","closeJoinTeam","goToDownloadApp","showNoTeamMessage","needRetry","getTeamName","handleRedirection","showErrorModal","cancelJoinAction","joinTeamMessage","teamNameFormatted","panels","FAQContent","changeQuestion","newIndex","downIcon","upIcon","faChevronUp","StudentsLoginComponent","SupplyChainBuyQuestionnaire","SupplyChainShareSimulationModal","minimumNumberOfHoursToRunByPace","1","maximumNumberOfHoursToRunByPace","createSupplyChainLink","SUPPLY_CHAIN_JOIN_SIMULATION_PREAMBLE","supplyChainGameModeOptions","supplyChainTimeBetweenAdvancesOptions","supplyChainValidateDates","minimumHoursToRun","SUPPLYCHAIN_CONSTANTS","maximumHoursToRun","CreateSupplyChainSimulationForm","onChangeTimeBetweenAdvances","matchEndAndStartTimeHourDivisibility","onChangeStartTime","timeBetweenAdvances","dividerInt","startTimeDivisibility","newEndHour","professorManagedProgressOptions","timeBetweenAdvancesOptions","endTimeOptions","automaticSimulationEntries","PurchasedSupplyChain","resetSupplyChainBuySimulationStoreDefaults","SUPPLY_CHAIN_SIMULATION_DETAILS","translatedErrorMessage","VideoIframe","thumbnailURL","handleVideoViewerModal","onMouseOver","currentTarget","children","youtubeIconRed","onMouseOut","youtubeIconGrey","TutorialFrame","video","customDescription","TutorialsComponent","productSection","videos","first","second","localeCompare","VideoViewerModal","openVideoViewerModal","handleDontShowVideoAgain","hasHeader","hasDescription","hasActionButtons","isTutorial","modalHeader","modalDescription","modalActionButtons","frameBorder","allowFullScreen","selectedUrlTutorial","getUserLanguage","userLanguage","videoViewerModal","SupplyChainJoinSimulationPreamble","SUPPLY_CHAIN_STUDENT_PAYMENT","plotAxisTranslation","0","DashboardSectionRow","toggleSection","sectionRowContent","SupplyChainDashboards","supplyChainButtons","showModifyConditions","lastMileProfessorManaged","SupplyChainDetailComponent","supplyChainResetRequestsState","modifySimulationReset","shouldRenderGameModeDropDown","apiErrorNamespace","SupplyChainDetail","supplyChainSimulationDetailsRequestStatus","SupplyChainRegisteredStudents","supplyChainGetRegisteredStudentsStatus","supplyChainStandings","productionStandings","networkAStandings","networkBStandings","cashProduction","cashNetworkA","cashNetworkB","supplyChainRunAgain","SUPPLY_CHAIN_CONSTANTS","CreambowBuyQuestionnaire","ActivationCreamBow","creambowQuestionnaire","activationCreambow","CreateCreambowSimulationForm","PurchasedCreambow","resetCreambowBuySimulationStoreDefaults","CREAMBOW_SIMULATION_DETAILS","creambowLogo","creambowButtons","CreambowDetailComponent","creambowResetRequestsState","CreambowDetail","creambowSimulationDetailsRequestStatus","CreambowRegisteredStudents","creambowStandings","dateOptions","weekday","month","minute","hour12","renderDecisionTable","fixed","renderMenuItem","menuTitle","menuItemContent","numberOfLetters","dateText","dateNumber","panes","menuItem","Tab","Pane","menu","vertical","MedicaDecisionHistory","getDecisionHistory","faq","Medica","avatarBackgroundColor","question","answer","Bindz","SupplyGrain","studentFaq","ProductOption","onSelect","showBack","FaqTag","isSelected","tagTitle","tagId","Label","onlyUnique","self","productImages","MedicaImage","SimunationImage","CrisisImage","SupplyGrainImage","productNames","ProcessimLabsFaq","productSelected","tagSelected","onSelectTag","FaqData","faqProducts","questionTags","unshift","faqQuestions","studentFaqLink","questionPanels","SentryRoute","Route","Navigation","path","backgroundImage","cookiesEnabled","cookieEnabled","App","configureSentryScope","setUser","setChatLanguage","_smartsupp","smartsupp","saveUserChatInformation","checkIfLoggedInPath","pathName","localLanguage","bestLanguageFit","browserLang","Axios","interceptors","eject","onpopstate","imageOne","imageTwo","mobileBackgroundImageOne","mobileBackgroundImageTwo","backgroundImageOne","backgroundImageTwo","changeBackgroundImage","routeNavigator","Boolean","hostname","initialReduxState","store","sentryReduxEnhancer","stateTransformer","actionTransformer","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","createStore","createRootReducer","applyMiddleware","thunk","routerMiddleware","configureStore","host","dsn","release","dist","environment","integrations","BrowserTracing","routingInstrumentation","normalizeDepth","tracesSampleRate","Integrations","rootElement","ReactDOM","I18nextProvider","serviceWorker","ready","registration","unregister","CALLBACK","LOGOUT","HOME","CATALOGUE","MEDICA_DETAIL","PURCHASED_MEDICA_DETAIL","SIMUNATION_DETAIL","PURCHASED_SIMUNATION_DETAIL","MEDICA_REGISTERED_STUDENTS","MEDICA_STANDINGS","MEDICA_STANDINGS_PUBLIC","MEDICA_BAD_LINK","PUSH_NOTIFICATIONS","PURCHASED_MEDICA","MEDICA_BUY_QUESTIONNAIRE","PAYMENT_MEDICA","PAYMENT_MEDICA_STUDENT","STUDENTS_LOGIN","STUDENT_CREATE_TEAM","STUDENT_JOIN_TEAM","DOWNLOAD_APP","SIMUNATION_BUY_QUESTIONNAIRE","SIMUNATION_PAYMENT","PURCHASED_SIMUNATION","SIMUNATION_STANDINGS","SIMUNATION_REGISTERED_STUDENTS","MEDICA_DASHBOARDS","MEDICA_DETAILS_DECISION_HISTORY","TUTORIALS","PROFILE","STUDENT_FAQ","SCENARIO_MANAGER","CREATE_NEW_SCENARIO","CRISIS_BUY_QUESTIONNAIRE","CRISIS_PAYMENT","CRISIS_SIMULATION_DASHBOARDS","CRISIS_STANDINGS","CRISIS_REGISTERED_STUDENTS","CRISIS_BAD_LINK","SUPPLY_CHAIN_BUY_QUESTIONNAIRE","SUPPLY_CHAIN_PAYMENT","SUPPLY_CHAIN_REGISTERED_STUDENTS","SUPPLY_CHAIN_STANDINGS","SUPPLY_CHAIN_SIMULATION_DASHBOARDS","ABOGADOS_BUY_QUESTIONNAIRE","ABOGADOS_CREATE_SIMULATION","ABOGADOS_PAYMENT","ABOGADOS_STANDINGS","ABOGADOS_REGISTERED_STUDENTS","CREAMBOW_BUY_QUESTIONNAIRE","CREAMBOW_CREATE_SIMULATION","CREAMBOW_PAYMENT","CREAMBOW_STANDINGS","CREAMBOW_REGISTERED_STUDENTS","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","simulationSimunationCreated","secondRunWarningWasShown","wasVideoSeen","dontShowWelcomeModalAgain","dontShowAddVariationInformationModalAgain","purchasedProduct","crisisJoinSimulationId","crisisPaymentSummaryId","supplyChainJoinSimulationId","supplyChainPaymentSummaryId","cookieName","cookieData","thirtyDaysOnFuture","getDate","expires","toGMTString","entry","jsonData","decodeURI","isJsonString","isFirefox","isStorageAvailable","storageAvailable","localStorage","setItem","removeItem","getItem","storageValue","newObj","newData","lastObject","LOGGED_IN","NOT_LOGGED_IN","LOGIN_SUCCESSFUL","SET_USER_LANGUAGE","REGEXP"],"mappings":"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","file":"static/js/main.1676ffb6.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/gear-icon.d8ed7e0c.svg\";","export const PREVIOUS = \"previous\";\nexport const NEXT = \"next\";\nexport const START_DATE = \"startDate\";\nexport const END_DATE = \"endDate\";\nexport const HOUR_MERIDIEM = [\n { key: \"am\", value: \"am\" },\n { key: \"pm\", value: \"pm\" },\n];\nexport const HOUR_NUMBERS = [];\nfor (let n = 12; n > 0; n--) {\n HOUR_NUMBERS.push({ key: n, value: n });\n}\nexport const MEDICA_NAME = \"Medica Scientific\";\nexport const SIMUNATION_NAME = \"Simunation\";\nexport const NAVIGATION_PAGE = \"page\";\nexport const NAVIGATION_CONTINUE = \"continue\";\nexport const NAVIGATION_PAY = \"pay\";\nexport const NAVIGATION_SUBMIT = \"submit\";\nexport const NAVIGATION_LOGOUT = \"logout\";\nexport const QUESTIONNAIRE_OPTIONS = {\n STUDENTS: \"Students\",\n PROFESSOR: \"Professor\",\n BOOLEAN: \"boolean\",\n};\nexport const SIX_HOURS_MILLISECONDS = 21600000;\nexport const SEVEN_DAYS_MILLISECONDS = 604800000;\n\nexport const ROLES = {\n PROFESSOR: \"Professor\",\n STUDENT: \"Student\",\n};\nexport const SIMULATION_DEFAULT_START_DATE = \"2030-01-01T00:00:00+00:00\";\nexport const SIMULATION_DEFAULT_END_DATE = \"2030-01-03T00:00:00+00:00\";\nexport const SIMULATION_DEFAULT_TEMPLATE = \"BTemplate\";\nexport const ENV_DEVELOPMENT = \"development\";\nexport const ENV_PRODUCTION = \"production\";\nexport const DEV_LOCATION = \"https://processimlabs-development.azurewebsites.net\";\nexport const DELETE_COOKIE = \"expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\nexport const START_SIMULATION = \"startSimulation\";\nexport const ADVANCE_SIMULATION = \"advanceSimulation\";\nexport const FINISH_SIMULATION = \"finishSimulation\";\nexport const AWAITING_INITIALIZATION = \"AwaitingInitialization\";\nexport const INITIALIZED = \"Initialized\";\nexport const RUNNING = \"Running\";\nexport const FINISHED = \"Finished\";\nexport const LANGUAGES_LIST = [\"en\", \"es\"];\nexport const PRODUCTS = {\n MEDICA: \"medica\",\n SIMUNATION: \"simunation\",\n CRISIS: \"crisis\",\n};\n\nexport const CRISIS_NAME = \"Bindz\";\nexport const ABOGADOS_NAME = \"Finch & Mason\";\nexport const CREAM_BOW_NAME = \"Cream Bow\";\nexport const SUPPLY_CHAIN_NAME = \"Supply Grain\";\n\nexport const APP_VERSION_NUMBER = \"2.1.5\";\nexport const APP_DISTRIBUTION_NUMBER = \"2\";\n","export const GET_MEDICA_STANDINGS = \"PublicPages/GET_MEDICA_STANDINGS\";\nexport const GET_MEDICA_STANDINGS_SUCCESSFUL = \"PublicPages/GET_MEDICA_STANDINGS_SUCCESSFUL\";\nexport const GET_MEDICA_STANDINGS_FAILED = \"PublicPages/GET_MEDICA_STANDINGS_FAILED\";\n","module.exports = __webpack_public_path__ + \"static/media/simunation-logo.9a71732c.png\";","export const AUTH_INFORMATION = \"authInformation\";\nexport const SIMULATION_CREATED = \"simulationCreated\";\n","import React from \"react\";\nimport { Message } from \"semantic-ui-react\";\nimport { withTranslation } from \"react-i18next\";\nimport \"./helpers.css\";\n\nconst MessagesComponent = (props) => {\n const translate = props.t;\n return (\n
\n
\n \n {translate(props.message)}\n \n
\n
\n );\n};\n\nexport default withTranslation(\"helpers\")(MessagesComponent);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withTranslation } from \"react-i18next\";\nimport DropDownComponent from \"../helpers/DropDownComponent\";\nimport { setUserLanguage } from \"../../store/User/actions\";\nimport { processLanguageAndSave } from \"../utilities/LanguageUtilities\";\nimport \"./helpers.css\";\n\nclass LanguageSelector extends Component {\n state = {\n language: \"\",\n };\n\n componentDidUpdate(prevProps) {\n const { language } = this.props;\n if (prevProps.language !== language) {\n this.setState({\n language: language,\n });\n }\n }\n\n onSelectLanguage = (value) => {\n const { setUserLanguage } = this.props;\n const languageSelected = value;\n processLanguageAndSave(languageSelected, setUserLanguage);\n };\n\n render() {\n const { language } = this.props;\n const languageOptions = [\n { key: \"English\", text: \"English\", value: \"en\" },\n { key: \"Español\", text: \"Español\", value: \"es\" },\n ];\n let languageText = \"\";\n\n switch (language) {\n case \"es\":\n languageText = \"Español\";\n break;\n case \"en\":\n languageText = \"English\";\n break;\n default:\n languageText = \"English\";\n break;\n }\n\n return (\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n language: state.user.userProfile.language,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n setUserLanguage: (lang) => dispatch(setUserLanguage(lang)),\n});\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(withTranslation(\"Common\")(LanguageSelector));\n","module.exports = __webpack_public_path__ + \"static/media/abogados-logo.9451a428.png\";","module.exports = __webpack_public_path__ + \"static/media/creambow-logo.3d432359.png\";","module.exports = __webpack_public_path__ + \"static/media/pop-out-button.809e9e49.svg\";","export const HEADERS_GET = {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": window.location.origin,\n \"ZUMO-API-VERSION\": \"2.0.0\",\n Authorization: \"\",\n },\n};\nexport const HEADERS_POST = {\n method: \"POST\",\n body: \"\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": window.location.origin,\n \"ZUMO-API-VERSION\": \"2.0.0\",\n Authorization: \"\",\n },\n};\n\nexport const MEDICA_BASE_API_URL = process.env.REACT_APP_MEDICA_BASE_API_URL;\nexport const SIMUNATION_BASE_API_URL = process.env.REACT_APP_SIMUNATION_BASE_API_URL;\nexport const CRISIS_BASE_API_URL = process.env.REACT_APP_CRISIS_BASE_API_URL;\nexport const SUPPLY_CHAIN_BASE_API_URL = process.env.REACT_APP_SUPPLY_CHAIN_BASE_API_URL;\nexport const ADMINISTRATION_BASE_API_URL = process.env.REACT_APP_ADMINISTRATION_BASE_API_URL;\nexport const FORIO_APPS_BASE_API_URL = process.env.REACT_APP_FORIO_APPS_BASE_API_URL;\n\n//GET//\nexport const GET_SIMULATIONS_MEDICA = `${MEDICA_BASE_API_URL}/api/WebGetSimulations`;\nexport const GET_SIMULATIONS_SIMUNATION = `${SIMUNATION_BASE_API_URL}/api/WebGetSimulations`;\nexport const GET_SIMULATIONS_CRISIS = `${CRISIS_BASE_API_URL}/WebGetSimulations`;\nexport const GET_SIMULATIONS_SUPPLY_CHAIN = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetSimulations`;\nexport const GET_SIMULATION_DETAIL_MEDICA = `${MEDICA_BASE_API_URL}/api/WebGetSimulationDetails?simulationId=`;\nexport const GET_SIMULATION_DETAIL_SIMUNATION = `${SIMUNATION_BASE_API_URL}/api/WebGetSimulationDetails?simulationName=`;\nexport const GET_REGISTERED_STUDENTS_MEDICA = `${MEDICA_BASE_API_URL}/api/WebGetSimulationStudents?simulationName=`;\nexport const GET_REGISTERED_STUDENTS_SIMUNATION = `${SIMUNATION_BASE_API_URL}/api/WebGetSimulationStudents?simulationName=`;\nexport const GET_STANDINGS_MEDICA = `${MEDICA_BASE_API_URL}/api/WebGetStandings?simulationName=`;\nexport const GET_STANDINGS_MEDICA_PUBLIC = `${MEDICA_BASE_API_URL}/api/WebUnauthorizeGetStandings?simulationName=`;\nexport const GET_STANDINGS_SIMUNATION = `${SIMUNATION_BASE_API_URL}/api/WebGetStandings?simulationName=`;\nexport const GET_TEAMS_MEDICA = `${MEDICA_BASE_API_URL}/api/WebGetSimulationTeams?simulationName=`;\nexport const GET_SIMULATION_LINK = `${MEDICA_BASE_API_URL}/api/WebGetActivationLink?controlSimulationId=`;\nexport const GET_SIMUNATION_VALIDATE_DISCOUNT_CODE = `${SIMUNATION_BASE_API_URL}/api/WebValidateDiscountCode?discountCode=`;\nexport const GET_PROFESSOR_SCENARIOS = `${MEDICA_BASE_API_URL}/api/WebGetProfessorScenarios`;\nexport const GET_STUDENT_PREVIOUS_PAYMENT = `${MEDICA_BASE_API_URL}/api/WebCheckStudentPayment?simulationId=`;\nexport const GET_MEDICA_DOCUMENTS = `${MEDICA_BASE_API_URL}/api/WebGetDocumentationLinks?simulationId=`;\nexport const GET_MEDICA_PERFORMANCE_DATA = `${MEDICA_BASE_API_URL}/api/WebGetSimulationPerformanceData?SimulationName=`;\nexport const GET_VIDEO_TUTORIALS = `${ADMINISTRATION_BASE_API_URL}/GetVideos`;\nexport const GET_MEDICA_DECISIONS_DATA = `${MEDICA_BASE_API_URL}/api/WebGetChangeRequestsHistory?SimulationName=`;\nexport const GET_MEDICA_SCENARIO_INFORMATION = `${MEDICA_BASE_API_URL}/api/WebGetDefaultScenariosInformation`;\nexport const GET_MEDICA_CHANGE_REQUEST_HISTORY = `${MEDICA_BASE_API_URL}/api/WebGetDecisionHistory`;\nexport const GET_MEDICA_SUGGESTIONS = `${MEDICA_BASE_API_URL}/api/WebGetSuggestions`;\nexport const CRISIS_GET_SIMULATION_DETAILS = `${CRISIS_BASE_API_URL}/WebGetSimulationDetails?simulationId=`;\nexport const CRISIS_GET_REGISTERED_STUDENTS = `${CRISIS_BASE_API_URL}/WebGetRegisteredStudents?simulationId=`;\nexport const CRISIS_GET_NUMBER_REGISTERED_STUDENTS = `${CRISIS_BASE_API_URL}/WebGetNumberOfRegisteredStudents?simulationId=`;\nexport const CRISIS_GET_PERFORMANCE_DATA = `${CRISIS_BASE_API_URL}/WebGetSimulationPerformance?simulationId=`;\nexport const CRISIS_GET_STANDINGS = `${CRISIS_BASE_API_URL}/WebGetStandings?simulationId=`;\nexport const CRISIS_GET_STUDENT_HAS_PAID = `${CRISIS_BASE_API_URL}/WebStudentHasPaid?simulationId=`;\nexport const CRISIS_GET_PROFESSOR_SCENARIOS = `${CRISIS_BASE_API_URL}/WebGetProfessorScenarios`;\nexport const SUPPLY_CHAIN_GET_SIMULATION_DETAILS = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetSimulationDetails?simulationId=`;\nexport const SUPPLY_CHAIN_GET_REGISTERED_STUDENTS = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetRegisteredStudents?simulationId=`;\nexport const SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetNumberOfRegisteredStudents?simulationId=`;\nexport const SUPPLY_CHAIN_GET_STANDINGS = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetStandings?simulationId=`;\nexport const SUPPLY_CHAIN_GET_PERFORMANCE_DATA = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetSimulationPerformance?simulationId=`;\nexport const SUPPLY_CHAIN_GET_DECISIONS_DATA = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetChangeRequestsHistory?simulationId=`;\nexport const SUPPLY_CHAIN_GET_STUDENT_HAS_PAID = `${SUPPLY_CHAIN_BASE_API_URL}/WebStudentHasPaid?simulationId=`;\nexport const SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetProfessorScenarios`;\nexport const GET_SIMULATIONS_FORIO = `${FORIO_APPS_BASE_API_URL}/WebGetSimulations`;\nexport const FORIO_GET_SIMULATION_DETAILS = `${FORIO_APPS_BASE_API_URL}/WebGetSimulationDetails?simulationId=`;\nexport const FORIO_GET_STANDINGS = `${FORIO_APPS_BASE_API_URL}/WebGetStandings?simulationId=`;\nexport const FORIO_GET_REGISTERED_STUDENTS = `${FORIO_APPS_BASE_API_URL}/WebGetRegisteredStudents?simulationId=`;\nexport const CRISIS_GET_DOCUMENTATION = `${CRISIS_BASE_API_URL}/WebGetDocumentationLinks?simulationId=`;\nexport const SUPPLY_CHAIN_GET_DOCUMENTATION = `${SUPPLY_CHAIN_BASE_API_URL}/WebGetDocumentationLinks?simulationId=`;\n\n//POST//\nexport const MODIFY_SIMULATION_DATES_MEDICA = `${MEDICA_BASE_API_URL}/api/WebModifySimulation`;\nexport const PAYMENT_MEDICA = `${MEDICA_BASE_API_URL}/api/WebProcessPayment`;\nexport const SEND_PUSH_NOTIFICATION_MEDICA = `${MEDICA_BASE_API_URL}/api/WebSendPushNotification`;\nexport const MEDICA_CREATE_SIMULATION = `${MEDICA_BASE_API_URL}/api/WebSimpleCreateSimulation`;\nexport const MEDICA_CREATE_SIMULATION_MANAGED_PROGRESS = `${MEDICA_BASE_API_URL}/api/WebCreateProfessorManagedSimulation`;\nexport const MEDICA_RUN_AGAIN_SIMULATION = `${MEDICA_BASE_API_URL}/api/WebNextRunSimulation`;\nexport const CREATE_TEAM = `${MEDICA_BASE_API_URL}/api/WebCreateTeam`;\nexport const JOIN_TEAM = `${MEDICA_BASE_API_URL}/api/WebJoinTeam`;\nexport const ADVANCE_SIMULATION_MEDICA = `${MEDICA_BASE_API_URL}/api/WebProfessorSimulationExecution`;\nexport const ADVANCE_SIMULATION_SIMUNATION = `${SIMUNATION_BASE_API_URL}/api/WebProfessorAdvanceSimulation`;\nexport const SIMUNATION_CREATE_SIMULATION = `${SIMUNATION_BASE_API_URL}/api/WebCreateSimulation`;\nexport const MEDICA_VALIDATE_DISCOUNT_CODE = `${MEDICA_BASE_API_URL}/api/WebValidateDiscountCode`;\nexport const REQUEST_FEATURE = `${MEDICA_BASE_API_URL}/api/WebRequestFeature`;\nexport const PROFESSOR_CREATE_NEW_SCENARIO = `${MEDICA_BASE_API_URL}/api/WebCreateProfessorScenario`;\nexport const PAYMENT_CRISIS = `${CRISIS_BASE_API_URL}/WebProcessPayment`;\nexport const CRISIS_CREATE_SIMULATION = `${CRISIS_BASE_API_URL}/WebCreateSimulation`;\nexport const CRISIS_CREATE_AUTOMATIC_SIMULATION = `${CRISIS_BASE_API_URL}/WebCreateAutomaticSimulation`;\nexport const CRISIS_JOIN_SIMULATION = `${CRISIS_BASE_API_URL}/JoinSimulation`;\nexport const CRISIS_ADVANCE_SIMULATION = `${CRISIS_BASE_API_URL}/WebAdvanceSimulation`;\nexport const CRISIS_START_SIMULATION = `${CRISIS_BASE_API_URL}/WebStartSimulation`;\nexport const CRISIS_VALIDATE_DISCOUNT_CODE = `${CRISIS_BASE_API_URL}/WebValidateDiscountCode`;\nexport const CRISIS_CREATE_NEXT_RUN = `${CRISIS_BASE_API_URL}/WebCreateNextRun`;\nexport const CRISIS_MODIFY_SIMULATION = `${CRISIS_BASE_API_URL}/WebModifySimulation`;\nexport const SUPPLY_CHAIN_CREATE_SIMULATION = `${SUPPLY_CHAIN_BASE_API_URL}/WebCreateSimulation`;\nexport const SUPPLY_CHAIN_CREATE_AUTOMATIC_SIMULATION = `${SUPPLY_CHAIN_BASE_API_URL}/WebCreateAutomaticSimulation`;\nexport const SUPPLY_CHAIN_JOIN_SIMULATION = `${SUPPLY_CHAIN_BASE_API_URL}/WebJoinSimulation`;\nexport const SUPPLY_CHAIN_VALIDATE_DISCOUNT_CODE = `${SUPPLY_CHAIN_BASE_API_URL}/WebValidateDiscountCode`;\nexport const PAYMENT_SUPPLY_CHAIN = `${SUPPLY_CHAIN_BASE_API_URL}/WebProcessPayment`;\nexport const SUPPLY_CHAIN_ADVANCE_SIMULATION = `${SUPPLY_CHAIN_BASE_API_URL}/WebAdvanceSimulation`;\nexport const SUPPLY_CHAIN_START_SIMULATION = `${SUPPLY_CHAIN_BASE_API_URL}/StartSimulation`;\nexport const SUPPLY_CHAIN_CREATE_NEXT_RUN = `${SUPPLY_CHAIN_BASE_API_URL}/WebCreateNextRun`;\nexport const SUPPLY_CHAIN_MODIFY_SIMULATION = `${SUPPLY_CHAIN_BASE_API_URL}/WebModifySimulation`;\n\nexport const FORIO_VALIDATE_DISCOUNT_CODE = `${FORIO_APPS_BASE_API_URL}/WebValidateDiscountCode`;\nexport const PAYMENT_FORIO = `${FORIO_APPS_BASE_API_URL}/WebProcessPayment`;\nexport const FORIO_CREATE_SIMULATION = `${FORIO_APPS_BASE_API_URL}/WebCreateSimulation`;\nexport const FORIO_ADVANCE_SIMULATION = `${FORIO_APPS_BASE_API_URL}/WebAdvanceSimulation`;\n\nexport const MEDICA_GET_PAYMENT_INTENT = `${MEDICA_BASE_API_URL}/api/WebPaymentIntent`;\nexport const CRISIS_GET_PAYMENT_INTENT = `${CRISIS_BASE_API_URL}/api/WebPaymentIntent`;\nexport const SUPPLY_CHAIN_GET_PAYMENT_INTENT = `${SUPPLY_CHAIN_BASE_API_URL}/api/WebPaymentIntent`;\nexport const SIMUNATION_GET_PAYMENT_INTENT = `${SIMUNATION_BASE_API_URL}/api/WebPaymentIntent`;\nexport const MEDICA_CONFIRM_PAYMENT = `${MEDICA_BASE_API_URL}/api/WebPaymentConfirmation`;\nexport const CRISIS_CONFIRM_PAYMENT = `${CRISIS_BASE_API_URL}/api/WebPaymentConfirmation`;\nexport const SUPPLY_CHAIN_CONFIRM_PAYMENT = `${SUPPLY_CHAIN_BASE_API_URL}/api/WebPaymentConfirmation`;\nexport const SIMUNATION_CONFIRM_PAYMENT = `${SIMUNATION_BASE_API_URL}/api/WebPaymentConfirmation`;\n\n//DELETE//\nexport const PROFESSOR_DELETE_SCENARIO = `${MEDICA_BASE_API_URL}/api/WebDeleteProfessorScenario?idProfessorScenario=`;\n","import React from \"react\";\nimport { Button } from \"semantic-ui-react\";\nimport { logout } from \"../../services/AuthService\";\nimport \"./buttonStyles.css\";\n\nconst LogoutButton = (props) => {\n return (\n
\n \n
\n );\n};\n\nexport default LogoutButton;\n","import React from \"react\";\nimport { Dropdown } from \"semantic-ui-react\";\nimport { NavLink } from \"react-router-dom\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faBars } from \"@fortawesome/free-solid-svg-icons\";\n\nconst headerButtons = [\n {\n name: \"home\",\n pathname: \"/Home\",\n },\n {\n name: \"videos\",\n pathname: \"/Videos\",\n },\n {\n name: \"profile\",\n pathname: \"/Profile\",\n },\n {\n name: \"scenarioManager\",\n pathname: \"/ScenarioManager\",\n },\n {\n name: \"logout\",\n pathname: \"/Logout\",\n },\n];\n\nconst HeaderButtons = (props) => {\n const { translate } = props;\n let headerButtonsPack = null;\n let headerButtonsPackDropdown = null;\n\n headerButtonsPackDropdown = (\n }>\n \n {headerButtons.map((button, index) => {\n let headerLabel = null;\n const buttonName = translate(`Common:${button.name}`).toUpperCase();\n return (\n \n \n {buttonName}\n {headerLabel}\n \n \n );\n })}\n \n \n );\n\n headerButtonsPack = (\n
\n {headerButtons.map((button, index) => {\n return (\n
\n \n {translate(`Common:${button.name}`)}\n \n
\n );\n })}\n
\n );\n\n return (\n <>\n {headerButtonsPack}\n {headerButtonsPackDropdown}\n \n );\n};\n\nexport default HeaderButtons;\n","import React from \"react\";\nimport { Image } from \"semantic-ui-react\";\nimport LogoutButton from \"../helpers/LogoutButton\";\nimport { withRouter } from \"react-router-dom\";\nimport BackButton from \"../helpers/BackButton\";\nimport HeaderButtons from \"./HeaderButtons\";\nimport LanguageSelector from \"../helpers/LanguageSelector\";\nimport processimLogo from \"../../assets/pl-logo.png\";\nimport \"./header.css\";\n\nconst HeaderComponent = (props) => {\n const { translate, showLogoutButton, showBackButton, dropdown, showCompleteMenu, showLanguageSelector, history } =\n props;\n let logoutButton = null;\n let dropDownButton = null;\n let backButton = null;\n let headerButtons = null;\n let languageSelector = null;\n\n if (showLogoutButton) {\n logoutButton = ;\n }\n\n if (props.showBackButton) {\n backButton = ;\n }\n\n if (dropdown) {\n dropDownButton = dropdown;\n }\n\n if (showCompleteMenu) {\n headerButtons = ;\n }\n\n if (showLanguageSelector) {\n languageSelector = ;\n }\n\n return (\n
\n
\n \n \n \n
\n
\n {dropDownButton}\n {backButton}\n {headerButtons}\n
\n {languageSelector}\n {logoutButton}\n
\n
\n
\n );\n};\n\nexport default withRouter(HeaderComponent);\n","import { getCurrentSession, login } from \"../services/AuthService\";\nimport axios from \"axios\";\nimport {\n MEDICA_BASE_API_URL,\n SIMUNATION_BASE_API_URL,\n CRISIS_BASE_API_URL,\n SUPPLY_CHAIN_BASE_API_URL,\n FORIO_APPS_BASE_API_URL,\n} from \"../constants/FetchApi\";\nimport { sentryReportEvent } from \"./SentryReportService\";\nimport { translationExists } from \"../components/utilities/LanguageUtilities\";\n\nexport const getConfig = async () => {\n const session = await getCurrentSession();\n if (session) {\n const token = session.tokenInfo.idToken;\n const axiosConfig = {\n headers: {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": window.location.origin,\n \"ZUMO-API-VERSION\": \"2.0.0\",\n Authorization: `Bearer ${token}`,\n },\n };\n return axiosConfig;\n } else {\n login();\n }\n};\n\nexport const sendGetRequest = async (apiRoute, reference) => {\n const config = await getConfig();\n if (config) {\n reference = encodeURI(reference);\n return axios({\n method: \"get\",\n url: `${apiRoute}${reference}`,\n headers: config.headers,\n responseType: \"stream\",\n });\n }\n};\n\nexport const sendGetWithParamsRequest = async (apiRoute, params) => {\n const config = await getConfig();\n if (config) {\n return axios.get(apiRoute, { params, responseType: \"stream\", headers: config.headers });\n }\n};\n\nexport const sendUnauthorizedGetRequest = async (apiRoute, reference) => {\n const headers = {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": window.location.origin,\n \"ZUMO-API-VERSION\": \"2.0.0\",\n };\n reference = encodeURI(reference);\n return axios({\n method: \"get\",\n url: `${apiRoute}${reference}`,\n headers: headers,\n responseType: \"stream\",\n });\n};\n\nexport const sendPostRequest = async (apiRoute, postData) => {\n const config = await getConfig();\n if (config) {\n return axios({\n method: \"post\",\n url: apiRoute,\n headers: config.headers,\n data: JSON.stringify(postData),\n });\n }\n};\n\nexport const sendDeleteRequest = async (apiRoute, reference) => {\n const config = await getConfig();\n if (config) {\n const encodedReference = encodeURI(reference);\n return axios({\n method: \"delete\",\n url: `${apiRoute}${encodedReference}`,\n headers: config.headers,\n });\n }\n};\n\nexport const axiosLogErrorsFromBackend = (response) => {\n if (response.status !== 200 || (response.data && response.data.outcome)) {\n return response;\n }\n\n if (response.data.message && translationExists(response.data.message)) {\n return response;\n }\n\n if (response.data.message.includes(\"Entities may have been modified or deleted since entities were loaded\")) {\n return {\n ...response,\n data: {\n outcome: false,\n message: \"Common:Busy Server\",\n },\n };\n }\n\n if (shouldLogErrorInSentry()) {\n let apiURL = new URL(response.config.url);\n let simulationName = getSimulationNameFromAPI(apiURL.origin);\n\n const reportMessage = `[${simulationName}] API Error: ${apiURL.pathname}`;\n const sentryTag = { name: \"Backend\", data: response.config.url };\n\n const sentryExtras = [];\n if (response.config.data) {\n const requestData = JSON.parse(response.config.data);\n sentryExtras.push(\n ...Object.keys(requestData).map((key) => {\n return { title: \"request_\" + key.toString(), value: requestData[key] };\n })\n );\n }\n if (response.data) {\n const responseData = response.data;\n sentryExtras.push(\n ...Object.keys(responseData).map((key) => {\n return { title: \"response_\" + key.toString(), value: responseData[key] };\n })\n );\n }\n\n sentryExtras.push({ title: \"method\", value: response.config.method });\n sentryReportEvent(reportMessage, sentryTag, sentryExtras);\n }\n return {\n ...response,\n data: {\n outcome: false,\n message: \"Common:unknownBackendErrorMessage\",\n },\n };\n};\n\nexport const axiosLogExceptionsFromBackend = (error) => {\n let reportMessage = \"\";\n let apiURL = new URL(error.config.url);\n let simulationName = getSimulationNameFromAPI(apiURL.origin);\n\n reportMessage = `[${simulationName}] API Exception: ${apiURL.pathname}`;\n const sentryTag = { name: \"Backend\", data: error.config.url };\n\n const sentryExtras = [];\n if (error.config.data) {\n const requestData = JSON.parse(error.config.data);\n sentryExtras.push(\n ...Object.keys(requestData).map((key) => {\n return { title: \"request_\" + key.toString(), value: requestData[key] };\n })\n );\n }\n\n sentryExtras.push({ title: \"method\", value: error.config.method });\n sentryExtras.push({ title: \"message\", value: error.message });\n sentryReportEvent(reportMessage, sentryTag, sentryExtras);\n\n return {\n ...error,\n message: \"Common:unknownBackendExceptionMessage\",\n };\n};\n\nconst shouldLogErrorInSentry = (errorMessage) => {\n let logErrorInSentry = true;\n\n if (\n errorMessage === \"Network Error\" ||\n errorMessage === \"timeout of 0ms exceeded\" ||\n errorMessage === \"Request aborted\"\n ) {\n logErrorInSentry = false;\n }\n return logErrorInSentry;\n};\n\nconst getSimulationNameFromAPI = (apiRoute) => {\n if (apiRoute.includes(MEDICA_BASE_API_URL)) {\n return \"Medica\";\n }\n if (apiRoute.includes(SIMUNATION_BASE_API_URL)) {\n return \"Simunation\";\n }\n if (apiRoute.includes(CRISIS_BASE_API_URL)) {\n return \"Crisis\";\n }\n if (apiRoute.includes(SUPPLY_CHAIN_BASE_API_URL)) {\n return \"Supply Chain\";\n }\n if (apiRoute.includes(FORIO_APPS_BASE_API_URL)) {\n return \"Forio\";\n }\n return \"Unknown\";\n};\n","import * as actions from \"./action-types\";\nimport { sendUnauthorizedGetRequest } from \"../../services/FetchService\";\nimport * as FETCHAPI from \"../../constants/FetchApi\";\n\nexport const getStandings = (simulationName) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_MEDICA_STANDINGS });\n const standingsResponse = sendUnauthorizedGetRequest(FETCHAPI.GET_STANDINGS_MEDICA_PUBLIC, simulationName);\n standingsResponse\n .then((standings) => {\n let errorMessage = \"\";\n if (standings?.data?.outcome) {\n const data = standings.data;\n dispatch({\n type: actions.GET_MEDICA_STANDINGS_SUCCESSFUL,\n standingsTable: data.payload,\n });\n return;\n } else if (standings?.data?.outcome === false) {\n errorMessage = \"WebUnauthorizeGetStandings API Error\";\n }\n\n if (errorMessage.length === 0) {\n errorMessage = \"Unknown Error\";\n }\n\n dispatch({\n type: actions.GET_MEDICA_STANDINGS_FAILED,\n errorMessage: errorMessage,\n });\n })\n .catch((error) => {\n if (error) {\n dispatch({\n type: actions.GET_MEDICA_STANDINGS_FAILED,\n errorMessage: \"Error fetching standings\",\n });\n }\n });\n };\n};\n","export const GET_MEDICA_DETAILS = \"Medica/GET_MEDICA_DETAILS\";\nexport const GET_MEDICA_DETAILS_SUCCESSFUL = \"Medica/GET_MEDICA_DETAILS_SUCCESSFUL\";\nexport const GET_MEDICA_DETAILS_FAILED = \"Medica/GET_MEDICA_DETAILS_FAILED\";\nexport const GET_MEDICA_STANDINGS = \"Medica/GET_MEDICA_STANDINGS\";\nexport const GET_MEDICA_STANDINGS_SUCCESSFUL = \"Medica/GET_MEDICA_STANDINGS_SUCCESSFUL\";\nexport const GET_MEDICA_STANDINGS_FAILED = \"Medica/GET_MEDICA_STANDINGS_FAILED\";\nexport const GET_MEDICA_REGISTERED_STUDENTS = \"Medica/GET_MEDICA_REGISTERED_STUDENTS\";\nexport const GET_MEDICA_REGISTERED_STUDENTS_SUCCESSFUL = \"Medica/GET_MEDICA_REGISTERED_STUDENTS_SUCCESSFUL\";\nexport const GET_MEDICA_REGISTERED_STUDENTS_FAILED = \"Medica/GET_MEDICA_REGISTERED_STUDENTS_FAILED\";\nexport const GET_MEDICA_TEAMS = \"Medica/GET_MEDICA_TEAMS\";\nexport const GET_MEDICA_TEAMS_SUCCESSFUL = \"Medica/GET_MEDICA_TEAMS_SUCCESSFUL\";\nexport const GET_MEDICA_TEAMS_FAILED = \"Medica/GET_MEDICA_TEAMS_FAILED\";\nexport const CREATE_MEDICA_TEAM = \"Medica/CREATE_MEDICA_TEAM\";\nexport const CREATE_MEDICA_TEAM_SUCCESSFUL = \"Medica/CREATE_MEDICA_TEAM_SUCCESSFUL\";\nexport const CREATE_MEDICA_TEAM_FAILED = \"Medica/CREATE_MEDICA_TEAM_FAILED\";\nexport const JOIN_MEDICA_TEAM = \"Medica/JOIN_MEDICA_TEAM\";\nexport const JOIN_MEDICA_TEAM_SUCCESSFUL = \"Medica/JOIN_MEDICA_TEAM_SUCCESSFUL\";\nexport const JOIN_MEDICA_TEAM_FAILED = \"Medica/JOIN_MEDICA_TEAM_FAILED\";\nexport const ADVANCE_MEDICA_SIMULATION = \"Medica/ADVANCE_MEDICA_SIMULATION\";\nexport const ADVANCE_MEDICA_SIMULATION_SUCCESSFUL = \"Medica/ADVANCE_MEDICA_SIMULATION_SUCCESSFUL\";\nexport const ADVANCE_MEDICA_SIMULATION_FAILED = \"Medica/ADVANCE_MEDICA_SIMULATION_FAILED\";\nexport const GET_PROFESSOR_SCENARIOS = \"Medica/GET_PROFESSOR_SCENARIOS\";\nexport const GET_PROFESSOR_SCENARIOS_SUCCESSFUL = \"Medica/GET_PROFESSOR_SCENARIOS_SUCCESSFUL\";\nexport const GET_PROFESSOR_SCENARIOS_FAILED = \"Medica/GET_PROFESSOR_SCENARIOS_FAILED\";\nexport const CHECK_STUDENT_PAYMENT = \"Medica/CHECK_STUDENT_PAYMENT\";\nexport const CHECK_STUDENT_PAYMENT_SUCCESSFUL = \"Medica/CHECK_STUDENT_PAYMENT_SUCCESSFUL\";\nexport const CHECK_STUDENT_PAYMENT_FAILED = \"Medica/CHECK_STUDENT_PAYMENT_FAILED\";\nexport const RESET_ADVANCE_SIMULATION_PROPS = \"Medica/RESET_ADVANCE_SIMULATION_PROPS\";\nexport const SEND_PUSH_NOTIFICATION = \"Medica/SEND_PUSH_NOTIFICATION\";\nexport const SEND_PUSH_NOTIFICATION_SUCCESSFUL = \"Medica/SEND_PUSH_NOTIFICATION_SUCCESSFUL\";\nexport const SEND_PUSH_NOTIFICATION_FAILED = \"Medica/SEND_PUSH_NOTIFICATION_FAILED\";\nexport const GET_MEDICA_PERFORMANCE_DATA = \"Medica/GET_MEDICA_PERFORMANCE_DATA\";\nexport const GET_MEDICA_PERFORMANCE_DATA_SUCCESSFUL = \"Medica/GET_MEDICA_PERFORMANCE_DATA_SUCCESSFUL\";\nexport const GET_MEDICA_PERFORMANCE_DATA_FAILED = \"Medica/GET_MEDICA_PERFORMANCE_DATA_FAILED\";\nexport const RESET_PUSH_NOTIFICATION_STATE = \"Medica/RESET_PUSH_NOTIFICATION_STATE\";\nexport const RUN_AGAIN = \"Medica/RUN_AGAIN\";\nexport const RUN_AGAIN_SUCCESSFUL = \"Medica/RUN_AGAIN_SUCCESSFUL\";\nexport const RUN_AGAIN_FAILED = \"Medica/RUN_AGAIN_FAILED\";\nexport const GET_MEDICA_DOCUMENTATION = \"Medica/GET_MEDICA_DOCUMENTATION\";\nexport const GET_MEDICA_DOCUMENTATION_SUCCESSFUL = \"Medica/GET_MEDICA_DOCUMENTATION_SUCCESSFUL\";\nexport const GET_MEDICA_DOCUMENTATION_FAILED = \"Medica/GET_MEDICA_DOCUMENTATION_FAILED\";\nexport const GET_MEDICA_DECISIONS_DATA = \"Medica/GET_MEDICA_DECISIONS_DATA\";\nexport const GET_MEDICA_DECISIONS_DATA_SUCCESSFUL = \"Medica/GET_MEDICA_DECISIONS_DATA_SUCCESSFUL\";\nexport const GET_MEDICA_DECISIONS_DATA_FAILED = \"Medica/GET_MEDICA_DECISIONS_DATA_FAILED\";\nexport const RESET_CREATE_TEAM_STORE = \"Medica/RESET_CREATE_TEAM_STORE\";\nexport const RESET_RUN_AGAIN_STORE = \"Medica/RESET_RUN_AGAIN_STORE\";\nexport const MEDICA_GET_DECISION_HISTORY_START = \"Medica/MEDICA_GET_DECISION_HISTORY_START\";\nexport const MEDICA_GET_DECISION_HISTORY_FAIL = \"Medica/MEDICA_GET_DECISION_HISTORY_FAIL\";\nexport const MEDICA_GET_DECISION_HISTORY_SUCCESS = \"Medica/MEDICA_GET_DECISION_HISTORY_SUCCESS\";\n\nexport const GET_MEDICA_SUGGESTIONS = \"Medica/GET_MEDICA_SUGGESTIONS\";\nexport const GET_MEDICA_SUGGESTIONS_SUCCESSFUL = \"Medica/GET_MEDICA_SUGGESTIONS_SUCCESSFUL\";\nexport const GET_MEDICA_SUGGESTIONS_FAILED = \"Medica/GET_MEDICA_SUGGESTIONS_FAILED\";\n","const resources = {\n en: {\n AbogadosAdvanceSimulationModal: {\n AdvanceSimulationController_SimulationNotFound:\n \"We couldn't find the simulation you are trying to advance. Please try again. If this happens again please contact us using the support chat.\",\n AdvanceSimulationController_SimulationFinished: \"The simulation you are trying to advance has already finished\",\n AdvanceSimulationController_FailedAdvanceTeam:\n \"We couldn't advance some teams. Please advance the simulation again to try to update the teams.\",\n AdvanceSimulationController_WrongSimulation: \"It seems that the simulation is used by another professor.\",\n AdvanceSimulationController_SimulationHasNoTeams:\n \"There are no students currently enrolled in this simulation. Please wait for your students to join before start the simulation.\",\n AdvanceSimulationController_CouldNotSaveChanges:\n \"Simulation data couldn't be saved. Please don't advance the simulation and contact us using the support chat.\",\n AdvanceMessage: \"Advance simulation one quarter.\",\n StartSimulationMessage:\n \"Please be aware that once you start this simulation, students will not be able to create new teams, they will only be able to join existing teams.\",\n outdatedTeams: \"Teams that failed to advance: \",\n },\n AdvanceSimulationModal: {\n advanceSimulation: \"Advance Simulation\",\n startSimulation: \"Start Simulation\",\n start: \"Start\",\n finishSimulation: \"Finish Simulation\",\n advance: \"Advance\",\n remainingDays: \"Remaining student interaction period: \",\n currentDays: \"Current Day\",\n daysToAdvance: \"Days to Advance\",\n futureDays: \"Future Day\",\n warningFinishMessage:\n 'This is the last chance your students have to make changes within the simulation. Once you press the \"Finish\" button, 50 virtual days will elapse and the simulation will end.',\n currentYear: \"Current Year\",\n yearsToAdvance: \"Years to Advance\",\n resultingYear: \"Resulting Year\",\n \"Simulation advanced successfully.\": \"Simulation advanced successfully.\",\n simulationFinishedSuccessfully: \"Simulation finished successfully.\",\n \"Error. Simulation can only be advanced after at least one team has been created.\":\n \"The simulation can only be advanced after at least one team has been created.\",\n \"Please use a non negative amount of days to simulate\": \"Please use a non negative amount of days to simulate.\",\n \"There has been an authentication error, please contact us at support@processimlabs.com\":\n \"There has been an authentication error, please contact us at support@processimlabs.com to get assistance.\",\n \"Your account is setup as a student's account. please contact us at support@processimlabs.com\":\n \"Your account is setup as a student's account. please contact us at support@processimlabs.com to get assistance.\",\n \"You don't seem to own this simulation. Please contact us at support@processimlabs.com.\":\n \"You don't seem to own this simulation. Please contact us at support@processimlabs.com to get assistance.\",\n \"Couldn't find control team\":\n \"Couldn't find control team. Please contact us at support@processimlabs.com to get assistance.\",\n \"This simulation advances on its own\": \"This simulation advances on its own.\",\n \"Simulation is not running.\": \"Simulation is not running.\",\n \"Nothing to run\": \"Nothing to run.\",\n \"There was an error advancing please try again.\": \"There was an error advancing please try again.\",\n \"Other operation running, try again.\":\n \"We weren't able to advance the simulation at the moment. Please advise your students to stop making changes in the simulation temporarily and try again. Thank you for your patience.\",\n days: \"days.\",\n errorAdvancingSimulation:\n \"An error has occurred advancing your simulation, please check your Internet connection and reload the page.\",\n advanceAgain: \"Advance again\",\n errorSimultaneousChangeRequest: `Uh oh! It seems like one of your students was trying to change something in the simulation when you tried to advance it. Please let them know you are about to try again and do so.`,\n BackendSimulation_SimulationLimitError:\n \"The simulation has finished. We hope you enjoyed the experience. Thanks for participating!\",\n },\n AuthComponents: {\n loadingProfile: \"Loading profile, please wait...\",\n loadingPage: \"Loading page, please wait...\",\n },\n CatalogueScreen: {\n catalogue: \"Catalogue\",\n getCreative:\n \"Check out our simulation catalog. Don't hesitate to reach out if you'd like to learn more about any of them.\",\n select: \"Select\",\n back: \"Back\",\n medicaFlavor:\n \"Take the role of the manager of a medical device manufacturing facility with two different production lines. Look after its operations, buy machinery, hire employees, price your products, order inventory, etc.\",\n medicaTopics: \"Operations mgmt, Inventory mgmt, Capacity, and more.\",\n simunationFlavor:\n \"Learn about the importance of sustainable growth and informed decision-making while ruling over various sectors of a virtual country like Education, Production, Water, Health, Finances, etc.\",\n simunationTopics: \"Social progress, Sustainable development, Economics, and more.\",\n bindzFlavor:\n \"Manage the supply chain of an adhesives manufacturing company while facing various crises affecting its operations depending on the decisions made during the simulation.\",\n bindzTopics: \"Supply chain mgmt, Crisis mgmt, and more.\",\n supplyGrainFlavor:\n \"You are in charge of the supply chain for a company that produces cereals. Make decisions regarding each one of the segment’s operations and the logistics related to the delivery of the produced goods to end customers.\",\n supplyGrainTopics: \"Supply chain mgmt, Logistics, Distribution network design, and more.\",\n abogadosFlavor:\n \"Students are in control of a prestigious and established legal firm with different tiers of employees, that can serve various market segments.\",\n abogadosTopics:\n \"Service Operations, Human Capital, Organizational Structure, Service Capacity Planning and more.\",\n creambowFlavor:\n \"Be the manager of an ice cream factory. Make vital decisions regarding the flavors, sizes, target markets and production itself of various delicious treats.\",\n creambowTopics:\n \"Business Strategy, Competitive Priorities, Operations Strategy, Capacity Planning, Process Analysis, and more.\",\n topic: \"Topics: {{topicsList}}\",\n },\n CreambowAdvanceSimulationModal: {\n AdvanceSimulationController_SimulationNotFound:\n \"We couldn't find the simulation you are trying to advance. Please try again. If this happens again please contact us using the support chat.\",\n AdvanceSimulationController_SimulationFinished: \"The simulation you are trying to advance has already finished\",\n AdvanceSimulationController_FailedAdvanceTeam:\n \"We couldn't advance some teams. Please advance the simulation again to try to update the teams.\",\n AdvanceSimulationController_WrongSimulation: \"It seems that the simulation is used by another professor.\",\n AdvanceSimulationController_SimulationHasNoTeams:\n \"There are no students currently enrolled in this simulation. Please wait for your students to join before start the simulation.\",\n AdvanceSimulationController_CouldNotSaveChanges:\n \"Simulation data couldn't be saved. Please don't advance the simulation and contact us using the support chat.\",\n AdvanceMessage: \"Advance the simulation a fortnight\",\n outdatedTeams: \"Teams that failed to advance: \",\n },\n CreateNewScenarioScreen: {\n createNewScenario: \"Create New Scenario\",\n hasVariance: \"Has variance?\",\n name: \"Name\",\n description: \"Description\",\n seed: \"Seed\",\n initialCash: \"Initial Cash\",\n stationOneMachineCapacity: \"Station One Machine Capacity\",\n stationTwoMachineCapacity: \"Station Two Machine Capacity\",\n stationThreeMachineCapacity: \"Station Three Machine Capacity\",\n inventoryLeadTime: \"Inventory Lead Time\",\n batchSetupTime: '\"Initial Batching\" Setup Time',\n customLineWipLimit: \"Custom Line WIP Limit\",\n customDemandInitialValue: \"Custom Demand Initial Value\",\n customDemandFinalValue: \"Custom Demand Final Value\",\n customDemandStabilizationDay: \"Custom Demand Stabilization Day\",\n customDemand: \"Custom Demand\",\n customDemandHasVariance: \"Custom Demand has variance?\",\n required: \"Required field\",\n stationOneMachineHasVariance: \"Station One Machine Capacity has variance?\",\n stationTwoMachineHasVariance: \"Station Two Machine Capacity has variance?\",\n stationThreeMachineHasVariance: \"Station Three Machine Capacity has variance?\",\n areYouSureDoYouWantCreateNewScenario:\n \"Are you sure do you want create a new scenario with the following information?\",\n newScenarioConfirmation: \"New Scenario Confirmation\",\n create: \"Create\",\n scenarioHasBeenCreatedSuccessfully: \"Your scenario has been created successfully.\",\n errorCreatingNewScenario:\n \"An error has occurred creating your scenario, please check your Internet connection and reload the page.\",\n scenarioNameAlreadyExist: \"Scenario name already exist\",\n \"Initial Cash should be between 50K and 250K\": \"Initial Cash should be between 50K and 250K.\",\n \"Seed should be between 0 and 20000\": \"Seed should be between 0 and 20000.\",\n \"Station 1 Machine Capacity should be between 45 and 90\":\n \"Station 1 Machine Capacity should be between 45 and 90.\",\n \"Station 2 Machine Capacity should be between 90 and 180\":\n \"Station 2 Machine Capacity should be between 90 and 180.\",\n \"Station 3 Machine Capacity should be between 120 and 240\":\n \"Station 3 Machine Capacity should be between 120 and 240.\",\n \"Inventory Lead Time should be between 3 and 8\": \"Inventory Lead Time should be between 3 and 8.\",\n \"Batch Setup Time should be between 3 and 8\": \"Batch Setup Time should be between 3 and 8.\",\n \"Custom Line Wip Limit should be between 600 and 1200\": \"Custom Line WIP Limit should be between 600 and 1200.\",\n \"Custom Demand Initial Value should be between 0 and 50\":\n \"Custom Demand Initial Value should be between 0 and 50.\",\n \"Custom Demand Final Value should be between 1 and 400\": \"Custom Demand Final Value should be between 1 and 400.\",\n \"Custom Demand Stabilization Day should be between 100 and 300\":\n \"Custom Demand Stabilization Day should be between 100 and 300.\",\n \"The scenario already exists\": \"The scenario already exists.\",\n \"units/day\": \"units/day\",\n days: \"days\",\n units: \"units\",\n orders: \"orders\",\n UnitInterpolation: \"{{count}} unit\",\n UnitInterpolation_plural: \"{{count}} units\",\n DayInterpolation: \"{{count}} day\",\n DayInterpolation_plural: \"{{count}} days\",\n OrderInterpolation: \"{{count}} order\",\n OrderInterpolation_plural: \"{{count}} orders\",\n DollarsInterpolation: \"$ {{count}}\",\n UnitPerDayInterpolation: \"{{count}} unit/day\",\n UnitPerDayInterpolation_plural: \"{{count}} units/day\",\n randomize: \"Randomize\",\n seedMustBeBetweenZeroAndTwentyThousand: \"This value must be between 0 and 20,000.\",\n goToList: \"Go to your scenario list\",\n initialCashHelp: \"Amount available at the beginning of the simulation.\",\n stationOneMachineCapacityHelp: \"Amount of units produced per day by each machine in this station.\",\n stationTwoMachineCapacityHelp: \"Amount of units produced per day by each machine in this station.\",\n stationThreeMachineCapacityHelp: \"Amount of units produced per day by each machine in this station.\",\n inventoryLeadTimeHelp: \"Amount of days that takes for each order of raw material inventory to arrive.\",\n batchSetupTimeHelp: \"Amount of days that takes for each batch to be processed at Initial Batching.\",\n customLineWipLimitHelp: \"Maximum amount of units that can be processed by the Custom Line at any time.\",\n customDemandInitialValueHelp: \"Starting value for Custom Line daily demand.\",\n customDemandFinalValueHelp: \"Final value for Custom Line daily demand.\",\n customDemandStabilizationDayHelp:\n \"Virtual day at which Custom Line's demand stabilizes at the Custom Demand Final Value.\",\n seedValueHelp:\n \"This value is used to calculate random values of variance, different seed values will result in slightly different scenarios.\",\n },\n CrisisAdvancedOptions: {\n selectYourScenario: \"Select your scenario: \",\n defaultScenarioTitle: \"Default Scenario\",\n defaultScenarioDescription: \"This scenario is recommended for first time users.\",\n },\n CrisisAdvanceSimulationModal: {\n StartSimulationController_SimulationEmpty:\n \"There are no students currently enrolled in this simulation. Please wait for your students to join before starting the simulation.\",\n StartSimulationController_MoreTeamThanStudents:\n \"Please pick a number of teams that is less than the number of registered students.\",\n StartSimulationController_InsufficientTeams:\n \"Please pick a greater number of teams. The maximum number of students in the same team should be 4 or less\",\n StartSimulationController_FailedStartTeam:\n \"The process of starting the simulation has failed. Please try again. If this happens again please contact us using the support chat.\",\n StartSimulationController_SimulationNotFound:\n \"We couldn't find the simulation you are trying to start. Please try again. If this happens again please contact us using the support chat.\",\n AdvanceSimulationController_SimulatinNotFound:\n \"We couldn't find the simulation you are trying to advance. Please try again. If this happens again please contact us using the support chat.\",\n AdvanceSimulationController_SimulationFinished: \"The simulation you are trying to advance has already finished\",\n AdvanceSimulationController_FailedAdvanceSimulation:\n \"We couldn't advance the simulation. Please try again in a couple of minutes.\",\n NumberOfTeams: \"Number of teams\",\n NumberOfWeeks: \"Number of weeks\",\n AdvanceSimulationController_SimulationDoesntBelong: \"It seems that the simulation is used by another professor.\",\n AdvanceSimulationController_StartSimulation: \"The simulation hasn't started yet. Please start simulation first.\",\n StudentsAreJoined: \"Please make sure all your students have joined the simulation before starting.\",\n RegisteredStudents: \"Registered students:\",\n RecommendedNumberOfTeams: \"Recommended number of teams:\",\n RoundedUp: \"N/4 rounded up\",\n MissingSpotsMessage: \"Missing spots will be filled by bots\",\n },\n CrisisBadLink: {\n badLink: \"It seems that you may have a broken link.\",\n tryFollowing:\n \"Please double-check with your professor that you have the correct link. If that's the case, please let us know at <1>support@processimlabs.com or by using the chat on the bottom right corner of this page.\",\n },\n CrisisBuySimulation: {\n creatingSimulation: \"Creating Simulation...\",\n numberOfStudentsError: \"The number of students should be at least 4.\",\n numberOfStudents: \"Number of students\",\n whoPaysSelected: \"Who will be paying?\",\n pleaseChooseOne: \"Please choose one\",\n whoPaysHelp:\n \"The cost of the licenses can be covered by the institution or by each individual student when signing up\",\n verifyFieldsCorrectlyFilled: \"Please verify that all fields are correctly filled.\",\n CreateSimulationController_MissingPayment: \"We couldn't verify your payment, please contact us using the chat.\",\n SimulationNameInUse:\n \"Oops, that simulation name has already been taken, we suggest using something more specific\",\n SimulationNameTooLong: \"Simulation's name is too long, please try with a shorter name of maximum 25 characters.\",\n },\n CrisisDetailScreen: {\n createNextRun: \"Create Next Run\",\n GetSimulationDetailsController_CantUseAPI: \"You don't have permission to use this API, please contact support.\",\n GetSimulationDetailsController_SimulatinNotFound:\n \"We couldn't find the simulation. Please try again. If this happens again please contact us using the support chat.\",\n },\n CrisisJoinSimulation: {\n joinSimulationSuccessful: \"You have successfully joined the simulation\",\n JoinSimulationController_SimulationNotFound:\n \"Oops, it appears that the simulation you are trying to join does not exist, please contact your professor and make sure you are using the correct link.\",\n failedJoinSimulation: \"Failed to join Bindz simulation.\",\n JoinSimulationController_AlreadyJoined:\n \"You already joined this simulation, please download Bindz from your phone's store and login.\",\n JoinSimulationController_MissingPaymentSummary:\n \"It seems that the simulation you try to join has not been paid, please verify the payment with your professor\",\n JoinSimulationController_ExcededLicenses:\n \"Oops, there is no paid license available for you to join the simulation, please verify the payment with your professor\",\n },\n CrisisCommon: {\n OneStationUnknownPeers: \"One station - unknown peers\",\n OneStationKnownPeers: \"One station - known peers\",\n AllStationsKnownPeers: \"All stations\",\n GameModeHelp: \"Game mode lets you can select how your students will interact the simulation and with each other.\",\n OneStationUnknownPeersHelp:\n \"One Section - Unknown Peers: each student will manage only one section of the supply chain but they will not know who are their partners managing the other sections.\",\n OneStationKnownPeersHelp:\n \"One Section - Known Peers: each student will manage only one section of the supply chain and will also know what team they belong to.\",\n AllStationsKnownPeersHelp:\n \"All Sections - Known Peers: each student has access to all of the sections of the supply chain and will also know what team they belong to.\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyRawMaterials: \"Supply And Assembly Raw Materials\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyProductA: \"Supply And Assembly Product A\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyProductB: \"Supply And Assembly Product B\",\n SimulationPerformanceCatalogue_ProductionOneProductA: \"Production One Product A\",\n SimulationPerformanceCatalogue_ProductionOneProductB: \"Production One Product B\",\n SimulationPerformanceCatalogue_ProductionTwoProductA: \"Production Two Product A\",\n SimulationPerformanceCatalogue_ProductionTwoProductB: \"Production Two Product B\",\n SimulationPerformanceCatalogue_RetailerOnlineProductA: \"Retailer Online Product A\",\n SimulationPerformanceCatalogue_RetailerOnlineProductB: \"Retailer Online Product B\",\n SimulationPerformanceCatalogue_RetailerOfflineProductA: \"Retailer Offline Product A\",\n SimulationPerformanceCatalogue_RetailerOfflineProductB: \"Retailer Offline Product B\",\n SimulationPerformanceCatalogue_Finance: \"Finances\",\n SimulationPerformanceCatalogue_MaterialX: \"Material X Level\",\n SimulationPerformanceCatalogue_MaterialY: \"Material Y Level\",\n SimulationPerformanceCatalogue_Production: \"Production\",\n SimulationPerformanceCatalogue_FinishedGoods: \"Finished Goods\",\n SimulationPerformanceCatalogue_IncomingInventory: \"Incoming Inventory\",\n SimulationPerformanceCatalogue_StationOne: \"Station 1\",\n SimulationPerformanceCatalogue_ManualStation: \"Manual Station\",\n SimulationPerformanceCatalogue_LaborUtilization: \"Labor Utilization\",\n SimulationPerformanceCatalogue_Deliveries: \"Deliveries\",\n SimulationPerformanceCatalogue_Demand: \"Demand\",\n SimulationPerformanceCatalogue_SupplyAndAssembly: \"Supply And Assembly\",\n SimulationPerformanceCatalogue_ProductionOne: \"Production 1\",\n SimulationPerformanceCatalogue_ProductionTwo: \"Production 2\",\n SimulationPerformanceCatalogue_Retailer: \"Retailer\",\n },\n CrisisDashboards: {\n GetSimulationPerformanceController_SimulationShouldStarted:\n \"Charts with information about the teams in this simulation will be available here after you start the simulation.\",\n },\n CrisisModifyModal: {\n ModifySimulation: \"Modify Simulation\",\n cancel: \"Cancel\",\n accept: \"Apply\",\n success: \"The simulation has been successfully modified\",\n },\n CrisisPurchased: {\n GameModeTitle: \"Select a game mode\",\n SimulationStartInTheFuture: \"Simulation needs to start at least in half an hour\",\n SimulationMinDurationError: \"Simulation needs to last longer than 6 hours\",\n SimulationMaxDurationError: \"Simulation maximum duration is 52 hours\",\n AdvancedOptions: \"Advanced Options\",\n },\n CrisisShareModal: {\n ShareJoinLInk: \"Share this link with your students for them to join your simulation.\",\n },\n CrisisStandings: {\n standingsTitle: \"Standings\",\n Team: \"Team\",\n Total: \"Total Cash\",\n SupplyAndAssembly: \"Supply & Assembly\",\n ProductionOne: \"Production 1\",\n ProductionTwo: \"Production 2\",\n Retail: \"Retail\",\n EmptyStandings:\n \"We are sorry, we couldn't find any standings for your simulation. You should see standings after starting your simulation. Please come back later.\",\n All: \"All\",\n \"Team Member\": \"Team Member\",\n Email: \"Email\",\n Role: \"Role\",\n Position: \"Position\",\n },\n CrisisRunAgain: {\n CreateNextRunController_SimulationNotFound:\n \"There was an error setting up your simulation, please try again, if that doesn't work please contact us using the chat bubble or via email at support@processimlabs.com.\",\n CreateNextRunController_ErrorInitializingSimulation:\n \"There was an error initializing your simulation, please try again, if that doesn't work please contact us using the chat bubble or via email at support@processimlabs.com.\",\n scrambleTeamMembers: \"Change team members: \",\n createNextRunSuccess:\n \"Your simulation has been set up correctly. You will be able to access the new simulation from the home page.\",\n Success: \"Success!\",\n },\n CookiesDisabledScreen: {\n cookiesNotEnabled: \"Cookies seem to be disabled in your browser. Please enable them or use a different browser.\",\n },\n Common: {\n logout: \"Logout\",\n simulation: \"Simulation\",\n name: \"Name\",\n endDate: \"End Date\",\n status: \"Status\",\n back: \"Back\",\n previous: \"Previous\",\n pushNotification: \"Push Notifications\",\n team: \"Team\",\n showing: \"Showing\",\n to: \"to\",\n of: \"of\",\n continue: \"Continue\",\n notValidNumber: \"It must be a number\",\n yes: \"Yes\",\n no: \"No\",\n next: \"Next\",\n startDate: \"Start date\",\n students: \"students\",\n Students: \"Students\",\n institution: \"Institution\",\n welcome: \"Welcome\",\n Professor: \"Professor\",\n Student: \"Student\",\n accept: \"Accept\",\n cancel: \"Cancel\",\n today: \"today\",\n close: \"Close\",\n error: \"Error\",\n advanceSimulation: \"Advance Simulation\",\n home: \"Home\",\n confirmation: \"Confirmation\",\n currentDay: \"Current Simulation Day\",\n dashboards: \"Dashboards\",\n finish: \"Finish\",\n notice: \"Notice\",\n success: \"Success\",\n teams: \"Teams\",\n documents: \"Documents\",\n warning: \"Warning\",\n setLanguage: \"Set your language\",\n Initialized: \"Initialized\",\n AwaitingInitialization: \"Ready to Start\",\n Running: \"Running\",\n Finished: \"Finished\",\n profile: \"Profile\",\n Spanish: \"Spanish\",\n English: \"English\",\n tryAgain: \"Try again\",\n unknownBackendErrorMessage:\n \"Wow, that didn't go as expected, please try it again. If you see this message again please contact us using the chat.\",\n unknownBackendExceptionMessage:\n \"Wow, that didn't go as expected, please try it again. If you see this message again please contact us using the chat.\",\n scenarioManager: \"Scenario Manager\",\n \"Busy Server\": \"Oh no, the server is busy at the moment, please try again.\",\n },\n DiscountCodeModal: {\n discountCode: \"Discount Code\",\n yourCode: \"Your discount code...\",\n validate: \"Validate code\",\n \"No matching discount code found.\": \"No matching discount code found.\",\n discountSuccess: \"Your discount code has been validated successfully.\",\n errorValidatingDiscountCode:\n \"An error has occurred while validating your discount code, please check your Internet connection and reload the page.\",\n \"This discount code already expired.\": \"This discount code has already expired.\",\n \"You exceeded the number of licenses you can create with your discount code.\":\n \"You've exceeded the number of licenses you can create with your discount code.\",\n \"Discount code not found.\": \"This discount code is meant to be used with a different email.\",\n ValidateDiscountCodeController_DiscountCodeNotFound: \"No matching discount code found.\",\n ValidateDiscountCodeController_DiscountCodeExpired: \"This discount code has already expired.\",\n ValidateDiscountCodeController_ExceededNumberOfLicenses:\n \"You've exceeded the number of licenses you can create with your discount code.\",\n ValidateDiscountCodeController_DiscountCodeDoesntBelong:\n \"This discount code is meant to be used with a different user.\",\n ValidateDiscountCodeController_EmptySimulationId:\n \"Oops, the simulation was not included in the discount code validation, please try again. If this happens again please contact us using the support chat.\",\n ValidateDiscountCodeController_PaymentSummaryNotFound:\n \"Oops, it seems that the simulation has not created correctly. Verify with your professor that he created simulation.\",\n },\n DashBoardsScreen: {\n loadingTeamData: \"Loading teams data, please wait...\",\n teamAlreadySelected: \"You have already selected this team.\",\n errorGettingPerformance:\n \"An error has occurred while fetching your teams performances, please check your Internet connection and reload the page.\",\n errorGettingDecisions:\n \"An error has occurred while fetching your teams decisions, please check your Internet connection and reload the page.\",\n manageTeams: \"Manage Teams\",\n refresh: \"Refresh\",\n chooseATeam: \"Choose teams\",\n selectAll: \"Select all\",\n unselectAll: \"Unselect all\",\n noTeamsSelected: \"You have no team selected.\",\n loadingGraphMarkers: \"Drawing the graph points, please wait...\",\n General: \"General\",\n Finances: \"Finances\",\n \"Standard Line\": \"Standard Line\",\n \"Custom Line\": \"Custom Line\",\n \"Work Force\": \"Work Force\",\n \"Cash On Hand\": \"Cash On Hand\",\n Inventory: \"Inventory\",\n \"Standard Market Price\": \"Standard Market Price\",\n \"Custom Demand\": \"Custom Demand\",\n Cash: \"Cash\",\n Debt: \"Debt\",\n \"Sales Standard\": \"Sales Standard\",\n \"Sales Custom\": \"Sales Custom\",\n \"Accepted Orders\": \"Accepted Orders\",\n \"Accumulated Orders\": \"Accumulated Orders\",\n \"Queue 1\": \"Queue 1\",\n \"Station 1 Output\": \"Station 1 Output\",\n \"Queue 2\": \"Queue 2\",\n \"Initial Batching\": \"Initial Batching\",\n \"Queue 3\": \"Queue 3\",\n \"Manual Processing\": \"Manual Processing\",\n \"Queue 4\": \"Queue 4\",\n \"Final Batching\": \"Final Batching\",\n \"Queue 5\": \"Queue 5\",\n \"Inventory Costs\": \"Inventory Costs\",\n \"Salary Costs\": \"Salary Costs\",\n \"Holding Costs\": \"Holding Costs\",\n Deliveries: \"Deliveries\",\n \"Queue 2 First Pass\": \"Queue 2 First Pass\",\n \"Station 2 Output\": \"Station 2 Output\",\n \"Station 3 Output\": \"Station 3 Output\",\n \"Queue 2 Second Pass\": \"Queue 2 Second Pass\",\n \"Actual Price\": \"Actual Price\",\n \"Average Lead Time\": \"Average Lead Time\",\n Rookies: \"Rookies\",\n Experts: \"Experts\",\n days: \"Days\",\n \"Amount ($)\": \"Amount ($)\",\n \"Raw Material\": \"Raw Material\",\n Units: \"Units\",\n Workers: \"Workers\",\n day: \"Day\",\n value: \"Value\",\n \"There was a problem formatting the data. Please try again or contact support at: support@processimlabs.com\":\n \"There was a problem formatting the data. Please try again or contact support at: support@processimlabs.com to get assistance.\",\n \"No matching simulations found\": \"No matching simulations found.\",\n \"There was an error creating the report. Please try again or contact support at: support@processimlabs.com\":\n \"There was an error creating the report. Please try again or contact support at: support@processimlabs.com to get assistance.\",\n topThree: \"Top 3\",\n topFive: \"Top 5\",\n topTen: \"Top 10\",\n graphs: \"Graphs\",\n performance: \"Performance\",\n decisions: \"Decisions\",\n \"Standard Order Frequency\": \"Order Frequency\",\n \"Standard Order Size\": \"Order Size\",\n \"Standard Station One Buy\": \"Station 1 Number of Machines\",\n \"Standard Station One Capacity Allocation\": \"Station 1 Capacity Allocation to Standard Line\",\n \"Standard Initial Batch Size\": \"Initial Batch Size\",\n \"Standard Manual Work Day in Shifts\": \"Manual Work Day in Shifts\",\n \"Standard Final Batch Size\": \"Final Batch Size\",\n \"Standard Product Price\": \"Product Price\",\n \"Custom Station Two Buy\": \"Station 2 Number of Machines\",\n \"Custom Station Two Capacity Allocation\": \"Station 2 Capacity Allocation to First Pass\",\n \"Custom Station Three Buy\": \"Station 3 Number of Machines\",\n \"Reorder Point\": \"Reorder Point\",\n \"Reorder Quantity\": \"Reorder Quantity\",\n \"Get Loan\": \"Get Loan\",\n \"Pay Loan\": \"Pay Loan\",\n \"Desired Number Of Employees\": \"Desired Number Of Employees\",\n \"Simulation not owned by this user\": \"Simulation not owned by this user.\",\n noTeamsToDisplayInformation: \"This simulation doesn't have teams to show decisions graphs yet.\",\n loadingDecisionsData: \"Loading decisions data.\",\n noTeamSelectedToDisplayInformation: \"Please select a team from the list on the left.\",\n },\n DecisionHistory: {\n DecisionHistoryTitle: \"Decision History\",\n loadingDecisionHistory: \"Loading decision history...\",\n userName: \"Name\",\n description: \"Description\",\n timeSubmitted: \"Time submitted\",\n simulationDay: \"Simulation day\",\n noChangesYet: \"This team has not made any changes yet.\",\n },\n DownloadApp: {\n youAreGoodToGo: \"You are good to go!\",\n pleaseDownloadOurMobileApp:\n \"Please download our mobile app from the corresponding store by clicking on one of the buttons below:\",\n sameCredentials:\n \"Log in to the mobile app using the same username and password you use for our website and start managing your own virtual company.\",\n userPlayedBefore: `If you already have Medica Scientific installed in your phone and have played a simulation before, in the app go to Settings and tap on \"Switch Simulation\" to start playing this new one.`,\n orClickHereToDownloadItToYourWindowsComputer: \"Or click <1>here to download it to your Windows computer.\",\n },\n FAQ: {\n title: \"Frequently Asked Questions\",\n All: \"All\",\n \"Create Simulation\": \"Create Simulation\",\n \"Simulation Details\": \"Simulation Details\",\n \"Student FAQ\": \"Student FAQ\",\n \"Advance Simulation\": \"Advance Simulation\",\n Login: \"Login\",\n \"Create Account\": \"Create Account\",\n \"Join Team\": \"Join Team\",\n Payment: \"Payment\",\n Gameplay: \"Gameplay\",\n \"Standard Line\": \"Standard Line\",\n \"Custom Line\": \"Custom Line\",\n Inventory: \"Inventory\",\n \"Work Force\": \"Work Force\",\n \"Activation Code\": \"Activation Code\",\n \"Join Simulation\": \"Join Simulation\",\n \"Supply and Assembly\": \"Supply and Assembly\",\n \"Production 1\": \"Production 1\",\n \"Production 2\": \"Production 2\",\n \"Create Team\": \"Create Team\",\n },\n HomeScreen: {\n students: \"Students\",\n addNewSimulation: \"Create New Simulation\",\n startDate: \"Start Date\",\n simulations: \"Simulations\",\n errorFetchingSimulations:\n \"An error has occurred while fetching your simulations, please check your Internet connection and reload the page.\",\n loadingSimulations: \"Loading Simulations, please wait...\",\n \"User doesn't have any simulations\": \"You don't have any simulations.\",\n professorManaged: \"Professor Managed\",\n pending: \"Pending Start\",\n noSimulationList:\n \"In this section, you will see your simulations. When you are ready, click the button below to create your first simulation.\",\n \"Simulation not found\": \"You don't have any simulations.\",\n at: \"at\",\n welcomeToProcessimlabs: \"Welcome to Processim Labs!\",\n WelcomeModalGoToVideos: \"Go to Videos\",\n WelcomeModalTitle: \"Welcome to your Processim Labs account!\",\n WelcomeModalBody1:\n \"This is your home screen, where you will find all of the simulations you have created, and access and monitor them when needed.\",\n WelcomeModalBody2:\n \"We invite you to check out our Videos section. There you will find several videos that can help you navigate around our website, set up our simulation games and more.\",\n WelcomeModalNeverShowAgain: \"Never Show Again\",\n },\n JoinTeamModal: {\n ok: \"Ok\",\n retry: \"Retry\",\n cancel: \"Cancel\",\n },\n MedicaDetailScreen: {\n simulationDetails: \"Simulation Details\",\n initializationPeriod: \"Initialization Period\",\n studentInteractionPeriod: \"Student Interaction Period\",\n endingPeriod: \"Ending Period\",\n activationCode: \"Activation Code\",\n startTime: \"Start Date\",\n templateName: \"Selected Scenario\",\n modify: \"Modify\",\n standings: \"Standings\",\n registeredStudents: \"Registered Students\",\n shareSimulation: \"Share Simulation\",\n runAgain: \"Run Again\",\n decisionHistory: \"Decisions History\",\n errorFetchDetails:\n \"An error has occurred while fetching the information, please check your Internet connection and reload the page.\",\n virtualDaysPerHour: \"Virtual Days per Hour\",\n medicaVirtualDaysHelp:\n \"This is the amount of virtual days the simulation will advance per real world hour during the student interaction period.\",\n virtualDays: \"virtual days\",\n medicaStatusHelp:\n \"After a simulation has been created, it will have one these statuses: Initialized, Running or Finished.\",\n medicaInitializationPeriodHelp:\n \"Amount of virtual days that have already elapsed before the student interaction period.\",\n medicaStudentInteractionPeriodHelp: \"Amount of virtual days that the students will have to manage the company.\",\n medicaEndOfSimulationPeriodHelp: \"Amount of days that will run after the interaction period is over.\",\n professorManaged: \"Professor Managed\",\n downloadAll: \"Download all\",\n runAgainModalTitle: \"Simulation Set Up\",\n runAgainModalMessage:\n \"Before you can set up your next run your current simulation must be running or have already finished.\",\n documentationCurrentlyBeingCreated:\n \"Simulation documentation is currently being created. Please check back shortly.\",\n errorFetchingDocuments:\n \"An error has occurred while fetching the simulation documents, please check your Internet connection and reload the page.\",\n \"Please create a simulation before getting documentation.\":\n \"Please create a simulation before getting documentation.\",\n \"User doesn't own a simulation with that name\": \"User doesn't own a simulation with that name.\",\n \"User doesn't own any simulations\": \"User doesn't own any simulations.\",\n \"User doesn't own this simulation\": \"User doesn't own this simulation.\",\n documents: \"Documents\",\n at: \"at\",\n },\n MedicaBuyQuestionnaire: {\n whoPaysHelp:\n \"The cost of the licenses can be covered by the institution or by each individual student when signing up\",\n },\n MedicaBadLink: {\n badLink: \"It seems that you may have a broken link.\",\n tryFollowing: \"Please try one of the following:\",\n tryingToCreateTeam:\n \"If you are trying to create a team, double-check with your professor that you have the correct link.\",\n tryingToJoinTeam: \"If you are trying to join a team, check with your team leader instead.\",\n lastResort:\n \"If this doesn't work please reach us at <1>support@processimlabs.com or using the chat on the bottom right corner of this page.\",\n },\n ModifyModal: {\n modify: \"Modify\",\n accept: \"Accept\",\n cancel: \"Cancel\",\n name: \"Name\",\n startDate: \"Start date\",\n endDate: \"End date\",\n modifyDatesSuccess: \"Dates changed successfully.\",\n equalDatesSimulationError: \"Simulation has the same selected start and end dates.\",\n \"End Date must be after Start Date\": \"End Date must be after Start Date.\",\n \"Dates must be in the future\": \"Dates must be in the future.\",\n \"Simulation must run for at least 6 hours\": \"Simulation must run for at least 6 hours.\",\n \"Cannot change Start Time one hour before simulation starts\":\n \"Cannot change start time one hour before simulation starts.\",\n errorPosting:\n \"An error has occurred while sending the request, please check your Internet connection and try again.\",\n \"Simulation can only run for 7 days or less\": \"Simulation can only run for 7 days or less\",\n \"Bad request\":\n \"An error has occurred while sending the request please check try again or contact us at: support@processimlabs.com to get assistance.\",\n \"Bad Date format\":\n \"There was an error submitting the request. Please try again or contact us at: support@processimlabs.com for help.\",\n \"Couldn't find control team\":\n \"Couldn't find control team. Please try again or contact us at: support@processimlabs.com to get assistance.\",\n \"Couldn't find simulation Activation Code\":\n \"Couldn't find simulation Activation Code. Please try again or contact us at: support@processimlabs.com to get assistance.\",\n simulationMustStartLeastOneHourInFuture: \"The simulation must start at least one hour in the future.\",\n },\n Payment: {\n payment: \"Checkout\",\n wouldYouLikeToCompleteThePurchase: \"Would you like to complete the purchase?\",\n purchaseComplete: \"Purchase Complete\",\n creditCardInformation: \"Credit card information\",\n cardHolderName: \"Cardholder name\",\n required: \"Required field\",\n yourPaymentHasBeenSuccessfullyRegistered: \"Your payment has been successfully registered\",\n paymentSuccess: \"Payment Success\",\n purchasedCompleted: \"Purchased Completed\",\n pay: \"Pay\",\n discountCode: \"Discount Code\",\n removeDiscountCode: \"Remove Discount Code\",\n cancel: \"Cancel\",\n accept: \"Accept\",\n writeValidCode: \"Write a valid code\",\n checkingStudentPayment: \"Checking for previous payment\",\n studentAlreadyPayedMessage: \"Your payment has been verified\",\n checkPreviousPaymentError: \"There was an error checking for payment\",\n simulationAlreadyFinished:\n \"This simulation has already finished. Please check with your professor that your link is correct.\",\n \"You've already payed for this simulation\": \"You've already payed for this simulation.\",\n errorPostingPayment: \"There was an error handling your payment please try again or use a different card.\",\n expired_card: \"The card has expired. Please try another card.\",\n fraudulent: \"Your card was declined. Please contact your card issuer for more information.\",\n generic_decline: \"Your card was declined. Please contact your card issuer for more information.\",\n card_declined: \"Your card was declined. Please contact your card issuer for more information.\",\n insufficient_funds: \"Your card has insufficient funds.\",\n transaction_not_allowed:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n incorrect_cvc: \"The CVC number is incorrect. Please check your card information.\",\n invalid_cvc: \"The CVC number is incorrect. Please check your card information.\",\n card_not_supported: \"This card is not currently supported. Please try another card.\",\n duplicate_transaction:\n \"A transaction with identical amount and credit card information was submitted very recently. Check to see if a recent payment already exists.\",\n do_not_honor:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n do_not_try_again:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n currency_not_supported: \"This card does not support the specified currency. Please try another card.\",\n \"There was an error please use your link again.\":\n \"There was an error. Please try using your link in a different browser tab.\",\n },\n PaymentCrisis: {\n payment: \"Payment\",\n wouldYouLikeToCompleteThePurchase: \"Would you like to complete the purchase?\",\n purchaseComplete: \"Purchase Complete\",\n creditCardInformation: \"Credit card information\",\n cardHolderName: \"Cardholder name\",\n required: \"Required field\",\n yourPaymentHasBeenSuccessfullyRegistered: \"Your payment has been successfully registered\",\n paymentSuccess: \"Payment Success\",\n purchasedCompleted: \"Purchased Completed\",\n pay: \"Pay\",\n validate: \"Validate code\",\n cancel: \"Cancel\",\n retry: \"Use another code\",\n accept: \"Accept\",\n writeValidCode: \"Write a valid code\",\n checkingStudentPayment: \"Checking for previous payment\",\n studentAlreadyPayedMessage: \"Your payment has been verified\",\n checkPreviousPaymentError: \"There was an error checking for payment\",\n \"You've already payed for this simulation\": \"You've already payed for this simulation.\",\n errorPostingPayment: \"There was an error handling your payment please try again or use a different card.\",\n expired_card: \"The card has expired. Please try another card.\",\n fraudulent: \"Your card was declined. Please contact your card issuer for more information.\",\n generic_decline: \"Your card was declined. Please contact your card issuer for more information.\",\n card_declined: \"Your card was declined. Please contact your card issuer for more information.\",\n insufficient_funds: \"Your card has insufficient funds.\",\n transaction_not_allowed:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n incorrect_cvc: \"The CVC number is incorrect. Please check your card information.\",\n invalid_cvc: \"The CVC number is incorrect. Please check your card information.\",\n card_not_supported: \"This card is not currently supported. Please try another card.\",\n duplicate_transaction:\n \"A transaction with identical amount and credit card information was submitted very recently. Check to see if a recent payment already exists.\",\n do_not_honor:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n do_not_try_again:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n currency_not_supported: \"This card does not support the specified currency. Please try another card.\",\n \"There was an error please use your link again.\":\n \"There was an error. Please try using your link in a different browser tab.\",\n ProcessPaymentController_OnlyProfessorCreateSimulation: \"Only a professor can pay to create a simulation\",\n ProcessPaymentController_MissingPaymentSummary:\n \"We couldn't find the simulation that you are payment for, please verify with you professor that he created the simulation.\",\n ProcessPaymentController_PaymentFailed:\n \"Your payment was declined, please try again. If this happens again please contact us using the support chat.\",\n StudentHasPaidController_SimulationNotFound:\n \"Oops, it appears that the simulation you are trying to join does not exist, please contact your professor and make sure you are using the correct link.\",\n StudentHasPaidController_PaymentSummaryNotFound:\n \"Oops, we couldn't find the simulation that you are payment for, please verify with you professor that he created the simulation.\",\n StudentHasPaidController_StudentHasNotPaid: \"You will be redirected to complete the payment process.\",\n },\n PaymentSupplyChain: {\n payment: \"Payment\",\n wouldYouLikeToCompleteThePurchase: \"Would you like to complete the purchase?\",\n purchaseComplete: \"Purchase Complete\",\n creditCardInformation: \"Credit card information\",\n cardHolderName: \"Cardholder name\",\n required: \"Required field\",\n yourPaymentHasBeenSuccessfullyRegistered: \"Your payment has been successfully registered\",\n paymentSuccess: \"Payment Success\",\n purchasedCompleted: \"Purchased Completed\",\n pay: \"Pay\",\n validate: \"Validate code\",\n cancel: \"Cancel\",\n retry: \"Use another code\",\n accept: \"Accept\",\n writeValidCode: \"Write a valid code\",\n checkingStudentPayment: \"Checking for previous payment\",\n studentAlreadyPayedMessage: \"Your payment has been verified\",\n checkPreviousPaymentError: \"There was an error checking for payment\",\n \"You've already payed for this simulation\": \"You've already payed for this simulation.\",\n errorPostingPayment: \"There was an error handling your payment please try again or use a different card.\",\n card_declined: \"Your card was declined.\",\n insufficient_funds: \"Your card has insufficient funds.\",\n transaction_not_allowed:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n incorrect_cvc: \"The CVC number is incorrect. Please check your card information.\",\n invalid_cvc: \"The CVC number is incorrect. Please check your card information.\",\n card_not_supported: \"This card is not currently supported. Please try another card.\",\n duplicate_transaction:\n \"A transaction with identical amount and credit card information was submitted very recently. Check to see if a recent payment already exists.\",\n do_not_honor:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n do_not_try_again:\n \"Your payment was declined. Please contact your card issuer for more information or try another card.\",\n currency_not_supported: \"This card does not support the specified currency. Please try another card.\",\n \"There was an error please use your link again.\":\n \"There was an error. Please try using your link in a different browser tab.\",\n ProcessPaymentController_OnlyProfessorCreateSimulation: \"Only a professor can pay to create a simulation\",\n ProcessPaymentController_MissingPaymentSummary:\n \"We couldn't find the simulation that you are payment for, please verify with you professor that he created the simulation.\",\n ProcessPaymentController_PaymentFailed:\n \"Your payment was declined, please try again. If this happens again please contact us using the support chat.\",\n StudentHasPaidController_SimulationNotFound:\n \"Oops, it appears that the simulation you are trying to join does not exist, please contact your professor and make sure you are using the correct link.\",\n StudentHasPaidController_PaymentSummaryNotFound:\n \"Oops, we couldn't find the simulation that you are payment for, please verify with you professor that he created the simulation.\",\n StudentHasPaidController_StudentHasNotPaid: \"You will be redirected to complete the payment process.\",\n },\n PaymentForio: {\n payment: \"Payment\",\n purchaseComplete: \"Purchase Complete\",\n paymentSuccess: \"Activation Success\",\n cardHolderName: \"Cardholder name\",\n required: \"Required field\",\n yourPaymentHasBeenSuccessfullyRegistered: \"Your product has been successfully activated\",\n purchasedCompleted: \"Purchased Completed\",\n discountCode: \"Use Activation Code\",\n removeDiscountCode: \"Remove Activation Code\",\n yourCode: \"Your activation code...\",\n validate: \"Validate code\",\n cancel: \"Cancel\",\n retry: \"Use another code\",\n accept: \"Accept\",\n ValidateDiscountCodeController_DiscountCodeNotFound: \"No matching activation code found.\",\n discountSuccess: \"Your activation code has been validated successfully.\",\n writeValidCode: \"Write a valid code\",\n errorValidatingDiscountCode:\n \"An error has occurred while validating your activation code, please check your Internet connection and reload the page.\",\n checkingStudentPayment: \"Checking for previous payment\",\n studentAlreadyPayedMessage: \"Your payment has been verified\",\n checkPreviousPaymentError: \"There was an error checking for payment\",\n \"You've already payed for this simulation\": \"You've already payed for this simulation.\",\n ValidateDiscountCodeController_DiscountCodeExpired: \"This activation code has already expired.\",\n ValidateDiscountCodeController_ExceededNumberOfLicenses:\n \"You've exceeded the number of licenses you can create with your activation code.\",\n ValidateDiscountCodeController_DiscountCodeDoesntBelong:\n \"This activation code is meant to be used with another professor or student.\",\n activationCodeHelpText:\n \"Input your Activation Code below to set up your simulation. If you want to learn about this simulation and how to get an Activation Code please contact us at support@processimlabs.com.\",\n },\n PaymentVerificationModal: {\n retry: \"Retry\",\n title: \"Confirming Payment...\",\n defaultErrorMessage:\n \"Oops, there was an error confirming your payment. Please make sure you have internet access and try again. If this doesn't work, please contact us using the chat functionality or send us an email to support@processimlabs.com.\",\n },\n ProfileScreen: {\n profileDetails: \"Profile Details\",\n language: \"Language\",\n fullName: \"Full Name\",\n email: \"Email\",\n institution: \"Institution\",\n requestFeature: \"How can we improve?\",\n describeYourFeature: \"Describe your feature...\",\n send: \"Send\",\n featureDescription: \"Feature description\",\n pleaseDescribeYourFeature: \"Please describe your feature.\",\n tryAgain: \"Try again\",\n featureRequestedSuccessfully: \"Your feature has been successfully requested.\",\n errorRequestingFeature:\n \"An error occurred while requesting your feature, please check your internet connection and reload the page.\",\n product: \"Product\",\n },\n Purchased: {\n numbersStudents: \"Number of students\",\n course: \"Course\",\n whoPaysSelected: \"Who will be paying?\",\n knowsDateSelected: \"Do you know the start date of the simulation?\",\n next: \"Next\",\n notValidNumber: \"It must be a number\",\n startDate: \"Start date\",\n endDate: \"End date\",\n simulationName: \"Name your simulation\",\n notValidNumberMin: \"The number of students must be minimum 4\",\n notEnoughStudentErrorSimunation: \"The number of students must be minimum 1\",\n required: \"Required field\",\n pleaseChooseOne: \"Please choose one\",\n setDates: \"Please set date\",\n notSimulationName: \"Please give your simulation a name.\",\n continue: \"Continue\",\n creatingSimulation: \"Creating Simulation\",\n simulationAddedSuccessfully: \"Simulation added successfully\",\n \"Failed to initialize simulation. Please contact support.\":\n \"Failed to initialize simulation. Please contact support.\",\n \"Simulation name has already been registered\": \"Simulation name has already been registered.\",\n errorCreatingSimulation:\n \"An error has occurred creating your simulation, please check your Internet connection and reload the page.\",\n verifyFieldsCorrectlyFilled: \"Please verify that all fields are correctly filled.\",\n professorAdvanceSimulation: \"Manage simulation progress manually?\",\n simunationWhoAdvancesSimulation: \"Who will manage the progress of the simulation?\",\n simunationOptionProfessor: \"Professor\",\n simunationOptionStudents: \"Students\",\n medicaProfessorAdvanceSimulationHelp:\n 'If you pick \"No\", the simulation will advance automatically every hour during the time frame of your choosing. If you pick \"Yes\", you will manually advance the simulation yourself',\n simunationProfessorAdvanceSimulationHelp:\n 'If you select \"Students\" each team will be in charge of deciding when to advance their simulation. If you select \"Professor\" you will decide when to advance all simulations simultaneously.',\n daysToPlay: \"Student interaction days\",\n daysToPlayHelp:\n \"We recommend 100 virtual days for regular classes (2 - 3 hours), 200 virtual days for a full-day session, and 300 virtual days for sessions lasting longer than one day.\",\n errorGettingScenarios: \"Custom scenarios not available at the time.\",\n advancedOptionsButtonText: \"Advanced Options\",\n secondRunWarningMessage:\n \"The simulation you are about to set up will have the same students and team composition as the current one. If there are students yet to be registered on the previous run please wait until they do so.\",\n secondRunParagraphPartOne:\n \"Set up your next run of Medica Scientific. You can configure it as it best suits you below.\",\n secondRunParagraphPartTwo:\n \"Keep in mind that the simulation you are about to set up will have the same students and team composition as the current one. If there are students yet to be registered on the previous run please wait until they do so.\",\n invalidSimulationNameCharacterError: `Valid Characters include: A-z, 0-9, '_', and '-'`,\n \"Simulation must start at least 1 hour in the future from now\":\n \"Simulation must start at least 1 hour in the future from now.\",\n \"Total student interaction days can't be less than 100 days\":\n \"Total student interaction days can't be less than 100 days.\",\n \"Total student interaction days can't be more than 300 days\":\n \"Total student interaction days can't be more than 300 days.\",\n \"Your account is setup as a student's account. Please contact the developers.\":\n \"Your account is setup as a student's account. Please contact us at support@processimlabs.com to get assistance.\",\n \"There has been an authentication error, please contact us to get assistance.\":\n \"There has been an authentication error. Please contact us at support@processimlabs.com to get assistance.\",\n \"Please add a simulation name\": \"Please give your simulation a name.\",\n \"End Date must be after Start Date\": \"End Date must be after Start Date.\",\n \"Simulation must run for at least 6 hours\": \"Simulation must run for at least 6 hours.\",\n \"Simulation can only run for 7 days or less\": \"Simulation can only run for 7 days or less.\",\n \"A simulation with this name already exists in our database. We suggest using a more specific name.\":\n \"A simulation with this name already exists in our database. We suggest using a more specific name.\",\n \"Template not available. Please contact us at support@processimlabs.com.\":\n \"Simulation couldn't be created. Please contact us at support@processimlabs.com to get assistance.\",\n \"Advance Simulation Pace should be a positive number\": \"Advance Simulation Pace should be a positive number.\",\n \"Days per step is less than one, please run for a shorter amount of time\":\n \"Days per step is less than one, please run for a shorter amount of time.\",\n \"Unable to create a simulation at this time. Error 421\":\n \"Unable to create a simulation at this time. Please contact us at support@processimlabs.com to get assistance.\",\n \"Failed to initialize simulation. Please contact us at support@processimlabs.com\":\n \"Failed to initialize simulation. Please contact us at support@processimlabs.com to get assistance.\",\n },\n PushNotificationsScreen: {\n title: \"Title\",\n message: \"Message\",\n sendNotification: \"Send Notification\",\n allTeams: \"All Teams\",\n selectTeam: \"Select a team\",\n pushNotificationSuccess: \"The push notification has been sent successfully.\",\n errorPushing:\n \"An error has occurred while sending the notification, please check your Internet connection and try again.\",\n noTeamsList: \"No teams have been created yet.\",\n errorFetchingTeams:\n \"An error has occurred while fetching the teams, please check your Internet connection and reload the page.\",\n verifyFieldsCorrectlyFilled: \"Please verify that all fields are correctly filled.\",\n required: \"Required field\",\n \"Simulation not found for current user\": \"Simulation not found for current user.\",\n \"Simulation not owned by this user\": \"Simulation not owned by this user.\",\n pushNotificationHelpMessage:\n \"Send a notification to one or all participant teams directly to their mobile phones.\",\n suggestionsSubTitle1:\n \"Below you can find some of the issues each of the teams are having at this moment. You can use this information to help your students identify and address these problems if you want. Clicking on any of the suggestions will automatically copy the message to the Push Notifications section on the left so that you can easily send the message.\",\n suggestionsSubTitle2:\n '*These are the same messages your students would receive if you turned \"In-App Suggestions\" on when setting your simulation up.',\n },\n RegisteredStudentsScreen: {\n registeredStudentsOf: \"Registered Students\",\n userName: \"Username\",\n name: \"Name\",\n email: \"Email\",\n students: \"Students\",\n loadingRegisteredStudents: \"Loading Registered Students, please wait...\",\n notStudentList:\n \"No student has registered so far. You will be able to monitor student registrations from this section\",\n errorFetchStudents:\n \"An error has occurred while fetching the students, please check your Internet connection and reload the page.\",\n \"User does not have this simulation\": \"User does not have this simulation.\",\n },\n MedicaAdvancedOptions: {\n advancedOptionsTitle: \"Advanced Options\",\n advancedOptionsDescription1:\n \"Choose the scenario you want your students to play. These scenarios differ in market price behaviour, products demand, productivity and price of the machines among other variables. If you have a specific set of conditions you wish your students to face, please contact us at: support@processimlabs.com and we will do our best to create it for you.\",\n advancedOptionsDescription2:\n \"Additionally, you can add small variations to your chosen scenario in case you want the scenario to be slightly but not significantly different from the last time you used it. \",\n recommended: \"RECOMMENDED\",\n easyDifficultyTemplateName: \"Easy\",\n easyDifficultyTemplateDescription:\n \"Scenario meant to be used by undergrad students without a lot of experience with simulations.\",\n mediumDifficultyTemplate: \"Medium\",\n mediumDifficultyTemplateDescription: \"This scenario is recommended for first time users.\",\n hardDifficultyTemplate: \"Hard\",\n hardDifficultyTemplateDescription: \"Only students with a good understanding of simulations should use this.\",\n customOnlyDifficultyTemplate: \"Intro Scenario - Custom Line Only\",\n customOnlyTemplateDescription:\n \"For this introductory scenario, the student will manage the Custom Line exclusively\",\n loadingScenarioComparison: \"Loading Scenario Comparison, please wait...\",\n noScenarioInformation: \"No comparison scenarios to show.\",\n errorFetchScenarioInformation:\n \"An error has occurred while fetching the scenario information, please check your Internet connection and reload the page.\",\n \"User does not have this simulation\": \"User does not have this simulation.\",\n scenarioComparison: \"Scenario Comparison\",\n ATemplate: \"Easy\",\n BTemplate: \"Medium\",\n CTemplate: \"Hard\",\n DTemplate: \"Intro\",\n StandardLine: \"Standard Line\",\n CustomLine: \"Custom Line\",\n Inventory: \"Inventory\",\n InventoryUnitsPerOrder: \"Parts of Inventory per Unit\",\n StandardCostPerOrder: \"Order Placement Fee\",\n StandardStationOneCapacity: \"Station 1 - Machine Capacity (units/day)\",\n HoldingCost: \"Holding Cost per Unit\",\n RookieSalary: \"Rookie Salary\",\n ExpertSalary: \"Expert Salary\",\n ExpertProductivity: \"Expert Capacity (units/day)\",\n StandardMarketPrice: \"Market Price\",\n PriceVsDemand: \"Demand (Linear interpolation) (price ratio = product price / market price)\",\n CustomDemand: \"Custom Line Demand\",\n WIPLimit: \"WIP Limit\",\n CustomStationTwoCapacity: \"Station 2 - Machine Capacity (units/day)\",\n CustomStationThreeCapacity: \"Station 3 - Machine Capacity (units/day)\",\n CustomProductPrice: \"Product Price (Linear interpolation)\",\n InventoryOrderCost: \"Order Fee\",\n InventoryUnitCost: \"Part Cost\",\n InventoryDeliveryTime: \"Delivery Time\",\n Distribution: \"Distribution: \",\n LogNormalDistribution: \"Log normal\",\n TriangularDistribution: \"Triangular\",\n Days: \"day\",\n Days_plural: \"days\",\n Units: \"unit\",\n Units_plural: \"units\",\n Parts: \"part\",\n Parts_plural: \"parts\",\n DollarsPerDay: \"{{dollarValue}}/day\",\n UnitsPerDay: \"{{value}} unit/day\",\n UnitsPerDay_plural: \"{{value}} units/day\",\n Orders: \"order\",\n Orders_plural: \"orders\",\n lowerBound: \"Lower Bound: \",\n upperBound: \"Upper Bound: \",\n mode: \"Mode: \",\n mean: \"Mean: \",\n stdDev: \"Standard deviation: \",\n graphBelow: \"Graph Below\",\n playerConfigurable: \"Player Decisions (Initial values)\",\n StandardOrderQuantity: \"Order Quantity\",\n StandardOrderFrequency: \"Order Frequency\",\n StationOneCapacityAllocation: \"Station One Capacity Allocation\",\n StandardProductPrice: \"Product Price\",\n StationTwoAllocation: \"Station Two Allocation\",\n InventoryReorderPoint: \"Reorder Point\",\n InventoryReorderQuantity: \"Reorder Quantity\",\n WorkForce: \"Workforce\",\n NumberOfEmployees: \"Number Of Employees\",\n Employees: \"employees\",\n Employees_plural: \"employee\",\n unitsIfPriceRatio: \"{{ units }} units if price ratio is {{ ratio }}\",\n addVariationInformationModalTitle: \"New features in Medica Scientific!\",\n addVariationInformationModalSubtitle: \"Introducing small variations to your scenarios.\",\n addVariationInformationModalBody1:\n \"Now you can choose to add small variations to your selected scenario. This will slightly modify some variables within the simulation like Standard Market Price, Custom Demand, machine and employee capacity; but not impact their overall behaviour. In other words, we are just randomizing the noise component on top of the main waveforms.\",\n addVariationInformationModalBody2: \"Both of these new features are available in the Advanced Options section.\",\n addVariationInformationModalBody3: \"This new feature is available in the Advanced Options section.\",\n neverShowThisAgain: \"Never show this again\",\n selectYourScenario: \"Select your scenario: \",\n addVariation: \"Add variation.\",\n addSuggestions: \"Enable in-app suggestions:\",\n addSuggestionsExplanation:\n \"Our mobile app can give your students feedback while they are playing our simulation game. These suggestions will help them realize when a problem has arisen in their virtual company. If you choose to turn suggestions on, our app will sporadically notify your students if their company has issues like inventory stock-outs, bottlenecks, high employee turnover, too many accumulated orders, high Custom line lead times, low employee utilization or if they are selling their Standard products too cheap.\",\n addSuggestionsInformationModalSubtitle: \"In-app suggestions\",\n addSuggestionsInformationModalBody:\n \"Our mobile app can now notify your students when issues arise during their simulation exercise. If you choose to turn suggestions on, our app will sporadically notify your students if their company has issues like inventory stock-outs, bottlenecks, high employee turnover, etc.\",\n newFeaturesInRegularAndEasyScenarioSubtitle: \"Holding Costs on Medium Scenario\",\n newFeaturesInRegularAndEasyScenarioBody:\n \"Our default Medium Scenario now includes holding costs on all queues and inventory. Units stored in these places will have an associated fixed cost per day stored. This should disincentivise students from hoarding units in their production lines or having poor inventory management policies.\",\n },\n ScenarioManagerScreen: {\n scenarioManager: \"Scenario Manager\",\n loadingProfessorScenarioList: \"Loading your scenario list, please wait...\",\n noProfessorScenarioList:\n \"You can create custom scenarios for Medica Scientific, you will see your created scenarios in this section.\",\n errorFetchProfessorScenarioList:\n \"An error has occurred while fetching you scenario list, please check your Internet connection and reload the page.\",\n scenarioManagerIntro:\n \"Welcome to the Scenario Manager. Here you will be able to create custom scenarios for your simulations. This tool is available for Medica Scientific only.\",\n scenarioName: \"Scenario Name\",\n createdAt: \"Created At\",\n lastUsedDate: \"Last time used\",\n timesUsed: \"Times used\",\n edit: \"Edit\",\n delete: \"Delete\",\n close: \"Close\",\n createScenario: \"Create new scenario\",\n deleteScenario: \"Delete Scenario\",\n scenarioDeletedSuccesfully: \"Your scenario has been deleted successfully.\",\n errorDeletingScenario: \"An error has occurred while deleting your scenario, try again.\",\n errorFetchProfessorDeleteScenario:\n \"An error has occurred while deleting your scenario, please check your Internet connection and reload the page.\",\n areYouSureYouWantDeleteScenario: \"Are you sure do you want delete your scenario <1>{{scenarioName}}?\",\n },\n ShareModal: {\n title: \"Share your simulation\",\n share:\n \"Share this link with the team leaders in your class. We have sent you an email with additional information and instructions for you to forward to your students on how to get started.\",\n shareStudent:\n \"Share this link with the classmates that you want joining your team. We have sent additional information to your email.\",\n copy: \"Copy to Clipboard\",\n cancel: \"Cancel\",\n copySuccess: \"Your link was copied to clipboard.\",\n shareActivationCode: \"Use this activation code to share your simulation.\",\n },\n SimunationDetailScreen: {\n simulationDetails: \"Simulation Details\",\n activationCode: \"Activation Code\",\n standings: \"Standings\",\n registeredStudents: \"Registered Students\",\n errorFetchDetails:\n \"An error has occurred while fetching the information, please check your Internet connection and reload the page.\",\n \"Simulation not found\": \"Simulation not found.\",\n userAdvanceConfirmation: \"Are you sure you want to advance the simulation 5 years?\",\n advancingSimulation: \"Advancing simulation\",\n simulationAdvancedSuccessfully: \"Your simulation has been advanced 5 years successfully.\",\n simunationCurrentDayHelp:\n \"This is the current year of the team that has advanced the furthest in the simulation.\",\n },\n StandingsScreen: {\n standings: \"Standings\",\n cash: \"Cash\",\n teamCode: \"Team Code\",\n teams: \"Teams\",\n loadingStandings: \"Loading Standings, please wait...\",\n notStandingsList: \"No team has registered for this simulation.\",\n errorFetchStandings:\n \"An error has occurred while fetching the standings, please check your Internet connection and reload the page.\",\n score: \"Score\",\n gdp: \"GDP\",\n year: \"Year\",\n standingsHelpMessage: \"Teams get ranked based on their company's cash balance.\",\n standingsSimunationHelpMessage:\n \"The score of a team is calculated based on its relative performance to other teams in all 3 areas: SPI, GDP and cash.\",\n totalTeams: \"Total teams\",\n \"Simulation not owned by this user\": \"Simulation not owned by this user.\",\n shareModalInformation: \"Use this link to share the simulation standings with the world.\",\n shareModalCopy: \"Copy\",\n shareModalCopySuccess: \"Your link was copied to clipboard.\",\n share: \"Share\",\n firstName: \"First Name\",\n lastName: \"Last Name\",\n email: \"Email\",\n joinTeamLink: \"Team Link\",\n },\n StudentCreateTeam: {\n createTeamDescription: \"Choose a name for your team\",\n teamName: \"Team name\",\n \"Team already exists.\": \"Team name already exist. Please try with a different team name.\",\n createTeam: \"Create Team\",\n creatingTeam: \"Creating Team\",\n createTeamSuccess: \"Team created successfully!\",\n play: \"Start Playing!\",\n sureYouWantCreateTeam: \"Are you sure you want to create team\",\n welcomeToProcessimLabs: \"Welcome to Processim Labs\",\n youAreAboutToCreateATeam: \"You are about to create a team for our simulation Medica Scientific.\",\n wereYouAssignedAsATeamLeader: \"Were you assigned as a team leader? (There can only be one per team).\",\n \"You can only create one team.\":\n \"You can only create one team per simulation. We will now redirect you to our FAQ in case you have additional questions.\",\n errorCreatingTeam:\n \"There was an error trying to create your team, check your Internet connection and reload the page.\",\n \"Simulation not found\":\n \"Simulation not found, please confirm that the link provided by your professor is the correct.\",\n \"Simulation missing. Check code.\":\n \"Simulation not found, please confirm that the link provided by your professor is the correct.\",\n \"There has been an authentication error, please contact us to get assistance.\":\n \"There has been an authentication error. Please contact us at support@processimlabs.com to get assistance.\",\n \"Server is currently busy please try again.\": \"Server is currently busy please try again.\",\n \"Invalid activation code.\":\n \"Invalid activation code. Please confirm that the link provided by your professor is the correct.\",\n \"Max number of registrations exceeded. Please contact your professor.\":\n \"Max number of registrations exceeded. Please contact your professor.\",\n \"Activation code has already expired. Please contact your professor.\":\n \"Activation code has already expired. Please contact your professor.\",\n \"Unable to create team at this time. Error 422\":\n \"Unable to create team at this time. Please contact us at support@processimlabs.com to get assistance.\",\n invalidTeamNameCharacterError: `Valid Characters include: A-z, 0-9, '_', and '-'`,\n retry: \"Retry\",\n },\n StudentInstructionsModal: {\n teamLeaderInstructions: \"Team lead instructions\",\n studentInstructions: \"Team member instructions\",\n leaderIntroduction: \"Awesome! Here is what you need to do now:\",\n noLeaderIntroduction: \"In that case, here is what you need to do:\",\n afterDismissingThisPopUpYouWillNeedCreateOrLogin:\n \"After dismissing this pop up you will need to create or login to your account with us.\",\n thenEnterTheNameOfYourChoiseForYourTeam: \"Enter the name of your choice for your team.\",\n youWillBePresentedWithAUniqueLink:\n \"You will be presented with a unique link. Please share it with your teammates for them to join you. This link is private and shouldn't be shared outside of your team.\",\n downloadOurMobileAppAndLogIn:\n \"Download our mobile app and log in using the same username and password you used on our website.\",\n enjoyManagingYourVirtualCompany: \"Enjoy managing your virtual company!\",\n waitForYourTeamLeadToShareTheTeamsUniqueLinkWithYou:\n \"Wait for your team lead to share the team's unique link with you.\",\n clickOnTheLinkToSetUpYourAccountOnOurWebsite: \"Click on the link to set up your account on our website.\",\n youCanNowDownloadTheMobileAppOnYourSmartphone:\n \"You can then download the mobile app on your smartphone. The mobile app is accessed with the same username and password that you used to set up your account on our website.\",\n },\n StudentJoinTeamScreen: {\n joiningTeam: \"Joining team...\",\n joinTeamSuccess: \"You've successfully joined team:\",\n errorJoiningTeam: \"There was an error please try again.\",\n \"Simulation missing. Check code.\": \"Simulation not found, please check your team code.\",\n \"User already registered in this team\":\n \"You are already part of this team and can start using the simulation from our mobile app. We will now redirect you to our FAQ in case you have additional questions.\",\n sureYouWantJoinTeam: \"Are you sure you want to join team\",\n noTeamMessageError:\n \"There are not team name, please try enter again with the link provided by your Team Leader or your Professor.\",\n noJoinTeamTeamCode:\n \"There was an error while attempting to join team. Please use the link provided by your teammate once again. If this happens again, please contact us at support@processimlabs.com\",\n },\n StudentsLoginScreen: {\n itSeemsYouAreNotInTheRightPlace:\n \"It seems you are not in the right place. Please read the FAQ below to find what you should do next.\",\n areYouTryingToJoinSimulationQuestion: \"Are you trying to join a simulation?\",\n areYouTryingToJoinSimulationResponse:\n \"Your professor or team leader should provide you with a link to get started.\",\n haveYouAlreadyJoinedATeamQuestion:\n \"You already joined a team through our website but don't know what to do next?\",\n haveYouAlreadyJoinedATeamResponse:\n \"You should download our app, Medica Scientific, from the Android or Apple store and login with the same username and password you used to access our website.\",\n doYouWantToChangeTeamNameQuestion: \"Do you want to change the name of an existing team?\",\n doYouWantToChangeTeamNameResponse: \"Unfortunately, you will have to play with the selected name.\",\n areYouTryingToCreateSecondTeamQuestion: \"Are you trying to create a second team?\",\n areYouTryingToCreateSecondTeamResponse: \"Each team leader can only create one team.\",\n doYouWantToSwitchTeamsQuestion: \"Do you want to switch teams?\",\n doYouWantToSwitchTeamsResponse:\n \"Just ask the leader for the unique team link and you will be moved to the new team. Be aware that you can only be assigned to one team at a time.\",\n canIBePartOfTwoTeamsQuestion: \"Can I be part of two teams in the same simulation?\",\n canIBePartOfTwoTeamsResponse: \"No, you can only be assigned to one team at a time.\",\n canIAccessTheAppBeforeSimulationStartsQuestion: \"Can I access the app before the simulation starts?\",\n canIAccessTheAppBeforeSimulationStartsResponse:\n \"Yes, you can access the app but you won't be able to make any changes to it until the simulation starts.\",\n howDoIKnowSimulationStartsEndsQuestion: \"How do I know when my simulation starts/ends?\",\n howDoIKnowSimulationStartsEndsResponse: \"Your professor should provide you with this information.\",\n contactUs:\n \"If you still have questions you can contact us through the chat on the bottom right or by writing to \",\n supportEmail: \"support@processimlabs.com.\",\n howDoISwitchFromAPreviousSimulationQuestion: \"How do I switch from a previous simulation into a new one?\",\n howDoISwitchFromAPreviousSimulationResponse: `After your professor lets you know that he or she have already created the new simulation, in the Medica Scientific mobile app go to Settings and tap on \"Switch Simulation\".`,\n FAQ: \"FAQ\",\n },\n SupplyChainAdvancedOptions: {\n defaultScenarioTitle: \"Default Scenario.\",\n defaultScenarioDescription: \"This scenario is recommended for first time users.\",\n selectYourScenario: \"Select your scenario: \",\n },\n SupplyChainAdvanceSimulationModal: {\n StartSimulationController_SimulationEmpty:\n \"There are no students currently enrolled in this simulation. Please wait for your students to join before starting the simulation.\",\n StartSimulationController_MoreTeamThanStudents:\n \"Please pick a number of teams that is less than the number of registered students.\",\n StartSimulationController_InsufficientTeams:\n \"Please pick a greater number of teams. The maximum number of students in the same team should be 4 or less\",\n StartSimulationController_FailedStartTeam:\n \"The process of starting the simulation has failed. Please try again. If this happens again please contact us using the support chat.\",\n StartSimulationController_SimulationNotFound:\n \"We couldn't find the simulation you are trying to start. Please try again. If this happens again please contact us using the support chat.\",\n AdvanceSimulationController_SimulatinNotFound:\n \"We couldn't find the simulation you are trying to advance. Please try again. If this happens again please contact us using the support chat.\",\n AdvanceSimulationController_SimulationFinished: \"The simulation you are trying to advance has already finished\",\n AdvanceSimulationController_FailedAdvanceSimulation:\n \"We couldn't advance the simulation. Please try again in a couple of minutes.\",\n AdvanceSimulationController_SimulationDoesntBelong: \"It seems that the simulation is used by another professor.\",\n AdvanceSimulationController_StartSimulation: \"The simulation hasn't started yet. Please start simulation first.\",\n NumberOfTeams: \"Number of teams\",\n NumberOfWeeks: \"Number of weeks\",\n StudentsAreJoined: \"Please make sure all your students have joined the simulation before starting.\",\n RegisteredStudents: \"Registered students:\",\n RecommendedNumberOfTeams: \"Recommended number of teams:\",\n RoundedUp: \"N/4 rounded up\",\n MissingSpotsMessage: \"Missing spots will be filled by bots\",\n },\n SupplyChainBuySimulation: {\n creatingSimulation: \"Creating Simulation...\",\n numberOfStudentsError: \"The number of students should be at least 4.\",\n numberOfStudents: \"Number of students\",\n CreateSimulationController_MissingPayment: \"We couldn't verify your payment, please contact us using the chat.\",\n SimulationNameInUse:\n \"Oops, that simulation name has already been taken, we suggest using something more specific\",\n SimulationNameTooLong: \"Simulation's name is too long, please try with a shorter name of maximum 25 characters.\",\n whoPaysSelected: \"Who will be paying?\",\n pleaseChooseOne: \"Please choose one\",\n whoPaysHelp:\n \"The cost of the licenses can be covered by the institution or by each individual student when signing up\",\n },\n SupplyChainCommon: {\n OneStationUnknownPeers: \"One section - unknown peers\",\n OneStationKnownPeers: \"One section - known peers\",\n AllStationsKnownPeers: \"All sections - Known Peers\",\n Decision_RiceSupplier: \"Rice Supplier\",\n Decision_RiceReorderQuantity: \"Rice Reorder Quantity\",\n Decision_RiceReorderPoint: \"Rice Reorder Point\",\n Decision_AgaveReorderQuantity: \"Agave Reorder Quantity\",\n Decision_RicelyOrder: \"Ricely Order\",\n Decision_KrispsOrder: \"Krisps Order\",\n Decision_RicelyOrderSize: \"Ricely Order Size\",\n Decision_KrispsOrderSize: \"Krisps Order Size\",\n Decision_MachinesRicely: \"Machines Ricely\",\n Decision_MachinesKrisps: \"Machines Krisps\",\n Decision_RicelyEmployees: \"Ricely Employees\",\n Decision_KrispsEmployees: \"Krisps Employees\",\n Decision_RicelyShiftLength: \"Ricely Shift Length\",\n Decision_KrispsShiftLength: \"Krisps Shift Length\",\n Decision_LMRicelyReorderQuantity: \"Ricely Reorder Quantity\",\n Decision_LMRicelyReorderPoint: \"Ricely Reorder Point\",\n Decision_LMKrispsOrderSize: \"Krisps Order Size\",\n Decision_AuroraTransportMethod: \"Aurora - Transport Method\",\n Decision_AuroraDispatcher: \"Aurora - Dispatcher\",\n Decision_BarcelonaOrderUpToSize: \"Barcelona - Order Up To Size\",\n Decision_BarcelonaWarehouseState: \"Barcelona - Warehouse State\",\n Decision_BarcelonaSupplier: \"Barcelona - Supplier\",\n Decision_BarcelonaTransportMethod: \"Barcelona - Transport Method\",\n Decision_BarcelonaDispatcher: \"Barcelona - Dispatcher\",\n Decision_GenevaOrderUpToSize: \"Geneva - Order Up To Size\",\n Decision_GenevaWarehouseState: \"Geneva - Warehouse State\",\n Decision_GenevaSupplier: \"Geneva - Supplier\",\n Decision_GenevaTransportMethod: \"Geneva - Transport Method\",\n Decision_GenevaDispatcher: \"Geneva - Dispatcher\",\n Decision_AlamedaWarehouseState: \"Alameda - Warehouse State\",\n Decision_AlamedaSupplier: \"Alameda - Supplier\",\n Decision_AlamedaProductPrice: \"Alameda - Product Price\",\n Decision_AlamedaTransportMethod: \"Alameda - Transport Method\",\n Decision_BelmontOrderSize: \"Belmont - Order Size\",\n Decision_BelmontWarehouseState: \"Belmont - Warehouse State\",\n Decision_BelmontSupplier: \"Belmont - Supplier\",\n Decision_BelmontProductPrice: \"Belmont - Product Price\",\n Decision_BelmontTransportMethod: \"Belmont - Transport Method\",\n Decision_GrantOrderSize: \"Grant - Order Size\",\n Decision_GrantWarehouseState: \"Grant - Warehouse State\",\n Decision_GrantSupplier: \"Grant - Supplier\",\n Decision_GrantProductPrice: \"Grant - Product Price\",\n Decision_GrantTransportMethod: \"Grant - Transport Method\",\n Decision_WarehouseBuilt: \"Built\",\n Decision_WarehouseClosed: \"Closed\",\n Decision_SupplierA: \"Supplier A\",\n Decision_SupplierB: \"Supplier B\",\n Decision_TransportMethodTruck: \"Truck\",\n Decision_TransportMethodDrone: \"Drone\",\n Decision_TransportMethodLand: \"Land\",\n Decision_TransportMethodAir: \"Air\",\n SupplyAndAssembly: \"Supply And Assembly\",\n Production: \"Production\",\n NetworkA: \"Augusta\",\n NetworkB: \"Buenavista\",\n LastMile: \"Last Mile\",\n GameModeHelp: \"Game mode lets you can select how your students will interact the simulation and with each other.\",\n GameMode: \"Modo de Juego\",\n OneStationUnknownPeersHelp:\n \"One Section - Unknown Peers: each student will manage only one section of the supply chain but they will not know who are their partners managing the other sections.\",\n OneStationKnownPeersHelp:\n \"One Section - Known Peers: each student will manage only one section of the supply chain and will also know what team they belong to.\",\n AllStationsKnownPeersHelp:\n \"All Sections - Known Peers: each student has access to all of the sections of the supply chain and will also know what team they belong to.\",\n LastMileHelp:\n \"Last Mile: Up to 2 students per team will manage 2 different comercial regions, its logistics and distribution channels.\",\n SimulationPerformanceCatalogue_AccumulatedOrders: \"Accumulated Orders\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyInventory: \"Supply And Assembly - Inventory\",\n SimulationPerformanceCatalogue_MaterialX: \"Rice\",\n SimulationPerformanceCatalogue_MaterialY: \"Agave\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyProductA: \"Supply And Assembly - Ricely\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyProductB: \"Supply And Assembly - Krisps\",\n SimulationPerformanceCatalogue_Production: \"Production\",\n SimulationPerformanceCatalogue_FinishedGoods: \"Finished Goods\",\n SimulationPerformanceCatalogue_ProductionProductA: \"Production - Ricely\",\n SimulationPerformanceCatalogue_IncomingInventory: \"Incoming Inventory\",\n SimulationPerformanceCatalogue_StationOne: \"Station 1\",\n SimulationPerformanceCatalogue_ManualLaborQueue: \"Manual Labor Queue\",\n SimulationPerformanceCatalogue_ManualStation: \"Manual Station\",\n SimulationPerformanceCatalogue_LaborUtilization: \"Labor Utilization\",\n SimulationPerformanceCatalogue_ProductionProductB: \"Production - Krisps\",\n SimulationPerformanceCatalogue_NetworkA: \"Augusta Network\",\n SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseAlphaFromLocalSupplier:\n \"Aurora Warehouse - Incoming Inventory\",\n SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseBetaFromLocalSupplier:\n \"Barcelona Warehouse - Incoming Inventory\",\n SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseGammaFromLocalSupplier:\n \"Geneva Warehouse - Incoming Inventory\",\n SimulationPerformanceCatalogue_WarehouseAProductA: \"Aurora Warehouse - Ricely Level\",\n SimulationPerformanceCatalogue_WarehouseBProductA: \"Barcelona Warehouse - Ricely Level\",\n SimulationPerformanceCatalogue_WarehouseCProductA: \"Geneva Warehouse - Ricely Level\",\n SimulationPerformanceCatalogue_RegionAProductADemand: \"Aurora Warehouse - Demand\",\n SimulationPerformanceCatalogue_RegionBProductADemand: \"Barcelona Warehouse - Demand\",\n SimulationPerformanceCatalogue_RegionCProductADemand: \"Geneva Warehouse - Demand\",\n SimulationPerformanceCatalogue_RegionAProductABacklog: \"Aurora Warehouse - Backlog\",\n SimulationPerformanceCatalogue_RegionBProductABacklog: \"Barcelona Warehouse - Backlog\",\n SimulationPerformanceCatalogue_RegionCProductABacklog: \"Geneva Warehouse - Backlog\",\n SimulationPerformanceCatalogue_NetworkB: \"Buenavista Network\",\n SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseAlphaFromLocalSupplier:\n \"Alameda Warehouse - Incoming Inventory\",\n SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseBetaFromLocalSupplier:\n \"Belmont Warehouse - Incoming Inventory\",\n SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseGammaFromLocalSupplier:\n \"Grant Warehouse - Incoming Inventory\",\n SimulationPerformanceCatalogue_WarehouseAProductB: \"Alameda Warehouse - Krisps Level\",\n SimulationPerformanceCatalogue_WarehouseBProductB: \"Belmont Warehouse - Krisps Level\",\n SimulationPerformanceCatalogue_WarehouseCProductB: \"Grant Warehouse - Krisps Level\",\n SimulationPerformanceCatalogue_RegionAProductBDemand: \"Alameda Warehouse - Demand\",\n SimulationPerformanceCatalogue_RegionBProductBDemand: \"Belmont Warehouse - Demand\",\n SimulationPerformanceCatalogue_RegionCProductBDemand: \"Grant Warehouse - Demand\",\n SimulationPerformanceCatalogue_Finance: \"Finance\",\n SimulationPerformanceCatalogue_SupplyAndAssembly: \"Supply And Assembly\",\n },\n SupplyChainDetailScreen: {\n simulationDetails: \"Simulation Details\",\n GetSimulationDetailsController_CantUseAPI: \"You don't have permission to use this API, please contact support.\",\n GetSimulationDetailsController_SimulatinNotFound:\n \"We couldn't find the simulation. Please try again. If this happens again please contact us using the support chat.\",\n },\n SupplyChainJoinSimulation: {\n joinSimulationSuccessful: \"You have successfully joined the simulation\",\n JoinSimulationController_SimulationNotFound:\n \"Oops, it appears that the simulation you are trying to join does not exist, please contact your professor and make sure you are using the correct link.\",\n failedJoinSimulation: \"Failed to join Supply Grain simulation.\",\n JoinSimulationController_AlreadyJoined: \"You have already joined the simulation\",\n JoinSimulationController_MissingPaymentSummary:\n \"It seems that the simulation you try to join has not been paid, please verify the payment with your professor\",\n JoinSimulationController_ExcededLicenses:\n \"Oops, there is no paid license available for you to join the simulation, please verify the payment with your professor\",\n },\n SupplyChainModifyModal: {\n ModifySimulation: \"Modify Simulation\",\n cancel: \"Cancel\",\n accept: \"Apply\",\n success: \"The simulation has been successfully modified\",\n },\n SupplyChainPurchased: {\n advancePeriod: \"The simulation will advance every:\",\n GameModeTitle: \"Select a game mode\",\n SimulationStartInTheFuture: \"Simulation needs to start at least in half an hour\",\n SimulationMinDurationError: \"Simulation needs to last longer than {{hours}} hours\",\n SimulationMaxDurationError: \"Simulation maximum duration is {{hours}} hours\",\n TimeBetweenAdvancesOneHour: \"1 hour\",\n TimeBetweenAdvancesTwoHours: \"2 hours\",\n AdvancedOptions: \"Advanced Options\",\n },\n SupplyChainRunAgain: {\n CreateNextRunController_SimulationNotFound:\n \"There was an error setting up your simulation, please try again, if that doesn't work please contact us using the chat bubble or via email at support@processimlabs.com.\",\n CreateNextRunController_ErrorInitializingSimulation:\n \"There was an error initializing your simulation, please try again, if that doesn't work please contact us using the chat bubble or via email at support@processimlabs.com.\",\n scrambleTeamMembers: \"Change team members: \",\n createNextRunSuccess:\n \"Your simulation has been set up correctly. You will be able to access the new simulation from the home page.\",\n Success: \"Success!\",\n },\n SupplyChainShareModal: {\n ShareJoinLInk: \"Share this link with your students for them to join your simulation.\",\n },\n SupplyChainStandings: {\n Team: \"Team\",\n Total: \"Total Cash\",\n SupplyAndAssembly: \"Supply & Assembly\",\n Production: \"Production\",\n NetworkA: \"Augusta Network\",\n NetworkB: \"Buenavista Network\",\n All: \"All\",\n EmptyStandings:\n \"We are sorry, we couldn't find any standings for your simulation. You should see standings after starting your simulation. Please come back later.\",\n \"Team Member\": \"Team Member\",\n Email: \"Email\",\n Role: \"Role\",\n },\n RunAgainScreen: {\n addedSuccessfully:\n \"We are currently copying the students and teams from the previous simulation to this one. This process may take between 5 and 10 minutes. You and your students will be notified by email when it is finished.\",\n \"Account not found.\":\n \"Account not found. Please try again or contact us at: support@processimlabs.com to get assistance.\",\n \"Simulation not found.\":\n \"Simulation not found. Please try again or contact us at: support@processimlabs.com to get assistance.\",\n \"Your next run is being created, we will notify you when it's finished.\":\n \"We have received your request for a second run, you should be able to access it from your Home screen in just a few minutes.\",\n \"Total student interaction can't be less than 100 days\": \"Total student interaction can't be less than 100 days.\",\n \"Total student interaction can't be more than 300 days\": \"Total student interaction can't be more than 300 days.\",\n },\n TutorialsScreen: {\n loadingTutorials: \"Loading videos, please wait...\",\n noVideosList: \"There are currently no videos list available.\",\n Simunation: \"Simunation\",\n MedicaScientific: \"Medica Scientific\",\n errorFetchVideos:\n \"An error has occurred while fetching the your videos, please check your Internet connection and reload the page.\",\n },\n },\n es: {\n AbogadosAdvanceSimulationModal: {\n AdvanceSimulationController_SimulationNotFound:\n \"No hemos podido encontrar la simulación que intentas avanzar. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n AdvanceSimulationController_SimulationFinished: \"La simulación que intentas avanzar ya ha finalizado.\",\n AdvanceSimulationController_FailedAdvanceTeam:\n \"No pudimos avanzar algunos equipos. Por favor, avanza de nuevo la simulación para intentar actualizar los equipos.\",\n AdvanceSimulationController_WrongSimulation: \"Parece que la simulación es usada por otro profesor.\",\n AdvanceSimulationController_SimulationHasNoTeams:\n \"No hay estudiantes registrados en esta simulación. Por favor asegúrate de que los estudiantes se hayan registrado para poder iniciar la simulación.\",\n AdvanceSimulationController_CouldNotSaveChanges:\n \"No se pudieron guardar los datos de la simulación. Por favor no avance la simulación y contáctenos usando el chat de soporte.\",\n StartSimulationMessage:\n \"Por favor considere que una vez inicializada la simulación, los estudiantes no podrán crear nuevos equipos, sin embargo podrán unirse a un equipo ya existente.\",\n AdvanceMessage: \"Avanza la simulación un trimestre.\",\n outdatedTeams: \"Equipos que no lograron avanzar: \",\n },\n AdvanceSimulationModal: {\n advanceSimulation: \"Avanzar Simulación\",\n startSimulation: \"Comenzar Simulación\",\n start: \"Iniciar\",\n finishSimulation: \"Finalizar Simulación\",\n advance: \"Avanzar\",\n remainingDays: \"Período restante de interacción del alumno: \",\n currentDays: \"Día Actual\",\n daysToAdvance: \"Días para avanzar\",\n futureDays: \"Día Futuro\",\n warningFinishMessage:\n 'Esta es la última oportunidad que tienen sus Estudiantes para hacer cambios dentro de la simulación. Una vez que presione el botón \"Finalizar\", transcurrirán 50 días virtuales y finalizará la simulación.',\n currentYear: \"Año Actual\",\n yearsToAdvance: \"Años para Avanzar\",\n resultingYear: \"Año Resultante\",\n simulationFinishedSuccessfully: \"La simulación finalizó con éxito.\",\n \"Error. Simulation can only be advanced after at least one team has been created.\":\n \"La simulación solo se puede avanzar después de que se haya creado al menos un equipo.\",\n \"Simulation advanced successfully.\": \"La simulación avanzó con éxito.\",\n \"Please use a non negative amount of days to simulate\": \"Utilice una cantidad de días no negativa para simular.\",\n \"There has been an authentication error, please contact us at support@processimlabs.com\":\n \"Ha habido un error de autenticación, contáctenos en support@processimlabs.com para obtener ayuda.\",\n \"Your account is setup as a student's account. please contact us at support@processimlabs.com\":\n \"Su cuenta está configurada como la cuenta de un estudiante. contáctenos en support@processimlabs.com para obtener asistencia.\",\n \"You don't seem to own this simulation. Please contact us at support@processimlabs.com.\":\n \"Parece que no tienes esta simulación. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n \"Couldn't find control team\":\n \"No se pudo encontrar el equipo de control. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n \"This simulation advances on its own\": \"Esta simulación avanza por sí sola.\",\n \"Simulation is not running.\": \"La simulación no se está ejecutando.\",\n \"Nothing to run\": \"Nada para correr.\",\n \"There was an error advancing please try again.\": \"Se produjo un error al avanzar. Inténtalo de nuevo.\",\n \"Other operation running, try again.\":\n \"No hemos podido avanzar la simulación en este momento. Por favor pídele a tus estudiantes que no hagan cambios temporalmente mientras avanzas la simulación e inténtalo de nuevo. Gracias por tu paciencia.\",\n days: \"días.\",\n errorAdvancingSimulation:\n \"Se ha producido un error al hacer avanzar su simulación, compruebe su conexión a Internet y vuelva a cargar la página.\",\n advanceAgain: \"Avanzar de nuevo\",\n errorSimultaneousChangeRequest: `\"¡Uh, oh! Parece que uno de tus alumnos estaba tratando de cambiar algo en la simulación cuando intentaste avanzar. Por favor, hazles saber que estás a punto de intentarlo de nuevo\".`,\n BackendSimulation_SimulationLimitError:\n \"La simulación ha terminado. Esperamos que hayas disfrutado la experiencia. ¡Gracias por participar!\",\n },\n AuthComponents: {\n loadingProfile: \"Cargando perfil, por favor espere...\",\n loadingPage: \"Cargando la página, por favor espere...\",\n },\n CatalogueScreen: {\n catalogue: \"Catálogo\",\n getCreative:\n \"Este es nuestro catálogo de simulaciones. No dude en contactarnos si desea obtener más información sobre cualquiera de ellas.\",\n select: \"Seleccionar\",\n back: \"Atrás\",\n medicaFlavor:\n \"Asuma el papel de gerente de una planta de manufactura de dispositivos médicos con dos líneas de producción distintas. Administre sus operaciones, compre maquinaria, contrate empleados, elija el precio de sus productos, ordene inventario, etc.\",\n medicaTopics: \"Gestión de operaciones, Gestión de inventario, Capacidad y más.\",\n simunationFlavor:\n \"Aprenda sobre la importancia del crecimiento sostenible y la toma de decisiones informadas mientras gestiona varios sectores de un país virtual como lo son Educación, Producción, Salud, Finanzas, etc.\",\n simunationTopics: \"Progreso social, Desarrollo sostenible, Economía y más.\",\n bindzFlavor:\n \"Administre la cadena de suministro de una empresa que manufactura adhesivos especializados mientras enfrenta diversas crisis que afectan sus operaciones según las decisiones tomadas durante la simulación.\",\n bindzTopics: \"Gestión de la cadena de suministro, Gestión de crisis y más.\",\n supplyGrainFlavor:\n \"Supply Grain simula la cadena de suministro de una empresa productora de cereales. Tome decisiones en cada uno de los segmentos de la cadena sobre las operaciones y la logística relacionada con la entrega de los bienes producidos a los clientes finales.\",\n supplyGrainTopics: \"Gestión de la cadena de suministro, Logística, Diseño de redes de distribución y más.\",\n abogadosFlavor:\n \"Los estudiantes asumen el rol de gerentes de una prestigiosa y bien establecida firma legal con diferentes niveles de empleados, que pueden servir a varios segmentos del mercado.\",\n abogadosTopics:\n \"Operaciones de servicio, capital humano, estructura organizativa, planificación de capacidad y más.\",\n creambowFlavor:\n \"Administre de una fábrica de helados. Tome decisiones vitales con respecto a los sabores, tamaños, mercados meta y la producción misma de distintos deliciosos helados.\",\n creambowTopics:\n \"Estrategia comercial, prioridades competitivas, estrategia de operaciones, planificación de capacidad, análisis de procesos y más.\",\n topic: \"Temas: {{topicsList}}\",\n },\n CreambowAdvanceSimulationModal: {\n AdvanceSimulationController_SimulationNotFound:\n \"No hemos podido encontrar la simulación que intentas avanzar. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n AdvanceSimulationController_SimulationFinished: \"La simulación que intentas avanzar ya ha finalizado.\",\n AdvanceSimulationController_FailedAdvanceTeam:\n \"No pudimos avanzar algunos equipos. Por favor, avanza de nuevo la simulación para intentar actualizar los equipos.\",\n AdvanceSimulationController_WrongSimulation: \"Parece que la simulación es usada por otro profesor.\",\n AdvanceSimulationController_SimulationHasNoTeams:\n \"No hay estudiantes registrados en esta simulación. Por favor asegúrate de que los estudiantes se hayan registrado para poder iniciar la simulación.\",\n AdvanceSimulationController_CouldNotSaveChanges:\n \"No se pudieron guardar los datos de la simulación. Por favor no avance la simulación y contáctenos usando el chat de soporte.\",\n AdvanceMessage: \"Avanza la simulación una quincena.\",\n outdatedTeams: \"Equipos que no lograron avanzar: \",\n },\n CreateNewScenarioScreen: {\n createNewScenario: \"Crear nuevo escenario\",\n hasVariance: \"¿Tiene varianza?\",\n name: \"Nombre\",\n description: \"Descripción\",\n seed: \"Semilla\",\n initialCash: \"Efectivo inicial\",\n stationOneMachineCapacity: \"Capacidad de la máquina de la estación uno\",\n stationTwoMachineCapacity: \"Capacidad de la máquina de la estación dos\",\n stationThreeMachineCapacity: \"Capacidad de la máquina de la estación tres\",\n inventoryLeadTime: \"Tiempo de entrega de inventario\",\n batchSetupTime: 'Tiempo de procesamiento en \"Loteo Inicial\"',\n customLineWipLimit: \"Capacidad máxima en la línea Custom\",\n customDemandInitialValue: \"Valor inicial de demanda en la línea Custom\",\n customDemandFinalValue: \"Valor final de demanda en la línea Custom\",\n customDemandStabilizationDay: \"Día de estabilización de demanda en la línea Custom\",\n customDemand: \"Demanda Custom\",\n customDemandHasVariance: \"¿Demanda custom tiene variación?\",\n required: \"Campo requerido\",\n stationOneMachineHasVariance: \"¿Capacidad de la máquina de la estación uno tiene variación?\",\n stationTwoMachineHasVariance: \"¿Capacidad de la máquina de la estación dos tiene variación?\",\n stationThreeMachineHasVariance: \"¿Capacidad de la máquina de la estación tres tiene variación?\",\n areYouSureDoYouWantCreateNewScenario:\n \"¿Estás seguro de que quieres crear un nuevo escenario con la siguiente información?\",\n newScenarioConfirmation: \"Confirmación de nuevo escenario\",\n create: \"Crear\",\n scenarioHasBeenCreatedSuccessfully: \"Su escenario ha sido creado exitosamente.\",\n errorCreatingNewScenario:\n \"Se ha producido un error al crear su escenario, compruebe su conexión a Internet y vuelva a cargar la página.\",\n scenarioNameAlreadyExist: \"Nombre de escenario ya existe\",\n \"Initial Cash should be between 50K and 250K\": \"El efectivo inicial debe estar entre 50K y 250K.\",\n \"Seed should be between 0 and 20000\": \"La semilla debe estar entre 0 y 20000.\",\n \"Station 1 Machine Capacity should be between 45 and 90\":\n \"La capacidad de la máquina de la estación 1 debe estar entre 45 y 90.\",\n \"Station 2 Machine Capacity should be between 90 and 180\":\n \"La capacidad de la máquina de la estación 2 debe estar entre 90 y 180.\",\n \"Station 3 Machine Capacity should be between 120 and 240\":\n \"La capacidad de la máquina de la estación 3 debe estar entre 120 y 240.\",\n \"Inventory Lead Time should be between 3 and 8\": \"El tiempo de entrega del inventario debe estar entre 3 y 8.\",\n \"Batch Setup Time should be between 3 and 8\": \"El tiempo de configuración del lote debe estar entre 3 y 8.\",\n \"Custom Line Wip Limit should be between 600 and 1200\":\n \"El límite de capacidad de la línea Custom debe estar entre 600 y 1200.\",\n \"Custom Demand Initial Value should be between 0 and 50\":\n \"El valor inicial de la demanda Custom debe estar entre 0 y 50.\",\n \"Custom Demand Final Value should be between 1 and 400\":\n \"El valor final de la demanda Custom debe estar entre 1 y 400.\",\n \"Custom Demand Stabilization Day should be between 100 and 300\":\n \"El día de estabilización de la demanda Custom debe estar entre 100 y 300.\",\n \"The scenario already exists\": \"El escenario ya existe.\",\n \"units/day\": \"unidades/día\",\n days: \"días\",\n units: \"unidades\",\n orders: \"ordenes\",\n UnitInterpolation: \"{{count}} unidad\",\n UnitInterpolation_plural: \"{{count}} unidades\",\n DayInterpolation: \"{{count}} día\",\n DayInterpolation_plural: \"{{count}} días\",\n OrderInterpolation: \"{{count}} pedido\",\n OrderInterpolation_plural: \"{{count}} pedidos\",\n DollarsInterpolation: \"$ {{count}}\",\n UnitPerDayInterpolation: \"{{count}} unidad/día\",\n UnitPerDayInterpolation_plural: \"{{count}} unidades/día\",\n randomize: \"Aleatorio\",\n seedMustBeBetweenZeroAndTwentyThousand: \"Este valor debe estar entre 0 y 20.000.\",\n goToList: \"Ve a tu lista de escenarios\",\n initialCashHelp: \"Cantidad de efectivo disponible al comienzo de la simulación.\",\n stationOneMachineCapacityHelp: \"Cantidad de unidades producidas por cada máquina en esta estación por día.\",\n stationTwoMachineCapacityHelp: \"Cantidad de unidades producidas por cada máquina en esta estación por día.\",\n stationThreeMachineCapacityHelp: \"Cantidad de unidades producidas por cada máquina en esta estación por día.\",\n inventoryLeadTimeHelp: \"Cantidad de días que tarda cada pedido de inventario en llegar.\",\n batchSetupTimeHelp: 'Cantidad de días que se tarda en procesar cada lote en \"Loteo Inicial\".',\n customLineWipLimitHelp:\n \"Cantidad máxima de unidades que la línea Custom puede procesar en cualquier momento (WIP Limit).\",\n customDemandInitialValueHelp: \"Valor inicial de demanda diaria en la línea Custom.\",\n customDemandFinalValueHelp: \"Valor final de demanda diaria en la línea Custom.\",\n customDemandStabilizationDayHelp:\n \"Día virtual en el que la demanda de la línea Custom se estabiliza en su valor final.\",\n seedValueHelp:\n \"La semilla se utiliza para calcular valores aleatorios de la varianza, los escenarios serán ligeramente diferentes si se utilizan distintos valores de semilla.\",\n },\n CrisisAdvancedOptions: {\n selectYourScenario: \"Selecciona el escenario: \",\n defaultScenarioTitle: \"Escenario por defecto\",\n defaultScenarioDescription: \"Este escenario se recomienda para los usuarios primerizos.\",\n },\n CrisisAdvanceSimulationModal: {\n StartSimulationController_SimulationEmpty:\n \"No hay estudiantes registrados en esta simulación. Por favor asegúrate de que los estudiantes se hayan registrado para poder iniciar la simulación.\",\n StartSimulationController_MoreTeamThanStudents:\n \"Por favor escribe un número de equipos que sea menor que la cantidad total de estudiantes registrados.\",\n StartSimulationController_InsufficientTeams:\n \"Por favor escoge un número de equipos más grande. La cantidad máxima de estudiantes en un mismo equipo debe ser igual o menor que 4.\",\n StartSimulationController_FailedStartTeam:\n \"Ha fallado el proceso de inicializar la simulación. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n StartSimulationController_SimulationNotFound:\n \"No hemos podido encontrar la simulación que intentas comenzar. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n AdvanceSimulationController_SimulatinNotFound:\n \"No hemos podido encontrar la simulación que intentas avanzar. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n AdvanceSimulationController_SimulationFinished: \"La simulación que intentas avanzar ya ha finalizado.\",\n AdvanceSimulationController_FailedAdvanceSimulation:\n \"No hemos podido avanzar la simulación, por favor inténtalo nuevamente en unos minutos.\",\n NumberOfTeams: \"Cantidad de equipos\",\n NumberOfWeeks: \"Número de semanas\",\n AdvanceSimulationController_SimulationDoesntBelong: \"Parece que la simulación es usada por otro profesor.\",\n AdvanceSimulationController_StartSimulation:\n \"La simulación que intentas avanzar no ha comenzado. Por favor comienza la simulación primero.\",\n StudentsAreJoined:\n \"Por favor asegúrate de que todos tus estudiantes se hayan unido a la simulación antes de comenzar.\",\n RegisteredStudents: \"Estudiantes registrados:\",\n RecommendedNumberOfTeams: \"Número recomendado de equipos:\",\n RoundedUp: \"N/4 redondeado hacia arriba.\",\n MissingSpotsMessage: \"Las posiciones faltantes seran jugadas por bots.\",\n },\n CrisisBadLink: {\n badLink: \"Parece que has utilizado el enlace equivocado.\",\n tryFollowing:\n \"Por favor verifica con tu profesor que el enlace que has utilizado es el correcto, si ese es el caso, no dudes en contactarnos en <1>support@processimlabs.com o utilizando el chat en la esquina inferior derecha de esta página.\",\n },\n CrisisBuySimulation: {\n creatingSimulation: \"Creando Simulación...\",\n numberOfStudentsError: \"El número de estudiantes debe ser al menos 4.\",\n numberOfStudents: \"Número de estudiantes\",\n whoPaysSelected: \"¿Quién pagará?\",\n pleaseChooseOne: \"Por favor elige uno\",\n whoPaysHelp:\n \"El costo de las licencias puede ser cubierto por la institución o por cada estudiante a la hora de registrarse.\",\n verifyFieldsCorrectlyFilled: \"Por favor verifique que todos los campos estén llenos de forma correcta.\",\n CreateSimulationController_MissingPayment:\n \"No hemos podido verificar tu pago, por favor contactanos utilizando el chat.\",\n SimulationNameInUse:\n \"Oops, ese nombre de la simulación ya se ha utilizado, te sugerimos utilizar un nombre de simulación mas específico\",\n SimulationNameTooLong:\n \"El nombre de la simulación es muy largo, por favor intenta con un nombre más corto de máximo 25 caracteres.\",\n },\n CrisisDetailScreen: {\n GetSimulationDetailsController_CantUseAPI: \"No tienes permiso para usar este API, por favor contacta a soporte.\",\n GetSimulationDetailsController_SimulatinNotFound:\n \"No hemos podido encontrar la simulación. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n createNextRun: \"Crear Siguiente Corrida\",\n },\n CrisisJoinSimulation: {\n joinSimulationSuccessful: \"Te has unido satisfactoriamente a la simulación.\",\n JoinSimulationController_SimulationNotFound:\n \"¡Oh no!, parece que la simulación a la que te has intentado unir no existe. Por favor confirma con tu profesor que has utilizado el link adecuado.\",\n failedJoinSimulation: \"No se ha podido unir a la simulación de Bindz.\",\n JoinSimulationController_AlreadyJoined:\n \"Ya te haz unido a esta simulación, para continuar por favor descarga la aplicación Bindz de la tienda de tu celular e inicia sesión.\",\n JoinSimulationController_MissingPaymentSummary:\n \"Parece que la simulación a la que intentas unirte no ha sido pagada, verifica el pago con tu profesor\",\n JoinSimulationController_ExcededLicenses:\n \"¡Oh no!, parece que no hay una licencia disponible pagada para que puedas unirte a la simulación, por favor verifica el pago con tu profesor.\",\n },\n CrisisCommon: {\n OneStationUnknownPeers: \"Una sección - compañeros desconocidos\",\n OneStationKnownPeers: \"Una sección - compañeros conocidos\",\n AllStationsKnownPeers: \"Todas las secciones - compañeros conocidos\",\n GameModeHelp:\n \"Con la selección de modo de juego puedes seleccionar como quieres que tus estudiantes interactúen con la simulación y entre ellos.\",\n OneStationUnknownPeersHelp:\n \"Una Sección - Compañeros Desconocidos: cada estudiante administrará solamente una sección de la cadena de suministro, pero no sabrán cuales compañeros operan las otras secciones.\",\n OneStationKnownPeersHelp:\n \"Una Sección - Compañeros Conocidos: cada estudiante administrará solamente una sección de la cadena de suministro y además sabrán a cuál equipo pertenecen.\",\n AllStationsKnownPeersHelp:\n \"Todas las secciones - Compañeros Conocidos: Cada estudiante tendra acceso a todas las secciones de la cadena de suministro, y además sabrán a cuál equipo pertenecen.\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyRawMaterials: \"Suministro y Montaje Materia Prima\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyProductA: \"Suministro y Montaje Producto A\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyProductB: \"Suministro y Montaje Producto B\",\n SimulationPerformanceCatalogue_ProductionOneProductA: \"Producción 1 Producto A\",\n SimulationPerformanceCatalogue_ProductionOneProductB: \"Producción 1 Producto B\",\n SimulationPerformanceCatalogue_ProductionTwoProductA: \"Producción 2 Producto A\",\n SimulationPerformanceCatalogue_ProductionTwoProductB: \"Producción 2 Producto B\",\n SimulationPerformanceCatalogue_RetailerOnlineProductA: \"Tienda en Línea Producto A\",\n SimulationPerformanceCatalogue_RetailerOnlineProductB: \"Tienda en Línea Producto B\",\n SimulationPerformanceCatalogue_RetailerOfflineProductA: \"Tiendas Físicas Producto A\",\n SimulationPerformanceCatalogue_RetailerOfflineProductB: \"Tiendas Físicas Producto B\",\n SimulationPerformanceCatalogue_Finance: \"Finanzas\",\n SimulationPerformanceCatalogue_MaterialX: \"Cantidad de Material X\",\n SimulationPerformanceCatalogue_MaterialY: \"Cantidad de Material Y\",\n SimulationPerformanceCatalogue_Production: \"Producción\",\n SimulationPerformanceCatalogue_FinishedGoods: \"Producto Terminado\",\n SimulationPerformanceCatalogue_IncomingInventory: \"Inventario Entrante\",\n SimulationPerformanceCatalogue_StationOne: \"Estación 1\",\n SimulationPerformanceCatalogue_ManualStation: \"Estación Manual\",\n SimulationPerformanceCatalogue_LaborUtilization: \"Utilización de Mano de Obra\",\n SimulationPerformanceCatalogue_Deliveries: \"Entregas\",\n SimulationPerformanceCatalogue_Demand: \"Demanda\",\n SimulationPerformanceCatalogue_SupplyAndAssembly: \"Suministro y Montaje\",\n SimulationPerformanceCatalogue_ProductionOne: \"Producción 1\",\n SimulationPerformanceCatalogue_ProductionTwo: \"Producción 2\",\n SimulationPerformanceCatalogue_Retailer: \"Tiendas\",\n },\n CrisisDashboards: {\n GetSimulationPerformanceController_SimulationShouldStarted:\n \"Gráficos con información acerca de los equipos en esta simulación estarán disponibles en esta sección luego de que la simulación sea iniciada.\",\n },\n CrisisModifyModal: {\n ModifySimulation: \"Modificar Simulación\",\n close: \"Cerrar\",\n accept: \"Aplicar\",\n Success: \"Se ha modificado la simulación correctamente.\",\n },\n CrisisPurchased: {\n GameModeTitle: \"Seleccione un modo de Juego\",\n SimulationStartInTheFuture: \"Seleccione una fecha de inicio al menos una hora en el futuro\",\n SimulationMinDurationError: \"La simulación debe durar al menos 6 horas\",\n SimulationMaxDurationError: \"La simulación debe durar máximo 52 horas\",\n AdvancedOptions: \"Opciones Avanzadas\",\n },\n CrisisShareModal: {\n ShareJoinLInk: \"Comparte este enlace con tus estudiantes para que puedan unirse a tu simulación.\",\n },\n CrisisStandings: {\n standingsTitle: \"Posiciones\",\n Team: \"Equipo\",\n Total: \"Efectivo Total\",\n SupplyAndAssembly: \"Suministro y Montaje\",\n ProductionOne: \"Producción 1\",\n ProductionTwo: \"Producción 2\",\n Retail: \"Comercio\",\n EmptyStandings:\n \"Disculpa, no hemos podido encontrar posiciones para tu simulación. Deberías poder verla luego de inicializar tu simulación. Por favor vuelve luego.\",\n All: \"Todos\",\n \"Team Member\": \"Miembro\",\n Email: \"Correo\",\n Role: \"Rol\",\n Position: \"Posición\",\n },\n CrisisRunAgain: {\n CreateNextRunController_SimulationNotFound:\n \"Ha habido un error creando la simulación, por favor inténtelo de nuevo. En caso de que esto no funcione contactenos, utilizando la función de chat o escribiendonos un correo a support@processimlabs.com.\",\n CreateNextRunController_ErrorInitializingSimulation:\n \"Ha habido un error inicializando la simulación, por favor inténtelo de nuevo. En caso de que esto no funcione, contactenos utilizando la función de chat o escribiendonos un correo a support@processimlabs.com.\",\n scrambleTeamMembers: \"Aleatorizar equipos: \",\n createNextRunSuccess:\n \"La nueva simulación se ha configurado correctamente. Podrá acceder toda la información de esta en la página de inicio.\",\n Success: \"¡Éxito!\",\n },\n CookiesDisabledScreen: {\n cookiesNotEnabled:\n \"No hay cookies habilitadas en este navegador, por favor habilita las cookies o usa otro navegador.\",\n },\n Common: {\n logout: \"Cerrar sesión\",\n simulation: \"Simulación\",\n name: \"Nombre\",\n endDate: \"Fecha final\",\n status: \"Estado\",\n previous: \"Anterior\",\n next: \"Siguiente\",\n pushNotification: \"Notificaciones Push\",\n team: \"Equipo\",\n showing: \"Mostrando\",\n to: \"a\",\n of: \"de\",\n back: \"Atrás\",\n continue: \"Continuar\",\n notValid_number: \"Debe ser un número\",\n yes: \"Sí\",\n no: \"No\",\n startDate: \"Fecha de inicio\",\n students: \"estudiantes\",\n Students: \"Estudiantes\",\n institution: \"Institución\",\n welcome: \"Bienvenido\",\n Professor: \"Profesor\",\n Student: \"Estudiante\",\n accept: \"Aceptar\",\n cancel: \"Cancelar\",\n today: \"hoy\",\n close: \"Cerrar\",\n error: \"Error\",\n advanceSimulation: \"Avanzar Simulación\",\n home: \"Inicio\",\n confirmation: \"Confirmación\",\n currentDay: \"Día de simulación actual\",\n dashboards: \"Panel de Monitoreo\",\n finish: \"Finalizar\",\n notice: \"Aviso\",\n success: \"Éxito\",\n teams: \"Equipos\",\n documents: \"Documentos\",\n warning: \"Advertencia\",\n setLanguage: \"Establece tu idioma\",\n Initialized: \"Inicializada\",\n AwaitingInitialization: \"Listo para iniciar\",\n Running: \"En ejecución\",\n Finished: \"Finalizada\",\n profile: \"Perfil\",\n Spanish: \"Español\",\n English: \"Inglés\",\n tryAgain: \"Inténtalo de nuevo\",\n unknownBackendErrorMessage:\n \"Vaya, no hemos podido completar tu pedido, por favor inténtalo de nuevo. Si vuelves a recibir este mensaje contáctanos por medio nuestro chat.\",\n unknownBackendExceptionMessage:\n \"Vaya, no hemos podido completar tu pedido, por favor inténtalo de nuevo. Si vuelves a recibir este mensaje contáctanos por medio nuestro chat.\",\n scenarioManager: \"Gestor de Escenarios\",\n \"Busy Server\": \"¡Oh no!, el servidor parece estar ocupado, por favor inténtalo de nuevo en unos momentos.\",\n },\n DashBoardsScreen: {\n loadingTeamData: \"Cargando la información de los equipos, por favor espere...\",\n teamAlreadySelected: \"Ya has seleccionado este equipo.\",\n errorGettingPerformance:\n \"Se ha producido un error al buscar el rendimiento de sus equipos, compruebe su conexión a Internet y vuelva a cargar la página.\",\n errorGettingDecisions:\n \"Se ha producido un error al buscar las decisiones de sus equipos, compruebe su conexión a Internet y vuelva a cargar la página.\",\n manageTeams: \"Administrar Equipos\",\n refresh: \"Refrescar\",\n chooseATeam: \"Elegir equipos\",\n selectAll: \"Seleccionar de todos\",\n unselectAll: \"Deseleccionar todos\",\n noTeamsSelected: \"No tienes equipo seleccionado.\",\n loadingGraphMarkers: \"Dibujando los puntos del gráfico, por favor espere...\",\n General: \"General\",\n Finances: \"Finanzas\",\n \"Standard Line\": \"Línea Standard\",\n \"Custom Line\": \"Línea Custom\",\n \"Work Force\": \"Fuerza Laboral\",\n \"Cash On Hand\": \"Efectivo en Mano\",\n \"Inventory Costs\": \"Costos - Inventario\",\n \"Salary Costs\": \"Costos - Salarios\",\n \"Holding Costs\": \"Costos - Almacenamiento\",\n Inventory: \"Inventario\",\n \"Standard Market Price\": \"Precio de Mercado Standard\",\n \"Custom Demand\": \"Demanda Custom\",\n Cash: \"Efectivo\",\n Debt: \"Deuda\",\n \"Sales Standard\": \"Ventas Standard\",\n \"Sales Custom\": \"Ventas Custom\",\n \"Accepted Orders\": \"Órdenes Aceptadas\",\n \"Accumulated Orders\": \"Órdenes Acumuladas\",\n \"Queue 1\": \"Cola 1\",\n \"Station 1 Output\": \"Salida Estación 1 \",\n \"Queue 2\": \"Cola 2\",\n \"Initial Batching\": \"Lote Inicial\",\n \"Queue 3\": \"Cola 3\",\n \"Manual Processing\": \"Procesamiento Manual\",\n \"Queue 4\": \"Cola 4\",\n \"Final Batching\": \"Lote Final\",\n \"Queue 5\": \"Cola 5\",\n Deliveries: \"Entregas\",\n \"Queue 2 First Pass\": \"Primer Pase Cola 2\",\n \"Station 2 Output\": \"Salida de la Estación 2\",\n \"Station 3 Output\": \"Salida de la Estación 3\",\n \"Queue 2 Second Pass\": \"Segundo Pase Cola 2\",\n \"Actual Price\": \"Precio Actual\",\n \"Average Lead Time\": \"Tiempo de Entrega Promedio\",\n Rookies: \"Novatos\",\n Experts: \"Expertos\",\n days: \"Días\",\n \"Amount ($)\": \"Cantidad ($)\",\n \"Raw Material\": \"Materia Prima\",\n Units: \"Unidades\",\n Workers: \"Empleados\",\n day: \"Día\",\n value: \"Valor\",\n \"There was a problem formatting the data. Please try again or contact support at: support@processimlabs.com\":\n \"Hubo un problema al formatear los datos. Vuelva a intentarlo o póngase en contacto con el servicio de asistencia en: support@processimlabs.com para obtener asistencia.\",\n \"No matching simulations found\": \"No se encontraron simulaciones coincidentes.\",\n \"There was an error creating the report. Please try again or contact support at: support@processimlabs.com\":\n \"Se produjo un error al crear el informe. Vuelva a intentarlo o póngase en contacto con el servicio de asistencia en: support@processimlabs.com para obtener asistencia.\",\n topThree: \"Top 3\",\n topFive: \"Top 5\",\n topTen: \"Top 10\",\n graphs: \"Gráficas\",\n performance: \"Rendimiento\",\n decisions: \"Decisiones\",\n \"Standard Order Frequency\": \"Frecuencia de pedido\",\n \"Standard Order Size\": \"Tamaño de pedido\",\n \"Standard Station One Buy\": \"Número de máquinas de la Estación 1\",\n \"Standard Station One Capacity Allocation\": \"Asignación de capacidad de la estación 1 a la línea estándar\",\n \"Standard Initial Batch Size\": \"Tamaño de lote inicial\",\n \"Standard Manual Work Day in Shifts\": \"Jornada de trabajo manual en turnos\",\n \"Standard Final Batch Size\": \"Tamaño de lote final\",\n \"Standard Product Price\": \"Precio del producto\",\n \"Custom Station Two Buy\": \"Número de máquinas de la Estación 2\",\n \"Custom Station Two Capacity Allocation\": \"Asignación de capacidad de la estación 2 al primer paso\",\n \"Custom Station Three Buy\": \"Número de máquinas de la Estación 3\",\n \"Reorder Point\": \"Punto de Reorden\",\n \"Reorder Quantity\": \"Cantidad de Reorden\",\n \"Get Loan\": \"Préstamos Obtenidos\",\n \"Pay Loan\": \"Préstamo Pagados\",\n \"Desired Number Of Employees\": \"Número deseado de empleados\",\n \"Simulation not owned by this user\": \"La simulación no pertenece a este usuario.\",\n noTeamsToDisplayInformation: \"Esta simulación aún no tiene equipos para mostrar gráficos de decisiones.\",\n loadingDecisionsData: \"Cargando datos de decisiones.\",\n noTeamSelectedToDisplayInformation: \"Selecciona un equipo de la lista de la izquierda.\",\n },\n DiscountCodeModal: {\n discountCode: \"Código de descuento\",\n yourCode: \"Su código de descuento...\",\n validate: \"Validar código\",\n \"No matching discount code found.\": \"No se encontró un código de descuento coincidente.\",\n discountSuccess: \"Su código de descuento ha sido validado con éxito.\",\n errorValidatingDiscountCode:\n \"Se ha producido un error al validar su código de descuento, verifique su conexión a Internet y vuelva a cargar la página\",\n \"This discount code already expired.\": \"Su código de descuento ha expirado.\",\n \"You exceeded the number of licenses you can create with your discount code.\":\n \"Ha excedido el número de licencias que puede crear utilizando este código de descuento\",\n \"Discount code not found.\":\n \"Este código de descuento está destinado a ser utilizado con un correo electrónico diferente.\",\n ValidateDiscountCodeController_DiscountCodeNotFound: \"No se encontró un código de descuento coincidente.\",\n ValidateDiscountCodeController_DiscountCodeExpired: \"Su código de descuento ha expirado.\",\n ValidateDiscountCodeController_ExceededNumberOfLicenses:\n \"Ha excedido el número de licencias que puede crear utilizando este código de descuento\",\n ValidateDiscountCodeController_DiscountCodeDoesntBelong:\n \"Este código de descuento está destinado a ser utilizado con un correo electrónico diferente.\",\n ValidateDiscountCodeController_EmptySimulationId:\n \"¡Oh no!, la simulación no fue incluida en la validacion del código de descuento, por favor intentelo nuevamente. Si el problema persiste, por favor contáctanos utilizando el chat de soporte.\",\n ValidateDiscountCodeController_PaymentSummaryNotFound:\n \"¡Oh no!, parece que la simulación no fue creada correctamente. Verifica con tu profesor que creó la simulación.\",\n },\n DecisionHistory: {\n DecisionHistoryTitle: \"Historial de Decisiones\",\n loadingDecisionHistory: \"Cargando el historial de decisiones...\",\n userName: \"Nombre\",\n description: \"Descripción\",\n timeSubmitted: \"Hora Enviada\",\n simulationDay: \"Día de Simulación\",\n noChangesYet: \"Este equipo no ha hecho cambios aún.\",\n },\n DownloadApp: {\n youAreGoodToGo: \"¡Estas listo para empezar!\",\n pleaseDownloadOurMobileApp:\n \"Descarga nuestra aplicación de la tienda correspondiente haciendo click en uno de los botones a continuación:\",\n sameCredentials:\n \"Inicia sesión en la aplicación móvil con el mismo usuario y contraseña que utilizas para nuestro sitio web y comienza a administrar tu propia empresa virtual.\",\n userPlayedBefore: `Si tienes la aplicación de Medica Scientific instalada en tu teléfono y has jugado una simulación anteriormente, puedes cambiar entre simulaciones en la sección de configuración de la aplicación utilizando el botón de \"Cambiar de Simulación\".`,\n orClickHereToDownloadItToYourWindowsComputer:\n \"O presiona <1>aquí para descargar la aplicación en tu computadora con Windows.\",\n },\n FAQ: {\n title: \"Preguntas Frecuentes\",\n All: \"Todas\",\n \"Create Simulation\": \"Crear Simulación\",\n \"Simulation Details\": \"Detalles de la Simulación\",\n \"Student FAQ\": \"FAQ de Estudiantes\",\n \"Advance Simulation\": \"Avanzar Simulación\",\n Login: \"Iniciar Sesión\",\n \"Create Account\": \"Crear Cuenta\",\n \"Join Team\": \"Unirse a un equipo\",\n Payment: \"Pago\",\n Gameplay: \"¿Como Jugar?\",\n \"Standard Line\": \"Línea Standard\",\n \"Custom Line\": \"Línea Custom\",\n Inventory: \"Inventario\",\n \"Work Force\": \"Empleados\",\n \"Activation Code\": \"Código de Activación\",\n \"Join Simulation\": \"Unirse a una Simulación\",\n \"Supply and Assembly\": \"Suministro y Montaje\",\n \"Production 1\": \"Producción 1\",\n \"Production 2\": \"Producción 2\",\n \"Create Team\": \"Crear Equipo\",\n },\n HomeScreen: {\n students: \"Estudiantes\",\n addNewSimulation: \"Crear nueva simulación\",\n startDate: \"Fecha de inicio\",\n simulations: \"Simulaciones\",\n errorFetchingSimulations:\n \"Se ha producido un error al recuperar las simulaciones, compruebe su conexión a Internet y vuelva a cargar la página.\",\n loadingSimulations: \"Cargando Simulaciones, por favor espere...\",\n \"User doesn't have any simulations\": \"No tienes ninguna simulación registrada.\",\n professorManaged: \"Manejado por el Profesor\",\n pending: \"Inicio pendiente\",\n noSimulationList:\n \"En esta sección verás todas tus simulaciones. Cuando estés listo, puedes presionar el botón de abajo para crear tu primera simulación.\",\n \"Simulation not found\": \"No tienes ninguna simulación registrada.\",\n at: \"a las\",\n welcomeToProcessimlabs: \"¡Bienvenido a Processim Labs!\",\n homeVideoDescription: \"Vea este video rápido para comenzar a configurar tu primera simulación.\",\n dontShowVideoAgain: \"¡No volver a mostrar este vídeo!\",\n WelcomeModalGoToVideos: \"Ver Videos\",\n WelcomeModalTitle: \"¡Le damos la bienvenida a su cuenta de Processim Labs!\",\n WelcomeModalBody1:\n \"Esta es su pantalla de inicio, donde encontrará las simulaciones que ha creado, podrá acceder a ellas y supervisarlas cuando lo necesite.\",\n WelcomeModalBody2:\n \"Le invitamos a revisar nuestra sección de Videos. Allí encontrará contenido que puede ayudarle a navegar por nuestro sitio web, configurar nuestros juegos de simulación y más.\",\n WelcomeModalNeverShowAgain: \"No Mostrar de Nuevo\",\n },\n JoinTeamModal: {\n ok: \"Ok\",\n retry: \"Reintentar\",\n cancel: \"Cancelar\",\n },\n MedicaDetailScreen: {\n simulationDetails: \"Detalles de la simulación\",\n initializationPeriod: \"Período de inicialización\",\n studentInteractionPeriod: \"Período de interacción de estudiantes\",\n endingPeriod: \"Período de finalización\",\n activationCode: \"Código de Activación\",\n startTime: \"Hora de inicio\",\n templateName: \"Escenario seleccionado\",\n modify: \"Modificar\",\n standings: \"Posiciones\",\n registeredStudents: \"Estudiantes Registrados\",\n shareSimulation: \"Compartir simulación\",\n runAgain: \"Empezar Siguiente Corrida\",\n decisionHistory: \"Historial de Decisiones\",\n errorFetchDetails:\n \"Se ha producido un error al recuperar los detalles de la simulación, compruebe su conexión a Internet y vuelva a cargar la página.\",\n virtualDaysPerHour: \"Días virtuales por hora\",\n medicaVirtualDaysHelp:\n \"Esta es la cantidad de días virtuales que la simulación avanzará por hora del mundo real durante el período de interacción del estudiante.\",\n virtualDays: \"días virtuales\",\n medicaStatusHelp:\n \"Después de que se haya creado una simulación, tendrá uno de estos estados: Inicializado, En ejecución o Finalizado.\",\n medicaInitializationPeriodHelp:\n \"Cantidad de días virtuales que ya han transcurrido antes del período de interacción del alumno.\",\n medicaStudentInteractionPeriodHelp:\n \"Cantidad de días virtuales que los estudiantes deberán gestionar de la empresa.\",\n medicaEndOfSimulationPeriodHelp:\n \"Cantidad de días que se ejecutarán una vez finalizado el período de interacción.\",\n professorManaged: \"Manejado por el Profesor\",\n downloadAll: \"Descargar todo\",\n runAgainModalTitle: \"Configuración de simulación\",\n runAgainModalMessage:\n \"Antes de que puedas configurar tu próxima ejecución, tu simulación actual debe estar ejecutándose o ya haber finalizado.\",\n documentationCurrentlyBeingCreated:\n \"La documentación de simulación se está creando actualmente. Por favor, vuelva en breve.\",\n errorFetchingDocuments:\n \"Se ha producido un error al recuperar los documentos de simulación. Compruebe su conexión a Internet y vuelva a cargar la página.\",\n \"Please create a simulation before getting documentation.\":\n \"Cree una simulación antes de obtener la documentación.\",\n \"User doesn't own a simulation with that name\": \"El usuario no posee una simulación con ese nombre.\",\n \"User doesn't own any simulations\": \"El usuario no posee ninguna simulación.\",\n \"User doesn't own this simulation\": \"El usuario no posee esta simulación.\",\n documents: \"Documentos\",\n at: \"a las\",\n },\n MedicaBuyQuestionnaire: {\n whoPaysHelp:\n \"El costo de las licencias puede ser cubierto por la institución o por cada estudiante a la hora de registrarse.\",\n },\n MedicaBadLink: {\n badLink: \"Parece que has utilizado el enlace equivocado.\",\n tryFollowing: \"Intenta alguna de las siguientes opciones:\",\n tryingToCreateTeam: \"Si deseas crear un equipo, confirma con tu profesor que tienes el enlace correcto.\",\n tryingToJoinTeam: \"Si deseas unirte a un equipo, confirma el enlace con tu líder de equipo.\",\n lastResort:\n \"Si ninguna de las anteriores funciona, no dudes en contactarnos en <1>support@processimlabs.com o utilizando el chat en la esquina inferior derecha de esta página.\",\n },\n ModifyModal: {\n modify: \"Modificar\",\n accept: \"Aceptar\",\n cancel: \"Cancelar\",\n name: \"Nombre\",\n startDate: \"Fecha de inicio\",\n endDate: \"Fecha final\",\n modifyDatesSuccess: \"Las fechas cambiaron con éxito.\",\n equalDatesSimulationError: \"La simulación tiene las mismas fechas de inicio y finalización seleccionadas.\",\n \"Dates must be in the future\": \"Las fechas deben ser en el futuro.\",\n \"End Date must be after Start Date\": \"La fecha de finalización debe ser posterior a la fecha de inicio.\",\n \"Simulation must run for at least 6 hours\": \"La simulación debe ejecutarse durante al menos 6 horas.\",\n \"Cannot change Start Time one hour before simulation starts\":\n \"No se puede cambiar la hora de inicio una hora antes de que comience la simulación.\",\n errorPosting:\n \"Se ha producido un error al guardar los datos, compruebe su conexión a Internet e inténtelo de nuevo.\",\n \"Simulation can only run for 7 days or less\": \"La simulación solo puede ejecutarse durante 7 días o menos.\",\n \"Bad request\": \"An error has occurred while sending the request please check try again.\",\n \"Bad Date format\":\n \"Se ha producido un error al enviar la solicitud. Por favor, vuelva a intentarlo o contáctenos en: support@processimlabs.com para obtener ayuda.\",\n \"Couldn't find control team\":\n \"No se pudo encontrar el equipo de control, intente nuevamente o contáctenos en: support@processimlabs.com para obtener ayuda.\",\n \"Couldn't find simulation Activation Code\":\n \"No se pudo encontrar el código de activación de la simulación. intente nuevamente o contáctenos en: support@processimlabs.com para obtener asistencia.\",\n simulationMustStartLeastOneHourInFuture: \"La simulación debe comenzar al menos una hora en el futuro.\",\n },\n Payment: {\n payment: \"Finalizar Pedido\",\n wouldYouLikeToCompleteThePurchase: \"¿Te gustaría completar la compra?\",\n purchaseComplete: \"Compra Completada\",\n creditCardInformation: \"Información de tarjeta de crédito\",\n cardHolderName: \"Nombre del titular de la tarjeta\",\n required: \"Campo requerido\",\n yourPaymentHasBeenSuccessfullyRegistered: \"Su pago ha sido registrado exitosamente.\",\n paymentSuccess: \"Pago exitoso\",\n purchasedCompleted: \"Compra completada\",\n pay: \"Pagar\",\n discountCode: \"Código de descuento\",\n removeDiscountCode: \"Remover Código de Descuento\",\n cancel: \"Cancelar\",\n retry: \"Usar otro código\",\n accept: \"Aceptar\",\n writeValidCode: \"Escriba un código válido\",\n checkingStudentPayment: \"Revisando historial de pagos\",\n studentAlreadyPayedMessage: \"Su pago ha sido verificado\",\n checkPreviousPaymentError: \"Ha ocurrido un error al verificar el historial de pagos\",\n simulationAlreadyFinished:\n \"Esta simulación ya terminó. Por favor confirma con tu profesor que el enlace sea el correcto.\",\n \"You've already payed for this simulation\": \"Ya has pagado por esta simulación.\",\n errorPostingPayment: \"Hubo un error al procesar su pago. Por favor inténtelo de nuevo.\",\n expired_card: \"La tarjeta ha expirado. Por favor intente con otra.\",\n fraudulent: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información.\",\n generic_decline: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información.\",\n card_declined: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información.\",\n insufficient_funds: \"Su pago no fue aceptado debido a falta de fondos.\",\n transaction_not_allowed:\n \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n incorrect_cvc: \"El número CVC es incorrecto. Por favor revise la información de su tarjeta.\",\n invalid_cvc: \"El número CVC es incorrecto. Por favor revise la información de su tarjeta.\",\n card_not_supported: \"Su tarjeta no es aceptada por nuestra plataforma de pago. Por favor intente con otra.\",\n duplicate_transaction:\n \"Una transacción por el mismo monto y con la misma información fue procesada recientemente. Por favor revise si el pago ya existe.\",\n do_not_honor: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n do_not_try_again:\n \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n currency_not_supported: \"Su tarjeta no acepta la moneda de pago. Por favor intente con otra.\",\n \"There was an error please use your link again.\":\n \"Hubo un error. Por favor vuelva a utilizar el enlace en una pestaña diferente del navegador.\",\n },\n PaymentCrisis: {\n payment: \"Pago\",\n wouldYouLikeToCompleteThePurchase: \"¿Te gustaría completar la compra?\",\n purchaseComplete: \"Compra Completada\",\n creditCardInformation: \"Información de tarjeta de crédito\",\n cardHolderName: \"Nombre del titular de la tarjeta\",\n required: \"Campo requerido\",\n yourPaymentHasBeenSuccessfullyRegistered: \"Su pago ha sido registrado exitosamente.\",\n paymentSuccess: \"Pago exitoso\",\n purchasedCompleted: \"Compra completada\",\n pay: \"Pagar\",\n validate: \"Validar código\",\n cancel: \"Cancelar\",\n retry: \"Usar otro código\",\n accept: \"Aceptar\",\n writeValidCode: \"Escriba un código válido\",\n checkingStudentPayment: \"Revisando historial de pagos\",\n studentAlreadyPayedMessage: \"Su pago ha sido verificado\",\n checkPreviousPaymentError: \"Ha ocurrido un error al verificar el historial de pagos\",\n \"You've already payed for this simulation\": \"Ya has pagado por esta simulación.\",\n errorPostingPayment: \"Hubo un error al procesar su pago. Por favor inténtelo de nuevo.\",\n expired_card: \"La tarjeta ha expirado. Por favor intente con otra.\",\n fraudulent: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información.\",\n generic_decline: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información.\",\n card_declined: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información.\",\n insufficient_funds: \"Su pago no fue aceptado debido a falta de fondos.\",\n transaction_not_allowed:\n \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n incorrect_cvc: \"El número CVC es incorrecto. Por favor revise la información de su tarjeta.\",\n invalid_cvc: \"El número CVC es incorrecto. Por favor revise la información de su tarjeta.\",\n card_not_supported: \"Su tarjeta no es aceptada por nuestra plataforma de pago. Por favor intente con otra.\",\n duplicate_transaction:\n \"Una transacción por el mismo monto y con la misma información fue procesada recientemente. Por favor revise si el pago ya existe.\",\n do_not_honor: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n do_not_try_again:\n \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n currency_not_supported: \"Su tarjeta no acepta la moneda de pago. Por favor intente con otra.\",\n \"There was an error please use your link again.\":\n \"Hubo un error. Por favor vuelva a utilizar el enlace en una pestaña diferente del navegador.\",\n ProcessPaymentController_OnlyProfessorCreateSimulation: \"Solo un profesor puede pagar para crear una simulacion.\",\n ProcessPaymentController_MissingPaymentSummary:\n \"No encontramos la simulación por la que estas pagando, por favor verifica con tu profesor que el creó la simulación.\",\n ProcessPaymentController_PaymentFailed:\n \"Su pago no se pudo realizar, por favor intentelo nuevamente. Si el problema persiste, por favor contáctanos utilizando el chat de soporte.\",\n StudentHasPaidController_SimulationNotFound:\n \"¡Oh no!, parece que la simulación a la que te has intentado unir no existe. Por favor confirma con tu profesor que has utilizado el link adecuado.\",\n StudentHasPaidController_PaymentSummaryNotFound:\n \"¡Oh no!, no encontramos la simulación por la que estas pagando, por favor verifica con tu profesor que el creó la simulación.\",\n StudentHasPaidController_StudentHasNotPaid: \"Seras redirigido al proceso de pago.\",\n },\n PaymentSupplyChain: {\n payment: \"Pago\",\n wouldYouLikeToCompleteThePurchase: \"¿Te gustaría completar la compra?\",\n purchaseComplete: \"Compra Completada\",\n creditCardInformation: \"Información de tarjeta de crédito\",\n cardHolderName: \"Nombre del titular de la tarjeta\",\n required: \"Campo requerido\",\n yourPaymentHasBeenSuccessfullyRegistered: \"Su pago ha sido registrado exitosamente.\",\n paymentSuccess: \"Pago exitoso\",\n purchasedCompleted: \"Compra completada\",\n pay: \"Pagar\",\n validate: \"Validar código\",\n cancel: \"Cancelar\",\n retry: \"Usar otro código\",\n accept: \"Aceptar\",\n discountSuccess: \"Su código de descuento ha sido validado con éxito.\",\n writeValidCode: \"Escriba un código válido\",\n checkingStudentPayment: \"Revisando historial de pagos\",\n studentAlreadyPayedMessage: \"Su pago ha sido verificado\",\n checkPreviousPaymentError: \"Ha ocurrido un error al verificar el historial de pagos\",\n \"You've already payed for this simulation\": \"Ya has pagado por esta simulación.\",\n errorPostingPayment: \"Hubo un error al procesar su pago. Por favor inténtelo de nuevo.\",\n generic_decline: \"Su tarjeta fue denegada.\",\n insufficient_funds: \"Su pago no fue aceptado debido a falta de fondos.\",\n transaction_not_allowed:\n \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n incorrect_cvc: \"El número CVC es incorrecto. Por favor revise la información de su tarjeta.\",\n invalid_cvc: \"El número CVC es incorrecto. Por favor revise la información de su tarjeta.\",\n card_not_supported: \"Su tarjeta no es aceptada por nuestra plataforma de pago. Por favor intente con otra.\",\n duplicate_transaction:\n \"Una transacción por el mismo monto y con la misma información fue procesada recientemente. Por favor revise si el pago ya existe.\",\n do_not_honor: \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n do_not_try_again:\n \"Su tarjeta fue denegada. Por favor contacte al emisor para más información o intente con otra.\",\n currency_not_supported: \"Su tarjeta no acepta la moneda de pago. Por favor intente con otra.\",\n \"There was an error please use your link again.\":\n \"Hubo un error. Por favor vuelva a utilizar el enlace en una pestaña diferente del navegador.\",\n ProcessPaymentController_OnlyProfessorCreateSimulation: \"Solo un profesor puede pagar para crear una simulacion.\",\n ProcessPaymentController_MissingPaymentSummary:\n \"No encontramos la simulación por la que estas pagando, por favor verifica con tu profesor que el creó la simulación.\",\n ProcessPaymentController_PaymentFailed:\n \"Su pago no se pudo realizar, por favor intentelo nuevamente. Si el problema persiste, por favor contáctanos utilizando el chat de soporte.\",\n StudentHasPaidController_SimulationNotFound:\n \"¡Oh no!, parece que la simulación a la que te has intentado unir no existe. Por favor confirma con tu profesor que has utilizado el link adecuado.\",\n StudentHasPaidController_PaymentSummaryNotFound:\n \"¡Oh no!, no encontramos la simulación por la que estas pagando, por favor verifica con tu profesor que el creó la simulación.\",\n StudentHasPaidController_StudentHasNotPaid: \"Seras redirigido al proceso de pago.\",\n },\n PaymentForio: {\n payment: \"Pago\",\n wouldYouLikeToCompleteThePurchase: \"¿Te gustaría completar la compra?\",\n purchaseComplete: \"Compra Completada\",\n required: \"Campo requerido\",\n yourPaymentHasBeenSuccessfullyRegistered: \"Tu producto ha sido activado.\",\n paymentSuccess: \"Activación Completa\",\n purchasedCompleted: \"Compra completada\",\n pay: \"Pagar\",\n discountCode: \"Utilizar Código de Activación\",\n removeDiscountCode: \"Remover Código de Activación\",\n yourCode: \"Su código de activación...\",\n validate: \"Validar código\",\n cancel: \"Cancelar\",\n retry: \"Usar otro código\",\n accept: \"Aceptar\",\n ValidateDiscountCodeController_DiscountCodeNotFound: \"No se encontró un código de activación coincidente.\",\n discountSuccess: \"Su código de activación ha sido validado con éxito.\",\n errorValidatingDiscountCode:\n \"Se ha producido un error al validar su código de activación, verifique su conexión a Internet y vuelva a cargar la página\",\n writeValidCode: \"Escriba un código válido\",\n checkingStudentPayment: \"Revisando historial de pagos\",\n studentAlreadyPayedMessage: \"Su pago ha sido verificado\",\n checkPreviousPaymentError: \"Ha ocurrido un error al verificar el historial de pagos\",\n \"You've already payed for this simulation\": \"Ya has pagado por esta simulación.\",\n ValidateDiscountCodeController_DiscountCodeExpired: \"Su código de activación ha expirado.\",\n ValidateDiscountCodeController_ExceededNumberOfLicenses:\n \"Ha excedido el número de licencias que puede crear utilizando este código de activación\",\n ValidateDiscountCodeController_DiscountCodeDoesntBelong:\n \"Este código de activación está destinado a ser utilizado por otro profesor o estudiante.\",\n activationCodeHelpText:\n \"Ingrese su Código de Activación a continuación para configurar su simulación. Si desea obtener información sobre esta simulación y cómo obtener un Código de Activación, contáctenos en support@processimlabs.com\",\n },\n PaymentVerificationModal: {\n retry: \"Reintentar\",\n title: \"Confirmando su pago...\",\n defaultErrorMessage:\n \"¡Oh no!, Ha habido un error al confirmar el pago. Por favor asegúrese de tener acceso a internet e intente nuevamente. Si esto no funciona, no dude en contactarnos por medio del chat o enviándonos un correo a support@processimlabs.com.\",\n },\n ProfileScreen: {\n profileDetails: \"Detalles del perfil\",\n language: \"Idioma\",\n fullName: \"Nombre completo\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n institution: \"Institución\",\n requestFeature: \"¿Cómo podemos mejorar?\",\n describeYourFeature: \"Describe tu característica...\",\n send: \"Enviar\",\n featureDescription: \"Descripción de la característica\",\n tryAgain: \"Intentar de nuevo\",\n pleaseDescribeYourFeature: \"Por favor describa su característica.\",\n featureRequestedSuccessfully: \"Su característica ha sido solicitada satisfactoriamente.\",\n errorRequestingFeature:\n \"Se ha producido un error al solicitar su característica, compruebe su conexión a Internet y vuelva a cargar la página.\",\n product: \"Producto\",\n },\n Purchased: {\n numbersStudents: \"Número de estudiantes\",\n course: \"Curso\",\n whoPaysSelected: \"¿Quién pagará?\",\n yes: \"Sí\",\n no: \"No\",\n Professor: \"Profesor\",\n Student: \"Estudiante\",\n Students: \"Estudiantes\",\n knowsDateSelected: \"¿Sabes la fecha de inicio de la simulación?\",\n next: \"Siguiente\",\n notValidNumber: \"Debe ser un número\",\n startDate: \"Fecha de inicio\",\n endDate: \"Fecha final\",\n simulationName: \"Nombre de la simulación\",\n notValidNumberMin: \"El número de estudiantes debe ser mínimo de 4.\",\n notEnoughStudentErrorSimunation: \"El número de estudiantes debe ser mínimo de 1\",\n required: \"Campo requerido\",\n pleaseChooseOne: \"Por favor elige uno\",\n setDates: \"Por favor, fije la fecha\",\n notSimulationName: \"Por favor dale un nombre a tu simulación.\",\n continue: \"Continuar\",\n creatingSimulation: \"Creando simulación\",\n simulationAddedSuccessfully: \"La simulación ha sido creada satisfactoriamente\",\n \"Failed to initialize simulation. Please contact support.\":\n \"Falló la creación de la simulación. Por favor, contacte a soporte.\",\n \"Simulation name has already been registered\": \"El nombre de la simulación ya sido utilizado.\",\n errorCreatingSimulation:\n \"Se ha producido un error al crear tu simulación, comprueba tu conexión a Internet y vuelve a cargar la página\",\n verifyFieldsCorrectlyFilled: \"Por favor verifique que todos los campos estén llenos de forma correcta.\",\n professorAdvanceSimulation: \"¿Gestionar el progreso de la simulación manualmente?\",\n simunationWhoAdvancesSimulation: \"¿Quién controlará el progreso de la simulación?\",\n simunationOptionProfessor: \"Profesor\",\n simunationOptionStudents: \"Estudiantes\",\n medicaProfessorAdvanceSimulationHelp:\n 'Si eliges \"No\", la simulación avanzará automáticamente cada hora durante el período de tiempo que elijas. Si eliges \"Sí\", avanzará manualmente la simulación usted mismo',\n simunationProfessorAdvanceSimulationHelp:\n 'Si seleccionas \"Estudiantes\" cada equipo decidirá cuando avanzar su propia simulación. Al seleccionar \"Profesor\" tu decidirás cuando avanzarán todos los equipos simultáneamente',\n daysToPlay: \"Días de interacción del estudiante\",\n daysToPlayHelp:\n \"Recomendamos 100 días virtuales para clases regulares (2 a 3 horas), mientras que se recomiendan 200 días virtuales para una sesión de día completo. Nuestra sugerencia es usar 300 días virtuales cuando se usa la simulación para varios días del mundo real.\",\n errorGettingScenarios: \"Los escenarios a la medida no están disponibles en este momento.\",\n advancedOptionsButtonText: \"Opciones Avanzadas\",\n secondRunWarningMessage:\n \"La simulación que está a punto de configurar tendrá la misma composición de estudiantes y equipo que la actual. Si todavía hay estudiantes que deben registrarse en la corrida anterior, espere hasta que lo hagan.\",\n secondRunParagraphPartOne:\n \"Configure su próxima ejecución de Medica Scientific. Puede configurarlo como más le convenga a continuación.\",\n secondRunParagraphPartTwo:\n \"Tenga en cuenta que la simulación que está a punto de configurar tendrá la misma composición de estudiantes y equipo que la actual. Si todavía hay estudiantes que deben registrarse en la corrida anterior, espere hasta que lo hagan.\",\n invalidSimulationNameCharacterError: `Los caracteres válidos incluyen: A-z, 0-9, '_' y '-'`,\n \"Simulation must start at least 1 hour in the future from now\":\n \"Simulación debe comenzar al menos 1 hora en el futuro a partir de ahora.\",\n \"Total student interaction days can't be less than 100 days\":\n \"El total de días de interacción del estudiante no puede ser inferior a 100 días.\",\n \"Total student interaction days can't be more than 300 days\":\n \"El total de días de interacción del estudiante no puede ser más de 300 días\",\n \"Your account is setup as a student's account. Please contact the developers.\":\n \"Su cuenta está configurada como la cuenta de un estudiante. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n \"There has been an authentication error, please contact us to get assistance.\":\n \"Ha habido un error de autenticación. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n \"Please add a simulation name\": \"Por favor, dale un nombre a tu simulación.\",\n \"End Date must be after Start Date\": \"La fecha de finalización debe ser posterior a la fecha de inicio.\",\n \"Simulation must run for at least 6 hours\": \"La simulación debe ejecutarse durante al menos 6 horas.\",\n \"Simulation can only run for 7 days or less\": \"La simulación solo puede ejecutarse durante 7 días o menos.\",\n \"A simulation with this name already exists in our database. We suggest using a more specific name.\":\n \"Ya existe una simulación con este nombre en nuestra base de datos. Sugerimos usar un nombre más específico.\",\n \"Template not available. Please contact us at support@processimlabs.com.\":\n \"La simulación no se pudo crear. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n \"Unable to create a simulation at this time. Error 421\":\n \"No se puede crear una simulación en este momento. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n \"Failed to initialize simulation. Please contact us at support@processimlabs.com\":\n \"Error al inicializar la simulación. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n },\n PushNotificationsScreen: {\n title: \"Título\",\n message: \"Mensaje\",\n sendNotification: \"Enviar notificación\",\n allTeams: \"Todos los equipos\",\n selectTeam: \"Seleccione un equipo\",\n pushNotificationSuccess: \"La notificación push ha sido enviada exitosamente.\",\n errorPushing:\n \"An error has occurred while sending the notification, please check your Internet connection and try again.\",\n noTeamsList: \"Esta simulación no tiene equipos creados.\",\n errorFetchingTeams:\n \"Se ha producido un error al buscar los equipos de la simulación, comprobar su conexión a Internet y volver a cargar la página.\",\n verifyFieldsCorrectlyFilled: \"Por favor verifique que todos los campos estén llenos de forma correcta.\",\n required: \"Campo requerido\",\n \"Simulation not found for current user\": \"Simulación no encontrada para el usuario actual.\",\n \"Simulation not owned by this user\": \"La simulación no pertenece a este usuario.\",\n pushNotificationHelpMessage:\n \"Envía una notificación a uno o todos los equipos participantes directamente a sus teléfonos móviles.\",\n suggestionsSubTitle1:\n \"Estos son algunos de los problemas que cada uno de los equipos está teniendo en este momento. Puede usar esta información para ayudar a sus estudiantes a identificar y abordar estos problemas si lo desea. Al hacer clic en cualquiera de las sugerencias, se copiará automáticamente el texto a la sección de Notificaciones Push de la izquierda para que pueda enviar el mensaje fácilmente.\",\n suggestionsSubTitle2:\n '*Estos son los mismos mensajes que sus alumnos reciben si usted habilitó las \"Sugerencias en la aplicación\" al configurar su simulación.',\n },\n RegisteredStudentsScreen: {\n registeredStudentsOf: \"Estudiantes Registrados\",\n userName: \"Nombre de usuario\",\n name: \"Nombre\",\n email: \"Email\",\n students: \"Estudiantes\",\n loadingRegisteredStudents: \"Cargando estudiantes registrados, por favor espere...\",\n notStudentList:\n \"No hay estudiantes registrados hasta el momento. Podrás monitorear las inscripciones de estudiantes desde esta sección.\",\n errorFetchStudents:\n \"Se ha producido un error al obtener Estudiantes registrados de la simulación, compruebe su conexión a Internet y vuelva a cargar la página.\",\n \"User does not have this simulation\": \"El usuario no tiene esta simulación.\",\n },\n MedicaAdvancedOptions: {\n advancedOptionsTitle: \"Opciones Avanzadas\",\n advancedOptionsDescription1:\n \"Elija el escenario que quiere jueguen sus estudiantes. Estos escenarios difieren en el comportamiento de los precios de mercado, demandas, productividad y precio de las máquinas entre otras variables. Si tiene un conjunto específico de condiciones que desea que enfrenten sus estudiantes, contáctenos en: support@processimlabs.com y haremos lo posible para crearle ese escenario.\",\n advancedOptionsDescription2:\n \"Además, puede agregar pequeñas variaciones al escenario que eligió en caso que desee que el escenario sea ligeramente distinto, pero no de forma significativa, a la última vez que lo utilizó.\",\n recommended: \"RECOMENDADO\",\n easyDifficultyTemplateName: \"Escenario fácil\",\n easyDifficultyTemplateDescription:\n \"Este escenario está diseñado para estudiantes de pregrado que no tienen mucha experiencia utilizando simulaciones.\",\n mediumDifficultyTemplate: \"Escenario medio\",\n mediumDifficultyTemplateDescription:\n \"Este escenario esta recomendado para la mayoría de los casos. Puede ser usado por estudiantes de pregrado y grado.\",\n hardDifficultyTemplate: \"Escenario difícil\",\n hardDifficultyTemplateDescription:\n \"Solo estudiantes avanzados con mucha experiencia utilizando simuladores deberían de usar este escenario.\",\n customOnlyDifficultyTemplate: \"Escenario Introductorio - Solamente línea Custom\",\n customOnlyTemplateDescription:\n \"Para este escenario introductorio, el estudiante debe únicamente trabajar con la Línea Custom de la planta de producción\",\n loadingScenarioComparison: \"Cargando comparación de escenarios, por favor espere...\",\n errorFetchScenarioInformation:\n \"Se ha producido un error al obtener información de escenarios de la simulación, compruebe su conexión a Internet y vuelva a cargar la página.\",\n \"User does not have this simulation\": \"El usuario no tiene esta simulación.\",\n scenarioComparison: \"Comparación de escenarios\",\n ATemplate: \"Fácil\",\n BTemplate: \"Medio\",\n CTemplate: \"Difícil\",\n DTemplate: \"Introductorio\",\n StandardLine: \"Línea Standard\",\n CustomLine: \"Linea Custom\",\n Inventory: \"Inventario\",\n InventoryUnitsPerOrder: \"Partes de inventario por unidad\",\n StandardCostPerOrder: \"Costo fijo por orden\",\n StandardStationOneCapacity: \"Estación 1 - Capacidad de la máquina (unidades/día)\",\n HoldingCost: \"Costo de almacenaje por unidad\",\n RookieSalary: \"Salario novato\",\n ExpertSalary: \"Salario experto\",\n ExpertProductivity: \"Capacidad experto (unidades/día)\",\n StandardMarketPrice: \"Precio de mercado\",\n PriceVsDemand: \"Demanda (Interpolación líneal) (razón de precios = precio del producto / precio de mercado)\",\n CustomDemand: \"Demanda de Línea Custom\",\n Distribution: \"Distribución: \",\n LogNormalDistribution: \"Normal\",\n TriangularDistribution: \"Triangular\",\n WIPLimit: \"Límite de WIP\",\n CustomStationTwoCapacity: \"Estación 2 - Capacidad de la máquina (unidades/día)\",\n CustomStationThreeCapacity: \"Estación 3 - Capacidad de la máquina (unidades/día)\",\n CustomProductPrice: \"Precio del producto (Interpolación lineal)\",\n InventoryOrderCost: \"Costo fijo por orden\",\n InventoryUnitCost: \"Costo por parte\",\n InventoryDeliveryTime: \"Tiempo de entrega\",\n Days: \"día\",\n Days_plural: \"días\",\n Units: \"unidad\",\n Units_plural: \"unidades\",\n Parts: \"parte\",\n Parts_plural: \"partes\",\n DollarsPerDay: \"{{dollarValue}}/día\",\n UnitsPerDay: \"{{value}} unidad/día\",\n UnitsPerDay_plural: \"{{value}} unidades/day\",\n Orders: \"pedido\",\n Orders_plural: \"pedidos\",\n lowerBound: \"Límite inferior: \",\n upperBound: \"Límite superior: \",\n mode: \"Modo: \",\n mean: \"Media: \",\n stdDev: \"Desviación Estándar: \",\n graphBelow: \"Gráfico a continuación\",\n playerConfigurable: \"Decisiones del jugador (valores iniciales)\",\n StandardOrderQuantity: \"Cantidad de pedido\",\n StandardOrderFrequency: \"Frecuencia de pedido\",\n StationOneCapacityAllocation: \"Asignación de capacidad de la estación uno\",\n StandardProductPrice: \"Precio del producto\",\n StationTwoAllocation: \"Asignación de la estación dos\",\n InventoryReorderPoint: \"Punto de pedido\",\n InventoryReorderQuantity: \"Cantidad de pedido\",\n WorkForce: \"Mano de obra\",\n NumberOfEmployees: \"Número de empleados\",\n Employees: \"empleado\",\n Employees_plural: \"empleados\",\n unitsIfPriceRatio: \"{{ units }} unidades si la razón de precios es {{ ratio }}\",\n addVariationInformationModalTitle: \"¡Nuevas funcionalidades para Medica Scientific!\",\n addVariationInformationModalSubtitle: \"Introduzca pequeñas variaciones a sus escenarios.\",\n addVariationInformationModalBody1:\n \"Ahora puede optar por agregar pequeñas variaciones al escenario seleccionado. Esto modificará ligeramente algunas variables dentro de la simulación, como el Precio de Mercado Standard, la Demanda Custom y la capacidad de maquinas y empleados, pero no afectara su comportamiento general. En otras palabras, solo estamos aleatorizando el componente de ruido sobre las formas de onda principales.\",\n addVariationInformationModalBody2:\n \"Estás dos nuevas funciones están disponibles en la sección Opciones avanzadas.\",\n addVariationInformationModalBody3: \"Estás nueva función está disponibles en la sección Opciones avanzadas.\",\n neverShowThisAgain: \"No volver a mostrar\",\n selectYourScenario: \"Selecciona el escenario: \",\n addVariation: \"Añadir variación.\",\n addSuggestions: \"Habilitar sugerencias en la aplicación:\",\n addSuggestionsExplanation:\n \"Nuestra aplicación móvil puede dar retroalimentación a sus estudiantes mientras juegan la simulación. Estas sugerencias les ayudarán a darse cuenta cuando ha surgido un problema en su empresa virtual. Si usted elige habilitar las sugerencias, nuestra aplicación notificará esporádicamente a sus estudiantes si su empresa tiene problemas como desabastecimiento de inventario, cuellos de botella, alta rotación de empleados, demasiados pedidos acumulados, altos tiempos de entrega en la línea Custom, baja utilización de empleados o si esta vendiendo sus productos Standard demasiado baratos.\",\n addSuggestionsInformationModalSubtitle: \"Sugerencias en la aplicación\",\n addSuggestionsInformationModalBody:\n \"Nuestra aplicación móvil ahora puede notificar a sus estudiantes cuando surjan problemas durante su ejercicio de simulación. Si elige habilitar las sugerencias, nuestra aplicación notificará esporádicamente a sus estudiantes si su empresa tiene problemas como desabastecimiento de inventario, cuellos de botella, alta rotación de empleados, etc.\",\n newFeaturesInRegularAndEasyScenarioSubtitle: \"Costos de Almacenamiento en el Escenario Medio\",\n newFeaturesInRegularAndEasyScenarioBody:\n \"Nuestro Escenario Medio ahora incluye costos de almacenamiento en todas las colas e inventario. Las unidades almacenadas en estos lugares tendrán asociado un costo fijo por cada día que pasen almacenadas. Esto debería desincentivar a los estudiantes de acumular unidades en sus líneas de producción o tener políticas de gestión de inventario deficientes.\",\n },\n ScenarioManagerScreen: {\n scenarioManager: \"Gestor de escenarios\",\n loadingProfessorScenarioList: \"Cargando su lista de escenarios, por favor espere...\",\n noProfessorScenarioList:\n \"Puedes crear nuevos escenarios para Medica Scientific. Verás los nuevos escenarios que crees en esta área.\",\n errorFetchProfessorScenarioList:\n \"Se produjo un error al buscar su lista de escenarios, verifique su conexión a Internet y vuelva a cargar la página.\",\n scenarioManagerIntro:\n \"Bienvenido al Gestor de Escenarios. Aquí puedes crear escenarios personalizados para tus simulaciones. Esta herramienta esta disponible únicamente para Medica Scientific.\",\n scenarioName: \"Nombre del Escenario\",\n createdAt: \"Creado en\",\n lastUsedDate: \"Última vez utilizado\",\n timesUsed: \"Utilizaciones\",\n edit: \"Editar\",\n delete: \"Borrar\",\n close: \"Cerrar\",\n createScenario: \"Crear nuevo escenario\",\n deleteScenario: \"Borrar escenario\",\n scenarioDeletedSuccesfully: \"Su escenario ha sido eliminado exitosamente.\",\n errorDeletingScenario: \"Se ha producido un error al eliminar su escenario, intente nuevamente.\",\n errorFetchProfessorDeleteScenario:\n \"Se ha producido un error al eliminar su escenario, compruebe su conexión a Internet y vuelva a cargar la página.\",\n areYouSureYouWantDeleteScenario: \"¿Estas seguro de que deseas eliminar tu escenario <1>{{scenarioName}}?\",\n },\n ShareModal: {\n title: \"Compartir simulación\",\n share:\n \"Comparte este enlace con los líderes de equipo en tu clase. Te hemos enviado un correo electrónico con información adicional e instrucciones para que las reenvíes a tus estudiantes sobre cómo comenzar.\",\n shareStudent:\n \"Comparte este enlace con los compañeros de clase a los que deseas unir a tu equipo. Hemos enviado información adicional a tu correo electrónico.\",\n copy: \"Copiar al Portapapeles\",\n cancel: \"Cancelar\",\n copySuccess: \"El enlace de tu simulación ha sido copiado.\",\n shareActivationCode: \"Usa este código de activación para compartir tu simulación.\",\n },\n SimunationDetailScreen: {\n simulationDetails: \"Detalles de la simulación\",\n activationCode: \"Código de Activación\",\n standings: \"Posiciones\",\n registeredStudents: \"Estudiantes Registrados\",\n shareSimulation: \"Compartir simulación\",\n errorFetchDetails:\n \"Se ha producido un error al recuperar los detalles de la simulación, compruebe su conexión a Internet y vuelva a cargar la página.\",\n \"Simulation not found\": \"Simulación no encontrada.\",\n userAdvanceConfirmation: \"¿Estás seguro de que quieres avanzar la simulación 5 años?\",\n advancingSimulacion: \"Avanzando simulación\",\n simulationAdvancedSuccessfully: \"Su simulación ha sido avanzada con éxito 5 años.\",\n simunationCurrentDayHelp: \"Este es el año actual del equipo que más ha avanzado en la simulación.\",\n },\n StandingsScreen: {\n standings: \"Posiciones\",\n cash: \"Efectivo\",\n teamCode: \"Código del equipo\",\n loadingStandings: \"Cargando Posiciones, por favor espere...\",\n notStandingsList: \"Esta simulación no tiene posiciones.\",\n errorFetchStandings:\n \"Se ha producido un error al obtener las posiciones de la simulación, compruebe su conexión a Internet y vuelva a cargar la página.\",\n score: \"Puntuación\",\n gdp: \"PIB\",\n year: \"Año\",\n standingsHelpMessage: \"Los equipos se clasifican según el saldo de efectivo de su empresa.\",\n standigsSimunationHelpMessage:\n \"La puntuación de un equipo se calcula en función de su rendimiento relativo con respecto a otros equipos en las 3 áreas: SPI, PIB y efectivo.\",\n totalTeams: \"Total de equipos\",\n \"Simulation not owned by this user\": \"La simulación no pertenece a este usuario.\",\n shareModalInformation: \"Utiliza este enlace para compartir la tabla de posiciones con el mundo.\",\n shareModalCopy: \"Copiar\",\n shareModalCopySuccess: \"El enlace ha sido copiado\",\n share: \"Compartir\",\n firstName: \"Nombre\",\n lastName: \"Apellido\",\n email: \"Correo\",\n joinTeamLink: \"Link del Equipo\",\n },\n StudentCreateTeam: {\n createTeamDescription: \"Elige un nombre para tu equipo.\",\n teamName: \"Nombre del equipo\",\n \"Team already exists.\": \"El nombre del equipo ya existe. Por favor prueba con nombre de equipo diferente.\",\n createTeam: \"Crear equipo\",\n creatingTeam: \"Creando equipo\",\n createTeamSuccess: \"¡Equipo creado satisfactoriamente!\",\n play: \"¡Empezar a jugar!\",\n sureYouWantCreateTeam: \"¿Estás seguro de que quieres crear el equipo\",\n welcomeToProcessimLabs: \"Bienvenido a Processim Labs\",\n youAreAboutToCreateATeam: \"Estas a punto de crear un equipo para nuestra simulación Medica Scientific.\",\n wereYouAssignedAsATeamLeader: \"¿Te asignaron como líder de equipo? (Solo puede haber uno por equipo).\",\n \"You can only create one team.\":\n \"Solo debes crear un equipo por simulación. Ahora te redireccionaremos a nuestras preguntas frecuentes en caso de que tengas preguntas adicionales.\",\n errorCreatingTeam:\n \"Se ha producido un error intentar crear su equipo, compruebe su conexión a Internet y vuelva a cargar la página.\",\n \"Simulation not found\":\n \"No se encontró la simulación, confirme que el enlace proporcionado por su profesor es el correcto.\",\n \"Simulation missing. Check code.\":\n \"No se encontró la simulación, confirme que el enlace proporcionado por su profesor es el correcto.\",\n \"There has been an authentication error, please contact us to get assistance.\":\n \"Ha habido un error de autenticación. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n \"Server is currently busy please try again.\": \"El servidor está ocupado actualmente, intente nuevamente.\",\n \"Invalid activation code.\":\n \"Código de activación inválido. Confirme que el enlace proporcionado por su profesor es el correcto.\",\n \"Max number of registrations exceeded. Please contact your professor.\":\n \"Se ha excedido el número máximo de registros. Por favor contacte a su profesor.\",\n \"Activation code has already expired. Please contact your professor.\":\n \"El código de activación ya ha expirado. Por favor contacte a su profesor.\",\n \"Unable to create team at this time. Error 422\":\n \"No se puede crear un equipo en este momento. Póngase en contacto con nosotros en support@processimlabs.com para obtener asistencia.\",\n invalidTeamNameCharacterError: `Los caracteres válidos incluyen: A-z, 0-9, '_' y '-'`,\n retry: \"Reintentar\",\n },\n StudentInstructionsModal: {\n teamLeaderInstructions: \"Instrucciones para el líder del equipo\",\n studentInstructions: \"Instrucciones para miembros del equipo\",\n leaderIntroduction: \"¡Increíble! Esto es lo que debes hacer ahora:\",\n noLeaderIntroduction: \"En ese caso, esto es lo que debe hacer:\",\n afterDismissingThisPopUpYouWillNeedCreateOrLogin:\n \"Después de cerrar esta ventana emergente, deberás crear o iniciar sesión con tu cuenta con nosotros.\",\n thenEnterTheNameOfYourChoiseForYourTeam: \"Ingresa el nombre que elegiste para tu equipo.\",\n youWillBePresentedWithAUniqueLink:\n \"Se te presentará un enlace único. Compártelo con tus compañeros de equipo para que se unan a ti. Este enlace es privado y no debe compartirse fuera de tu equipo.\",\n downloadOurMobileAppAndLogIn:\n \"Descarga nuestra aplicación móvil e inicia sesión con el mismo nombre de usuario y contraseña que utilizaste en nuestro sitio web\",\n enjoyManagingYourVirtualCompany: \"¡Disfruta administrando tu empresa virtual!\",\n waitForYourTeamLeadToShareTheTeamsUniqueLinkWithYou:\n \"Espera a que el líder de tu equipo comparta el enlace único del equipo contigo.\",\n clickOnTheLinkToSetUpYourAccountOnOurWebsite:\n \"Haz clic en el enlace para configurar tu cuenta en nuestro sitio web.\",\n youCanNowDownloadTheMobileAppOnYourSmartphone:\n \"Luego podrás descargar la aplicación móvil en tu teléfono inteligente. Se accede a la aplicación móvil con el mismo nombre de usuario y contraseña que utilizaste para configurar tu cuenta en nuestro sitio web.\",\n },\n StudentJoinTeamScreen: {\n joiningTeam: \"Uniéndose al equipo...\",\n joinTeamSuccess: \"Te has unido al equipo:\",\n errorJoiningTeam: \"Ha ocurrido un error. Intentalo de nuevo.\",\n \"User already registered in this team\":\n \"Ya eres parte de este equipo y puedes comenzar a usar la simulación desde nuestra aplicación móvil. Ahora lo redireccionaremos a nuestras preguntas frecuentes en caso de que tengas preguntas adicionales.\",\n \"Simulation missing. Check code.\": \"Simulación no encontrada, por favor verifique su código de equipo.\",\n sureYouWantJoinTeam: \"¿Estás seguro de que quieres unirte al equipo\",\n noTeamMessageError:\n \"No hay Nombre del equipo, intente ingresar nuevamente con el enlace proporcionado por su Líder de equipo o su Profesor.\",\n noJoinTeamTeamCode:\n \"Algo no ha salido bien a la hora de unirte al equipo, por favor intenta utilizando nuevamente el enlace para unirte al equipo que te ha dado tu colega, si esto sucede nuevamente no dudes en contactarnos en support@processimlabs.com.\",\n },\n StudentsLoginScreen: {\n itSeemsYouAreNotInTheRightPlace:\n \"Parece que no estás en el lugar correcto. Lee las siguientes preguntas frecuentes para encontrar lo que debes hacer a continuación.\",\n areYouTryingToJoinSimulationQuestion: \"¿Estás intentando unirte a una simulación?\",\n areYouTryingToJoinSimulationResponse:\n \"Tu profesor o líder de equipo debe proporcionarte un enlace para comenzar.\",\n haveYouAlreadyJoinedATeamQuestion:\n \"¿Ya te uniste a un equipo a través de nuestro sitio web pero no sabes qué hacer a continuación?\",\n haveYouAlreadyJoinedATeamResponse:\n \"Debes descargar nuestra aplicación, Medica Scientific, de la tienda de Android o Apple e iniciar sesión con el mismo nombre de usuario y contraseña que utilizaste para acceder a nuestro sitio web.\",\n doYouWantToChangeTeamNameQuestion: \"¿Quieres cambiar el nombre de un equipo existente?\",\n doYouWantToChangeTeamNameResponse: \"Desafortunadamente, tendrás que jugar con el nombre seleccionado.\",\n areYouTryingToCreateSecondTeamQuestion: \"¿Estás tratando de crear un segundo equipo?\",\n areYouTryingToCreateSecondTeamResponse: \"Cada líder de equipo solo puede crear un equipo.\",\n doYouWantToSwitchTeamsQuestion: \"¿Quieres cambiar de equipo?\",\n doYouWantToSwitchTeamsResponse:\n \"Simplemente debes solicitar al líder el enlace único del equipo y lo trasladarán al nuevo equipo. Ten en cuenta que solo puedes ser asignado a un equipo a la vez.\",\n canIBePartOfTwoTeamsQuestion: \"¿Puedo formar parte de dos equipos en la misma simulación?\",\n canIBePartOfTwoTeamsResponse: \"No, solo puedes ser asignado a un equipo a la vez.\",\n canIAccessTheAppBeforeSimulationStartsQuestion:\n \"¿Puedo acceder a la aplicación antes de que comience la simulación?\",\n canIAccessTheAppBeforeSimulationStartsResponse:\n \"Sí, puedes acceder a la aplicación, pero no podrás realizar ningún cambio hasta que comience la simulación.\",\n howDoIKnowSimulationStartsEndsQuestion: \"¿Cómo sé cuándo comienza / termina mi simulación?\",\n howDoIKnowSimulationStartsEndsResponse: \"Tu profesor debe proporcionarte esta información.\",\n contactUs:\n \"Si todavía tienes preguntas, puedes comunicarte con nosotros a través del chat en la parte inferior derecha o escribiendo a \",\n supportEmail: \"support@processimlabs.com.\",\n howDoISwitchFromAPreviousSimulationQuestion: \"¿Cómo cambio de una simulación anterior a una nueva?\",\n howDoISwitchFromAPreviousSimulationResponse: `Después de que tu profesor te haga saber que él o ella ya han creado la nueva simulación, en la aplicación móvil de Medica Scientific ve a Configuración y toca \"Cambiar simulación\".`,\n FAQ: \"Preguntas más frecuentes\",\n },\n SupplyChainAdvancedOptions: {\n selectYourScenario: \"Selecciona el escenario: \",\n defaultScenarioTitle: \"Escenario por defecto\",\n defaultScenarioDescription: \"Este escenario se recomienda para los usuarios primerizos.\",\n },\n SupplyChainAdvanceSimulationModal: {\n StartSimulationController_SimulationEmpty:\n \"No hay estudiantes registrados en esta simulación. Por favor asegúrate de que los estudiantes se hayan registrado para poder iniciar la simulación.\",\n StartSimulationController_MoreTeamThanStudents:\n \"Por favor escribe un número de equipos que sea menor que la cantidad total de estudiantes registrados.\",\n StartSimulationController_InsufficientTeams:\n \"Por favor escoge un número de equipos más grande. La cantidad máxima de estudiantes en un mismo equipo debe ser igual o menor que 4.\",\n StartSimulationController_FailedStartTeam:\n \"Ha fallado el proceso de inicializar la simulación. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n StartSimulationController_SimulationNotFound:\n \"No hemos podido encontrar la simulación que intentas comenzar. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n AdvanceSimulationController_SimulatinNotFound:\n \"No hemos podido encontrar la simulación que intentas avanzar. Por favor inténtalo nuevamente. Si esto vuelve a suceder, por favor contáctanos utilizando el chat de soporte.\",\n AdvanceSimulationController_SimulationFinished: \"La simulación que intentas avanzar ya ha finalizado.\",\n AdvanceSimulationController_FailedAdvanceSimulation:\n \"No hemos podido avanzar la simulación, por favor inténtalo nuevamente en unos minutos.\",\n AdvanceSimulationController_SimulationDoesntBelong: \"Parece que la simulación es usada por otro profesor.\",\n AdvanceSimulationController_StartSimulation:\n \"La simulación que intentas avanzar no ha comenzado. Por favor comienza la simulación primero.\",\n NumberOfTeams: \"Cantidad de equipos\",\n NumberOfWeeks: \"Número de semanas\",\n StudentsAreJoined:\n \"Por favor asegúrate de que todos tus estudiantes se hayan unido a la simulación antes de comenzar.\",\n RegisteredStudents: \"Estudiantes registrados:\",\n RecommendedNumberOfTeams: \"Número recomendado de equipos:\",\n RoundedUp: \"N/4 redondeado hacia arriba.\",\n MissingSpotsMessage: \"Las posiciones faltantes serán jugadas por bots.\",\n },\n SupplyChainBuySimulation: {\n creatingSimulation: \"Creando Simulación...\",\n numberOfStudentsError: \"El número de estudiantes debe ser al menos 4.\",\n numberOfStudents: \"Número de estudiantes\",\n CreateSimulationController_MissingPayment:\n \"No hemos podido verificar tu pago, por favor contáctanos utilizando el chat.\",\n SimulationNameInUse:\n \"Oops, ese nombre de la simulación ya se ha utilizado, te sugerimos utilizar un nombre de simulación mas específico\",\n SimulationNameTooLong:\n \"El nombre de la simulación es muy largo, por favor intenta con un nombre más corto de máximo 25 caracteres.\",\n whoPaysHelp:\n \"El costo de las licencias puede ser cubierto por la institución o por cada estudiante a la hora de registrarse.\",\n whoPaysSelected: \"¿Quién pagará?\",\n pleaseChooseOne: \"Por favor elige uno\",\n verifyFieldsCorrectlyFilled: \"Por favor verifique que todos los campos estén llenos de forma correcta.\",\n },\n SupplyChainCommon: {\n OneStationUnknownPeers: \"Una sección - compañeros desconocidos\",\n OneStationKnownPeers: \"Una sección - compañeros conocidos\",\n AllStationsKnownPeers: \"Todas las secciones - compañeros conocidos\",\n Decision_RiceSupplier: \"Suplidor De Arroz\",\n Decision_RiceReorderQuantity: \"Tamaño De Orden De Arroz\",\n Decision_RiceReorderPoint: \"Punto De Reorden de Arroz\",\n Decision_AgaveReorderQuantity: \"Tamaño De Orden De Agave\",\n Decision_RicelyOrder: \"Tamaño De Orden De Ricely\",\n Decision_KrispsOrder: \"Tamaño De Orden De Krisps\",\n Decision_RicelyOrderSize: \"Orden De Ricely\",\n Decision_KrispsOrderSize: \"Orden De Krisps\",\n Decision_MachinesRicely: \"Maquinas Deseadas Ricely\",\n Decision_MachinesKrisps: \"Maquinas Deseadas Krisps\",\n Decision_RicelyEmployees: \"Empleados Deseados Ricely\",\n Decision_KrispsEmployees: \"Empleados Deseados Krisps\",\n Decision_RicelyShiftLength: \"Duración Del Turno Ricely\",\n Decision_KrispsShiftLength: \"Duración Del Turno Krisps\",\n Decision_LMRicelyReorderQuantity: \"Tamaño De Orden De Ricely\",\n Decision_LMRicelyReorderPoint: \"Punto De Reorden de Ricely\",\n Decision_LMKrispsOrderSize: \"Tamaño De Orden De Krisps\",\n Decision_AuroraTransportMethod: \"Aurora - Método De Transporte\",\n Decision_AuroraDispatcher: \"Aurora - Despachador\",\n Decision_BarcelonaOrderUpToSize: \"Barcelona - Pedido Hasta\",\n Decision_BarcelonaWarehouseState: \"Barcelona - Estado Del Almacén\",\n Decision_BarcelonaSupplier: \"Barcelona - Suplidor\",\n Decision_BarcelonaTransportMethod: \"Barcelona - Método De Transporte\",\n Decision_BarcelonaDispatcher: \"Barcelona - Despachador\",\n Decision_GenevaOrderUpToSize: \"Geneva - Pedido Hasta\",\n Decision_GenevaWarehouseState: \"Geneva - Estado Del Almacén\",\n Decision_GenevaSupplier: \"Geneva - Suplidor\",\n Decision_GenevaTransportMethod: \"Geneva - Método De Transporte\",\n Decision_GenevaDispatcher: \"Geneva - Despachador\",\n Decision_AlamedaWarehouseState: \"Alameda - Estado Del Almacén\",\n Decision_AlamedaSupplier: \"Alameda - Suplidor\",\n Decision_AlamedaProductPrice: \"Alameda - Precio Del Producto\",\n Decision_AlamedaTransportMethod: \"Alameda - Método De Transporte\",\n Decision_BelmontOrderSize: \"Belmont - Tamaño De Orden\",\n Decision_BelmontWarehouseState: \"Belmont - Estado Del Almacén\",\n Decision_BelmontSupplier: \"Belmont - Suplidor\",\n Decision_BelmontProductPrice: \"Belmont - Precio Del Producto\",\n Decision_BelmontTransportMethod: \"Belmont - Método De Transporte\",\n Decision_GrantOrderSize: \"Grant - Tamaño De Orden\",\n Decision_GrantWarehouseState: \"Grant - Estado Del Almacén\",\n Decision_GrantSupplier: \"Grant - Suplidor\",\n Decision_GrantProductPrice: \"Grant - Precio Del Producto\",\n Decision_GrantTransportMethod: \"Grant - Método De Transporte\",\n Decision_WarehouseBuilt: \"Abierto\",\n Decision_WarehouseClosed: \"Cerrado\",\n Decision_SupplierA: \"Suplidor A\",\n Decision_SupplierB: \"Suplidor B\",\n Decision_TransportMethodTruck: \"Camión\",\n Decision_TransportMethodDrone: \"Drone\",\n Decision_TransportMethodLand: \"Camión\",\n Decision_TransportMethodAir: \"Avión\",\n SupplyAndAssembly: \"Suministro y Montaje\",\n Production: \"Producción\",\n NetworkA: \"Augusta\",\n NetworkB: \"Buenavista\",\n LastMile: \"Última Milla\",\n GameMode: \"Modo de Juego\",\n GameModeHelp:\n \"Con la selección de modo de juego podrá seleccionar como quiere que sus estudiantes interactúen con la simulación y entre ellos.\",\n OneStationUnknownPeersHelp:\n \"Una Sección - Compañeros Desconocidos: cada estudiante administrará solamente una sección de la cadena de suministro, pero no sabrán cuales compañeros operan las otras secciones.\",\n OneStationKnownPeersHelp:\n \"Una Sección - Compañeros Conocidos: cada estudiante administrará solamente una sección de la cadena de suministro y además sabrán a cuál equipo pertenecen.\",\n AllStationsKnownPeersHelp:\n \"Todas las secciones - Compañeros Conocidos: Cada estudiante tendra acceso a todas las secciones de la cadena de suministro, y además sabrán a cuál equipo pertenecen.\",\n LastMileHelp:\n \"Última Milla: Hasta 2 estudiantes por equipo administrarán 2 regiones comerciales distintas, su logística y canales de distribución.\",\n SimulationPerformanceCatalogue_AccumulatedOrders: \"Órdenes Acumuladas\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyInventory: \"Suministro y Montaje - Inventario\",\n SimulationPerformanceCatalogue_MaterialX: \"Arroz\",\n SimulationPerformanceCatalogue_MaterialY: \"Agave\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyProductA: \"Suministro y Montaje - Ricely\",\n SimulationPerformanceCatalogue_SupplyAndAssemblyProductB: \"Suministro y Montaje - Krisps\",\n SimulationPerformanceCatalogue_Production: \"Producción\",\n SimulationPerformanceCatalogue_FinishedGoods: \"Producto Terminado\",\n SimulationPerformanceCatalogue_ProductionProductA: \"Producción - Ricely\",\n SimulationPerformanceCatalogue_IncomingInventory: \"Inventario Entrante\",\n SimulationPerformanceCatalogue_StationOne: \"Estación 1\",\n SimulationPerformanceCatalogue_ManualLaborQueue: \"Cola de Estación Manual\",\n SimulationPerformanceCatalogue_ManualStation: \"Estación Manual\",\n SimulationPerformanceCatalogue_LaborUtilization: \"Utilización de Mano de Obra\",\n SimulationPerformanceCatalogue_ProductionProductB: \"Producción - Krisps\",\n SimulationPerformanceCatalogue_NetworkA: \"Red Augusta\",\n SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseAlphaFromLocalSupplier:\n \"Almacén Aurora - Inventario Entrante\",\n SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseBetaFromLocalSupplier:\n \"Almacén Barcelona - Inventario Entrante\",\n SimulationPerformanceCatalogue_IncomingInventoryProductAWarehouseGammaFromLocalSupplier:\n \"Almacén Geneva - Inventario Entrante\",\n SimulationPerformanceCatalogue_WarehouseAProductA: \"Almacén Aurora - Nivel de Ricely\",\n SimulationPerformanceCatalogue_WarehouseBProductA: \"Almacén Barcelona - Nivel de Ricely\",\n SimulationPerformanceCatalogue_WarehouseCProductA: \"Almacén Geneva - Nivel de Ricely\",\n SimulationPerformanceCatalogue_RegionAProductADemand: \"Almacén Aurora - Demanda\",\n SimulationPerformanceCatalogue_RegionBProductADemand: \"Almacén Barcelona - Demanda\",\n SimulationPerformanceCatalogue_RegionCProductADemand: \"Almacén Geneva - Demanda\",\n SimulationPerformanceCatalogue_RegionAProductABacklog: \"Almacén Aurora - Órdenes Pendientes\",\n SimulationPerformanceCatalogue_RegionBProductABacklog: \"Almacén Barcelona - Órdenes Pendientes\",\n SimulationPerformanceCatalogue_RegionCProductABacklog: \"Almacén Geneva - Órdenes Pendientes\",\n SimulationPerformanceCatalogue_NetworkB: \"Red Buenavista\",\n SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseAlphaFromLocalSupplier:\n \"Almacén Alameda - Inventario Entrante\",\n SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseBetaFromLocalSupplier:\n \"Almacén Belmont - Inventario Entrante\",\n SimulationPerformanceCatalogue_IncomingInventoryProductBWarehouseGammaFromLocalSupplier:\n \"Almacén Grant - Inventario Entrante\",\n SimulationPerformanceCatalogue_WarehouseAProductB: \"Almacén Alameda - Nivel de Krisps\",\n SimulationPerformanceCatalogue_WarehouseBProductB: \"Almacén Belmont - Nivel de Krisps\",\n SimulationPerformanceCatalogue_WarehouseCProductB: \"Almacén Grant - Nivel de Krisps\",\n SimulationPerformanceCatalogue_RegionAProductBDemand: \"Almacén Alameda - Demanda\",\n SimulationPerformanceCatalogue_RegionBProductBDemand: \"Almacén Belmont - Demanda\",\n SimulationPerformanceCatalogue_RegionCProductBDemand: \"Almacén Grant - Demanda\",\n SimulationPerformanceCatalogue_Finance: \"Finanzas\",\n SimulationPerformanceCatalogue_SupplyAndAssembly: \"Suministro y Montaje\",\n },\n SupplyChainDetailScreen: {\n simulationDetails: \"Detalles de la Simulación\",\n GetSimulationDetailsController_CantUseAPI:\n \"No tiene permiso para utilizar este API, por favor contáctenos al correo support@processimlabs.com\",\n GetSimulationDetailsController_SimulatinNotFound:\n \"No pudimos encontrar esta simulación. Intente nuevamente. Si esto no funciona, por favor contáctenos al correo support@processimlabs.com\",\n },\n SupplyChainJoinSimulation: {\n joinSimulationSuccessful: \"Te has unido satisfactoriamente a la simulación.\",\n JoinSimulationController_SimulationNotFound:\n \"¡Oh no!, parece que la simulación a la que te has intentado unir no existe. Por favor confirma con tu profesor que has utilizado el link adecuado.\",\n failedJoinSimulation: \"No se ha podido unir a la simulación de Supply Grain.\",\n JoinSimulationController_AlreadyJoined: \"Ya te has unido a esta simulación\",\n JoinSimulationController_MissingPaymentSummary:\n \"Parece que la simulación a la que intentas unirte no ha sido pagada, verifica el pago con tu profesor\",\n JoinSimulationController_ExcededLicenses:\n \"¡Oh no!, parece que no hay una licencia disponible pagada para que puedas unirte a la simulación, por favor verifica el pago con tu profesor.\",\n },\n SupplyChainModifyModal: {\n ModifySimulation: \"Modificar Simulación\",\n close: \"Cerrar\",\n accept: \"Aplicar\",\n Success: \"Se ha modificado la simulación correctamente.\",\n },\n SupplyChainPurchased: {\n advancePeriod: \"La simulación avanzará cada:\",\n GameModeTitle: \"Seleccione un modo de Juego\",\n SimulationStartInTheFuture: \"Seleccione una fecha de inicio al menos una hora en el futuro\",\n SimulationMinDurationError: \"La simulación debe durar en ejecución como mínimo {{hours}} horas\",\n SimulationMaxDurationError: \"Las simulación debe durar en ejecución como máximo {{hours}} horas\",\n TimeBetweenAdvancesOneHour: \"1 hora\",\n TimeBetweenAdvancesTwoHours: \"2 horas\",\n AdvancedOptions: \"Opciones Avanzadas\",\n },\n SupplyChainRunAgain: {\n CreateNextRunController_SimulationNotFound:\n \"Ha habido un error creando la simulación, por favor inténtelo de nuevo. En caso de que esto no funcione contactenos, utilizando la función de chat o escribiendonos un correo a support@processimlabs.com.\",\n CreateNextRunController_ErrorInitializingSimulation:\n \"Ha habido un error inicializando la simulación, por favor inténtelo de nuevo. En caso de que esto no funcione, contactenos utilizando la función de chat o escribiendonos un correo a support@processimlabs.com.\",\n scrambleTeamMembers: \"Aleatorizar equipos: \",\n createNextRunSuccess:\n \"La nueva simulación se ha configurado correctamente. Podrá acceder toda la información de esta en la página de inicio.\",\n Success: \"¡Éxito!\",\n },\n SupplyChainShareModal: {\n ShareJoinLInk: \"Comparte este enlace con tus estudiantes para que puedan unirse a tu simulación.\",\n },\n SupplyChainStandings: {\n Team: \"Equipo\",\n Total: \"Efectivo Total\",\n SupplyAndAssembly: \"Suministro y Montaje\",\n Production: \"Producción\",\n NetworkA: \"Red Augusta\",\n NetworkB: \"Red Buenavista\",\n All: \"Todos\",\n EmptyStandings:\n \"Disculpa, no hemos podido encontrar posiciones para tu simulación. Deberías poder verlas luego de inicializar tu simulación. Por favor vuelve luego.\",\n \"Team Member\": \"Miembro\",\n Email: \"Correo\",\n Role: \"Rol\",\n },\n RunAgainScreen: {\n addedSuccessfully:\n \"Actualmente estamos copiando a los estudiantes y equipos de la simulación anterior a esta. Este proceso puede tomar entre 5 y 10 minutos. Usted y sus estudiantes serán notificados por correo electrónico cuando haya terminado.\",\n \"Account not found.\":\n \"Cuenta no encontrada. Intente nuevamente o contáctenos en: support@processimlabs.com para obtener asistencia.\",\n \"Simulation not found.\":\n \"Simulación no encontrada. Intente nuevamente o contáctenos en: support@processimlabs.com para obtener asistencia.\",\n \"Your next run is being created, we will notify you when it's finished.\":\n \"Hemos recibido tu solicitud para la segunda ejecución. Podrás ver más detalles en tu pantalla de inicio en algunos minutos.\",\n \"Total student interaction can't be less than 100 days\":\n \"La interacción total del alumno no puede ser inferior a 100 días.\",\n \"Total student interaction can't be more than 300 days\":\n \"La interacción total del estudiante no puede ser más de 300 días.\",\n },\n TutorialsScreen: {\n loadingTutorials: \"Cargando vídeos, por favor espere ...\",\n noVideosList: \"Actualmente no hay listas de vídeos disponible.\",\n Simunation: \"Simunation\",\n MedicaScientific: \"Medica Scientific\",\n errorFetchVideos:\n \"Se ha producido un error al buscar sus vídeos, verifique su conexión a Internet y vuelva a cargar la página.\",\n },\n },\n};\n\nexport default resources;\n","module.exports = \"data:image/png;base64,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\"","import React from \"react\";\nimport HelpHoverComponent from \"../../helpers/HelpHoverComponent\";\nimport \"./title.css\";\n\nconst MainTitleComponent = (props) => {\n let reducedSubTitle = null;\n let icon = null;\n let helpHoverComponent = null;\n\n if (props.hasIcon) {\n icon = \"Pay;\n }\n\n if (props.reducedSubTitle) {\n reducedSubTitle = \"reducedSubTitle\";\n }\n\n if (props.hasHelp) {\n helpHoverComponent = ;\n }\n\n return (\n
\n \n
\n

{props.title}

\n {helpHoverComponent}\n
\n

{props.subtitle}

\n {icon}\n
\n );\n};\n\nexport default MainTitleComponent;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loadingContainer\":\"StudentJoinTeamComponent_loadingContainer__qkQe3\",\"loadingInformation\":\"StudentJoinTeamComponent_loadingInformation__3JziK\",\"loader\":\"StudentJoinTeamComponent_loader__2p0DO\",\"spin\":\"StudentJoinTeamComponent_spin__1Oi3f\",\"sub\":\"StudentJoinTeamComponent_sub__3j26P\",\"header\":\"StudentJoinTeamComponent_header__1zP0t\"};","import React from \"react\";\nimport { Header, Image } from \"semantic-ui-react\";\nimport \"./helpers.css\";\nimport processimLogo from \"../../assets/pl-logo.png\";\n\nconst LoadingComponent = (props) => {\n let image = null;\n\n if (props.image) {\n image = ;\n }\n\n return (\n
\n
\n {image}\n
\n
\n {props.message}\n
\n
\n
\n );\n};\n\nexport default LoadingComponent;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAPgHpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjazZppctw4EoX/4xRzBGyJ5TjYMmJuMMefL8GSZVluL92OibHaqjKLBEHky7eg2p3//Fvdv/iTpTWXpbbSS/H8yT33OHjT/PPneQ0+399vf+Lr6Ifj7ssHkUOJ1/R8UM7zGgbH5f2Cml/H58fjrq7XbdproLc7vwZMdme71eu89hooxed4eP3b9dd1I3/1OK+/uuL9WObz0bf/zpXF2MJ4Kbp4Ukie383ukphB6mnwO/I7Jm7M+3zf13s8fH/t3Je34dOihu+tnR+v4+njUjhfXieUb9bodTzI99furtDXMwrvd/7wwS7vU/u0drqb6nmebuTCShX3eqi3R7nvOJHlzOleVvip/BXe1/vT+Wk84qJim2pOfpYLPURWW0MOO4yg4dzXFRZTzPHEymuMK6Z7rKUae1zpKQE/QWOlPNulRj0WVUscjl/mEu59+73fCo0778CZMTCYVfTTj/vewb/z82UgVYNuCL59WSvmFQ3TTMMqZ785i4IEfa2p3PW9P85/U5xXYRMVlLvMjQccfj5DTAnv2Eq3zonzxGfnn9YIdb8GYIm4tzAZUJyDLyFJAAs1xhoC69ioz2DmMeU4qUAQiTs4pTYpFYrTot2ba2q450aJz2GohUJIKjRJswaiWDkL+Km5gaEhSbITkSJVmnQZJZVcpJRSi3HUqKnmKrXUWlvtdbTUcpNWWm2t9TZ67AkKk156db313sfgpoOhB1cPzhhjxplmnjLLrLPNPscCPisvWWXV1VZfY8edNu2/y65ut933OOEApZOPnHLqaaefoWBNk2YVLVq1adfxpWqvqn6sWvimcj+uWnhVzSqW73n1vWocrvVtiGB0IlYzKhZzoOLVKgCgo9XMt5BztMpZzXyHtJJEqhbEirODVYwK5hOiaPhSu/fK/bBuTvJv1S3+VeWcle5PVM5Z6V6V+1y371Rtj6so6RbIutDW1CeF2LikjdiGSdLff3X/dID/m4FOqUvSSWWnCvHOQ/kpxokqHTIuGvrJFUAlVDVpSmfLERnUKAMuf8ZaZ/TK+gPN2ULYQxdVVqd1Hi2Vk9IejV9H9o5J9jprjLSlnTimcPkcVfoCs3NMnQLEKXUY0rvkkNzpPdY9JnPtp3bmXEoftTORLlwCWqT1s8EKMKZfc5u1DZ6HWnOXycm05HCy6SrtHhqkL2mOE5aqKTOTATb8WzR1QcPC0aPWPKhSY75VSuhCz7QWxdlK+Ll2LnZ5iNPO8oUZ9G5H9p61Jx1gXZHVeJ8+MXwp2mTqqVpEddK0djq3tYmEzJRh6rgOmkcvLJqmhgWNJ9W6eYYz5YSasVh15soz7L0B9sFoqXDSVHs0m1P9+uPPnwoV/jxMXe7PDKPi/swwNO3fGUY4MRQFARoNZLNYi0DJfs6cexOF/2qsyofbLvYT/EfeJp3mL7RVDlO9+qqeB/Bb/Qw2o8BJzS6bhQJSPrMBcVX1T/m92NU+gtBb31jm8sNaTkeIey6AHOp006zPLjHInruuLYVR416+lLGaBhgN78q45TNANXdbjKzDV6fb15SXmZHJiatM3H8B/TFn5D71sGuZAJ/RN2Q8cbsTdwvPJ7NPx7dkYzp0226xD92VEMVQejx+wdqrp1XSWFJjXnSXQsT1eDIH7d/gkBi2ScDIArW7lnWGDR/PaTo1ctdzuvF00lYKazrjuERE/52stiRxieJWezqy/C0L3e9n91KMvvGataY9Gw3vjwlAQTaG9s0D17H6rgkyq7NmXGCmQievRPEjZsbIvwGHNeuxR209ZVvqtba9mQtF6ouZT5o0KUYHyfoua7o/wdffHYgyU3BWUtPYu/WdirKYdD72yJ+1O/mkUua0UP2pm8WvIupwa22PkfeIh/lPqhXWguha2TxVMdvdjYlzM2xQ3AY6zimwkiHRHHobYWPY88FX4zO8TWhglLiPnjUpzBkJJeiwf5wVLwEkg5EvC71AhMLMcy89Ee3fbRb1kieCsPvsncDVqOJZFeRYadEd0qpYxgPPf/XqfnbCr75+GEgOwPQHggBlLAWgWC2cPLFPHoODHnbtxA+1tIMLUk8zCNUhi4AuzXPns5Pf+B0yk6HyFKFRz+rInwWrtkgzWB0pHduUKSUqVjqEUoIQmdA12KbphhsaLJRR4ZjQuB1OWtWPSVXrwZHR5cDzWKO8NcyHV/fpA5JWlihICM2dKBKpCkjgQkPuqGe6cfsMpgbz6LoPqt3FYWyicAX8tQOsg5byJJd3Glah4A0qkisQYOFU2ruYuANHZn1uy7Z6oFpaEQIJl6nC3Cx5g1EgNJgb+fQF4tsth4FLxP+tvelTQAtG1ikZGA5YyQH1pvUAdAT+H0DACZpqbI55SVJ3HjvTHBqzn9FrZomLPxWGrUHHrn3SWsbnAsG0eQQP2Sq96Fifo9RTtwmDVY3eaVXCJs9CpauhEZPnPRiDxNmc2pn+YMBHphggl+Xm1QY4Nj+awRMfH/+yyp9e07yracSmERbISNE419DoiOaXrCkbj3RNhi5mcYVzTq46NOigindANEXDwEQE2mLxvN4wTQMPqGL0iWYppReKKbAPBUnHEwy68RDqAIbJ9ZfCuN9yhcyE/5JwPKDO8DKA4py00dyz6Qc/h8fz4PnHqDxKWxWbdmLEM6rlJKJr9w4lx+dZL6E00MVcOUyoP/egUExFNVQxfQu92MlcKaN64BrRU7KTzagLLTKOzQcWQwHyPIiKmNUsK0CcuDqhCQnzHu0An6uil4MEbbbTZvsb5I+A0CqhRqxB4JaZ90mLCaOlGoNaLwsTcXhqY+N2mNzEiiLn0MFgqbZhYwMMFhxL/AYZO/rg5Q0tczJQ47e5jVTEwo9ZX8pbIyxj+2dym+Cnr8G9mICh+gciAJyXCgpduK7j9fcoU4CVuEL2tT14L8q1u/veXTZIyX0gVIeAWVkVyB9PTVknMKUHA+XEaQWFR3tUvDD+CIoKdZjtI03stSd2BZ3EUARI0nZgGg6jH8BFAr0AbGYCDk6M3NzSoOCNBDkz/BtyMUMEly9WF4icw/InjI3tYWUYEeeG+POjjQQQCyMwketJyCTDMfYYBBjomQMhjjU7IWdB+gw3MUXN4+SIoeQkaomJMGo75GOahRhBXlKclzMbShMsYayudsXCFCGqP6uWCb63MIH72imBIxKXVYOyw26IP00PiSksWyyOEJ7t8ywJAqXnl1xr1cOMfHLmkqvHLqceZ6PlIYd4qXyRucvFFs76lngEWGT5HzKu+3ig/gJiUJfwLkNv4HNfyVD55l5k0wMptbZPQJ0L3ZEEq8LzzwWwFqQHKgr1RdcgSoIUCkPHLJwH4SvgwrOZVrgNkLEyPRRQCnRIC9QWDQjrPjzQNJC1mBwR0+LFuIzEkhhvhE7zTgy8ThKCbRpN2zcJaEblOuJuSFCMJrNfDzzUTVAHV1YgprjwMwsLgXtoOy3FiWz8f13wEOSqPbWI82LlMqQS/ZWnBxTul3r7E2o+g8b9EDUAtIRJEXZJecPdQrP2crCVLKQflPCBR1e3WeONE+ROKcYSC4YGz0r87507ZEp/Eh2xfzLvr2kk/BI3ZfgdUsfF41a1acqNj8TZ1wkTc9eJ5xnGhXBaRI8TPd4Wqn9ztfmTYHtHav4A+4xRDp3CzRR3JvMV13oGJ8ScTQjLEMSoe93ASQQyNbo7Cl5WmFMaaBRQM2n3mfEQeIAccEV+Yo9tuxUdQG0r+A0GMdQLzirGZkCykZh20xLBJNiBHWUx4WwepeHpEfS5HKA8SLflWPvhLnjteMo5J3Lz2bo/d59kofpBkd+eBLOBn0VDD6A/vMLZDBwpUOcO+JedIbxpeeLvbURBbIjgZhluGbRILsW3KKVEb1uJRK9WyK6ItDcR7BA1iS4Y0zfrbLM1cqybtoXFEamUkGY0Y7wIGoCLPivY03LsWrBMckIfFBGMedwsRRYa29FouSRKH4mg8fC4rWOC8H9UXAOeY+XxC77L/aIx+42BzrP9Q19DJEKXkkXwcnFZniAE+G5+pPer9YAQP5UhqW3uckw4W4nzWFcjiIO2kR4gOhKx8S7hLpP5LZ6TgsG/+CUtR+PSgS1jQTBL6O0mrluMhpxHIZIROtArHFgzPwbgKw7LqmnbFEC/kad9zwPvzisTE9ukoKe8uhuuu/7jyOZ+8wJWxEwnSdX+A/TI7epYAwfxwKLZJ1iIRRr50k9E7xMRaa/MO3SXK+x5I3YM8CPFCHzD0xNT89qwmIu0Ok9rthiHkjahMHTQzsIe2+cU276L8BpZCGj2gG9rUsmFqHpPExUA3akTIbZtKrJwKTbzMOQSY5E1TdnGhEsSqRyWp0gVhYOV8A15JqJ0oPCGGiKn68TpdirmGcBbzpthDnzwkQG/x30y4ZYu6jH2R4FBjplK+bgL7v7MJvS3A0kGkJXfABotMzdKYMCq+cTDkzSYNIjPc+6S0x4yfPRkKQrgiFKwaRrQ0FLCm7FAtN3TDinDcAQue05WBQ+RkaGCx6o6FkxC7kJcDiVJxy2zhnFQt1laXAhfum/Bbitw4cCZ23dlgPnrVm3xHDAPZQTlvnETamZrqtO+VifgdKLrsQeFXw9KAd3whmCIDyfR2qYXvnDANh4AVfu+J0HTmFHzCwF+h3kbzMVTAtVjeytgAPkhelkErc9eZu8bd4kA4l0nRLpRVNaIUMBAvnXEPBPtYQ/bXE4kmnzWrpkFIRSN4m8YAATzGS7ZrmFfsz0732uJbdW/MmIQEeNhItQYKCS9NDqtNOBQVN3b3gRtAQVBsOGm0CVvW9hlujsIefeGGN1EbrXggx6357u0iLPMO+ZaiGjPRhCBoCI1d9M93iMeN5LoS4aY11cg/he9jQBhexFEwWf71XYTbS8JlXm2C8W+BrDntBNWHK5puEPwKBbc7STzt7bR2kTuHc/9DhxZTfZtHS6+yvtkxmsm7k7lmcjHaTyTuFOwFfw4BUx0HM8cXjOw3eNnT5g8jjVkgcjbONiJ2YF/MYMMZ1+jlP1pgb9eX/e+wHc233z8/inh8xkItNoOVqWQA4+H7SNI1+mgszATvtx8he2JdxswH9vQ2h7Jtoc0/mhkC+nPYMjK8TtxX7wOeqOVcGzW0upC/5kA+4p7KSgO/qrzhj7wtuOA7uiGzuxems8zIIg+2J9GJHeFG06FIJftiDxONbFcOLVQbP8Yex7g4/ttZOq2iUvaO51W3QfH9XznktTlvbF+YwcIYSc4F7a2//Vjxoi9tn1g7P7oVvfS/uf7kP/3A1n+6u6/6Lxnny3zR7UAAAAGYktHRAAAAAAAAPlDu38AAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfjDBcUGw2Ykv0gAAAKC0lEQVR42u3dUXLqOBCGUaxik16hlum8pzDYBkst9Tnvc+dCTc3/uUOSpdb6AAByKd4CABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAABAAAIAABAAAAAAgAAGN/TW0Am67pu3gW+VWtdvAuMbqm1ehcwuiBCEAAYaAChIQAw1gDCQgBguAFEhAAw4gCIBAFg5AEQBgLA2AMgCASA0QdAEAgAow+AGBAARh8AISAADD8AYkAAGH0AhIAAMPwACIGMAWD8ARACiQLA8AMgAhIFgOEHQAj8TjH+AJBvu0JfAAw/AK4ByS4Axh8A14BkAWD8ARAByQLA+AMgAu4X6jMAxh+ALHp/LiBEABh+AERAW92/BGD8Aciq5waWrC8cADJHQMn2ggGATgFg/AGg7y4WbzsA5IuAMvsLBAAR0DkAjD8AxNjKMtsLAgCCXQAAgBgPzWWWFwIAIiBQABh/AIjHlwAAIOEVoIz6FwcAERAwAIw/AMTlSwAAkPAKUEb5iwIALgAA4AoQKQA8/QOACwAAEPAhWwAAgAtAnDIBAO7bWhcAAHAB8PQPABmuAC4AAOACAAAIgIOc/wGgrW+31wUAAFwAAAABcIDzPwD08c0GuwAAgAsAACAAPnD+B4C+rm6xCwAAuAAAAAIAAAjvypcBSst/GQDgAgAACAAAQAAAAIed/dK8AAAAF4B7KgMAmCAAAAABAAAIAACghzNfoi93/uEAgAsAACAAAAABAAAIAADgvKOf1RMAAOAC8JuqAAAmCgAAQAAAAAIAABAAAIAAAADaOPKh/fLLPwwAcAEAAAQAACAAAAABAAAIAABAAAAAzQPAtwACwFg+bbcLAAC4AAAAAgAAEAAAgAAAAAQAACAAAAABAAAMFAB+CBAAjOndhrsAAIALAAAgAAAAAQAACABIa9u2x7b5fCwgACDV+AsBQAAAQgAQACAEhAAgAEAIAAgAyBcCAAIAXAMABAAIAYB77f0+gHLlHwKEAOACAAgBQAAAQgAQAIAQAAQAIAQAAQAIAUAAAK9CAEAAgGsAgAAAIQAgAEAIAAgAEAIAAgCEAIAAACEACABACAACABACgAAABg8BAAEArgFAIuu6bgIAhIAQAAQACAFAAABCABAAgBAABAAgBIDZA+DVJwYBIQC4AABCABAAgBAABAAgBAABAMwXAoAAAFwDAAEACAFAAABCABAAgBAABAAgBAABAAgBQAAAQgAQAIAQAAQAIAQAAQCMGgKAAABcAwABAAgBQAAAQgAQAIAQAAQAIAQAAQAIAUAAAEIAEACAEAABACAEQAAAjBoCgAAAXAMAAQAIAUAAAEIABACAEAABACAEQAAACAEQAABCAAQAgBAAAQAgBEAAAIwaAiAAAFwDQAAACAEQAABCAAQAgBAAAQAgBEAAAAACAABo7OktALhuWRZvAgIAwPCDAAAw/CAAAAw/CAAAww8CAMDwgwAAMPwgAAAMPwgAAMMPAgDA8IMAADD8IAAADD8IAMDwA34bIGD8wQUAwPCDAAAw/CAAAAw/CAAAww8CAMDwgwAAMPwgAAAMPwgAAMMPAgDA8IMAAAw/IAAAww8IAMDwAwIAMPzAaX4bIGD8wQUAwPCDAAAw/CAAAAw/CAAAww8CADD8gAAADD8gAADDDwgAwPADAgAw/IAAAAw/IAAAww8IAMDwAwIAMPyAAAAMP/CRXwcMxh9wAQAMPyAAAMMPCADA8AMCADD8wKB2PwRYa/V/Dhh4+I0/4AIAnvgBBAAYfkAAAIYfEACA4QcEAGD4AQEAGH5AAACGHxAAgOEH4nn1s338NkAw/oALAGD4AQEAGH5AAACGHxAAgOEHBABg+AEBABh+QACA4QcQAGD4ATp6+4OAXv3kIGB/+I0/MEUAAJ76AQEA/Bt7T/3AqHwGADzxAy4AAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAAGhg78f6CwAAcAEAAAQAACAAAIAkAbD34QEAwAUAABAAAIAAAAAEAAAgAAAAAQAACAAA4JJ338ovAADABQAAEAAAQN4A8OOAAcAFAAAQAACAAAAABAAA0N6nz+8JAABwAQAABAAAkDsA/CwAAHABAAAEAAAgAACAbo582V4AAIALAAAgAP7xnQAA4AIAAAgAAKC3o9d6AQAALgAAgAAAAATA4+E7AQDABQAACOPMQ7oAAAAXAABAAOzwOQAAcAEAADo7+3AuAADABQAAEABv+BwAALgAAACdXHkoFwAA4AIAAAiAD3wOAABcAACAxq4+jAsAAHABaFceAMDAAQAA9PHNQ7gAAAAXgPYFAgAMGgAAQFvfPnwLAABwAehXIgDAgAEAALTxi4duAQAALgD9iwQAuH9rXQAAwAXAFQAAZn/6dwEAABcAVwAAyPD07wIAAC4ArgAAkOHp3wUAAFwAXAEAIMPTvwsAALgAuAIAQIan/2YXABEAALG205cAACChZgHgCgAAcTazzPaCAMD4BwsAEQAAMTayzP4CAcD4BwkAEQAAfXX9LgARAAB99rBkfNEAkHn8QwSACADA+CcNABEAgPFPGgAiAADj385Saw33xqzruvnPAwDDnywAhAAAxv9exZsFAPn2LPQFwDUAAMOf8ALgGgCA8U9+AXANAMDwJw8AIQCA8U8cAEIAAMOfOACEAACGP3EACAEADH/iABADABj95AEgBgAw+skDQBAAkHn0BYAoACDZ4AsAYQBg7BEA4gDAyAsARAKAYRcAiAYAwy0AEBWAkUYAgNgAI4wAAHGCkQUBAADEVbwFACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAOCtPz0Megn+IIlkAAAAAElFTkSuQmCC\"","export const getUrlSearchParam = () => {\n return decodeURIComponent(window.location.search.slice(1));\n};\n\nexport const preventBack = () => {\n window.history.pushState(null, document.title, window.location.href);\n window.addEventListener(\"popstate\", backPressEvent);\n};\n\nexport const allowBack = () => {\n window.removeEventListener(\"popstate\", backPressEvent);\n};\n\nfunction backPressEvent() {\n window.history.pushState(null, document.title, window.location.href);\n}\n","import React from \"react\";\nimport { Form, Dropdown } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faChevronDown } from \"@fortawesome/free-solid-svg-icons\";\nimport HelpHoverComponent from \"./HelpHoverComponent\";\nimport \"./dropDown.css\";\n\nconst DropDownComponent = (props) => {\n const { onSelection, label, selectError, options, text, placeholder, value, helpMessage, labelAlignment, id } = props;\n\n let selection = value;\n let descriptionLabel = null;\n let helpHoverComponent = null;\n\n const onSelectOption = (event, { value }) => {\n selection = value;\n onSelection(value);\n };\n\n let dropDownContainerClasses = \"dropDownContainer\";\n if (selectError) {\n dropDownContainerClasses += \" errorDropdownIndicator\";\n }\n\n if (helpMessage && helpMessage.length > 0) {\n helpHoverComponent = ;\n }\n\n if (label) {\n let labelClassNames = \"labelContainer\";\n if (labelAlignment === \"left\") {\n labelClassNames += \" leftLabelAlignment\";\n }\n\n descriptionLabel = (\n
\n \n {helpHoverComponent}\n
\n );\n }\n\n return (\n \n
\n {descriptionLabel}\n
\n onSelectOption(e, { value })}\n icon={\n \n }\n value={selection}\n text={text}\n />\n
\n
\n
\n );\n};\n\nexport default DropDownComponent;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAArCAYAAAAHdLqEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAbBJREFUeNpiYCAeNAPxJyBeCMSMDNQFaUD8AYj3AjEHNQ3mBOK/QPwfilWp7PBHSGb7EqOBiUiD2dDUclDZ4XxIbF5iNICiPAuI66COw6dOAIn/CRoD1AICSMnvKxD/wqMWJNcMUvwNmhSGEvjBCE1XQw6woPFBSeYGFnVcQLwAiV8CzVDUAgugdoDAJCA+gkWNBhA3IQv8R8I2OAxmB+KfSOoUqByAd5DMdsOhxgbNrUQ5HARSgfgKENfSIOZ9gPgiEM/EkgoodvhAAxSHo/vOD4i1BqnDVdDL5yFZqjAxDFGAnlSegQr3QepWUDNDitTicNBlziGbVEYdPurwUYcPkXIcHwgEYlcgZqaRW/4B8UEgXkGsBmLKcR20zjKtMMjxhtQsx1nplKwYoW1/qiWV89D2uCsNxlSQwQEgPkHNpDJa5Y+W4yOhHE+E9sBJKccfAnELEH8cKIeDyta5ZJYooPK/YqCSyh8Ka8QBSyqXgTgCiJ1IDHVQV7CbVul8tBwfLQ5HHT7qcNoVhyYM1J+YohbQQW+4D9lBz59D0N3fmKFtCUto92xIOBqImwACDAC7/YVFPQLsfwAAAABJRU5ErkJggg==\"","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { withTranslation } from \"react-i18next\";\nimport { Container } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport StandingsComponent from \"./StandingsComponent\";\nimport { getStandings } from \"../../store/PublicPages/actions\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nclass MedicaStandingsPublic extends Component {\n constructor(props) {\n super(props);\n\n const simulationNameBase64 = getUrlSearchParam();\n const simulationName = Buffer.from(simulationNameBase64, \"base64\").toString(\"ascii\");\n\n this.state = {\n requestedSimulationName: simulationName,\n };\n }\n\n componentDidMount() {\n this.props.getStandings(this.state.requestedSimulationName);\n }\n\n render() {\n const translate = this.props.t;\n const { outcome, standings, error, loading } = this.props.standingsStore;\n let loader = null,\n messageComponent = null,\n standingsComponent = null;\n\n if (loading) {\n loader = ;\n } else {\n if (error !== \"\") {\n messageComponent = ;\n } else {\n if (outcome) {\n standingsComponent = ;\n }\n }\n }\n return (\n \n \n \n {loader}\n {messageComponent}\n {standingsComponent}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getStandings: (simulationName) => dispatch(getStandings(simulationName)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n standingsStore: {\n outcome: state.publicPages.medicaPublicStandings.outcome,\n standings: state.publicPages.medicaPublicStandings.standingsTable,\n loading: state.publicPages.medicaPublicStandings.loading,\n error: state.publicPages.medicaPublicStandings.errorMessage,\n },\n };\n};\n\nexport default compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"StandingsScreen\", \"Common\"),\n withRouter\n)(MedicaStandingsPublic);\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { Table } from \"semantic-ui-react\";\n\nclass StandingsComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n standingsList: props.simulationStandings,\n direction: null,\n };\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, standingsList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n standingsList: _.sortBy(standingsList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n standingsList: standingsList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n };\n\n numberWithCommas = (cash) => {\n return `${Math.round(cash).toLocaleString()}.00`;\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, standingsList } = this.state;\n const arrowsIcon = ;\n return (\n
(this.topTable = ref)}>\n

{`${translate(\"totalTeams\")}: ${standingsList.length - 1}`}

\n \n \n \n \n
\n {translate(\"standings\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"Common:team\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"cash\").toUpperCase()}\n {arrowsIcon}\n
\n
\n
\n
\n \n {standingsList.map((standing) => {\n return (\n \n {standing.standing}\n {standing.team}\n {`$ ${this.numberWithCommas(standing.cash)}`}\n \n );\n })}\n \n
\n
\n );\n }\n}\n\nexport default StandingsComponent;\n","module.exports = __webpack_public_path__ + \"static/media/profileIcon.363abbf8.png\";","module.exports = __webpack_public_path__ + \"static/media/recommended.0a01b33d.svg\";","module.exports = __webpack_public_path__ + \"static/media/simunation-logo-transparent.1cc239de.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/ios.040c073a.png\";","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { withTranslation } from \"react-i18next\";\nimport { Container } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport StandingsComponent from \"./StandingsComponent\";\nimport { getStandings } from \"../../store/Medica/actions\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport ShareSimulationStandingsModal from \"./ShareSimulationStandingsModal\";\nimport * as ROUTES from \"../../constants/Routes\";\n\nclass StandingsScreen extends Component {\n state = {\n requestedSimulationName: getUrlSearchParam(),\n openShareModal: false,\n };\n\n componentDidMount() {\n this.getStandings();\n }\n\n getStandings = () => {\n this.props.getStandings(this.state.requestedSimulationName);\n };\n\n handleShareModal = () => {\n const openShareModal = !this.state.openShareModal;\n this.setState({ openShareModal: openShareModal });\n };\n\n render() {\n const translate = this.props.t;\n const standings = this.props.medica.standings;\n const error = this.props.medica.error;\n const loading = this.props.medica.loading;\n let loader = null,\n messageComponent = null,\n standingsComponent = null;\n\n if (loading) {\n loader = ;\n } else {\n if (error !== \"\") {\n messageComponent = ;\n } else {\n if (standings.outcome) {\n standingsComponent = (\n \n );\n }\n }\n }\n\n const openShareModal = this.state.openShareModal;\n const encodedSimulationName = new Buffer.from(this.state.requestedSimulationName).toString(\"base64\");\n const baseURL = window.location.origin.replace(/\\/$/, \"\");\n const sharedLink = baseURL + ROUTES.MEDICA_STANDINGS_PUBLIC + \"?\" + encodedSimulationName;\n const shareModal = (\n \n );\n\n return (\n \n \n \n {loader}\n {messageComponent}\n {standingsComponent}\n {shareModal}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getStandings: (simulationName) => dispatch(getStandings(simulationName)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n medica: {\n standings: state.medica.simulationStandings,\n loading: state.medica.loadingStandings,\n error: state.medica.getStandingsError,\n },\n };\n};\n\nexport default compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"StandingsScreen\", \"Common\"),\n withRouter\n)(StandingsScreen);\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faChevronDown, faChevronRight, faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { Grid, Table } from \"semantic-ui-react\";\nimport DefaultButton from \"../helpers/DefaultButton\";\n\nclass StandingsComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n standingsList: props.simulationStandings,\n direction: null,\n expandedRows: [],\n };\n }\n\n renderItemCaret(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n if (isRowCurrentlyExpanded) {\n return ;\n } else {\n return ;\n }\n }\n\n handleRowClick(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n const newExpandedRows = isRowCurrentlyExpanded\n ? currentExpandedRows.filter((id) => id !== rowId)\n : currentExpandedRows.concat(rowId);\n\n this.setState({ expandedRows: newExpandedRows });\n }\n\n renderItem(item) {\n const translate = this.props.translate;\n const clickCallback = () => this.handleRowClick(item.standing);\n let caretCell = ;\n let tableRowOnClick = null;\n\n if (item.teammates?.length > 0) {\n tableRowOnClick = clickCallback;\n caretCell = {this.renderItemCaret(item.standing)};\n }\n\n const itemRows = [\n \n {caretCell}\n {item.standing}\n {item.team}\n $ {item.cash.toFixed(2)}\n {item.teamLink}\n ,\n ];\n\n if (this.state.expandedRows.includes(item.standing)) {\n itemRows.push(\n \n \n \n \n \n \n {translate(\"firstName\")}\n \n \n {translate(\"lastName\")}\n \n {translate(\"email\")}\n \n \n {item.teammates.map(this.renderItemDetails.bind(this))}\n
\n
\n
\n );\n }\n\n return itemRows;\n }\n\n renderItemDetails(item, index) {\n return (\n \n \n {item.firstName}\n \n\n \n {item.lastName}\n \n\n \n {item.email}\n \n \n );\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, standingsList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n standingsList: _.sortBy(standingsList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n standingsList: standingsList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n };\n\n numberWithCommas = (cash) => {\n return `${Math.round(cash).toLocaleString()}.00`;\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, standingsList } = this.state;\n const arrowsIcon = ;\n return (\n
(this.topTable = ref)}>\n \n \n

{`${translate(\"totalTeams\")}: ${standingsList.length - 1}`}

\n
\n \n \n \n
\n\n \n \n \n \n \n
\n {translate(\"standings\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"Common:team\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"cash\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"joinTeamLink\").toUpperCase()}\n {arrowsIcon}\n
\n
\n
\n
\n \n {standingsList.map((standing) => {\n return this.renderItem(standing);\n })}\n \n
\n
\n );\n }\n}\n\nexport default StandingsComponent;\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Button, Modal, Message } from \"semantic-ui-react\";\n\nclass ShareSimulationStandingsModal extends Component {\n state = { copySuccess: \"\", simulationLink: \"\" };\n\n handleCopyToClipboard = () => {\n const translate = this.props.t;\n var fakeInput = document.createElement(\"input\");\n document.body.appendChild(fakeInput);\n fakeInput.setAttribute(\"value\", this.props.sharedLink);\n fakeInput.select();\n document.execCommand(\"copy\");\n document.body.removeChild(fakeInput);\n this.setState({ copySuccess: translate(\"StandingsScreen:shareModalCopySuccess\") });\n };\n\n render() {\n const translate = this.props.t;\n let shareLabel = null;\n\n shareLabel = translate(\"StandingsScreen:shareModalInformation\");\n return (\n
\n \n {this.props.titleModal}\n \n \n \n {this.props.sharedLink}\n \n \n \n \n
\n );\n }\n}\n\nexport default withTranslation(\"StandingsScreen, Common\")(ShareSimulationStandingsModal);\n","module.exports = __webpack_public_path__ + \"static/media/youtube-icon-red.d89050c6.png\";","module.exports = __webpack_public_path__ + \"static/media/background-one.fd443209.png\";","module.exports = __webpack_public_path__ + \"static/media/background-two.5d992ced.png\";","module.exports = __webpack_public_path__ + \"static/media/background-mobile-one.f2f3ed2e.png\";","module.exports = __webpack_public_path__ + \"static/media/background-mobile-two.f76d7a5b.png\";","import { sendGetRequest, sendPostRequest } from \"../services/FetchService\";\nimport * as FETCHAPI from \"../constants/FetchApi\";\nimport moment from \"moment\";\nimport { getLanguagePrefix } from \"../components/utilities/LanguageUtilities\";\n\nexport const getMedicaDetail = (simulationId) => {\n return sendGetRequest(FETCHAPI.GET_SIMULATION_DETAIL_MEDICA, simulationId);\n};\n\nexport const getMedicaLink = (simulationId) => {\n return sendGetRequest(FETCHAPI.GET_SIMULATION_LINK, simulationId);\n};\n\nexport const configureMedicaDetails = (medicaDetailResponse, medicaLinkResponse, language, translate) => {\n let response = {\n outcome: null,\n simulationId: null,\n data: null,\n medicaLink: null,\n message: \"\",\n };\n if (medicaDetailResponse.data.outcome && medicaLinkResponse.data.outcome) {\n response.outcome = true;\n response.simulationId = medicaDetailResponse.data.payload.id;\n response.data = medicaDetailsFormatter(medicaDetailResponse.data.payload, language, translate);\n response.medicaLink = medicaLinkResponse.data.payload.activationLink;\n } else {\n response.outcome = false;\n response.message = medicaDetailResponse.data.message;\n }\n return response;\n};\n\nconst medicaDetailsFormatter = (details, language, translate) => {\n const languagePrefix = getLanguagePrefix(language);\n const calculateSimulationHours = moment(details.endDate).diff(moment(details.startTime));\n details.virtualDaysPerHour = details.studentInteractionPeriod / Math.round(calculateSimulationHours / 1000 / 60 / 60);\n details.startTimeFormatted = moment(details.startTime)\n .locale(languagePrefix)\n .format(`MMMM D, YYYY [${translate(\"at\")}] hh:mm A`);\n details.endDateFormatted = moment(details.endDate)\n .locale(languagePrefix)\n .format(`MMMM D, YYYY [${translate(\"at\")}] hh:mm A`);\n\n return details;\n};\n\nexport const getStandings = (simulationName) => {\n return sendGetRequest(FETCHAPI.GET_STANDINGS_MEDICA, simulationName);\n};\n\nexport const getRegisteredStudents = (simulationName) => {\n return sendGetRequest(FETCHAPI.GET_REGISTERED_STUDENTS_MEDICA, simulationName);\n};\n\nexport const getTeams = (simulationName) => {\n return sendGetRequest(FETCHAPI.GET_TEAMS_MEDICA, simulationName);\n};\n\nexport const createTeam = (team) => {\n return sendPostRequest(`${FETCHAPI.CREATE_TEAM}`, team);\n};\n\nexport const joinTeam = (team) => {\n return sendPostRequest(FETCHAPI.JOIN_TEAM, team);\n};\n\nexport const advanceSimulation = (simulationExecution) => {\n return sendPostRequest(FETCHAPI.ADVANCE_SIMULATION_MEDICA, simulationExecution);\n};\n\nexport const getProfessorScenarios = () => {\n return sendGetRequest(`${FETCHAPI.GET_PROFESSOR_SCENARIOS}`, \"\");\n};\n\nexport const prepareCustomResponse = (response, action, emptyError) => {\n let customResponse = null;\n if (response.data.outcome && response.data.payload.length === 0) {\n const data = {\n message: emptyError,\n };\n customResponse = {\n type: `${action}_FAILED`,\n payload: data,\n };\n }\n\n if (response.data.outcome && response.data.payload.length > 0) {\n customResponse = {\n type: `${action}_SUCCESSFUL`,\n payload: response.data,\n };\n }\n\n if (!response.data.outcome) {\n const data = {\n message: response.data.message,\n };\n customResponse = {\n type: `${action}_FAILED`,\n payload: data,\n };\n }\n\n return customResponse;\n};\n\nexport const prepareAdvanceResponse = (response, action) => {\n let customResponse = null;\n\n if (response.data.outcome) {\n customResponse = {\n type: `${action}_SUCCESSFUL`,\n payload: response.data,\n };\n } else {\n const data = {\n message: response.data.message,\n };\n customResponse = {\n type: `${action}_FAILED`,\n payload: data,\n };\n }\n\n return customResponse;\n};\n\nexport const prepareJoinTeamResponse = (response, action) => {\n let customResponse = null;\n\n if (response.data.outcome) {\n customResponse = {\n type: `${action}_SUCCESSFUL`,\n payload: response.data.payload,\n };\n } else {\n const data = {\n message: response.data.message,\n };\n customResponse = {\n type: `${action}_FAILED`,\n payload: data,\n };\n }\n\n return customResponse;\n};\n\nexport const checkForPreviousPayment = (simulationId) => {\n return sendGetRequest(FETCHAPI.GET_STUDENT_PREVIOUS_PAYMENT, simulationId);\n};\n\nexport const sendPushNotification = (pushData) => {\n return sendPostRequest(FETCHAPI.SEND_PUSH_NOTIFICATION_MEDICA, pushData);\n};\n\nexport const getDocuments = (simulationName) => {\n return sendGetRequest(FETCHAPI.GET_MEDICA_DOCUMENTS, simulationName);\n};\n\nexport const getPerformanceData = (simulationName) => {\n return sendGetRequest(FETCHAPI.GET_MEDICA_PERFORMANCE_DATA, simulationName);\n};\n\nexport const runAgain = (simulation) => {\n return sendPostRequest(FETCHAPI.MEDICA_RUN_AGAIN_SIMULATION, simulation);\n};\n\nexport const getDecisionsData = (simulationName) => {\n return sendGetRequest(FETCHAPI.GET_MEDICA_DECISIONS_DATA, simulationName);\n};\n","import * as API_PATHS from \"../../constants/FetchApi\";\nimport * as actions from \"./action-types\";\nimport * as medicaService from \"../../services/MedicaService\";\nimport axios from \"axios\";\nimport * as actionTypes from \"./action-types\";\nimport { sendGetWithParamsRequest } from \"../../services/FetchService\";\n\nexport const getSimulationDetails = (simulationId, language, translate) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_MEDICA_DETAILS });\n axios\n .all([medicaService.getMedicaDetail(simulationId), medicaService.getMedicaLink(simulationId)])\n .then(\n axios.spread(function (medicaDetailResponse, medicaLinkResponse) {\n const response = medicaService.configureMedicaDetails(\n medicaDetailResponse,\n medicaLinkResponse,\n language,\n translate\n );\n if (response.outcome) {\n dispatch({\n type: actions.GET_MEDICA_DETAILS_SUCCESSFUL,\n payload: response,\n });\n } else {\n dispatch({\n type: actions.GET_MEDICA_DETAILS_FAILED,\n payload: response,\n });\n }\n })\n )\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorFetchDetails\",\n };\n dispatch({\n type: actions.GET_MEDICA_DETAILS_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const getStandings = (simulationName) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_MEDICA_STANDINGS });\n const standingsResponse = medicaService.getStandings(simulationName);\n standingsResponse\n .then((standings) => {\n if (standings) {\n const data = medicaService.prepareCustomResponse(standings, actions.GET_MEDICA_STANDINGS, \"noStandingsList\");\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorFetchStandings\",\n };\n dispatch({\n type: actions.GET_MEDICA_STANDINGS_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const getRegisteredStudents = (simulationName) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_MEDICA_REGISTERED_STUDENTS });\n const studentsResponse = medicaService.getRegisteredStudents(simulationName);\n studentsResponse\n .then((students) => {\n if (students) {\n const data = medicaService.prepareCustomResponse(\n students,\n actions.GET_MEDICA_REGISTERED_STUDENTS,\n \"notStudentList\"\n );\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorFetchStudents\",\n };\n dispatch({\n type: actions.GET_MEDICA_REGISTERED_STUDENTS_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const getTeams = (simulationName) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_MEDICA_TEAMS });\n const teamsResponse = medicaService.getTeams(simulationName);\n teamsResponse\n .then((teams) => {\n if (teams) {\n const data = medicaService.prepareCustomResponse(teams, actions.GET_MEDICA_TEAMS, \"noTeamsList\");\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorFetchingTeams\",\n };\n dispatch({\n type: actions.GET_MEDICA_TEAMS_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const getProfessorScenarios = () => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_PROFESSOR_SCENARIOS });\n const getScenariosResponse = medicaService.getProfessorScenarios();\n getScenariosResponse\n .then((response) => {\n if (response) {\n const data = medicaService.prepareCustomResponse(response, actions.GET_PROFESSOR_SCENARIOS, \"\");\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorGettingScenarios\",\n };\n dispatch({\n type: actions.GET_PROFESSOR_SCENARIOS_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const createTeam = (team) => {\n return async function (dispatch) {\n dispatch({ type: actions.CREATE_MEDICA_TEAM });\n const teamResponse = medicaService.createTeam(team);\n teamResponse\n .then((response) => {\n if (response) {\n const data = medicaService.prepareCustomResponse(response, actions.CREATE_MEDICA_TEAM, \"\");\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorCreatingTeam\",\n };\n dispatch({\n type: actions.CREATE_MEDICA_TEAM_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const joinTeam = (team) => {\n return async function (dispatch) {\n dispatch({ type: actions.JOIN_MEDICA_TEAM });\n const teamResponse = medicaService.joinTeam(team);\n if (teamResponse) {\n teamResponse\n .then((response) => {\n if (response) {\n const data = medicaService.prepareJoinTeamResponse(response, actions.JOIN_MEDICA_TEAM, \"\");\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorJoiningTeam\",\n };\n dispatch({\n type: actions.JOIN_MEDICA_TEAM_FAILED,\n payload: response,\n });\n }\n });\n } else {\n const response = {\n message: \"errorJoiningTeam\",\n };\n dispatch({\n type: actions.JOIN_MEDICA_TEAM_FAILED,\n payload: response,\n });\n }\n };\n};\n\nexport const advanceSimulation = (simulationExecution) => {\n return async function (dispatch) {\n dispatch({ type: actions.ADVANCE_MEDICA_SIMULATION });\n const advanceSimulationResponse = medicaService.advanceSimulation(simulationExecution);\n advanceSimulationResponse\n .then((response) => {\n if (response) {\n const data = medicaService.prepareAdvanceResponse(response, actions.ADVANCE_MEDICA_SIMULATION);\n dispatch(data);\n }\n })\n .catch((error) => {\n let response = \"\";\n if (error.code === 500) {\n response = {\n message: \"errorSimultaneousChangeRequest\",\n };\n } else {\n response = {\n message: \"errorAdvancingSimulation\",\n };\n }\n\n dispatch({\n type: actions.ADVANCE_MEDICA_SIMULATION_FAILED,\n payload: response,\n });\n });\n };\n};\n\nexport const checkIfStudentHasPaid = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actions.CHECK_STUDENT_PAYMENT });\n const studentHasPaidResponse = medicaService.checkForPreviousPayment(simulationId);\n\n studentHasPaidResponse\n .then((response) => {\n if (response.data.outcome) {\n if (response.data.message === \"This simulation has already finished\") {\n dispatch({\n type: actions.CHECK_STUDENT_PAYMENT_FAILED,\n payload: \"simulationAlreadyFinished\",\n });\n } else {\n const studentPaid = response.data.payload.studentPaid;\n dispatch({\n type: actions.CHECK_STUDENT_PAYMENT_SUCCESSFUL,\n payload: studentPaid,\n });\n }\n } else {\n dispatch({\n type: actions.CHECK_STUDENT_PAYMENT_SUCCESSFUL,\n payload: false,\n });\n }\n })\n .catch((error) => {\n dispatch({\n type: actions.CHECK_STUDENT_PAYMENT_FAILED,\n payload: \"checkPreviousPaymentError\",\n });\n });\n };\n};\n\nexport const resetAdvanceSimulationProps = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_ADVANCE_SIMULATION_PROPS });\n };\n};\n\nexport const sendPushNotification = (pushData) => {\n return async function (dispatch) {\n dispatch({ type: actions.SEND_PUSH_NOTIFICATION });\n const advanceSimulationResponse = medicaService.sendPushNotification(pushData);\n advanceSimulationResponse\n .then((response) => {\n if (response.data.outcome) {\n dispatch({\n type: actions.SEND_PUSH_NOTIFICATION_SUCCESSFUL,\n payload: response.data.outcome,\n });\n } else {\n dispatch({\n type: actions.SEND_PUSH_NOTIFICATION_FAILED,\n payload: response.data.message,\n });\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorPushing\",\n };\n dispatch({\n type: actions.SEND_PUSH_NOTIFICATION_FAILED,\n payload: response.message,\n });\n }\n });\n };\n};\n\nexport const getPerformanceData = (simulationName) => {\n return async function (dispatch) {\n dispatch({\n type: actions.GET_MEDICA_PERFORMANCE_DATA,\n });\n const performanceDataResponse = medicaService.getPerformanceData(simulationName);\n performanceDataResponse\n .then((response) => {\n if (response.data.outcome) {\n dispatch({\n type: actions.GET_MEDICA_PERFORMANCE_DATA_SUCCESSFUL,\n payload: response.data.payload,\n });\n } else {\n const customResponse = {\n message: response.data.message,\n };\n dispatch({\n type: actions.GET_MEDICA_PERFORMANCE_DATA_FAILED,\n payload: customResponse.message,\n });\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorGettingPerformance\",\n };\n dispatch({\n type: actions.GET_MEDICA_PERFORMANCE_DATA_FAILED,\n payload: response.message,\n });\n }\n });\n };\n};\n\nexport const resetPushNotificationState = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_PUSH_NOTIFICATION_STATE });\n };\n};\n\nexport const runAgainSimulation = (simulation) => {\n return async function (dispatch) {\n dispatch({ type: actions.RUN_AGAIN });\n const runAgainResponse = medicaService.runAgain(simulation);\n runAgainResponse\n .then((response) => {\n if (response.data.outcome) {\n dispatch({\n type: actions.RUN_AGAIN_SUCCESSFUL,\n payload: response.data.outcome,\n });\n } else {\n dispatch({\n type: actions.RUN_AGAIN_FAILED,\n payload: response.data.message,\n });\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorRunning\",\n };\n dispatch({\n type: actions.RUN_AGAIN_FAILED,\n payload: response.message,\n });\n }\n });\n };\n};\n\nexport const getDocuments = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_MEDICA_DOCUMENTATION });\n const documentsResponse = medicaService.getDocuments(simulationId);\n documentsResponse\n .then((documents) => {\n if (documents) {\n const documentsData = medicaService.prepareCustomResponse(\n documents,\n actions.GET_MEDICA_DOCUMENTATION,\n \"documentationCurrentlyBeingCreated\"\n );\n documentsData.payload.simulationId = simulationId;\n dispatch(documentsData);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorFetchingDocuments\",\n };\n dispatch({\n type: actions.GET_MEDICA_DOCUMENTATION_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const getDecisionsData = (simulationName) => {\n return async function (dispatch) {\n dispatch({\n type: actions.GET_MEDICA_DECISIONS_DATA,\n });\n const performanceDataResponse = medicaService.getDecisionsData(simulationName);\n performanceDataResponse\n .then((response) => {\n if (response.data.outcome) {\n dispatch({\n type: actions.GET_MEDICA_DECISIONS_DATA_SUCCESSFUL,\n payload: response.data.payload,\n });\n } else {\n const customResponse = {\n message: response.data.message,\n };\n dispatch({\n type: actions.GET_MEDICA_DECISIONS_DATA_FAILED,\n payload: customResponse.message,\n });\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorGettingDecisions\",\n };\n dispatch({\n type: actions.GET_MEDICA_DECISIONS_DATA_FAILED,\n payload: response.message,\n });\n }\n });\n };\n};\n\nexport const medicaGetDecisionHistory = (simulationName, language) => {\n return async function (dispatch) {\n dispatch({ type: actions.MEDICA_GET_DECISION_HISTORY_START });\n try {\n const response = await sendGetWithParamsRequest(API_PATHS.GET_MEDICA_CHANGE_REQUEST_HISTORY, {\n simulationName,\n language,\n });\n if (!response.data.outcome) {\n dispatch({ type: actions.MEDICA_GET_DECISION_HISTORY_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actions.MEDICA_GET_DECISION_HISTORY_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actions.MEDICA_GET_DECISION_HISTORY_FAIL, payload: err });\n }\n };\n};\n\nexport const medicaGetSuggestions = (simulationName, preferredLanguage) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.GET_MEDICA_SUGGESTIONS });\n try {\n const response = await sendGetWithParamsRequest(API_PATHS.GET_MEDICA_SUGGESTIONS, {\n simulationName,\n preferredLanguage,\n });\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.GET_MEDICA_SUGGESTIONS_FAILED, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.GET_MEDICA_SUGGESTIONS_SUCCESSFUL, payload: response.data.payload });\n } catch (error) {\n dispatch({ type: actionTypes.GET_MEDICA_SUGGESTIONS_FAILED, payload: error });\n }\n };\n};\n\nexport const resetCreateTeamStore = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_CREATE_TEAM_STORE });\n };\n};\n\nexport const resetRunAgainStore = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_RUN_AGAIN_STORE });\n };\n};\n","import i18n from \"i18next\";\nimport { setStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport resources from \"../../translations/resources\";\n\nexport const processLanguageAndSave = (language, setUserLanguage) => {\n i18n.changeLanguage(language);\n setStorage(LOCALSTORAGE.localLanguage, language);\n if (setUserLanguage) {\n setUserLanguage(language);\n }\n};\n\nexport const translationExists = (key) => {\n const allNamespaces = Object.keys(resources.en);\n const translationExists = allNamespaces.some((namespace) => {\n return i18n.exists(`${namespace}:${key}`);\n });\n return translationExists;\n};\n\nexport const generateTranslationKey = ({ ns, key }) => {\n if (typeof ns === \"string\" && ns.length > 0) return `${ns}:${key}`;\n return key;\n};\n\nexport const getLanguagePrefix = (language) => {\n let languagePrefix = \"en\";\n if (language) {\n languagePrefix = language.slice(0, 2);\n }\n return languagePrefix;\n};\n","import React from \"react\";\nimport { Button } from \"semantic-ui-react\";\nimport \"./buttonStyles.css\";\n\nconst BackButton = (props) => {\n const translate = props.translate;\n return (\n
\n \n
\n );\n};\n\nexport default BackButton;\n","import React from \"react\";\nimport { Popup } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faQuestionCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./helpers.css\";\n\nconst HelpHoverComponent = (props) => {\n return (\n
\n }>\n \n

{props.helpMessage}

\n
\n \n
\n );\n};\n\nexport default HelpHoverComponent;\n","import React from \"react\";\nimport { Button } from \"semantic-ui-react\";\nimport \"./buttonStyles.css\";\n\nconst DefaultButton = (props) => {\n const { title, action } = props;\n return (\n
\n \n
\n );\n};\n\nexport default DefaultButton;\n","import * as Sentry from \"@sentry/react\";\n\nexport const sentryReportEvent = (message, tag, extras) => {\n Sentry.withScope((scope) => {\n scope.setTag(tag.name, tag.data);\n if (extras) {\n extras.forEach((extra) => {\n scope.setExtra(extra.title, extra.value);\n });\n }\n Sentry.captureMessage(message);\n });\n};\n\nexport const sentryReportException = (error, tag, extras) => {\n Sentry.withScope((scope) => {\n scope.setTag(tag.name, tag.data);\n if (extras) {\n extras.forEach((extra) => {\n scope.setExtra(extra.title, extra.value);\n });\n }\n Sentry.captureException(error);\n });\n};\n","var map = {\n\t\"./docx.svg\": 532,\n\t\"./img.svg\": 533,\n\t\"./pdf.svg\": 534,\n\t\"./ppt.svg\": 535,\n\t\"./xlsx.svg\": 536\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 531;","module.exports = __webpack_public_path__ + \"static/media/docx.1b6053c9.svg\";","module.exports = __webpack_public_path__ + \"static/media/img.75dd7fc2.svg\";","module.exports = __webpack_public_path__ + \"static/media/pdf.6f0c0998.svg\";","module.exports = __webpack_public_path__ + \"static/media/ppt.7f9ec353.svg\";","module.exports = __webpack_public_path__ + \"static/media/xlsx.cb7f7670.svg\";","let CONFIG = {\n domain: process.env.REACT_APP_AUTH0_DOMAIN,\n clientID: process.env.REACT_APP_AUTH0_CLIENT_ID,\n redirectUri: process.env.REACT_APP_AUTH0_REDIRECT_URI,\n responseType: process.env.REACT_APP_AUTH0_RESPONSE_TYPE,\n scope: process.env.REACT_APP_AUTH0_SCOPE,\n};\n\nexport default CONFIG;\n","import CONFIG from \"../constants/ConfigAuth0\";\nimport { setCookie, getCookie, deleteCookie } from \"./CookieService\";\nimport { getStorage, removeStorage } from \"./StorageService\";\nimport * as LOCALSTORAGE from \"../constants/LocalStorage\";\nimport history from \"../constants/History\";\nimport * as ROUTES from \"../constants/Routes\";\nimport * as CONSTANT from \"../constants/UniversalConstants\";\nimport * as COOKIES from \"../constants/Cookies\";\nimport auth0 from \"auth0-js\";\nimport { sentryReportEvent } from \"./SentryReportService\";\n\nconst authSDK = new auth0.WebAuth(CONFIG);\n\nexport const login = (options) => {\n authSDK.authorize(options);\n};\n\nexport const getCurrentSession = async () => {\n let cookie = getCookie(COOKIES.AUTH_INFORMATION);\n\n if (!cookie) {\n const options = getAuthOptions();\n login(options);\n return;\n }\n\n var jwtDecode = require(\"jwt-decode\");\n const decodedToken = jwtDecode(cookie.tokenInfo.idToken);\n const timeNow = Math.floor(new Date().getTime() / 1000);\n const tokenExpirationDate = decodedToken.exp;\n if (timeNow < tokenExpirationDate) {\n return cookie;\n }\n\n let tryAgain = false;\n let session = null;\n try {\n session = await renewSession();\n } catch (err) {\n if (err.error && err.error === \"timeout\") {\n tryAgain = true;\n }\n }\n\n if (tryAgain) {\n try {\n session = await renewSession();\n } catch (err) {\n sentryReportEvent(\"Failed twice to renew session due to timeout \", \"Auth0\", [err]);\n }\n }\n\n if (session === null) {\n const options = getAuthOptions();\n login(options);\n return;\n }\n return session;\n};\n\nconst getAuthOptions = () => {\n const teamCode = getStorage(LOCALSTORAGE.teamCode);\n const activationCode = getStorage(LOCALSTORAGE.activationCode);\n let options = null;\n if (teamCode || activationCode) {\n options = { role: \"Student\" };\n }\n\n return options;\n};\n\nexport const loginSuccessful = () => {\n return new Promise((resolve, reject) => {\n authSDK.parseHash((err, authResult) => {\n if (authResult && authResult.accessToken && authResult.idToken) {\n let authInformation = extractUserDataAndProfileFromToken(authResult);\n return resolve(authInformation);\n } else if (err) {\n logout();\n return reject(err);\n }\n });\n });\n};\n\nexport const logout = () => {\n deleteCookie(COOKIES.AUTH_INFORMATION);\n removeStorage(LOCALSTORAGE.wasVideoSeen);\n removeStorage(LOCALSTORAGE.purchasedProduct);\n authSDK.logout({\n clientID: process.env.REACT_APP_AUTH0_CLIENT_ID,\n returnTo: process.env.REACT_APP_AUTH0_RETURN_TO,\n });\n};\n\nexport const renewSession = () => {\n return new Promise((resolve, reject) => {\n authSDK.checkSession({ timeout: 4000 }, (err, authResult) => {\n if (authResult && authResult.accessToken && authResult.idToken) {\n let authInformation = extractUserDataAndProfileFromToken(authResult);\n return resolve(authInformation);\n } else if (err) {\n return reject(err);\n }\n });\n });\n};\n\nconst extractUserDataAndProfileFromToken = (authResult) => {\n window.location.hash = \"\";\n const userProfile = {\n email: authResult.idTokenPayload[\"https://app.processimlabs.com/email\"],\n fullName: `${authResult.idTokenPayload[\"https://app.processimlabs.com/first_name\"]} ${authResult.idTokenPayload[\"https://app.processimlabs.com/last_name\"]}`,\n firstName: authResult.idTokenPayload[\"https://app.processimlabs.com/first_name\"],\n lastName: authResult.idTokenPayload[\"https://app.processimlabs.com/last_name\"],\n institution: authResult.idTokenPayload[\"https://app.processimlabs.com/institution\"],\n role: authResult.idTokenPayload[\"https://app.processimlabs.com/role\"],\n language: authResult.idTokenPayload[\"https://app.processimlabs.com/language\"],\n };\n const userTokenDataAndProfile = {\n tokenInfo: authResult,\n userProfile: userProfile,\n };\n setCookie(COOKIES.AUTH_INFORMATION, userTokenDataAndProfile);\n return userTokenDataAndProfile;\n};\n\nexport const redirectionHandler = (user) => {\n const crisisJoinSimulationCode = getStorage(LOCALSTORAGE.crisisJoinSimulationId);\n const crisisPaymentSummaryId = getStorage(LOCALSTORAGE.crisisPaymentSummaryId);\n if (!crisisPaymentSummaryId && crisisJoinSimulationCode) {\n history.replace(ROUTES.CRISIS_STUDENT_PAYMENT);\n return;\n }\n if (crisisJoinSimulationCode) {\n history.replace(ROUTES.CRISIS_JOIN_SIMULATION);\n return;\n }\n\n const supplyChainJoinSimulationCode = getStorage(LOCALSTORAGE.supplyChainJoinSimulationId);\n const supplyChainPaymentSummaryId = getStorage(LOCALSTORAGE.supplyChainPaymentSummaryId);\n\n if (!supplyChainPaymentSummaryId && supplyChainJoinSimulationCode) {\n history.replace(ROUTES.SUPPLY_CHAIN_STUDENT_PAYMENT);\n return;\n }\n\n if (supplyChainJoinSimulationCode) {\n history.replace(ROUTES.SUPPLY_CHAIN_JOIN_SIMULATION);\n return;\n }\n\n if (user.role === CONSTANT.ROLES.PROFESSOR) {\n history.replace(ROUTES.HOME);\n } else {\n studentRedirection();\n }\n};\n\nconst studentRedirection = () => {\n const teamCode = getStorage(LOCALSTORAGE.teamCode);\n const activationCode = getStorage(LOCALSTORAGE.activationCode);\n const securityCode = getStorage(LOCALSTORAGE.securityCode);\n if ((teamCode || activationCode) && securityCode) {\n if (securityCode.charAt(8) >= securityCode.charAt(16)) {\n history.replace(ROUTES.PAYMENT_MEDICA_STUDENT);\n } else {\n if (activationCode) {\n history.replace(ROUTES.STUDENT_CREATE_TEAM);\n } else {\n history.replace(ROUTES.STUDENT_JOIN_TEAM);\n }\n }\n } else {\n history.replace(ROUTES.STUDENTS_LOGIN);\n }\n};\n","export const discountCodeStatuses = {\n initial: \"initial\",\n loading: \"loading\",\n activated: \"activated\",\n activatedPaid: \"activatedPaid\",\n};\n\nexport const confirmPaymentStatuses = {\n initial: \"initial\",\n loading: \"loading\",\n fail: \"fail\",\n success: \"success\",\n};\n","import { discountCodeStatuses } from \"./storeStatusDictionary\";\n\nexport function generateDiscountCodeStatus(discountCode, discountedPrice) {\n if (typeof discountCode !== \"string\" || discountCode.length === 0) {\n return discountCodeStatuses.initial;\n }\n\n if (Number.isInteger(discountedPrice) && discountedPrice === 0) {\n return discountCodeStatuses.activatedPaid;\n }\n\n if (Number.isInteger(discountedPrice) && discountedPrice > 0) {\n return discountCodeStatuses.activated;\n }\n\n return discountCodeStatuses.initial;\n}\n","export const RESET_CRISIS_BUY_SIMULATION_DEFAULTS = \"CRISIS_BUY_SIMULATION/RESET_CRISIS_BUY_SIMULATION_DEFAULTS\";\nexport const COMMIT_PURCHASE_FORM_DATA = \"CRISIS_BUY_SIMULATION/COMMIT_PURCHASE_FORM_DATA\";\nexport const RESTORE_STORAGE_PURCHASE_INFORMATION = \"CRISIS_BUY_SIMULATION/RESTORE_STORAGE_PURCHASE_INFORMATION\";\nexport const UPDATE_TRANSACTION_DATA = \"CRISIS_BUY_SIMULATION/UPDATE_TRANSACTION_DATA\";\nexport const CREATE_SIMULATION_REQUEST_START = \"CRISIS_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_START\";\nexport const CREATE_SIMULATION_REQUEST_SUCCESS = \"CRISIS_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_SUCCESS\";\nexport const CREATE_SIMULATION_REQUEST_FAIL = \"CRISIS_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_FAIL\";\nexport const RESET_CREATE_SIMULATION_DEFAULTS = \"CRISIS_BUY_SIMULATION/RESET_CREATE_SIMULATION_DEFAULTS\";\nexport const VALIDATE_DISCOUNT_CODE = \"CRISIS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE\";\nexport const VALIDATE_DISCOUNT_CODE_FAILED = \"CRISIS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_FAILED\";\nexport const VALIDATE_DISCOUNT_CODE_SUCCESS = \"CRISIS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_SUCCESS\";\nexport const VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS = \"CRISIS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS\";\nexport const VALIDATE_DISCOUNT_CODE_RESET = \"CRISIS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_RESET\";\nexport const CHECK_STUDENT_PAYMENT = \"CRISIS_BUY_SIMULATION/CHECK_STUDENT_PAYMENT\";\nexport const CHECK_STUDENT_PAYMENT_SUCCESSFUL = \"CRISIS_BUY_SIMULATION/CHECK_STUDENT_PAYMENT_SUCCESSFUL\";\nexport const CHECK_STUDENT_PAYMENT_FAILED = \"CRISIS_BUY_SIMULATION/CHECK_STUDENT_PAYMENT_FAILED\";\nexport const CONFIRM_PAYMENT_START = \"CRISIS_BUY_SIMULATION/CONFIRM_PAYMENT_START\";\nexport const CONFIRM_PAYMENT_SUCCESS = \"CRISIS_BUY_SIMULATION/CONFIRM_PAYMENT_SUCCESS\";\nexport const CONFIRM_PAYMENT_FAIL = \"CRISIS_BUY_SIMULATION/CONFIRM_PAYMENT_FAIL\";\n","import { generateDiscountCodeStatus } from \"../../utilities/discountCodeUtils\";\nimport { confirmPaymentStatuses, discountCodeStatuses } from \"../../utilities/storeStatusDictionary\";\nimport * as actions from \"./action-types\";\n\nexport const initialState = {\n buyForm: {\n numberOfStudents: 0,\n isInstitution: null,\n },\n createSimulation: {\n loading: false,\n errorMessage: \"\",\n simulationId: \"\",\n simulationCreated: false,\n shortLink: null,\n },\n payment: {\n paymentSummaryId: \"\",\n },\n discountCode: {\n status: discountCodeStatuses.initial,\n discountedPrice: null,\n discountCodeMessage: \"\",\n discountCode: \"\",\n },\n studentHasAlreadyPaid: {\n loading: false,\n studentHasPaid: null,\n errorMessage: \"\",\n },\n confirmPayment: {\n status: confirmPaymentStatuses.initial,\n errorMessage: \"\",\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.COMMIT_PURCHASE_FORM_DATA:\n return {\n ...state,\n buyForm: { ...action.payload },\n };\n case actions.RESTORE_STORAGE_PURCHASE_INFORMATION:\n const { discountCode, discountedPrice } = action.payload;\n return {\n ...state,\n buyForm: {\n numberOfStudents: action.payload.numberOfStudents,\n isInstitution: action.payload.isInstitution ?? false,\n },\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId ?? \"\",\n },\n discountCode: {\n ...state.discountCode,\n status: generateDiscountCodeStatus(discountCode, discountedPrice),\n discountCode: discountCode ?? \"\",\n discountedPrice: discountedPrice ?? null,\n },\n };\n case actions.UPDATE_TRANSACTION_DATA:\n return {\n ...state,\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_START:\n return {\n ...state,\n createSimulation: {\n ...state.createSimulation,\n errorMessage: \"\",\n loading: true,\n shortLink: null,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_SUCCESS:\n return {\n ...state,\n createSimulation: {\n loading: false,\n simulationId: action.payload.simulationId,\n errorMessage: \"\",\n simulationCreated: true,\n shortLink: action.payload.shortLink,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_FAIL:\n return {\n ...state,\n createSimulation: {\n ...state.createSimulation,\n loading: false,\n errorMessage: action.payload,\n shortLink: null,\n },\n };\n case actions.RESET_CREATE_SIMULATION_DEFAULTS:\n return {\n ...state,\n createSimulation: { ...initialState[\"createSimulation\"] },\n };\n case actions.RESET_CRISIS_BUY_SIMULATION_DEFAULTS:\n return {\n ...initialState,\n };\n case actions.VALIDATE_DISCOUNT_CODE:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n status: discountCodeStatuses.loading,\n discountCodeMessage: \"\",\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_SUCCESS:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n status: discountCodeStatuses.activated,\n discountCodeMessage: \"\",\n discountedPrice: action.payload.discountedPrice,\n discountCode: action.payload.discountCode,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS:\n return {\n ...state,\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId,\n },\n discountCode: {\n ...state.discountCode,\n status: discountCodeStatuses.activatedPaid,\n discountCodeMessage: \"\",\n discountedPrice: action.payload.discountedPrice,\n discountCode: action.payload.discountCode,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_FAILED:\n return {\n ...state,\n discountCode: {\n ...initialState.discountCode,\n discountCodeMessage: action.payload,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_RESET:\n return {\n ...state,\n discountCode: {\n ...initialState.discountCode,\n },\n };\n case actions.CHECK_STUDENT_PAYMENT:\n return {\n ...state,\n studentHasAlreadyPaid: {\n loading: true,\n studentHasPaid: null,\n errorMessage: \"\",\n },\n };\n case actions.CHECK_STUDENT_PAYMENT_SUCCESSFUL:\n return {\n ...state,\n studentHasAlreadyPaid: {\n loading: false,\n studentHasPaid: action.payload,\n errorMessage: \"\",\n },\n };\n case actions.CHECK_STUDENT_PAYMENT_FAILED:\n return {\n ...state,\n studentHasAlreadyPaid: {\n loading: false,\n studentHasPaid: false,\n errorMessage: action.payload,\n },\n };\n case actions.CONFIRM_PAYMENT_START: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.loading,\n errorMessage: \"\",\n },\n payment: {\n paymentSummaryId: null,\n },\n };\n }\n case actions.CONFIRM_PAYMENT_FAIL: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.fail,\n errorMessage: action.payload,\n },\n payment: {\n paymentSummaryId: null,\n },\n };\n }\n case actions.CONFIRM_PAYMENT_SUCCESS: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.success,\n errorMessage: \"\",\n },\n payment: {\n paymentSummaryId: action.payload,\n },\n };\n }\n default:\n return state;\n }\n}\n","import * as actionTypes from \"./action-types\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { getStorage, setStorage, removeStorage, mergeDataToStorage } from \"../../services/StorageService\";\nimport { sendPostRequest, sendGetRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\nimport { sentryReportEvent } from \"../../services/SentryReportService\";\n\nexport const restoreCrisisPurchaseInformationFromStorage = () => {\n return async function (dispatch) {\n const cachedQuestionnaireInformation = getStorage(LOCALSTORAGE.crisisQuestionnaire);\n if (cachedQuestionnaireInformation) {\n dispatch({\n type: actionTypes.RESTORE_STORAGE_PURCHASE_INFORMATION,\n payload: cachedQuestionnaireInformation,\n });\n }\n return true;\n };\n};\n\nexport const commitCrisisBuyFormData = (data) => {\n return async function (dispatch) {\n setStorage(LOCALSTORAGE.crisisQuestionnaire, data);\n dispatch({\n type: actionTypes.COMMIT_PURCHASE_FORM_DATA,\n payload: data,\n });\n };\n};\n\nexport const resetCrisisBuySimulationStoreDefaults = () => {\n removeStorage(LOCALSTORAGE.crisisQuestionnaire);\n return {\n type: actionTypes.RESET_CRISIS_BUY_SIMULATION_DEFAULTS,\n };\n};\n\nexport const updateTransactionCrisisData = (transactionData) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.UPDATE_TRANSACTION_DATA, payload: transactionData });\n };\n};\n\nexport const resetCreateSimulationDefaults = () => {\n return { type: actionTypes.RESET_CREATE_SIMULATION_DEFAULTS };\n};\n\nexport const crisisCreateSimulation = (createSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_START });\n try {\n const response = await sendPostRequest(API_PATHS.CRISIS_CREATE_SIMULATION, createSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisCreateAutomaticSimulation = (createAutomaticSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_START });\n try {\n const response = await sendPostRequest(\n API_PATHS.CRISIS_CREATE_AUTOMATIC_SIMULATION,\n createAutomaticSimulationRequest\n );\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisValidateDiscountCode = (discountCode) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE });\n try {\n const discountCodeResponse = await sendPostRequest(API_PATHS.CRISIS_VALIDATE_DISCOUNT_CODE, discountCode);\n if (!discountCodeResponse.data?.payload?.validDiscountCode) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_FAILED, payload: discountCodeResponse.data.message });\n return;\n }\n const payload = {\n discountCode: discountCodeResponse.data.payload.discountCode,\n discountedPrice: discountCodeResponse.data.payload.discountedPrice,\n };\n mergeDataToStorage(LOCALSTORAGE.crisisQuestionnaire, payload);\n\n if (discountCodeResponse.data?.payload?.paymentSummaryId) {\n payload.paymentSummaryId = discountCodeResponse.data.payload.paymentSummaryId;\n mergeDataToStorage(LOCALSTORAGE.crisisQuestionnaire, {\n paymentSummaryId: discountCodeResponse.data.payload.paymentSummaryId,\n });\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS, payload: payload });\n return;\n }\n\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_SUCCESS, payload: payload });\n } catch (err) {\n const sentryTag = {\n name: \"crisisDiscountCodeFailed\",\n data: discountCode,\n };\n sentryReportEvent(err, sentryTag);\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_FAILED, payload: err });\n }\n };\n};\n\nexport const crisisResetDiscountCode = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_RESET });\n };\n};\n\nexport const checkIfStudentHasPaid = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT });\n try {\n const response = await sendGetRequest(API_PATHS.CRISIS_GET_STUDENT_HAS_PAID, simulationId);\n if (response.data.outcome === false && response.data.message === \"StudentHasPaidController_StudentHasNotPaid\") {\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT_SUCCESSFUL, payload: false });\n return;\n }\n\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT_FAILED, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT_SUCCESSFUL, payload: response.data.outcome });\n } catch (err) {\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT_FAILED, payload: err });\n }\n };\n};\n\nexport const crisisConfirmPayment = (paymentIntentId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_START });\n try {\n const response = await sendPostRequest(API_PATHS.CRISIS_CONFIRM_PAYMENT, { paymentIntentId });\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_SUCCESS, payload: response.data.payload });\n } catch (error) {\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_FAIL, payload: error });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const CRISIS_JOIN_SIMULATION_START = \"CRISIS_JOIN_SIMULATION/CRISIS_JOIN_SIMULATION_START\";\nexport const CRISIS_JOIN_SIMULATION_FAIL = \"CRISIS_JOIN_SIMULATION/CRISIS_JOIN_SIMULATION_FAILED\";\nexport const CRISIS_JOIN_SIMULATION_SUCCESS = \"CRISIS_JOIN_SIMULATION/CRISIS_JOIN_SIMULATION_SUCCESS\";\n","import * as actionTypes from \"./action-types\";\n\nexport const initialState = {\n code: \"\",\n loading: false,\n errorMessage: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actionTypes.CRISIS_JOIN_SIMULATION_START:\n return {\n ...state,\n loading: true,\n errorMessage: \"\",\n };\n case actionTypes.CRISIS_JOIN_SIMULATION_FAIL:\n return {\n ...state,\n loading: false,\n errorMessage: action.payload,\n };\n case actionTypes.CRISIS_JOIN_SIMULATION_SUCCESS:\n return {\n ...state,\n loading: false,\n code: action.payload,\n };\n default:\n return state;\n }\n}\n","import * as actionTypes from \"./action-types\";\nimport { sendPostRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\nimport { removeStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\n\nexport const crisisJoinSimulation = (joinSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_JOIN_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.CRISIS_JOIN_SIMULATION, joinSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_JOIN_SIMULATION_FAIL, payload: response.data.message });\n return;\n }\n removeStorage(LOCALSTORAGE.crisisJoinSimulationId);\n dispatch({ type: actionTypes.CRISIS_JOIN_SIMULATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_JOIN_SIMULATION_FAIL, payload: err });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const CRISIS_GET_SIMULATION_DETAILS_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_SIMULATION_DETAILS_START\";\nexport const CRISIS_GET_SIMULATION_DETAILS_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_SIMULATION_DETAILS_FAILED\";\nexport const CRISIS_GET_SIMULATION_DETAILS_SUCCESS = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_SIMULATION_DETAILS_SUCCESS\";\nexport const CRISIS_ADVANCE_SIMULATION_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_ADVANCE_SIMULATION_START\";\nexport const CRISIS_ADVANCE_SIMULATION_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_ADVANCE_SIMULATION_FAILED\";\nexport const CRISIS_ADVANCE_SIMULATION_SUCCESS = \"CRISIS_SIMULATION_DETAILS/CRISIS_ADVANCE_SIMULATION_SUCCESS\";\nexport const CRISIS_START_SIMULATION_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_START_SIMULATION_START\";\nexport const CRISIS_START_SIMULATION_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_START_SIMULATION_FAILED\";\nexport const CRISIS_START_SIMULATION_SUCCESS = \"CRISIS_SIMULATION_DETAILS/CRISIS_START_SIMULATION_SUCCESS\";\nexport const CRISIS_RESET_REQUESTS_STATE = \"CRISIS_SIMULATION_DETAILS/CRISIS_RESET_REQUESTS_STATE\";\nexport const CRISIS_GET_PERFORMANCE_DATA_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_PERFORMANCE_DATA_START\";\nexport const CRISIS_GET_PERFORMANCE_DATA_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_PERFORMANCE_DATA_FAILED\";\nexport const CRISIS_GET_PERFORMANCE_DATA_SUCCESS = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_PERFORMANCE_DATA_SUCCESS\";\nexport const CRISIS_GET_SIMULATION_STANDINGS_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_SIMULATION_STANDINGS_START\";\nexport const CRISIS_GET_SIMULATION_STANDINGS_SUCCESS =\n \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_SIMULATION_STANDINGS_SUCCESS\";\nexport const CRISIS_GET_SIMULATION_STANDINGS_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_SIMULATION_STANDINGS_FAIL\";\nexport const CRISIS_GET_REGISTERED_STUDENTS_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_REGISTERED_STUDENTS_START\";\nexport const CRISIS_GET_REGISTERED_STUDENTS_SUCCESS =\n \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_REGISTERED_STUDENTS_SUCCESS\";\nexport const CRISIS_GET_REGISTERED_STUDENTS_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_REGISTERED_STUDENTS_FAIL\";\nexport const CRISIS_GET_NUMBER_REGISTERED_STUDENTS_SUCCESS =\n \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_NUMBER_REGISTERED_STUDENTS_SUCCESS\";\nexport const CRISIS_GET_NUMBER_REGISTERED_STUDENTS_FAIL =\n \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_NUMBER_REGISTERED_STUDENTS_FAIL\";\nexport const CRISIS_CREATE_NEXT_RUN_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_CREATE_NEXT_RUN_START\";\nexport const CRISIS_CREATE_NEXT_RUN_SUCCESS = \"CRISIS_SIMULATION_DETAILS/CRISIS_CREATE_NEXT_RUN_SUCCESS\";\nexport const CRISIS_CREATE_NEXT_RUN_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_CREATE_NEXT_RUN_FAIL\";\nexport const CRISIS_CREATE_NEXT_RUN_CLEAN = \"CRISIS_SIMULATION_DETAILS/CRISIS_CREATE_NEXT_RUN_CLEAN\";\n\nexport const CRISIS_GET_PROFESSOR_SCENARIOS_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_PROFESSOR_SCENARIOS_START\";\nexport const CRISIS_GET_PROFESSOR_SCENARIOS_SUCCESS =\n \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_PROFESSOR_SCENARIOS_SUCCESS\";\nexport const CRISIS_GET_PROFESSOR_SCENARIOS_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_PROFESSOR_SCENARIOS_FAIL\";\n\nexport const CRISIS_MODIFY_SIMULATION_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_MODIFY_SIMULATION_START\";\nexport const CRISIS_MODIFY_SIMULATION_SUCCESS = \"CRISIS_SIMULATION_DETAILS/CRISIS_MODIFY_SIMULATION_SUCCESS\";\nexport const CRISIS_MODIFY_SIMULATION_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_MODIFY_SIMULATION_FAIL\";\nexport const CRISIS_MODIFY_SIMULATION_RESET = \"CRISIS_SIMULATION_DETAILS/CRISIS_MODIFY_SIMULATION_RESET\";\n\nexport const CRISIS_GET_DOCUMENTATION_START = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_DOCUMENTATION_START\";\nexport const CRISIS_GET_DOCUMENTATION_SUCCESS = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_DOCUMENTATION_SUCCESS\";\nexport const CRISIS_GET_DOCUMENTATION_FAIL = \"CRISIS_SIMULATION_DETAILS/CRISIS_GET_DOCUMENTATION_FAIL\";\n","import * as actionTypes from \"./action-types\";\n\nexport const initialState = {\n simulationDetailsRequestStatus: {\n loading: false,\n errorMessage: \"\",\n detailsValid: false,\n },\n simulationDetails: {\n id: \"\",\n name: \"\",\n status: \"\",\n professorManagedProgress: false,\n paymentSummaryId: \"\",\n professorPaid: false,\n shortLink: \"\",\n iterationNumber: 0,\n },\n advanceSimulationRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: false,\n },\n startSimulationRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: false,\n },\n simulationPerformanceDataRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: null,\n simulationName: null,\n currentStep: null,\n performanceData: null,\n },\n standings: {\n loading: false,\n errorMessage: \"\",\n success: null,\n teamMembers: null,\n simulationStandings: null,\n },\n registeredStudents: {\n loading: false,\n errorMessage: \"\",\n success: null,\n registeredStudents: null,\n },\n numberOfRegisteredStudentsStatus: {\n errorMessage: \"\",\n numberOfStudents: null,\n },\n createNextRunStatus: {\n loading: false,\n errorMessage: \"\",\n success: null,\n },\n professorScenarios: {\n loading: false,\n errorMessage: \"\",\n success: null,\n scenarios: null,\n },\n modifySimulationStatus: {\n loading: false,\n errorMessage: \"\",\n success: null,\n },\n documentationStatus: {\n loading: false,\n errorMessage: \"\",\n documentation: [],\n success: null,\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actionTypes.CRISIS_GET_SIMULATION_DETAILS_START:\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: true, errorMessage: \"\", detailsValid: false },\n };\n case actionTypes.CRISIS_GET_SIMULATION_DETAILS_FAIL:\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: false, errorMessage: action.payload, detailsValid: false },\n };\n case actionTypes.CRISIS_GET_SIMULATION_DETAILS_SUCCESS:\n const {\n id,\n name,\n status,\n professorManagedProgress,\n currentSimulationDay,\n startTime,\n endTime,\n paymentSummaryId,\n professorPaid,\n shortLink,\n iterationNumber,\n hasANextIteration,\n gameMode,\n } = action.payload;\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: false, errorMessage: \"\", detailsValid: true },\n simulationDetails: {\n id,\n name,\n status,\n professorManagedProgress,\n currentSimulationDay,\n startTime,\n endTime,\n paymentSummaryId,\n professorPaid,\n shortLink,\n iterationNumber,\n hasANextIteration,\n gameMode,\n },\n };\n case actionTypes.CRISIS_ADVANCE_SIMULATION_START:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: true, errorMessage: \"\", success: false },\n };\n case actionTypes.CRISIS_ADVANCE_SIMULATION_FAIL:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: false, errorMessage: action.payload, success: false },\n };\n case actionTypes.CRISIS_ADVANCE_SIMULATION_SUCCESS:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: false, errorMessage: \"\", success: true },\n };\n case actionTypes.CRISIS_START_SIMULATION_START:\n return {\n ...state,\n startSimulationRequestStatus: { loading: true, errorMessage: \"\", success: false },\n };\n case actionTypes.CRISIS_START_SIMULATION_FAIL:\n return {\n ...state,\n startSimulationRequestStatus: { loading: false, errorMessage: action.payload, success: false },\n };\n case actionTypes.CRISIS_START_SIMULATION_SUCCESS:\n return {\n ...state,\n startSimulationRequestStatus: { loading: false, errorMessage: \"\", success: true },\n };\n case actionTypes.CRISIS_RESET_REQUESTS_STATE:\n const { startSimulationRequestStatus, advanceSimulationRequestStatus } = initialState;\n return {\n ...state,\n startSimulationRequestStatus,\n advanceSimulationRequestStatus,\n };\n case actionTypes.CRISIS_GET_PERFORMANCE_DATA_START:\n return {\n ...state,\n simulationPerformanceDataRequestStatus: {\n ...state.simulationPerformanceDataRequestStatus,\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.CRISIS_GET_PERFORMANCE_DATA_SUCCESS:\n return {\n ...state,\n simulationPerformanceDataRequestStatus: {\n ...state.simulationPerformanceDataRequestStatus,\n loading: false,\n success: true,\n simulationName: action.payload.simulationName,\n currentStep: action.payload.currentStep,\n performanceData: action.payload.performanceData,\n },\n };\n case actionTypes.CRISIS_GET_PERFORMANCE_DATA_FAIL:\n return {\n ...state,\n simulationPerformanceDataRequestStatus: {\n ...state.simulationPerformanceDataRequestStatus,\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.CRISIS_GET_SIMULATION_STANDINGS_START:\n return {\n ...state,\n standings: {\n loading: true,\n errorMessage: \"\",\n success: null,\n teamMembers: null,\n simulationStandings: null,\n },\n };\n case actionTypes.CRISIS_GET_SIMULATION_STANDINGS_SUCCESS:\n return {\n ...state,\n standings: {\n loading: false,\n errorMessage: \"\",\n success: true,\n teamMembers: action.payload.teamMembers,\n simulationStandings: action.payload.standings,\n },\n };\n case actionTypes.CRISIS_GET_SIMULATION_STANDINGS_FAIL:\n return {\n ...state,\n standings: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n teamMembers: null,\n simulationStandings: null,\n },\n };\n case actionTypes.CRISIS_GET_REGISTERED_STUDENTS_START:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.CRISIS_GET_REGISTERED_STUDENTS_SUCCESS:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: false,\n success: true,\n registeredStudents: action.payload.registeredStudents,\n },\n };\n case actionTypes.CRISIS_GET_REGISTERED_STUDENTS_FAIL:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.CRISIS_GET_NUMBER_REGISTERED_STUDENTS_SUCCESS:\n return {\n ...state,\n numberOfRegisteredStudentsStatus: {\n errorMessage: \"\",\n numberOfStudents: action.payload,\n },\n };\n case actionTypes.CRISIS_GET_NUMBER_REGISTERED_STUDENTS_FAIL:\n return {\n ...state,\n numberOfRegisteredStudentsStatus: {\n errorMessage: action.payload,\n numberOfStudents: null,\n },\n };\n case actionTypes.CRISIS_CREATE_NEXT_RUN_START:\n return {\n ...state,\n createNextRunStatus: {\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.CRISIS_CREATE_NEXT_RUN_SUCCESS:\n return {\n ...state,\n createNextRunStatus: {\n loading: false,\n errorMessage: \"\",\n success: true,\n },\n };\n case actionTypes.CRISIS_CREATE_NEXT_RUN_FAIL:\n return {\n ...state,\n createNextRunStatus: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.CRISIS_CREATE_NEXT_RUN_CLEAN:\n return {\n ...state,\n createNextRunStatus: { ...initialState.createNextRunStatus },\n };\n case actionTypes.CRISIS_GET_PROFESSOR_SCENARIOS_START:\n return {\n ...state,\n professorScenarios: {\n loading: true,\n errorMessage: \"\",\n success: null,\n scenarios: null,\n },\n };\n case actionTypes.CRISIS_GET_PROFESSOR_SCENARIOS_FAIL:\n return {\n ...state,\n professorScenarios: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n scenarios: null,\n },\n };\n case actionTypes.CRISIS_GET_PROFESSOR_SCENARIOS_SUCCESS:\n return {\n ...state,\n professorScenarios: {\n loading: false,\n errorMessage: \"\",\n success: true,\n scenarios: action.payload,\n },\n };\n case actionTypes.CRISIS_MODIFY_SIMULATION_START:\n return {\n ...state,\n modifySimulationStatus: {\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.CRISIS_MODIFY_SIMULATION_FAIL:\n return {\n ...state,\n modifySimulationStatus: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.CRISIS_MODIFY_SIMULATION_SUCCESS:\n return {\n ...state,\n modifySimulationStatus: {\n loading: false,\n errorMessage: \"\",\n success: true,\n },\n };\n case actionTypes.CRISIS_MODIFY_SIMULATION_RESET:\n return {\n ...state,\n modifySimulationStatus: {\n ...initialState.modifySimulationStatus,\n },\n };\n case actionTypes.CRISIS_GET_DOCUMENTATION_START:\n return {\n ...state,\n documentationStatus: { loading: true, errorMessage: \"\", documentation: [], success: null },\n };\n case actionTypes.CRISIS_GET_DOCUMENTATION_FAIL:\n return {\n ...state,\n documentationStatus: { loading: false, errorMessage: action.payload, documentation: [], success: false },\n };\n case actionTypes.CRISIS_GET_DOCUMENTATION_SUCCESS:\n return {\n ...state,\n documentationStatus: {\n loading: false,\n errorMessage: \"\",\n documentation: action.payload,\n success: true,\n },\n };\n default:\n return state;\n }\n}\n","import * as actionTypes from \"./action-types\";\nimport { sendGetRequest, sendPostRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\n\nexport const crisisGetSimulationDetails = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_GET_SIMULATION_DETAILS_START });\n try {\n const response = await sendGetRequest(API_PATHS.CRISIS_GET_SIMULATION_DETAILS, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_GET_SIMULATION_DETAILS_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CRISIS_GET_SIMULATION_DETAILS_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_GET_SIMULATION_DETAILS_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisAdvanceSimulation = (advanceSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_ADVANCE_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.CRISIS_ADVANCE_SIMULATION, advanceSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_ADVANCE_SIMULATION_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CRISIS_ADVANCE_SIMULATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_ADVANCE_SIMULATION_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisStartSimulation = (startSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_START_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.CRISIS_START_SIMULATION, startSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_START_SIMULATION_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CRISIS_START_SIMULATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_START_SIMULATION_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisResetRequestsState = () => {\n return { type: actionTypes.CRISIS_RESET_REQUESTS_STATE };\n};\n\nexport const crisisGetPerformanceData = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_GET_PERFORMANCE_DATA_START });\n try {\n const response = await sendGetRequest(API_PATHS.CRISIS_GET_PERFORMANCE_DATA, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_GET_PERFORMANCE_DATA_FAIL, payload: response.data.message });\n return;\n }\n const payload = {\n currentStep: response.data.payload.currentStep,\n performanceData: response.data.payload.flowsInformation,\n simulationName: response.data.payload.simulationName,\n };\n\n dispatch({ type: actionTypes.CRISIS_GET_PERFORMANCE_DATA_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_GET_PERFORMANCE_DATA_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisGetSimulationStandings = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_GET_SIMULATION_STANDINGS_START });\n try {\n const response = await sendGetRequest(API_PATHS.CRISIS_GET_STANDINGS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.CRISIS_GET_SIMULATION_STANDINGS_FAIL, payload: response.data?.message });\n return;\n }\n\n const payload = {\n standings: response.data.payload.teamPositionStandings,\n teamMembers: response.data.payload.studentsInformation,\n };\n\n dispatch({ type: actionTypes.CRISIS_GET_SIMULATION_STANDINGS_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_GET_SIMULATION_STANDINGS_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisGetRegisteredStudents = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_GET_REGISTERED_STUDENTS_START });\n try {\n const response = await sendGetRequest(API_PATHS.CRISIS_GET_REGISTERED_STUDENTS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.CRISIS_GET_REGISTERED_STUDENTS_FAIL, payload: response.data?.message });\n return;\n }\n\n const payload = {\n registeredStudents: response.data.payload,\n };\n\n dispatch({ type: actionTypes.CRISIS_GET_REGISTERED_STUDENTS_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_GET_REGISTERED_STUDENTS_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisGetNumberOfRegisteredStudents = (simulationId) => {\n return async function (dispatch) {\n try {\n const response = await sendGetRequest(API_PATHS.CRISIS_GET_NUMBER_REGISTERED_STUDENTS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.CRISIS_GET_NUMBER_REGISTERED_STUDENTS_FAIL, payload: response.data?.message });\n return;\n }\n\n dispatch({ type: actionTypes.CRISIS_GET_NUMBER_REGISTERED_STUDENTS_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_GET_NUMBER_REGISTERED_STUDENTS_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisCreateNextRun = (request) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_CREATE_NEXT_RUN_START });\n try {\n const response = await sendPostRequest(API_PATHS.CRISIS_CREATE_NEXT_RUN, request);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_CREATE_NEXT_RUN_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CRISIS_CREATE_NEXT_RUN_SUCCESS, payload: response.data?.message });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_CREATE_NEXT_RUN_FAIL, payload: err });\n }\n };\n};\n\nexport const resetCreateNextRunState = () => {\n return { type: actionTypes.CRISIS_CREATE_NEXT_RUN_CLEAN };\n};\n\nexport const crisisGetProfessorScenarios = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_GET_PROFESSOR_SCENARIOS_START });\n try {\n const response = await sendGetRequest(API_PATHS.CRISIS_GET_PROFESSOR_SCENARIOS, \"\");\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_GET_PROFESSOR_SCENARIOS_FAIL, payload: response.data.message });\n return;\n }\n\n const scenarioPayload = response.data.payload.map((x) => ({\n title: x.name,\n description: x.description,\n id: x.id,\n }));\n\n dispatch({ type: actionTypes.CRISIS_GET_PROFESSOR_SCENARIOS_SUCCESS, payload: scenarioPayload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_GET_PROFESSOR_SCENARIOS_FAIL, payload: err });\n }\n };\n};\n\nexport const crisisModifySimulation = (request) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_MODIFY_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.CRISIS_MODIFY_SIMULATION, request);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_MODIFY_SIMULATION_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CRISIS_MODIFY_SIMULATION_SUCCESS, payload: response.data?.message });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_MODIFY_SIMULATION_FAIL, payload: err });\n }\n };\n};\n\nexport const CrisisModifyRestart = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_MODIFY_SIMULATION_RESET });\n };\n};\n\nexport const crisisGetDocumentation = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CRISIS_GET_DOCUMENTATION_START });\n try {\n const response = await sendGetRequest(API_PATHS.CRISIS_GET_DOCUMENTATION, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CRISIS_GET_DOCUMENTATION_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CRISIS_GET_DOCUMENTATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CRISIS_GET_DOCUMENTATION_FAIL, payload: err });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n simulationId: \"\",\n simulationShareLink: \"\",\n simulationDetails: {\n data: null,\n medicaLink: \"\",\n outcome: null,\n },\n simulationStandings: {\n payload: null,\n outcome: null,\n },\n simulationRegisteredStudents: {\n payload: null,\n outcome: null,\n },\n simulationTeams: {\n payload: null,\n outcome: null,\n },\n simulationDocumentation: {\n loadingDocumentation: null,\n getDocumentationError: \"\",\n getDocumentationSuccess: null,\n documentation: [],\n simulationId: \"\",\n },\n decisionHistoryStatus: {\n outcome: null,\n loading: false,\n errorMessage: \"\",\n decisionHistory: [],\n },\n suggestionsStatus: {\n loading: false,\n outcome: null,\n errorMessage: \"\",\n suggestions: {},\n },\n simulationPerformanceData: {},\n simulationDecisionsData: {},\n joinTeamSuccessfully: \"\",\n advanceSimulationSuccessfully: \"\",\n pushNotificationSuccessfully: null,\n runAgainSuccessfully: null,\n getTeamsError: \"\",\n getRegisteredStudentsError: \"\",\n getStandingsError: \"\",\n getSimulationDetailsError: \"\",\n pushNotificationError: \"\",\n createTeamError: \"\",\n joinTeamError: \"\",\n runAgainError: \"\",\n advanceSimulationError: \"\",\n loadingTeams: null,\n loadingRegisteredStudents: null,\n loadingDetails: null,\n loadingStandings: null,\n loadingPushNotification: null,\n loadingPerformanceData: false,\n loadingDecisionsData: false,\n advancingSimulation: null,\n creatingTeam: null,\n joiningTeam: null,\n loadingProfessorScenarios: null,\n loadingRunAgain: null,\n getProfessorScenariosError: \"\",\n customScenarios: null,\n checkingIfStudentHasPaid: null,\n studentHasPaid: null,\n checkStudentHasPaidError: \"\",\n simulationPerformanceDataError: \"\",\n simulationDecisionsDataError: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.GET_MEDICA_DETAILS:\n return {\n ...state,\n loadingDetails: true,\n getSimulationDetailsError: \"\",\n simulationDetails: {\n data: null,\n medicaLink: \"\",\n outcome: null,\n },\n };\n case actions.GET_MEDICA_DETAILS_SUCCESSFUL:\n return {\n ...state,\n simulationDetails: action.payload,\n loadingDetails: false,\n };\n case actions.GET_MEDICA_DETAILS_FAILED:\n return {\n ...state,\n getSimulationDetailsError: action.payload.message,\n loadingDetails: false,\n };\n case actions.GET_MEDICA_STANDINGS:\n return {\n ...state,\n loadingStandings: true,\n simulationStandings: {\n payload: null,\n outcome: null,\n },\n getStandingsError: \"\",\n };\n case actions.GET_MEDICA_STANDINGS_SUCCESSFUL:\n return {\n ...state,\n simulationStandings: action.payload,\n loadingStandings: false,\n };\n case actions.GET_MEDICA_STANDINGS_FAILED:\n return {\n ...state,\n getStandingsError: action.payload.message,\n loadingStandings: false,\n };\n case actions.GET_MEDICA_REGISTERED_STUDENTS:\n return {\n ...state,\n loadingRegisteredStudents: true,\n simulationRegisteredStudents: {\n payload: null,\n outcome: null,\n },\n getRegisteredStudentsError: \"\",\n };\n case actions.GET_MEDICA_REGISTERED_STUDENTS_SUCCESSFUL:\n return {\n ...state,\n simulationRegisteredStudents: action.payload,\n loadingRegisteredStudents: false,\n };\n case actions.GET_MEDICA_REGISTERED_STUDENTS_FAILED:\n return {\n ...state,\n getRegisteredStudentsError: action.payload.message,\n loadingRegisteredStudents: false,\n };\n case actions.GET_MEDICA_TEAMS:\n return {\n ...state,\n loadingTeams: true,\n getTeamsError: \"\",\n };\n case actions.GET_MEDICA_TEAMS_SUCCESSFUL:\n return {\n ...state,\n simulationTeams: action.payload,\n loadingTeams: false,\n };\n case actions.GET_MEDICA_TEAMS_FAILED:\n return {\n ...state,\n getTeamsError: action.payload.message,\n loadingTeams: false,\n };\n case actions.CREATE_MEDICA_TEAM:\n return {\n ...state,\n creatingTeam: true,\n createTeamError: \"\",\n };\n case actions.CREATE_MEDICA_TEAM_SUCCESSFUL:\n return {\n ...state,\n simulationShareLink: action.payload.payload,\n creatingTeam: false,\n };\n case actions.CREATE_MEDICA_TEAM_FAILED:\n return {\n ...state,\n createTeamError: action.payload.message,\n creatingTeam: false,\n };\n case actions.JOIN_MEDICA_TEAM:\n return {\n ...state,\n joiningTeam: true,\n joinTeamError: \"\",\n };\n case actions.JOIN_MEDICA_TEAM_SUCCESSFUL:\n return {\n ...state,\n joiningTeam: false,\n joinTeamSuccessfully: action.payload,\n };\n case actions.JOIN_MEDICA_TEAM_FAILED:\n return {\n ...state,\n joiningTeam: false,\n joinTeamError: action.payload.message,\n };\n case actions.ADVANCE_MEDICA_SIMULATION:\n return {\n ...state,\n advancingSimulation: true,\n advanceSimulationError: \"\",\n };\n case actions.ADVANCE_MEDICA_SIMULATION_SUCCESSFUL:\n return {\n ...state,\n advancingSimulation: false,\n advanceSimulationSuccessfully: action.payload.message,\n };\n case actions.ADVANCE_MEDICA_SIMULATION_FAILED:\n return {\n ...state,\n advancingSimulation: false,\n advanceSimulationError: action.payload.message,\n };\n case actions.GET_PROFESSOR_SCENARIOS:\n return {\n ...state,\n loadingProfessorScenarios: true,\n getProfessorScenariosError: \"\",\n };\n case actions.GET_PROFESSOR_SCENARIOS_SUCCESSFUL:\n return {\n ...state,\n customScenarios: action.payload.payload,\n loadingProfessorScenarios: false,\n };\n case actions.GET_PROFESSOR_SCENARIOS_FAILED:\n return {\n ...state,\n getProfessorScenariosError: action.payload.message,\n loadingProfessorScenarios: false,\n };\n case actions.CHECK_STUDENT_PAYMENT:\n return {\n ...state,\n checkingIfStudentHasPaid: true,\n studentHasPaid: null,\n checkStudentHasPaidError: \"\",\n };\n case actions.CHECK_STUDENT_PAYMENT_SUCCESSFUL:\n return {\n ...state,\n checkingIfStudentHasPaid: false,\n studentHasPaid: action.payload,\n };\n case actions.CHECK_STUDENT_PAYMENT_FAILED:\n return {\n ...state,\n checkingIfStudentHasPaid: false,\n checkStudentHasPaidError: action.payload,\n };\n case actions.RESET_ADVANCE_SIMULATION_PROPS:\n return {\n ...state,\n advanceSimulationSuccessfully: \"\",\n advancingSimulation: null,\n advanceSimulationError: \"\",\n };\n case actions.SEND_PUSH_NOTIFICATION:\n return {\n ...state,\n loadingPushNotification: true,\n pushNotificationSuccessfully: null,\n pushNotificationError: \"\",\n };\n case actions.SEND_PUSH_NOTIFICATION_SUCCESSFUL:\n return {\n ...state,\n loadingPushNotification: false,\n pushNotificationSuccessfully: action.payload,\n };\n case actions.SEND_PUSH_NOTIFICATION_FAILED:\n return {\n ...state,\n loadingPushNotification: false,\n pushNotificationError: action.payload,\n };\n case actions.GET_MEDICA_PERFORMANCE_DATA:\n return {\n ...state,\n loadingPerformanceData: true,\n simulationPerformanceData: {},\n simulationPerformanceDataError: \"\",\n };\n case actions.GET_MEDICA_PERFORMANCE_DATA_SUCCESSFUL:\n return {\n ...state,\n loadingPerformanceData: false,\n simulationPerformanceDataError: \"\",\n simulationPerformanceData: action.payload,\n };\n case actions.GET_MEDICA_PERFORMANCE_DATA_FAILED:\n return {\n ...state,\n loadingPerformanceData: false,\n simulationPerformanceData: {},\n simulationPerformanceDataError: action.payload,\n };\n case actions.RESET_PUSH_NOTIFICATION_STATE:\n return {\n ...state,\n pushNotificationSuccessfully: false,\n };\n case actions.RUN_AGAIN:\n return {\n ...state,\n loadingRunAgain: true,\n runAgainError: \"\",\n };\n case actions.RUN_AGAIN_SUCCESSFUL:\n return {\n ...state,\n loadingRunAgain: false,\n runAgainSuccessfully: action.payload,\n };\n case actions.RUN_AGAIN_FAILED:\n return {\n ...state,\n loadingRunAgain: false,\n runAgainError: action.payload,\n };\n case actions.GET_MEDICA_DOCUMENTATION:\n return {\n ...state,\n simulationDocumentation: {\n ...initialState.simulationDocumentation,\n loadingDocumentation: true,\n },\n };\n case actions.GET_MEDICA_DOCUMENTATION_SUCCESSFUL:\n return {\n ...state,\n simulationDocumentation: {\n ...state.simulationDocumentation,\n getDocumentationSuccess: true,\n documentation: action.payload.payload,\n simulationId: action.payload.simulationId,\n loadingDocumentation: false,\n },\n };\n case actions.GET_MEDICA_DOCUMENTATION_FAILED:\n return {\n ...state,\n simulationDocumentation: {\n ...state.simulationDocumentation,\n getDocumentationError: action.payload.message,\n loadingDocumentation: false,\n },\n };\n case actions.GET_MEDICA_DECISIONS_DATA:\n return {\n ...state,\n loadingDecisionsData: true,\n simulationDecisionsData: {},\n simulationDecisionsDataError: \"\",\n };\n case actions.GET_MEDICA_DECISIONS_DATA_SUCCESSFUL:\n return {\n ...state,\n loadingDecisionsData: false,\n simulationDecisionsDataError: \"\",\n simulationDecisionsData: action.payload,\n };\n case actions.GET_MEDICA_DECISIONS_DATA_FAILED:\n return {\n ...state,\n loadingDecisionsData: false,\n simulationDecisionsData: {},\n simulationDecisionsDataError: action.payload,\n };\n case actions.RESET_CREATE_TEAM_STORE:\n return {\n ...state,\n creatingTeam: false,\n createTeamError: \"\",\n };\n case actions.RESET_RUN_AGAIN_STORE:\n return {\n ...state,\n loadingRunAgain: null,\n runAgainError: \"\",\n runAgainSuccessfully: null,\n };\n case actions.MEDICA_GET_DECISION_HISTORY_START:\n return {\n ...state,\n decisionHistoryStatus: {\n loading: true,\n outcome: null,\n errorMessage: \"\",\n decisionHistory: [],\n },\n };\n case actions.MEDICA_GET_DECISION_HISTORY_SUCCESS:\n return {\n ...state,\n decisionHistoryStatus: {\n loading: false,\n outcome: true,\n errorMessage: \"\",\n decisionHistory: action.payload,\n },\n };\n case actions.MEDICA_GET_DECISION_HISTORY_FAIL:\n return {\n ...state,\n decisionHistoryStatus: {\n loading: false,\n outcome: false,\n errorMessage: action.payload,\n decisionHistory: [],\n },\n };\n case actions.GET_MEDICA_SUGGESTIONS:\n return {\n ...state,\n suggestionsStatus: {\n loading: true,\n outcome: null,\n errorMessage: \"\",\n suggestions: {},\n },\n };\n case actions.GET_MEDICA_SUGGESTIONS_SUCCESSFUL:\n return {\n ...state,\n suggestionsStatus: {\n loading: false,\n outcome: true,\n errorMessage: \"\",\n suggestions: action.payload,\n },\n };\n case actions.GET_MEDICA_SUGGESTIONS_FAILED:\n return {\n ...state,\n suggestionsStatus: {\n loading: false,\n outcome: false,\n errorMessage: action.payload,\n suggestions: {},\n },\n };\n default:\n return state;\n }\n}\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","import * as actions from \"./action-types\";\nimport moment from \"moment\";\nimport { generateDiscountCodeStatus } from \"../../utilities/discountCodeUtils\";\nimport { confirmPaymentStatuses, discountCodeStatuses } from \"../../utilities/storeStatusDictionary\";\n\nexport const initialState = {\n numberOfStudents: 0,\n isInstitution: null,\n knowsDateSelected: true,\n simulationName: \"\",\n startDate: moment().startOf(\"day\"),\n endDate: moment().startOf(\"day\").add(1, \"day\"),\n paymentId: \"\",\n purchasedSimulationName: \"\",\n professorAdvanceSimulation: false,\n templateName: \"\",\n totalSimulatedDays: null,\n discountCode: {\n status: discountCodeStatuses.initial,\n discountCode: \"\",\n discountCodeMessage: \"\",\n discountedPrice: null,\n },\n confirmPayment: {\n status: confirmPaymentStatuses.initial,\n errorMessage: \"\",\n paymentSummaryId: null,\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.CHECK_STORAGE_INFORMATION: {\n const { discountCode, discountedPrice } = action.payload.discountCode || initialState.discountCode;\n return {\n ...state,\n ...action.payload,\n discountCode: {\n ...state.discountCode,\n discountCode: discountCode,\n discountedPrice: discountedPrice,\n status: generateDiscountCodeStatus(discountCode, discountedPrice),\n },\n };\n }\n case actions.UPDATE_INSTITUTION_STUDENTS_NUMBER:\n return {\n ...state,\n ...action.payload,\n };\n case actions.UPDATE_SIMULATION_INFORMATION:\n return {\n ...state,\n ...action.payload,\n };\n case actions.UPDATE_TRANSACTION_DATA:\n return {\n ...state,\n ...action.payload,\n };\n case actions.VALIDATE_DISCOUNT_CODE:\n return {\n ...state,\n discountCode: {\n status: discountCodeStatuses.loading,\n discountCode: \"\",\n discountCodeMessage: \"\",\n discountedPrice: null,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_SUCCESSFUL: {\n const { discountCode, discountedPrice } = action.payload;\n\n return {\n ...state,\n discountCode: {\n status: generateDiscountCodeStatus(discountCode, discountedPrice),\n discountCode: action.payload.discountCode,\n discountCodeMessage: \"\",\n discountedPrice: action.payload.discountedPrice,\n },\n };\n }\n case actions.VALIDATE_DISCOUNT_CODE_FAILED:\n return {\n ...state,\n discountCode: {\n ...initialState.discountCode,\n discountCodeMessage: action.payload.discountCodeMessage,\n },\n };\n case actions.RESET_QUESTIONNAIRE_STORE:\n return {\n ...initialState,\n };\n case actions.CONFIRM_PAYMENT_START: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.loading,\n errorMessage: \"\",\n paymentSummaryId: null,\n },\n };\n }\n case actions.CONFIRM_PAYMENT_FAIL: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.fail,\n errorMessage: action.payload,\n paymentSummaryId: null,\n },\n };\n }\n case actions.CONFIRM_PAYMENT_SUCCESS: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.success,\n errorMessage: \"\",\n paymentSummaryId: action.payload,\n },\n };\n }\n case actions.RESET_DISCOUNT_CODE: {\n return {\n ...state,\n discountCode: { ...initialState.discountCode },\n };\n }\n default:\n return state;\n }\n}\n","import { setStorage, removeStorage, mergeDataToStorage } from \"./StorageService\";\nimport { sendPostRequest } from \"../services/FetchService\";\nimport * as FETCHAPI from \"../constants/FetchApi\";\nimport * as LOCALSTORAGE from \"../constants/LocalStorage\";\nimport { getLanguagePrefix } from \"../components/utilities/LanguageUtilities\";\n\nexport const prepareSimulationData = (medicaQuestionnaire, paymentId, language) => {\n const languagePrefix = getLanguagePrefix(language);\n const {\n simulationName,\n startDate,\n endDate,\n numberOfStudents,\n templateName,\n discountCode,\n addVariation,\n addSuggestions,\n } = medicaQuestionnaire;\n const offset = -new Date().getTimezoneOffset() / 60;\n const postData = {\n simulationName: simulationName.trim(),\n maxNumberOfStudents: numberOfStudents,\n startTime: startDate,\n endDate: endDate,\n timeOffset: offset,\n transactionId: paymentId,\n discountCode: discountCode.discountCode,\n templateName: templateName,\n addVariation: addVariation,\n addSuggestions: addSuggestions,\n UserLanguage: languagePrefix,\n };\n return postData;\n};\n\nexport const prepareSimulationDataWithManagedProgress = (medicaQuestionnaire, paymentId, language) => {\n const languagePrefix = getLanguagePrefix(language);\n const { simulationName, numberOfStudents, totalSimulatedDays, templateName, discountCode, addVariation } =\n medicaQuestionnaire;\n\n const postData = {\n simulationName: simulationName.trim(),\n maxNumberOfStudents: numberOfStudents,\n transactionId: paymentId,\n templateName: templateName,\n discountCode: discountCode.discountCode,\n totalStudentInteractionDays: totalSimulatedDays,\n addVariation: addVariation,\n UserLanguage: languagePrefix,\n };\n return postData;\n};\n\nexport const handleStorage = (simulationId, activationLink, purchasedData) => {\n if (!purchasedData) {\n const data = {\n simulationId: simulationId,\n activationLink: activationLink,\n };\n removeStorage(LOCALSTORAGE.medicaQuestionnaire);\n setStorage(LOCALSTORAGE.simulationCreated, data);\n } else {\n mergeDataToStorage(LOCALSTORAGE.medicaQuestionnaire, purchasedData);\n }\n};\n\nexport const validateDiscountCode = (discountCode) => {\n return sendPostRequest(FETCHAPI.MEDICA_VALIDATE_DISCOUNT_CODE, discountCode);\n};\n\nexport const prepareCustomResponse = (discountCode, response, action) => {\n let customResponse = null;\n if (response.data.outcome === true && response.data.payload?.validDiscountCode === true) {\n customResponse = {\n type: `${action}_SUCCESSFUL`,\n payload: {\n discountCode: discountCode,\n discountedPrice: response.data.payload.discountedPrice,\n },\n };\n } else {\n customResponse = {\n type: `${action}_FAILED`,\n payload: {\n discountCodeMessage: response.data.message,\n },\n };\n }\n return customResponse;\n};\n","import * as actions from \"./action-types\";\nimport { getStorage, setStorage, mergeDataToStorage } from \"../../services/StorageService\";\nimport { sentryReportException } from \"../../services/SentryReportService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport * as medicaQuestionnaireService from \"../../services/MedicaQuestionnaireService\";\nimport * as FETCHAPI from \"../../constants/FetchApi.js\";\nimport * as actionTypes from \"./action-types\";\nimport { sendPostRequest } from \"../../services/FetchService\";\n\nexport const checkStorageInformation = () => {\n return async function (dispatch) {\n const cachedQuestionnaireInformation = getStorage(LOCALSTORAGE.medicaQuestionnaire);\n if (cachedQuestionnaireInformation) {\n dispatch({\n type: actions.CHECK_STORAGE_INFORMATION,\n payload: cachedQuestionnaireInformation,\n });\n }\n return true;\n };\n};\n\nexport const cacheMedicaQuestionnaireData = (data) => {\n return async function (dispatch) {\n setStorage(LOCALSTORAGE.medicaQuestionnaire, data);\n dispatch({ type: actions.UPDATE_INSTITUTION_STUDENTS_NUMBER, payload: data });\n };\n};\n\nexport const updateSimulationInformation = (data) => {\n return async function (dispatch) {\n dispatch({ type: actions.UPDATE_SIMULATION_INFORMATION, payload: data });\n return true;\n };\n};\n\nexport const updateTransactionData = (data) => {\n return async function (dispatch) {\n dispatch({ type: actions.UPDATE_TRANSACTION_DATA, payload: data });\n };\n};\n\nexport const validateDiscountCode = (discountCode) => {\n return async function (dispatch) {\n dispatch({ type: actions.VALIDATE_DISCOUNT_CODE });\n const discountCodeResponse = medicaQuestionnaireService.validateDiscountCode(discountCode);\n discountCodeResponse\n .then((response) => {\n if (response.data) {\n const data = medicaQuestionnaireService.prepareCustomResponse(\n discountCode.code,\n response,\n actions.VALIDATE_DISCOUNT_CODE\n );\n mergeDataToStorage(LOCALSTORAGE.medicaQuestionnaire, { discountCode: data.payload });\n dispatch(data);\n } else {\n dispatch({\n type: actions.VALIDATE_DISCOUNT_CODE_FAILED,\n message: \"errorValidatingDiscountCode\",\n });\n }\n })\n .catch((error) => {\n if (error) {\n const sentryTag = {\n name: \"discountCodeFailed\",\n data: discountCode.code,\n };\n sentryReportException(error, sentryTag);\n dispatch({\n type: actions.VALIDATE_DISCOUNT_CODE_FAILED,\n message: \"errorValidatingDiscountCode\",\n });\n }\n });\n };\n};\n\nexport const medicaConfirmPayment = (paymentIntentId) => {\n return async function (dispatch) {\n dispatch({ type: actions.CONFIRM_PAYMENT_START });\n try {\n const response = await sendPostRequest(FETCHAPI.MEDICA_CONFIRM_PAYMENT, { paymentIntentId });\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_SUCCESS, payload: response.data.payload });\n } catch (error) {\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_FAIL, payload: error });\n }\n };\n};\n\nexport const medicaResetDiscountCode = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.RESET_DISCOUNT_CODE });\n };\n};\n\nexport const resetMedicaQuestionnaireStore = () => {\n return async function (dispatch) {\n dispatch({\n type: actions.RESET_QUESTIONNAIRE_STORE,\n });\n };\n};\n","export const CONFIRM_PAYMENT_START = \"MedicaQuestionnaire/CONFIRM_PAYMENT_START\";\nexport const CONFIRM_PAYMENT_SUCCESS = \"MedicaQuestionnaire/CONFIRM_PAYMENT_SUCCESS\";\nexport const CONFIRM_PAYMENT_FAIL = \"MedicaQuestionnaire/CONFIRM_PAYMENT_FAIL\";\n\nexport const CHECK_STORAGE_INFORMATION = \"MedicaQuestionnaire/CHECK_STORAGE_INFORMATION\";\nexport const UPDATE_INSTITUTION_STUDENTS_NUMBER = \"MedicaQuestionnaire/UPDATE_INSTITUTION_STUDENTS_NUMBER\";\nexport const UPDATE_SIMULATION_INFORMATION = \"MedicaQuestionnaire/UPDATE_SIMULATION_INFORMATION\";\nexport const VALIDATE_DISCOUNT_CODE = \"MedicaQuestionnaire/VALIDATE_DISCOUNT_CODE\";\nexport const VALIDATE_DISCOUNT_CODE_SUCCESSFUL = \"MedicaQuestionnaire/VALIDATE_DISCOUNT_CODE_SUCCESSFUL\";\nexport const VALIDATE_DISCOUNT_CODE_FAILED = \"MedicaQuestionnaire/VALIDATE_DISCOUNT_CODE_FAILED\";\nexport const UPDATE_TRANSACTION_DATA = \"MedicaQuestionnaire/UPDATE_TRANSACTION_DATA\";\nexport const RESET_QUESTIONNAIRE_STORE = \"MedicaQuestionnaire/RESET_QUESTIONNAIRE_STORE\";\nexport const RESET_DISCOUNT_CODE = \"MedicaQuestionnaire/RESET_DISCOUNT_CODE_STORE\";\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const REQUEST_FEATURE = \"Profile/REQUEST_FEATURE\";\nexport const REQUEST_FEATURE_SUCCESSFULL = \"Profile/REQUEST_FEATURE_SUCCESSFULL\";\nexport const REQUEST_FEATURE_FAILED = \"Profile/REQUEST_FEATURE_FAILED\";\nexport const RESET_REQUEST_FEATURE_STORE = \"Profile/RESET_REQUEST_FEATURE_STORE\";\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n loadingRequestFeature: false,\n requestFeatureSuccess: null,\n requestFeatureMessage: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.REQUEST_FEATURE:\n return {\n loadingRequestFeature: true,\n requestFeatureSuccess: null,\n requestFeatureMessage: \"\",\n };\n case actions.REQUEST_FEATURE_SUCCESSFULL:\n return {\n loadingRequestFeature: false,\n requestFeatureSuccess: true,\n requestFeatureMessage: action.payload,\n };\n case actions.REQUEST_FEATURE_FAILED:\n return {\n loadingRequestFeature: false,\n requestFeatureSuccess: false,\n requestFeatureMessage: action.payload,\n };\n case actions.RESET_REQUEST_FEATURE_STORE:\n return {\n loadingRequestFeature: false,\n requestFeatureSuccess: null,\n requestFeatureMessage: \"\",\n };\n default:\n return state;\n }\n}\n","import { sendPostRequest } from \"../services/FetchService\";\nimport * as FETCHAPI from \"../constants/FetchApi\";\n\nexport const requestFeature = (featureData) => {\n return sendPostRequest(FETCHAPI.REQUEST_FEATURE, featureData);\n};\n","import * as actions from \"./action-types\";\nimport * as profileService from \"../../services/ProfileService\";\n\nexport const requestFeature = (featureData) => {\n return async function (dispatch) {\n dispatch({ type: actions.REQUEST_FEATURE });\n const requestFeatureResponse = profileService.requestFeature(featureData);\n requestFeatureResponse\n .then((response) => {\n if (response.data.outcome) {\n dispatch({\n type: actions.REQUEST_FEATURE_SUCCESSFULL,\n payload: \"featureRequestedSuccessfully\",\n });\n } else {\n const response = {\n message: \"errorRequestingFeature\",\n };\n dispatch({\n type: actions.REQUEST_FEATURE_FAILED,\n payload: response.message,\n });\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorRequestingFeature\",\n };\n dispatch({\n type: actions.REQUEST_FEATURE_FAILED,\n payload: response.message,\n });\n }\n });\n };\n};\n\nexport const resetRequestFeatureStore = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_REQUEST_FEATURE_STORE });\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const GET_SCENARIO_INFORMATION = \"Scenario/GET_SCENARIO_INFORMATION\";\n\nexport const GET_SCENARIO_INFORMATION_SUCCESSFULL = \"Scenario/GET_SCENARIO_INFORMATION_SUCCESSFULL\";\n\nexport const GET_SCENARIO_INFORMATION_FAILED = \"Scenario/GET_SCENARIO_INFORMATION_FAILED\";\n\nexport const GET_PROFESSOR_SCENARIO_LIST = \"Scenario/GET_PROFESSOR_SCENARIO_LIST\";\n\nexport const GET_PROFESSOR_SCENARIO_LIST_SUCCESSFULL = \"Scenario/GET_PROFESSOR_SCENARIO_LIST_SUCCESSFULL\";\nexport const GET_PROFESSOR_SCENARIO_LIST_FAILED = \"Scenario/GET_PROFESSOR_SCENARIO_LIST_FAILED\";\nexport const PROFESSOR_CREATE_NEW_SCENARIO = \"Scenario/PROFESSOR_CREATE_NEW_SCENARIO\";\nexport const PROFESSOR_CREATE_NEW_SCENARIO_SUCCESSFULL = \"Scenario/PROFESSOR_CREATE_NEW_SCENARIO_SUCCESSFULL\";\nexport const PROFESSOR_CREATE_NEW_SCENARIO_FAILED = \"Scenario/PROFESSOR_CREATE_NEW_SCENARIO_FAILED\";\nexport const RESET_PROFESSOR_CREATE_NEW_SCENARIO_STORE = \"Scenario/RESET_PROFESSOR_CREATE_NEW_SCENARIO_STORE\";\nexport const PROFESSOR_DELETE_SCENARIO = \"Scenario/PROFESSOR_DELETE_SCENARIO\";\nexport const PROFESSOR_DELETE_SCENARIO_SUCCESSFULL = \"Scenario/PROFESSOR_DELETE_SCENARIO_SUCCESSFULL\";\nexport const PROFESSOR_DELETE_SCENARIO_FAILED = \"Scenario/PROFESSOR_DELETE_SCENARIO_FAILED\";\nexport const RESET_PROFESSOR_DELETE_SCENARIO_STORE = \"Scenario/RESET_PROFESSOR_DELETE_SCENARIO_STORE\";\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n loadingScenarioInformation: null,\n scenarioData: null,\n scenarioInformationErrorMessage: \"\",\n loadingProfessorScenarioList: null,\n professorScenarioList: null,\n professorScenarioListErrorMessage: \"\",\n loadingCreateNewScenario: null,\n createNewScenarioSuccess: null,\n createNewScenarioMessage: \"\",\n loadingProfessorDeleteScenario: null,\n professorDeleteScenarioSuccess: null,\n professorDeleteScenarioMessage: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.GET_SCENARIO_INFORMATION:\n return {\n ...state,\n loadingScenarioInformation: true,\n scenarioData: null,\n scenarioInformationErrorMessage: \"\",\n };\n case actions.GET_SCENARIO_INFORMATION_SUCCESSFULL:\n return {\n ...state,\n loadingScenarioInformation: false,\n scenarioInformationErrorMessage: \"\",\n scenarioData: action.payload,\n };\n case actions.GET_SCENARIO_INFORMATION_FAILED:\n return {\n ...state,\n professorScenarioList: null,\n loadingScenarioInformation: false,\n scenarioInformationErrorMessage: action.payload,\n };\n case actions.GET_PROFESSOR_SCENARIO_LIST:\n return {\n ...state,\n loadingProfessorScenarioList: true,\n professorScenarioList: null,\n professorScenarioListErrorMessage: \"\",\n };\n case actions.GET_PROFESSOR_SCENARIO_LIST_SUCCESSFULL:\n return {\n ...state,\n loadingProfessorScenarioList: false,\n professorScenarioListErrorMessage: \"\",\n professorScenarioList: action.payload,\n };\n case actions.GET_PROFESSOR_SCENARIO_LIST_FAILED:\n return {\n ...state,\n professorScenarioList: null,\n loadingProfessorScenarioList: false,\n professorScenarioListErrorMessage: action.payload,\n };\n case actions.PROFESSOR_CREATE_NEW_SCENARIO:\n return {\n ...state,\n loadingCreateNewScenario: true,\n createNewScenarioSuccess: null,\n createNewScenarioMessage: null,\n };\n case actions.PROFESSOR_CREATE_NEW_SCENARIO_SUCCESSFULL:\n return {\n ...state,\n loadingCreateNewScenario: false,\n createNewScenarioSuccess: true,\n createNewScenarioMessage: action.payload,\n };\n case actions.PROFESSOR_CREATE_NEW_SCENARIO_FAILED:\n return {\n ...state,\n loadingCreateNewScenario: false,\n createNewScenarioSuccess: false,\n createNewScenarioMessage: action.payload,\n };\n case actions.RESET_PROFESSOR_CREATE_NEW_SCENARIO_STORE:\n return {\n ...state,\n loadingCreateNewScenario: null,\n createNewScenarioSuccess: null,\n createNewScenarioMessage: \"\",\n };\n case actions.PROFESSOR_DELETE_SCENARIO:\n return {\n ...state,\n loadingProfessorDeleteScenario: true,\n professorDeleteScenarioSuccess: null,\n professorDeleteScenarioMessage: \"\",\n };\n case actions.PROFESSOR_DELETE_SCENARIO_SUCCESSFULL:\n return {\n ...state,\n loadingProfessorDeleteScenario: false,\n professorDeleteScenarioSuccess: true,\n professorDeleteScenarioMessage: action.payload,\n };\n case actions.PROFESSOR_DELETE_SCENARIO_FAILED:\n return {\n ...state,\n loadingProfessorDeleteScenario: false,\n professorDeleteScenarioSuccess: null,\n professorDeleteScenarioMessage: action.payload,\n };\n case actions.RESET_PROFESSOR_DELETE_SCENARIO_STORE:\n return {\n ...state,\n loadingProfessorDeleteScenario: null,\n professorDeleteScenarioSuccess: null,\n professorDeleteScenarioMessage: \"\",\n };\n default:\n return state;\n }\n}\n","import { sendGetRequest, sendPostRequest, sendDeleteRequest } from \"../services/FetchService\";\nimport * as FETCHAPI from \"../constants/FetchApi\";\nimport { getLanguagePrefix } from \"../components/utilities/LanguageUtilities\";\nimport moment from \"moment\";\n\nexport const getScenarioInformation = () => {\n return sendGetRequest(FETCHAPI.GET_MEDICA_SCENARIO_INFORMATION, \"\");\n};\n\nexport const getProfessorScenarioList = () => {\n return sendGetRequest(FETCHAPI.GET_PROFESSOR_SCENARIOS, \"\");\n};\n\nexport const formatProfessorScenarioList = (professorScenarios, language) => {\n const professorScenariosList = professorScenarios.map((scenario) => {\n return {\n ...scenario,\n createdAt: dateFormatter(scenario.createdAt, language),\n lastUsedDate: dateFormatter(scenario.lastUsedDate, language),\n };\n });\n\n return professorScenariosList;\n};\n\nconst dateFormatter = (date, language) => {\n const languagePrefix = getLanguagePrefix(language);\n return moment(date).locale(languagePrefix).format(`MMMM D, YYYY`);\n};\n\nexport const professorCreateNewScenario = (scenarioData) => {\n return sendPostRequest(FETCHAPI.PROFESSOR_CREATE_NEW_SCENARIO, scenarioData);\n};\n\nexport const professorDeleteScenario = (scenarioId) => {\n return sendDeleteRequest(FETCHAPI.PROFESSOR_DELETE_SCENARIO, scenarioId);\n};\n","import * as actions from \"./action-types\";\nimport * as scenarioInformationService from \"../../services/ScenarioInformationService\";\nimport { sentryReportEvent } from \"../../services/SentryReportService\";\n\nexport const getScenarioInformation = () => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_SCENARIO_INFORMATION });\n const scenarioInformationResponse = scenarioInformationService.getScenarioInformation();\n scenarioInformationResponse\n .then((scenarioInformation) => {\n if (scenarioInformation.data.outcome) {\n dispatch({\n type: actions.GET_SCENARIO_INFORMATION_SUCCESSFULL,\n payload: scenarioInformation.data.payload,\n });\n } else {\n dispatch({\n type: actions.GET_SCENARIO_INFORMATION_FAILED,\n payload: \"noScenarioInformation\",\n });\n }\n })\n .catch((error) => {\n if (error) {\n dispatch({\n type: actions.GET_SCENARIO_INFORMATION_FAILED,\n payload: \"errorFetchScenarioInformation\",\n });\n }\n });\n };\n};\n\nexport const getProfessorScenarioList = (language, translate) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_PROFESSOR_SCENARIO_LIST });\n const professorScenarioListResponse = scenarioInformationService.getProfessorScenarioList();\n professorScenarioListResponse\n .then((professorScenarioList) => {\n if (professorScenarioList.data.outcome) {\n const professorScenarios = scenarioInformationService.formatProfessorScenarioList(\n professorScenarioList.data.payload,\n language,\n translate\n );\n dispatch({\n type: actions.GET_PROFESSOR_SCENARIO_LIST_SUCCESSFULL,\n payload: professorScenarios,\n });\n } else {\n dispatch({\n type: actions.GET_PROFESSOR_SCENARIO_LIST_FAILED,\n payload: \"noProfessorScenarioList\",\n });\n }\n })\n .catch((error) => {\n if (error) {\n dispatch({\n type: actions.GET_PROFESSOR_SCENARIO_LIST_FAILED,\n payload: \"errorFetchProfessorScenarioList\",\n });\n }\n });\n };\n};\n\nexport const professorCreateNewScenario = (scenarioData) => {\n return async function (dispatch) {\n dispatch({ type: actions.PROFESSOR_CREATE_NEW_SCENARIO });\n const professorCreateNewScenarioResponse = scenarioInformationService.professorCreateNewScenario(scenarioData);\n professorCreateNewScenarioResponse\n .then((professorCreateNewScenario) => {\n if (professorCreateNewScenario.data.outcome) {\n const sentryTag = { name: \"Team Name\", data: professorCreateNewScenario.data.payload.team };\n sentryReportEvent(\"Professor Scenario Created\", sentryTag, []);\n dispatch({\n type: actions.PROFESSOR_CREATE_NEW_SCENARIO_SUCCESSFULL,\n payload: \"scenarioHasBeenCreatedSuccessfully\",\n });\n } else {\n dispatch({\n type: actions.PROFESSOR_CREATE_NEW_SCENARIO_FAILED,\n payload: professorCreateNewScenario.data.message,\n });\n }\n })\n .catch((error) => {\n if (error) {\n dispatch({\n type: actions.PROFESSOR_CREATE_NEW_SCENARIO_FAILED,\n payload: \"errorCreatingNewScenario\",\n });\n }\n });\n };\n};\n\nexport const professorDeleteScenario = (scenarioId) => {\n return async function (dispatch) {\n dispatch({ type: actions.PROFESSOR_DELETE_SCENARIO });\n const professorDeleteScenarioResponse = scenarioInformationService.professorDeleteScenario(scenarioId);\n professorDeleteScenarioResponse\n .then((professorDelete) => {\n if (professorDelete.data.outcome) {\n dispatch({\n type: actions.PROFESSOR_DELETE_SCENARIO_SUCCESSFULL,\n payload: \"scenarioDeletedSuccesfully\",\n });\n } else {\n dispatch({\n type: actions.PROFESSOR_DELETE_SCENARIO_FAILED,\n payload: \"errorDeletingScenario\",\n });\n }\n })\n .catch((error) => {\n if (error) {\n dispatch({\n type: actions.PROFESSOR_DELETE_SCENARIO_FAILED,\n payload: \"errorFetchProfessorDeleteScenario\",\n });\n }\n });\n };\n};\n\nexport const resetProfessorCreateNewScenarioStore = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_PROFESSOR_CREATE_NEW_SCENARIO_STORE });\n };\n};\n\nexport const resetProfesorDeleteScenarioStore = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_PROFESSOR_DELETE_SCENARIO_STORE });\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const GET_SIMULATIONS = \"Simulations/GET_SIMULATIONS\";\nexport const GET_SIMULATIONS_SUCCESSFUL = \"Simulations/GET_SIMULATIONS_SUCCESSFUL\";\nexport const GET_SIMULATIONS_FAILED = \"Simulations/GET_SIMULATIONS_FAILED\";\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n loadingSimulations: false,\n data: null,\n message: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.GET_SIMULATIONS:\n return {\n ...state,\n loadingSimulations: true,\n data: null,\n message: \"\",\n showVideoToBuy: null,\n };\n case actions.GET_SIMULATIONS_SUCCESSFUL:\n return {\n ...state,\n loadingSimulations: false,\n message: \"\",\n data: action.payload.data,\n };\n case actions.GET_SIMULATIONS_FAILED:\n return {\n ...state,\n loadingSimulations: false,\n ...action.payload,\n };\n default:\n return state;\n }\n}\n","import { sendGetRequest } from \"../services/FetchService\";\nimport * as FETCHAPI from \"../constants/FetchApi\";\nimport * as CONSTANT from \"../constants/UniversalConstants\";\nimport moment from \"moment\";\nimport \"moment/locale/es\";\nimport { getLanguagePrefix } from \"../components/utilities/LanguageUtilities\";\n\nexport const getMedicaList = () => {\n return sendGetRequest(FETCHAPI.GET_SIMULATIONS_MEDICA, \"\");\n};\n\nexport const getSimunationList = () => {\n return sendGetRequest(FETCHAPI.GET_SIMULATIONS_SIMUNATION, \"\");\n};\n\nexport const getCrisisList = () => {\n return sendGetRequest(FETCHAPI.GET_SIMULATIONS_CRISIS, \"\");\n};\n\nexport const getSupplyChainList = () => {\n return sendGetRequest(FETCHAPI.GET_SIMULATIONS_SUPPLY_CHAIN, \"\");\n};\n\nexport const getForioList = () => {\n return sendGetRequest(FETCHAPI.GET_SIMULATIONS_FORIO, \"\");\n};\n\nexport const getUserSimulations = (\n medicaResponse,\n simunationResponse,\n crisisResponse,\n supplyChainResponse,\n forioResponse,\n language,\n translate\n) => {\n let response = {\n action: null,\n payload: {\n data: null,\n message: \"\",\n showVideoToBuy: null,\n },\n };\n\n let medicaSimulations = null;\n let simunationSimulations = null;\n let crisisSimulations = null;\n let supplyChainSimulations = null;\n let abogadosSimulations = null;\n let creambowSimulations = null;\n\n if (medicaResponse?.outcome) {\n medicaSimulations = listToArray(CONSTANT.MEDICA_NAME, medicaResponse.payload);\n }\n\n if (simunationResponse?.outcome) {\n simunationSimulations = listToArray(CONSTANT.SIMUNATION_NAME, simunationResponse.payload);\n }\n\n if (crisisResponse?.outcome) {\n crisisSimulations = listToArray(CONSTANT.CRISIS_NAME, crisisResponse.payload);\n }\n\n if (supplyChainResponse?.outcome) {\n supplyChainSimulations = listToArray(CONSTANT.SUPPLY_CHAIN_NAME, supplyChainResponse.payload);\n }\n\n if (forioResponse?.outcome) {\n abogadosSimulations = listToArray(\n CONSTANT.ABOGADOS_NAME,\n forioResponse.payload.filter((x) => x.simulationType === \"LaneAndSlinger\")\n );\n }\n\n if (forioResponse?.outcome) {\n creambowSimulations = listToArray(\n CONSTANT.CREAM_BOW_NAME,\n forioResponse.payload.filter((x) => x.simulationType === \"Creambow\")\n );\n }\n\n const responseData = joinSimulationData(\n medicaSimulations,\n simunationSimulations,\n crisisSimulations,\n supplyChainSimulations,\n abogadosSimulations,\n creambowSimulations,\n language,\n translate\n );\n response.payload.data = responseData;\n return response;\n};\n\nexport const joinSimulationData = (\n medicaSimulations,\n simunationSimulations,\n crisisSimulations,\n supplyChainsSimulations,\n abogadosSimulations,\n creambowSimulations,\n language,\n translate\n) => {\n const simulationsList = [];\n if (medicaSimulations) simulationsList.push(...formatSimulationDatesAndSetId(medicaSimulations, language, translate));\n if (simunationSimulations)\n simulationsList.push(...simunationFormatSimulationDatesAndSetId(simunationSimulations, language, translate));\n if (crisisSimulations) simulationsList.push(...formatSimulationDatesAndSetId(crisisSimulations, language, translate));\n if (supplyChainsSimulations)\n simulationsList.push(...formatSimulationDatesAndSetId(supplyChainsSimulations, language, translate));\n if (abogadosSimulations)\n simulationsList.push(...formatSimulationDatesAndSetId(abogadosSimulations, language, translate));\n if (creambowSimulations)\n simulationsList.push(...formatSimulationDatesAndSetId(creambowSimulations, language, translate));\n return simulationsList.sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt));\n};\n\nconst formatSimulationDatesAndSetId = (simulations, language, translate) => {\n let simulationWithFormattedDate = [];\n simulations.forEach((simulation) => {\n simulation.startTime = dateFormatter(simulation.startTime, language, translate);\n simulation.endDate = dateFormatter(simulation.endDate, language, translate);\n simulationWithFormattedDate.push(simulation);\n });\n\n return simulationWithFormattedDate;\n};\n\nconst simunationFormatSimulationDatesAndSetId = (simulations, language, translate) => {\n return simulations.map((simulation) => ({\n ...simulation,\n startTime: dateFormatter(simulation.createdAt, language, translate),\n }));\n};\n\nconst dateFormatter = (date, language, translate) => {\n const languagePrefix = getLanguagePrefix(language);\n try {\n return moment(date)\n .locale(languagePrefix)\n .format(`MMMM D, YYYY [${translate(\"at\")}] hh:mm A`);\n } catch (error) {\n console.log(error);\n }\n};\n\nexport const listToArray = (type, list) => {\n let newListArr = [];\n list.forEach((simulation) => {\n newListArr.push({\n ...simulation,\n type: type,\n });\n });\n return newListArr;\n};\n","import * as actions from \"./action-types\";\nimport * as simulationService from \"../../services/SimulationsService\";\n\nexport const getSimulations = (language, translate) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_SIMULATIONS });\n\n const getMedicaSimulationTask = simulationService.getMedicaList();\n const getSimunationSimulationsTask = simulationService.getSimunationList();\n const getCrisisSimulationsTask = simulationService.getCrisisList();\n const getSupplyChainList = simulationService.getSupplyChainList();\n const getForioList = simulationService.getForioList();\n\n const [medicaSettledTask, simunationSettledTask, crisisSettledTask, supplyChainSettledTask, forioSettledTask] =\n await Promise.allSettled([\n getMedicaSimulationTask,\n getSimunationSimulationsTask,\n getCrisisSimulationsTask,\n getSupplyChainList,\n getForioList,\n ]);\n\n if (\n (medicaSettledTask.status === \"rejected\" || medicaSettledTask.value?.status !== 200) &&\n (simunationSettledTask.status === \"rejected\" || simunationSettledTask.value?.status !== 200) &&\n (crisisSettledTask.status === \"rejected\" || crisisSettledTask.value?.status !== 200) &&\n (supplyChainSettledTask.status === \"rejected\" || supplyChainSettledTask.value?.status !== 200) &&\n (forioSettledTask.status === \"rejected\" || forioSettledTask.value?.status !== 200)\n ) {\n dispatch({\n type: actions.GET_SIMULATIONS_FAILED,\n payload: {\n message: \"errorFetchingSimulations\",\n },\n });\n return;\n }\n\n const medicaResponse = medicaSettledTask.status === \"fulfilled\" ? medicaSettledTask.value.data : { outcome: false };\n const simunationResponse =\n simunationSettledTask.status === \"fulfilled\" ? simunationSettledTask.value.data : { outcome: false };\n const crisisResponse = crisisSettledTask.status === \"fulfilled\" ? crisisSettledTask.value.data : { outcome: false };\n const supplyChainResponse =\n supplyChainSettledTask.status === \"fulfilled\" ? supplyChainSettledTask.value.data : { outcome: false };\n const forioResponse = forioSettledTask.status === \"fulfilled\" ? forioSettledTask.value.data : { outcome: false };\n\n let response = simulationService.getUserSimulations(\n medicaResponse,\n simunationResponse,\n crisisResponse,\n supplyChainResponse,\n forioResponse,\n language,\n translate\n );\n\n if (response.payload.data.length === 0) {\n dispatch({\n type: actions.GET_SIMULATIONS_FAILED,\n payload: {\n message: \"noSimulationList\",\n showVideoToBuy: true,\n },\n });\n return;\n }\n dispatch({\n type: actions.GET_SIMULATIONS_SUCCESSFUL,\n payload: response.payload,\n });\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const GET_SIMUNATION_DETAILS = \"Simunation/GET_SIMUNATION_DETAILS\";\nexport const GET_SIMUNATION_DETAILS_SUCCESSFUL = \"Simunation/GET_SIMUNATION_DETAILS_SUCCESSFUL\";\nexport const GET_SIMUNATION_DETAILS_FAILED = \"Simunation/GET_SIMUNATION_DETAILS_FAILED\";\nexport const ADVANCE_SIMUNATION = \"Simunation/ADVANCE_SIMUNATION\";\nexport const ADVANCE_SIMUNATION_SUCCESSFUL = \"Simunation/ADVANCE_SIMUNATION_SUCCESSFUL\";\nexport const ADVANCE_SIMUNATION_FAILED = \"Simunation/ADVANCE_SIMUNATION_FAILED\";\nexport const RESET_ADVANCE_SIMUNATION_DATA = \"Simunation/RESET_ADVANCE_SIMUNATION_DATA\";\nexport const GET_SIMUNATION_STANDINGS = \"Simunation/GET_SIMUNATION_STANDINGS\";\nexport const GET_SIMUNATION_STANDINGS_SUCCESSFUL = \"Simunation/GET_SIMUNATION_STANDINGS_SUCCESSFUL\";\nexport const GET_SIMUNATION_STANDINGS_FAILED = \"Simunation/GET_SIMUNATION_STANDINGS_FAILED\";\nexport const GET_SIMUNATION_REGISTERED_STUDENTS = \"Simunation/GET_SIMUNATION_REGISTERED_STUDENTS\";\nexport const GET_SIMUNATION_REGISTERED_STUDENTS_SUCCESSFUL = \"Simunation/GET_SIMUNATION_REGISTERED_STUDENTS_SUCCESSFUL\";\nexport const GET_SIMUNATION_REGISTERED_STUDENTS_FAILED = \"Simunation/GET_SIMUNATION_REGISTERED_STUDENTS_FAILED\";\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n simulationDetails: {\n data: null,\n outcome: null,\n },\n simulationStandings: {\n payload: null,\n outcome: null,\n },\n simulationRegisteredStudents: {\n payload: null,\n outcome: null,\n },\n advanceSimunationSuccess: null,\n loadingDetails: null,\n loadingAdvanceSimunation: null,\n loadingRegisteredStudents: null,\n loadingStandings: null,\n getSimulationDetailsError: \"\",\n getStandingsError: \"\",\n getRegisteredStudentsError: \"\",\n advanceSimunationErrorMessage: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.GET_SIMUNATION_DETAILS:\n return {\n ...state,\n loadingDetails: true,\n getSimulationDetailsError: \"\",\n };\n case actions.GET_SIMUNATION_DETAILS_SUCCESSFUL:\n return {\n ...state,\n simulationDetails: action.payload,\n loadingDetails: false,\n };\n case actions.GET_SIMUNATION_DETAILS_FAILED:\n return {\n ...state,\n getSimulationDetailsError: action.payload.message,\n loadingDetails: false,\n };\n case actions.ADVANCE_SIMUNATION:\n return {\n ...state,\n loadingAdvanceSimunation: true,\n advanceSimunationErrorMessage: \"\",\n advanceSimunationSuccess: false,\n };\n case actions.ADVANCE_SIMUNATION_SUCCESSFUL:\n return {\n ...state,\n advanceSimunationSuccess: true,\n loadingAdvanceSimunation: false,\n };\n case actions.ADVANCE_SIMUNATION_FAILED:\n return {\n ...state,\n advanceSimunationErrorMessage: action.payload.message,\n loadingAdvanceSimunation: false,\n };\n case actions.RESET_ADVANCE_SIMUNATION_DATA:\n return {\n ...state,\n advanceSimunationSuccess: null,\n advanceSimunationErrorMessage: \"\",\n loadingAdvanceSimunation: null,\n };\n case actions.GET_SIMUNATION_STANDINGS:\n return {\n ...state,\n loadingStandings: true,\n getStandingsError: \"\",\n };\n case actions.GET_SIMUNATION_STANDINGS_SUCCESSFUL:\n return {\n ...state,\n simulationStandings: action.payload,\n loadingStandings: false,\n };\n case actions.GET_SIMUNATION_STANDINGS_FAILED:\n return {\n ...state,\n getStandingsError: action.payload.message,\n loadingStandings: false,\n };\n case actions.GET_SIMUNATION_REGISTERED_STUDENTS:\n return {\n ...state,\n loadingRegisteredStudents: true,\n getRegisteredStudentsError: \"\",\n };\n case actions.GET_SIMUNATION_REGISTERED_STUDENTS_SUCCESSFUL:\n return {\n ...state,\n simulationRegisteredStudents: action.payload,\n loadingRegisteredStudents: false,\n };\n case actions.GET_SIMUNATION_REGISTERED_STUDENTS_FAILED:\n return {\n ...state,\n getRegisteredStudentsError: action.payload.message,\n loadingRegisteredStudents: false,\n };\n default:\n return state;\n }\n}\n","import { sendGetRequest, sendPostRequest } from \"../services/FetchService\";\nimport * as FETCHAPI from \"../constants/FetchApi\";\n\nexport const getSimunationDetail = (simulationId) => {\n return sendGetRequest(FETCHAPI.GET_SIMULATION_DETAIL_SIMUNATION, simulationId);\n};\n\nexport const advanceSimunationAction = (simulationId) => {\n return sendPostRequest(FETCHAPI.ADVANCE_SIMULATION_SIMUNATION, simulationId);\n};\n\nexport const prepareCustomResponse = (response, action, emptyError) => {\n let customResponse = null;\n if (response.data.outcome) {\n customResponse = {\n type: `${action}_SUCCESSFUL`,\n payload: response.data,\n };\n } else {\n const data = {\n message: response.data.message,\n };\n customResponse = {\n type: `${action}_FAILED`,\n payload: data,\n };\n }\n return customResponse;\n};\n\nexport const prepareCustomListResponse = (response, action, emptyError, areStandings) => {\n let customResponse = null;\n if (response.data.outcome && response.data.payload.length === 0) {\n const data = {\n message: emptyError,\n };\n customResponse = {\n type: `${action}_FAILED`,\n payload: data,\n };\n }\n\n if (response.data.outcome && response.data.payload.length > 0) {\n if (areStandings) {\n customResponse = {\n type: `${action}_SUCCESSFUL`,\n payload: formatStandingsItems(response.data),\n };\n } else {\n customResponse = {\n type: `${action}_SUCCESSFUL`,\n payload: response.data,\n };\n }\n }\n\n if (!response.data.outcome) {\n const data = {\n message: response.data.message,\n };\n customResponse = {\n type: `${action}_FAILED`,\n payload: data,\n };\n }\n return customResponse;\n};\n\nexport const getStandings = (simulationName) => {\n return sendGetRequest(`${FETCHAPI.GET_STANDINGS_SIMUNATION}${simulationName}`, \"\");\n};\n\nconst formatStandingsItems = (standings) => {\n let newPayload = [];\n if (standings) {\n standings.payload.forEach((standing) => {\n const newStanding = {\n cash: numberWithCommas(standing.cash),\n gdp: formatToPercentage(standing.gdp),\n spi: formatToPercentage(standing.spi),\n };\n newPayload.push(Object.assign(standing, newStanding));\n });\n }\n\n function numberWithCommas(cash) {\n return `${Math.round(cash).toLocaleString()}.00`;\n }\n\n function formatToPercentage(number) {\n return `${(number * 100).toFixed(2)} %`;\n }\n\n const newData = Object.assign(standings, { payload: newPayload });\n\n return newData;\n};\n\nexport const createSimulation = (postData) => {\n return sendPostRequest(FETCHAPI.SIMUNATION_CREATE_SIMULATION, postData);\n};\n\nexport const getRegisteredStudents = (simulationName) => {\n return sendGetRequest(`${FETCHAPI.GET_REGISTERED_STUDENTS_SIMUNATION}${simulationName}`, \"\");\n};\n","import * as actions from \"./action-types\";\nimport * as simunationService from \"../../services/SimunationService\";\n\nexport const getSimulationDetails = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_SIMUNATION_DETAILS });\n const simulationDetailsResponse = simunationService.getSimunationDetail(simulationId);\n simulationDetailsResponse\n .then((details) => {\n if (details) {\n const data = simunationService.prepareCustomResponse(details, actions.GET_SIMUNATION_DETAILS, \"\");\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorFetchDetails\",\n };\n dispatch({\n type: actions.GET_SIMUNATION_DETAILS_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const advanceSimunationAction = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actions.ADVANCE_SIMUNATION });\n const advanceSimunationResponse = simunationService.advanceSimunationAction(simulationId);\n advanceSimunationResponse\n .then((response) => {\n if (response) {\n const data = simunationService.prepareCustomResponse(response, actions.ADVANCE_SIMUNATION, \"\");\n dispatch(data);\n }\n })\n .catch((error) => {\n let response = \"\";\n if (error.code === 500) {\n response = {\n message: \"errorSimultaneousChangeRequest\",\n };\n } else {\n response = {\n message: \"errorAdvancingSimulation\",\n };\n }\n dispatch({\n type: actions.ADVANCE_SIMUNATION_FAILED,\n payload: response,\n });\n });\n };\n};\n\nexport const resetAdvancedSimunationData = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_ADVANCE_SIMUNATION_DATA });\n };\n};\n\nexport const getStandings = (simulationName) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_SIMUNATION_STANDINGS });\n const standingsResponse = simunationService.getStandings(simulationName);\n standingsResponse\n .then((standings) => {\n if (standings) {\n const data = simunationService.prepareCustomListResponse(\n standings,\n actions.GET_SIMUNATION_STANDINGS,\n \"notStandingsList\",\n true\n );\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorFetchStandings\",\n };\n dispatch({\n type: actions.GET_SIMUNATION_STANDINGS_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const getRegisteredStudents = (simulationName) => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_SIMUNATION_REGISTERED_STUDENTS });\n const studentsResponse = simunationService.getRegisteredStudents(simulationName);\n studentsResponse\n .then((students) => {\n if (students) {\n const data = simunationService.prepareCustomListResponse(\n students,\n actions.GET_SIMUNATION_REGISTERED_STUDENTS,\n \"notStudentList\",\n false\n );\n dispatch(data);\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorFetchStudents\",\n };\n dispatch({\n type: actions.GET_SIMUNATION_REGISTERED_STUDENTS_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const CHECK_STORAGE_INFORMATION = \"SimunationQuestionnaire/CHECK_STORAGE_INFORMATION\";\nexport const UPDATE_INSTITUTION_STUDENTS_NUMBER = \"SimunationQuestionnaire/UPDATE_INSTITUTION_STUDENTS_NUMBER\";\nexport const UPDATE_SIMULATION_INFORMATION = \"SimunationQuestionnaire/UPDATE_SIMULATION_INFORMATION\";\nexport const UPDATE_TRANSACTION_DATA = \"SimunationQuestionnaire/UPDATE_TRANSACTION_DATA\";\nexport const RESET_QUESTIONNAIRE_STORE = \"SimunationQuestionnaire/RESET_QUESTIONNAIRE_STORE\";\nexport const SIMUNATION_CREATE_SIMULATION = \"SimunationQuestionnaire/SIMUNATION_CREATE_SIMULATION\";\nexport const SIMUNATION_CREATE_SIMULATION_SUCCESSFUL =\n \"SimunationQuestionnaire/SIMUNATION_CREATE_SIMULATION_SUCCESSFUL\";\nexport const SIMUNATION_CREATE_SIMULATION_FAILED = \"SimunationQuestionnaire/SIMUNATION_CREATE_SIMULATION_FAILED\";\nexport const CHECK_STORAGE_CREATED_SIMUNATION = \"SimunationQuestionnaire/CHECK_STORAGE_CREATED_SIMUNATION\";\nexport const VALIDATE_DISCOUNT_CODE = \"SimunationQuestionnaire/VALIDATE_DISCOUNT_CODE\";\nexport const VALIDATE_DISCOUNT_CODE_SUCCESSFUL = \"SimunationQuestionnaire/VALIDATE_DISCOUNT_CODE_SUCCESSFUL\";\nexport const VALIDATE_DISCOUNT_CODE_FAILED = \"SimunationQuestionnaire/VALIDATE_DISCOUNT_CODE_FAILED\";\nexport const CONFIRM_PAYMENT_START = \"SimunationQuestionnaire/CONFIRM_PAYMENT_START\";\nexport const CONFIRM_PAYMENT_SUCCESS = \"SimunationQuestionnaire/CONFIRM_PAYMENT_SUCCESS\";\nexport const CONFIRM_PAYMENT_FAIL = \"SimunationQuestionnaire/CONFIRM_PAYMENT_FAIL\";\nexport const RESET_DISCOUNT_CODE = \"SimunationQuestionnaire/RESET_DISCOUNT_CODE\";\n","import { generateDiscountCodeStatus } from \"../../utilities/discountCodeUtils\";\nimport { confirmPaymentStatuses, discountCodeStatuses } from \"../../utilities/storeStatusDictionary\";\nimport * as actions from \"./action-types\";\n\nexport const initialState = {\n numberOfStudents: 0,\n isInstitution: true,\n knowsDateSelected: true,\n advanceSimunation: true,\n simulationName: \"\",\n paymentId: \"\",\n purchasedSimulationName: \"\",\n loadingCreateSimulation: null,\n simulationCreatedData: null,\n createdSimulationMessage: \"simulationAddedSuccessfully\",\n createSimulationErrorMessage: \"\",\n discountCode: {\n status: discountCodeStatuses.initial,\n discountCode: \"\",\n discountCodeMessage: \"\",\n discountedPrice: null,\n },\n confirmPayment: {\n status: confirmPaymentStatuses.initial,\n errorMessage: \"\",\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.CHECK_STORAGE_INFORMATION: {\n const { discountCode, discountedPrice } = action.payload.discountCode || initialState.discountCode;\n\n return {\n ...state,\n ...action.payload,\n discountCode: {\n ...state.discountCode,\n discountCode: discountCode,\n discountedPrice: discountedPrice,\n status: generateDiscountCodeStatus(discountCode, discountedPrice),\n },\n };\n }\n case actions.UPDATE_INSTITUTION_STUDENTS_NUMBER:\n return {\n ...state,\n ...action.payload,\n };\n case actions.UPDATE_SIMULATION_INFORMATION:\n return {\n ...state,\n ...action.payload,\n };\n case actions.UPDATE_TRANSACTION_DATA:\n return {\n ...state,\n ...action.payload,\n };\n case actions.RESET_QUESTIONNAIRE_STORE:\n return {\n ...initialState,\n };\n case actions.SIMUNATION_CREATE_SIMULATION:\n return {\n ...initialState,\n loadingCreateSimulation: true,\n createSimulationErrorMessage: \"\",\n activationCode: \"\",\n };\n case actions.SIMUNATION_CREATE_SIMULATION_SUCCESSFUL:\n return {\n ...initialState,\n loadingCreateSimulation: false,\n simulationCreatedData: action.payload,\n };\n case actions.SIMUNATION_CREATE_SIMULATION_FAILED:\n return {\n ...initialState,\n loadingCreateSimulation: false,\n createSimulationErrorMessage: action.payload,\n };\n case actions.CHECK_STORAGE_CREATED_SIMUNATION:\n return {\n ...initialState,\n simulationCreatedData: action.payload,\n };\n case actions.VALIDATE_DISCOUNT_CODE:\n return {\n ...state,\n discountCode: {\n status: discountCodeStatuses.loading,\n discountCode: \"\",\n discountCodeMessage: \"\",\n discountedPrice: null,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_SUCCESSFUL: {\n const { discountCode, discountedPrice } = action.payload;\n return {\n ...state,\n discountCode: {\n status: generateDiscountCodeStatus(discountCode, discountedPrice),\n discountCode: discountCode,\n discountCodeMessage: \"\",\n discountedPrice: discountedPrice,\n },\n };\n }\n case actions.VALIDATE_DISCOUNT_CODE_FAILED:\n return {\n ...state,\n discountCode: {\n ...initialState.discountCode,\n discountCodeMessage: action.payload.discountCodeMessage,\n },\n };\n case actions.CONFIRM_PAYMENT_START: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.loading,\n errorMessage: \"\",\n },\n payment: {\n paymentSummaryId: null,\n },\n };\n }\n case actions.CONFIRM_PAYMENT_FAIL: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.fail,\n errorMessage: action.payload,\n },\n payment: {\n paymentSummaryId: null,\n },\n };\n }\n case actions.CONFIRM_PAYMENT_SUCCESS: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.success,\n errorMessage: \"\",\n },\n paymentId: action.payload.paymentId,\n };\n }\n case actions.RESET_DISCOUNT_CODE: {\n return {\n ...state,\n discountCode: { ...initialState.discountCode },\n };\n }\n default:\n return state;\n }\n}\n","import { setStorage, removeStorage, mergeDataToStorage } from \"./StorageService\";\nimport { sendGetRequest } from \"../services/FetchService\";\nimport * as LOCALSTORAGE from \"../constants/LocalStorage\";\nimport * as FETCHAPI from \"../constants/FetchApi\";\n\nexport const prepareSimulationData = (simunationQuestionnaire) => {\n const { simulationName, numberOfStudents, paymentId, advanceSimunation, discountCode } = simunationQuestionnaire;\n const postData = {\n Name: simulationName,\n NumberOfStudents: numberOfStudents,\n ProfessorManagedProgress: advanceSimunation,\n transactionId: paymentId,\n discountCode: discountCode?.discountCode || \"\",\n };\n return postData;\n};\n\nexport const handleStorage = (activationCode, purchasedData) => {\n if (!purchasedData) {\n const data = {\n payload: activationCode,\n };\n removeStorage(LOCALSTORAGE.simunationQuestionnaire);\n setStorage(LOCALSTORAGE.simulationSimunationCreated, data);\n } else {\n mergeDataToStorage(LOCALSTORAGE.simunationQuestionnaire, purchasedData);\n }\n};\n\nexport const validateSimunationDiscountCode = (discountCode) => {\n return sendGetRequest(FETCHAPI.GET_SIMUNATION_VALIDATE_DISCOUNT_CODE, discountCode);\n};\n\nexport const prepareCustomResponse = (response, action, discountCode) => {\n let customResponse = null;\n if (response.data.outcome === true && response.data.payload?.validDiscountCode === true) {\n customResponse = {\n type: `${action}_SUCCESSFUL`,\n payload: {\n discountedPrice: response.data.payload.discountedPrice,\n discountCode: discountCode,\n },\n };\n } else {\n customResponse = {\n type: `${action}_FAILED`,\n payload: {\n discountCodeMessage: response.data.message,\n },\n };\n }\n return customResponse;\n};\n","import * as actions from \"./action-types\";\nimport { getStorage, setStorage, mergeDataToStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport * as simunationService from \"../../services/SimunationService\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\nimport * as simunationQuestionnaireService from \"../../services/SimunationQuestionnaireService\";\nimport { sendPostRequest } from \"../../services/FetchService\";\n\nexport const checkStorageSimunationInformation = () => {\n return async function (dispatch) {\n const cachedQuestionnaireInformation = getStorage(LOCALSTORAGE.simunationQuestionnaire);\n if (cachedQuestionnaireInformation) {\n dispatch({\n type: actions.CHECK_STORAGE_INFORMATION,\n payload: cachedQuestionnaireInformation,\n });\n }\n return true;\n };\n};\n\nexport const cacheSimunationQuestionnaireData = (data) => {\n return async function (dispatch) {\n setStorage(LOCALSTORAGE.simunationQuestionnaire, data);\n dispatch({\n type: actions.UPDATE_INSTITUTION_STUDENTS_NUMBER,\n payload: data,\n });\n };\n};\n\nexport const updateSimulationInformation = (data) => {\n return async function (dispatch) {\n dispatch({ type: actions.UPDATE_SIMULATION_INFORMATION, payload: data });\n return true;\n };\n};\n\nexport const updateTransactionSimunationData = (data) => {\n return async function (dispatch) {\n dispatch({ type: actions.UPDATE_TRANSACTION_DATA, payload: data });\n };\n};\n\nexport const resetSimunationQuestionnaireStore = () => {\n return async function (dispatch) {\n dispatch({\n type: actions.RESET_QUESTIONNAIRE_STORE,\n });\n };\n};\n\nexport const createSimulation = (postData) => {\n return async function (dispatch) {\n dispatch({ type: actions.SIMUNATION_CREATE_SIMULATION });\n const createSimunationResponse = simunationService.createSimulation(postData);\n createSimunationResponse\n .then((simunationResponse) => {\n if (simunationResponse.data.outcome) {\n dispatch({\n type: actions.SIMUNATION_CREATE_SIMULATION_SUCCESSFUL,\n payload: simunationResponse.data,\n });\n } else {\n dispatch({\n type: actions.SIMUNATION_CREATE_SIMULATION_FAILED,\n payload: simunationResponse.data.message,\n });\n }\n })\n .catch((error) => {\n if (error) {\n const response = {\n message: \"errorCreatingSimulation\",\n };\n dispatch({\n type: actions.SIMUNATION_CREATE_SIMULATION_FAILED,\n payload: response,\n });\n }\n });\n };\n};\n\nexport const checkStorageSimunationCreated = () => {\n return async function (dispatch) {\n const storageData = getStorage(LOCALSTORAGE.simulationSimunationCreated);\n if (storageData) {\n const storagePayload = {\n outcome: true,\n payload: storageData.payload,\n };\n dispatch({\n type: actions.CHECK_STORAGE_CREATED_SIMUNATION,\n payload: storagePayload,\n });\n }\n };\n};\n\nexport const validateSimunationDiscountCode = (discountCode) => {\n return async function (dispatch) {\n dispatch({ type: actions.VALIDATE_DISCOUNT_CODE });\n const discountCodePromise = simunationQuestionnaireService.validateSimunationDiscountCode(discountCode.code);\n discountCodePromise\n .then((response) => {\n if (response.data.outcome) {\n const data = simunationQuestionnaireService.prepareCustomResponse(\n response,\n actions.VALIDATE_DISCOUNT_CODE,\n discountCode.code\n );\n mergeDataToStorage(LOCALSTORAGE.simunationQuestionnaire, {\n discountCode: { discountCode: data.payload },\n });\n dispatch(data);\n } else {\n dispatch({\n type: actions.VALIDATE_DISCOUNT_CODE_FAILED,\n message: response.data.message,\n });\n }\n })\n .catch((error) => {\n if (error) {\n dispatch({\n type: actions.VALIDATE_DISCOUNT_CODE_FAILED,\n message: \"errorValidatingDiscountCode\",\n });\n }\n });\n };\n};\n\nexport const simunationConfirmPayment = (paymentIntentId) => {\n return async function (dispatch) {\n dispatch({ type: actions.CONFIRM_PAYMENT_START });\n try {\n const response = await sendPostRequest(API_PATHS.SIMUNATION_CONFIRM_PAYMENT, { paymentIntentId });\n if (!response.data.outcome) {\n dispatch({ type: actions.CONFIRM_PAYMENT_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actions.CONFIRM_PAYMENT_SUCCESS, payload: response.data.payload });\n } catch (error) {\n dispatch({ type: actions.CONFIRM_PAYMENT_FAIL, payload: error });\n }\n };\n};\n\nexport const simunationResetDiscountCode = () => {\n return async function (dispatch) {\n dispatch({ type: actions.RESET_DISCOUNT_CODE });\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const RESET_SUPPLYCHAIN_BUY_SIMULATION_DEFAULTS =\n \"SUPPLYCHAIN_BUY_SIMULATION/RESET_SUPPLYCHAIN_BUY_SIMULATION_DEFAULTS\";\nexport const COMMIT_PURCHASE_FORM_DATA = \"SUPPLYCHAIN_BUY_SIMULATION/COMMIT_PURCHASE_FORM_DATA\";\nexport const RESTORE_STORAGE_PURCHASE_INFORMATION = \"SUPPLYCHAIN_BUY_SIMULATION/RESTORE_STORAGE_PURCHASE_INFORMATION\";\nexport const UPDATE_TRANSACTION_DATA = \"SUPPLYCHAIN_BUY_SIMULATION/UPDATE_TRANSACTION_DATA\";\nexport const CREATE_SIMULATION_REQUEST_START = \"SUPPLYCHAIN_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_START\";\nexport const CREATE_SIMULATION_REQUEST_SUCCESS = \"SUPPLYCHAIN_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_SUCCESS\";\nexport const CREATE_SIMULATION_REQUEST_FAIL = \"SUPPLYCHAIN_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_FAIL\";\nexport const RESET_CREATE_SIMULATION_DEFAULTS = \"SUPPLYCHAIN_BUY_SIMULATION/RESET_CREATE_SIMULATION_DEFAULTS\";\nexport const VALIDATE_DISCOUNT_CODE = \"SUPPLYCHAIN_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE\";\nexport const VALIDATE_DISCOUNT_CODE_FAILED = \"SUPPLYCHAIN_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_FAILED\";\nexport const VALIDATE_DISCOUNT_CODE_SUCCESS = \"SUPPLYCHAIN_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_SUCCESS\";\nexport const VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS =\n \"SUPPLYCHAIN_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS\";\nexport const VALIDATE_DISCOUNT_CODE_RESET = \"SUPPLYCHAIN_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_RESET\";\nexport const CHECK_STUDENT_PAYMENT = \"SUPPLYCHAIN_BUY_SIMULATION/CHECK_STUDENT_PAYMENT\";\nexport const CHECK_STUDENT_PAYMENT_SUCCESSFUL = \"SUPPLYCHAIN_BUY_SIMULATION/CHECK_STUDENT_PAYMENT_SUCCESSFUL\";\nexport const CHECK_STUDENT_PAYMENT_FAILED = \"SUPPLYCHAIN_BUY_SIMULATION/CHECK_STUDENT_PAYMENT_FAILED\";\nexport const CONFIRM_PAYMENT_START = \"SUPPLYCHAIN_BUY_SIMULATION/CONFIRM_PAYMENT_START\";\nexport const CONFIRM_PAYMENT_SUCCESS = \"SUPPLYCHAIN_BUY_SIMULATION/CONFIRM_PAYMENT_SUCCESS\";\nexport const CONFIRM_PAYMENT_FAIL = \"SUPPLYCHAIN_BUY_SIMULATION/CONFIRM_PAYMENT_FAIL\";\n","import { generateDiscountCodeStatus } from \"../../utilities/discountCodeUtils\";\nimport { confirmPaymentStatuses, discountCodeStatuses } from \"../../utilities/storeStatusDictionary\";\nimport * as actions from \"./action-types\";\n\nexport const initialState = {\n buyForm: {\n numberOfStudents: 0,\n },\n createSimulation: {\n loading: false,\n errorMessage: \"\",\n simulationId: \"\",\n simulationCreated: false,\n shortLink: null,\n },\n payment: {\n paymentSummaryId: \"\",\n },\n discountCode: {\n status: discountCodeStatuses.initial,\n discountedPrice: null,\n discountCodeMessage: \"\",\n discountCode: \"\",\n },\n studentHasAlreadyPaid: {\n loading: false,\n studentHasPaid: null,\n errorMessage: \"\",\n },\n confirmPayment: {\n status: confirmPaymentStatuses.initial,\n errorMessage: \"\",\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.COMMIT_PURCHASE_FORM_DATA:\n return {\n ...state,\n buyForm: { ...action.payload },\n };\n case actions.RESTORE_STORAGE_PURCHASE_INFORMATION:\n const { discountCode, discountedPrice } = action.payload;\n return {\n ...state,\n buyForm: {\n numberOfStudents: action.payload.numberOfStudents,\n },\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId ?? \"\",\n },\n discountCode: {\n ...state.discountCode,\n status: generateDiscountCodeStatus(discountCode, discountedPrice),\n discountCode: discountCode ?? \"\",\n discountedPrice: discountedPrice ?? null,\n },\n };\n case actions.UPDATE_TRANSACTION_DATA:\n return {\n ...state,\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_START:\n return {\n ...state,\n createSimulation: {\n ...state.createSimulation,\n errorMessage: \"\",\n loading: true,\n shortLink: null,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_SUCCESS:\n return {\n ...state,\n createSimulation: {\n loading: false,\n simulationId: action.payload.simulationId,\n errorMessage: \"\",\n simulationCreated: true,\n shortLink: action.payload.shortLink,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_FAIL:\n return {\n ...state,\n createSimulation: {\n ...state.createSimulation,\n loading: false,\n errorMessage: action.payload,\n shortLink: null,\n },\n };\n case actions.RESET_CREATE_SIMULATION_DEFAULTS:\n return {\n ...state,\n createSimulation: { ...initialState[\"createSimulation\"] },\n };\n case actions.RESET_SUPPLYCHAIN_BUY_SIMULATION_DEFAULTS:\n return {\n ...initialState,\n };\n case actions.VALIDATE_DISCOUNT_CODE:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n status: discountCodeStatuses.loading,\n discountCodeMessage: \"\",\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_SUCCESS:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n status: discountCodeStatuses.activated,\n discountCodeMessage: \"\",\n discountedPrice: action.payload.discountedPrice,\n discountCode: action.payload.discountCode,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS:\n return {\n ...state,\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId,\n },\n discountCode: {\n ...state.discountCode,\n status: discountCodeStatuses.activatedPaid,\n discountCodeMessage: \"\",\n discountedPrice: action.payload.discountedPrice,\n discountCode: action.payload.discountCode,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_FAILED:\n return {\n ...state,\n discountCode: {\n ...initialState.discountCode,\n discountCodeMessage: action.payload,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_RESET:\n return {\n ...state,\n discountCode: {\n ...initialState.discountCode,\n },\n };\n case actions.CHECK_STUDENT_PAYMENT:\n return {\n ...state,\n studentHasAlreadyPaid: {\n loading: true,\n studentHasPaid: null,\n errorMessage: \"\",\n },\n };\n case actions.CHECK_STUDENT_PAYMENT_SUCCESSFUL:\n return {\n ...state,\n studentHasAlreadyPaid: {\n loading: false,\n studentHasPaid: action.payload,\n errorMessage: \"\",\n },\n };\n case actions.CHECK_STUDENT_PAYMENT_FAILED:\n return {\n ...state,\n studentHasAlreadyPaid: {\n loading: false,\n studentHasPaid: false,\n errorMessage: action.payload,\n },\n };\n case actions.CONFIRM_PAYMENT_START: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.loading,\n errorMessage: \"\",\n },\n payment: {\n paymentSummaryId: null,\n },\n };\n }\n case actions.CONFIRM_PAYMENT_FAIL: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.fail,\n errorMessage: action.payload,\n },\n payment: {\n paymentSummaryId: null,\n },\n };\n }\n case actions.CONFIRM_PAYMENT_SUCCESS: {\n return {\n ...state,\n confirmPayment: {\n status: confirmPaymentStatuses.success,\n errorMessage: \"\",\n },\n payment: {\n paymentSummaryId: action.payload,\n },\n };\n }\n default:\n return state;\n }\n}\n","import * as actionTypes from \"./action-types\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { getStorage, setStorage, removeStorage, mergeDataToStorage } from \"../../services/StorageService\";\nimport { sendGetRequest, sendPostRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\nimport { sentryReportEvent } from \"../../services/SentryReportService\";\n\nexport const restoreSupplyChainPurchaseInformationFromStorage = () => {\n return async function (dispatch) {\n const cachedQuestionnaireInformation = getStorage(LOCALSTORAGE.supplychainQuestionnaire);\n if (cachedQuestionnaireInformation) {\n dispatch({\n type: actionTypes.RESTORE_STORAGE_PURCHASE_INFORMATION,\n payload: cachedQuestionnaireInformation,\n });\n }\n return true;\n };\n};\n\nexport const commitSupplyChainBuyFormData = (data) => {\n return async function (dispatch) {\n setStorage(LOCALSTORAGE.supplychainQuestionnaire, data);\n dispatch({\n type: actionTypes.COMMIT_PURCHASE_FORM_DATA,\n payload: data,\n });\n };\n};\n\nexport const resetCreateSimulationDefaults = () => {\n return { type: actionTypes.RESET_CREATE_SIMULATION_DEFAULTS };\n};\n\nexport const resetSupplyChainBuySimulationStoreDefaults = () => {\n removeStorage(LOCALSTORAGE.supplychainQuestionnaire);\n return {\n type: actionTypes.RESET_SUPPLYCHAIN_BUY_SIMULATION_DEFAULTS,\n };\n};\n\nexport const updateTransactionSupplyChainData = (transactionData) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.UPDATE_TRANSACTION_DATA, payload: transactionData });\n };\n};\n\nexport const supplychainCreateSimulation = (createSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_START });\n try {\n const response = await sendPostRequest(API_PATHS.SUPPLY_CHAIN_CREATE_SIMULATION, createSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: err });\n }\n };\n};\n\nexport const supplychainCreateAutomaticSimulation = (createAutomaticSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_START });\n try {\n const response = await sendPostRequest(\n API_PATHS.SUPPLY_CHAIN_CREATE_AUTOMATIC_SIMULATION,\n createAutomaticSimulationRequest\n );\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainValidateDiscountCode = (discountCode) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE });\n try {\n const discountCodeResponse = await sendPostRequest(API_PATHS.SUPPLY_CHAIN_VALIDATE_DISCOUNT_CODE, discountCode);\n if (!discountCodeResponse.data?.payload?.validDiscountCode) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_FAILED, payload: discountCodeResponse.data.message });\n return;\n }\n const payload = {\n discountCode: discountCodeResponse.data.payload.discountCode,\n discountedPrice: discountCodeResponse.data.payload.discountedPrice,\n };\n mergeDataToStorage(LOCALSTORAGE.supplychainQuestionnaire, payload);\n\n if (discountCodeResponse.data?.payload?.paymentSummaryId) {\n payload.paymentSummaryId = discountCodeResponse.data.payload.paymentSummaryId;\n mergeDataToStorage(LOCALSTORAGE.supplychainQuestionnaire, {\n paymentSummaryId: discountCodeResponse.data.payload.paymentSummaryId,\n });\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS, payload: payload });\n return;\n }\n\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_SUCCESS, payload: payload });\n } catch (err) {\n const sentryTag = {\n name: \"supplychainDiscountCodeFailed\",\n data: discountCode,\n };\n sentryReportEvent(err, sentryTag);\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_FAILED, payload: err });\n }\n };\n};\n\nexport const supplyChainResetDiscountCode = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_RESET });\n };\n};\n\nexport const checkIfStudentHasPaid = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT });\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_STUDENT_HAS_PAID, simulationId);\n if (response.data.outcome === false && response.data.message === \"StudentHasPaidController_StudentHasNotPaid\") {\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT_SUCCESSFUL, payload: false });\n return;\n }\n\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT_FAILED, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT_SUCCESSFUL, payload: response.data.outcome });\n } catch (err) {\n dispatch({ type: actionTypes.CHECK_STUDENT_PAYMENT_FAILED, payload: err });\n }\n };\n};\n\nexport const supplyChainConfirmPayment = (paymentIntentId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_START });\n try {\n const response = await sendPostRequest(API_PATHS.SUPPLY_CHAIN_CONFIRM_PAYMENT, { paymentIntentId });\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_SUCCESS, payload: response.data.payload });\n } catch (error) {\n dispatch({ type: actionTypes.CONFIRM_PAYMENT_FAIL, payload: error });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const SUPPLY_CHAIN_JOIN_SIMULATION_START = \"SUPPLY_CHAIN_JOIN_SIMULATION/SUPPLY_CHAIN_JOIN_SIMULATION_START\";\nexport const SUPPLY_CHAIN_JOIN_SIMULATION_FAIL = \"SUPPLY_CHAIN_JOIN_SIMULATION/SUPPLY_CHAIN_JOIN_SIMULATION_FAILED\";\nexport const SUPPLY_CHAIN_JOIN_SIMULATION_SUCCESS = \"SUPPLY_CHAIN_JOIN_SIMULATION/SUPPLY_CHAIN_JOIN_SIMULATION_SUCCESS\";\n","import * as actionTypes from \"./action-types\";\n\nexport const initialState = {\n code: \"\",\n loading: false,\n errorMessage: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actionTypes.SUPPLY_CHAIN_JOIN_SIMULATION_START:\n return {\n ...state,\n loading: true,\n errorMessage: \"\",\n };\n case actionTypes.SUPPLY_CHAIN_JOIN_SIMULATION_FAIL:\n return {\n ...state,\n loading: false,\n errorMessage: action.payload,\n };\n case actionTypes.SUPPLY_CHAIN_JOIN_SIMULATION_SUCCESS:\n return {\n ...state,\n loading: false,\n code: action.payload,\n };\n default:\n return state;\n }\n}\n","import * as API_PATHS from \"../../constants/FetchApi.js\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { sendPostRequest } from \"../../services/FetchService.js\";\nimport { removeStorage } from \"../../services/StorageService\";\nimport * as actionTypes from \"./action-types\";\n\nexport const supplyChainJoinSimulation = (joinSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_JOIN_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.SUPPLY_CHAIN_JOIN_SIMULATION, joinSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_JOIN_SIMULATION_FAIL, payload: response.data.message });\n return;\n }\n removeStorage(LOCALSTORAGE.supplyChainJoinSimulationId);\n dispatch({ type: actionTypes.SUPPLY_CHAIN_JOIN_SIMULATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_JOIN_SIMULATION_FAIL, payload: err });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const SUPPLY_CHAIN_GET_SIMULATION_DETAILS_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_SIMULATION_DETAILS_START\";\nexport const SUPPLY_CHAIN_GET_SIMULATION_DETAILS_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_SIMULATION_DETAILS_FAILED\";\nexport const SUPPLY_CHAIN_GET_SIMULATION_DETAILS_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_SIMULATION_DETAILS_SUCCESS\";\nexport const SUPPLY_CHAIN_RESET_REQUESTS_STATE = \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_RESET_REQUESTS_STATE\";\nexport const SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_START\";\nexport const SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_SUCCESS\";\nexport const SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_FAIL\";\nexport const SUPPLY_CHAIN_ADVANCE_SIMULATION_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_ADVANCE_SIMULATION_START\";\nexport const SUPPLY_CHAIN_ADVANCE_SIMULATION_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_ADVANCE_SIMULATION_FAILED\";\nexport const SUPPLY_CHAIN_ADVANCE_SIMULATION_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_ADVANCE_SIMULATION_SUCCESS\";\nexport const SUPPLY_CHAIN_START_SIMULATION_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_START_SIMULATION_START\";\nexport const SUPPLY_CHAIN_START_SIMULATION_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_START_SIMULATION_FAILED\";\nexport const SUPPLY_CHAIN_START_SIMULATION_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_START_SIMULATION_SUCCESS\";\nexport const SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_SUCCESS\";\nexport const SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_FAIL\";\nexport const SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_START\";\nexport const SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_SUCCESS\";\nexport const SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_FAIL\";\nexport const SUPPLY_CHAIN_GET_PERFORMANCE_DATA_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_PERFORMANCE_DATA_START\";\nexport const SUPPLY_CHAIN_GET_PERFORMANCE_DATA_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_PERFORMANCE_DATA_FAILED\";\nexport const SUPPLY_CHAIN_GET_PERFORMANCE_DATA_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_PERFORMANCE_DATA_SUCCESS\";\nexport const SUPPLY_CHAIN_GET_DECISIONS_DATA_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_DECISIONS_DATA_START\";\nexport const SUPPLY_CHAIN_GET_DECISIONS_DATA_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_DECISIONS_DATA_FAILED\";\nexport const SUPPLY_CHAIN_GET_DECISIONS_DATA_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_DECISIONS_DATA_SUCCESS\";\nexport const SUPPLY_CHAIN_CREATE_NEXT_RUN_START = \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_CREATE_NEXT_RUN_START\";\nexport const SUPPLY_CHAIN_CREATE_NEXT_RUN_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_CREATE_NEXT_RUN_SUCCESS\";\nexport const SUPPLY_CHAIN_CREATE_NEXT_RUN_FAIL = \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_CREATE_NEXT_RUN_FAIL\";\nexport const SUPPLY_CHAIN_CREATE_NEXT_RUN_CLEAN = \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_CREATE_NEXT_RUN_CLEAN\";\n\nexport const SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_PROFESSOR_DETAILS_START\";\nexport const SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_PROFESSOR_DETAILS_SUCCESS\";\nexport const SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_PROFESSOR_DETAILS_FAIL\";\n\nexport const SUPPLY_CHAIN_MODIFY_SIMULATION_START =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_MODIFY_SIMULATION_START\";\nexport const SUPPLY_CHAIN_MODIFY_SIMULATION_SUCCESS =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_MODIFY_SIMULATION_SUCCESS\";\nexport const SUPPLY_CHAIN_MODIFY_SIMULATION_FAIL =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_MODIFY_SIMULATION_FAIL\";\nexport const SUPPLY_CHAIN_MODIFY_SIMULATION_RESET =\n \"SUPPLY_CHAIN_SIMULATION_DETAILS/SUPPLY_CHAIN_MODIFY_SIMULATION_RESET\";\n\nexport const SUPPLY_CHAIN_GET_DOCUMENTATION_START = \"CRISIS_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_DOCUMENTATION_START\";\nexport const SUPPLY_CHAIN_GET_DOCUMENTATION_SUCCESS =\n \"CRISIS_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_DOCUMENTATION_SUCCESS\";\nexport const SUPPLY_CHAIN_GET_DOCUMENTATION_FAIL = \"CRISIS_SIMULATION_DETAILS/SUPPLY_CHAIN_GET_DOCUMENTATION_FAIL\";\n","import * as actionTypes from \"./action-types\";\n\nexport const initialState = {\n simulationDetailsRequestStatus: {\n loading: false,\n errorMessage: \"\",\n detailsValid: false,\n },\n simulationDetails: {\n id: \"\",\n name: \"\",\n status: \"\",\n professorManagedProgress: false,\n gameMode: null,\n iterationNumber: 0,\n hasANextIteration: false,\n shortLink: null,\n },\n advanceSimulationRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: false,\n },\n startSimulationRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: false,\n },\n standings: {\n loading: false,\n errorMessage: \"\",\n success: null,\n teamMembers: null,\n simulationStandings: null,\n },\n registeredStudents: {\n loading: false,\n errorMessage: \"\",\n success: null,\n registeredStudents: null,\n },\n numberOfRegisteredStudentsStatus: {\n errorMessage: \"\",\n numberOfStudents: null,\n },\n simulationPerformanceDataRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: null,\n simulationName: null,\n currentStep: null,\n performanceData: null,\n },\n simulationDecisionsDataRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: null,\n simulationName: null,\n currentStep: null,\n decisionsData: null,\n },\n createNextRunStatus: {\n loading: false,\n errorMessage: \"\",\n success: null,\n },\n professorScenarios: {\n loading: false,\n errorMessage: \"\",\n success: null,\n scenarios: null,\n },\n modifySimulationStatus: {\n loading: false,\n errorMessage: \"\",\n success: null,\n },\n documentationStatus: {\n loading: false,\n errorMessage: \"\",\n documentation: [],\n success: null,\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actionTypes.SUPPLY_CHAIN_GET_SIMULATION_DETAILS_START:\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: true, errorMessage: \"\", detailsValid: false },\n };\n case actionTypes.SUPPLY_CHAIN_GET_SIMULATION_DETAILS_FAIL:\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: false, errorMessage: action.payload, detailsValid: false },\n };\n case actionTypes.SUPPLY_CHAIN_GET_SIMULATION_DETAILS_SUCCESS:\n const {\n id,\n name,\n status,\n professorManagedProgress,\n currentSimulationDay,\n startTime,\n endTime,\n paymentSummaryId,\n professorPaid,\n shortLink,\n iterationNumber,\n hasANextIteration,\n gameMode,\n pace,\n } = action.payload;\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: false, errorMessage: \"\", detailsValid: true },\n simulationDetails: {\n id,\n name,\n status,\n professorManagedProgress,\n currentSimulationDay,\n gameMode,\n iterationNumber,\n hasANextIteration,\n startTime,\n endTime,\n paymentSummaryId,\n professorPaid,\n shortLink,\n pace,\n },\n };\n case actionTypes.SUPPLY_CHAIN_RESET_REQUESTS_STATE:\n const { startSimulationRequestStatus, advanceSimulationRequestStatus } = initialState;\n return {\n ...state,\n startSimulationRequestStatus,\n advanceSimulationRequestStatus,\n };\n case actionTypes.SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_START:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_SUCCESS:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: false,\n success: true,\n registeredStudents: action.payload.registeredStudents,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_FAIL:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.SUPPLY_CHAIN_ADVANCE_SIMULATION_START:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: true, errorMessage: \"\", success: false },\n };\n case actionTypes.SUPPLY_CHAIN_ADVANCE_SIMULATION_FAIL:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: false, errorMessage: action.payload, success: false },\n };\n case actionTypes.SUPPLY_CHAIN_ADVANCE_SIMULATION_SUCCESS:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: false, errorMessage: \"\", success: true },\n };\n case actionTypes.SUPPLY_CHAIN_START_SIMULATION_START:\n return {\n ...state,\n startSimulationRequestStatus: { loading: true, errorMessage: \"\", success: false },\n };\n case actionTypes.SUPPLY_CHAIN_START_SIMULATION_FAIL:\n return {\n ...state,\n startSimulationRequestStatus: { loading: false, errorMessage: action.payload, success: false },\n };\n case actionTypes.SUPPLY_CHAIN_START_SIMULATION_SUCCESS:\n return {\n ...state,\n startSimulationRequestStatus: { loading: false, errorMessage: \"\", success: true },\n };\n case actionTypes.SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_SUCCESS:\n return {\n ...state,\n numberOfRegisteredStudentsStatus: {\n errorMessage: \"\",\n numberOfStudents: action.payload,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_FAIL:\n return {\n ...state,\n numberOfRegisteredStudentsStatus: {\n errorMessage: action.payload,\n numberOfStudents: null,\n },\n };\n\n case actionTypes.SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_START:\n return {\n ...state,\n standings: {\n loading: true,\n errorMessage: \"\",\n success: null,\n teamMembers: null,\n simulationStandings: null,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_SUCCESS:\n return {\n ...state,\n standings: {\n loading: false,\n errorMessage: \"\",\n success: true,\n teamMembers: action.payload.teamMembers,\n simulationStandings: action.payload.standings,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_FAIL:\n return {\n ...state,\n standings: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n teamMembers: null,\n simulationStandings: null,\n },\n };\n\n case actionTypes.SUPPLY_CHAIN_GET_PERFORMANCE_DATA_START:\n return {\n ...state,\n simulationPerformanceDataRequestStatus: {\n ...state.simulationPerformanceDataRequestStatus,\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_PERFORMANCE_DATA_SUCCESS:\n return {\n ...state,\n simulationPerformanceDataRequestStatus: {\n ...state.simulationPerformanceDataRequestStatus,\n loading: false,\n success: true,\n simulationName: action.payload.simulationName,\n currentStep: action.payload.currentStep,\n performanceData: action.payload.performanceData,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_PERFORMANCE_DATA_FAIL:\n return {\n ...state,\n simulationPerformanceDataRequestStatus: {\n ...state.simulationPerformanceDataRequestStatus,\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_DECISIONS_DATA_START:\n return {\n ...state,\n simulationDecisionsDataRequestStatus: {\n ...state.simulationDecisionsDataRequestStatus,\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_DECISIONS_DATA_SUCCESS:\n return {\n ...state,\n simulationDecisionsDataRequestStatus: {\n ...state.simulationDecisionsDataRequestStatus,\n loading: false,\n success: true,\n simulationName: action.payload.simulationName,\n currentStep: action.payload.currentStep,\n decisionsData: action.payload.decisionsData,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_DECISIONS_DATA_FAIL:\n return {\n ...state,\n simulationDecisionsDataRequestStatus: {\n ...state.simulationDecisionsDataRequestStatus,\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n\n case actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_START:\n return {\n ...state,\n createNextRunStatus: {\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_SUCCESS:\n return {\n ...state,\n createNextRunStatus: {\n loading: false,\n errorMessage: \"\",\n success: true,\n },\n };\n case actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_FAIL:\n return {\n ...state,\n createNextRunStatus: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_CLEAN:\n return {\n ...state,\n createNextRunStatus: { ...initialState.createNextRunStatus },\n };\n case actionTypes.SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_START:\n return {\n ...state,\n professorScenarios: {\n loading: true,\n errorMessage: \"\",\n success: null,\n scenarios: null,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_FAIL:\n return {\n ...state,\n professorScenarios: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n scenarios: null,\n },\n };\n case actionTypes.SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_SUCCESS:\n return {\n ...state,\n professorScenarios: {\n loading: false,\n errorMessage: \"\",\n success: true,\n scenarios: action.payload,\n },\n };\n case actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_START:\n return {\n ...state,\n modifySimulationStatus: {\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_FAIL:\n return {\n ...state,\n modifySimulationStatus: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_SUCCESS:\n return {\n ...state,\n modifySimulationStatus: {\n loading: false,\n errorMessage: \"\",\n success: true,\n },\n };\n case actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_RESET:\n return {\n ...state,\n modifySimulationStatus: { ...initialState.modifySimulationStatus },\n };\n case actionTypes.SUPPLY_CHAIN_GET_DOCUMENTATION_START:\n return {\n ...state,\n documentationStatus: { loading: true, errorMessage: \"\", documentation: [], success: null },\n };\n case actionTypes.SUPPLY_CHAIN_GET_DOCUMENTATION_FAIL:\n return {\n ...state,\n documentationStatus: { loading: false, errorMessage: action.payload, documentation: [], success: false },\n };\n case actionTypes.SUPPLY_CHAIN_GET_DOCUMENTATION_SUCCESS:\n return {\n ...state,\n documentationStatus: {\n loading: false,\n errorMessage: \"\",\n documentation: action.payload,\n success: true,\n },\n };\n default:\n return state;\n }\n}\n","import * as actionTypes from \"./action-types\";\nimport { sendGetRequest, sendPostRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\n\nexport const supplyChainGetSimulationDetails = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_SIMULATION_DETAILS_START });\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_SIMULATION_DETAILS, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_SIMULATION_DETAILS_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_SIMULATION_DETAILS_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_SIMULATION_DETAILS_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainResetRequestsState = () => {\n return { type: actionTypes.SUPPLY_CHAIN_RESET_REQUESTS_STATE };\n};\n\nexport const supplyChainGetRegisteredStudents = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_START });\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_REGISTERED_STUDENTS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_FAIL, payload: response.data?.message });\n return;\n }\n\n const payload = {\n registeredStudents: response.data.payload,\n };\n\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_REGISTERED_STUDENTS_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainAdvanceSimulation = (advanceSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_ADVANCE_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.SUPPLY_CHAIN_ADVANCE_SIMULATION, advanceSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_ADVANCE_SIMULATION_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.SUPPLY_CHAIN_ADVANCE_SIMULATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_ADVANCE_SIMULATION_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainStartSimulation = (startSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_START_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.SUPPLY_CHAIN_START_SIMULATION, startSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_START_SIMULATION_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.SUPPLY_CHAIN_START_SIMULATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_START_SIMULATION_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainGetNumberOfRegisteredStudents = (simulationId) => {\n return async function (dispatch) {\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({\n type: actionTypes.SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_FAIL,\n payload: response.data?.message,\n });\n return;\n }\n\n dispatch({\n type: actionTypes.SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_SUCCESS,\n payload: response.data.payload,\n });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_NUMBER_REGISTERED_STUDENTS_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainGetSimulationStandings = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_START });\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_STANDINGS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_FAIL, payload: response.data?.message });\n return;\n }\n\n const payload = {\n standings: response.data.payload.teamPositionStandings,\n teamMembers: response.data.payload.studentsInformation,\n };\n\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_SIMULATION_STANDINGS_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainGetPerformanceData = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_PERFORMANCE_DATA_START });\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_PERFORMANCE_DATA, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_PERFORMANCE_DATA_FAIL, payload: response.data.message });\n return;\n }\n const payload = {\n currentStep: response.data.payload.currentStep,\n performanceData: response.data.payload.flowsInformation,\n simulationName: response.data.payload.simulationName,\n };\n\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_PERFORMANCE_DATA_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_PERFORMANCE_DATA_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainGetDecisionsData = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_DECISIONS_DATA_START });\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_DECISIONS_DATA, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_DECISIONS_DATA_FAIL, payload: response.data.message });\n return;\n }\n const payload = {\n currentStep: response.data.payload.currentStep,\n decisionsData: response.data.payload.sections,\n simulationName: response.data.payload.name,\n };\n\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_DECISIONS_DATA_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_DECISIONS_DATA_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainCreateNextRun = (request) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_START });\n try {\n const response = await sendPostRequest(API_PATHS.SUPPLY_CHAIN_CREATE_NEXT_RUN, request);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_SUCCESS, payload: response.data?.message });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_FAIL, payload: err });\n }\n };\n};\n\nexport const resetCreateNextRunState = () => {\n return { type: actionTypes.SUPPLY_CHAIN_CREATE_NEXT_RUN_CLEAN };\n};\n\nexport const supplyChainGetProfessorScenarios = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_START });\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS, \"\");\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_FAIL, payload: response.data.message });\n return;\n }\n\n const scenarioPayload = response.data.payload.map((x) => ({\n title: x.name,\n description: x.description,\n id: x.id,\n }));\n\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_SUCCESS, payload: scenarioPayload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_PROFESSOR_SCENARIOS_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainModifySimulation = (request) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.SUPPLY_CHAIN_MODIFY_SIMULATION, request);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_SUCCESS, payload: response.data?.message });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_FAIL, payload: err });\n }\n };\n};\n\nexport const supplyChainModifyReset = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_MODIFY_SIMULATION_RESET });\n };\n};\n\nexport const supplyChainGetDocumentation = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_DOCUMENTATION_START });\n try {\n const response = await sendGetRequest(API_PATHS.SUPPLY_CHAIN_GET_DOCUMENTATION, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_DOCUMENTATION_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_DOCUMENTATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.SUPPLY_CHAIN_GET_DOCUMENTATION_FAIL, payload: err });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const GET_TUTORIALS = \"Tutorials/GET_TUTORIALS\";\nexport const GET_TUTORIALS_SUCCESSFULL = \"Tutorials/GET_TUTORIALS_SUCCESSFULL\";\nexport const GET_TUTORIALS_FAILED = \"Tutorials/GET_TUTORIALS_FAILED\";\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n loadingTutorials: null,\n tutorials: null,\n tutorialsErrorMessage: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.GET_TUTORIALS:\n return {\n ...state,\n loadingTutorials: true,\n tutorials: null,\n tutorialsErrorMessage: \"\",\n };\n case actions.GET_TUTORIALS_SUCCESSFULL:\n return {\n ...state,\n loadingTutorials: null,\n tutorialsErrorMessage: \"\",\n tutorials: action.payload,\n };\n case actions.GET_TUTORIALS_FAILED:\n return {\n ...state,\n tutorials: null,\n loadingTutorials: null,\n tutorialsErrorMessage: action.payload,\n };\n default:\n return state;\n }\n}\n","import { sendGetRequest } from \"../services/FetchService\";\nimport * as FETCHAPI from \"../constants/FetchApi\";\n\nexport const getTutorials = () => {\n return sendGetRequest(FETCHAPI.GET_VIDEO_TUTORIALS, \"\");\n};\n\nexport const formatTutorials = (tutorialsData) => {\n const tutorialsFormatted = tutorialsData.map((section) => {\n return {\n language: section.language,\n tutorials: section.tutorials.reverse(),\n };\n });\n\n return tutorialsFormatted;\n};\n","import * as actions from \"./action-types\";\nimport * as tutorialsService from \"../../services/TutorialsService\";\n\nexport const getTutorials = () => {\n return async function (dispatch) {\n dispatch({ type: actions.GET_TUTORIALS });\n const tutorialsResponse = tutorialsService.getTutorials();\n tutorialsResponse\n .then((tutorials) => {\n if (tutorials.data.outcome) {\n dispatch({\n type: actions.GET_TUTORIALS_SUCCESSFULL,\n payload: tutorialsService.formatTutorials(tutorials.data.payload),\n });\n } else {\n dispatch({\n type: actions.GET_TUTORIALS_FAILED,\n payload: \"noVideosList\",\n });\n }\n })\n .catch((error) => {\n if (error) {\n dispatch({\n type: actions.GET_TUTORIALS_FAILED,\n payload: \"errorFetchVideos\",\n });\n }\n });\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n tokenInfo: {},\n userProfile: {},\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.LOGGED_IN:\n return {\n ...state,\n ...action.payload,\n };\n case actions.NOT_LOGGED_IN:\n return {\n ...state,\n };\n case actions.LOGIN_SUCCESSFUL:\n return {\n ...state,\n ...action.payload,\n };\n case actions.SET_USER_LANGUAGE:\n return {\n ...state,\n userProfile: {\n ...state.userProfile,\n language: action.payload,\n },\n };\n default:\n return state;\n }\n}\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n medicaPublicStandings: {\n outcome: false,\n loading: true,\n errorMessage: \"\",\n standingsTable: null,\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.GET_MEDICA_STANDINGS:\n return {\n ...state,\n medicaPublicStandings: {\n loading: true,\n outcome: false,\n errorMessage: \"\",\n standingsTable: null,\n },\n };\n case actions.GET_MEDICA_STANDINGS_SUCCESSFUL:\n return {\n ...state,\n medicaPublicStandings: {\n loading: false,\n outcome: true,\n errorMessage: \"\",\n standingsTable: action.standingsTable,\n },\n };\n case actions.GET_MEDICA_STANDINGS_FAILED:\n return {\n ...state,\n medicaPublicStandings: {\n loading: false,\n outcome: false,\n errorMessage: action.errorMessage,\n standingsTable: null,\n },\n };\n default:\n return state;\n }\n}\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const COMMIT_PURCHASE_FORM_DATA = \"ABOGADOS_BUY_SIMULATION/COMMIT_PURCHASE_FORM_DATA\";\nexport const VALIDATE_DISCOUNT_CODE = \"ABOGADOS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE\";\nexport const VALIDATE_DISCOUNT_CODE_FAILED = \"ABOGADOS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_FAILED\";\nexport const VALIDATE_DISCOUNT_CODE_SUCCESS = \"ABOGADOS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_SUCCESS\";\nexport const VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS = \"ABOGADOS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS\";\nexport const VALIDATE_DISCOUNT_CODE_RESET = \"ABOGADOS_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_RESET\";\nexport const RESTORE_STORAGE_PURCHASE_INFORMATION = \"ABOGADOS_BUY_SIMULATION/RESTORE_STORAGE_PURCHASE_INFORMATION\";\nexport const UPDATE_TRANSACTION_DATA = \"ABOGADOS_BUY_SIMULATION/UPDATE_TRANSACTION_DATA\";\nexport const CREATE_SIMULATION_REQUEST_START = \"ABOGADOS_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_START\";\nexport const CREATE_SIMULATION_REQUEST_SUCCESS = \"ABOGADOS_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_SUCCESS\";\nexport const CREATE_SIMULATION_REQUEST_FAIL = \"ABOGADOS_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_FAIL\";\nexport const RESET_CREATE_SIMULATION_DEFAULTS = \"ABOGADOS_BUY_SIMULATION/RESET_CREATE_SIMULATION_DEFAULTS\";\nexport const RESET_ABOGADOS_BUY_SIMULATION_DEFAULTS = \"ABOGADOS_BUY_SIMULATION/RESET_ABOGADOS_BUY_SIMULATION_DEFAULTS\";","import * as actions from \"./action-types\";\n\nexport const initialState = {\n buyForm: {\n numberOfStudents: 0,\n isInstitution: null,\n },\n payment: {\n paymentSummaryId: \"\",\n },\n discountCode: {\n discountActivated: false,\n loadingDiscountCode: null,\n discountedPrice: null,\n discountCodeMessage: \"\",\n discountCode: \"\",\n paidWithDiscountCode: false,\n },\n createSimulation: {\n loading: false,\n errorMessage: \"\",\n simulationId: \"\",\n simulationCreated: false,\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.COMMIT_PURCHASE_FORM_DATA:\n return {\n ...state,\n buyForm: { ...action.payload },\n };\n case actions.VALIDATE_DISCOUNT_CODE:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n loadingDiscountCode: true,\n discountCodeMessage: \"\",\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_SUCCESS:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n discountActivated: true,\n loadingDiscountCode: false,\n discountCodeMessage: \"\",\n ...action.payload,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS:\n return {\n ...state,\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId,\n },\n discountCode: {\n ...state.discountCode,\n discountActivated: true,\n loadingDiscountCode: false,\n discountCodeMessage: \"\",\n discountedPrice: action.payload.discountedPrice,\n discountCode: action.payload.discountCode,\n paidWithDiscountCode: true,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_FAILED:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n loadingDiscountCode: false,\n discountCodeMessage: action.payload,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_RESET:\n return {\n ...state,\n discountCode: {\n ...initialState.discountCode,\n },\n };\n case actions.RESTORE_STORAGE_PURCHASE_INFORMATION:\n return {\n ...state,\n buyForm: {\n numberOfStudents: action.payload.numberOfStudents,\n isInstitution: action.payload.isInstitution ?? false,\n },\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId ?? \"\",\n },\n discountCode: {\n discountActivated: action.payload.discountActivated ?? false,\n discountCode: action.payload.discountCode ?? \"\",\n discountedPrice: action.payload.discountedPrice ?? null,\n },\n };\n case actions.UPDATE_TRANSACTION_DATA:\n return {\n ...state,\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_START:\n return {\n ...state,\n createSimulation: {\n ...state.createSimulation,\n errorMessage: \"\",\n loading: true,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_SUCCESS:\n return {\n ...state,\n createSimulation: {\n loading: false,\n simulationId: action.payload.simulationId,\n errorMessage: \"\",\n simulationCreated: true,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_FAIL:\n return {\n ...state,\n createSimulation: {\n ...state.createSimulation,\n loading: false,\n errorMessage: action.payload,\n },\n };\n case actions.RESET_CREATE_SIMULATION_DEFAULTS:\n return {\n ...state,\n createSimulation: { ...initialState[\"createSimulation\"] },\n };\n case actions.RESET_ABOGADOS_BUY_SIMULATION_DEFAULTS:\n return {\n ...initialState,\n };\n default:\n return state;\n }\n}\n","import * as actionTypes from \"./action-types\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { getStorage, setStorage, removeStorage, mergeDataToStorage } from \"../../services/StorageService\";\nimport { sendPostRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\nimport { sentryReportEvent } from \"../../services/SentryReportService\";\n\nexport const commitAbogadosBuyFormData = (data) => {\n return async function (dispatch) {\n setStorage(LOCALSTORAGE.abogadosQuestionnaire, data);\n dispatch({\n type: actionTypes.COMMIT_PURCHASE_FORM_DATA,\n payload: data,\n });\n };\n};\n\nexport const abogadosValidateDiscountCode = (discountCode) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE });\n try {\n const discountCodeResponse = await sendPostRequest(API_PATHS.FORIO_VALIDATE_DISCOUNT_CODE, discountCode);\n if (!discountCodeResponse.data?.payload?.validDiscountCode) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_FAILED, payload: discountCodeResponse.data.message });\n return;\n }\n const payload = {\n discountCode: discountCodeResponse.data.payload.discountCode,\n discountedPrice: discountCodeResponse.data.payload.discountedPrice,\n };\n mergeDataToStorage(LOCALSTORAGE.abogadosQuestionnaire, payload);\n\n if (discountCodeResponse.data?.payload?.paymentSummaryId) {\n payload.paymentSummaryId = discountCodeResponse.data.payload.paymentSummaryId;\n mergeDataToStorage(LOCALSTORAGE.abogadosQuestionnaire, {\n paymentSummaryId: discountCodeResponse.data.payload.paymentSummaryId,\n });\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS, payload: payload });\n return;\n }\n\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_SUCCESS, payload: payload });\n } catch (err) {\n const sentryTag = {\n name: \"abogadosDiscountCodeFailed\",\n data: discountCode,\n };\n sentryReportEvent(err, sentryTag);\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_FAILED, payload: err });\n }\n };\n};\n\nexport const abogadosResetDiscountCode = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_RESET });\n };\n};\n\nexport const restoreAbogadosPurchaseInformationFromStorage = () => {\n return async function (dispatch) {\n const cachedQuestionnaireInformation = getStorage(LOCALSTORAGE.abogadosQuestionnaire);\n if (cachedQuestionnaireInformation) {\n dispatch({\n type: actionTypes.RESTORE_STORAGE_PURCHASE_INFORMATION,\n payload: cachedQuestionnaireInformation,\n });\n }\n return true;\n };\n};\n\nexport const updateTransactionAbogadosData = (transactionData) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.UPDATE_TRANSACTION_DATA, payload: transactionData });\n };\n};\n\nexport const abogadosCreateSimulation = (createSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_START });\n try {\n const response = await sendPostRequest(API_PATHS.FORIO_CREATE_SIMULATION, createSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: err });\n }\n };\n};\n\nexport const resetCreateSimulationDefaults = () => {\n return { type: actionTypes.RESET_CREATE_SIMULATION_DEFAULTS };\n};\n\nexport const resetAbogadosBuySimulationStoreDefaults = () => {\n removeStorage(LOCALSTORAGE.abogadosQuestionnaire);\n return {\n type: actionTypes.RESET_ABOGADOS_BUY_SIMULATION_DEFAULTS,\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };","export const GET_SIMULATION_DETAILS_START = \"ABOGADOS_SIMULATION_DETAILS/GET_SIMULATION_DETAILS_START\";\nexport const GET_SIMULATION_DETAILS_FAIL = \"ABOGADOS_SIMULATION_DETAILS/GET_SIMULATION_DETAILS_FAILED\";\nexport const GET_SIMULATION_DETAILS_SUCCESS = \"ABOGADOS_SIMULATION_DETAILS/GET_SIMULATION_DETAILS_SUCCESS\";\nexport const ADVANCE_SIMULATION_START = \"ABOGADOS_SIMULATION_DETAILS/ADVANCE_SIMULATION_START\";\nexport const ADVANCE_SIMULATION_FAIL = \"ABOGADOS_SIMULATION_DETAILS/ADVANCE_SIMULATION_FAILED\";\nexport const ADVANCE_SIMULATION_SUCCESS = \"ABOGADOS_SIMULATION_DETAILS/ADVANCE_SIMULATION_SUCCESS\";\nexport const RESET_REQUESTS_STATE = \"ABOGADOS_SIMULATION_DETAILS/RESET_REQUESTS_STATE\";\nexport const GET_REGISTERED_STUDENTS_START = \"ABOGADOS_SIMULATION_DETAILS/GET_REGISTERED_STUDENTS_START\";\nexport const GET_REGISTERED_STUDENTS_SUCCESS = \"ABOGADOS_SIMULATION_DETAILS/GET_REGISTERED_STUDENTS_SUCCESS\";\nexport const GET_REGISTERED_STUDENTS_FAIL = \"ABOGADOS_SIMULATION_DETAILS/GET_REGISTERED_STUDENTS_FAIL\";\nexport const GET_SIMULATION_STANDINGS_START = \"ABOGADOS_SIMULATION_DETAILS/GET_SIMULATION_STANDINGS_START\";\nexport const GET_SIMULATION_STANDINGS_SUCCESS = \"ABOGADOS_SIMULATION_DETAILS/GET_SIMULATION_STANDINGS_SUCCESS\";\nexport const GET_SIMULATION_STANDINGS_FAIL = \"ABOGADOS_SIMULATION_DETAILS/GET_SIMULATION_STANDINGS_FAIL\";\n","import * as actionTypes from \"./action-types\";\n\nexport const initialState = {\n simulationDetailsRequestStatus: {\n loading: false,\n errorMessage: \"\",\n detailsValid: false,\n },\n simulationDetails: {\n id: \"\",\n name: \"\",\n status: \"\",\n paymentSummaryId: \"\",\n professorPaid: false\n },\n advanceSimulationRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: false,\n failedTeams: null,\n },\n registeredStudents: {\n loading: false,\n errorMessage: \"\",\n success: null,\n registeredStudents: null,\n },\n standings: {\n loading: false,\n errorMessage: \"\",\n success: null,\n teamMembers: null,\n simulationStandings: null,\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actionTypes.GET_SIMULATION_DETAILS_START:\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: true, errorMessage: \"\", detailsValid: false },\n };\n case actionTypes.GET_SIMULATION_DETAILS_FAIL:\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: false, errorMessage: action.payload, detailsValid: false },\n };\n case actionTypes.GET_SIMULATION_DETAILS_SUCCESS:\n const { id, name, status, currentSimulationDay, paymentSummaryId, professorPaid } = action.payload;\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: false, errorMessage: \"\", detailsValid: true },\n simulationDetails: { id, name, status, currentSimulationDay, paymentSummaryId, professorPaid },\n };\n case actionTypes.ADVANCE_SIMULATION_START:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: true, errorMessage: \"\", success: false },\n };\n case actionTypes.ADVANCE_SIMULATION_FAIL:\n return {\n ...state,\n advanceSimulationRequestStatus: { \n loading: false, \n errorMessage: action.payload.message, \n success: false,\n failedTeams: action.payload.failedTeams,\n },\n };\n case actionTypes.ADVANCE_SIMULATION_SUCCESS:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: false, errorMessage: \"\", success: true },\n };\n case actionTypes.RESET_REQUESTS_STATE:\n const { advanceSimulationRequestStatus } = initialState;\n return {\n ...state,\n advanceSimulationRequestStatus,\n };\n case actionTypes.GET_REGISTERED_STUDENTS_START:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.GET_REGISTERED_STUDENTS_SUCCESS:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: false,\n success: true,\n registeredStudents: action.payload.registeredStudents,\n },\n };\n case actionTypes.GET_REGISTERED_STUDENTS_FAIL:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.GET_SIMULATION_STANDINGS_START:\n return {\n ...state,\n standings: {\n loading: true,\n errorMessage: \"\",\n success: null,\n teamMembers: null,\n simulationStandings: null,\n },\n };\n case actionTypes.GET_SIMULATION_STANDINGS_SUCCESS:\n return {\n ...state,\n standings: {\n loading: false,\n errorMessage: \"\",\n success: true,\n teamMembers: action.payload.teamMembers,\n simulationStandings: action.payload.standings,\n },\n };\n case actionTypes.GET_SIMULATION_STANDINGS_FAIL:\n return {\n ...state,\n standings: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n teamMembers: null,\n simulationStandings: null,\n },\n };\n default:\n return state;\n }\n}","import * as actionTypes from \"./action-types\";\nimport { sendGetRequest, sendPostRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\n\nexport const abogadosGetSimulationDetails = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.GET_SIMULATION_DETAILS_START });\n try {\n const response = await sendGetRequest(API_PATHS.FORIO_GET_SIMULATION_DETAILS, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.GET_SIMULATION_DETAILS_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.GET_SIMULATION_DETAILS_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.GET_SIMULATION_DETAILS_FAIL, payload: err });\n }\n };\n};\n\nexport const abogadosAdvanceSimulation = (advanceSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.ADVANCE_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.FORIO_ADVANCE_SIMULATION, advanceSimulationRequest);\n if (!response.data.outcome) {\n const payload = {\n message: response.data.message,\n failedTeams: response.data.payload,\n };\n\n dispatch({ type: actionTypes.ADVANCE_SIMULATION_FAIL, payload });\n return;\n }\n dispatch({ type: actionTypes.ADVANCE_SIMULATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.ADVANCE_SIMULATION_FAIL, payload: err });\n }\n };\n};\n\nexport const abogadosGetRegisteredStudents = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.GET_REGISTERED_STUDENTS_START });\n try {\n const response = await sendGetRequest(API_PATHS.FORIO_GET_REGISTERED_STUDENTS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.GET_REGISTERED_STUDENTS_FAIL, payload: response.data?.message });\n return;\n }\n\n const payload = {\n registeredStudents: response.data.payload,\n };\n\n dispatch({ type: actionTypes.GET_REGISTERED_STUDENTS_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.GET_REGISTERED_STUDENTS_FAIL, payload: err });\n }\n };\n};\n\nexport const abogadosResetRequestsState = () => {\n return { type: actionTypes.RESET_REQUESTS_STATE };\n};\n\nexport const abogadosGetSimulationStandings = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.GET_SIMULATION_STANDINGS_START });\n try {\n const response = await sendGetRequest(API_PATHS.FORIO_GET_STANDINGS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.GET_SIMULATION_STANDINGS_FAIL, payload: response.data?.message });\n return;\n }\n\n const payload = {\n standings: response.data.payload.standingsInformation,\n teamMembers: response.data.payload.studentsInformation,\n };\n\n dispatch({ type: actionTypes.GET_SIMULATION_STANDINGS_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.GET_SIMULATION_STANDINGS_FAIL, payload: err });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const COMMIT_PURCHASE_FORM_DATA = \"CREAMBOW_BUY_SIMULATION/COMMIT_PURCHASE_FORM_DATA\";\nexport const VALIDATE_DISCOUNT_CODE = \"CREAMBOW_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE\";\nexport const VALIDATE_DISCOUNT_CODE_FAILED = \"CREAMBOW_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_FAILED\";\nexport const VALIDATE_DISCOUNT_CODE_SUCCESS = \"CREAMBOW_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_SUCCESS\";\nexport const VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS = \"CREAMBOW_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS\";\nexport const VALIDATE_DISCOUNT_CODE_RESET = \"CREAMBOW_BUY_SIMULATION/VALIDATE_DISCOUNT_CODE_RESET\";\nexport const RESTORE_STORAGE_PURCHASE_INFORMATION = \"CREAMBOW_BUY_SIMULATION/RESTORE_STORAGE_PURCHASE_INFORMATION\";\nexport const UPDATE_TRANSACTION_DATA = \"CREAMBOW_BUY_SIMULATION/UPDATE_TRANSACTION_DATA\";\nexport const CREATE_SIMULATION_REQUEST_START = \"CREAMBOW_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_START\";\nexport const CREATE_SIMULATION_REQUEST_SUCCESS = \"CREAMBOW_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_SUCCESS\";\nexport const CREATE_SIMULATION_REQUEST_FAIL = \"CREAMBOW_BUY_SIMULATION/CREATE_SIMULATION_REQUEST_FAIL\";\nexport const RESET_CREATE_SIMULATION_DEFAULTS = \"CREAMBOW_BUY_SIMULATION/RESET_CREATE_SIMULATION_DEFAULTS\";\nexport const RESET_CREAMBOW_BUY_SIMULATION_DEFAULTS = \"CREAMBOW_BUY_SIMULATION/RESET_CREAMBOW_BUY_SIMULATION_DEFAULTS\";\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n buyForm: {\n numberOfStudents: 0,\n isInstitution: null,\n },\n payment: {\n paymentSummaryId: \"\",\n },\n discountCode: {\n discountActivated: false,\n loadingDiscountCode: null,\n discountedPrice: null,\n discountCodeMessage: \"\",\n discountCode: \"\",\n paidWithDiscountCode: false,\n },\n createSimulation: {\n loading: false,\n errorMessage: \"\",\n simulationId: \"\",\n simulationCreated: false,\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.COMMIT_PURCHASE_FORM_DATA:\n return {\n ...state,\n buyForm: { ...action.payload },\n };\n case actions.VALIDATE_DISCOUNT_CODE:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n loadingDiscountCode: true,\n discountCodeMessage: \"\",\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_SUCCESS:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n discountActivated: true,\n loadingDiscountCode: false,\n discountCodeMessage: \"\",\n ...action.payload,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS:\n return {\n ...state,\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId,\n },\n discountCode: {\n ...state.discountCode,\n discountActivated: true,\n loadingDiscountCode: false,\n discountCodeMessage: \"\",\n discountedPrice: action.payload.discountedPrice,\n discountCode: action.payload.discountCode,\n paidWithDiscountCode: true,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_FAILED:\n return {\n ...state,\n discountCode: {\n ...state.discountCode,\n loadingDiscountCode: false,\n discountCodeMessage: action.payload,\n },\n };\n case actions.VALIDATE_DISCOUNT_CODE_RESET:\n return {\n ...state,\n discountCode: {\n ...initialState.discountCode,\n },\n };\n case actions.RESTORE_STORAGE_PURCHASE_INFORMATION:\n return {\n ...state,\n buyForm: {\n numberOfStudents: action.payload.numberOfStudents,\n isInstitution: action.payload.isInstitution ?? false,\n },\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId ?? \"\",\n },\n discountCode: {\n discountActivated: action.payload.discountActivated ?? false,\n discountCode: action.payload.discountCode ?? \"\",\n discountedPrice: action.payload.discountedPrice ?? null,\n },\n };\n case actions.UPDATE_TRANSACTION_DATA:\n return {\n ...state,\n payment: {\n paymentSummaryId: action.payload.paymentSummaryId,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_START:\n return {\n ...state,\n createSimulation: {\n ...state.createSimulation,\n errorMessage: \"\",\n loading: true,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_SUCCESS:\n return {\n ...state,\n createSimulation: {\n loading: false,\n simulationId: action.payload.simulationId,\n errorMessage: \"\",\n simulationCreated: true,\n },\n };\n case actions.CREATE_SIMULATION_REQUEST_FAIL:\n return {\n ...state,\n createSimulation: {\n ...state.createSimulation,\n loading: false,\n errorMessage: action.payload,\n },\n };\n case actions.RESET_CREATE_SIMULATION_DEFAULTS:\n return {\n ...state,\n createSimulation: { ...initialState[\"createSimulation\"] },\n };\n case actions.RESET_CREAMBOW_BUY_SIMULATION_DEFAULTS:\n return {\n ...initialState,\n };\n default:\n return state;\n }\n}\n","import * as actionTypes from \"./action-types\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { getStorage, setStorage, removeStorage, mergeDataToStorage } from \"../../services/StorageService\";\nimport { sendPostRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\nimport { sentryReportEvent } from \"../../services/SentryReportService\";\n\nexport const commitCreambowBuyFormData = (data) => {\n return async function (dispatch) {\n setStorage(LOCALSTORAGE.creambowQuestionnaire, data);\n dispatch({\n type: actionTypes.COMMIT_PURCHASE_FORM_DATA,\n payload: data,\n });\n };\n};\n\nexport const creambowValidateDiscountCode = (discountCode) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE });\n try {\n const discountCodeResponse = await sendPostRequest(API_PATHS.FORIO_VALIDATE_DISCOUNT_CODE, discountCode);\n if (!discountCodeResponse.data?.payload?.validDiscountCode) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_FAILED, payload: discountCodeResponse.data.message });\n return;\n }\n const payload = {\n discountCode: discountCodeResponse.data.payload.discountCode,\n discountedPrice: discountCodeResponse.data.payload.discountedPrice,\n };\n mergeDataToStorage(LOCALSTORAGE.creambowQuestionnaire, payload);\n\n if (discountCodeResponse.data?.payload?.paymentSummaryId) {\n payload.paymentSummaryId = discountCodeResponse.data.payload.paymentSummaryId;\n mergeDataToStorage(LOCALSTORAGE.creambowQuestionnaire, {\n paymentSummaryId: discountCodeResponse.data.payload.paymentSummaryId,\n });\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_PAYMENT_SUCCESS, payload: payload });\n return;\n }\n\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_SUCCESS, payload: payload });\n } catch (err) {\n const sentryTag = {\n name: \"CreambowDiscountCodeFailed\",\n data: discountCode,\n };\n sentryReportEvent(err, sentryTag);\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_FAILED, payload: err });\n }\n };\n};\n\nexport const creambowResetDiscountCode = () => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.VALIDATE_DISCOUNT_CODE_RESET });\n };\n};\n\nexport const restoreCreambowPurchaseInformationFromStorage = () => {\n return async function (dispatch) {\n const cachedQuestionnaireInformation = getStorage(LOCALSTORAGE.creambowQuestionnaire);\n if (cachedQuestionnaireInformation) {\n dispatch({\n type: actionTypes.RESTORE_STORAGE_PURCHASE_INFORMATION,\n payload: cachedQuestionnaireInformation,\n });\n }\n return true;\n };\n};\n\nexport const updateTransactionCreambowData = (transactionData) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.UPDATE_TRANSACTION_DATA, payload: transactionData });\n };\n};\n\nexport const creambowCreateSimulation = (createSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_START });\n try {\n const response = await sendPostRequest(API_PATHS.FORIO_CREATE_SIMULATION, createSimulationRequest);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.CREATE_SIMULATION_REQUEST_FAIL, payload: err });\n }\n };\n};\n\nexport const resetCreateSimulationDefaults = () => {\n return { type: actionTypes.RESET_CREATE_SIMULATION_DEFAULTS };\n};\n\nexport const resetCreambowBuySimulationStoreDefaults = () => {\n removeStorage(LOCALSTORAGE.creambowQuestionnaire);\n return {\n type: actionTypes.RESET_CREAMBOW_BUY_SIMULATION_DEFAULTS,\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };","export const GET_SIMULATION_DETAILS_START = \"CREAMBOW_SIMULATION_DETAILS/GET_SIMULATION_DETAILS_START\";\nexport const GET_SIMULATION_DETAILS_FAIL = \"CREAMBOW_SIMULATION_DETAILS/GET_SIMULATION_DETAILS_FAILED\";\nexport const GET_SIMULATION_DETAILS_SUCCESS = \"CREAMBOW_SIMULATION_DETAILS/GET_SIMULATION_DETAILS_SUCCESS\";\nexport const ADVANCE_SIMULATION_START = \"CREAMBOW_SIMULATION_DETAILS/ADVANCE_SIMULATION_START\";\nexport const ADVANCE_SIMULATION_FAIL = \"CREAMBOW_SIMULATION_DETAILS/ADVANCE_SIMULATION_FAILED\";\nexport const ADVANCE_SIMULATION_SUCCESS = \"CREAMBOW_SIMULATION_DETAILS/ADVANCE_SIMULATION_SUCCESS\";\nexport const RESET_REQUESTS_STATE = \"CREAMBOW_SIMULATION_DETAILS/RESET_REQUESTS_STATE\";\nexport const GET_REGISTERED_STUDENTS_START = \"CREAMBOW_SIMULATION_DETAILS/GET_REGISTERED_STUDENTS_START\";\nexport const GET_REGISTERED_STUDENTS_SUCCESS = \"CREAMBOW_SIMULATION_DETAILS/GET_REGISTERED_STUDENTS_SUCCESS\";\nexport const GET_REGISTERED_STUDENTS_FAIL = \"CREAMBOW_SIMULATION_DETAILS/GET_REGISTERED_STUDENTS_FAIL\";\nexport const GET_SIMULATION_STANDINGS_START = \"CREAMBOW_SIMULATION_DETAILS/GET_SIMULATION_STANDINGS_START\";\nexport const GET_SIMULATION_STANDINGS_SUCCESS = \"CREAMBOW_SIMULATION_DETAILS/GET_SIMULATION_STANDINGS_SUCCESS\";\nexport const GET_SIMULATION_STANDINGS_FAIL = \"CREAMBOW_SIMULATION_DETAILS/GET_SIMULATION_STANDINGS_FAIL\";\n","import * as actionTypes from \"./action-types\";\n\nexport const initialState = {\n simulationDetailsRequestStatus: {\n loading: false,\n errorMessage: \"\",\n detailsValid: false,\n },\n simulationDetails: {\n id: \"\",\n name: \"\",\n status: \"\",\n paymentSummaryId: \"\",\n professorPaid: false\n },\n advanceSimulationRequestStatus: {\n loading: false,\n errorMessage: \"\",\n success: false,\n failedTeams: null,\n },\n registeredStudents: {\n loading: false,\n errorMessage: \"\",\n success: null,\n registeredStudents: null,\n },\n standings: {\n loading: false,\n errorMessage: \"\",\n success: null,\n teamMembers: null,\n simulationStandings: null,\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actionTypes.GET_SIMULATION_DETAILS_START:\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: true, errorMessage: \"\", detailsValid: false },\n };\n case actionTypes.GET_SIMULATION_DETAILS_FAIL:\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: false, errorMessage: action.payload, detailsValid: false },\n };\n case actionTypes.GET_SIMULATION_DETAILS_SUCCESS:\n const { id, name, status, currentSimulationDay, paymentSummaryId, professorPaid } = action.payload;\n return {\n ...state,\n simulationDetailsRequestStatus: { loading: false, errorMessage: \"\", detailsValid: true },\n simulationDetails: { id, name, status, currentSimulationDay, paymentSummaryId, professorPaid },\n };\n case actionTypes.ADVANCE_SIMULATION_START:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: true, errorMessage: \"\", success: false },\n };\n case actionTypes.ADVANCE_SIMULATION_FAIL:\n return {\n ...state,\n advanceSimulationRequestStatus: { \n loading: false, \n errorMessage: action.payload.message, \n success: false,\n failedTeams: action.payload.failedTeams,\n },\n };\n case actionTypes.ADVANCE_SIMULATION_SUCCESS:\n return {\n ...state,\n advanceSimulationRequestStatus: { loading: false, errorMessage: \"\", success: true },\n };\n case actionTypes.RESET_REQUESTS_STATE:\n const { advanceSimulationRequestStatus } = initialState;\n return {\n ...state,\n advanceSimulationRequestStatus,\n };\n case actionTypes.GET_REGISTERED_STUDENTS_START:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: true,\n errorMessage: \"\",\n success: null,\n },\n };\n case actionTypes.GET_REGISTERED_STUDENTS_SUCCESS:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: false,\n success: true,\n registeredStudents: action.payload.registeredStudents,\n },\n };\n case actionTypes.GET_REGISTERED_STUDENTS_FAIL:\n return {\n ...state,\n registeredStudents: {\n ...state.registeredStudents,\n loading: false,\n errorMessage: action.payload,\n success: false,\n },\n };\n case actionTypes.GET_SIMULATION_STANDINGS_START:\n return {\n ...state,\n standings: {\n loading: true,\n errorMessage: \"\",\n success: null,\n teamMembers: null,\n simulationStandings: null,\n },\n };\n case actionTypes.GET_SIMULATION_STANDINGS_SUCCESS:\n return {\n ...state,\n standings: {\n loading: false,\n errorMessage: \"\",\n success: true,\n teamMembers: action.payload.teamMembers,\n simulationStandings: action.payload.standings,\n },\n };\n case actionTypes.GET_SIMULATION_STANDINGS_FAIL:\n return {\n ...state,\n standings: {\n loading: false,\n errorMessage: action.payload,\n success: false,\n teamMembers: null,\n simulationStandings: null,\n },\n };\n default:\n return state;\n }\n}","import * as actionTypes from \"./action-types\";\nimport { sendGetRequest, sendPostRequest } from \"../../services/FetchService.js\";\nimport * as API_PATHS from \"../../constants/FetchApi.js\";\n\nexport const creambowGetSimulationDetails = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.GET_SIMULATION_DETAILS_START });\n try {\n const response = await sendGetRequest(API_PATHS.FORIO_GET_SIMULATION_DETAILS, simulationId);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.GET_SIMULATION_DETAILS_FAIL, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.GET_SIMULATION_DETAILS_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.GET_SIMULATION_DETAILS_FAIL, payload: err });\n }\n };\n};\n\nexport const creambowAdvanceSimulation = (advanceSimulationRequest) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.ADVANCE_SIMULATION_START });\n try {\n const response = await sendPostRequest(API_PATHS.FORIO_ADVANCE_SIMULATION, advanceSimulationRequest);\n if (!response.data.outcome) {\n const payload = {\n message: response.data.message,\n failedTeams: response.data.payload,\n };\n\n dispatch({ type: actionTypes.ADVANCE_SIMULATION_FAIL, payload });\n return;\n }\n dispatch({ type: actionTypes.ADVANCE_SIMULATION_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.ADVANCE_SIMULATION_FAIL, payload: err });\n }\n };\n};\n\nexport const creambowGetRegisteredStudents = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.GET_REGISTERED_STUDENTS_START });\n try {\n const response = await sendGetRequest(API_PATHS.FORIO_GET_REGISTERED_STUDENTS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.GET_REGISTERED_STUDENTS_FAIL, payload: response.data?.message });\n return;\n }\n\n const payload = {\n registeredStudents: response.data.payload,\n };\n\n dispatch({ type: actionTypes.GET_REGISTERED_STUDENTS_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.GET_REGISTERED_STUDENTS_FAIL, payload: err });\n }\n };\n};\n\nexport const creambowResetRequestsState = () => {\n return { type: actionTypes.RESET_REQUESTS_STATE };\n};\n\nexport const creambowGetSimulationStandings = (simulationId) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.GET_SIMULATION_STANDINGS_START });\n try {\n const response = await sendGetRequest(API_PATHS.FORIO_GET_STANDINGS, simulationId);\n if (!response?.data?.outcome) {\n dispatch({ type: actionTypes.GET_SIMULATION_STANDINGS_FAIL, payload: response.data?.message });\n return;\n }\n\n const payload = {\n standings: response.data.payload.standingsInformation,\n teamMembers: response.data.payload.studentsInformation,\n };\n\n dispatch({ type: actionTypes.GET_SIMULATION_STANDINGS_SUCCESS, payload: payload });\n } catch (err) {\n dispatch({ type: actionTypes.GET_SIMULATION_STANDINGS_FAIL, payload: err });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };\n","export const GET_PAYMENT_INTENT = \"STRIPE_PAYMENT/GET_PAYMENT_INTENT\";\nexport const GET_PAYMENT_INTENT_SUCCESS = \"STRIPE_PAYMENT/GET_PAYMENT_INTENT_SUCCESS\";\nexport const GET_PAYMENT_INTENT_FAILED = \"STRIPE_PAYMENT/GET_PAYMENT_INTENT_FAILED\";\n","import * as actions from \"./action-types\";\n\nexport const initialState = {\n paymentIntent: {\n loading: false,\n errorMessage: \"\",\n clientSecret: \"\",\n },\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case actions.GET_PAYMENT_INTENT:\n return {\n ...state,\n paymentIntent: {\n loading: true,\n errorMessage: \"\",\n clientSecret: \"\",\n },\n };\n case actions.GET_PAYMENT_INTENT_SUCCESS:\n return {\n ...state,\n paymentIntent: {\n loading: false,\n errorMessage: \"\",\n clientSecret: action.payload.clientSecret,\n },\n };\n case actions.GET_PAYMENT_INTENT_FAILED:\n return {\n ...state,\n paymentIntent: {\n loading: false,\n errorMessage: action.payload,\n clientSecret: \"\",\n },\n };\n\n default:\n return state;\n }\n}\n","import * as actionTypes from \"./action-types\";\nimport { sendPostRequest } from \"../../services/FetchService.js\";\n\nexport const getPaymentIntent = (request, apiUrl) => {\n return async function (dispatch) {\n dispatch({ type: actionTypes.GET_PAYMENT_INTENT });\n try {\n const response = await sendPostRequest(apiUrl, request);\n if (!response.data.outcome) {\n dispatch({ type: actionTypes.GET_PAYMENT_INTENT_FAILED, payload: response.data.message });\n return;\n }\n dispatch({ type: actionTypes.GET_PAYMENT_INTENT_SUCCESS, payload: response.data.payload });\n } catch (err) {\n dispatch({ type: actionTypes.GET_PAYMENT_INTENT_FAILED, payload: err });\n }\n };\n};\n","import reducer from \"./reducer\";\nimport * as actions from \"./actions\";\n\nexport default reducer;\nexport { actions };","import { connectRouter } from \"connected-react-router\";\nimport { combineReducers } from \"redux\";\nimport history from \"../constants/History\";\nimport CrisisBuySimulation from \"./CrisisBuySimulation\";\nimport CrisisJoinSimulation from \"./CrisisJoinSimulation\";\nimport CrisisSimulationDetails from \"./CrisisSimulationDetails\";\nimport MedicaReducer from \"./Medica\";\nimport MedicaQuestionnaireReducer from \"./MedicaQuestionnaire\";\nimport ProfileReducer from \"./Profile\";\nimport ScenarioReducer from \"./Scenario\";\nimport SimulationsReducer from \"./Simulations\";\nimport simunationReducer from \"./Simunation\";\nimport SimunationQuestionnaireReducer from \"./SimunationQuestionnaire\";\nimport SupplyChainBuySimulation from \"./SupplyChainBuySimulation\";\nimport SupplyChainJoinSimulation from \"./SupplyChainJoinSimulation\";\nimport SupplyChainSimulationDetails from \"./SupplyChainSimulationDetails\";\nimport TutorialsReducer from \"./Tutorials\";\nimport UserReducer from \"./User\";\nimport PublicPages from \"./PublicPages\";\nimport AbogadosBuySimulation from \"./AbogadosBuySimulation\";\nimport AbogadosSimulationDetails from \"./AbogadosSimulationDetails\";\nimport CreambowBuySimulation from \"./CreambowBuySimulation\";\nimport CreambowSimulationDetails from \"./CreambowSimulationDetails\";\nimport StripePayment from \"./StripePayment\";\n\nexport default () =>\n combineReducers({\n router: connectRouter(history),\n user: UserReducer,\n simulations: SimulationsReducer,\n medica: MedicaReducer,\n medicaQuestionnaire: MedicaQuestionnaireReducer,\n simunation: simunationReducer,\n simunationQuestionnaire: SimunationQuestionnaireReducer,\n tutorials: TutorialsReducer,\n profile: ProfileReducer,\n scenario: ScenarioReducer,\n crisisBuySimulation: CrisisBuySimulation,\n crisisJoinSimulation: CrisisJoinSimulation,\n crisisSimulationDetails: CrisisSimulationDetails,\n supplychainBuySimulation: SupplyChainBuySimulation,\n supplyChainJoinSimulation: SupplyChainJoinSimulation,\n supplyChainSimulationDetails: SupplyChainSimulationDetails,\n publicPages: PublicPages,\n abogadosBuySimulation: AbogadosBuySimulation,\n abogadosSimulationDetails: AbogadosSimulationDetails,\n creambowBuySimulation: CreambowBuySimulation,\n creambowSimulationDetails: CreambowSimulationDetails,\n stripePayment: StripePayment,\n });\n","import { applyMiddleware, compose, createStore } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport { routerMiddleware } from \"connected-react-router\";\nimport createRootReducer from \"./reducers\";\nimport * as CONSTANT from \"../constants/UniversalConstants\";\nimport * as Sentry from \"@sentry/react\";\n\nexport default function configureStore(history, initialState) {\n let store = {};\n let sentryReduxEnhancer = Sentry.createReduxEnhancer({\n stateTransformer: sentryStateTransform,\n actionTransformer: sentryActionTransform,\n });\n if (process.env.NODE_ENV === CONSTANT.ENV_DEVELOPMENT) {\n const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n store = createStore(\n createRootReducer(history),\n initialState,\n composeEnhancers(applyMiddleware(thunk, routerMiddleware(history)), sentryReduxEnhancer)\n );\n } else {\n store = createStore(\n createRootReducer(history),\n initialState,\n compose(applyMiddleware(thunk, routerMiddleware(history)), sentryReduxEnhancer)\n );\n }\n\n return store;\n}\n\nconst sentryStateTransform = (state) => {\n const transformedState = {\n ...state,\n user: null,\n supplyChainSimulationDetails: {\n ...state.supplyChainSimulationDetails,\n simulationPerformanceDataRequestStatus: {\n ...state.supplyChainSimulationDetails,\n performanceData: {},\n },\n },\n simulations: {\n ...state.simulations,\n data: null,\n },\n crisisSimulationDetails: {\n ...state.crisisSimulationDetails,\n simulationPerformanceDataRequestStatus: {\n ...state.supplyChainSimulationDetails,\n performanceData: {},\n },\n },\n simulationPerformanceDataRequestStatus: null,\n };\n\n return transformedState;\n};\n\nconst sentryActionTransform = (action) => {\n return action;\n};\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport resources from \"./resources\";\ni18n.use(initReactI18next).init({\n resources,\n lng: \"en\",\n keySeparator: false,\n //nsSeparator should be explicitly set. https://github.com/i18next/i18next/issues/1665\n nsSeparator: \":\",\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport default i18n;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router-dom\";\nimport { redirectionHandler } from \"../../services/AuthService\";\nimport { login, loginSuccessful } from \"../../store/User/actions\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport { getCookie } from \"../../services/CookieService\";\nimport * as COOKIE from \"../../constants/Cookies\";\n\nclass CallBackComponent extends Component {\n async componentDidMount() {\n const pathContainsHash = /access_token|id_token|error/.test(window.location.hash);\n if (pathContainsHash) {\n await this.checkLoginSuccessful();\n } else {\n this.props.history.push(ROUTES.CHECK_AUTH);\n }\n }\n\n checkLoginSuccessful = async () => {\n const isLogin = await this.props.loginSuccessful();\n if (isLogin) {\n const user = getCookie(COOKIE.AUTH_INFORMATION);\n redirectionHandler(user.userProfile);\n }\n };\n\n render() {\n const translate = this.props.t;\n return ;\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n loginSuccessful: () => dispatch(loginSuccessful()),\n login: () => dispatch(login()),\n});\n\nexport default compose(connect(null, mapDispatchToProps))(\n withTranslation(\"AuthComponents\")(withRouter(CallBackComponent))\n);\n","import React from \"react\";\nimport \"./modals.css\";\nimport { Button, Modal } from \"semantic-ui-react\";\n\nconst ConfirmationModal = (props) => {\n return (\n \n {props.headerContent}\n {props.confirmationBody}\n \n \n
\n );\n};\n\nexport default NavigationButton;\n","import React from \"react\";\nimport { Card, Grid, Image } from \"semantic-ui-react\";\nimport NavigationButton from \"../helpers/NavigationButton\";\n\nconst NUMBER_OF_COLUMNS = 2;\n\nconst Products = (props) => {\n const translate = props.translate;\n\n const RenderProductListing = (product) => {\n const comingSoonBadge =
Coming Soon
;\n\n return (\n \n
\n \n {product.comingSoon ? comingSoonBadge : null}\n
\n \n {product.name}\n

{translate(product.flavorText)}

\n \n \n \n {product.topics ? (\n

\n {translate(\"topic\", { topicsList: translate(product.topics) })}\n

\n ) : null}\n
\n \n \n \n
\n
\n
\n
\n );\n };\n\n const RenderGridContent = (products) => {\n const numberOfRows = Math.ceil(products.length / NUMBER_OF_COLUMNS);\n const rows = [];\n for (let row = 0; row < numberOfRows; row++) {\n const rowStartItemIndex = row * NUMBER_OF_COLUMNS;\n let lastItemInRowOffset = NUMBER_OF_COLUMNS;\n\n if (row + 1 === numberOfRows && products.length % NUMBER_OF_COLUMNS !== 0) {\n lastItemInRowOffset = products.length % NUMBER_OF_COLUMNS;\n }\n\n const rowItems = products.slice(rowStartItemIndex, rowStartItemIndex + lastItemInRowOffset);\n rows.push(\n \n {rowItems.map((product) => (\n \n {RenderProductListing(product)}\n \n ))}\n \n );\n }\n\n return rows;\n };\n\n return (\n
\n \n {RenderGridContent(props.productsList)}\n \n
\n );\n};\n\nexport default Products;\n","import React, { Component } from \"react\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport Products from \"./Products\";\nimport MedicaLogo from \"../../assets/medica-logo-transparent.png\";\nimport SimunationLogo from \"../../assets/simunation-logo.png\";\nimport CrisisLogo from \"../../assets/crisis-logo.png\";\nimport AbogadosLogo from \"../../assets/abogados-logo.png\";\nimport SupplyChainLogo from \"../../assets/supplychain-logo.png\";\nimport CreambowLogo from \"../../assets/creambow-logo.png\";\n\nconst CATALOGUE_LIST = [\n {\n key: 1,\n logo: MedicaLogo,\n name: CONSTANT.MEDICA_NAME,\n color: \"#EFEFEF\",\n flavorText: \"medicaFlavor\",\n topics: \"medicaTopics\",\n route: ROUTES.MEDICA_BUY_QUESTIONNAIRE,\n },\n {\n key: 2,\n logo: SimunationLogo,\n name: CONSTANT.SIMUNATION_NAME,\n color: \"#7e217e\",\n flavorText: \"simunationFlavor\",\n topics: \"simunationTopics\",\n route: ROUTES.SIMUNATION_BUY_QUESTIONNAIRE,\n },\n {\n key: 3,\n logo: CrisisLogo,\n name: CONSTANT.CRISIS_NAME,\n color: \"#18B1B9\",\n flavorText: \"bindzFlavor\",\n topics: \"bindzTopics\",\n route: ROUTES.CRISIS_BUY_QUESTIONNAIRE,\n },\n {\n key: 4,\n logo: SupplyChainLogo,\n name: CONSTANT.SUPPLY_CHAIN_NAME,\n color: \"#006F5D\",\n flavorText: \"supplyGrainFlavor\",\n topics: \"supplyGrainTopics\",\n route: ROUTES.SUPPLY_CHAIN_BUY_QUESTIONNAIRE,\n },\n {\n key: 5,\n logo: AbogadosLogo,\n name: CONSTANT.ABOGADOS_NAME,\n color: \"#3a4149\",\n flavorText: \"abogadosFlavor\",\n topics: \"abogadosTopics\",\n route: ROUTES.ABOGADOS_BUY_QUESTIONNAIRE,\n },\n {\n key: 6,\n logo: CreambowLogo,\n name: CONSTANT.CREAM_BOW_NAME,\n color: \"#FAF9F9\",\n flavorText: \"creambowFlavor\",\n topics: \"creambowTopics\",\n route: ROUTES.CREAMBOW_BUY_QUESTIONNAIRE,\n },\n];\n\nclass CatalogueComponent extends Component {\n state = {\n catalogueList: CATALOGUE_LIST,\n };\n\n render() {\n const { catalogueList } = this.state;\n const translate = this.props.translate;\n return (\n
\n \n
\n );\n }\n}\n\nexport default CatalogueComponent;\n","import React, { Component } from \"react\";\nimport { Container } from \"semantic-ui-react\";\nimport { withRouter } from \"react-router-dom\";\nimport { withTranslation } from \"react-i18next\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport BackButton from \"../helpers/BackButton\";\nimport CatalogueComponent from \"./CatalogueComponent\";\nimport { removeStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport \"./catalogueStyles.css\";\n\nclass CatalogueScreen extends Component {\n componentDidMount() {\n this.transactionStorages();\n }\n\n transactionStorages = () => {\n const storagesToRemove = [\n LOCALSTORAGE.medicaQuestionnaire,\n LOCALSTORAGE.simunationQuestionnaire,\n LOCALSTORAGE.simulationCreated,\n LOCALSTORAGE.simulationSimunationCreated,\n ];\n\n storagesToRemove.forEach((storage) => {\n removeStorage(storage);\n });\n };\n\n render() {\n const translate = this.props.t;\n return (\n \n \n \n \n \n \n );\n }\n}\n\nexport default withTranslation(\"CatalogueScreen\", \"Common\")(withRouter(CatalogueScreen));\n","import React from \"react\";\nimport { Form, Input, TextArea } from \"semantic-ui-react\";\nimport HelpHoverComponent from \"./HelpHoverComponent\";\nimport \"./input.css\";\n\nconst InputComponent = (props) => {\n const {\n handleChange,\n label,\n onError,\n errorMessage,\n multiLine,\n id,\n rows,\n placeholder,\n type,\n value,\n min,\n counter,\n maxLength,\n length,\n helpMessage,\n labelAlignment,\n disabled,\n boldContent,\n } = props;\n\n const handleInputChange = (event, { value }) => {\n let id = event.target.id,\n data = value;\n handleChange(id, data);\n };\n\n let descriptionLabel = null;\n let inputSection = null;\n let errorMessageSpan = null;\n let counterSpan = null;\n let inputClassNames = null;\n let helpHoverComponent = null;\n\n if (helpMessage && helpMessage.length > 0) {\n helpHoverComponent = ;\n }\n\n if (label) {\n let labelClassNames = \"labelContainer\";\n if (labelAlignment === \"left\") {\n labelClassNames += \" leftLabelAlignment\";\n }\n\n descriptionLabel = (\n
\n \n {helpHoverComponent}\n
\n );\n }\n\n if (onError && errorMessage) {\n errorMessageSpan = {errorMessage};\n }\n\n if (multiLine) {\n inputClassNames = \"textAreaContainer\";\n if (onError) {\n inputClassNames += \" errorIndicator\";\n }\n inputSection = (\n
\n handleInputChange(event, { value })}\n disabled={disabled}\n />\n
\n );\n } else {\n inputClassNames = \"inputContainer\";\n if (onError) {\n inputClassNames += \" errorIndicator\";\n } else if (boldContent) {\n inputClassNames += \" boldContent\";\n }\n\n inputSection = (\n
\n handleInputChange(event, { value })}\n disabled={disabled}\n />\n
\n );\n }\n\n if (counter) {\n let counterClassNames = \"numberIndicators\";\n if (length > maxLength) {\n counterClassNames += \" errorCounter\";\n }\n\n counterSpan = {`${length}/${maxLength}`};\n }\n\n return (\n \n {descriptionLabel}\n {inputSection}\n {errorMessageSpan}\n {counterSpan}\n \n );\n};\nexport default InputComponent;\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Form } from \"semantic-ui-react\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport NavigationButton from \"../helpers/NavigationButton\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { commitAbogadosBuyFormData } from \"../../store/AbogadosBuySimulation/actions\";\nimport { withRouter } from \"react-router-dom\";\nimport * as ROUTES from \"../../constants/Routes\";\n\nclass BuyQuestionnaireForm extends Component {\n state = {\n form: {\n numberOfStudents: {\n value: 4,\n valid: true,\n rules: {\n minValue: 4,\n },\n },\n },\n formValid: true,\n };\n\n handleFormChange = (id, data) => {\n const updatedForm = { ...this.state.form };\n const updatedFormElement = { ...updatedForm[id] };\n updatedFormElement.value = data;\n updatedFormElement.valid = this.validateFormErrors(updatedFormElement.value, updatedFormElement.rules);\n updatedForm[id] = updatedFormElement;\n\n this.setState({ form: updatedForm, formValid: true });\n };\n\n validateFormErrors = (value, rules) => {\n if (rules) {\n let isValid = true;\n if (rules.minValue) {\n isValid = isValid && value >= rules.minValue;\n }\n return isValid;\n }\n };\n\n handleContinue = () => {\n const dataForm = this.state.form;\n const formValid = Object.keys(dataForm).every((key) => {\n const dataEntry = dataForm[key];\n return dataEntry.valid;\n });\n\n if (!formValid) {\n this.setState({ formValid: false });\n return;\n }\n\n const storeData = {};\n Object.keys(dataForm).forEach((key) => {\n const dataEntry = dataForm[key];\n storeData[key] = dataEntry[\"value\"];\n });\n this.props.commitAbogadosBuyFormData(storeData);\n\n this.props.history.push(ROUTES.ABOGADOS_PAYMENT);\n };\n\n optionsWhoPaying = [\n {\n key: 1,\n text: this.props.t(\"Common:institution\"),\n value: true,\n },\n ];\n\n render() {\n const { t: translate } = this.props;\n\n let inputComponent = null;\n let messagesComponent = null;\n\n inputComponent = (\n \n );\n\n if (!this.state.formValid) {\n messagesComponent = ;\n }\n\n return (\n <>\n
\n {inputComponent}\n {messagesComponent}\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n commitAbogadosBuyFormData: (data) => dispatch(commitAbogadosBuyFormData(data)),\n});\n\nconst HOC = compose(connect(null, mapDispatchToProps), withTranslation(\"CrisisBuySimulation\", \"Common\"), withRouter);\nexport default HOC(BuyQuestionnaireForm);\n","import React, { Component } from \"react\";\nimport BackButton from \"../helpers/BackButton\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport { Container } from \"semantic-ui-react\";\nimport payIcon from \"../../assets/pay-icon.png\";\nimport { withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router-dom\";\nimport BuyQuestionnaireForm from \"./buyQuestionnaireForm\";\n\nclass AbogadosBuyQuestionnaire extends Component {\n render() {\n const translate = this.props.t;\n return (\n \n \n \n
\n \n
\n \n
\n );\n }\n}\n\nexport default withTranslation(\"Common\")(withRouter(AbogadosBuyQuestionnaire));\n","import React from \"react\";\nimport { Button, Dropdown } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faBars } from \"@fortawesome/free-solid-svg-icons\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\n\nconst ActionButtons = (props) => {\n const translate = props.translate;\n const requestedSimulation = props.simulationDetails.name;\n let component = null;\n let actionButtons = [];\n var actionsDictionary = {};\n\n const registeredStudentsAction = () => {\n props.history.push({\n pathname: ROUTES.ABOGADOS_REGISTERED_STUDENTS,\n search: requestedSimulation,\n });\n };\n \n const standingsAction = () => {\n props.history.push({\n pathname: ROUTES.ABOGADOS_STANDINGS,\n search: requestedSimulation,\n });\n };\n \n actionsDictionary[\"handleAdvanceModal\"] = props.handleAdvanceModal;\n actionsDictionary[\"registeredStudentsAction\"] = registeredStudentsAction;\n actionsDictionary[\"standingsAction\"] = standingsAction;\n actionsDictionary[\"handleShareModal\"] = props.handleShareModal;\n actionsDictionary[\"backAction\"] = () => props.history.push(ROUTES.HOME);\n\n if (props.detailsLoaded) {\n actionButtons = buildActionButtons(props.simulationDetails);\n }\n\n if (props.isMobile) {\n component = (\n }>\n \n {actionButtons.map((button) => {\n const buttonName = translate(button.name).toUpperCase();\n return (\n \n {buttonName}\n \n );\n })}\n \n \n );\n } else {\n component = (\n
\n {actionButtons.map((button) => {\n const buttonName = translate(button.name).toUpperCase();\n return (\n \n );\n })}\n
\n );\n }\n return component;\n};\n\nconst buildActionButtons = (details) => {\n var actionButtons = [\n ...abogadosButtons.map((value) => {\n return { ...value };\n }),\n ];\n\n if (details.status === CONSTANT.FINISHED) {\n const buttonIndex = actionButtons.findIndex((element) => element.key === \"advanceSimulation\");\n actionButtons[buttonIndex].hide = true;\n } else if (details.status === CONSTANT.AWAITING_INITIALIZATION) {\n const advanceButtonIndex = actionButtons.findIndex((element) => element.key === \"advanceSimulation\");\n actionButtons[advanceButtonIndex].hide = true;\n const startButtonIndex = actionButtons.findIndex((element) => element.key === \"startSimulation\");\n actionButtons[startButtonIndex].hide = false;\n }\n \n return actionButtons.filter((button) => !button.hide);\n};\n\nconst abogadosButtons = [\n {\n key: \"advanceSimulation\",\n name: \"AdvanceSimulationModal:advanceSimulation\",\n action: \"handleAdvanceModal\",\n hide: false,\n },\n {\n key: \"startSimulation\",\n name: \"AdvanceSimulationModal:startSimulation\",\n action: \"handleAdvanceModal\",\n hide: true,\n },\n {\n key: \"standings\",\n name: \"standings\",\n action: \"standingsAction\",\n hide: false,\n },\n {\n key: \"registeredStudents\",\n name: \"registeredStudents\",\n action: \"registeredStudentsAction\",\n hide: false,\n },\n {\n key: \"shareSimulation\",\n name: \"shareSimulation\",\n action: \"handleShareModal\",\n hide: false,\n },\n {\n key: \"back\",\n name: \"Common:back\",\n action: \"backAction\",\n hide: false,\n },\n];\n\nexport default ActionButtons;\n","import React from \"react\";\nimport \"./SimulationDetailStyles.css\";\n\nconst SimulationTitle = (props) => {\n return (\n
\n

{props.title}

\n \n
\n );\n};\n\nexport default SimulationTitle;\n","import React, { Component } from \"react\";\nimport { List, Image } from \"semantic-ui-react\";\nimport abogadosLogo from \"../../assets/abogados-logo.png\";\nimport SimulationTitle from \"./SimulationTitle\";\nimport HelpHoverComponent from \"../helpers/HelpHoverComponent\";\n\nclass AbogadosDetailComponent extends Component {\n\n render() {\n const translate = this.props.translate;\n const simulationDetails = this.props.simulationDetails;\n const loadingDetails = this.props.loadingDetails;\n let detailBoxStyles = \"detailsDataLoading\";\n let listDetails = [];\n\n if (!loadingDetails && simulationDetails) {\n detailBoxStyles = \"detailsDataCharged\";\n listDetails = [\n {\n item: translate(\"Common:status\"),\n content: translate(`Common:${simulationDetails.status}`),\n },\n {\n item: translate(\"Common:currentDay\"),\n content: simulationDetails.currentSimulationDay,\n },\n ];\n } else {\n listDetails = [{ key: 1, item: translate(\"Common:status\"), content: \"\" }];\n }\n\n return (\n
\n \n
\n
\n \n
\n
\n

{translate(\"simulationDetails\").toUpperCase()}

\n \n {listDetails.map((detail, index) => {\n if (!detail.content) return null;\n let helpHoverComponent = null;\n if (detail.hasHelp) {\n helpHoverComponent = ;\n }\n return (\n \n {loadingDetails === true ? (\n
\n ) : (\n
\n {detail.item}: \n {detail.content}\n {helpHoverComponent}\n
\n )}\n \n );\n })}\n \n
\n
\n
\n );\n }\n}\n\nexport default AbogadosDetailComponent;\n","import React from \"react\";\nimport { Button, Modal } from \"semantic-ui-react\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\n\nconst ErrorModal = (props) => {\n const {\n openErrorModal,\n title,\n message,\n translate,\n handleErrorModal,\n retryText,\n hasRetry,\n handleRetry,\n warning,\n } = props;\n let customTitle = translate(\"Common:error\");\n let actionButton = null;\n\n if (title) {\n customTitle = title;\n }\n\n if (hasRetry) {\n actionButton =
\n );\n }\n}\n\nexport default CrisisShareSimulationModal;\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"semantic-ui-react\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport { withTranslation } from \"react-i18next\";\nimport { compose } from \"redux\";\nimport { abogadosAdvanceSimulation, abogadosResetRequestsState } from \"../../store/AbogadosSimulationDetails/actions\";\nimport { connect } from \"react-redux\";\n\nclass AdvanceSimulationModal extends Component {\n advanceSimulation = () => {\n const advanceParams = { simulationId: this.props.simulationDetails.id };\n this.props.abogadosAdvanceSimulation(advanceParams);\n };\n\n handleClose = () => {\n this.props.abogadosResetRequestsState();\n this.props.handleAdvanceModal();\n };\n\n successAction = () => {\n this.props.getSimulationDetails(this.props.simulationDetails.id);\n this.handleClose();\n };\n\n render() {\n const translate = this.props.t;\n const { loading, errorMessage, success, failedTeams } = this.props.advanceSimulationRequestStatus;\n\n let oncloseFunction = this.handleClose;\n let statusComponent = null;\n let buttonContent = translate(\"AdvanceSimulationModal:advance\");\n let customSuccessMessage = translate(\"AdvanceSimulationModal:Simulation advanced successfully.\");\n let titleText = translate(`AdvanceSimulationModal:advanceSimulation`);\n\n if (this.props.simulationDetails.status === \"AwaitingInitialization\") {\n buttonContent = translate(\"AdvanceSimulationModal:start\");\n titleText = translate(`AdvanceSimulationModal:startSimulation`);\n statusComponent = (\n
\n

{translate(\"StartSimulationMessage\")}

\n
\n );\n } else if (\n this.props.simulationDetails.status === \"Initialized\" ||\n this.props.simulationDetails.status === \"Running\"\n ) {\n statusComponent = (\n
\n

{translate(\"AdvanceMessage\")}

\n
\n );\n }\n\n let actionButtons = (\n \n \n \n \n \n {actionButtons}\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n abogadosGetSimulationDetails: (simulationId) => dispatch(abogadosGetSimulationDetails(simulationId)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n abogadosSimulationDetails: state.abogadosSimulationDetails.simulationDetails,\n abogadosSimulationDetailsRequestStatus: state.abogadosSimulationDetails.simulationDetailsRequestStatus,\n language: state.user.userProfile.language,\n };\n};\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\n \"MedicaDetailScreen\",\n \"CrisisDetailScreen\",\n \"ModifyModal\",\n \"ShareModal\",\n \"MedicaAdvancedOptions\",\n \"Common\"\n ),\n withRouter\n);\n\nexport default HOC(AbogadosDetail);\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { Table } from \"semantic-ui-react\";\n\nclass RegisteredStudentsComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n registeredStudentList: props.simulationRegisteredStudents,\n direction: null,\n };\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, registeredStudentList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n registeredStudentList: _.sortBy(registeredStudentList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n registeredStudentList: registeredStudentList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, registeredStudentList } = this.state;\n const arrowsIcon = ;\n const teamsAssigned = registeredStudentList.some((x) => x.team?.length > 0);\n return (\n
(this.topTable = ref)}>\n

{`${translate(\"registeredStudentsOf\")}: ${registeredStudentList.length}`}

\n \n \n \n {teamsAssigned ? (\n \n
\n {translate(\"Common:team\").toUpperCase()}\n {arrowsIcon}\n
\n
\n ) : null}\n \n
\n {translate(\"name\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"email\").toUpperCase()}\n {arrowsIcon}\n
\n
\n
\n
\n \n {registeredStudentList.map((student) => {\n return (\n \n {teamsAssigned ? {student.team} : null}\n {`${student.studentFirstName} ${student.studentLastName}`}\n {student.email}\n \n );\n })}\n \n
\n
\n );\n }\n}\n\nexport default RegisteredStudentsComponent;\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { Container } from \"semantic-ui-react\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { getStorage } from \"../../services/StorageService\";\nimport { abogadosGetRegisteredStudents } from \"../../store/AbogadosSimulationDetails/actions\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport RegisteredStudentsComponent from \"./RegisteredStudentsComponent\";\n\nclass AbogadosRegisteredStudents extends Component {\n state = {\n requestedSimulationName: getUrlSearchParam(),\n };\n\n componentDidMount() {\n const requestedSimulationId = getStorage(LOCALSTORAGE.requestedSimulation);\n this.props.getRegisteredStudents(requestedSimulationId);\n }\n\n render() {\n const translate = this.props.t;\n const registeredStudentsStatus = this.props.registeredStudentsRequestStatus;\n let body = (\n \n );\n\n if (!registeredStudentsStatus.success) {\n body = ;\n }\n if (registeredStudentsStatus.loading) {\n body = ;\n }\n\n return (\n \n \n \n {body}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getRegisteredStudents: (simulationId) => dispatch(abogadosGetRegisteredStudents(simulationId)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n registeredStudentsRequestStatus: state.abogadosSimulationDetails.registeredStudents,\n language: state.user.userProfile.language,\n };\n};\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"RegisteredStudentsScreen\", \"Common\"),\n withRouter\n);\n\nexport default HOC(AbogadosRegisteredStudents);\n","import { faChevronDown, faChevronRight, faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport _ from \"lodash\";\nimport memoizeOne from \"memoize-one\";\nimport React, { PureComponent } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { Container, Table } from \"semantic-ui-react\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { abogadosGetSimulationStandings } from \"../../store/AbogadosSimulationDetails/actions\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport \"./abogadosStandings.css\";\nimport { getStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\n\nexport class abogadosStandings extends PureComponent {\n state = {\n expandedRows: [],\n requestedSimulationName: getUrlSearchParam(),\n column: null,\n direction: null,\n };\n\n componentDidMount() {\n const requestedSimulationId = getStorage(LOCALSTORAGE.requestedSimulation);\n this.props.abogadosGetSimulationStandings(requestedSimulationId);\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, direction } = this.state;\n let newColumn = clickedColumn;\n let newDirection = null;\n\n if (column !== clickedColumn) {\n newDirection = \"asc\";\n }\n\n if (column === clickedColumn && direction === \"asc\") {\n newDirection = \"desc\";\n }\n\n if (column === clickedColumn && direction === \"desc\") {\n newColumn = null;\n newDirection = null;\n }\n\n this.setState({\n column: newColumn,\n direction: newDirection,\n });\n };\n\n handleRowClick(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n const newExpandedRows = isRowCurrentlyExpanded\n ? currentExpandedRows.filter((id) => id !== rowId)\n : currentExpandedRows.concat(rowId);\n\n this.setState({ expandedRows: newExpandedRows });\n }\n\n renderItem(item) {\n const translate = this.props.t;\n const clickCallback = () => this.handleRowClick(item.position);\n const itemRows = [\n \n {this.renderItemCaret(item.position)}\n {item.position}\n {item.teamName}\n $ {item.cash.toFixed(2)}\n ,\n ];\n\n if (this.state.expandedRows.includes(item.position)) {\n itemRows.push(\n \n \n \n \n \n \n {translate(\"Team Member\")}\n \n {translate(\"Email\")}\n \n \n {item.teamMembers.students.map(this.renderItemDetails.bind(this))}\n
\n
\n
\n );\n }\n\n return itemRows;\n }\n\n renderItemCaret(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n if (isRowCurrentlyExpanded) {\n return ;\n } else {\n return ;\n }\n }\n\n renderItemDetails(item, index) {\n return (\n \n \n {item.name}\n \n\n \n {item.email}\n \n \n );\n }\n\n standingsTableData = (teamStandings, teamMembersList) => {\n const standingsTable = [];\n\n teamStandings.forEach((element) => {\n const teamName = element.teamName;\n const teamMembers = teamMembersList.find((x) => x.teamName === teamName);\n standingsTable.push({\n position: element.position,\n teamName,\n cash: element.cash,\n teamMembers,\n });\n });\n return standingsTable;\n };\n\n memoizedStandingsTableData = memoizeOne(this.standingsTableData);\n\n render() {\n const translate = this.props.t;\n const standingsState = this.props.standings;\n\n let bodyContent;\n let sortedStandingsData;\n\n if (standingsState.success) {\n const standingsTableData = this.memoizedStandingsTableData(\n standingsState.simulationStandings,\n standingsState.teamMembers\n );\n\n sortedStandingsData = standingsTableData;\n if (this.state.column && this.state.direction) {\n sortedStandingsData = _.orderBy(standingsTableData, [this.state.column], this.state.direction);\n }\n }\n\n if (standingsState.success && sortedStandingsData.length > 0) {\n const standingsTableRows = sortedStandingsData.map(this.renderItem.bind(this));\n const arrowsIcon = ;\n\n bodyContent = (\n \n \n \n \n \n <>\n {translate(\"Position\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"Team\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"Total\")}\n {arrowsIcon}\n \n \n \n \n {standingsTableRows}\n
\n );\n }\n\n if (standingsState.success && sortedStandingsData.length === 0) {\n bodyContent = ;\n }\n\n if (standingsState.loading) {\n bodyContent = ;\n }\n\n if (!standingsState.loading && !standingsState.success) {\n bodyContent = ;\n }\n\n return (\n \n \n \n {bodyContent}\n \n );\n }\n}\nconst mapStateToProps = (state) => ({\n standings: state.abogadosSimulationDetails.standings,\n simulationId: state.abogadosSimulationDetails.simulationDetails.id,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n abogadosGetSimulationStandings: (simulationId) => dispatch(abogadosGetSimulationStandings(simulationId)),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation([\"CrisisStandings\", \"StandingsScreen\", \"Common\"]),\n withRouter\n);\n\nexport default HOC(abogadosStandings);\n","import React from \"react\";\nimport { Form, Checkbox } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faPlus, faMinus } from \"@fortawesome/free-solid-svg-icons\";\nimport HelpHoverComponent from \"./HelpHoverComponent\";\nimport \"./input.css\";\n\nconst InputSliderComponent = (props) => {\n const {\n id,\n label,\n minValue,\n maxValue,\n minValueLabel,\n maxValueLabel,\n value,\n valueLabel,\n helpMessage,\n onChangeInputRange,\n numberAddition,\n numberSubtraction,\n toggleLabel,\n toggleId,\n onChangeInputToggle,\n step,\n } = props;\n\n const onChangeRange = (event) => {\n const name = event.target.id;\n const value = Number(event.target.value);\n const rangeChanged = {\n [name]: value,\n };\n onChangeInputRange(rangeChanged);\n };\n\n const onChangeToggle = (event) => {\n const name = event.target.id;\n const value = event.target.checked;\n const rangeChanged = {\n [name]: value,\n };\n onChangeInputToggle(rangeChanged);\n };\n\n let descriptionLabel = null;\n let inputSection = null;\n let helpHoverComponent = null;\n let toggle = null;\n if (helpMessage && helpMessage.length > 0) {\n helpHoverComponent = ;\n }\n\n if (toggleLabel && toggleLabel.length > 0) {\n toggle = (\n
\n \n \n
\n );\n }\n\n if (label) {\n let labelContainerClassNames = \"labelContainer\";\n if (toggleLabel) {\n labelContainerClassNames += \" heightGrow\";\n }\n\n descriptionLabel = (\n
\n
\n \n\n {toggle}\n
\n
\n
\n

{minValueLabel}

\n \n
\n

{valueLabel}

\n
\n

{maxValueLabel}

\n \n
\n
\n
\n );\n }\n\n inputSection = (\n
\n \n
\n );\n\n return (\n \n {descriptionLabel}\n {inputSection}\n \n );\n};\nexport default InputSliderComponent;\n","import React from \"react\";\nimport { Form, Checkbox } from \"semantic-ui-react\";\nimport HelpHoverComponent from \"./HelpHoverComponent\";\nimport \"./input.css\";\n\nconst InputToggleComponent = (props) => {\n const { id, label, helpMessage, onChangeInputToggle } = props;\n\n const onChangeToggle = (event) => {\n const name = event.target.id;\n const value = event.target.checked;\n const rangeChanged = {\n [name]: value,\n };\n onChangeInputToggle(rangeChanged);\n };\n\n let helpHoverComponent = null;\n\n if (helpMessage && helpMessage.length > 0) {\n helpHoverComponent = ;\n }\n const toggleComponent = (\n
\n \n \n
\n );\n\n return (\n \n
{toggleComponent}
\n
\n );\n};\nexport default InputToggleComponent;\n","export const COLOR_PALETTE = [\n \"#CC5A05\",\n \"#1E5D8E\",\n \"#CC4437\",\n \"#563104\",\n \"#5bb848\",\n \"#F4C454\",\n \"#06D1F2\",\n \"#9E5F05\",\n \"#84579C\",\n \"#FCDF8D\",\n \"#022644\",\n \"#EA843F\",\n \"#1C2B2B\",\n \"#DD81A0\",\n \"#465151\",\n \"#2D4A6C\",\n \"#707070\",\n \"#141E1E\",\n \"#72CAF7\",\n \"#2F83AD\",\n];\n","import { COLOR_PALETTE } from \"../../constants/ColorPalette\";\nimport simplify from \"simplify-js\";\n\nexport const GRAPHS_GROUP = {\n PERFORMANCE: \"performance\",\n DECISIONS: \"decisions\",\n};\n\nexport const getGraphSections = (selectedGraphs, graphsData, selectedTeams) => {\n const structuredData = {\n graphsGroup: selectedGraphs,\n simulationName: graphsData.name,\n currentSimulationDay: graphsData.currentSimulationDay,\n sections: prepareGraphSections(selectedGraphs, graphsData.sections),\n };\n\n const sectionsData = dashboadsDataGenerator(selectedTeams, structuredData);\n return sectionsData;\n};\n\nconst prepareGraphSections = (selectedGraphs, sections) => {\n const graphSections = sections.map((section) => {\n let name = \"\";\n let graphData = {};\n switch (selectedGraphs) {\n case GRAPHS_GROUP.DECISIONS:\n name = section.sectionName;\n graphData = section.changeRequestHistories;\n break;\n default:\n name = section.name;\n graphData = section.statuses;\n break;\n }\n\n return {\n name: name,\n graphData: prepareGraphData(selectedGraphs, graphData),\n };\n });\n\n return graphSections;\n};\n\nconst prepareGraphData = (selectedGraphs, graphData) => {\n const formattedGraphData = graphData.map((graph) => {\n let graphName = \"\";\n let teamsData = [];\n switch (selectedGraphs) {\n case GRAPHS_GROUP.DECISIONS:\n graphName = graph.displayText;\n teamsData = graph.changeRequestHistoricDataPerTeam;\n break;\n default:\n graphName = graph.name;\n teamsData = graph.teamsData;\n break;\n }\n\n return {\n graphName: graphName,\n teamsData: prepareTeamsHistoricData(selectedGraphs, teamsData),\n units: graph.units,\n };\n });\n\n return formattedGraphData;\n};\n\nconst prepareTeamsHistoricData = (selectedGraphs, teamsData) => {\n const teamsHistoricData = teamsData.map((teamData) => {\n let teamName = \"\";\n switch (selectedGraphs) {\n case GRAPHS_GROUP.DECISIONS:\n teamName = teamData.teamName;\n break;\n default:\n teamName = teamData.name;\n break;\n }\n\n return {\n teamName: teamName,\n historicData: teamData.historicData,\n };\n });\n\n return teamsHistoricData;\n};\n\nexport const createTeamsList = (performanceData, standings) => {\n let teams = [];\n\n performanceData.sections[0].statuses[0].teamsData.forEach((team) => {\n let teamName = team.name;\n\n standings.forEach((teamStanding, index) => {\n const seriesTheme = getColorPointIcon(index);\n if (teamName === teamStanding.team) {\n teams.push({\n name: teamName,\n icon: seriesTheme.icon,\n iconName: seriesTheme.name,\n index: index,\n isChecked: true,\n standing: teamStanding.standing,\n color: seriesTheme.color,\n });\n }\n });\n });\n\n const sorteredTeamsList = teams.sort((a, b) => {\n const teamA = a.name.toLowerCase();\n const teamB = b.name.toLowerCase();\n\n if (teamA > teamB) return 1;\n if (teamA < teamB) return -1;\n return 0;\n });\n\n return sorteredTeamsList;\n};\n\nexport const dashboadsDataGenerator = (selectedTeams, graphsData) => {\n const currentSimulationDay = graphsData.currentSimulationDay;\n const sections = createSectionsList(graphsData, currentSimulationDay, selectedTeams);\n\n return sections;\n};\n\nconst createSectionsList = (graphsData, currentSimulationDay, selectedTeams) => {\n const sections = graphsData.sections.map((section, index) => {\n return {\n index: index,\n name: section.name,\n data: createStatusesList(graphsData.graphsGroup, section, currentSimulationDay, selectedTeams),\n };\n });\n return sections;\n};\n\nconst createStatusesList = (graphGroup, section, currentSimulationDay, selectedTeams) => {\n const statuses = section.graphData.map((status) => {\n const graphName = status.graphName;\n return {\n index: `${section.name}_${graphName}`,\n ...createLineValues(graphGroup, status, currentSimulationDay, selectedTeams),\n units: status.units,\n name: graphName,\n };\n });\n\n return statuses;\n};\n\nconst createLineValues = (graphGroup, instances, currentSimulationDay, selectedTeams) => {\n let lineValues = [];\n let lineLabels = [];\n let newTeamsData = {};\n let teamsData = instances.teamsData;\n teamsData.forEach((data) => {\n for (let i = 0; i < selectedTeams.length; i++) {\n if (selectedTeams[i].name === data.teamName) {\n const historicData = formatHistoricData(data.historicData);\n let simplifiedHistoricData = historicData;\n if (graphGroup === GRAPHS_GROUP.PERFORMANCE) {\n if (instances.graphName === \"Rookies\" || instances.graphName === \"Experts\") {\n simplifiedHistoricData = simplifyDecisionsData(historicData);\n } else {\n simplifiedHistoricData = simplifyHistoricData(historicData, currentSimulationDay, selectedTeams);\n }\n }\n if (graphGroup === GRAPHS_GROUP.DECISIONS) {\n simplifiedHistoricData = simplifyDecisionsData(historicData);\n }\n newTeamsData = {\n index: i,\n name: data.teamName,\n historicData: historicData,\n historicDataSimplified: simplifiedHistoricData,\n color: selectedTeams[i].color,\n icon: selectedTeams[i].iconName,\n figure: selectedTeams[i].icon,\n };\n lineValues.push(newTeamsData);\n lineLabels.push(data.teamName);\n }\n }\n });\n\n return {\n lineValues: lineValues,\n lineLabels: lineLabels,\n };\n};\n\nconst simplifyDecisionsData = (decisionData) => {\n const simplifiedDecisionData = [];\n\n for (let currentData = 0; currentData < decisionData.length; currentData++) {\n const dataPoint = decisionData[currentData];\n\n if (dataPoint.x === 0) {\n simplifiedDecisionData.push(dataPoint);\n continue;\n }\n\n if (\n dataPoint.y !== simplifiedDecisionData[simplifiedDecisionData.length - 1].y ||\n dataPoint === decisionData[decisionData.length - 1]\n ) {\n simplifiedDecisionData.push(decisionData[currentData - 1]);\n simplifiedDecisionData.push(dataPoint);\n }\n }\n\n return simplifiedDecisionData;\n};\n\nexport const formatHistoricData = (historicData) => {\n const formattedHistoricData = historicData.map((data) => {\n return {\n x: data.day,\n y: data.value,\n };\n });\n\n return formattedHistoricData;\n};\n\nconst simplifyHistoricData = (historicData, currentSimulationDay, selectedTeams) => {\n let simplifiedData = [];\n const willSimplifyData = shouldSimplifyData(currentSimulationDay, selectedTeams);\n if (willSimplifyData) {\n const tolerance = toleranceCalculator(currentSimulationDay, selectedTeams);\n simplifiedData = simplify(historicData, tolerance, false);\n } else {\n simplifiedData = historicData;\n }\n return simplifiedData;\n};\n\nconst shouldSimplifyData = (currentSimulationDay, selectedTeams) => {\n const pointsQuantity = currentSimulationDay * selectedTeams.length;\n const minQuantityPointsRender = 7200;\n if (pointsQuantity > minQuantityPointsRender) {\n return true;\n }\n return false;\n};\n\nconst toleranceCalculator = (currentSimulationDay, selectedTeams) => {\n const pointsQuantity = currentSimulationDay * selectedTeams.length;\n let tolerance = null;\n if (pointsQuantity > 7200 && pointsQuantity < 14201) {\n tolerance = 1.5;\n } else if (pointsQuantity > 14200 && pointsQuantity < 21201) {\n tolerance = 2.5;\n } else if (pointsQuantity > 21200 && pointsQuantity < 28201) {\n tolerance = 3.5;\n } else if (pointsQuantity > 28200 && pointsQuantity < 35201) {\n tolerance = 4.5;\n } else {\n tolerance = 5;\n }\n\n return tolerance;\n};\n\nconst getColorPointIcon = (index) => {\n let icon = \"●\";\n let name = \"circle\";\n let color = COLOR_PALETTE[index];\n if (index > 19 && index < 40) {\n icon = \"■\";\n name = \"rect\";\n color = COLOR_PALETTE[index - 20];\n } else if (index > 39 && index < 60) {\n icon = \"▲\";\n name = \"triangle\";\n color = COLOR_PALETTE[index - 40];\n } else if (index > 59 && index < 80) {\n icon = \"★\";\n name = \"star\";\n color = COLOR_PALETTE[index - 60];\n }\n return {\n icon: icon,\n name: name,\n color: color,\n };\n};\n\nexport const abbreviateNumber = (value) => {\n const isNegative = value < 0;\n let formattedNumber = value;\n if (isNegative) formattedNumber = value * -1;\n const suffixList = [\"\", \"k\", \"M\", \"B\", \"T\"];\n const prefixIndex = (Math.log10(formattedNumber) / 3) | 0;\n\n if (prefixIndex === 0) return value;\n const suffix = suffixList[prefixIndex];\n const scale = Math.pow(10, prefixIndex * 3);\n const scaled = formattedNumber / scale;\n\n let fixedScaled = scaled.toFixed(2) + suffix;\n if (Number.isInteger(scaled)) fixedScaled = scaled.toFixed(0) + suffix;\n\n if (isNegative) return \"-\" + fixedScaled;\n return fixedScaled;\n};\n\nexport const getModalPlotDatasets = (plot, selectedTeams, translate) => {\n let datasets = [];\n let lineObj = {};\n let pointsAndLabels = null;\n let filteredPlot = [];\n plot.lineValues.forEach((line) => {\n const showLine = selectedTeams[line.index].isChecked;\n pointsAndLabels = getDataPoints(line.historicData);\n if (showLine || statusAlwaysPresent(plot.name)) {\n lineObj = {\n fillColor: line.color,\n data: pointsAndLabels.points,\n fill: false,\n borderColor: line.color,\n borderWidth: getLineWidth(selectedTeams),\n pointRadius: getLineWidth(selectedTeams),\n pointHoverRadius: getLineWidth(selectedTeams),\n pointBackgroundColor: line.color,\n pointStyle: line.icon,\n };\n datasets.push(lineObj);\n filteredPlot.push(line);\n }\n });\n return {\n datasets: datasets,\n labels: pointsAndLabels.labels,\n options: getModalPlotOptions(plot, filteredPlot, translate),\n };\n};\n\nconst getModalPlotOptions = (plot, filteredPlot, translate) => {\n const options = {\n responsive: true,\n animation: {\n duration: 0,\n },\n title: {\n display: true,\n text: translate(plot.name),\n },\n legend: {\n display: false,\n position: \"bottom\",\n labels: {\n fontColor: \"black\",\n defaultFontFamily: \"Chivo\",\n boxWidth: 5,\n usePointStyle: true,\n },\n fullWidth: false,\n },\n scales: {\n yAxes: [\n {\n ticks: {\n callback: function (value, index, values) {\n if (!plot.YAxisNeedsTranslation) {\n return abbreviateNumber(value);\n } else {\n return plot.Conversions[value];\n }\n },\n beginAtZero: !(plot.name === \"Cash On Hand\" || plot.name === \"Cash\"),\n },\n scaleLabel: {\n display: true,\n labelString: translate(plot.units),\n },\n },\n ],\n xAxes: [\n {\n scaleLabel: {\n display: true,\n labelString: translate(\"day\"),\n },\n },\n ],\n },\n tooltips: {\n enabled: false,\n custom: function (tooltipModel) {\n let tooltipElement = document.getElementById(\"chartjs-tooltip\");\n\n if (!tooltipElement) {\n tooltipElement = document.createElement(\"div\");\n tooltipElement.id = \"chartjs-tooltip\";\n tooltipElement.innerHTML = \"
\";\n document.body.appendChild(tooltipElement);\n }\n\n if (tooltipModel.opacity === 0) {\n const showTooltip = () => {\n tooltipElement.style.display = \"block\";\n };\n\n const hideTooltip = () => {\n tooltipElement.style.display = \"none\";\n };\n\n const hideTooltipTimer = () => {\n setTimeout(() => {\n tooltipElement.style.display = \"none\";\n }, 500);\n };\n\n tooltipElement.onmouseover = showTooltip;\n tooltipElement.onmousedown = hideTooltip;\n tooltipElement.onmouseleave = hideTooltipTimer;\n\n return;\n }\n\n tooltipElement.classList.remove(\"above\", \"below\", \"no-transform\");\n if (tooltipModel.yAlign) {\n tooltipElement.classList.add(tooltipModel.yAlign);\n } else {\n tooltipElement.classList.add(\"no-transform\");\n }\n\n if (tooltipModel.body) {\n let titleLines = tooltipModel.title || [];\n let innerHtml = \"\";\n\n titleLines.forEach((title) => {\n const titleStyle = \"font-weight: 900;\";\n innerHtml += `${translate(\"day\")} ${title}`;\n });\n\n innerHtml += \"\";\n\n tooltipModel.dataPoints.forEach((point) => {\n const datasetIndex = point.datasetIndex;\n const teamIcon = filteredPlot[datasetIndex].figure;\n const teamName = filteredPlot[datasetIndex].name;\n const teamColor = filteredPlot[datasetIndex].color;\n const value = point.yLabel.toFixed(2);\n const itemStyle = \"font-weight: 500; display: block; min-width: 40px\";\n const iconStyle = `color:${teamColor}; font-size:18px;`;\n innerHtml += `${teamIcon} ${teamName} ${value}`;\n });\n innerHtml += \"\";\n\n let tableRoot = tooltipElement.querySelector(\"table\");\n tableRoot.innerHTML = innerHtml;\n }\n\n let bottomAjustment = 1;\n let position = this._chart.canvas.getBoundingClientRect();\n\n if (tooltipModel.dataPoints.length > 1) {\n bottomAjustment = 0.8;\n }\n\n tooltipElement.style.display = \"block\";\n tooltipElement.style.left = position.left + window.pageXOffset + tooltipModel.caretX + \"px\";\n tooltipElement.style.top = position.top + window.pageYOffset + tooltipModel.caretY * bottomAjustment + \"px\";\n tooltipElement.style.fontFamily = \"Chivo\";\n tooltipElement.style.fontSize = tooltipModel.bodyFontSize + \"px\";\n tooltipElement.style.fontStyle = tooltipModel._bodyFontStyle;\n tooltipElement.style.padding = \"5px\";\n tooltipElement.style.maxHeight = \"185px\";\n tooltipElement.style.width = \"auto\";\n tooltipElement.style.overflow = \"auto\";\n tooltipElement.style.border = \"2px solid #272727\";\n tooltipElement.style.position = \"absolute\";\n tooltipElement.style.zIndex = 10000;\n tooltipElement.style.backgroundColor = \"#FFF\";\n },\n },\n };\n\n return options;\n};\n\nconst getDataPoints = (historicData) => {\n let points = [];\n let labels = [];\n historicData.forEach((point) => {\n labels.push(point.x);\n points.push(point.y);\n });\n return {\n points: points,\n labels: labels,\n };\n};\n\nexport const statusAlwaysPresent = (plotName) => {\n if (plotName === \"Standard Market Price\" || plotName === \"Custom Demand\") {\n return true;\n }\n return false;\n};\n\nconst getLineWidth = (selectedTeams) => {\n const teamsQuantity = selectedTeams && selectedTeams.filter((team) => team.isChecked).length;\n\n let lineWidth = 1.4;\n if (teamsQuantity > 20 && teamsQuantity < 41) {\n lineWidth = 1.2;\n }\n if (teamsQuantity > 40 && teamsQuantity < 61) {\n lineWidth = 1;\n }\n if (teamsQuantity > 60) {\n lineWidth = 0.6;\n }\n\n return lineWidth;\n};\n\nexport const checkControlStanding = (standings) => {\n const findControl = standings.filter((standing) => standing.team === \"CONTROL\");\n const controlStanding = findControl[0].standing;\n return controlStanding;\n};\n","import { formatHistoricData } from \"./DashBoardUtilities\";\nconst tableNames = {\n initialSections: \"initialSections\",\n playerSections: \"playerSections\",\n};\n\nexport const CREATE_NEW_SCENARIO_SECTIONS = [\n {\n sectionName: \"general\",\n items: [\n {\n name: \"name\",\n type: \"string\",\n minValue: null,\n maxValue: null,\n units: \"\",\n },\n {\n name: \"description\",\n type: \"string\",\n minValue: null,\n maxValue: null,\n units: \"\",\n },\n {\n name: \"seed\",\n type: \"string\",\n minValue: 0,\n maxValue: 20000,\n units: \"\",\n helpMessage: \"seedValueHelp\",\n },\n {\n name: \"initialCash\",\n type: \"number\",\n minValue: 500000,\n maxValue: 2500000,\n units: \"DollarsInterpolation\",\n step: 100000,\n helpMessage: \"initialCashHelp\",\n },\n {\n name: \"stationOneMachineCapacity\",\n type: \"number\",\n minValue: 45,\n maxValue: 90,\n toggle: \"stationOneMachineHasVariance\",\n units: \"UnitPerDayInterpolation\",\n step: 1,\n helpMessage: \"stationOneMachineCapacityHelp\",\n },\n {\n name: \"stationTwoMachineCapacity\",\n type: \"number\",\n minValue: 90,\n maxValue: 180,\n toggle: \"stationTwoMachineHasVariance\",\n units: \"UnitPerDayInterpolation\",\n step: 1,\n helpMessage: \"stationTwoMachineCapacityHelp\",\n },\n {\n name: \"stationThreeMachineCapacity\",\n type: \"number\",\n minValue: 120,\n maxValue: 240,\n toggle: \"stationThreeMachineHasVariance\",\n units: \"UnitPerDayInterpolation\",\n step: 1,\n helpMessage: \"stationThreeMachineCapacityHelp\",\n },\n {\n name: \"inventoryLeadTime\",\n type: \"number\",\n minValue: 3,\n maxValue: 8,\n units: \"DayInterpolation\",\n step: 1,\n helpMessage: \"inventoryLeadTimeHelp\",\n },\n {\n name: \"batchSetupTime\",\n type: \"number\",\n minValue: 3,\n maxValue: 8,\n units: \"DayInterpolation\",\n step: 1,\n helpMessage: \"batchSetupTimeHelp\",\n },\n {\n name: \"customLineWipLimit\",\n type: \"number\",\n minValue: 600,\n maxValue: 1200,\n units: \"UnitInterpolation\",\n step: 1,\n helpMessage: \"customLineWipLimitHelp\",\n },\n ],\n },\n {\n sectionName: \"customDemand\",\n items: [\n {\n name: \"customDemandHasVariance\",\n type: \"toggle\",\n },\n {\n name: \"customDemandInitialValue\",\n type: \"number\",\n minValue: 0,\n maxValue: 50,\n units: \"OrderInterpolation\",\n helpMessage: \"customDemandInitialValueHelp\",\n },\n {\n name: \"customDemandFinalValue\",\n type: \"number\",\n minValue: 100,\n maxValue: 300,\n units: \"OrderInterpolation\",\n helpMessage: \"customDemandFinalValueHelp\",\n },\n {\n name: \"customDemandStabilizationDay\",\n type: \"number\",\n minValue: 1,\n maxValue: 400,\n units: \"DayInterpolation\",\n helpMessage: \"customDemandStabilizationDayHelp\",\n },\n ],\n },\n];\n\nexport const scenarioGraphSection = (scenarioData) => {\n const graphSectionData = createGraphsSection(scenarioData);\n\n return graphSectionData;\n};\n\nconst createGraphsSection = (scenarioData) => {\n const allGraphSeries = [];\n scenarioData.forEach((segmentData) => {\n segmentData.graphs.forEach((data, index) => {\n const graphSerie = {\n graphName: segmentData.graphs[index].name,\n graphUnits: segmentData.graphs[index].units,\n graphsData: {\n dataPoints: formatHistoricData(data.dataPoints),\n scenario: segmentData.name,\n opacity: 1,\n },\n };\n allGraphSeries.push(graphSerie);\n });\n });\n\n const graphData = groupByGraph(allGraphSeries);\n return graphData;\n};\n\nconst groupByGraph = (graphSeries) => {\n const rawGraphNames = graphSeries.map((graph) => {\n return graph.graphName;\n });\n\n const graphNames = Array.from(new Set(rawGraphNames));\n\n return graphNames.map((name) => {\n const currentGraphSeries = graphSeries.filter((graph) => graph.graphName === name);\n\n const currentGraphData = currentGraphSeries.map((graph) => {\n return graph.graphsData;\n });\n\n return {\n graphData: currentGraphData,\n graphName: currentGraphSeries[0].graphName,\n graphUnits: currentGraphSeries[0].graphUnits,\n };\n });\n};\n\nexport const scenarioInitialValuesSection = (templatesData) => {\n const flatInitialValuesData = flattenValuesData(templatesData, tableNames.initialSections);\n const scenarioInitialValues = inflateScenarioValues(flatInitialValuesData);\n\n return scenarioInitialValues;\n};\n\nexport const scenarioPlayerValuesSection = (templatesData) => {\n const flatPlayerValuesData = flattenValuesData(templatesData, tableNames.playerSections);\n const scenarioPlayerValues = inflateScenarioValues(flatPlayerValuesData);\n\n return scenarioPlayerValues;\n};\n\nconst flattenValuesData = (templatesData, tableName) => {\n const result = []\n .concat(\n ...templatesData.map((templateData) =>\n templateData[tableName].map((section) =>\n section.configurations.map((configuration) => ({\n templateName: templateData.name,\n sectionName: section.section,\n configurationName: configuration.name,\n units: configuration.units,\n values: configuration.values,\n }))\n )\n )\n )\n .flat();\n return result;\n};\n\nconst inflateScenarioValues = (flatValuesData) =>\n flatValuesData.reduce((formattedValues, currentValue) => {\n const currentSectionIndex = formattedValues.findIndex((section) => section.name === currentValue.sectionName);\n if (currentSectionIndex === -1) {\n return formattedValues.concat([\n {\n name: currentValue.sectionName,\n configurations: [\n {\n name: currentValue.configurationName,\n units: currentValue.units,\n values: [currentValue.values],\n },\n ],\n },\n ]);\n }\n\n const currentConfigurationIndex = formattedValues[currentSectionIndex].configurations.findIndex(\n (configuration) => configuration.name === currentValue.configurationName\n );\n if (currentConfigurationIndex === -1) {\n formattedValues[currentSectionIndex].configurations.push({\n name: currentValue.configurationName,\n units: currentValue.units,\n values: [currentValue.values],\n });\n return formattedValues;\n }\n\n formattedValues[currentSectionIndex].configurations[currentConfigurationIndex].values.push(currentValue.values);\n return formattedValues;\n }, []);\n\nexport const createInitialFormItemsState = () => {\n const initialFormItemsState = {};\n\n CREATE_NEW_SCENARIO_SECTIONS.forEach((section) => {\n section.items.forEach((item) => {\n const stateItem = `${section.sectionName}_${item.name}`;\n const stateToggleItem = `${section.sectionName}_${item.toggle}`;\n const middleValue = Math.round((item.maxValue + item.minValue) / 2);\n if (item.type === \"number\") {\n initialFormItemsState[stateItem] = middleValue;\n if (item.toggle) {\n initialFormItemsState[stateToggleItem] = false;\n }\n } else if (item.type === \"toggle\") {\n initialFormItemsState[stateItem] = false;\n } else {\n if (item.name === \"seed\") {\n initialFormItemsState[stateItem] = middleValue;\n } else {\n initialFormItemsState[stateItem] = \"\";\n }\n }\n });\n });\n\n return initialFormItemsState;\n};\n\nexport const getItemOperationData = (itemId) => {\n const splitedId = itemId.split(\"_\");\n const sectionName = splitedId[0];\n const itemName = splitedId[1];\n\n const section = CREATE_NEW_SCENARIO_SECTIONS.find((section) => section.sectionName === sectionName);\n\n const item = section.items.find((item) => item.name === itemName);\n\n return item;\n};\n\nexport const getOperationValue = (itemId) => {\n let operationValue = 1;\n\n if (itemId === \"general_seed\") {\n operationValue = 100;\n } else if (itemId === \"general_initialCash\") {\n operationValue = 100000;\n }\n\n return operationValue;\n};\n\nexport const flattenItemSections = () => {\n const flatSingle = CREATE_NEW_SCENARIO_SECTIONS.reduce((acc, val) => acc.concat(val.items), []);\n\n return flatSingle;\n};\n","import React, { Component } from \"react\";\nimport { Divider } from \"semantic-ui-react\";\nimport InputSliderComponent from \"../helpers/InputSliderComponent\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport InputToggleComponent from \"../helpers/InputToggleComponent\";\nimport { CREATE_NEW_SCENARIO_SECTIONS } from \"../utilities/ScenarioInformationUtilities\";\n\nclass NewScenarioFormItems extends Component {\n render() {\n const {\n translate,\n state,\n onChangeInputToggle,\n onChangeInputText,\n onChangeInputRange,\n numberAddition,\n numberSubtraction,\n setRamdomValue,\n } = this.props;\n\n const formInputSections = CREATE_NEW_SCENARIO_SECTIONS.map((section, index) => {\n return (\n \n {translate(section.sectionName)}\n {section.items.map((item, index) => {\n const inputId = `${section.sectionName}_${item.name}`;\n const inputValue = state[inputId];\n let toggleLabelText = null;\n let inputComponent = null;\n let minValueInfo = item.minValue;\n let maxValueInfo = item.maxValue;\n let valueLabel = translate(item.units, { count: inputValue });\n\n let toggleId = null;\n if (item.toggle) {\n toggleLabelText = translate(\"hasVariance\");\n toggleId = `${section.sectionName}_${item.toggle}`;\n }\n\n switch (item.type) {\n case \"string\":\n let showInputError = null;\n let buttonSectionClasses = \"buttonSection\";\n if (item.name === \"description\") {\n showInputError = state.descriptionError;\n } else if (item.name === \"seed\") {\n showInputError = state.seedError;\n if (state.seedError) {\n buttonSectionClasses += \" heigthGrow\";\n }\n } else {\n showInputError = state.nameError;\n }\n\n if (item.name === \"seed\") {\n inputComponent = (\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n );\n } else {\n inputComponent = (\n
\n \n
\n );\n }\n break;\n case \"number\":\n inputComponent = (\n
\n \n
\n );\n break;\n case \"toggle\":\n inputComponent = (\n
\n \n
\n );\n break;\n default:\n break;\n }\n\n return inputComponent;\n })}\n
\n );\n });\n\n return formInputSections;\n }\n}\n\nexport default NewScenarioFormItems;\n","import React, { Component } from \"react\";\nimport { Grid, Form } from \"semantic-ui-react\";\nimport DefaultButton from \"../helpers/DefaultButton\";\nimport NewScenarioFormItems from \"./NewScenarioFormItems\";\nimport {\n createInitialFormItemsState,\n getItemOperationData,\n getOperationValue,\n} from \"../utilities/ScenarioInformationUtilities\";\n\nclass CreateNewScenarioComponent extends Component {\n constructor(props) {\n super(props);\n\n const initialFormItemsState = createInitialFormItemsState();\n\n this.state = {\n ...initialFormItemsState,\n nameError: false,\n descriptionError: false,\n seedError: false,\n inputTextError: \"\",\n };\n }\n\n onChangeInputRange = (rangeChanged) => {\n this.setState(rangeChanged);\n };\n\n onChangeInputToggle = (toggleChanged) => {\n this.setState(toggleChanged);\n };\n\n numberAddition = (itemId) => {\n const item = getItemOperationData(itemId);\n const operationValue = getOperationValue(itemId);\n\n this.setState((state, props) => {\n if (state[itemId] < item.maxValue) {\n state[itemId] = state[itemId] + operationValue;\n }\n return state;\n });\n };\n\n numberSubtraction = (itemId) => {\n const item = getItemOperationData(itemId);\n const operationValue = getOperationValue(itemId);\n\n this.setState((state, props) => {\n if (state[itemId] > item.minValue) {\n state[itemId] = state[itemId] - operationValue;\n }\n return state;\n });\n };\n\n setRamdomValue = (itemId) => {\n const splitedId = itemId.split(\"_\");\n const itemName = splitedId[1];\n const item = getItemOperationData(itemId);\n const min = item.minValue;\n const max = item.maxValue;\n const random = Math.floor(Math.random() * (max - min)) + min;\n\n this.setState({\n [itemId]: random,\n [`${itemName}Error`]: false,\n });\n };\n\n onChangeInputText = (itemId, data) => {\n const splitedId = itemId.split(\"_\");\n const itemName = splitedId[1];\n\n this.setState({\n [itemId]: data,\n [`${itemName}Error`]: false,\n });\n };\n\n validateCreateNewScenarioForm = () => {\n const { handleCreateScenarioModal } = this.props;\n const state = this.state;\n const formItemsStateKeys = Object.keys(state);\n const formDataPost = {};\n\n formItemsStateKeys.forEach((itemKey) => {\n const isFormItem = itemKey.includes(\"_\");\n\n if (isFormItem) {\n const splitedItem = itemKey.split(\"_\");\n const itemName = splitedItem[1];\n\n formDataPost[itemName] = state[itemKey];\n }\n });\n\n const inputsTextPreFilled = this.validateInputsTextPreFilled(formDataPost);\n\n if (inputsTextPreFilled) {\n handleCreateScenarioModal(formDataPost);\n }\n };\n\n validateInputsTextPreFilled = (formDataPost) => {\n const formItemsRefs = this.refs.formItems.refs;\n let inputsTextPreFilled = false;\n\n const nameFilled = this.validateInputName(formDataPost, formItemsRefs);\n const descriptionFilled = this.validateInputDescription(formDataPost, formItemsRefs);\n const seedBetweenRanges = this.validateInputSeed(formDataPost, formItemsRefs);\n\n if (nameFilled && descriptionFilled && seedBetweenRanges) {\n const escenarioNameExist = this.validateScenarioNameExist(formDataPost.name);\n\n if (escenarioNameExist) {\n window.scrollTo(0, formItemsRefs.name.offsetTop);\n inputsTextPreFilled = false;\n this.setState({\n nameError: true,\n inputTextError: \"scenarioNameAlreadyExist\",\n });\n } else {\n inputsTextPreFilled = true;\n }\n }\n return inputsTextPreFilled;\n };\n\n validateInputName = (formDataPost, formItemsRefs) => {\n let nameFilled = true;\n\n if (formDataPost.name.length === 0) {\n window.scrollTo(0, formItemsRefs.name.offsetTop);\n this.setState({\n nameError: true,\n inputTextError: \"required\",\n });\n\n nameFilled = false;\n }\n\n return nameFilled;\n };\n\n validateInputDescription = (formDataPost, formItemsRefs) => {\n let descriptionFilled = true;\n\n if (formDataPost.description.length === 0) {\n window.scrollTo(0, formItemsRefs.description.offsetTop);\n this.setState({\n descriptionError: true,\n inputTextError: \"required\",\n });\n\n descriptionFilled = false;\n }\n\n return descriptionFilled;\n };\n\n validateInputSeed = (formDataPost, formItemsRefs) => {\n let seedBetweenRanges = true;\n\n if (formDataPost.seed < 0 || formDataPost.seed > 20000) {\n window.scrollTo(0, formItemsRefs.seed.offsetTop);\n this.setState({\n seedError: true,\n inputTextError: \"seedMustBeBetweenZeroAndTwentyThousand\",\n });\n\n seedBetweenRanges = false;\n }\n\n return seedBetweenRanges;\n };\n\n validateScenarioNameExist = (scenarioName) => {\n const { professorScenarioList } = this.props;\n\n if (professorScenarioList) {\n const scenario = professorScenarioList.find((scenario) => scenario.name === scenarioName);\n return scenario;\n } else {\n return false;\n }\n };\n\n render() {\n const { translate } = this.props;\n const state = this.state;\n\n return (\n \n \n \n
\n \n
\n \n
\n \n
\n
\n
\n );\n }\n}\n\nexport default CreateNewScenarioComponent;\n","import React from \"react\";\nimport \"./modals.css\";\nimport { Button, Modal, List } from \"semantic-ui-react\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport { flattenItemSections } from \"../utilities/ScenarioInformationUtilities\";\n\nconst CreateNewScenarioModal = (props) => {\n const {\n translate,\n openCreateNewScenarioModal,\n scenarioData,\n handleCreateScenarioModal,\n professorCreateNewScenario,\n scenario,\n history,\n resetProfessorCreateNewScenarioStore,\n } = props;\n\n const flattenItems = flattenItemSections();\n\n const { loadingCreateNewScenario, createNewScenarioSuccess, createNewScenarioMessage } = scenario;\n\n const newScenarioItems = Object.keys(scenarioData);\n\n const postProfessorCreateNewScenario = () => {\n professorCreateNewScenario(scenarioData);\n };\n\n const goScenarioManagerScreenAndResetStore = () => {\n resetProfessorCreateNewScenarioStore();\n history.replace(ROUTES.SCENARIO_MANAGER);\n };\n\n const closeModalAndResetStore = () => {\n handleCreateScenarioModal();\n resetProfessorCreateNewScenarioStore();\n };\n\n let actionButtonsContent = null;\n let content = (\n <>\n

{translate(\"areYouSureDoYouWantCreateNewScenario\")}

\n \n {newScenarioItems.map((item, index) => {\n const itemFinded = flattenItems.find((flatItem) => flatItem.name === item);\n let valueData = scenarioData[item];\n let itemWithUnits = \"\";\n\n if (itemFinded) {\n itemWithUnits = `${valueData} ${translate(itemFinded.units)}`;\n }\n\n if (typeof valueData === \"boolean\") {\n if (valueData === true) {\n itemWithUnits = translate(\"Common:yes\");\n } else {\n itemWithUnits = translate(\"Common:No\");\n }\n }\n\n if (item === \"initialCash\") {\n itemWithUnits = Number(valueData).toLocaleString(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n });\n }\n\n return (\n \n
\n
{translate(item)}
\n
{itemWithUnits}
\n
\n
\n );\n })}\n
\n \n );\n\n if (loadingCreateNewScenario) {\n actionButtonsContent = ;\n } else {\n actionButtonsContent = (\n <>\n \n );\n\n const plotData = getModalPlotDatasets(plot, selectedTeams, translate);\n const data = {\n labels: plotData.labels,\n datasets: plotData.datasets,\n options: plotData.options,\n };\n\n const modalSizes = {\n width: screenWidth * 0.9,\n height: screenHeight * 0.9,\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport default GraphModal;\n","import { COLOR_PALETTE } from \"../../constants/ColorPalette\";\nimport simplify from \"simplify-js\";\n\nexport const getGraphSections = (graphsData, selectedTeams) => {\n const structuredData = {\n sections: prepareGraphSections(graphsData),\n };\n\n const sectionsData = dashboadsDataGenerator(selectedTeams, structuredData);\n return sectionsData;\n};\n\nconst prepareGraphSections = (sections) => {\n const graphSections = sections.map((section) => {\n let name = \"\";\n let graphData = {};\n name = section.name;\n graphData = section.sections;\n\n return {\n name: name,\n graphData: prepareGraphData(graphData),\n };\n });\n\n return graphSections;\n};\n\nconst prepareGraphData = (graphData) => {\n const formattedGraphData = graphData.map((graph) => {\n let graphName = \"\";\n let teamsData = [];\n\n graphName = graph.name;\n teamsData = graph.teamsData;\n\n return {\n graphName: graphName,\n teamsData: prepareTeamsHistoricData(teamsData),\n units: graph.units,\n };\n });\n\n return formattedGraphData;\n};\n\nconst prepareTeamsHistoricData = (teamsData) => {\n const teamsHistoricData = teamsData.map((teamData) => {\n let teamName = \"\";\n\n teamName = teamData.teamName;\n\n return {\n teamName: teamName,\n historicData: teamData.historicData,\n };\n });\n\n return teamsHistoricData;\n};\n\nexport const createTeamsList = (performanceData) => {\n let teams = [];\n let number = 1;\n performanceData[0].sections[0].teamsData.forEach((team, index) => {\n let teamName = team.teamName;\n teams.push({\n name: teamName,\n icon: getColorPointIcon(index).icon,\n iconName: getColorPointIcon(index).name,\n index: index,\n isChecked: true,\n standing: number++,\n color: getColorPointIcon(index).color,\n });\n });\n\n const sorteredTeamsList = teams.sort((a, b) => {\n const teamA = a.name.toLowerCase();\n const teamB = b.name.toLowerCase();\n\n if (teamA > teamB) return 1;\n if (teamA < teamB) return -1;\n return 0;\n });\n\n return sorteredTeamsList;\n};\n\nexport const dashboadsDataGenerator = (selectedTeams, graphsData) => {\n const sections = createSectionsList(graphsData, selectedTeams);\n\n return sections;\n};\n\nconst createSectionsList = (graphsData, selectedTeams) => {\n const sections = graphsData.sections.map((section, index) => {\n return {\n index: index,\n name: section.name,\n data: createStatusesList(section, selectedTeams),\n };\n });\n return sections;\n};\n\nconst createStatusesList = (section, selectedTeams) => {\n const statuses = section.graphData.map((status) => {\n const graphName = status.graphName;\n return {\n index: `${section.name}_${graphName}`,\n ...createLineValues(status, selectedTeams),\n units: status.units,\n name: graphName,\n };\n });\n\n return statuses;\n};\n\nconst createLineValues = (instances, selectedTeams) => {\n let lineValues = [];\n let lineLabels = [];\n let newTeamsData = {};\n let teamsData = instances.teamsData;\n teamsData.forEach((data) => {\n for (let i = 0; i < selectedTeams.length; i++) {\n if (selectedTeams[i].name === data.teamName) {\n const historicData = formatHistoricData(data.historicData);\n let simplifiedHistoricData = historicData;\n\n const currentStep = simplifiedHistoricData[simplifiedHistoricData.length - 1].x;\n\n simplifiedHistoricData = simplifyHistoricData(historicData, currentStep, selectedTeams);\n\n newTeamsData = {\n index: i,\n name: data.teamName,\n historicData: historicData,\n historicDataSimplified: simplifiedHistoricData,\n color: selectedTeams[i].color,\n icon: selectedTeams[i].iconName,\n figure: selectedTeams[i].icon,\n };\n lineValues.push(newTeamsData);\n lineLabels.push(data.teamName);\n }\n }\n });\n\n return {\n lineValues: lineValues,\n lineLabels: lineLabels,\n };\n};\n\nexport const formatHistoricData = (historicData) => {\n const formattedHistoricData = historicData.map((data) => {\n return {\n x: data.step,\n y: data.value,\n };\n });\n\n return formattedHistoricData;\n};\n\nconst simplifyHistoricData = (historicData, currentSimulationDay, selectedTeams) => {\n let simplifiedData = [];\n const willSimplifyData = shouldSimplifyData(currentSimulationDay, selectedTeams);\n if (willSimplifyData) {\n const tolerance = toleranceCalculator(currentSimulationDay, selectedTeams);\n simplifiedData = simplify(historicData, tolerance, false);\n } else {\n simplifiedData = historicData;\n }\n return simplifiedData;\n};\n\nconst shouldSimplifyData = (currentSimulationDay, selectedTeams) => {\n const pointsQuantity = currentSimulationDay * selectedTeams.length;\n const minQuantityPointsRender = 7200;\n if (pointsQuantity > minQuantityPointsRender) {\n return true;\n }\n return false;\n};\n\nconst toleranceCalculator = (currentSimulationDay, selectedTeams) => {\n const pointsQuantity = currentSimulationDay * selectedTeams.length;\n let tolerance = null;\n if (pointsQuantity > 7200 && pointsQuantity < 14201) {\n tolerance = 1.5;\n } else if (pointsQuantity > 14200 && pointsQuantity < 21201) {\n tolerance = 2.5;\n } else if (pointsQuantity > 21200 && pointsQuantity < 28201) {\n tolerance = 3.5;\n } else if (pointsQuantity > 28200 && pointsQuantity < 35201) {\n tolerance = 4.5;\n } else {\n tolerance = 5;\n }\n\n return tolerance;\n};\n\nconst getColorPointIcon = (index) => {\n let icon = \"●\";\n let name = \"circle\";\n let color = COLOR_PALETTE[index];\n if (index > 19 && index < 40) {\n icon = \"■\";\n name = \"rect\";\n color = COLOR_PALETTE[index - 20];\n } else if (index > 39 && index < 60) {\n icon = \"▲\";\n name = \"triangle\";\n color = COLOR_PALETTE[index - 40];\n } else if (index > 59 && index < 80) {\n icon = \"★\";\n name = \"star\";\n color = COLOR_PALETTE[index - 60];\n }\n return {\n icon: icon,\n name: name,\n color: color,\n };\n};\n\nexport const abbreviateNumber = (value) => {\n const isNegative = value < 0;\n let formattedNumber = value;\n if (isNegative) formattedNumber = value * -1;\n const suffixList = [\"\", \"k\", \"M\", \"B\", \"T\"];\n const prefixIndex = (Math.log10(formattedNumber) / 3) | 0;\n\n if (prefixIndex === 0) return value;\n const suffix = suffixList[prefixIndex];\n const scale = Math.pow(10, prefixIndex * 3);\n const scaled = formattedNumber / scale;\n\n let fixedScaled = scaled.toFixed(2) + suffix;\n if (Number.isInteger(scaled)) fixedScaled = scaled.toFixed(0) + suffix;\n\n if (isNegative) return \"-\" + fixedScaled;\n return fixedScaled;\n};\n\nexport const getModalPlotDatasets = (plot, selectedTeams, translate) => {\n let datasets = [];\n let lineObj = {};\n let pointsAndLabels = null;\n let filteredPlot = [];\n plot.lineValues.forEach((line) => {\n const showLine = selectedTeams[line.index].isChecked;\n pointsAndLabels = getDataPoints(line.historicData);\n if (showLine || statusAlwaysPresent(plot.name)) {\n lineObj = {\n fillColor: line.color,\n data: pointsAndLabels.points,\n fill: false,\n borderColor: line.color,\n borderWidth: getLineWidth(selectedTeams),\n pointRadius: getLineWidth(selectedTeams),\n pointHoverRadius: getLineWidth(selectedTeams),\n pointBackgroundColor: line.color,\n pointStyle: line.icon,\n };\n datasets.push(lineObj);\n filteredPlot.push(line);\n }\n });\n return {\n datasets: datasets,\n labels: pointsAndLabels.labels,\n options: getModalPlotOptions(plot, filteredPlot, translate),\n };\n};\n\nconst getModalPlotOptions = (plot, filteredPlot, translate) => {\n const options = {\n responsive: true,\n animation: {\n duration: 0,\n },\n title: {\n display: true,\n text: translate(plot.name),\n },\n legend: {\n display: false,\n position: \"bottom\",\n labels: {\n fontColor: \"black\",\n defaultFontFamily: \"Chivo\",\n boxWidth: 5,\n usePointStyle: true,\n },\n fullWidth: false,\n },\n scales: {\n yAxes: [\n {\n ticks: {\n callback: function (value, index, values) {\n return abbreviateNumber(value);\n },\n beginAtZero: !(plot.name === \"Cash On Hand\" || plot.name === \"Cash\"),\n },\n scaleLabel: {\n display: true,\n labelString: translate(plot.units),\n },\n },\n ],\n xAxes: [\n {\n scaleLabel: {\n display: true,\n labelString: translate(\"day\"),\n },\n },\n ],\n },\n tooltips: {\n enabled: false,\n custom: function (tooltipModel) {\n let tooltipElement = document.getElementById(\"chartjs-tooltip\");\n\n if (!tooltipElement) {\n tooltipElement = document.createElement(\"div\");\n tooltipElement.id = \"chartjs-tooltip\";\n tooltipElement.innerHTML = \"
\";\n document.body.appendChild(tooltipElement);\n }\n\n if (tooltipModel.opacity === 0) {\n const showTooltip = () => {\n tooltipElement.style.display = \"block\";\n };\n\n const hideTooltip = () => {\n tooltipElement.style.display = \"none\";\n };\n\n const hideTooltipTimer = () => {\n setTimeout(() => {\n tooltipElement.style.display = \"none\";\n }, 500);\n };\n\n tooltipElement.onmouseover = showTooltip;\n tooltipElement.onmousedown = hideTooltip;\n tooltipElement.onmouseleave = hideTooltipTimer;\n\n return;\n }\n\n tooltipElement.classList.remove(\"above\", \"below\", \"no-transform\");\n if (tooltipModel.yAlign) {\n tooltipElement.classList.add(tooltipModel.yAlign);\n } else {\n tooltipElement.classList.add(\"no-transform\");\n }\n\n if (tooltipModel.body) {\n let titleLines = tooltipModel.title || [];\n let innerHtml = \"\";\n\n titleLines.forEach((title) => {\n const titleStyle = \"font-weight: 900;\";\n innerHtml += `${translate(\"day\")} ${title}`;\n });\n\n innerHtml += \"\";\n\n tooltipModel.dataPoints.forEach((point) => {\n const datasetIndex = point.datasetIndex;\n const teamIcon = filteredPlot[datasetIndex].figure;\n const teamName = filteredPlot[datasetIndex].name;\n const teamColor = filteredPlot[datasetIndex].color;\n const value = point.yLabel.toFixed(2);\n const itemStyle = \"font-weight: 500; display: block; min-width: 40px\";\n const iconStyle = `color:${teamColor}; font-size:18px;`;\n innerHtml += `${teamIcon} ${teamName} ${value}`;\n });\n innerHtml += \"\";\n\n let tableRoot = tooltipElement.querySelector(\"table\");\n tableRoot.innerHTML = innerHtml;\n }\n\n let bottomAjustment = 1;\n let position = this._chart.canvas.getBoundingClientRect();\n\n if (tooltipModel.dataPoints.length > 1) {\n bottomAjustment = 0.8;\n }\n\n tooltipElement.style.display = \"block\";\n tooltipElement.style.left = position.left + window.pageXOffset + tooltipModel.caretX + \"px\";\n tooltipElement.style.top = position.top + window.pageYOffset + tooltipModel.caretY * bottomAjustment + \"px\";\n tooltipElement.style.fontFamily = \"Chivo\";\n tooltipElement.style.fontSize = tooltipModel.bodyFontSize + \"px\";\n tooltipElement.style.fontStyle = tooltipModel._bodyFontStyle;\n tooltipElement.style.padding = \"5px\";\n tooltipElement.style.maxHeight = \"185px\";\n tooltipElement.style.width = \"auto\";\n tooltipElement.style.overflow = \"auto\";\n tooltipElement.style.border = \"2px solid #272727\";\n tooltipElement.style.position = \"absolute\";\n tooltipElement.style.zIndex = 10000;\n tooltipElement.style.backgroundColor = \"#FFF\";\n },\n },\n };\n\n return options;\n};\n\nconst getDataPoints = (historicData) => {\n let points = [];\n let labels = [];\n historicData.forEach((point) => {\n labels.push(point.x);\n points.push(point.y);\n });\n return {\n points: points,\n labels: labels,\n };\n};\n\nexport const statusAlwaysPresent = (plotName) => {\n if (plotName === \"Standard Market Price\" || plotName === \"Custom Demand\") {\n return true;\n }\n return false;\n};\n\nconst getLineWidth = (selectedTeams) => {\n const teamsQuantity = selectedTeams && selectedTeams.filter((team) => team.isChecked).length;\n\n let lineWidth = 1.4;\n if (teamsQuantity > 20 && teamsQuantity < 41) {\n lineWidth = 1.2;\n }\n if (teamsQuantity > 40 && teamsQuantity < 61) {\n lineWidth = 1;\n }\n if (teamsQuantity > 60) {\n lineWidth = 0.6;\n }\n\n return lineWidth;\n};\n\nexport const checkControlStanding = (standings) => {\n const findControl = standings.filter((standing) => standing.team === \"CONTROL\");\n const controlStanding = findControl[0].standing;\n return controlStanding;\n};\n","import React from \"react\";\nimport { FlexibleWidthXYPlot, XAxis, YAxis, HorizontalGridLines, VerticalGridLines, LineSeries } from \"react-vis\";\nimport { abbreviateNumber, statusAlwaysPresent } from \"./utilities\";\n\nconst VisChart = (props) => {\n const { plot, translate, selectedTeams } = props;\n const { lineValues } = plot;\n let lineSeries = ;\n let maxYDomain = 1;\n let minYDomain = 0;\n\n const selectedTeamNames = selectedTeams.filter((team) => team.isChecked).map((x) => x.name);\n const setLinesToShow = (lineValues) => {\n if (statusAlwaysPresent(plot.name)) {\n lineValues[0].isChecked = true;\n } else {\n for (let i = 0; i < lineValues.length; i++) {\n const currentLine = lineValues[i];\n const teamName = currentLine.name;\n if (selectedTeamNames.includes(teamName)) {\n currentLine.isChecked = true;\n } else {\n currentLine.isChecked = false;\n }\n }\n }\n\n const filteredLines = lineValues.filter((line) => line.isChecked);\n return filteredLines;\n };\n\n const linesToShow = setLinesToShow(lineValues);\n\n if (linesToShow.length > 0) {\n lineSeries = linesToShow.map((line) => {\n const lineYvalues = line.historicDataSimplified.map((x) => {\n return x.y;\n });\n maxYDomain = Math.max(...lineYvalues, maxYDomain);\n minYDomain = Math.min(...lineYvalues, minYDomain);\n return (\n \n );\n });\n }\n\n return (\n \n \n \n \n abbreviateNumber(v)} title={translate(plot.units)} />\n {lineSeries}\n \n );\n};\n\nexport default VisChart;\n","import React from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Grid } from \"semantic-ui-react\";\nimport openPopUpIcon from \"../../assets/pop-out-button.svg\";\nimport VisChart from \"./VisChart\";\n\nconst DashBoardContainer = (props) => {\n const { handleGraphModal, data, selectedTeams, t: translate } = props;\n\n const openButton = (plot) => {\n return (\n \n );\n };\n\n return (\n <>\n {data.map((plot) => {\n return (\n \n
\n
\n {translate(plot.name)} {openButton(plot)}\n
\n \n
\n
\n );\n })}\n \n );\n};\n\nexport default withTranslation(\"CrisisCommon\")(DashBoardContainer);\n","import React from \"react\";\nimport DefaultButton from \"../helpers/DefaultButton\";\n\nconst CurrentDayRefreshSection = (props) => {\n const { translate, currentSimulationDay, getPerformanceData } = props;\n\n return (\n
\n

{`${translate(\"Common:currentDay\")}: ${currentSimulationDay}`}

\n \n
\n );\n};\n\nexport default CurrentDayRefreshSection;\n","import React, { Component, Fragment } from \"react\";\nimport { Grid, Header } from \"semantic-ui-react\";\nimport DashBoardContainer from \"./DashBoardContainer\";\nimport CurrentDayRefreshSection from \"./CurrentDayRefreshSection\";\nimport { withTranslation } from \"react-i18next\";\n\nclass DashBoardSection extends Component {\n shouldComponentUpdate(nextProps) {\n const { selectedTeams, selectedGraphs } = this.props;\n if (nextProps && nextProps.selectedTeams && nextProps.selectedGraphs) {\n if (nextProps.selectedTeams === selectedTeams && nextProps.selectedGraphs === selectedGraphs) {\n return false;\n }\n }\n return true;\n }\n\n render() {\n const { t: translate, selectedTeams, currentSimulationDay, handleGraphModal, sections } = this.props;\n let currentDayRefreshSection = null;\n const dashboadRow = sections.map((section) => {\n return (\n \n \n
{translate(section.name)}
\n
\n \n
\n );\n });\n\n if (currentSimulationDay) {\n currentDayRefreshSection = (\n \n );\n }\n\n return (\n <>\n {currentDayRefreshSection}\n \n \n \n \n {dashboadRow}\n \n \n {dashboadRow}\n \n \n {dashboadRow}\n \n \n \n \n \n );\n }\n}\n\nexport default withTranslation(\"CrisisCommon\")(DashBoardSection);\n","import React from \"react\";\nimport { Grid } from \"semantic-ui-react\";\nimport DefaultButton from \"../helpers/DefaultButton\";\n\nconst TeamListMobile = (props) => {\n const { handleTeamsListModal, buttonTitle } = props;\n return (\n \n \n
\n
\n \n
\n
\n
\n
\n );\n};\n\nexport default TeamListMobile;\n","import React from \"react\";\n\nconst TeamsHandlers = (props) => {\n const { translate, teamsList, handleAllChecked, handleTopSelection, selection } = props;\n const teamsQuantity = teamsList.length;\n let topTreeButton = null;\n let topFiveButton = null;\n let topTenButton = null;\n\n const selectAllContainer = (\n
\n \n \n
\n );\n\n if (teamsQuantity > 5) {\n let clickHandler = null;\n if (selection !== 3) {\n clickHandler = () => handleTopSelection(3);\n }\n topTreeButton = (\n \n );\n }\n\n if (teamsQuantity > 9) {\n let clickHandler = null;\n if (selection !== 5) {\n clickHandler = () => handleTopSelection(5);\n }\n topFiveButton = (\n \n );\n }\n\n if (teamsQuantity > 19) {\n let clickHandler = null;\n if (selection !== 10) {\n clickHandler = () => handleTopSelection(10);\n }\n topTenButton = (\n \n );\n }\n\n const specialSelectionsContainer = (\n
\n {topTreeButton}\n {topFiveButton}\n {topTenButton}\n
\n );\n\n return (\n
\n {selectAllContainer}\n {specialSelectionsContainer}\n
\n );\n};\n\nexport default TeamsHandlers;\n","import React, { Component } from \"react\";\nimport { Form } from \"semantic-ui-react\";\nimport TeamsHandlers from \"./TeamsHandlers\";\nimport { checkControlStanding } from \"./utilities\";\n\nclass TeamsListAside extends Component {\n state = {\n teamsList: [],\n checkType: \"selectAll\",\n standingModified: false,\n };\n\n componentDidMount() {\n const { teamsList } = this.props;\n this.setState({\n teamsList: teamsList,\n });\n }\n\n componentDidUpdate(lastProps) {\n const { teamsList } = this.props;\n\n if (lastProps.selectedGraphs !== this.props.selectedGraphs) {\n this.setState({\n teamsList: teamsList,\n });\n }\n }\n\n handleCheckChildElement = (event) => {\n const { teamsList } = this.state;\n let teams = [];\n this.setState({\n checkType: \"\",\n });\n teamsList.forEach((team) => {\n if (team.name === event.target.value) {\n team.isChecked = event.target.checked;\n }\n teams.push(team);\n });\n this.setState({\n teamsList: teams,\n selection: 0,\n });\n this.props.modifySelectedTeamsList(teams);\n };\n\n handleAllChecked = (event) => {\n const { teamsList, checkType } = this.state;\n let teams = [];\n if (checkType !== event.target.id) {\n if (event.target.id === \"selectAll\") {\n teamsList.forEach((team) => {\n team.isChecked = true;\n teams.push(team);\n });\n } else {\n teamsList.forEach((team) => {\n team.isChecked = false;\n teams.push(team);\n });\n }\n this.props.modifySelectedTeamsList(teams);\n this.setState({\n teamsList: teams,\n checkType: event.target.id,\n selection: 0,\n });\n }\n };\n\n handleTopSelection = (selection) => {\n const { standings } = this.props;\n const { teamsList, standingModified } = this.state;\n const controlStanding = checkControlStanding(standings, selection);\n let newTeamsList = [];\n\n teamsList.forEach((team) => {\n if (!standingModified) {\n this.setState({\n standingModified: true,\n });\n\n if (controlStanding <= selection) {\n if (team.standing > controlStanding) {\n team.standing = team.standing - 1;\n }\n }\n }\n\n if (team.standing > selection || team.name === \"CONTROL\") {\n team.isChecked = false;\n } else {\n team.isChecked = true;\n }\n newTeamsList.push(team);\n });\n\n this.props.modifySelectedTeamsList(newTeamsList);\n this.setState({\n teamsList: newTeamsList,\n checkType: \"top\",\n selection: selection,\n });\n };\n\n showStandingNumber = (team) => {\n const { checkType, selection } = this.state;\n let showStanding = \"\";\n if (checkType === \"top\" && selection >= team.standing && team.name !== \"CONTROL\") {\n showStanding = ` (${team.standing})`;\n }\n\n return showStanding;\n };\n\n render() {\n const { translate } = this.props;\n const { teamsList, selection } = this.state;\n\n const itemsList = teamsList.map((team) => {\n const showStanding = this.showStandingNumber(team);\n let disableTeam = false;\n\n return (\n \n
\n \n\n \n
\n
\n );\n });\n\n return (\n
\n
\n

{translate(\"Common:teams\")}

\n \n
\n
\n
{itemsList}
\n
\n
\n );\n }\n}\n\nexport default TeamsListAside;\n","import React from \"react\";\n\nconst TeamsHandlers = (props) => {\n const { translate, teamsList, handleAllChecked, handleTopSelection, selection } = props;\n const teamsQuantity = teamsList.length;\n let topTreeButton = null;\n let topFiveButton = null;\n let topTenButton = null;\n\n const selectAllContainer = (\n
\n \n \n
\n );\n\n if (teamsQuantity > 5) {\n let clickHandler = null;\n if (selection !== 3) {\n clickHandler = () => handleTopSelection(3);\n }\n topTreeButton = (\n \n );\n }\n\n if (teamsQuantity > 9) {\n let clickHandler = null;\n if (selection !== 5) {\n clickHandler = () => handleTopSelection(5);\n }\n topFiveButton = (\n \n );\n }\n\n if (teamsQuantity > 19) {\n let clickHandler = null;\n if (selection !== 10) {\n clickHandler = () => handleTopSelection(10);\n }\n topTenButton = (\n \n );\n }\n\n const specialSelectionsContainer = (\n
\n {topTreeButton}\n {topFiveButton}\n {topTenButton}\n
\n );\n\n return (\n
\n {selectAllContainer}\n {specialSelectionsContainer}\n
\n );\n};\n\nexport default TeamsHandlers;\n","import React, { Component } from \"react\";\nimport { Modal, Button, Form } from \"semantic-ui-react\";\nimport TeamsHandlers from \"../dashBoards/TeamsHandlers\";\nimport { checkControlStanding } from \"./utilities\";\n\nclass TeamsListModal extends Component {\n state = {\n teamsList: [],\n areAllChecked: true,\n areAllUnchecked: false,\n standingModified: false,\n };\n\n componentDidMount() {\n this.setState({\n teamsList: this.props.teamsList,\n });\n }\n\n componentDidUpdate(lastProps) {\n const { teamsList } = this.props;\n\n if (lastProps.selectedGraphs !== this.props.selectedGraphs) {\n this.setState({\n teamsList: teamsList,\n });\n }\n }\n\n handleCheckChildElement = (event) => {\n const { teamsList } = this.state;\n let teams = [];\n this.setState({\n checkType: \"\",\n });\n teamsList.forEach((team) => {\n if (team.name === event.target.value) {\n team.isChecked = event.target.checked;\n }\n teams.push(team);\n });\n this.setState({\n teamsList: teams,\n selection: 0,\n });\n this.props.modifySelectedTeamsList(teams);\n };\n\n handleAllChecked = (event) => {\n const { teamsList, checkType } = this.state;\n let teams = [];\n if (checkType !== event.target.id) {\n if (event.target.id === \"selectAll\") {\n teamsList.forEach((team) => {\n team.isChecked = true;\n teams.push(team);\n });\n } else {\n teamsList.forEach((team) => {\n team.isChecked = false;\n teams.push(team);\n });\n }\n this.props.modifySelectedTeamsList(teams);\n this.setState({\n teamsList: teams,\n checkType: event.target.id,\n selection: 0,\n });\n }\n };\n\n handleTopSelection = (selection) => {\n const { standings } = this.props;\n const { teamsList, standingModified } = this.state;\n const controlStanding = checkControlStanding(standings, selection);\n let newTeamsList = [];\n\n teamsList.forEach((team) => {\n if (!standingModified) {\n this.setState({\n standingModified: true,\n });\n\n if (controlStanding <= selection) {\n if (team.standing > controlStanding) {\n team.standing = team.standing - 1;\n }\n }\n }\n\n if (team.standing > selection || team.name === \"CONTROL\") {\n team.isChecked = false;\n } else {\n team.isChecked = true;\n }\n newTeamsList.push(team);\n });\n\n this.props.modifySelectedTeamsList(newTeamsList);\n this.setState({\n teamsList: newTeamsList,\n checkType: \"top\",\n selection: selection,\n });\n };\n\n showStandingNumber = (team) => {\n const { checkType, selection } = this.state;\n let showStanding = \"\";\n if (checkType === \"top\" && selection >= team.standing && team.name !== \"CONTROL\") {\n showStanding = ` (${team.standing})`;\n }\n\n return showStanding;\n };\n\n render() {\n const { translate, openTeamsListModal, handleTeamsListModal } = this.props;\n const { teamsList, selection } = this.state;\n const itemsList = teamsList.map((team) => {\n const showStanding = this.showStandingNumber(team);\n let disableTeam = false;\n\n return (\n \n
\n \n\n \n
\n
\n );\n });\n\n return (\n \n \n {translate(\"chooseATeam\")}\n \n \n \n
{itemsList}
\n
\n \n \n );\n })}\n \n );\n }\n return component;\n};\n\nconst buildActionButtons = (details) => {\n var actionButtons = [\n ...crisisButtons.map((value) => {\n return { ...value };\n }),\n ];\n if (!details.professorManagedProgress || details.status === CONSTANT.FINISHED) {\n const buttonIndex = actionButtons.findIndex((element) => element.key === \"advanceSimulation\");\n actionButtons[buttonIndex].hide = true;\n }\n if (\n (details.status !== CONSTANT.RUNNING && details.status !== CONSTANT.FINISHED) ||\n details.hasANextIteration === true\n ) {\n const nextRunButtonIndex = actionButtons.findIndex((element) => element.key === \"createNextRun\");\n actionButtons[nextRunButtonIndex].hide = true;\n }\n\n if (details.professorManagedProgress && details.status === CONSTANT.AWAITING_INITIALIZATION) {\n const advanceButtonIndex = actionButtons.findIndex((element) => element.key === \"advanceSimulation\");\n actionButtons[advanceButtonIndex].hide = true;\n const startButtonIndex = actionButtons.findIndex((element) => element.key === \"startSimulation\");\n actionButtons[startButtonIndex].hide = false;\n }\n\n const showModifyConditions = [CONSTANT.AWAITING_INITIALIZATION];\n if (showModifyConditions.includes(details.status)) {\n const modifyButtonIndex = actionButtons.findIndex((element) => element.key === \"modifySimulation\");\n actionButtons[modifyButtonIndex].hide = false;\n }\n\n return actionButtons.filter((button) => !button.hide);\n};\n\nconst crisisButtons = [\n {\n key: \"modifySimulation\",\n name: \"CrisisModifyModal:ModifySimulation\",\n action: \"modifySimulationAction\",\n hide: true,\n },\n {\n key: \"advanceSimulation\",\n name: \"AdvanceSimulationModal:advanceSimulation\",\n action: \"handleAdvanceModal\",\n hide: false,\n },\n {\n key: \"startSimulation\",\n name: \"AdvanceSimulationModal:startSimulation\",\n action: \"handleAdvanceModal\",\n hide: true,\n },\n {\n key: \"standings\",\n name: \"standings\",\n action: \"standingsAction\",\n },\n {\n key: \"registeredStudents\",\n name: \"registeredStudents\",\n action: \"registeredStudentsAction\",\n },\n {\n key: \"shareSimulation\",\n name: \"shareSimulation\",\n action: \"handleShareModal\",\n hide: false,\n },\n {\n key: \"dashboards\",\n name: \"dashboards\",\n action: \"dashboardsAction\",\n hide: false,\n },\n {\n key: \"createNextRun\",\n name: \"CrisisDetailScreen:createNextRun\",\n action: \"createNextRunAction\",\n hide: false,\n },\n {\n key: \"Documentation\",\n name: \"Common:Documents\",\n action: \"documentationAction\",\n hide: false,\n },\n {\n key: \"back\",\n name: \"Common:back\",\n action: \"backAction\",\n hide: false,\n },\n];\n\nexport default ActionButtons;\n","import React from \"react\";\nimport \"./SimulationDetailStyles.css\";\n\nconst SimulationTitle = (props) => {\n return (\n
\n

{props.title}

\n \n
\n );\n};\n\nexport default SimulationTitle;\n","import React, { Component } from \"react\";\nimport { List, Image } from \"semantic-ui-react\";\nimport crisisLogo from \"../../assets/crisis-logo.png\";\nimport SimulationTitle from \"./SimulationTitle\";\nimport HelpHoverComponent from \"../helpers/HelpHoverComponent\";\nimport moment from \"moment\";\nimport { getLanguagePrefix } from \"../utilities/LanguageUtilities\";\n\nclass CrisisDetailComponent extends Component {\n formatDate = (date, language) => {\n return moment(date)\n .locale(getLanguagePrefix(language))\n .format(`MMMM D, YYYY [${this.props.translate(\"at\")}] hh:mm A`);\n };\n\n render() {\n const translate = this.props.translate;\n const simulationDetails = this.props.simulationDetails;\n const loadingDetails = this.props.loadingDetails;\n const language = this.props.language;\n let detailBoxStyles = \"detailsDataLoading\";\n let listDetails = [];\n if (!loadingDetails && simulationDetails) {\n detailBoxStyles = \"detailsDataCharged\";\n\n let startDateText = null;\n let endDateText = null;\n if (simulationDetails.professorManagedProgress) {\n startDateText = translate(\"MedicaDetailScreen:professorManaged\");\n endDateText = translate(\"MedicaDetailScreen:professorManaged\");\n } else {\n startDateText = this.formatDate(simulationDetails.startTime, language);\n endDateText = this.formatDate(simulationDetails.endTime, language);\n }\n\n listDetails = [\n {\n item: translate(\"Common:status\"),\n content: translate(`Common:${simulationDetails.status}`),\n },\n {\n item: translate(\"Common:currentDay\"),\n content: simulationDetails.currentSimulationDay,\n },\n { key: 3, item: translate(\"Common:startDate\"), content: startDateText },\n { key: 4, item: translate(\"Common:endDate\"), content: endDateText },\n ];\n } else {\n listDetails = [{ key: 1, item: translate(\"Common:status\"), content: \"\" }];\n }\n return (\n
\n \n
\n
\n \n
\n
\n

{translate(\"simulationDetails\").toUpperCase()}

\n \n {listDetails.map((detail, index) => {\n if (!detail.content) return null;\n let helpHoverComponent = null;\n if (detail.hasHelp) {\n helpHoverComponent = ;\n }\n return (\n \n {loadingDetails === true ? (\n
\n ) : (\n
\n {detail.item}: \n {detail.content}\n {helpHoverComponent}\n
\n )}\n \n );\n })}\n \n
\n
\n
\n );\n }\n}\n\nexport default CrisisDetailComponent;\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"semantic-ui-react\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport { withTranslation } from \"react-i18next\";\nimport { compose } from \"redux\";\nimport {\n crisisAdvanceSimulation,\n crisisResetRequestsState,\n crisisStartSimulation,\n crisisGetNumberOfRegisteredStudents,\n} from \"../../store/CrisisSimulationDetails/actions\";\nimport { connect } from \"react-redux\";\nimport InputComponent from \"../helpers/InputComponent\";\n\nclass AdvanceSimulationModal extends Component {\n state = {\n inputNumberValue: 1,\n };\n\n componentDidMount() {\n this.props.crisisGetNumberOfRegisteredStudents(this.props.simulationDetails.id);\n }\n\n advanceSimulation = (advanceMethod) => {\n let advanceParams = { simulationId: this.props.simulationDetails.id };\n if (this.props.simulationDetails.status === \"AwaitingInitialization\") {\n advanceParams[\"numberOfTeams\"] = this.state.inputNumberValue;\n } else if (\n this.props.simulationDetails.status === \"Initialized\" ||\n this.props.simulationDetails.status === \"Running\"\n ) {\n advanceParams[\"numberOfWeeksToAdvance\"] = this.state.inputNumberValue;\n }\n advanceMethod(advanceParams);\n };\n\n handleClose = () => {\n this.props.handleAdvanceModal();\n };\n\n successAction = () => {\n this.props.getSimulationDetails(this.props.simulationDetails.id);\n this.props.crisisResetRequestsState();\n this.handleClose();\n };\n\n handleInputNumberValueChanged = (id, data) => {\n this.setState({ inputNumberValue: parseInt(data) });\n };\n\n handleWeeksToAdvanceChanged = (id, data) => {\n let valueToSave = parseInt(data);\n if (valueToSave < 1) {\n valueToSave = 1;\n }\n\n if (valueToSave > 4) {\n valueToSave = 4;\n }\n this.setState({ inputNumberValue: valueToSave });\n };\n\n render() {\n const translate = this.props.t;\n let oncloseFunction = this.handleClose;\n\n let requestStatus = this.props.advanceSimulationRequestStatus;\n let buttonContent = translate(\"AdvanceSimulationModal:advance\");\n let advanceButtonMethod = this.props.crisisAdvanceSimulation;\n let customSuccessMessage = translate(\"Simulation advanced successfully.\");\n let titleText = translate(`AdvanceSimulationModal:advanceSimulation`);\n let disabledAdvanceButton = Number.isNaN(this.state.inputNumberValue);\n\n let numberInput = null;\n if (this.props.simulationDetails.status === \"AwaitingInitialization\") {\n buttonContent = translate(\"AdvanceSimulationModal:start\");\n advanceButtonMethod = this.props.crisisStartSimulation;\n requestStatus = this.props.startSimulationRequestStatus;\n titleText = translate(`AdvanceSimulationModal:startSimulation`);\n\n let numberOfStudents = this.props.numberOfRegisteredStudentsStatus.numberOfStudents;\n let numberOfStudentsError = this.props.numberOfRegisteredStudentsStatus.errorMessage;\n let messageToStartSimulation = null;\n\n if (numberOfStudentsError === \"\" && numberOfStudents === 0) {\n disabledAdvanceButton = true;\n messageToStartSimulation = (\n

{translate(\"CrisisAdvanceSimulationModal:StartSimulationController_SimulationEmpty\")}

\n );\n } else {\n messageToStartSimulation = (\n
\n

{translate(\"CrisisAdvanceSimulationModal:StudentsAreJoined\")}

\n

\n {translate(\"CrisisAdvanceSimulationModal:RegisteredStudents\")}{\" \"}\n {numberOfStudentsError === \"\" ? numberOfStudents : \"N\"}\n

\n

\n {translate(\"CrisisAdvanceSimulationModal:RecommendedNumberOfTeams\")}{\" \"}\n {numberOfStudentsError === \"\"\n ? Math.ceil(numberOfStudents / 4)\n : translate(\"CrisisAdvanceSimulationModal:RoundedUp\")}\n

\n

{translate(\"CrisisAdvanceSimulationModal:MissingSpotsMessage\")}

\n
\n );\n }\n\n numberInput = (\n
\n {messageToStartSimulation}\n \n
\n );\n } else if (\n this.props.simulationDetails.status === \"Initialized\" ||\n this.props.simulationDetails.status === \"Running\"\n ) {\n numberInput = (\n
\n \n
\n );\n }\n\n let actionButtons = null;\n actionButtons = (\n \n this.advanceSimulation(advanceButtonMethod)}\n />\n \n
\n \n \n {actionButtons}\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getDocumentation: (simulationId) => dispatch(crisisGetDocumentation(simulationId)),\n crisisGetSimulationDetails: (simulationId) => dispatch(crisisGetSimulationDetails(simulationId)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n documentationStatus: state.crisisSimulationDetails.documentationStatus,\n crisisSimulationDetails: state.crisisSimulationDetails.simulationDetails,\n crisisSimulationDetailsRequestStatus: state.crisisSimulationDetails.simulationDetailsRequestStatus,\n language: state.user.userProfile.language,\n };\n};\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\n \"MedicaDetailScreen\",\n \"CrisisDetailScreen\",\n \"ModifyModal\",\n \"ShareModal\",\n \"MedicaAdvancedOptions\",\n \"Common\"\n ),\n withRouter\n);\n\nexport default HOC(CrisisDetail);\n","import React from \"react\";\nimport { Button, Modal } from \"semantic-ui-react\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\n\nconst SuccessModal = (props) => {\n const translate = props.translate;\n\n const handleSuccessModal = () => {\n props.handleSuccessModal();\n };\n\n return (\n
\n handleSuccessModal()}>\n {translate(\"Common:success\")}\n \n \n \n \n
\n );\n};\n\nexport default SuccessModal;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button, Modal } from \"semantic-ui-react\";\nimport { confirmPaymentStatuses } from \"../../utilities/storeStatusDictionary\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\n\nexport default function PaymentVerificationModal(props) {\n const { state, retryAction } = props;\n const { t, i18n } = useTranslation([\"PaymentVerificationModal\"]);\n let content;\n let actions;\n\n if (state.status === confirmPaymentStatuses.loading) {\n content = ;\n }\n\n if (state.status === confirmPaymentStatuses.fail) {\n const errorText = i18n.exists(state.errorMessage) ? t(state.errorMessage) : t(\"defaultErrorMessage\");\n content = ;\n actions =\n typeof retryAction === \"function\" ? (\n \n \n \n ) : null;\n }\n\n return (\n \n {t(\"title\")}\n {content}\n {actions}\n \n );\n}\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { getStorage } from \"../../services/StorageService\";\nimport { crisisJoinSimulation } from \"../../store/CrisisJoinSimulation/actions\";\nimport { crisisConfirmPayment } from \"../../store/CrisisBuySimulation/actions\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport SuccessModal from \"../modals/SuccessModal\";\nimport { compose } from \"redux\";\nimport { withTranslation } from \"react-i18next\";\nimport ErrorModal from \"../modals/ErrorModal\";\nimport { Redirect } from \"react-router-dom\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport * as CONSTANTS from \"../../constants/UniversalConstants\";\nimport PaymentVerificationModal from \"../modals/PaymentVerificationModal\";\nimport { confirmPaymentStatuses } from \"../../utilities/storeStatusDictionary\";\n\nexport class CrisisJoinSimulation extends Component {\n constructor(props) {\n super(props);\n let paymentIntentId;\n const params = new URLSearchParams(window.location.search);\n if (params.has(\"payment_intent\")) {\n paymentIntentId = params.get(\"payment_intent\");\n }\n this.state = {\n showSuccessMessage: true,\n redirectToDownload: false,\n paymentIntentId: paymentIntentId,\n };\n }\n\n async componentDidMount() {\n if (typeof this.state.paymentIntentId === \"string\") {\n await this.validatePayment();\n return;\n }\n\n this.attemptToJoinSimulation();\n }\n\n componentDidUpdate(prevProps) {\n const prevConfirmPaymentStatus = prevProps.confirmPaymentStatus;\n const currentConfirmPaymentStatus = this.props.confirmPaymentStatus;\n if (\n typeof this.state.paymentIntentId === \"string\" &&\n prevConfirmPaymentStatus.status !== currentConfirmPaymentStatus.status &&\n currentConfirmPaymentStatus.status === confirmPaymentStatuses.success\n ) {\n this.attemptToJoinSimulation();\n }\n }\n\n validatePayment = async () => {\n if (typeof this.state.paymentIntentId === \"string\") {\n await this.props.confirmPayment(this.state.paymentIntentId);\n }\n };\n\n attemptToJoinSimulation = () => {\n const simulationId = getStorage(LOCALSTORAGE.crisisJoinSimulationId);\n const paymentSummaryId = getStorage(LOCALSTORAGE.crisisPaymentSummaryId);\n const token = this.state.paymentIntentId || paymentSummaryId;\n this.props.crisisJoinSimulation({ simulationId, token });\n };\n\n closeSuccessModal = () => {\n this.setState({\n showSuccessMessage: false,\n redirectToDownload: true,\n });\n };\n\n handleModalOk = () => {\n this.setState({\n redirectToDownload: true,\n });\n };\n\n render() {\n const { t: translate, confirmPaymentStatus } = this.props;\n\n if (\n confirmPaymentStatus.status === confirmPaymentStatuses.loading ||\n confirmPaymentStatus.status === confirmPaymentStatuses.fail\n ) {\n return ;\n }\n\n let body = null;\n if (this.props.loading) {\n body = ;\n }\n\n const showSuccessModal = this.props.code !== \"\" && this.state.showSuccessMessage;\n const successModal = (\n \n );\n\n let errorMessageModal = null;\n if (this.props.errorMessage === \"JoinSimulationController_AlreadyJoined\") {\n errorMessageModal = (\n \n );\n } else if ((this.props.errorMessage ?? \"\") !== \"\") {\n errorMessageModal = (\n \n );\n }\n\n if (this.state.redirectToDownload) {\n body = (\n \n );\n }\n return (\n <>\n {body}\n {errorMessageModal}\n {successModal}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n confirmPaymentStatus: state.crisisBuySimulation.confirmPayment,\n errorMessage: state.crisisJoinSimulation.errorMessage,\n loading: state.crisisJoinSimulation.loading,\n code: state.crisisJoinSimulation.code,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n confirmPayment: (intentId) => dispatch(crisisConfirmPayment(intentId)),\n crisisJoinSimulation: (request) => dispatch(crisisJoinSimulation(request)),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"CrisisJoinSimulation\", \"AuthComponents\")\n);\n\nexport default HOC(CrisisJoinSimulation);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { CHECK_AUTH, CRISIS_JOIN_SIMULATION, CRISIS_STUDENT_PAYMENT } from \"../../constants/Routes\";\nimport { getCurrentSession } from \"../../services/AuthService\";\nimport { setStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\n\nclass CrisisJoinSimulationPreamble extends Component {\n async componentDidMount() {\n const query = new URLSearchParams(this.props.location.search);\n let simulationId;\n let paymentSummaryId;\n for (let param of query.entries()) {\n if (param[0] === \"simulationId\") {\n simulationId = param[1];\n }\n if (param[0] === \"paymentSummaryId\") {\n paymentSummaryId = param[1];\n }\n }\n\n if (!simulationId) {\n this.props.history.replace(CHECK_AUTH);\n return;\n }\n\n setStorage(LOCALSTORAGE.crisisJoinSimulationId, simulationId);\n setStorage(LOCALSTORAGE.crisisPaymentSummaryId, paymentSummaryId);\n setStorage(LOCALSTORAGE.activationCode, simulationId);\n\n const session = await getCurrentSession();\n if (session) {\n if (!paymentSummaryId) {\n this.props.history.push(CRISIS_STUDENT_PAYMENT);\n }\n else {\n this.props.history.push(CRISIS_JOIN_SIMULATION);\n }\n }\n }\n\n render() {\n const translate = this.props.t;\n return (\n <>\n \n \n );\n }\n}\n\nconst HOC = compose(withRouter, withTranslation(\"AuthComponents\", \"Common\"));\n\nexport default HOC(CrisisJoinSimulationPreamble);\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { Table } from \"semantic-ui-react\";\n\nclass RegisteredStudentsComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n registeredStudentList: props.simulationRegisteredStudents,\n direction: null,\n };\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, registeredStudentList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n registeredStudentList: _.sortBy(registeredStudentList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n registeredStudentList: registeredStudentList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, registeredStudentList } = this.state;\n const arrowsIcon = ;\n const teamsAssigned = registeredStudentList.some((x) => x.team?.length > 0);\n return (\n
(this.topTable = ref)}>\n

{`${translate(\"registeredStudentsOf\")}: ${registeredStudentList.length}`}

\n \n \n \n {teamsAssigned ? (\n \n
\n {translate(\"Common:team\").toUpperCase()}\n {arrowsIcon}\n
\n
\n ) : null}\n \n
\n {translate(\"name\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"email\").toUpperCase()}\n {arrowsIcon}\n
\n
\n
\n
\n \n {registeredStudentList.map((student) => {\n return (\n \n {teamsAssigned ? {student.team} : null}\n {`${student.studentFirstName} ${student.studentLastName}`}\n {student.email}\n \n );\n })}\n \n
\n
\n );\n }\n}\n\nexport default RegisteredStudentsComponent;\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { Container } from \"semantic-ui-react\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { getStorage } from \"../../services/StorageService\";\nimport { crisisGetRegisteredStudents } from \"../../store/CrisisSimulationDetails/actions\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport RegisteredStudentsComponent from \"./RegisteredStudentsComponent\";\n\nclass CrisisRegisteredStudents extends Component {\n state = {\n requestedSimulationName: getUrlSearchParam(),\n };\n\n componentDidMount() {\n const requestedSimulationId = getStorage(LOCALSTORAGE.requestedSimulation);\n this.props.getRegisteredStudents(requestedSimulationId);\n }\n\n render() {\n const translate = this.props.t;\n const registeredStudentsStatus = this.props.crisisGetRegisteredStudentsRequestStatus;\n let body = (\n \n );\n\n if (!registeredStudentsStatus.success) {\n body = ;\n }\n if (registeredStudentsStatus.loading) {\n body = ;\n }\n\n return (\n \n \n \n {body}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getRegisteredStudents: (simulationId) => dispatch(crisisGetRegisteredStudents(simulationId)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n crisisGetRegisteredStudentsRequestStatus: state.crisisSimulationDetails.registeredStudents,\n language: state.user.userProfile.language,\n };\n};\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"RegisteredStudentsScreen\", \"Common\"),\n withRouter\n);\n\nexport default HOC(CrisisRegisteredStudents);\n","import { faChevronDown, faChevronRight, faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport _ from \"lodash\";\nimport memoizeOne from \"memoize-one\";\nimport React, { PureComponent } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { Container, Table } from \"semantic-ui-react\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { crisisGetSimulationStandings } from \"../../store/CrisisSimulationDetails/actions\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport \"./crisisStandings.css\";\nimport { getStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nexport class crisisStandings extends PureComponent {\n state = {\n expandedRows: [],\n requestedSimulationName: getUrlSearchParam(),\n column: null,\n direction: null,\n };\n\n componentDidMount() {\n const requestedSimulationId = getStorage(LOCALSTORAGE.requestedSimulation);\n this.props.crisisGetSimulationStandings(requestedSimulationId);\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, direction } = this.state;\n let newColumn = clickedColumn;\n let newDirection = null;\n\n if (column !== clickedColumn) {\n newDirection = \"asc\";\n }\n\n if (column === clickedColumn && direction === \"asc\") {\n newDirection = \"desc\";\n }\n\n if (column === clickedColumn && direction === \"desc\") {\n newColumn = null;\n newDirection = null;\n }\n\n this.setState({\n column: newColumn,\n direction: newDirection,\n });\n };\n\n handleRowClick(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n const newExpandedRows = isRowCurrentlyExpanded\n ? currentExpandedRows.filter((id) => id !== rowId)\n : currentExpandedRows.concat(rowId);\n\n this.setState({ expandedRows: newExpandedRows });\n }\n\n renderItem(item) {\n const translate = this.props.t;\n const clickCallback = () => this.handleRowClick(item.index);\n const itemRows = [\n \n {this.renderItemCaret(item.index)}\n {item.teamName}\n $ {item.cashSupplyAndAssembly.toFixed(2)}\n $ {item.cashProductionOne.toFixed(2)}\n $ {item.cashProductionTwo.toFixed(2)}\n $ {item.cashRetailer.toFixed(2)}\n $ {item.cashGlobal.toFixed(2)}\n ,\n ];\n\n if (this.state.expandedRows.includes(item.index)) {\n itemRows.push(\n \n \n \n \n \n \n {translate(\"Team Member\")}\n \n {translate(\" Email\")}\n {translate(\"Role\")}\n \n \n {item.teamMembers.students.map(this.renderItemDetails.bind(this))}\n
\n
\n
\n );\n }\n\n return itemRows;\n }\n\n renderItemCaret(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n if (isRowCurrentlyExpanded) {\n return ;\n } else {\n return ;\n }\n }\n\n renderItemDetails(item, index) {\n return (\n \n \n {item.name}\n \n\n \n {item.email}\n \n\n \n {this.props.t(item.role)}\n \n \n );\n }\n\n standingsTableData = (teamStandings, teamMembersList) => {\n const allPositionStandings = teamStandings.find((x) => x.teamPosition === \"All\");\n const supplyAndAssemblyStandings = teamStandings.find((x) => x.teamPosition === \"SupplyAndAssembly\");\n const ProductionOneStandings = teamStandings.find((x) => x.teamPosition === \"ProductionOne\");\n const ProductionTwoStandings = teamStandings.find((x) => x.teamPosition === \"ProductionTwo\");\n const RetailerStandings = teamStandings.find((x) => x.teamPosition === \"Retailer\");\n const standingsTable = [];\n\n allPositionStandings.standings.forEach((element, index) => {\n const teamName = element.teamName;\n const cashSupplyAndAssembly = supplyAndAssemblyStandings.standings.find((x) => x.teamName === teamName);\n const cashProductionOne = ProductionOneStandings.standings.find((x) => x.teamName === teamName);\n const cashProductionTwo = ProductionTwoStandings.standings.find((x) => x.teamName === teamName);\n const cashRetailer = RetailerStandings.standings.find((x) => x.teamName === teamName);\n const teamMembers = teamMembersList.find((x) => x.teamName === teamName);\n standingsTable.push({\n index,\n teamName,\n cashGlobal: element.cash,\n cashSupplyAndAssembly: cashSupplyAndAssembly.cash,\n cashProductionOne: cashProductionOne.cash,\n cashProductionTwo: cashProductionTwo.cash,\n cashRetailer: cashRetailer.cash,\n teamMembers,\n });\n });\n return standingsTable;\n };\n\n memoizedStandingsTableData = memoizeOne(this.standingsTableData);\n\n render() {\n const translate = this.props.t;\n const standingsState = this.props.standings;\n\n let bodyContent;\n let sortedStandingsData;\n\n if (standingsState.success) {\n const standingsTableData = this.memoizedStandingsTableData(\n standingsState.simulationStandings,\n standingsState.teamMembers\n );\n\n sortedStandingsData = standingsTableData;\n if (this.state.column && this.state.direction) {\n sortedStandingsData = _.orderBy(standingsTableData, [this.state.column], this.state.direction);\n }\n }\n\n if (standingsState.success && sortedStandingsData.length > 0) {\n const standingsTableRows = sortedStandingsData.map(this.renderItem.bind(this));\n const arrowsIcon = ;\n\n bodyContent = (\n \n \n \n \n \n <>\n {translate(\"Team\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"SupplyAndAssembly\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"ProductionOne\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"ProductionTwo\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"Retail\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"Total\")}\n {arrowsIcon}\n \n \n \n \n {standingsTableRows}\n
\n );\n }\n\n if (standingsState.success && sortedStandingsData.length === 0) {\n bodyContent = ;\n }\n\n if (standingsState.loading) {\n bodyContent = ;\n }\n\n if (!standingsState.loading && !standingsState.success) {\n bodyContent = ;\n }\n\n return (\n \n \n \n {bodyContent}\n \n );\n }\n}\nconst mapStateToProps = (state) => ({\n standings: state.crisisSimulationDetails.standings,\n simulationId: state.crisisSimulationDetails.simulationDetails.id,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n crisisGetSimulationStandings: (simulationId) => dispatch(crisisGetSimulationStandings(simulationId)),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation([\"CrisisStandings\", \"StandingsScreen\", \"Common\"]),\n withRouter\n);\n\nexport default HOC(crisisStandings);\n","import React from \"react\";\nimport HelpHoverComponent from \"../../helpers/HelpHoverComponent\";\nimport \"./leftTitle.css\";\n\nconst LeftTitleComponent = (props) => {\n const { hasHelp, title, subtitle, helpMessage } = props;\n let helpHoverComponent = null;\n\n if (hasHelp) {\n helpHoverComponent = ;\n }\n\n return (\n
\n \n
\n

{title}

\n {helpHoverComponent}\n
\n

{subtitle}

\n
\n );\n};\n\nexport default LeftTitleComponent;\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport * as CRISIS_CONSTANTS from \"../../constants/CrisisConstants\";\nimport CalendarComponent from \"../helpers/CalendarComponent\";\nimport DateTimeSelector from \"../helpers/DateTimeSelector\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport DropDownComponent from \"../helpers/DropDownComponent\";\nimport { Checkbox } from \"semantic-ui-react\";\n\nimport \"./crisisRunAgain.css\";\n\nclass NextRunFormComponent extends Component {\n state = {\n dateToModify: \"\",\n openCalendar: false,\n };\n\n handleFormChange = (id, data) => {\n this.props.formChanged(id, data);\n };\n\n gameModeOptions = [\n {\n key: 1,\n text: this.props.t(`CrisisCommon:${CRISIS_CONSTANTS.OneStationUnknownPeers}`),\n value: CRISIS_CONSTANTS.OneStationUnknownPeers,\n },\n {\n key: 2,\n text: this.props.t(`CrisisCommon:${CRISIS_CONSTANTS.OneStationKnownPeers}`),\n value: CRISIS_CONSTANTS.OneStationKnownPeers,\n },\n {\n key: 3,\n text: this.props.t(`CrisisCommon:${CRISIS_CONSTANTS.AllStationsKnownPeers}`),\n value: CRISIS_CONSTANTS.AllStationsKnownPeers,\n },\n ];\n\n advanceSimulationOptions = [\n {\n key: 1,\n text: this.props.t(\"Common:yes\"),\n value: true,\n },\n {\n key: 2,\n text: this.props.t(\"Common:no\"),\n value: false,\n },\n ];\n\n handleCalendar = (action) => {\n this.setState({\n dateToModify: action,\n openCalendar: !this.state.openCalendar,\n });\n };\n\n handleSubmit(e) {\n e.preventDefault();\n const formValues = this.checkWithDatesSelected();\n this.props.handleContinue(formValues);\n }\n\n render() {\n const translate = this.props.t;\n let calendarComponent = null;\n const { formData } = this.props;\n let selectedDate = null;\n\n if (this.state.dateToModify === \"startDate\") {\n selectedDate = formData.startTime.Value;\n } else {\n selectedDate = formData.endTime.Value;\n }\n\n if (this.state.openCalendar) {\n calendarComponent = (\n
\n this.props.setDate(value, this.state.dateToModify)}\n selectedDate={selectedDate}\n language={this.props.language}\n />\n
\n );\n }\n\n const dateSelectors = formData.professorAdvance.value ? null : (\n
\n this.setState({ dateToModify: \"startDate\" })}\n dateToSet={CONSTANT.START_DATE}\n settingHour={this.props.setStartHour}\n date={formData.startTime.value.date}\n hour={formData.startTime.value.hour}\n hourFormat={formData.startTime.value.hourFormat}\n language={this.props.language}\n labelAlignment=\"left\"\n />\n\n this.setState({ dateToModify: \"endDate\" })}\n dateToSet={CONSTANT.END_DATE}\n settingHour={this.props.setEndHour}\n date={formData.endTime.value.date}\n hour={formData.endTime.value.hour}\n hourFormat={formData.endTime.value.hourFormat}\n language={this.props.language}\n labelAlignment=\"left\"\n />\n
\n );\n\n return (\n <>\n {calendarComponent}\n \n\n \n {dateSelectors}\n \n
\n

{translate(\"CrisisCommon:GameModeHelp\")}

\n
    \n
  • {translate(\"CrisisCommon:OneStationUnknownPeersHelp\")}
  • \n
  • {translate(\"CrisisCommon:OneStationKnownPeersHelp\")}
  • \n
  • {translate(\"CrisisCommon:AllStationsKnownPeersHelp\")}
  • \n
\n
\n
\n \n this.handleFormChange(\"teamsStayTheSame\", !data.checked)}\n />\n
\n \n );\n }\n}\n\nexport default withTranslation([\"CrisisRunAgain\", \"Purchased\", \"Common\", \"CrisisCommon\"])(NextRunFormComponent);\n","import React from \"react\";\nimport { Button, Modal } from \"semantic-ui-react\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport \"./modals.css\";\n\nconst RedirectModal = (props) => {\n const translate = props.translate;\n return (\n props.history.push(props.route)}>\n {props.title}\n \n \n \n \n \n );\n\n let formBody = null;\n\n if (detailsLoading === true) {\n formBody =
;\n }\n if (createNextRunLoading === true) {\n continueButton =
;\n }\n\n if (detailsValid === true) {\n const nextRunSimulationName = this.getNextRunSimulationName();\n formBody = (\n
\n
\n \n
{continueButton}
\n \n \n
\n );\n }\n\n let message = null;\n const errorMessages = [detailErrorMessage, createNextRunErrorMessage, dateValidationError];\n const messageToDisplay = errorMessages.find((message) => message.length > 0);\n if (typeof messageToDisplay === \"string\") {\n message = (\n \n \n \n \n \n );\n }\n\n const { professorScenariosStatus } = this.props;\n const { advancedOptions, openAdvancedOptions } = this.state;\n const advancedOptionsComponent = (\n <>\n \n \n
{continueButton}
\n
\n \n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n {formBody}\n \n \n
\n \n
\n
\n
\n {message}\n
\n {openAdvancedOptions ? advancedOptionsComponent : null}\n \n \n \n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n professorScenariosStatus: state.crisisSimulationDetails.professorScenarios,\n simulationDetailsRequestStatus: state.crisisSimulationDetails.simulationDetailsRequestStatus,\n simulationDetails: state.crisisSimulationDetails.simulationDetails,\n createNextRunStatus: state.crisisSimulationDetails.createNextRunStatus,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n getProfessorScenarios: () => dispatch(crisisGetProfessorScenarios()),\n getSimulationDetails: (id) => dispatch(crisisGetSimulationDetails(id)),\n createNextRun: (request) => dispatch(crisisCreateNextRun(request)),\n resetCreateNextRunState: () => dispatch(resetCreateNextRunState()),\n});\n\nconst HOCs = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation([\"CrisisRunAgain\", \"common\"]),\n withRouter\n);\n\nexport default HOCs(index);\n","import React from \"react\";\nimport { Trans, withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router\";\nimport { compose } from \"redux\";\nimport { Container } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport \"./crisisBadLink.css\";\n\nfunction CrisisBadLinkComponent(props) {\n const translate = props.t;\n return (\n \n \n \n
\n

\n {translate(\"badLink\")}\n

\n

\n \n Please double-check with your professor that you have the correct link. If that's the case, please let us\n know at\n support@processimlabs.com\n or using the chat on the bottom right corner of this page.\n \n

\n
\n
\n );\n}\n\nconst HOC = compose(withRouter, withTranslation(\"CrisisBadLink\", \"Common\"));\n\nexport default HOC(CrisisBadLinkComponent);\n","import React, { Component } from \"react\";\nimport { Modal, Button, Form } from \"semantic-ui-react\";\nimport TeamsHandlers from \"../dashBoards/TeamsHandlers\";\nimport { checkControlStanding, GRAPHS_GROUP } from \"../utilities/DashBoardUtilities\";\n\nclass TeamsListModal extends Component {\n state = {\n teamsList: [],\n areAllChecked: true,\n areAllUnchecked: false,\n standingModified: false,\n };\n\n componentDidMount() {\n this.setState({\n teamsList: this.props.teamsList,\n });\n }\n\n componentDidUpdate(lastProps) {\n const { teamsList } = this.props;\n\n if (lastProps.selectedGraphs !== this.props.selectedGraphs) {\n this.setState({\n teamsList: teamsList,\n });\n }\n }\n\n handleCheckChildElement = (event) => {\n const { teamsList } = this.state;\n let teams = [];\n this.setState({\n checkType: \"\",\n });\n teamsList.forEach((team) => {\n if (team.name === event.target.value) {\n team.isChecked = event.target.checked;\n }\n teams.push(team);\n });\n this.setState({\n teamsList: teams,\n selection: 0,\n });\n this.props.modifySelectedTeamsList(teams);\n };\n\n handleAllChecked = (event) => {\n const { teamsList, checkType } = this.state;\n let teams = [];\n if (checkType !== event.target.id) {\n if (event.target.id === \"selectAll\") {\n teamsList.forEach((team) => {\n team.isChecked = true;\n teams.push(team);\n });\n } else {\n teamsList.forEach((team) => {\n team.isChecked = false;\n teams.push(team);\n });\n }\n this.props.modifySelectedTeamsList(teams);\n this.setState({\n teamsList: teams,\n checkType: event.target.id,\n selection: 0,\n });\n }\n };\n\n handleTopSelection = (selection) => {\n const { standings } = this.props;\n const { teamsList, standingModified } = this.state;\n const controlStanding = checkControlStanding(standings, selection);\n let newTeamsList = [];\n\n teamsList.forEach((team) => {\n if (!standingModified) {\n this.setState({\n standingModified: true,\n });\n\n if (controlStanding <= selection) {\n if (team.standing > controlStanding) {\n team.standing = team.standing - 1;\n }\n }\n }\n\n if (team.standing > selection || team.name === \"CONTROL\") {\n team.isChecked = false;\n } else {\n team.isChecked = true;\n }\n newTeamsList.push(team);\n });\n\n this.props.modifySelectedTeamsList(newTeamsList);\n this.setState({\n teamsList: newTeamsList,\n checkType: \"top\",\n selection: selection,\n });\n };\n\n showStandingNumber = (team) => {\n const { checkType, selection } = this.state;\n let showStanding = \"\";\n if (checkType === \"top\" && selection >= team.standing && team.name !== \"CONTROL\") {\n showStanding = ` (${team.standing})`;\n }\n\n return showStanding;\n };\n\n render() {\n const { translate, openTeamsListModal, handleTeamsListModal } = this.props;\n const { teamsList, selectedGraphs, selection } = this.state;\n const itemsList = teamsList.map((team) => {\n const showStanding = this.showStandingNumber(team);\n let disableTeam = false;\n\n if (selectedGraphs === GRAPHS_GROUP.DECISIONS && team.name === \"CONTROL\") {\n disableTeam = true;\n }\n return (\n \n
\n \n\n \n
\n
\n );\n });\n\n return (\n \n \n {translate(\"chooseATeam\")}\n \n \n \n
{itemsList}
\n
\n \n \n );\n };\n\n return (\n <>\n {data.map((plot) => {\n return (\n \n
\n
\n {translate(plot.name)} {openButton(plot)}\n
\n \n
\n
\n );\n })}\n \n );\n};\n\nexport default DashBoardContainer;\n","import React from \"react\";\nimport DefaultButton from \"../helpers/DefaultButton\";\n\nconst CurrentDayRefreshSection = (props) => {\n const { translate, currentSimulationDay, getPerformanceData } = props;\n\n return (\n
\n

{`${translate(\"Common:currentDay\")}: ${currentSimulationDay}`}

\n \n
\n );\n};\n\nexport default CurrentDayRefreshSection;\n","import React, { Component, Fragment } from \"react\";\nimport { Grid, Header } from \"semantic-ui-react\";\nimport DashBoardContainer from \"./DashBoardContainer\";\nimport CurrentDayRefreshSection from \"./CurrentDayRefreshSection\";\n\nclass DashBoardSection extends Component {\n shouldComponentUpdate(nextProps) {\n const { selectedTeams, selectedGraphs } = this.props;\n if (nextProps && nextProps.selectedTeams && nextProps.selectedGraphs) {\n if (nextProps.selectedTeams === selectedTeams && nextProps.selectedGraphs === selectedGraphs) {\n return false;\n }\n }\n return true;\n }\n\n render() {\n const {\n translate,\n selectedTeams,\n currentSimulationDay,\n getPerformanceData,\n handleGraphModal,\n sections,\n } = this.props;\n let currentDayRefreshSection = null;\n const dashboadRow = sections.map((section) => {\n return (\n \n \n
{translate(section.name)}
\n
\n \n
\n );\n });\n\n if (currentSimulationDay) {\n currentDayRefreshSection = (\n \n );\n }\n\n return (\n <>\n {currentDayRefreshSection}\n \n \n \n \n {dashboadRow}\n \n \n {dashboadRow}\n \n \n {dashboadRow}\n \n \n \n \n \n );\n }\n}\n\nexport default DashBoardSection;\n","import React from \"react\";\nimport { Popup } from \"semantic-ui-react\";\nimport { GRAPHS_GROUP } from \"../utilities/DashBoardUtilities\";\n\nconst DataSourceNavigator = (props) => {\n const {\n translate,\n selectedGraphs,\n handleGraphSelector,\n loadingDecisionsData,\n decisionsData,\n decisionsDataError,\n } = props;\n\n let performanceClass = \"\";\n let decisionsClass = \"\";\n const decisionsDataExist =\n loadingDecisionsData === false && (Object.keys(decisionsData).length > 0 || decisionsDataError !== \"\");\n\n if (selectedGraphs === GRAPHS_GROUP.PERFORMANCE) {\n performanceClass = \"selectedGraph\";\n decisionsClass = \"\";\n } else {\n performanceClass = \"\";\n decisionsClass = \"selectedGraph\";\n }\n\n const selectGraphContainer = (\n
\n \n {translate(\"performance\")}\n \n \n {translate(\"decisions\")}\n \n }\n content={translate(\"loadingDecisionsData\")}\n on=\"click\"\n open={!decisionsDataExist}\n position=\"bottom center\"\n />\n
\n );\n\n return <>{selectGraphContainer};\n};\n\nexport default DataSourceNavigator;\n","import React from \"react\";\nimport { Grid } from \"semantic-ui-react\";\nimport DefaultButton from \"../helpers/DefaultButton\";\n\nconst TeamListMobile = (props) => {\n const { handleTeamsListModal, buttonTitle } = props;\n return (\n \n \n
\n
\n \n
\n
\n
\n
\n );\n};\n\nexport default TeamListMobile;\n","import React, { Component } from \"react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport TeamsListModal from \"../modals/TeamsListModal\";\nimport GraphModal from \"../modals/GraphModal\";\nimport TeamsListAside from \"./TeamsListAside\";\nimport DashBoardSection from \"./DashBoardSection\";\nimport DataSourceNavigator from \"./DataSourceNavigator\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport DefaultButton from \"../helpers/DefaultButton\";\nimport TeamListMobile from \"./TeamListMobile\";\nimport { getGraphSections, createTeamsList, GRAPHS_GROUP } from \"../utilities/DashBoardUtilities\";\n\nclass DashBoardsComponent extends Component {\n constructor(props) {\n super(props);\n\n const selectedGraphs = this.props.location.state.selectedGraphs;\n\n this.state = {\n openTeamsListModal: false,\n openGraphModal: false,\n selectedTeams: [],\n teams: [],\n sections: [],\n plot: {},\n selectedGraphs: selectedGraphs,\n loadingSections: false,\n };\n }\n\n componentDidMount = () => {\n this.getTeamsList();\n };\n\n componentDidUpdate(lastProps) {\n const decisionsData = this.props.decisionsData;\n const lastDecisionsData = lastProps.decisionsData;\n const decisionsDataLength = Object.keys(decisionsData).length;\n const lastDecisionsDataLength = Object.keys(lastDecisionsData).length;\n\n if (decisionsDataLength !== lastDecisionsDataLength) {\n const { selectedGraphs } = this.state;\n this.configureDashboardData(selectedGraphs);\n }\n }\n\n configureDashboardData = (selectedGraphs, teamsList) => {\n const { performanceData, decisionsData } = this.props;\n const { selectedTeams } = this.state;\n let teams = selectedTeams;\n let graphsData = {};\n\n if (teamsList) {\n teams = teamsList;\n }\n switch (selectedGraphs) {\n case GRAPHS_GROUP.DECISIONS:\n graphsData = decisionsData;\n break;\n default:\n graphsData = performanceData;\n break;\n }\n\n if (Object.keys(graphsData).length > 0) {\n const sectionsData = getGraphSections(selectedGraphs, graphsData, teams);\n this.setState({\n sections: sectionsData,\n });\n } else {\n this.setState({\n sections: [],\n });\n }\n };\n\n getTeamsList = () => {\n const { performanceData, standings } = this.props;\n const { selectedGraphs } = this.state;\n const teamsList = createTeamsList(performanceData, standings);\n\n if (teamsList.length > 0) {\n this.configureDashboardData(selectedGraphs, teamsList);\n }\n\n this.setState({\n teams: teamsList,\n selectedTeams: teamsList,\n });\n };\n\n modifySelectedTeamsList = (teamsList) => {\n this.setState({\n selectedTeams: teamsList,\n });\n };\n\n handleTeamsListModal = () => {\n this.setState({\n openTeamsListModal: !this.state.openTeamsListModal,\n });\n };\n\n handleGraphModal = (plot) => {\n this.setState({\n openGraphModal: !this.state.openGraphModal,\n plot: plot,\n });\n };\n\n handleGraphSelector = (event) => {\n const { location } = this.props;\n const { selectedGraphs } = this.state;\n const userSelectedGraphs = event.target.id;\n\n location.state = {\n selectedGraphs: userSelectedGraphs,\n };\n\n if (userSelectedGraphs !== selectedGraphs) {\n this.setState({\n selectedGraphs: userSelectedGraphs,\n loadingSections: true,\n });\n this.configureDashboardData(userSelectedGraphs);\n\n setTimeout(() => {\n this.setState({\n loadingSections: false,\n });\n }, 500);\n }\n };\n\n render() {\n const {\n teams,\n selectedTeams,\n openTeamsListModal,\n sections,\n openGraphModal,\n plot,\n selectedGraphs,\n loadingSections,\n } = this.state;\n const {\n translate,\n performanceData,\n getPerformanceData,\n decisionsDataError,\n getDecisionsData,\n loadingDecisionsData,\n decisionsData,\n standings,\n } = this.props;\n let teamsListAside = null;\n let dashBoardSection = null;\n let teamsListModal = null;\n let graphModal = null;\n let actionComponent = null;\n let defaultButton = null;\n\n let selectedTeamsFiltered =\n selectedGraphs === GRAPHS_GROUP.PERFORMANCE\n ? selectedTeams\n : selectedTeams.filter((team) => {\n return team.name !== \"CONTROL\";\n });\n\n let anyTeamSelected = selectedTeamsFiltered.some((team) => {\n return team.isChecked;\n });\n\n const teamListMobile = (\n \n );\n\n if (loadingSections) {\n dashBoardSection = ;\n } else {\n if (loadingDecisionsData) {\n dashBoardSection = ;\n } else {\n if (selectedTeams.length > 0 && sections.length > 0) {\n dashBoardSection = (\n
\n \n
\n );\n } else {\n if (decisionsDataError !== \"\") {\n actionComponent = ;\n defaultButton = ;\n } else {\n if (selectedTeams.length === 0) {\n actionComponent = ;\n }\n }\n\n dashBoardSection = (\n <>\n {actionComponent}\n
{defaultButton}
\n \n );\n }\n }\n }\n\n if (!anyTeamSelected) {\n dashBoardSection = (\n
\n \n
\n );\n }\n\n if (teams.length > 0) {\n teamsListAside = (\n \n );\n\n teamsListModal = (\n \n );\n }\n\n if (openGraphModal) {\n graphModal = (\n \n );\n }\n\n return (\n
\n {teamsListModal}\n {graphModal}\n
{teamsListAside}
\n
\n \n
\n \n \n
\n {teamListMobile}\n {dashBoardSection}\n
\n
\n );\n }\n}\n\nexport default DashBoardsComponent;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { withTranslation } from \"react-i18next\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport DashBoardsComponent from \"./DashBoardsComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport { getPerformanceData, getStandings, getDecisionsData } from \"../../store/Medica/actions\";\nimport \"./dashBoardsStyles.css\";\nimport * as Sentry from \"@sentry/react\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { Message } from \"semantic-ui-react\";\n\nclass DashBoardsScreen extends Component {\n state = {\n requestedSimulationName: getUrlSearchParam(),\n };\n\n componentDidMount() {\n const { requestedSimulationName } = this.state;\n const transaction = Sentry.startTransaction({\n name: \"/Dashboard\",\n op: \"showDashboard\",\n });\n\n const spanCheckIfPerformanceDataIsCached = transaction.startChild({\n op: \"checkIfPerformanceDataIsCached\",\n description: \"Check if performance Data is cached\",\n });\n\n const performanceDataIsCached = this.checkIfPerformanceDataIsCached();\n\n spanCheckIfPerformanceDataIsCached.finish();\n\n if (!performanceDataIsCached) {\n const spanGetPerformanceData = transaction.startChild({\n op: \"getPerformanceData\",\n description: \"Get Performance Data\",\n });\n\n this.props.getPerformanceData(requestedSimulationName);\n\n spanGetPerformanceData.finish();\n\n const spanGetStandings = transaction.startChild({\n op: \"getStandings\",\n description: \"Get standings\",\n });\n\n this.props.getStandings(requestedSimulationName);\n\n spanGetStandings.finish();\n\n const spanGetDecisionsData = transaction.startChild({\n op: \"getDecisionsData\",\n description: \"Get decisions data\",\n });\n\n this.getDecisionsData();\n\n spanGetDecisionsData.finish();\n }\n\n transaction.finish();\n }\n\n getPerformanceData = () => {\n const { requestedSimulationName } = this.state;\n this.props.getPerformanceData(requestedSimulationName);\n this.props.getStandings(requestedSimulationName);\n this.getDecisionsData();\n };\n\n getDecisionsData = () => {\n const { requestedSimulationName } = this.state;\n this.props.getDecisionsData(requestedSimulationName);\n };\n\n checkIfPerformanceDataIsCached = () => {\n const requestedSimulationName = getUrlSearchParam();\n const { teamsPerformance, simulationDetails } = this.props;\n const { performanceData } = teamsPerformance;\n if (requestedSimulationName !== performanceData.name) {\n return false;\n } else {\n if (simulationDetails.currentSimulationDay !== performanceData.currentSimulationDay) {\n return false;\n }\n }\n return true;\n };\n\n render() {\n const { t, teamsPerformance, history, location, standings, teamsDecisions } = this.props;\n const translate = t;\n const { loadingPerformanceData, performanceData, performanceDataError } = teamsPerformance;\n const { simulationStandings, loadingStandings, getStandingsError } = standings;\n const { loadingDecisionsData, decisionsDataError, decisionsData } = teamsDecisions;\n const showLoadingComponent = loadingPerformanceData || loadingStandings;\n const showMessageComponent = performanceDataError !== \"\" || getStandingsError !== \"\";\n const showNoDashboardContainer = showLoadingComponent || showMessageComponent;\n const showDashboardComponent =\n simulationStandings.payload && Object.keys(performanceData).length > 0 && simulationStandings.payload.length > 0;\n let noDashboardContainer = null;\n let dashBoardsComponent = null;\n let loader = null;\n let messageComponent = null;\n\n if (showLoadingComponent) {\n loader = ;\n } else {\n if (showMessageComponent) {\n let errorMessage = this.props.t(performanceDataError, {\n ns: \"DashBoardsScreen\",\n });\n if (this.props.i18n.exists(getStandingsError, { ns: \"StandingsScreen\" })) {\n errorMessage = translate(getStandingsError, { ns: \"StandingsScreen\" });\n }\n messageComponent = (\n \n {errorMessage}\n \n );\n } else {\n if (showDashboardComponent) {\n dashBoardsComponent = (\n \n );\n }\n }\n }\n\n if (showNoDashboardContainer) {\n noDashboardContainer = (\n
\n \n \n {loader}\n {messageComponent}\n
\n );\n }\n\n return (\n <>\n {dashBoardsComponent}\n {noDashboardContainer}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getPerformanceData: (simulationName) => dispatch(getPerformanceData(simulationName)),\n getStandings: (simulationName) => dispatch(getStandings(simulationName)),\n getDecisionsData: (simulationName) => dispatch(getDecisionsData(simulationName)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n teamsPerformance: {\n performanceData: state.medica.simulationPerformanceData,\n loadingPerformanceData: state.medica.loadingPerformanceData,\n performanceDataError: state.medica.simulationPerformanceDataError,\n },\n teamsDecisions: {\n decisionsData: state.medica.simulationDecisionsData,\n loadingDecisionsData: state.medica.loadingDecisionsData,\n decisionsDataError: state.medica.simulationDecisionsDataError,\n },\n standings: {\n simulationStandings: state.medica.simulationStandings,\n loadingStandings: state.medica.loadingStandings,\n getStandingsError: state.medica.getStandingsError,\n },\n simulationDetails: state.medica.simulationDetails.data,\n };\n};\n\nexport default compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"DashBoardsScreen\", \"StandingsScreen\", \"Common\"),\n withRouter\n)(DashBoardsScreen);\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { Table, Menu, Pagination } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { setStorage } from \"../../services/StorageService\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport * as ROUTES from \"../../constants/Routes\";\n\nclass HomeComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n chunkedSimulationsArray: [],\n simulationList: props.simulationsList,\n simulationsChunk: [],\n direction: null,\n entries: {},\n activePage: 1,\n totalPages: 0,\n };\n }\n\n componentDidMount() {\n this.sortSimulationsByCreationDate();\n }\n\n sortSimulationsByCreationDate = () => {\n const { simulationList } = this.state;\n let sortedSimulationsList = simulationList.sort(function (a, b) {\n return new Date(b.createdAt) - new Date(a.createdAt);\n });\n\n this.setState({\n simulationList: sortedSimulationsList,\n });\n\n this.getPagination();\n };\n\n handleSort = (clickedColumn) => () => {\n const { column, simulationList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n simulationList: _.sortBy(simulationList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n simulationList: simulationList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n this.getPagination();\n };\n\n getPagination = () => {\n const size = 10;\n let chunkedSimulationsArray = [];\n let index = 0;\n while (index < this.state.simulationList.length) {\n chunkedSimulationsArray.push(this.state.simulationList.slice(index, size + index));\n index += size;\n }\n\n this.setState({\n chunkedSimulationsArray: chunkedSimulationsArray,\n simulationsChunk: chunkedSimulationsArray[this.state.activePage - 1],\n totalPages: chunkedSimulationsArray.length,\n });\n };\n\n handlePaginationChange = (e, { activePage }) => {\n window.scrollTo(0, this.topTable.offsetTop);\n const { chunkedSimulationsArray } = this.state;\n let valuesArr = [];\n for (let n = 0; n < chunkedSimulationsArray.length; n++) {\n valuesArr.push({\n maxValue: Number(`${n + 1}0`),\n minValue: n * 10 + 1,\n });\n }\n this.setState({\n activePage: activePage,\n simulationsChunk: chunkedSimulationsArray[activePage - 1],\n entries: valuesArr[activePage - 1],\n });\n };\n\n goToPage = (simulation) => {\n if (simulation.type === CONSTANT.MEDICA_NAME) {\n setStorage(LOCALSTORAGE.requestedSimulation, simulation.id);\n this.props.history.push({\n pathname: ROUTES.MEDICA_DETAIL,\n search: simulation.id,\n });\n return;\n }\n if (simulation.type === CONSTANT.SIMUNATION_NAME) {\n setStorage(LOCALSTORAGE.requestedSimulation, simulation.name);\n this.props.history.push({\n pathname: ROUTES.SIMUNATION_DETAIL,\n search: simulation.name,\n });\n return;\n }\n if (simulation.type === CONSTANT.CRISIS_NAME) {\n setStorage(LOCALSTORAGE.requestedSimulation, simulation.id);\n this.props.history.push({\n pathname: ROUTES.CRISIS_SIMULATION_DETAILS,\n search: simulation.name,\n });\n }\n if (simulation.type === CONSTANT.SUPPLY_CHAIN_NAME) {\n setStorage(LOCALSTORAGE.requestedSimulation, simulation.id);\n this.props.history.push({\n pathname: ROUTES.SUPPLY_CHAIN_SIMULATION_DETAILS,\n search: simulation.name,\n });\n }\n if (simulation.type === CONSTANT.ABOGADOS_NAME) {\n setStorage(LOCALSTORAGE.requestedSimulation, simulation.id);\n this.props.history.push({\n pathname: ROUTES.ABOGADOS_SIMULATION_DETAILS,\n search: simulation.name,\n });\n }\n if (simulation.type === CONSTANT.CREAM_BOW_NAME) {\n setStorage(LOCALSTORAGE.requestedSimulation, simulation.id);\n this.props.history.push({\n pathname: ROUTES.CREAMBOW_SIMULATION_DETAILS,\n search: simulation.name,\n });\n }\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, simulationsChunk, entries, activePage, totalPages, simulationList } = this.state;\n\n let sorted = null;\n let tableBody = null;\n let tableRow = null;\n let icon = ;\n\n if (\n column === \"simulation\" ||\n column === \"name\" ||\n column === \"startTime\" ||\n column === \"status\" ||\n column === \"students\"\n ) {\n sorted = direction;\n }\n if (simulationList) {\n tableBody = simulationsChunk.map((simulation) => {\n let customStartTime = simulation.startTime;\n if (simulation.type === CONSTANT.MEDICA_NAME && simulation.professorManagedProgress) {\n customStartTime = translate(\"professorManaged\");\n }\n const showPendingForio =\n simulation.status === \"AwaitingInitialization\" &&\n (simulation.type === CONSTANT.CREAM_BOW_NAME || simulation.type === CONSTANT.ABOGADOS_NAME);\n\n const showPendingBindzSupply =\n simulation.status === \"AwaitingInitialization\" &&\n simulation.professorManagedProgress &&\n (simulation.type === CONSTANT.CRISIS_NAME || simulation.type === CONSTANT.SUPPLY_CHAIN_NAME);\n if (showPendingForio || showPendingBindzSupply) {\n customStartTime = translate(\"pending\");\n }\n return (\n this.goToPage(simulation)}>\n {simulation.type}\n {simulation.name}\n {customStartTime}\n {simulation.status ? translate(`Common:${simulation.status}`) : \"\"}\n {simulation.currentSimulationDay}\n {simulation.maxNumberOfStudents || simulation.numberOfStudents}\n \n );\n });\n }\n\n if (simulationList && simulationList.length > 10) {\n tableRow = (\n \n \n \n \n

\n {`${translate(\"Common:showing\")} \n ${entries.minValue ? entries.minValue : 1} \n ${translate(\"Common:to\")} \n ${\n !entries.maxValue\n ? 10\n : simulationList.length < entries.maxValue\n ? simulationList.length\n : entries.maxValue\n } \n ${translate(\"Common:of\")} \n ${simulationList.length} \n ${translate(\"simulations\")}`}\n

\n
\n \n \n \n
\n
\n
\n );\n }\n\n return (\n
(this.topTable = ref)}>\n \n \n \n \n
\n {translate(\"Common:simulation\").toUpperCase()}\n {icon}\n
\n
\n \n
\n {translate(\"Common:name\").toUpperCase()}\n {icon}\n
\n
\n \n
\n {translate(\"startDate\").toUpperCase()}\n {icon}\n
\n
\n \n
\n {translate(\"Common:status\").toUpperCase()}\n {icon}\n
\n
\n \n
\n {translate(\"Common:currentDay\").toUpperCase()}\n {icon}\n
\n
\n \n
\n {`# ${translate(\"students\").toUpperCase()}`}\n {icon}\n
\n
\n
\n
\n {tableBody}\n {tableRow}\n
\n
\n );\n }\n}\n\nexport default HomeComponent;\n","import React from \"react\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\n\nconst VersionComponent = () => {\n const location = window.location.origin;\n const isDevelop = process.env.NODE_ENV === CONSTANT.ENV_DEVELOPMENT;\n const isLocal = location === CONSTANT.DEV_LOCATION;\n let version = null;\n if (isLocal || isDevelop) {\n version =
Version: {CONSTANT.APP_VERSION_NUMBER}
;\n }\n\n return
{version}
;\n};\n\nexport default VersionComponent;\n","import React from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\nimport { Button, Modal } from \"semantic-ui-react\";\n\nfunction WelcomePopup(props) {\n const { open, handleModal, t } = props;\n\n return (\n \n {t(\"HomeScreen:WelcomeModalTitle\")}\n \n \n

{t(\"HomeScreen:WelcomeModalBody1\")}

\n
\n

{t(\"HomeScreen:WelcomeModalBody2\")}

\n
\n
\n \n \n \n \n \n
\n );\n}\n\nexport default withTranslation(\"HomeScreen\", \"Common\")(WelcomePopup);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Container } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport HomeComponent from \"./HomeComponent\";\nimport NavigationButton from \"../helpers/NavigationButton\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport { withTranslation } from \"react-i18next\";\nimport { getSimulations } from \"../../store/Simulations/actions\";\nimport VersionComponent from \"../helpers/VersionComponent\";\nimport { sentryReportEvent } from \"../../services/SentryReportService\";\nimport { getStorage, setStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport * as ROUTE from \"../../constants/Routes\";\nimport * as Sentry from \"@sentry/react\";\nimport \"./HomeStyles.css\";\nimport WelcomeModal from \"./WelcomeModal\";\n\nclass HomeScreen extends Component {\n state = {\n openWelcomeModal: null,\n counter: 0,\n };\n\n componentDidMount() {\n const transaction = Sentry.startTransaction({\n name: \"/Home\",\n op: \"showHome\",\n });\n\n this.homeLoadedCheck = setTimeout(this.reportHomeDidntLoad, 120000);\n\n const span = transaction.startChild({\n op: \"getAllSimulations\",\n description: `Getting all simulations`,\n });\n\n this.getAllSimulations();\n\n span.finish();\n transaction.finish();\n\n const dontShowWelcomeAgain = getStorage(LOCALSTORAGE.dontShowWelcomeModalAgain);\n const openWelcomeModal = !dontShowWelcomeAgain;\n this.setState({ openWelcomeModal });\n }\n\n getAllSimulations = () => {\n const { simulations, getSimulations, user, t } = this.props;\n const translate = t;\n const { language } = user;\n if (simulations || simulations.data.length === 0) {\n getSimulations(language, translate);\n }\n };\n\n handleWelcomeModal = (neverShowAgain) => {\n if (neverShowAgain === true) {\n setStorage(LOCALSTORAGE.dontShowWelcomeModalAgain, true);\n }\n this.setState((state) => ({ openWelcomeModal: !state.openWelcomeModal }));\n };\n\n reportHomeDidntLoad() {\n sentryReportEvent(\"Time out error: Home\", { name: \"Time\", data: 120 }, []);\n }\n\n render() {\n const { t, simulations, user, history } = this.props;\n const { openWelcomeModal } = this.state;\n const translate = t;\n const { loadingSimulations, data, message } = simulations;\n\n let userRole = \"\";\n let userFullName = \"\";\n let welcomeModal = null;\n let mainComponent = null;\n let addSimulationButton = null;\n\n if (loadingSimulations) {\n mainComponent = ;\n } else {\n clearTimeout(this.homeLoadedCheck);\n addSimulationButton = (\n \n );\n\n if (message !== \"\") {\n mainComponent = (\n
\n \n
\n );\n }\n\n if (data && data.length > 0) {\n mainComponent = (\n
\n \n
\n );\n }\n\n if (data && data.length === 0) {\n mainComponent = (\n
\n \n
\n );\n }\n }\n\n welcomeModal = ;\n\n if (user.role) {\n userRole = translate(`Common:${user.role}`);\n }\n\n if (user.fullName) {\n userFullName = user.fullName;\n }\n return (\n \n {welcomeModal}\n \n \n {mainComponent}\n {addSimulationButton}\n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getSimulations: (language, translate) => dispatch(getSimulations(language, translate)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n user: {\n role: state.user.userProfile.role,\n fullName: state.user.userProfile.fullName,\n firstName: state.user.userProfile.firstName,\n lastName: state.user.userProfile.lastName,\n email: state.user.userProfile.email,\n institution: state.user.userProfile.institution,\n language: state.user.userProfile.language,\n },\n simulations: state.simulations,\n };\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(\n withTranslation(\"HomeScreen\", \"Common\")(withRouter(HomeScreen))\n);\n","import React from \"react\";\nimport { Trans, withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router\";\nimport { compose } from \"redux\";\nimport { Container } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport \"./medicaBadLink.css\";\n\nfunction MedicaBadLinkComponent(props) {\n const translate = props.t;\n return (\n \n \n \n
\n

\n {translate(\"badLink\")}\n

\n

{translate(\"tryFollowing\")}

\n
    \n
  • {translate(\"tryingToCreateTeam\")}
  • \n
  • {translate(\"tryingToJoinTeam\")}
  • \n
  • \n \n If this doesn't work please reach us at\n support@processimlabs.com or using the chat on the bottom\n right corner.\n \n
  • \n
\n
\n
\n );\n}\n\nconst HOC = compose(withRouter, withTranslation(\"MedicaBadLink\", \"Common\"));\n\nexport default HOC(MedicaBadLinkComponent);\n","import React, { Component } from \"react\";\nimport { Form } from \"semantic-ui-react\";\nimport DropDownComponent from \"../helpers/DropDownComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport NavigationButton from \"../helpers/NavigationButton\";\nimport * as ROUTES from \"../../constants/Routes\";\n\nclass MedicaBuyQuestionnaireComponent extends Component {\n state = {\n numberOfStudents: this.props.numberOfStudents,\n isInstitution: this.props.isInstitution,\n professorAdvanceSimulation: this.props.professorAdvanceSimulation,\n isInstitutionError: false,\n numberOfStudentsError: false,\n professorAdvanceSimulationError: false,\n };\n\n handleChangeNumberStudents = (id, data) => {\n this.setState({\n [id]: data,\n numberOfStudentsError: false,\n });\n };\n\n onSelectionInstitution = (val) => {\n if (!this.state.isInstitution && val) {\n this.setState({\n numberOfStudents: 0,\n });\n }\n this.setState({\n isInstitution: val,\n isInstitutionError: false,\n });\n this.props.cacheMedicaQuestionnaireData({\n isInstitution: val,\n });\n };\n\n onSelectionAdvanceSimulation = (val) => {\n this.setState({\n professorAdvanceSimulation: val,\n professorAdvanceSimulationError: false,\n });\n this.props.cacheMedicaQuestionnaireData({\n professorAdvanceSimulation: val,\n });\n };\n\n handleContinue = () => {\n const { numberOfStudents, professorAdvanceSimulation, isInstitution } = this.state;\n let questionnaire = {\n numberOfStudents: null,\n isInstitution: null,\n professorAdvanceSimulation: null,\n };\n if (isInstitution !== null) {\n if (isInstitution === false) {\n questionnaire.numberOfStudents = 1000;\n questionnaire.isInstitution = isInstitution;\n questionnaire.professorAdvanceSimulation = professorAdvanceSimulation;\n this.saveStateAndRoute(questionnaire);\n } else {\n if (numberOfStudents >= 4) {\n questionnaire.numberOfStudents = Number(numberOfStudents);\n questionnaire.isInstitution = isInstitution;\n questionnaire.professorAdvanceSimulation = professorAdvanceSimulation;\n this.saveStateAndRoute(questionnaire);\n } else {\n this.setState({\n numberOfStudentsError: true,\n });\n }\n }\n } else {\n this.setState({\n isInstitutionError: true,\n });\n }\n };\n\n saveStateAndRoute = (data) => {\n this.props.cacheMedicaQuestionnaireData(data);\n if (data.isInstitution) {\n this.props.history.push(ROUTES.PAYMENT_MEDICA);\n } else {\n this.props.history.push(ROUTES.PURCHASED_MEDICA);\n }\n };\n\n render() {\n const translate = this.props.translate;\n const {\n isInstitutionError,\n numberOfStudentsError,\n isInstitution,\n numberOfStudents,\n professorAdvanceSimulation,\n professorAdvanceSimulationError,\n } = this.state;\n let inputComponent = null;\n let messagesComponent = null;\n const optionsWhoPaying = [\n {\n key: 1,\n text: translate(\"Common:institution\"),\n value: true,\n },\n {\n key: 2,\n text: translate(\"Students\"),\n value: false,\n },\n ];\n const optionsAdvanceSimulation = [\n {\n key: 1,\n text: translate(\"Common:yes\"),\n value: true,\n },\n {\n key: 2,\n text: translate(\"Common:no\"),\n value: false,\n },\n ];\n if (isInstitution) {\n inputComponent = (\n \n );\n }\n if (isInstitutionError || numberOfStudentsError || professorAdvanceSimulationError) {\n messagesComponent = ;\n }\n return (\n
\n \n {inputComponent}\n \n {messagesComponent}\n \n \n );\n }\n}\n\nexport default MedicaBuyQuestionnaireComponent;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Container } from \"semantic-ui-react\";\nimport { withTranslation } from \"react-i18next\";\nimport BackButton from \"../helpers/BackButton\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport MedicaBuyQuestionnaireComponent from \"./MedicaBuyQuestionnaireComponent\";\nimport { cacheMedicaQuestionnaireData, resetMedicaQuestionnaireStore } from \"../../store/MedicaQuestionnaire/actions\";\nimport \"./medicaBuyStyles.css\";\nimport payIcon from \"../../assets/pay-icon.png\";\n\nclass MedicaBuyQuestionnaireScreen extends Component {\n componentDidMount() {\n this.props.resetMedicaQuestionnaireStore();\n }\n\n render() {\n const translate = this.props.t;\n const { numberOfStudents, isInstitution, professorAdvanceSimulation } = this.props.medicaQuestionnaire;\n let medicaBuyQuestionnaireComponent = (\n \n );\n return (\n \n \n \n
{medicaBuyQuestionnaireComponent}
\n \n
\n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n cacheMedicaQuestionnaireData: (data) => dispatch(cacheMedicaQuestionnaireData(data)),\n resetMedicaQuestionnaireStore: () => dispatch(resetMedicaQuestionnaireStore()),\n});\n\nconst mapStateToProps = (state) => {\n return {\n medicaQuestionnaire: {\n numberOfStudents: state.medicaQuestionnaire.numberOfStudents,\n isInstitution: state.medicaQuestionnaire.isInstitution,\n professorAdvanceSimulation: state.medicaQuestionnaire.professorAdvanceSimulation,\n },\n };\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(\n withTranslation(\"Purchased\", \"MedicaBuyQuestionnaire\", \"Common\")(withRouter(MedicaBuyQuestionnaireScreen))\n);\n","import React from \"react\";\nimport { Button } from \"semantic-ui-react\";\n\nconst ActionButtons = (props) => {\n const translate = props.translate;\n let actionButtons = props.actionButtons;\n\n return (\n
\n {actionButtons.map((button) => {\n const buttonName = translate(button.name).toUpperCase();\n return (\n \n );\n })}\n
\n );\n};\n\nexport default ActionButtons;\n","import React from \"react\";\nimport { Dropdown } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faBars } from \"@fortawesome/free-solid-svg-icons\";\n\nconst MobileActionButtons = (props) => {\n const translate = props.translate;\n let actionButtons = props.actionButtons;\n\n return (\n }>\n \n {actionButtons.map((button) => {\n const buttonName = translate(button.name).toUpperCase();\n if (button.name !== \"Common:back\") {\n return (\n \n {buttonName}\n \n );\n } else {\n return null;\n }\n })}\n \n \n );\n};\n\nexport default MobileActionButtons;\n","import React from \"react\";\nimport \"./SimulationDetailStyles.css\";\n\nconst SimulationTitle = (props) => {\n return (\n
\n

{props.title}

\n \n
\n );\n};\n\nexport default SimulationTitle;\n","import React, { Component } from \"react\";\nimport { List, Image } from \"semantic-ui-react\";\nimport medicaLogo from \"../../assets/medica-logo-transparent.png\";\nimport SimulationTitle from \"./SimulationTitle\";\nimport HelpHoverComponent from \"../helpers/HelpHoverComponent\";\n\nconst templateNames = {\n ATemplate: \"MedicaAdvancedOptions:easyDifficultyTemplateName\",\n BTemplate: \"MedicaAdvancedOptions:mediumDifficultyTemplate\",\n CTemplate: \"MedicaAdvancedOptions:hardDifficultyTemplate\",\n DTemplate: \"MedicaAdvancedOptions:customOnlyDifficultyTemplate\",\n};\n\nclass MedicaDetailComponent extends Component {\n render() {\n const translate = this.props.translate;\n const simulationDetails = this.props.simulationDetails.data;\n const loadingDetails = this.props.loadingDetails;\n let detailBoxStyles = \"detailsDataLoading\";\n let listDetails = [];\n if (!loadingDetails && simulationDetails) {\n let customStartTime = null;\n let customEndDate = null;\n let templateScenarioName = null;\n detailBoxStyles = \"detailsDataCharged\";\n\n if (simulationDetails.templateName) {\n const templateNameWithTranslation = templateNames[simulationDetails.templateName];\n templateScenarioName =\n typeof templateNameWithTranslation === \"string\"\n ? translate(templateNameWithTranslation)\n : simulationDetails.templateName;\n }\n\n if (simulationDetails.professorManagedProgress) {\n customStartTime = translate(\"professorManaged\");\n customEndDate = translate(\"professorManaged\");\n } else {\n customStartTime = simulationDetails.startTimeFormatted;\n customEndDate = simulationDetails.endDateFormatted;\n }\n listDetails = [\n {\n key: 1,\n item: translate(\"Common:currentDay\"),\n content: simulationDetails.currentSimulationDay,\n hasHelp: false,\n helpMessage: \"\",\n },\n {\n key: 2,\n item: translate(\"Common:status\"),\n content: translate(`Common:${simulationDetails.status}`),\n hasHelp: true,\n helpMessage: \"medicaStatusHelp\",\n },\n {\n key: 3,\n item: translate(\"startTime\"),\n content: customStartTime,\n hasHelp: false,\n helpMessage: \"\",\n },\n {\n key: 4,\n item: translate(\"Common:endDate\"),\n content: customEndDate,\n hasHelp: false,\n helpMessage: \"\",\n },\n {\n key: 5,\n item: translate(\"initializationPeriod\"),\n content: `${simulationDetails.initializationPeriod} ${translate(\"virtualDays\")}`,\n hasHelp: true,\n helpMessage: \"medicaInitializationPeriodHelp\",\n },\n {\n key: 6,\n item: translate(\"studentInteractionPeriod\"),\n content: `${simulationDetails.studentInteractionPeriod} ${translate(\"virtualDays\")}`,\n hasHelp: true,\n helpMessage: \"medicaStudentInteractionPeriodHelp\",\n },\n {\n key: 7,\n item: translate(\"endingPeriod\"),\n content: `${simulationDetails.endOfSimulationPeriod} ${translate(\"virtualDays\")}`,\n hasHelp: true,\n helpMessage: \"medicaEndOfSimulationPeriodHelp\",\n },\n ];\n\n if (templateScenarioName) {\n listDetails.push({\n key: 8,\n item: translate(\"templateName\"),\n content: templateScenarioName,\n hasHelp: false,\n helpMessage: \"\",\n });\n }\n if (!simulationDetails.professorManagedProgress) {\n listDetails.push({\n key: 9,\n item: translate(\"virtualDaysPerHour\"),\n content: simulationDetails.virtualDaysPerHour,\n hasHelp: true,\n helpMessage: \"medicaVirtualDaysHelp\",\n });\n }\n } else {\n listDetails = [\n { key: 1, item: translate(\"Common:currentDay\"), content: \"\" },\n { key: 2, item: translate(\"Common:status\"), content: \"\" },\n { key: 3, item: translate(\"startTime\"), content: \"\" },\n { key: 4, item: translate(\"Common:endDate\"), content: \"\" },\n { key: 5, item: translate(\"initializationPeriod\"), content: \"\" },\n { key: 6, item: translate(\"studentInteractionPeriod\"), content: \"\" },\n { key: 7, item: translate(\"endingPeriod\"), content: \"\" },\n { key: 8, item: translate(\"virtualDaysPerHour\"), content: \"\" },\n ];\n }\n return (\n
\n \n
\n
\n \n
\n
\n

{translate(\"simulationDetails\").toUpperCase()}

\n \n {listDetails.map((detail) => {\n let helpHoverComponent = null;\n if (detail.hasHelp) {\n helpHoverComponent = ;\n }\n return (\n \n {loadingDetails === true ? (\n
\n ) : (\n
\n {detail.item}: \n {detail.content}\n {helpHoverComponent}\n
\n )}\n \n );\n })}\n \n
\n
\n
\n );\n }\n}\n\nexport default MedicaDetailComponent;\n","import React, { Component } from \"react\";\nimport \"./modals.css\";\nimport { Button, Modal, Message } from \"semantic-ui-react\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\n\nclass ShareSimulationModal extends Component {\n state = { copySuccess: \"\", simulationLink: \"\" };\n\n componentDidMount() {\n this.setRedirection();\n }\n\n setRedirection = () => {\n if (this.props.updateTransactionData) {\n const transactionData = {\n paymentId: \"\",\n purchasedSimulationName: CONSTANT.MEDICA_NAME,\n };\n this.props.updateTransactionData(transactionData);\n }\n };\n\n handleCopyToClipboard = () => {\n const translate = this.props.translate;\n var fakeInput = document.createElement(\"input\");\n document.body.appendChild(fakeInput);\n fakeInput.setAttribute(\"value\", this.props.shareLink);\n fakeInput.select();\n document.execCommand(\"copy\");\n document.body.removeChild(fakeInput);\n this.setState({ copySuccess: translate(\"ShareModal:copySuccess\") });\n };\n\n render() {\n const translate = this.props.translate;\n const isStudent = this.props.isStudent;\n let shareLabel = null;\n if (this.props.isSimunation) {\n shareLabel = translate(\"ShareModal:shareActivationCode\");\n } else {\n shareLabel = translate(\"ShareModal:share\");\n if (isStudent) {\n shareLabel = translate(\"ShareModal:shareStudent\");\n }\n }\n return (\n
\n \n {this.props.titleModal}\n \n \n \n {this.props.shareLink}\n \n \n \n \n \n
\n );\n }\n}\n\nexport default ShareSimulationModal;\n","import React, { Component } from \"react\";\nimport moment from \"moment\";\nimport \"./modals.css\";\nimport { Button, Modal, Form } from \"semantic-ui-react\";\nimport CalendarComponent from \"../helpers/CalendarComponent\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport { sendPostRequest } from \"../../services/FetchService\";\nimport * as FETCHAPI from \"../../constants/FetchApi\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport DateTimeSelector from \"../helpers/DateTimeSelector\";\nimport \"../authComponents/authComponents.css\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { switchTo12HourFormat, switchTo24HourFormat } from \"../utilities/DateTimeUtilities\";\n\nclass ModifySimulationModal extends Component {\n constructor(props) {\n super(props);\n\n const simulationDetails = props.simulationDetails;\n this.state = {\n simulationName: \"\",\n startDate: simulationDetails.startTime,\n endDate: simulationDetails.endDate,\n error: false,\n dateToModify: \"\",\n startHour: switchTo12HourFormat(Number(moment(simulationDetails.startTime).format(\"HH\"))),\n startHourFormat: moment(simulationDetails.startTime).format(\"a\"),\n endHour: switchTo12HourFormat(Number(moment(simulationDetails.endDate).format(\"HH\"))),\n endHourFormat: moment(simulationDetails.endDate).format(\"a\"),\n errorMessage: \"\",\n posting: false,\n isSuccessResponse: null,\n openCalendar: false,\n };\n }\n\n handleModifyModal = () => {\n const simulationDetails = this.props.simulationDetails;\n this.setState({\n simulationName: \"\",\n startDate: simulationDetails.startTime,\n endDate: simulationDetails.endDate,\n error: false,\n dateToModify: \"\",\n startHour: switchTo12HourFormat(Number(moment(simulationDetails.startTime).format(\"HH\"))),\n startHourFormat: moment(simulationDetails.startTime).format(\"a\"),\n endHour: switchTo12HourFormat(Number(moment(simulationDetails.endDate).format(\"HH\"))),\n endHourFormat: moment(simulationDetails.endDate).format(\"a\"),\n errorMessage: \"\",\n posting: false,\n isSuccessResponse: null,\n openCalendar: false,\n });\n this.props.handleModifyModal();\n };\n\n handleCalendar = (action) => {\n this.setState({\n dateToModify: action,\n openCalendar: !this.state.openCalendar,\n });\n };\n\n onDateClick = (date, dateToModify) => {\n if (dateToModify === \"startDate\" && date >= moment(this.state.endDate).format(\"YYYY-MM-DD\")) {\n this.setState({\n [dateToModify]: date,\n endDate: moment(date).add(1, \"day\"),\n errorMessage: \"\",\n });\n } else {\n this.setState({\n [dateToModify]: date,\n errorMessage: \"\",\n isSuccessResponse: false,\n });\n }\n };\n\n settingStartHour = (event, { value }) => {\n if (isNaN(value)) {\n this.setState({\n startHourFormat: value,\n errorMessage: \"\",\n });\n } else {\n this.setState({\n startHour: value,\n errorMessage: \"\",\n });\n }\n };\n\n settingEndHour = (event, { value }) => {\n if (isNaN(value)) {\n this.setState({\n endHourFormat: value,\n errorMessage: \"\",\n });\n } else {\n this.setState({\n endHour: value,\n errorMessage: \"\",\n });\n }\n };\n\n endDateMustBeGreaterError = () => {\n const translate = this.props.translate;\n this.setState({\n errorMessage: translate(\"ModifyModal:End Date must be after Start Date\"),\n });\n return;\n };\n\n sixHoursError = () => {\n const translate = this.props.translate;\n this.setState({\n errorMessage: translate(\"ModifyModal:Simulation must run for at least 6 hours\"),\n });\n return;\n };\n\n sevenDaysError = () => {\n const translate = this.props.translate;\n this.setState({\n errorMessage: translate(\"ModifyModal:Simulation can only run for 7 days or less\"),\n });\n return;\n };\n\n simulationMustStartLeastOneHourInFutureError = () => {\n const translate = this.props.translate;\n this.setState({\n errorMessage: translate(\"ModifyModal:simulationMustStartLeastOneHourInFuture\"),\n });\n return;\n };\n\n handleSubmit = () => {\n const timeFormat = \"YYYY-MM-DD HH:mm:ss.SSS\";\n const { startDate, endDate, startHour, endHour, startHourFormat, endHourFormat } = this.state;\n const formatedStartHour = switchTo24HourFormat(startHour, startHourFormat);\n const formatedEndHour = switchTo24HourFormat(endHour, endHourFormat);\n\n const todayString = `${moment().format(\"YYYY-MM-DD\")} ${moment().add(1, \"hour\").format(\"HH\")}:00:00.000`;\n const startDateString = `${moment(startDate).format(\"YYYY-MM-DD\")} ${formatedStartHour}:00:00.000`;\n const endDateString = `${moment(endDate).format(\"YYYY-MM-DD\")} ${formatedEndHour}:00:00.000`;\n\n const today = moment(todayString, timeFormat);\n const newDates = {\n startDate: moment(startDateString, timeFormat),\n endDate: moment(endDateString, timeFormat),\n };\n\n const differenceBetweenDates = newDates.endDate.diff(newDates.startDate);\n const validateStartDateRealTime = newDates.startDate.diff(today);\n\n if (differenceBetweenDates < 0) {\n this.endDateMustBeGreaterError();\n } else if (differenceBetweenDates >= 0 && differenceBetweenDates < CONSTANT.SIX_HOURS_MILLISECONDS) {\n this.sixHoursError();\n } else if (differenceBetweenDates > CONSTANT.SEVEN_DAYS_MILLISECONDS) {\n this.sevenDaysError();\n } else if (differenceBetweenDates >= CONSTANT.SIX_HOURS_MILLISECONDS) {\n if (validateStartDateRealTime >= 0) {\n this.postSimulationDates(newDates);\n } else {\n this.simulationMustStartLeastOneHourInFutureError();\n }\n }\n };\n\n postSimulationDates = (newDates) => {\n const simulationRequested = getUrlSearchParam();\n const translate = this.props.translate;\n const simulationDetails = this.props.simulationDetails;\n const actualDates = moment(simulationDetails.startTime) + moment(simulationDetails.endDate);\n const toChangeDates = moment(newDates.startDate) + moment(newDates.endDate);\n if (actualDates === toChangeDates) {\n this.setState({\n posting: false,\n isSuccessResponse: false,\n errorMessage: translate(\"ModifyModal:equalDatesSimulationError\"),\n });\n } else {\n this.setState({ errorMessage: \"\", posting: true });\n let postData = {\n endDate: moment(newDates.endDate).toISOString(),\n startDate: moment(newDates.startDate).toISOString(),\n simulationName: simulationDetails.name,\n };\n const postNewDates = sendPostRequest(FETCHAPI.MODIFY_SIMULATION_DATES_MEDICA, postData);\n postNewDates.then((response) => {\n if (!response.data.outcome) {\n this.setState({\n posting: false,\n isSuccessResponse: false,\n errorMessage: translate(`ModifyModal:${response.data.message}`),\n });\n } else {\n this.setState({\n posting: false,\n isSuccessResponse: true,\n errorMessage: translate(\"ModifyModal:modifyDatesSuccess\"),\n });\n this.handleModifyModal();\n this.props.getSimulationDetails(simulationRequested);\n }\n });\n }\n };\n\n render() {\n const { language, translate } = this.props;\n let calendarComponent = null;\n let loader = null;\n let messagesComponent = null;\n let selectedDate = null;\n\n if (this.state.dateToModify === \"startDate\") {\n selectedDate = this.state.startDate;\n } else {\n selectedDate = this.state.endDate;\n }\n\n if (this.state.openCalendar) {\n calendarComponent = (\n \n );\n }\n if (this.state.errorMessage !== \"\") {\n messagesComponent = (\n
\n \n
\n );\n }\n if (this.state.posting) {\n loader =
;\n }\n return (\n
\n \n {translate(\"ModifyModal:modify\")}\n \n {calendarComponent}\n \n
\n this.setState({ dateToModify: \"startDate\" })}\n error={this.state.error}\n handleCalendar={this.handleCalendar}\n dateToSet={CONSTANT.START_DATE}\n settingHour={this.settingStartHour}\n date={this.state.startDate}\n hour={this.state.startHour}\n hourFormat={this.state.startHourFormat}\n language={language}\n labelAlignment=\"left\"\n />\n this.setState({ dateToModify: \"endDate\" })}\n error={this.state.error}\n handleCalendar={this.handleCalendar}\n dateToSet={CONSTANT.END_DATE}\n settingHour={this.settingEndHour}\n date={this.state.endDate}\n hour={this.state.endHour}\n hourFormat={this.state.endHourFormat}\n language={language}\n labelAlignment=\"left\"\n />\n \n
\n {messagesComponent}\n {loader}\n
\n \n
\n );\n }\n}\n\nexport default ModifySimulationModal;\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"semantic-ui-react\";\nimport DropDownComponent from \"../helpers/DropDownComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport { withTranslation } from \"react-i18next\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\n\nclass AdvanceSimulationModal extends Component {\n state = {\n errorEmptyInput: true,\n daysToAdvance: 0,\n futureDays: 0,\n remainingDays: {},\n actionToAdvance: \"\",\n };\n\n componentDidMount() {\n this.setRemainingDaysToState();\n }\n\n setRemainingDaysToState = () => {\n const simulationDetails = this.props.simulationDetails;\n const {\n initializationPeriod,\n studentInteractionPeriod,\n endOfSimulationPeriod,\n currentSimulationDay,\n } = simulationDetails;\n this.setSimulationStatusToState(simulationDetails);\n const maxDaysToRun = initializationPeriod + studentInteractionPeriod + endOfSimulationPeriod;\n const studentInteractionToRun = initializationPeriod + studentInteractionPeriod;\n\n const daysToRun = {\n maxDaysToRun: maxDaysToRun - currentSimulationDay,\n studentInteractionToRun: studentInteractionToRun - currentSimulationDay,\n };\n this.setState({\n remainingDays: daysToRun,\n });\n };\n\n setSimulationStatusToState = (simulationDetails) => {\n const { currentSimulationDay, initializationPeriod } = simulationDetails;\n\n if (currentSimulationDay === initializationPeriod) {\n this.setState({\n actionToAdvance: CONSTANT.START_SIMULATION,\n });\n } else {\n this.setAdvanceOrFinishSimulationToState(simulationDetails);\n }\n };\n\n setAdvanceOrFinishSimulationToState = (simulationDetails) => {\n const { currentSimulationDay, initializationPeriod, studentInteractionPeriod } = simulationDetails;\n\n if (currentSimulationDay < initializationPeriod + studentInteractionPeriod) {\n this.setState({\n actionToAdvance: CONSTANT.ADVANCE_SIMULATION,\n });\n } else {\n this.setState({\n actionToAdvance: CONSTANT.FINISH_SIMULATION,\n });\n }\n };\n\n handleClose = () => {\n this.setState({\n daysToAdvance: 0,\n futureDays: 0,\n errorEmptyInput: true,\n });\n\n this.props.handleAdvanceModal();\n };\n\n onSelectionDay = (val) => {\n const { initializationPeriod, studentInteractionPeriod, currentSimulationDay } = this.props.simulationDetails;\n let futureDays = currentSimulationDay + val;\n let idealFutureDays = initializationPeriod + studentInteractionPeriod;\n if (futureDays > idealFutureDays) {\n futureDays = idealFutureDays;\n }\n this.setState({\n daysToAdvance: val,\n futureDays: futureDays,\n errorEmptyInput: false,\n });\n };\n\n advanceSimulation = () => {\n const { name, endOfSimulationPeriod } = this.props.simulationDetails;\n const { actionToAdvance, daysToAdvance } = this.state;\n let customDaysToAdvance = daysToAdvance;\n if (actionToAdvance === CONSTANT.FINISH_SIMULATION) {\n customDaysToAdvance = endOfSimulationPeriod;\n }\n if (customDaysToAdvance !== 0) {\n let postData = {\n simulationName: name,\n daysToSimulate: customDaysToAdvance,\n };\n this.props.advanceSimulation(postData);\n }\n };\n\n populateOptions = () => {\n return [\n {\n key: 1,\n text: \"5\",\n value: 5,\n },\n {\n key: 2,\n text: \"10\",\n value: 10,\n },\n {\n key: 3,\n text: \"15\",\n value: 15,\n },\n {\n key: 4,\n text: \"20\",\n value: 20,\n },\n {\n key: 5,\n text: \"30\",\n value: 30,\n },\n ];\n };\n\n successAction = () => {\n this.props.getSimulationDetails(this.props.simulationDetails.id);\n this.props.resetAdvanceSimulationProps();\n this.handleClose();\n };\n\n render() {\n const translate = this.props.t;\n const { daysToAdvance, futureDays, remainingDays, actionToAdvance } = this.state;\n const { loading, errorMessage, simulationDetails, successMessage, open } = this.props;\n const { endOfSimulationPeriod, currentSimulationDay } = simulationDetails;\n const { studentInteractionToRun } = remainingDays;\n let statusComponent = null;\n let optionsDaysToAdvance = [];\n let actionButtons = null;\n let customfutureDays = futureDays;\n let remainingDaysTemplate = null;\n let messageComponent = null;\n let buttonContent = translate(\"AdvanceSimulationModal:advance\");\n let customSuccessMessage = translate(`AdvanceSimulationModal:${successMessage}`);\n let oncloseFunction = this.handleClose;\n if (studentInteractionToRun > 0 && customSuccessMessage === \"\") {\n optionsDaysToAdvance = this.populateOptions();\n }\n\n let daysToAdvanceItem = (\n \n );\n\n if (actionToAdvance === CONSTANT.FINISH_SIMULATION) {\n daysToAdvanceItem =
{endOfSimulationPeriod}
;\n customfutureDays = currentSimulationDay + endOfSimulationPeriod;\n buttonContent = translate(\"Common:finish\");\n customSuccessMessage = translate(\"AdvanceSimulationModal:simulationFinishedSuccessfully\");\n\n if (successMessage === \"\") {\n messageComponent = (\n \n );\n }\n } else {\n remainingDaysTemplate = (\n
\n {translate(\"AdvanceSimulationModal:remainingDays\")} {studentInteractionToRun}{\" \"}\n {translate(\"AdvanceSimulationModal:days\")}\n
\n );\n }\n\n actionButtons = (\n \n \n
\n \n \n {actionButtons}\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getSimulationDetails: (simulationId, language, translate) =>\n dispatch(getSimulationDetails(simulationId, language, translate)),\n getDocuments: (simulationName) => dispatch(getDocuments(simulationName)),\n advanceSimulation: (data) => dispatch(advanceSimulation(data)),\n resetAdvanceSimulationProps: () => dispatch(resetAdvanceSimulationProps()),\n});\n\nconst mapStateToProps = (state) => {\n return {\n medica: {\n simulationDetails: state.medica.simulationDetails,\n loadingDetails: state.medica.loadingDetails,\n getSimulationDetailsError: state.medica.getSimulationDetailsError,\n },\n advanceSimulationProps: {\n successMessage: state.medica.advanceSimulationSuccessfully,\n loading: state.medica.advancingSimulation,\n errorMessage: state.medica.advanceSimulationError,\n },\n simulationDocumentation: {\n loading: state.medica.simulationDocumentation.loadingDocumentation,\n errorMessage: state.medica.simulationDocumentation.getDocumentationError,\n documentation: state.medica.simulationDocumentation.documentation,\n },\n language: state.user.userProfile.language,\n };\n};\n\nexport default compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"MedicaDetailScreen\", \"ModifyModal\", \"ShareModal\", \"MedicaAdvancedOptions\", \"Common\"),\n withRouter\n)(MedicaDetailScreen);\n","import * as CONSTANT from \"../../constants/UniversalConstants\";\nimport * as ButtonKeys from \"./actionButtonConstants\";\n\nexport const filterActionButtons = (simulation, actionButtons) => {\n var filteredActionButtons = [];\n\n filteredActionButtons = [\n ...Object.keys(actionButtons)\n .filter((x) => {\n if (x === ButtonKeys.runAgainKey) return simulation.currentRun < simulation.maxNumberOfRuns;\n\n if (x === ButtonKeys.modifyKey) {\n return !simulation.professorManagedProgress && simulation.status === CONSTANT.INITIALIZED;\n }\n if (x === ButtonKeys.startSimulationKey) {\n return (\n simulation.professorManagedProgress && simulation.currentSimulationDay === simulation.initializationPeriod\n );\n }\n if (x === ButtonKeys.advanceSimulationKey) {\n return (\n simulation.professorManagedProgress &&\n simulation.currentSimulationDay > simulation.initializationPeriod &&\n simulation.currentSimulationDay < simulation.initializationPeriod + simulation.studentInteractionPeriod\n );\n }\n if (x === ButtonKeys.finishSimulationKey) {\n return (\n simulation.professorManagedProgress &&\n simulation.currentSimulationDay >= simulation.initializationPeriod + simulation.studentInteractionPeriod &&\n simulation.status !== CONSTANT.FINISHED\n );\n }\n return true;\n })\n .map((x) => {\n return { key: x, ...actionButtons[x] };\n }),\n ];\n\n return filteredActionButtons;\n};\n","export const startSimulationKey = \"startSimulation\";\nexport const advanceSimulationKey = \"advanceSimulation\";\nexport const finishSimulationKey = \"finishSimulation\";\nexport const modifyKey = \"modify\";\nexport const standingsKey = \"standings\";\nexport const pushNotificationKey = \"pushNotification\";\nexport const registeredStudentsKey = \"registeredStudents\";\nexport const shareSimulationKey = \"shareSimulation\";\nexport const dashboardsKey = \"dashboards\";\nexport const documentsKey = \"documents\";\nexport const runAgainKey = \"runAgain\";\nexport const decisionsHistoryKey = \"decisionsHistory\";\nexport const backKey = \"back\";\n","const isDeviceMobile = function () {\n let check = false;\n (function (a) {\n if (\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\n a\n ) ||\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(\n a.substr(0, 4)\n )\n )\n check = true;\n })(navigator.userAgent || navigator.vendor || window.opera);\n return check;\n};\n\nexport default isDeviceMobile;\n","import isDeviceMobile from \"../components/utilities/MobileBrowserChecker\";\n\nlet chatWidgetBottomPosition = null;\n\nexport const fixChatWidgetPlacement = () => {\n if (!isDeviceMobile()) {\n return;\n }\n\n const chatWidget = window.document.getElementById(\"chat-application\");\n if (chatWidget?.style?.bottom) {\n chatWidgetBottomPosition = chatWidget.style.bottom;\n chatWidget.style.bottom = null;\n }\n};\n\nexport const resetChatWidgetPlacement = () => {\n const chatWidget = window.document.getElementById(\"chat-application\");\n if (chatWidget && chatWidgetBottomPosition) {\n chatWidget.style.bottom = chatWidgetBottomPosition;\n }\n};\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"semantic-ui-react\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport { sentryReportEvent } from \"../../services/SentryReportService\";\n\nclass ActivationCodeModal extends Component {\n state = {\n discountCode: \"\",\n retryActivated: false,\n errorEmptyInput: false,\n errorInputMessage: \"\",\n };\n\n handleChange = (id, data) => {\n this.setState({\n [id]: data,\n errorEmptyInput: false,\n });\n };\n\n handleClose = () => {\n this.setState({\n discountCode: \"\",\n retryActivated: false,\n });\n this.resetDiscountCodeStore();\n this.props.handleDiscountModal();\n };\n\n validateDiscountCode = () => {\n const { validateDiscountCode, translate } = this.props;\n const { discountCode } = this.state;\n\n if (discountCode === \"\") {\n this.setState({\n errorEmptyInput: true,\n errorInputMessage: translate(\"writeValidCode\"),\n });\n }\n this.setState({ retryActivated: false });\n validateDiscountCode(discountCode);\n };\n\n retryCode = () => {\n this.setState({\n retryActivated: true,\n discountCode: \"\",\n });\n this.resetDiscountCodeStore();\n };\n\n resetDiscountCodeStore = () => {\n const { resetDiscountCode, updateStorage, discountCodeStatus } = this.props;\n if (!discountCodeStatus.discountActivated) {\n const discountCodeInitialValues = {\n discountActivated: null,\n discountCodeMessage: \"\",\n };\n resetDiscountCode();\n updateStorage(discountCodeInitialValues);\n }\n };\n\n render() {\n const translate = this.props.translate;\n const { discountCode, errorEmptyInput, errorInputMessage, retryActivated } = this.state;\n const { loadingDiscountCode, discountCodeMessage, discountActivated } = this.props.discountCodeStatus;\n let actionButton = null;\n let inputComponent = null;\n let loader = null;\n let messagesComponent = null;\n\n if (discountActivated === false && discountCodeMessage === \"discountSuccess\") {\n const sentryTag = {\n name: \"falseDiscountActivated\",\n data: discountCode,\n };\n const sentryExtras = [\n { title: \"discountActivated\", value: discountActivated },\n { title: \"discountCodeMessage\", value: discountCodeMessage },\n { title: \"retryActivated\", value: retryActivated },\n ];\n sentryReportEvent(\"Failed abogados discount code validation\", sentryTag, sentryExtras);\n }\n\n if (!loadingDiscountCode) {\n if ((discountActivated || discountCodeMessage) && !retryActivated) {\n const messageToDisplay = discountActivated ? translate(\"discountSuccess\") : translate(discountCodeMessage);\n messagesComponent = ;\n } else {\n inputComponent = (\n \n );\n }\n } else {\n loader =
;\n }\n\n if (discountActivated || (discountCodeMessage && !retryActivated)) {\n if (!discountActivated) {\n actionButton = \n
\n {/* Show any error or success messages */}\n {message &&
{message}
}\n \n );\n}\n","import React, { Component } from \"react\";\nimport { loadStripe } from \"@stripe/stripe-js\";\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport { getPaymentIntent } from \"../../store/StripePayment/actions\";\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\nimport CheckoutForm from \"./CheckoutForm\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport { withTranslation } from \"react-i18next\";\nimport { Grid } from \"semantic-ui-react\";\n\nimport \"./PaymentManagerStripe.css\";\n\nconst stripePromise = loadStripe(process.env.REACT_APP_STRIPE_API_KEY);\n\nconst appearance = {\n theme: \"none\",\n variables: {\n colorBackground: \"#ffffff\",\n colorTextPlaceholder: \"#e0e0e0\",\n colorText: \"#272727\",\n\n colorDanger: \"#df1b41\",\n fontFamily: \"Chivo, system-ui, sans-serif\",\n spacingUnit: \"4px\",\n },\n labels: \"above\",\n rules: {\n \".Input\": {\n borderRadius: \"0px\",\n border: \"2px solid #d7d7d7\",\n },\n \".Input:focus::placeholder\": {\n color: \"rgba(115,115,115,.87)\",\n },\n \".Input:focus\": {\n outline: \"none\",\n },\n },\n};\n\nclass PaymentManagerStripe extends Component {\n async componentDidMount() {\n if (this.props.amount > 0) await this.getPaymentIntent();\n }\n\n async getPaymentIntent() {\n const { simulationId, discountCode, numberOfLicenses, amount, description, creatingSimulation, paymentIntentAPI } =\n this.props;\n const request = {\n simulationId: simulationId,\n discountCode: discountCode,\n numberOfLicenses: numberOfLicenses,\n amount: amount * 100,\n description: description,\n creatingSimulation: creatingSimulation,\n };\n await this.props.getPaymentIntent(request, paymentIntentAPI);\n }\n\n async componentDidUpdate(prevProps) {\n const { amount } = this.props;\n if (amount !== prevProps.amount && amount > 0) {\n await this.getPaymentIntent();\n }\n }\n\n render() {\n const { paymentIntent, successRoute, amount } = this.props;\n const returnUrl = `${process.env.REACT_APP_AUTH0_RETURN_TO}${successRoute}`;\n const clientSecret = paymentIntent.clientSecret.length > 0 ? paymentIntent.clientSecret : undefined;\n const options = {\n clientSecret,\n appearance,\n locale: this.props.i18n.language,\n };\n\n const displayElement = clientSecret && amount > 0;\n return (\n \n \n \n {displayElement && (\n \n \n \n )}\n {paymentIntent.loading && }\n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n paymentIntent: state.stripePayment.paymentIntent,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n getPaymentIntent: (request, api) => dispatch(getPaymentIntent(request, api)),\n});\n\nconst HOC = compose(connect(mapStateToProps, mapDispatchToProps), withTranslation());\n\nexport default HOC(PaymentManagerStripe);\n","import PaymentManagerStripe from \"./PaymentManagerStripe\";\nexport default PaymentManagerStripe;\n","import React, { Component } from \"react\";\nimport { Grid } from \"semantic-ui-react\";\n\nclass AmountsComponent extends Component {\n render() {\n const { translate, amountByStudent, paymentData } = this.props;\n const numberOfLicenses = paymentData.numberOfLicenses;\n let studentsTranslate = null;\n\n if (numberOfLicenses > 1) {\n studentsTranslate = translate(\"Common:students\");\n } else {\n studentsTranslate = translate(\"Common:Student\").toLowerCase();\n }\n\n return (\n \n \n

\n {numberOfLicenses} {studentsTranslate} X ${amountByStudent}\n

\n

Total = ${paymentData.amount}

\n
\n
\n );\n }\n}\n\nexport default AmountsComponent;\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Modal, Button, Divider } from \"semantic-ui-react\";\nimport { discountCodeStatuses } from \"../../utilities/storeStatusDictionary\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\n\nclass DiscountCodeModal extends Component {\n state = {\n discountCode: \"\",\n retryActivated: false,\n errorEmptyInput: false,\n };\n\n handleInputChange = (_, data) => {\n this.setState({\n discountCode: data,\n errorEmptyInput: data.length === 0,\n });\n };\n\n handleClose = (status) => {\n this.setState({\n discountCode: \"\",\n });\n this.props.handleDiscountModal(status);\n };\n\n validateDiscountCode = () => {\n const { validateDiscountCode, paymentData } = this.props;\n const { discountCode } = this.state;\n\n if (discountCode === \"\") {\n this.setState({\n errorEmptyInput: true,\n errorInputMessage: \"writeValidCode\",\n });\n return;\n }\n\n validateDiscountCode({\n code: discountCode,\n numberOfLicenses: paymentData.numberOfLicenses,\n });\n };\n\n render() {\n const { discountCode, errorEmptyInput } = this.state;\n const { t: translate } = this.props;\n const { status, discountCodeMessage } = this.props.discountCodeStatus;\n let actionButton = null;\n let inputComponent = null;\n let loader = null;\n let messagesComponent = null;\n\n const displaySuccessMessage = [discountCodeStatuses.activated, discountCodeStatuses.activatedPaid].includes(status);\n const displayErrorMessage = status !== discountCodeStatuses.loading && discountCodeMessage.length > 0;\n if (displaySuccessMessage || displayErrorMessage) {\n const message = displaySuccessMessage ? \"discountSuccess\" : discountCodeMessage;\n messagesComponent = (\n <>\n
\n \n \n {actionButtons}\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getSimulationDetails: (data) => dispatch(getSimulationDetails(data)),\n advanceSimunationAction: (simunationId) => dispatch(advanceSimunationAction(simunationId)),\n resetAdvancedSimunationData: () => dispatch(resetAdvancedSimunationData()),\n});\n\nconst mapStateToProps = (state) => {\n return {\n simunation: {\n simulationDetails: state.simunation.simulationDetails,\n loadingDetails: state.simunation.loadingDetails,\n getSimulationDetailsError: state.simunation.getSimulationDetailsError,\n },\n advanceSimunationData: {\n advanceSimunationSuccess: state.simunation.advanceSimunationSuccess,\n loadingAdvanceSimunation: state.simunation.loadingAdvanceSimunation,\n advanceSimunationErrorMessage: state.simunation.advanceSimunationErrorMessage,\n },\n };\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(\n withTranslation(\"SimunationDetailScreen\", \"AdvanceSimulationModal\", \"Common\")(withRouter(SimunationDetailScreen))\n);\n","import * as ButtonKeys from \"./actionButtonConstants\";\n\nexport const filterActionButtons = (simulation, actionButtons) => {\n const filteredActionButtons = [\n ...Object.keys(actionButtons)\n .filter((x) => {\n if (x === ButtonKeys.advanceSimulationKey) {\n return simulation.professorManagedProgress;\n }\n\n return true;\n })\n .map((x) => {\n return { key: x, ...actionButtons[x] };\n }),\n ];\n\n return filteredActionButtons;\n};\n","export const advanceSimulationKey = \"advanceSimulation\";\nexport const standingsKey = \"standings\";\nexport const registeredStudentsKey = \"registeredStudents\";\nexport const backKey = \"back\";\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { Table } from \"semantic-ui-react\";\n\nclass RegisteredStudentsComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n registeredStudentList: props.simulationRegisteredStudents,\n direction: null,\n };\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, registeredStudentList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n registeredStudentList: _.sortBy(registeredStudentList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n registeredStudentList: registeredStudentList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, registeredStudentList } = this.state;\n\n const arrowsIcon = ;\n\n return (\n
(this.topTable = ref)}>\n

{`${translate(\"registeredStudentsOf\")}: ${registeredStudentList.length}`}

\n \n \n \n \n
\n {translate(\"Common:team\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"name\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"email\").toUpperCase()}\n {arrowsIcon}\n
\n
\n
\n
\n \n {registeredStudentList.map((student) => {\n return (\n \n {student.teamName}\n {student.name}\n {student.email}\n \n );\n })}\n \n
\n
\n );\n }\n}\n\nexport default RegisteredStudentsComponent;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { withTranslation } from \"react-i18next\";\nimport { Container } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport RegisteredStudentsComponent from \"./RegisteredStudentsComponent\";\nimport { getRegisteredStudents } from \"../../store/Simunation/actions\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\n\nclass SimunationRegisteredStudentsScreen extends Component {\n state = {\n requestedSimulationName: getUrlSearchParam(),\n };\n\n componentDidMount() {\n this.getRegisteredStudents();\n }\n\n getRegisteredStudents = () => {\n this.props.getRegisteredStudents(this.state.requestedSimulationName);\n };\n\n render() {\n const translate = this.props.t;\n const { registeredStudents, error, loading } = this.props.simunation;\n let loader = null;\n let messageComponent = null;\n let registeredStudentsComponent = null;\n\n if (loading) {\n loader = ;\n } else {\n if (error !== \"\") {\n messageComponent = ;\n } else {\n if (registeredStudents.outcome) {\n registeredStudentsComponent = (\n \n );\n }\n }\n }\n return (\n \n \n \n {loader}\n {messageComponent}\n {registeredStudentsComponent}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getRegisteredStudents: (simulationName) => dispatch(getRegisteredStudents(simulationName)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n simunation: {\n registeredStudents: state.simunation.simulationRegisteredStudents,\n loading: state.simunation.loadingRegisteredStudents,\n error: state.simunation.getRegisteredStudentsError,\n },\n };\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(\n withTranslation(\"RegisteredStudentsScreen\", \"Common\")(withRouter(SimunationRegisteredStudentsScreen))\n);\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { Table } from \"semantic-ui-react\";\n\nclass StandingsComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n standingsList: props.simulationStandings,\n direction: null,\n };\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, standingsList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n standingsList: _.sortBy(standingsList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n standingsList: standingsList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, standingsList } = this.state;\n const arrowsIcon = ;\n return (\n
(this.topTable = ref)}>\n

{`${translate(\"totalTeams\")}: ${standingsList.length}`}

\n \n \n \n \n
\n {translate(\"standings\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"Common:team\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"year\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"gdp\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {\"SPI\"}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"cash\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"score\").toUpperCase()}\n {arrowsIcon}\n
\n
\n
\n
\n \n {standingsList.map((standing) => {\n let calculatedScore = standing.score * 100;\n if (calculatedScore < 100) {\n calculatedScore = calculatedScore.toFixed(2);\n }\n return (\n \n {standing.position}\n {standing.name}\n {standing.step}\n {standing.gdp}\n {standing.spi}\n {`$ ${standing.cash}`}\n {calculatedScore}\n \n );\n })}\n \n
\n
\n );\n }\n}\n\nexport default StandingsComponent;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { withTranslation } from \"react-i18next\";\nimport { Container } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport StandingsComponent from \"./StandingsComponent\";\nimport { getStandings } from \"../../store/Simunation/actions\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\n\nclass SimunationStandingsScreen extends Component {\n state = {\n requestedSimulationName: getUrlSearchParam(),\n };\n\n componentDidMount() {\n this.getStandings();\n }\n\n getStandings = () => {\n this.props.getStandings(this.state.requestedSimulationName);\n };\n\n render() {\n const translate = this.props.t;\n const { standings, error, loading } = this.props.simunation;\n let loader = null,\n messageComponent = null,\n standingsComponent = null;\n\n if (loading) {\n loader = ;\n } else {\n if (error !== \"\") {\n messageComponent = ;\n } else {\n if (standings.outcome) {\n standingsComponent = ;\n }\n }\n }\n return (\n \n \n \n {loader}\n {messageComponent}\n {standingsComponent}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getStandings: (simulationName) => dispatch(getStandings(simulationName)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n simunation: {\n standings: state.simunation.simulationStandings,\n loading: state.simunation.loadingStandings,\n error: state.simunation.getStandingsError,\n },\n };\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(\n withTranslation(\"StandingsScreen\", \"Common\")(withRouter(SimunationStandingsScreen))\n);\n","import React, { Component } from \"react\";\nimport { Form } from \"semantic-ui-react\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport NavigationButton from \"../helpers/NavigationButton\";\nimport ErrorModal from \"../modals/ErrorModal\";\nimport ShareSimulationModal from \"../modals/ShareModal\";\nimport ConfirmationModal from \"../modals/ConfirmationModal\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport { getStorage, setStorage } from \"../../services/StorageService\";\nimport { getLanguagePrefix } from \"../utilities/LanguageUtilities\";\nimport { checkNameIsValid } from \"../utilities/DataValidationUtilities\";\n\nclass StudentCreateTeamComponent extends Component {\n constructor(props) {\n super(props);\n let paymentIntentId;\n const params = new URLSearchParams(window.location.search);\n if (params.has(\"payment_intent\")) {\n paymentIntentId = params.get(\"payment_intent\");\n }\n\n this.state = {\n teamName: \"\",\n teamNameRequiredError: false,\n openConfirmModal: false,\n paymentIntentId: paymentIntentId,\n };\n }\n\n setTeamName = (id, data) => {\n const isValidName = checkNameIsValid(data);\n if (isValidName) {\n this.setState({\n [id]: data,\n teamNameRequiredError: false,\n });\n } else {\n this.setState({\n teamNameRequiredError: true,\n teamNameRequiredErrorText: \"invalidTeamNameCharacterError\",\n });\n }\n };\n\n handleSubmit = () => {\n if (this.state.teamName === \"\") {\n this.setState({\n teamNameRequiredError: true,\n teamNameRequiredErrorText: \"Payment:required\",\n });\n } else {\n this.handleConfirmModal();\n }\n };\n\n handleConfirmModal = () => {\n this.setState({\n openConfirmModal: !this.state.openConfirmModal,\n });\n };\n\n onConfirm = () => {\n const { language, createTeam } = this.props;\n const languagePrefix = getLanguagePrefix(language);\n const activationCode = getStorage(LOCALSTORAGE.activationCode);\n const { discountCode } = getStorage(LOCALSTORAGE.medicaQuestionnaire).discountCode || \"\";\n let postData = {\n teamName: this.state.teamName,\n language: \"en\",\n activationCode: activationCode,\n timeDifference: \"-5\",\n sendTeamCreationEmail: true,\n UserLanguage: languagePrefix,\n discountCode: discountCode,\n };\n createTeam(postData);\n this.handleConfirmModal();\n };\n\n handleErrorModal = () => {\n const { removeOldStoredData, history } = this.props;\n removeOldStoredData();\n history.push(ROUTES.STUDENTS_LOGIN);\n };\n\n closeErrorModal = () => {\n const { resetCreateTeamStore } = this.props;\n resetCreateTeamStore();\n this.setState({\n teamName: \"\",\n });\n };\n\n render() {\n const translate = this.props.translate;\n const { teamNameRequiredErrorText } = this.state;\n const onlyOneTeamError = \"You can only create one team.\";\n const teamAlreadyExistError = \"Team already exists.\";\n let statusComponent = null;\n let confirmationModal = null;\n let errorModal = null;\n\n const confirmationBody = (\n

\n {translate(\"sureYouWantCreateTeam\")} {this.state.teamName}?\n

\n );\n\n if (this.state.openConfirmModal) {\n confirmationModal = (\n \n );\n }\n\n if (this.props.shareLink !== \"\") {\n this.props.removeOldStoredData();\n setStorage(LOCALSTORAGE.purchasedProduct, CONSTANT.PRODUCTS.MEDICA);\n return (\n this.props.history.push(ROUTES.DOWNLOAD_APP)}\n messageType={true}\n translate={translate}\n updateTransactionData={this.props.updateTransactionData}\n isStudent={true}\n />\n );\n }\n\n if (this.props.isLoading) {\n statusComponent = ;\n } else {\n if (this.props.error !== \"\") {\n if (this.props.error === onlyOneTeamError) {\n errorModal = (\n \n );\n } else if (this.props.error === teamAlreadyExistError) {\n errorModal = (\n \n );\n } else {\n errorModal = (\n \n );\n }\n }\n }\n\n return (\n
\n {confirmationModal}\n {errorModal}\n
\n \n \n {statusComponent}\n \n
\n );\n }\n}\n\nexport default StudentCreateTeamComponent;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { withTranslation } from \"react-i18next\";\nimport { Container } from \"semantic-ui-react\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport StudentCreateTeamComponent from \"./StudentCreateTeamComponent\";\nimport { removeStorage } from \"../../services/StorageService\";\nimport { createTeam, resetCreateTeamStore } from \"../../store/Medica/actions\";\nimport { medicaConfirmPayment, updateTransactionData } from \"../../store/MedicaQuestionnaire/actions\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport \"./studentCreateTeamStyles.css\";\nimport PaymentVerificationModal from \"../modals/PaymentVerificationModal\";\nimport { confirmPaymentStatuses } from \"../../utilities/storeStatusDictionary\";\n\nclass StudentCreateTeamScreen extends Component {\n removeOldStoredData = () => {\n removeStorage(LOCALSTORAGE.teamCode);\n removeStorage(LOCALSTORAGE.securityCode);\n removeStorage(LOCALSTORAGE.teamName);\n removeStorage(LOCALSTORAGE.simulationId);\n removeStorage(LOCALSTORAGE.activationCode);\n removeStorage(LOCALSTORAGE.medicaQuestionnaire);\n };\n\n constructor(props) {\n super(props);\n let paymentIntentId;\n const params = new URLSearchParams(window.location.search);\n if (params.has(\"payment_intent\")) {\n paymentIntentId = params.get(\"payment_intent\");\n }\n\n this.state = {\n paymentIntentId: paymentIntentId,\n };\n }\n\n async componentDidMount() {\n await this.validatePayment();\n }\n\n validatePayment = async () => {\n if (typeof this.state.paymentIntentId === \"string\") {\n await this.props.confirmPayment(this.state.paymentIntentId);\n }\n };\n\n render() {\n const { t: translate, confirmPaymentStatus } = this.props;\n const { language, medica } = this.props;\n const { creatingTeam, createTeamError, simulationShareLink } = medica;\n\n if (\n confirmPaymentStatus.status === confirmPaymentStatuses.loading ||\n confirmPaymentStatus.status === confirmPaymentStatuses.fail\n ) {\n return ;\n }\n const studentCreateTeamComponent = (\n \n );\n\n return (\n \n \n \n {studentCreateTeamComponent}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n confirmPayment: (intentId) => dispatch(medicaConfirmPayment(intentId)),\n createTeam: (data) => dispatch(createTeam(data)),\n updateTransactionData: (data) => dispatch(updateTransactionData(data)),\n resetCreateTeamStore: () => dispatch(resetCreateTeamStore()),\n});\n\nconst mapStateToProps = (state) => {\n return {\n confirmPaymentStatus: state.medicaQuestionnaire.confirmPayment,\n medica: {\n simulationShareLink: state.medica.simulationShareLink,\n createTeamError: state.medica.createTeamError,\n creatingTeam: state.medica.creatingTeam,\n },\n language: state.user.userProfile.language,\n };\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(\n withTranslation(\"StudentCreateTeam\", \"ShareModal\", \"Common\")(withRouter(StudentCreateTeamScreen))\n);\n","import React from \"react\";\nimport { Header } from \"semantic-ui-react\";\nimport styles from \"./StudentJoinTeamComponent.module.css\";\n\nconst StudentJoinTeamComponent = (props) => {\n const translate = props.translate;\n return (\n
\n
\n
\n
\n
\n {translate(\"joiningTeam\")}\n
\n
\n
\n
\n );\n};\n\nexport default StudentJoinTeamComponent;\n","import React from \"react\";\nimport \"./modals.css\";\nimport { Button, Modal, Message } from \"semantic-ui-react\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\n\nconst JoinedTeamModal = (props) => {\n const translate = props.translate;\n let actionButton = null;\n let cancelButton = null;\n\n const closeJoinTeam = () => {\n props.history.replace(ROUTES.STUDENTS_LOGIN);\n props.removeStorage(LOCALSTORAGE.teamCode);\n props.removeStorage(LOCALSTORAGE.securityCode);\n props.removeStorage(LOCALSTORAGE.teamName);\n props.removeStorage(LOCALSTORAGE.simulationId);\n props.removeStorage(LOCALSTORAGE.activationCode);\n };\n\n const goToDownloadApp = () => {\n const transactionData = {\n paymentId: \"\",\n purchasedSimulationName: CONSTANT.MEDICA_NAME,\n };\n props.updateTransactionData(transactionData);\n props.history.push(ROUTES.DOWNLOAD_APP);\n };\n\n if (props.messageType) {\n actionButton =
\n );\n }\n}\n\nexport default SupplyChainShareSimulationModal;\n","export const OneStationUnknownPeers = \"OneStationUnknownPeers\";\nexport const OneStationKnownPeers = \"OneStationKnownPeers\";\nexport const AllStationsKnownPeers = \"AllStationsKnownPeers\";\nexport const LastMile = \"LastMile\";\n\nexport const minTimeBeforeSimulationStartsInMiliseconds = 1800000; //30 min\nexport const minSimulationDurationInMiliseconds = 21600000; //6 hours\nexport const maxSimulationDurationInMiliseconds = 187200000; //52 hours\nexport const minimumNumberOfHoursToRunByPace = { 1: 10, 2: 48 };\nexport const maximumNumberOfHoursToRunByPace = { 1: 60, 2: 120 };\n","import { SUPPLY_CHAIN_JOIN_SIMULATION_PREAMBLE } from \"../../constants/Routes\";\nimport * as SUPPLYCHAIN_CONSTANTS from \"../../constants/SupplyChainConstants\";\nimport moment from \"moment\";\nimport { convertHoursToMilliseconds } from \"./DateTimeUtilities\";\n\nexport const createSupplyChainLink = (simulationId) => {\n return `${window.location.origin}${SUPPLY_CHAIN_JOIN_SIMULATION_PREAMBLE}?simulationId=${simulationId}`;\n};\n\nexport const supplyChainGameModeOptions = (t) => [\n {\n key: 1,\n text: t(`SupplyChainCommon:${SUPPLYCHAIN_CONSTANTS.OneStationUnknownPeers}`),\n value: SUPPLYCHAIN_CONSTANTS.OneStationUnknownPeers,\n },\n {\n key: 2,\n text: t(`SupplyChainCommon:${SUPPLYCHAIN_CONSTANTS.OneStationKnownPeers}`),\n value: SUPPLYCHAIN_CONSTANTS.OneStationKnownPeers,\n },\n {\n key: 3,\n text: t(`SupplyChainCommon:${SUPPLYCHAIN_CONSTANTS.AllStationsKnownPeers}`),\n value: SUPPLYCHAIN_CONSTANTS.AllStationsKnownPeers,\n },\n {\n key: 4,\n text: t(`SupplyChainCommon:${SUPPLYCHAIN_CONSTANTS.LastMile}`),\n value: SUPPLYCHAIN_CONSTANTS.LastMile,\n },\n];\n\nexport const supplyChainTimeBetweenAdvancesOptions = (t) => [\n {\n key: \"time1\",\n text: t(\"SupplyChainPurchased:TimeBetweenAdvancesOneHour\"),\n value: 1,\n },\n {\n key: \"time2\",\n text: t(\"SupplyChainPurchased:TimeBetweenAdvancesTwoHours\"),\n value: 2,\n },\n];\n\nexport const supplyChainValidateDates = (startDate, endDate, pace) => {\n if (startDate.diff(moment()) < SUPPLYCHAIN_CONSTANTS.minTimeBeforeSimulationStartsInMiliseconds) {\n return {\n invalidStartTime: true,\n invalidEndTime: false,\n dateValidationError: { message: \"SupplyChainPurchased:SimulationStartInTheFuture\" },\n };\n }\n\n const { minimumNumberOfHoursToRunByPace, maximumNumberOfHoursToRunByPace } = SUPPLYCHAIN_CONSTANTS;\n const minimumHoursToRun =\n typeof minimumNumberOfHoursToRunByPace[pace] === \"number\" ? minimumNumberOfHoursToRunByPace[pace] : 50;\n const maximumHoursToRun =\n typeof maximumNumberOfHoursToRunByPace[pace] === \"number\" ? maximumNumberOfHoursToRunByPace[pace] : 122;\n\n if (endDate.diff(startDate) < convertHoursToMilliseconds(minimumHoursToRun)) {\n return {\n invalidStartTime: false,\n invalidEndTime: true,\n dateValidationError: { message: \"SupplyChainPurchased:SimulationMinDurationError\", hours: minimumHoursToRun },\n };\n }\n\n if (endDate.diff(startDate) > convertHoursToMilliseconds(maximumHoursToRun)) {\n return {\n invalidStartTime: false,\n invalidEndTime: true,\n dateValidationError: { message: \"SupplyChainPurchased:SimulationMaxDurationError\", hours: maximumHoursToRun },\n };\n }\n\n return {\n invalidStartTime: false,\n invalidEndTime: false,\n dateValidationError: {},\n };\n};\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport CalendarComponent from \"../helpers/CalendarComponent\";\nimport DateTimeSelector from \"../helpers/DateTimeSelector\";\nimport DropDownComponent from \"../helpers/DropDownComponent\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport \"./purchasedSupplyChainStyles.css\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport {\n supplyChainGameModeOptions,\n supplyChainTimeBetweenAdvancesOptions,\n} from \"../utilities/SupplyChainSimulationUtilities\";\n\nclass CreateSupplyChainSimulationForm extends Component {\n state = {\n dateToModify: \"\",\n openCalendar: false,\n };\n\n handleFormChange = (id, data) => {\n this.props.formChanged(id, data);\n };\n\n handleCalendar = (action) => {\n this.setState(() => ({\n dateToModify: action,\n openCalendar: !this.state.openCalendar,\n }));\n };\n\n onChangeTimeBetweenAdvances = (id, pace) => {\n this.handleFormChange(id, pace);\n const { startTime, endTime } = this.props.formData;\n\n this.matchEndAndStartTimeHourDivisibility(startTime.value.hour, endTime.value.hour, pace);\n };\n\n onChangeStartTime = (value) => {\n const { professorAdvance, timeBetweenAdvances, startTime, endTime } = this.props.formData;\n this.props.setHour(\"startTime\", value);\n\n if (professorAdvance.value === false) {\n this.matchEndAndStartTimeHourDivisibility(startTime.value.hour, endTime.value.hour, timeBetweenAdvances.value);\n }\n };\n\n matchEndAndStartTimeHourDivisibility = (startHour, endHour, dividerInt) => {\n if (dividerInt === 1) return;\n\n const startTimeDivisibility = startHour % dividerInt;\n const endTimeDivisibility = endHour % dividerInt;\n\n if (startTimeDivisibility !== endTimeDivisibility) {\n const newEndHour = CONSTANT.HOUR_NUMBERS.find((x) => x.value % dividerInt === startTimeDivisibility).value;\n this.props.setHour(\"endTime\", newEndHour);\n }\n };\n\n render() {\n const translate = this.props.t;\n let calendarComponent = null;\n let selectedDate = null;\n\n const gameModeOptions = supplyChainGameModeOptions(translate);\n\n const professorManagedProgressOptions = [\n {\n key: 1,\n text: translate(\"Common:yes\"),\n value: true,\n },\n {\n key: 2,\n text: translate(\"Common:no\"),\n value: false,\n },\n ];\n\n const timeBetweenAdvancesOptions = supplyChainTimeBetweenAdvancesOptions(translate);\n\n if (this.state.dateToModify === \"startDate\") {\n selectedDate = this.props.segmentedStartTime.date;\n } else {\n selectedDate = this.props.segmentedEndTime.date;\n }\n\n if (this.state.openCalendar) {\n calendarComponent = (\n
\n this.props.setDate(value, this.state.dateToModify)}\n selectedDate={selectedDate}\n language={this.props.language}\n />\n
\n );\n }\n\n let endTimeOptions = null;\n if (this.props.formData.professorAdvance.value === false && this.props.formData.timeBetweenAdvances.value > 1) {\n const startTimeDivisibility = this.props.segmentedStartTime.hour % this.props.formData.timeBetweenAdvances.value;\n endTimeOptions = CONSTANT.HOUR_NUMBERS.filter(\n (x) => x.value % this.props.formData.timeBetweenAdvances.value === startTimeDivisibility\n ).map((hour) => ({\n key: hour.key,\n text: hour.value,\n value: hour.value,\n }));\n }\n\n const automaticSimulationEntries = this.props.formData.professorAdvance.value ? null : (\n <>\n \n this.setState({ dateToModify: \"startDate\" })}\n dateToSet={CONSTANT.START_DATE}\n settingHour={(event, value) => this.onChangeStartTime(value.value)}\n date={this.props.segmentedStartTime.date}\n hour={this.props.segmentedStartTime.hour}\n hourFormat={this.props.segmentedStartTime.hourFormat}\n language={this.props.language}\n labelAlignment=\"left\"\n />\n\n this.setState({ dateToModify: \"endDate\" })}\n dateToSet={CONSTANT.END_DATE}\n settingHour={(event, value) => this.props.setHour(\"endTime\", value.value)}\n date={this.props.segmentedEndTime.date}\n hour={this.props.segmentedEndTime.hour}\n hourFormat={this.props.segmentedEndTime.hourFormat}\n language={this.props.language}\n labelAlignment=\"left\"\n timeOptions={endTimeOptions}\n />\n \n );\n\n return (\n <>\n {calendarComponent}\n \n \n {automaticSimulationEntries}\n \n\n

{translate(\"SupplyChainCommon:GameModeHelp\")}

\n
    \n
  • {translate(\"SupplyChainCommon:OneStationUnknownPeersHelp\")}
  • \n
  • {translate(\"SupplyChainCommon:OneStationKnownPeersHelp\")}
  • \n
  • {translate(\"SupplyChainCommon:AllStationsKnownPeersHelp\")}
  • \n
  • {translate(\"SupplyChainCommon:LastMileHelp\")}
  • \n
\n \n );\n }\n}\n\nexport default withTranslation([\"Purchased\", \"Common\", \"SupplyChainCommon\", \"SupplyChainPurchased\"])(\n CreateSupplyChainSimulationForm\n);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Checkbox, Form, Grid } from \"semantic-ui-react\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\n\nconst predefinedScenarios = (t) => [\n {\n title: t(\"SupplyChainAdvancedOptions:defaultScenarioTitle\"),\n id: \"\",\n description: t(\"SupplyChainAdvancedOptions:defaultScenarioDescription\"),\n },\n];\n\nclass AdvancedOptions extends Component {\n scenarioLabel = (title, description) => {\n return (\n \n );\n };\n\n render() {\n const { loading, errorMessage, scenarios, advancedOptions, advancedOptionsChanged, t } = this.props;\n\n const scenarioOptions = predefinedScenarios(t).concat(scenarios);\n\n let advancedOptionsBody = null;\n\n if (typeof scenarios === \"object\" && Array.isArray(scenarios)) {\n advancedOptionsBody = (\n
\n

{t(\"SupplyChainAdvancedOptions:selectYourScenario\")}

\n {scenarioOptions.map((scenario) => {\n return (\n \n advancedOptionsChanged(\"scenarioId\", scenario.id)}\n />\n \n );\n })}\n
\n );\n }\n\n if (loading === true) {\n advancedOptionsBody = ;\n }\n\n if (typeof errorMessage === \"string\" && errorMessage.length > 0) {\n advancedOptionsBody = ;\n }\n\n return (\n \n \n
\n
{advancedOptionsBody}
\n
\n
\n
\n );\n }\n}\n\nexport default withTranslation(\"SupplyChainAdvancedOptions\")(AdvancedOptions);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Button, Container, Form, Grid, Image } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport SupplyChainShareSimulationModal from \"../modals/SupplyChainShareModal\";\nimport LeftTitleComponent from \"../titles/leftTitle/LeftTitleComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport CreateSupplyChainSimulationForm from \"./createSupplyChainSimulationForm\";\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n supplychainCreateSimulation,\n supplychainCreateAutomaticSimulation,\n resetCreateSimulationDefaults,\n resetSupplyChainBuySimulationStoreDefaults,\n restoreSupplyChainPurchaseInformationFromStorage,\n supplyChainConfirmPayment,\n} from \"../../store/SupplyChainBuySimulation/actions\";\nimport \"./purchasedSupplyChainStyles.css\";\nimport { createSupplyChainLink, supplyChainValidateDates } from \"../utilities/SupplyChainSimulationUtilities\";\nimport { withRouter } from \"react-router-dom\";\nimport { setStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport * as SUPPLYCHAIN_CONSTANTS from \"../../constants/SupplyChainConstants\";\nimport { SUPPLY_CHAIN_SIMULATION_DETAILS } from \"../../constants/Routes\";\nimport { supplyChainGetProfessorScenarios } from \"../../store/SupplyChainSimulationDetails/actions\";\nimport gearIcon from \"../../assets/gear-icon.svg\";\nimport AdvancedOptions from \"../supplyChainAdvancedOptions/AdvancedOptions\";\nimport { switchTo12HourFormat, unifyDateTime } from \"../utilities/DateTimeUtilities\";\nimport PaymentVerificationModal from \"../modals/PaymentVerificationModal\";\nimport { confirmPaymentStatuses } from \"../../utilities/storeStatusDictionary\";\n\nclass PurchasedSupplyChain extends Component {\n constructor(props) {\n super(props);\n\n const startDate = moment().add(1, \"hour\");\n const endDate = startDate.clone().add(1, \"day\");\n let paymentIntentId;\n const params = new URLSearchParams(window.location.search);\n if (params.has(\"payment_intent\")) {\n paymentIntentId = params.get(\"payment_intent\");\n }\n\n this.state = {\n formValidated: false,\n openAdvancedOptions: false,\n advancedOptions: {\n scenarioId: \"\",\n },\n dateValidationError: {},\n form: {\n simulationName: {\n value: \"\",\n valid: true,\n rules: {\n minLength: 1,\n },\n },\n gameMode: {\n value: SUPPLYCHAIN_CONSTANTS.OneStationUnknownPeers,\n valid: true,\n rules: {},\n },\n professorAdvance: {\n value: true,\n valid: true,\n rules: {},\n },\n startTime: {\n value: {\n hour: switchTo12HourFormat(Number(moment(startDate).format(\"HH\"))),\n hourFormat: moment(startDate).format(\"a\"),\n date: startDate,\n },\n valid: true,\n rules: {},\n },\n endTime: {\n value: {\n hour: switchTo12HourFormat(Number(moment(endDate).format(\"HH\"))),\n hourFormat: moment(endDate).format(\"a\"),\n date: endDate,\n },\n valid: true,\n rules: {},\n },\n timeBetweenAdvances: {\n value: 1,\n valid: true,\n rules: {},\n },\n },\n paymentIntentId: paymentIntentId,\n };\n }\n\n async componentDidMount() {\n this.props.restoreSupplyChainPurchaseInformationFromStorage();\n this.props.resetCreateSimulationDefaults();\n this.verifyPayment();\n this.props.getProfessorScenarios();\n }\n\n verifyPayment = async () => {\n if (typeof this.state.paymentIntentId === \"string\") {\n await this.props.confirmPayment(this.state.paymentIntentId);\n }\n };\n\n submitCreateSimulationRequest = (event) => {\n event.preventDefault();\n if (!this.state.formValidated) {\n const updatedForm = this.updateFormValidation(this.state.form);\n this.setState({ form: updatedForm, formValidated: true });\n return;\n }\n\n const form = this.state.form;\n const formValid = Object.keys(form).every((key) => {\n const formEntry = form[key];\n return formEntry.valid;\n });\n\n if (!formValid) {\n return;\n }\n\n if (this.state.form.professorAdvance.value) {\n const request = {\n simulationName: this.state.form.simulationName.value,\n gameMode: this.state.form.gameMode.value,\n paymentSummaryId: this.props.paymentSummaryId,\n scenarioId: this.state.advancedOptions.scenarioId,\n };\n\n this.props.supplychainCreateSimulation(request);\n return;\n }\n\n const endTime = form.endTime;\n const unifiedStartTime = unifyDateTime(form.startTime.value);\n const unifiedEndTime = unifyDateTime(endTime.value);\n const pace = this.state.form.timeBetweenAdvances.value;\n\n const dateValidation = supplyChainValidateDates(unifiedStartTime, unifiedEndTime, pace);\n\n if (dateValidation.invalidEndTime || dateValidation.invalidStartTime) {\n this.setState({\n form: {\n ...form,\n startTime: {\n ...form.startTime,\n valid: !dateValidation.invalidStartTime,\n },\n endTime: {\n ...form.endTime,\n valid: !dateValidation.invalidEndTime,\n },\n },\n formValidated: true,\n dateValidationError: dateValidation.dateValidationError,\n });\n return;\n }\n\n const request = {\n simulationName: this.state.form.simulationName.value,\n gameMode: this.state.form.gameMode.value,\n paymentSummaryId: this.props.paymentSummaryId,\n startTime: unifiedStartTime,\n endTime: unifiedEndTime,\n pace: this.state.form.timeBetweenAdvances.value,\n scenarioId: this.state.advancedOptions.scenarioId,\n };\n\n this.props.supplychainCreateAutomaticSimulation(request);\n };\n\n onFormChanged = (id, data) => {\n const updatedForm = { ...this.state.form };\n const updatedFormElement = { ...updatedForm[id] };\n updatedFormElement.value = data;\n updatedFormElement.valid = this.validateFormValue(updatedFormElement.value, updatedFormElement.rules);\n updatedForm[id] = updatedFormElement;\n this.setState({ form: updatedForm, formValidated: true });\n };\n\n updateFormValidation = (form) => {\n const updatedForm = {};\n Object.keys(form).forEach((key) => {\n const updatedElement = { ...form[key] };\n updatedElement.valid = this.validateFormValue(updatedElement.value, updatedElement.rules);\n updatedForm[key] = updatedElement;\n });\n return updatedForm;\n };\n\n validateFormValue = (value, rules) => {\n let isValid = true;\n if (rules.minLength) {\n isValid = isValid && value.length >= rules.minLength;\n }\n\n if (rules.minHoursBeforeDate) {\n const timeNow = moment();\n const unifiedDate = unifyDateTime(value);\n isValid = isValid && unifiedDate.diff(timeNow) >= rules.minHoursBeforeDate;\n }\n return isValid;\n };\n\n onModalDismiss = () => {\n const simulationId = this.props.createSimulation.simulationId;\n this.props.resetSupplyChainBuySimulationStoreDefaults();\n setStorage(LOCALSTORAGE.requestedSimulation, simulationId);\n this.props.history.push(`${SUPPLY_CHAIN_SIMULATION_DETAILS}?simulationId=${simulationId}`);\n };\n\n setDate = (date, dateToModify) => {\n let updatedForm = { ...this.state.form };\n\n const segmentedStartTime = updatedForm.startTime.value;\n const segmentedEndTime = updatedForm.endTime.value;\n\n if (dateToModify === \"startDate\" && date >= moment(segmentedEndTime.date).format(\"YYYY-MM-DD\")) {\n segmentedStartTime.date = date;\n segmentedEndTime.date = moment(date).add(1, \"day\");\n } else {\n if (dateToModify === \"startDate\") {\n segmentedStartTime.date = date;\n } else {\n segmentedEndTime.date = date;\n }\n }\n\n updatedForm = this.updateFormValidation(updatedForm);\n this.setState({ form: updatedForm, formValidated: true, dateValidationError: {} });\n };\n\n setHour = (statePropertyToModify, value) => {\n let updatedForm = { ...this.state.form };\n const segmentedStartTime = updatedForm[statePropertyToModify].value;\n\n if (isNaN(value)) {\n segmentedStartTime.hourFormat = value;\n } else {\n segmentedStartTime.hour = value;\n }\n\n updatedForm = this.updateFormValidation(updatedForm);\n this.setState({ form: updatedForm, formValidated: true, dateValidationError: {} });\n };\n\n handleAdvancedOptionsComponent = () => {\n this.setState({\n openAdvancedOptions: !this.state.openAdvancedOptions,\n });\n };\n\n onAdvancedOptionsChanged = (id, value) => {\n const { advancedOptions } = this.state;\n this.setState({\n advancedOptions: {\n ...advancedOptions,\n [id]: value,\n },\n });\n };\n\n handleAdvancedOptionsComponent = () => {\n this.setState({\n openAdvancedOptions: !this.state.openAdvancedOptions,\n });\n };\n\n onAdvancedOptionsChanged = (id, value) => {\n const { advancedOptions } = this.state;\n this.setState({\n advancedOptions: {\n ...advancedOptions,\n [id]: value,\n },\n });\n };\n\n render() {\n const { t: translate, confirmPaymentStatus } = this.props;\n const { simulationCreated, createdSimulationMessage, simulationId, errorMessage, loading, shortLink } =\n this.props.createSimulation;\n\n if (\n confirmPaymentStatus.status === confirmPaymentStatuses.loading ||\n confirmPaymentStatus.status === confirmPaymentStatuses.fail\n ) {\n return ;\n }\n\n let navigationButton = null;\n navigationButton = (\n
\n \n
\n );\n\n if (loading) {\n navigationButton = ;\n }\n\n let messagesComponent = null;\n let translatedErrorMessage = \"\";\n const { dateValidationError } = this.state;\n if (typeof dateValidationError.message === \"string\") {\n translatedErrorMessage = translate(dateValidationError.message, { hours: dateValidationError.hours });\n }\n if (errorMessage !== \"\") {\n translatedErrorMessage = translate(errorMessage);\n }\n if (translatedErrorMessage !== \"\") {\n messagesComponent = ;\n }\n\n const shareLink = typeof shortLink === \"string\" ? shortLink : createSupplyChainLink(simulationId);\n const shareSimulationModal = (\n this.onModalDismiss()}\n messageType={true}\n />\n );\n\n const { professorScenariosStatus } = this.props;\n const { advancedOptions, openAdvancedOptions } = this.state;\n const advancedOptionsComponent = (\n <>\n \n \n {navigationButton}\n \n \n );\n\n const willDisplayAdvancedOptionsButton =\n professorScenariosStatus.scenarios !== null &&\n Array.isArray(professorScenariosStatus.scenarios) &&\n professorScenariosStatus.scenarios.length > 0;\n\n return (\n \n {shareSimulationModal}\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n {willDisplayAdvancedOptionsButton ? (\n \n ) : null}\n
\n
\n \n
\n \n \n {messagesComponent}\n {navigationButton}\n \n \n {openAdvancedOptions ? advancedOptionsComponent : null}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n confirmPaymentStatus: state.supplychainBuySimulation.confirmPayment,\n professorScenariosStatus: state.supplyChainSimulationDetails.professorScenarios,\n createSimulation: state.supplychainBuySimulation.createSimulation,\n paymentSummaryId: state.supplychainBuySimulation.payment.paymentSummaryId,\n language: state.user.userProfile.language,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n confirmPayment: (intentId) => dispatch(supplyChainConfirmPayment(intentId)),\n getProfessorScenarios: () => dispatch(supplyChainGetProfessorScenarios()),\n supplychainCreateSimulation: (request) => dispatch(supplychainCreateSimulation(request)),\n supplychainCreateAutomaticSimulation: (request) => dispatch(supplychainCreateAutomaticSimulation(request)),\n restoreSupplyChainPurchaseInformationFromStorage: () => dispatch(restoreSupplyChainPurchaseInformationFromStorage()),\n resetCreateSimulationDefaults: () => dispatch(resetCreateSimulationDefaults()),\n resetSupplyChainBuySimulationStoreDefaults: () => dispatch(resetSupplyChainBuySimulationStoreDefaults()),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"SupplyChainBuySimulation\", \"SupplyChainPurchased\", \"Common\"),\n withRouter\n);\n\nexport default HOC(PurchasedSupplyChain);\n","import React from \"react\";\nimport youtubeIconRed from \"../../assets/youtube-icon-red.png\";\nimport youtubeIconGrey from \"../../assets/youtube-icon-grey.png\";\n\nconst VideoIframe = (props) => {\n const { url, thumbnailURL, title, handleVideoViewerModal } = props;\n\n return (\n <>\n {title}\n handleVideoViewerModal(url)}\n onMouseOver={(event) => {\n event.currentTarget.children[0].src = youtubeIconRed;\n event.currentTarget.children[0].style.opacity = \"1\";\n }}\n onMouseOut={(event) => {\n event.currentTarget.children[0].src = youtubeIconGrey;\n event.currentTarget.children[0].style.opacity = \"0.8\";\n }}>\n \"youtube\"\n \n \n );\n};\n\nexport default VideoIframe;\n","import React from \"react\";\nimport { Grid, Header } from \"semantic-ui-react\";\nimport VideoIframe from \"./VideoIframe\";\nconst TutorialFrame = (props) => {\n const { video, translate, handleVideoViewerModal } = props;\n const { title, description, url, thumbnailURL } = video;\n\n let customDescription = description;\n\n if (description.length > 150) {\n customDescription = description.substring(0, 150) + \"...\";\n }\n\n return (\n \n
\n \n
\n
{translate(title)}
\n

{customDescription}

\n
\n
\n
\n );\n};\n\nexport default TutorialFrame;\n","import React from \"react\";\nimport { Grid } from \"semantic-ui-react\";\nimport TutorialFrame from \"./TutorialFrame\";\n\nconst TutorialsComponent = (props) => {\n const { translate, tutorials, handleVideoViewerModal } = props;\n\n return (\n \n {tutorials\n .filter((productSection) => productSection.videos.length > 0)\n .sort((first, second) => first.product.localeCompare(second.product))\n .map((section, index) => {\n return (\n \n \n

{translate(section.product)}

\n
\n {section.videos.map((video, index) => {\n return (\n \n );\n })}\n
\n );\n })}\n
\n );\n};\n\nexport default TutorialsComponent;\n","import React from \"react\";\nimport { Header, Modal } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faWindowClose } from \"@fortawesome/free-solid-svg-icons\";\n\nconst VideoViewerModal = (props) => {\n const {\n openVideoViewerModal,\n handleVideoViewerModal,\n handleDontShowVideoAgain,\n hasHeader,\n hasDescription,\n hasActionButtons,\n title,\n description,\n buttonTitle,\n url,\n isTutorial,\n } = props;\n\n let closeButton = null;\n let modalHeader = null;\n let modalDescription = null;\n let modalActionButtons = null;\n\n if (hasHeader) {\n modalHeader = (\n
\n {title}\n
\n );\n closeButton = (\n \n );\n }\n\n if (hasDescription) {\n modalDescription = (\n \n

{description}

\n
\n );\n }\n\n if (hasActionButtons) {\n modalActionButtons = (\n \n \n \n );\n }\n\n return (\n \n {modalHeader}\n \n {modalDescription}\n \n \n {modalActionButtons}\n \n );\n};\n\nexport default VideoViewerModal;\n","import React, { Component } from \"react\";\nimport { Container } from \"semantic-ui-react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { withTranslation } from \"react-i18next\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport TutorialsComponent from \"./TutorialsComponent\";\nimport VideoViewerModal from \"../modals/VideoViewerModal\";\nimport { getTutorials } from \"../../store/Tutorials/actions\";\nimport * as CONSTANTS from \"../../constants/UniversalConstants\";\nimport \"./TutorialsStyles.css\";\n\nclass TutorialsScreen extends Component {\n state = {\n openVideoViewerModal: false,\n selectedUrlTutorial: \"\",\n };\n\n componentDidMount() {\n const { getTutorials } = this.props;\n getTutorials();\n }\n\n handleVideoViewerModal = (url) => {\n this.setState({\n openVideoViewerModal: !this.state.openVideoViewerModal,\n selectedUrlTutorial: url,\n });\n };\n\n getUserLanguage = (userLanguage) => {\n switch (userLanguage) {\n case CONSTANTS.LANGUAGES_LIST[1]:\n return \"Spanish\";\n default:\n return \"English\";\n }\n };\n\n render() {\n const { t, tutorialsData, language } = this.props;\n const { openVideoViewerModal, selectedUrlTutorial } = this.state;\n const { tutorials, loadingTutorials, tutorialsErrorMessage } = tutorialsData;\n const translate = t;\n const userLanguage = this.getUserLanguage(language);\n\n let mainComponent = null;\n let videoViewerModal = null;\n\n if (openVideoViewerModal) {\n videoViewerModal = (\n \n );\n }\n\n if (loadingTutorials) {\n mainComponent = ;\n } else {\n if (tutorials) {\n mainComponent = tutorials\n .filter((section) => section.language === userLanguage)\n .map((section, index) => {\n return (\n \n );\n });\n } else {\n mainComponent = ;\n }\n }\n\n return (\n <>\n {videoViewerModal}\n \n \n \n {mainComponent}\n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getTutorials: () => dispatch(getTutorials()),\n});\n\nconst mapStateToProps = (state) => {\n return {\n tutorialsData: {\n tutorials: state.tutorials.tutorials,\n loadingTutorials: state.tutorials.loadingTutorials,\n tutorialsErrorMessage: state.tutorials.tutorialsErrorMessage,\n },\n language: state.user.userProfile.language,\n };\n};\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(\n withTranslation(\"TutorialsScreen\", \"Common\")(withRouter(TutorialsScreen))\n);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { CHECK_AUTH, SUPPLY_CHAIN_JOIN_SIMULATION, SUPPLY_CHAIN_STUDENT_PAYMENT } from \"../../constants/Routes\";\nimport { getCurrentSession } from \"../../services/AuthService\";\nimport { setStorage } from \"../../services/StorageService\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\n\nclass SupplyChainJoinSimulationPreamble extends Component {\n async componentDidMount() {\n const query = new URLSearchParams(this.props.location.search);\n let simulationId;\n let paymentSummaryId;\n for (let param of query.entries()) {\n if (param[0] === \"simulationId\") {\n simulationId = param[1];\n }\n if (param[0] === \"paymentSummaryId\") {\n paymentSummaryId = param[1];\n }\n }\n\n if (!simulationId) {\n this.props.history.replace(CHECK_AUTH);\n return;\n }\n\n setStorage(LOCALSTORAGE.supplyChainJoinSimulationId, simulationId);\n setStorage(LOCALSTORAGE.supplyChainPaymentSummaryId, paymentSummaryId);\n setStorage(LOCALSTORAGE.activationCode, simulationId);\n\n const session = await getCurrentSession();\n if (!session) {\n return;\n }\n if (typeof paymentSummaryId === \"string\" && paymentSummaryId.length > 0) {\n this.props.history.push(SUPPLY_CHAIN_JOIN_SIMULATION);\n } else {\n this.props.history.push(SUPPLY_CHAIN_STUDENT_PAYMENT);\n }\n }\n\n render() {\n const translate = this.props.t;\n return (\n <>\n \n \n );\n }\n}\n\nconst HOC = compose(withRouter, withTranslation(\"AuthComponents\", \"Common\"));\n\nexport default HOC(SupplyChainJoinSimulationPreamble);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { getStorage } from \"../../services/StorageService\";\nimport { supplyChainJoinSimulation } from \"../../store/SupplyChainJoinSimulation/actions\";\nimport { supplyChainConfirmPayment } from \"../../store/SupplyChainBuySimulation/actions\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport SuccessModal from \"../modals/SuccessModal\";\nimport { compose } from \"redux\";\nimport { withTranslation } from \"react-i18next\";\nimport ErrorModal from \"../modals/ErrorModal\";\nimport { Redirect } from \"react-router-dom\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport * as CONSTANTS from \"../../constants/UniversalConstants\";\nimport PaymentVerificationModal from \"../modals/PaymentVerificationModal\";\nimport { confirmPaymentStatuses } from \"../../utilities/storeStatusDictionary\";\n\nexport class SupplyChainJoinSimulation extends Component {\n constructor(props) {\n super(props);\n let paymentIntentId;\n const params = new URLSearchParams(window.location.search);\n if (params.has(\"payment_intent\")) {\n paymentIntentId = params.get(\"payment_intent\");\n }\n this.state = {\n showSuccessMessage: true,\n redirectToDownload: false,\n paymentIntentId: paymentIntentId,\n };\n }\n\n async componentDidMount() {\n if (typeof this.state.paymentIntentId === \"string\") {\n await this.validatePayment();\n return;\n }\n\n this.attemptToJoinSimulation();\n }\n\n componentDidUpdate(prevProps) {\n const prevConfirmPaymentStatus = prevProps.confirmPaymentStatus;\n const currentConfirmPaymentStatus = this.props.confirmPaymentStatus;\n if (\n typeof this.state.paymentIntentId === \"string\" &&\n prevConfirmPaymentStatus.status !== currentConfirmPaymentStatus.status &&\n currentConfirmPaymentStatus.status === confirmPaymentStatuses.success\n ) {\n this.attemptToJoinSimulation();\n }\n }\n\n validatePayment = async () => {\n if (typeof this.state.paymentIntentId === \"string\") {\n await this.props.confirmPayment(this.state.paymentIntentId);\n }\n };\n\n attemptToJoinSimulation = () => {\n const simulationId = getStorage(LOCALSTORAGE.supplyChainJoinSimulationId);\n const paymentSummaryId = getStorage(LOCALSTORAGE.supplyChainPaymentSummaryId);\n const token = this.state.paymentIntentId || paymentSummaryId;\n this.props.supplyChainJoinSimulation({ simulationId, token });\n };\n\n closeSuccessModal = () => {\n this.setState({\n showSuccessMessage: false,\n redirectToDownload: true,\n });\n };\n\n render() {\n const { t: translate, confirmPaymentStatus } = this.props;\n\n if (\n confirmPaymentStatus.status === confirmPaymentStatuses.loading ||\n confirmPaymentStatus.status === confirmPaymentStatuses.fail\n ) {\n return ;\n }\n\n let body = null;\n if (this.props.loading) {\n body = ;\n }\n\n const showSuccessModal = this.props.code !== \"\" && this.state.showSuccessMessage;\n const successModal = (\n \n );\n\n const showErrorModal = (this.props.errorMessage ?? \"\") !== \"\";\n const errorMessageModal = (\n \n );\n\n if (this.state.redirectToDownload) {\n body = (\n \n );\n }\n return (\n <>\n {body}\n {errorMessageModal}\n {successModal}\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n confirmPaymentStatus: state.supplychainBuySimulation.confirmPayment,\n errorMessage: state.supplyChainJoinSimulation.errorMessage,\n loading: state.supplyChainJoinSimulation.loading,\n code: state.supplyChainJoinSimulation.code,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n confirmPayment: (intentId) => dispatch(supplyChainConfirmPayment(intentId)),\n supplyChainJoinSimulation: (request) => dispatch(supplyChainJoinSimulation(request)),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"SupplyChainJoinSimulation\", \"AuthComponents\")\n);\n\nexport default HOC(SupplyChainJoinSimulation);\n","import React from \"react\";\nimport DefaultButton from \"../helpers/DefaultButton\";\n\nconst CurrentDayRefreshSection = (props) => {\n const { translate, currentSimulationDay, getPerformanceData } = props;\n\n return (\n
\n

{`${translate(\"Common:currentDay\")}: ${currentSimulationDay}`}

\n \n
\n );\n};\n\nexport default CurrentDayRefreshSection;\n","import { COLOR_PALETTE } from \"../../constants/ColorPalette\";\nimport simplify from \"simplify-js\";\n\nexport const GRAPHS_GROUP = {\n PERFORMANCE: \"performance\",\n DECISIONS: \"decisions\",\n};\n\nexport const getGraphSections = (selectedGraphs, graphsData, selectedTeams) => {\n const structuredData = {\n graphsGroup: selectedGraphs,\n simulationName: graphsData.name,\n currentSimulationDay: graphsData.currentSimulationDay,\n sections: prepareGraphSections(selectedGraphs, graphsData),\n };\n\n const sectionsData = dashboadsDataGenerator(selectedTeams, structuredData);\n return sectionsData;\n};\n\nconst prepareGraphSections = (selectedGraphs, sections) => {\n const graphSections = sections.map((section) => {\n let name = \"\";\n let graphData = {};\n switch (selectedGraphs) {\n case GRAPHS_GROUP.DECISIONS:\n name = section.sectionName;\n graphData = section.changeRequestHistories;\n break;\n default:\n name = section.name;\n graphData = section.sections;\n break;\n }\n\n return {\n name: name,\n graphData: prepareGraphData(selectedGraphs, graphData),\n };\n });\n\n return graphSections;\n};\n\nconst prepareGraphData = (selectedGraphs, graphData) => {\n const formattedGraphData = graphData.map((graph) => {\n let graphName = \"\";\n let teamsData = [];\n switch (selectedGraphs) {\n case GRAPHS_GROUP.DECISIONS:\n graphName = graph.displayText;\n teamsData = graph.changeRequestHistoricDataPerTeam;\n break;\n default:\n graphName = graph.name;\n teamsData = graph.teamsData;\n break;\n }\n\n return {\n graphName: graphName,\n teamsData: prepareTeamsHistoricData(selectedGraphs, teamsData),\n units: graph.units,\n };\n });\n\n return formattedGraphData;\n};\n\nconst prepareTeamsHistoricData = (selectedGraphs, teamsData) => {\n const teamsHistoricData = teamsData.map((teamData) => {\n let teamName = \"\";\n switch (selectedGraphs) {\n case GRAPHS_GROUP.PERFORMANCE:\n teamName = teamData.teamName;\n break;\n case GRAPHS_GROUP.DECISIONS:\n teamName = teamData.teamName; //es teamName pero se malogra todo\n break;\n default:\n teamName = teamData.name;\n break;\n }\n\n return {\n teamName: teamName,\n historicData: teamData.historicData,\n };\n });\n\n return teamsHistoricData;\n};\n\nexport const createTeamsList = (performanceData, standings) => {\n let teams = [];\n let number = 1;\n performanceData[0].sections[0].teamsData.forEach((team, index) => {\n let teamName = team.teamName;\n teams.push({\n name: teamName,\n icon: getColorPointIcon(index).icon,\n iconName: getColorPointIcon(index).name,\n index: index,\n isChecked: true,\n standing: number++,\n color: getColorPointIcon(index).color,\n });\n });\n\n const sorteredTeamsList = teams.sort((a, b) => {\n const teamA = a.name.toLowerCase();\n const teamB = b.name.toLowerCase();\n\n if (teamA > teamB) return 1;\n if (teamA < teamB) return -1;\n return 0;\n });\n\n return sorteredTeamsList;\n};\n\nexport const dashboadsDataGenerator = (selectedTeams, graphsData) => {\n const sections = createSectionsList(graphsData, selectedTeams);\n\n return sections;\n};\n\nconst createSectionsList = (graphsData, selectedTeams) => {\n const sections = graphsData.sections.map((section, index) => {\n return {\n index: index,\n name: section.name,\n data: createStatusesList(graphsData.graphsGroup, section, selectedTeams),\n };\n });\n return sections;\n};\n\nconst createStatusesList = (graphsGroup, section, selectedTeams) => {\n const statuses = section.graphData.map((status) => {\n const graphName = status.graphName;\n return {\n index: `${section.name}_${graphName}`,\n ...createLineValues(graphsGroup, status, selectedTeams),\n units: status.units,\n name: graphName,\n };\n });\n return statuses;\n};\n\nconst createLineValues = (graphsGroup, instances, selectedTeams) => {\n let lineValues = [];\n let lineLabels = [];\n let newTeamsData = {};\n let teamsData = instances.teamsData;\n teamsData.forEach((data) => {\n for (let i = 0; i < selectedTeams.length; i++) {\n if (selectedTeams[i].name === data.teamName) {\n const historicData = formatHistoricData(graphsGroup, data.historicData);\n let simplifiedHistoricData = historicData;\n if (graphsGroup === GRAPHS_GROUP.PERFORMANCE) {\n const currentStep = simplifiedHistoricData[simplifiedHistoricData.length - 1].x;\n simplifiedHistoricData = simplifyHistoricData(historicData, currentStep, selectedTeams);\n }\n if (graphsGroup === GRAPHS_GROUP.DECISIONS) {\n simplifiedHistoricData = simplifyDecisionsData(historicData);\n }\n newTeamsData = {\n index: i,\n name: data.teamName,\n historicData: historicData,\n historicDataSimplified: simplifiedHistoricData,\n color: selectedTeams[i].color,\n icon: selectedTeams[i].iconName,\n figure: selectedTeams[i].icon,\n };\n lineValues.push(newTeamsData);\n lineLabels.push(data.teamName);\n }\n }\n });\n\n return {\n lineValues: lineValues,\n lineLabels: lineLabels,\n };\n};\n\nconst simplifyDecisionsData = (decisionData) => {\n const simplifiedDecisionData = [];\n\n for (let currentData = 0; currentData < decisionData.length; currentData++) {\n const dataPoint = decisionData[currentData];\n\n if (dataPoint.x === 0) {\n simplifiedDecisionData.push(dataPoint);\n continue;\n }\n\n if (\n dataPoint.y !== simplifiedDecisionData[simplifiedDecisionData.length - 1].y ||\n dataPoint === decisionData[decisionData.length - 1]\n ) {\n simplifiedDecisionData.push(decisionData[currentData - 1]);\n simplifiedDecisionData.push(dataPoint);\n }\n }\n\n return simplifiedDecisionData;\n};\n\nexport const formatHistoricData = (graphsGroup, historicData) => {\n const formattedHistoricData = historicData.map((data) => {\n if (graphsGroup === GRAPHS_GROUP.PERFORMANCE) {\n return {\n x: data.step,\n y: data.value,\n };\n } else if (graphsGroup === GRAPHS_GROUP.DECISIONS) {\n return {\n x: data.day,\n y: data.value,\n };\n }\n //Shouldn't Happen\n return {}\n });\n\n return formattedHistoricData;\n};\n\nconst simplifyHistoricData = (historicData, currentSimulationDay, selectedTeams) => {\n let simplifiedData = [];\n const willSimplifyData = shouldSimplifyData(currentSimulationDay, selectedTeams);\n if (willSimplifyData) {\n const tolerance = toleranceCalculator(currentSimulationDay, selectedTeams);\n simplifiedData = simplify(historicData, tolerance, false);\n } else {\n simplifiedData = historicData;\n }\n return simplifiedData;\n};\n\nconst shouldSimplifyData = (currentSimulationDay, selectedTeams) => {\n const pointsQuantity = currentSimulationDay * selectedTeams.length;\n const minQuantityPointsRender = 7200;\n if (pointsQuantity > minQuantityPointsRender) {\n return true;\n }\n return false;\n};\n\nconst toleranceCalculator = (currentSimulationDay, selectedTeams) => {\n const pointsQuantity = currentSimulationDay * selectedTeams.length;\n let tolerance = null;\n if (pointsQuantity > 7200 && pointsQuantity < 14201) {\n tolerance = 1.5;\n } else if (pointsQuantity > 14200 && pointsQuantity < 21201) {\n tolerance = 2.5;\n } else if (pointsQuantity > 21200 && pointsQuantity < 28201) {\n tolerance = 3.5;\n } else if (pointsQuantity > 28200 && pointsQuantity < 35201) {\n tolerance = 4.5;\n } else {\n tolerance = 5;\n }\n\n return tolerance;\n};\n\nconst getColorPointIcon = (index) => {\n let icon = \"●\";\n let name = \"circle\";\n let color = COLOR_PALETTE[index];\n if (index > 19 && index < 40) {\n icon = \"■\";\n name = \"rect\";\n color = COLOR_PALETTE[index - 20];\n } else if (index > 39 && index < 60) {\n icon = \"▲\";\n name = \"triangle\";\n color = COLOR_PALETTE[index - 40];\n } else if (index > 59 && index < 80) {\n icon = \"★\";\n name = \"star\";\n color = COLOR_PALETTE[index - 60];\n }\n return {\n icon: icon,\n name: name,\n color: color,\n };\n};\n\nexport const abbreviateNumber = (value) => {\n const isNegative = value < 0;\n let formattedNumber = value;\n if (isNegative) formattedNumber = value * -1;\n const suffixList = [\"\", \"k\", \"M\", \"B\", \"T\"];\n const prefixIndex = (Math.log10(formattedNumber) / 3) | 0;\n\n if (prefixIndex === 0) return value;\n const suffix = suffixList[prefixIndex];\n const scale = Math.pow(10, prefixIndex * 3);\n const scaled = formattedNumber / scale;\n\n let fixedScaled = scaled.toFixed(2) + suffix;\n if (Number.isInteger(scaled)) fixedScaled = scaled.toFixed(0) + suffix;\n\n if (isNegative) return \"-\" + fixedScaled;\n return fixedScaled;\n};\n\nexport const getModalPlotDatasets = (plot, selectedTeams, translate) => {\n let datasets = [];\n let lineObj = {};\n let pointsAndLabels = null;\n let filteredPlot = [];\n plot.lineValues.forEach((line) => {\n const showLine = selectedTeams[line.index].isChecked;\n pointsAndLabels = getDataPoints(line.historicData);\n if (showLine || statusAlwaysPresent(plot.name)) {\n lineObj = {\n fillColor: line.color,\n data: pointsAndLabels.points,\n fill: false,\n borderColor: line.color,\n borderWidth: getLineWidth(selectedTeams),\n pointRadius: getLineWidth(selectedTeams),\n pointHoverRadius: getLineWidth(selectedTeams),\n pointBackgroundColor: line.color,\n pointStyle: line.icon,\n };\n datasets.push(lineObj);\n filteredPlot.push(line);\n }\n });\n return {\n datasets: datasets,\n labels: pointsAndLabels.labels,\n options: getModalPlotOptions(plot, filteredPlot, translate),\n };\n};\n\nconst getModalPlotOptions = (plot, filteredPlot, translate) => {\n const options = {\n responsive: true,\n animation: {\n duration: 0,\n },\n title: {\n display: true,\n text: translate(plot.name),\n },\n legend: {\n display: false,\n position: \"bottom\",\n labels: {\n fontColor: \"black\",\n defaultFontFamily: \"Chivo\",\n boxWidth: 5,\n usePointStyle: true,\n },\n fullWidth: false,\n },\n scales: {\n yAxes: [\n {\n ticks: {\n callback: function (value, index, values) {\n return abbreviateNumber(value);\n },\n beginAtZero: !(plot.name === \"Cash On Hand\" || plot.name === \"Cash\"),\n },\n scaleLabel: {\n display: true,\n labelString: translate(plot.units),\n },\n },\n ],\n xAxes: [\n {\n scaleLabel: {\n display: true,\n labelString: translate(\"day\"),\n },\n },\n ],\n },\n tooltips: {\n enabled: false,\n custom: function (tooltipModel) {\n let tooltipElement = document.getElementById(\"chartjs-tooltip\");\n\n if (!tooltipElement) {\n tooltipElement = document.createElement(\"div\");\n tooltipElement.id = \"chartjs-tooltip\";\n tooltipElement.innerHTML = \"
\";\n document.body.appendChild(tooltipElement);\n }\n\n if (tooltipModel.opacity === 0) {\n const showTooltip = () => {\n tooltipElement.style.display = \"block\";\n };\n\n const hideTooltip = () => {\n tooltipElement.style.display = \"none\";\n };\n\n const hideTooltipTimer = () => {\n setTimeout(() => {\n tooltipElement.style.display = \"none\";\n }, 500);\n };\n\n tooltipElement.onmouseover = showTooltip;\n tooltipElement.onmousedown = hideTooltip;\n tooltipElement.onmouseleave = hideTooltipTimer;\n\n return;\n }\n\n tooltipElement.classList.remove(\"above\", \"below\", \"no-transform\");\n if (tooltipModel.yAlign) {\n tooltipElement.classList.add(tooltipModel.yAlign);\n } else {\n tooltipElement.classList.add(\"no-transform\");\n }\n\n if (tooltipModel.body) {\n let titleLines = tooltipModel.title || [];\n let innerHtml = \"\";\n\n titleLines.forEach((title) => {\n const titleStyle = \"font-weight: 900;\";\n innerHtml += `${translate(\"day\")} ${title}`;\n });\n\n innerHtml += \"\";\n\n tooltipModel.dataPoints.forEach((point) => {\n const datasetIndex = point.datasetIndex;\n const teamIcon = filteredPlot[datasetIndex].figure;\n const teamName = filteredPlot[datasetIndex].name;\n const teamColor = filteredPlot[datasetIndex].color;\n const value = point.yLabel.toFixed(2);\n const itemStyle = \"font-weight: 500; display: block; min-width: 40px\";\n const iconStyle = `color:${teamColor}; font-size:18px;`;\n innerHtml += `${teamIcon} ${teamName} ${value}`;\n });\n innerHtml += \"\";\n\n let tableRoot = tooltipElement.querySelector(\"table\");\n tableRoot.innerHTML = innerHtml;\n }\n\n let bottomAjustment = 1;\n let position = this._chart.canvas.getBoundingClientRect();\n\n if (tooltipModel.dataPoints.length > 1) {\n bottomAjustment = 0.8;\n }\n\n tooltipElement.style.display = \"block\";\n tooltipElement.style.left = position.left + window.pageXOffset + tooltipModel.caretX + \"px\";\n tooltipElement.style.top = position.top + window.pageYOffset + tooltipModel.caretY * bottomAjustment + \"px\";\n tooltipElement.style.fontFamily = \"Chivo\";\n tooltipElement.style.fontSize = tooltipModel.bodyFontSize + \"px\";\n tooltipElement.style.fontStyle = tooltipModel._bodyFontStyle;\n tooltipElement.style.padding = \"5px\";\n tooltipElement.style.maxHeight = \"185px\";\n tooltipElement.style.width = \"auto\";\n tooltipElement.style.overflow = \"auto\";\n tooltipElement.style.border = \"2px solid #272727\";\n tooltipElement.style.position = \"absolute\";\n tooltipElement.style.zIndex = 10000;\n tooltipElement.style.backgroundColor = \"#FFF\";\n },\n },\n };\n\n return options;\n};\n\nconst getDataPoints = (historicData) => {\n let points = [];\n let labels = [];\n historicData.forEach((point) => {\n labels.push(point.x);\n points.push(point.y);\n });\n return {\n points: points,\n labels: labels,\n };\n};\n\nexport const statusAlwaysPresent = (plotName) => {\n if (plotName === \"Standard Market Price\" || plotName === \"Custom Demand\") {\n return true;\n }\n return false;\n};\n\nconst getLineWidth = (selectedTeams) => {\n const teamsQuantity = selectedTeams && selectedTeams.filter((team) => team.isChecked).length;\n\n let lineWidth = 1.4;\n if (teamsQuantity > 20 && teamsQuantity < 41) {\n lineWidth = 1.2;\n }\n if (teamsQuantity > 40 && teamsQuantity < 61) {\n lineWidth = 1;\n }\n if (teamsQuantity > 60) {\n lineWidth = 0.6;\n }\n\n return lineWidth;\n};\n\nexport const checkControlStanding = (standings) => {\n const findControl = standings.filter((standing) => standing.team === \"CONTROL\");\n const controlStanding = findControl[0].standing;\n return controlStanding;\n};\n","import React from \"react\";\nimport { FlexibleWidthXYPlot, XAxis, YAxis, HorizontalGridLines, VerticalGridLines, LineSeries } from \"react-vis\";\nimport { abbreviateNumber, statusAlwaysPresent } from \"./utilities\";\n\n//https://github.com/uber/react-vis/blob/premodern/showcase/axes/custom-axes.js\n\nconst VisChart = (props) => {\n const { plot, translate, selectedTeams } = props;\n const { lineValues } = plot;\n let lineSeries = ;\n let maxYDomain = 1;\n let minYDomain = 0;\n\n const selectedTeamNames = selectedTeams.filter((team) => team.isChecked).map((x) => x.name);\n const setLinesToShow = (lineValues) => {\n if (statusAlwaysPresent(plot.name)) {\n lineValues[0].isChecked = true;\n } else {\n for (let i = 0; i < lineValues.length; i++) {\n const currentLine = lineValues[i];\n const teamName = currentLine.name;\n if (selectedTeamNames.includes(teamName)) {\n currentLine.isChecked = true;\n } else {\n currentLine.isChecked = false;\n }\n }\n }\n\n const filteredLines = lineValues.filter((line) => line.isChecked);\n return filteredLines;\n };\n\n const linesToShow = setLinesToShow(lineValues);\n\n if (linesToShow.length > 0) {\n lineSeries = linesToShow.map((line) => {\n const lineYvalues = line.historicDataSimplified.map((x) => {\n return x.y;\n });\n maxYDomain = Math.max(...lineYvalues, maxYDomain);\n minYDomain = Math.min(...lineYvalues, minYDomain);\n return (\n \n );\n });\n }\n\n const info = [\n {\n name: \"Decision_RiceSupplier\",\n values: {\n 0: translate(\"Decision_SupplierB\"),\n 1: translate(\"Decision_SupplierA\"),\n },\n },\n {\n name: \"Decision_AuroraTransportMethod\",\n values: {\n 0: translate(\"Decision_TransportMethodDrone\"),\n 1: translate(\"Decision_TransportMethodTruck\"),\n },\n },\n {\n name: \"Decision_AuroraDispatcher\",\n values: {\n 1: \"Aurora\",\n 2: \"Barcelona\",\n 3: \"Geneva\",\n },\n },\n {\n name: \"Decision_BarcelonaWarehouseState\",\n values: {\n 0: translate(\"Decision_WarehouseClosed\"),\n 1: translate(\"Decision_WarehouseBuilt\"),\n },\n },\n {\n name: \"Decision_BarcelonaSupplier\",\n values: {\n 0: \"Aurora\",\n 1: \"Local\",\n },\n },\n {\n name: \"Decision_BarcelonaTransportMethod\",\n values: {\n 0: translate(\"Decision_TransportMethodDrone\"),\n 1: translate(\"Decision_TransportMethodTruck\"),\n },\n },\n {\n name: \"Decision_BarcelonaDispatcher\",\n values: {\n 1: \"Aurora\",\n 2: \"Barcelona\",\n 3: \"Geneva\",\n },\n },\n {\n name: \"Decision_GenevaWarehouseState\",\n values: {\n 0: translate(\"Decision_WarehouseClosed\"),\n 1: translate(\"Decision_WarehouseBuilt\"),\n },\n },\n {\n name: \"Decision_GenevaSupplier\",\n values: {\n 0: \"Aurora\",\n 1: \"Local\",\n },\n },\n {\n name: \"Decision_GenevaTransportMethod\",\n values: {\n 0: translate(\"Decision_TransportMethodDrone\"),\n 1: translate(\"Decision_TransportMethodTruck\"),\n },\n },\n {\n name: \"Decision_GenevaDispatcher\",\n values: {\n 1: \"Aurora\",\n 2: \"Barcelona\",\n 3: \"Geneva\",\n },\n },\n {\n name: \"Decision_AlamedaWarehouseState\",\n values: {\n 0: translate(\"Decision_WarehouseClosed\"),\n 1: translate(\"Decision_WarehouseBuilt\"),\n },\n },\n {\n name: \"Decision_AlamedaSupplier\",\n values: {\n 0: \"Local\",\n 1: \"Alameda\",\n 2: \"Belmont\",\n 3: \"Grant\",\n },\n },\n {\n name: \"Decision_AlamedaTransportMethod\",\n values: {\n 0: translate(\"Decision_TransportMethodAir\"),\n 1: translate(\"Decision_TransportMethodLand\"),\n },\n },\n {\n name: \"Decision_BelmontWarehouseState\",\n values: {\n 0: translate(\"Decision_WarehouseClosed\"),\n 1: translate(\"Decision_WarehouseBuilt\"),\n },\n },\n {\n name: \"Decision_BelmontSupplier\",\n values: {\n 0: \"Local\",\n 1: \"Alameda\",\n 2: \"Belmont\",\n 3: \"Grant\",\n },\n },\n {\n name: \"Decision_BelmontTransportMethod\",\n values: {\n 0: translate(\"Decision_TransportMethodAir\"),\n 1: translate(\"Decision_TransportMethodLand\"),\n },\n },\n {\n name: \"Decision_GrantWarehouseState\",\n values: {\n 0: translate(\"Decision_WarehouseClosed\"),\n 1: translate(\"Decision_WarehouseBuilt\"),\n },\n },\n {\n name: \"Decision_GrantSupplier\",\n values: {\n 0: \"Local\",\n 1: \"Alameda\",\n 2: \"Belmont\",\n 3: \"Grant\",\n },\n },\n {\n name: \"Decision_GrantTransportMethod\",\n values: {\n 0: translate(\"Decision_TransportMethodAir\"),\n 1: translate(\"Decision_TransportMethodLand\"),\n },\n },\n ];\n\n const plotAxisTranslation = info.find((element) => element.name === plot.name);\n if (plotAxisTranslation) {\n plot.YAxisNeedsTranslation = true;\n plot.Conversions = plotAxisTranslation.values;\n\n return (\n \n \n \n \n plotAxisTranslation.values[v]} title={translate(plot.units)} />\n {lineSeries}\n \n );\n }\n return (\n \n \n \n \n abbreviateNumber(v)} title={translate(plot.units)} />\n {lineSeries}\n \n );\n};\n\nexport default VisChart;\n","import React from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Grid } from \"semantic-ui-react\";\nimport openPopUpIcon from \"../../assets/pop-out-button.svg\";\nimport VisChart from \"./VisChart\";\n\nconst DashBoardContainer = (props) => {\n const { handleGraphModal, data, selectedTeams, t: translate } = props;\n\n const openButton = (plot) => {\n return (\n \n );\n };\n\n return (\n <>\n {data.map((plot) => {\n return (\n \n
\n
\n {translate(plot.name)} {openButton(plot)}\n
\n \n
\n
\n );\n })}\n \n );\n};\n\nexport default withTranslation(\"SupplyChainCommon\")(DashBoardContainer);\n","import React, { Component } from \"react\";\nimport { Grid, Header } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faChevronUp } from \"@fortawesome/free-solid-svg-icons\";\nimport DashBoardContainer from \"./DashBoardContainer\";\n\nexport default class DashboardSectionRow extends Component {\n state = {\n open: true,\n };\n\n toggleSection = () => {\n this.setState({\n open: !this.state.open,\n });\n };\n\n render() {\n const { name, handleGraphModal, section, selectedTeams } = this.props;\n const sectionRowContent = (columns) => (\n \n \n
\n {name}\n \n
\n
\n {this.state.open && (\n \n \n \n )}\n
\n );\n\n return (\n <>\n \n {sectionRowContent(3)}\n {sectionRowContent(2)}\n {sectionRowContent(1)}\n \n \n );\n }\n}\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport CurrentDayRefreshSection from \"./CurrentDayRefreshSection\";\nimport DashboardSectionRow from \"./DashBoardSectionRow\";\n\nclass DashBoardSection extends Component {\n shouldComponentUpdate(nextProps) {\n const { selectedTeams, selectedGraphs } = this.props;\n if (nextProps && nextProps.selectedTeams && nextProps.selectedGraphs) {\n if (nextProps.selectedTeams === selectedTeams && nextProps.selectedGraphs === selectedGraphs) {\n return false;\n }\n }\n return true;\n }\n\n render() {\n const { t: translate, selectedTeams, currentSimulationDay, handleGraphModal, sections } = this.props;\n let currentDayRefreshSection = null;\n const dashboadRow = sections.map((section) => (\n \n ));\n\n if (currentSimulationDay) {\n currentDayRefreshSection = (\n \n );\n }\n\n return (\n <>\n {currentDayRefreshSection}\n {dashboadRow}\n \n );\n }\n}\n\nexport default withTranslation(\"SupplyChainCommon\")(DashBoardSection);\n","import React from \"react\";\nimport { Grid } from \"semantic-ui-react\";\nimport DefaultButton from \"../helpers/DefaultButton\";\n\nconst TeamListMobile = (props) => {\n const { handleTeamsListModal, buttonTitle } = props;\n return (\n \n \n
\n
\n \n
\n
\n
\n
\n );\n};\n\nexport default TeamListMobile;\n","import React from \"react\";\n\nconst TeamsHandlers = (props) => {\n const { translate, teamsList, handleAllChecked, handleTopSelection, selection } = props;\n const teamsQuantity = teamsList.length;\n let topTreeButton = null;\n let topFiveButton = null;\n let topTenButton = null;\n\n const selectAllContainer = (\n
\n \n \n
\n );\n\n if (teamsQuantity > 5) {\n let clickHandler = null;\n if (selection !== 3) {\n clickHandler = () => handleTopSelection(3);\n }\n topTreeButton = (\n \n );\n }\n\n if (teamsQuantity > 9) {\n let clickHandler = null;\n if (selection !== 5) {\n clickHandler = () => handleTopSelection(5);\n }\n topFiveButton = (\n \n );\n }\n\n if (teamsQuantity > 19) {\n let clickHandler = null;\n if (selection !== 10) {\n clickHandler = () => handleTopSelection(10);\n }\n topTenButton = (\n \n );\n }\n\n const specialSelectionsContainer = (\n
\n {topTreeButton}\n {topFiveButton}\n {topTenButton}\n
\n );\n\n return (\n
\n {selectAllContainer}\n {specialSelectionsContainer}\n
\n );\n};\n\nexport default TeamsHandlers;\n","import React, { Component } from \"react\";\nimport { Form } from \"semantic-ui-react\";\nimport TeamsHandlers from \"./TeamsHandlers\";\nimport { checkControlStanding } from \"./utilities\";\n\nclass TeamsListAside extends Component {\n state = {\n teamsList: [],\n checkType: \"selectAll\",\n standingModified: false,\n };\n\n componentDidMount() {\n const { teamsList } = this.props;\n this.setState({\n teamsList: teamsList,\n });\n }\n\n componentDidUpdate(lastProps) {\n const { teamsList } = this.props;\n\n if (lastProps.selectedGraphs !== this.props.selectedGraphs) {\n this.setState({\n teamsList: teamsList,\n });\n }\n }\n\n handleCheckChildElement = (event) => {\n const { teamsList } = this.state;\n let teams = [];\n this.setState({\n checkType: \"\",\n });\n teamsList.forEach((team) => {\n if (team.name === event.target.value) {\n team.isChecked = event.target.checked;\n }\n teams.push(team);\n });\n this.setState({\n teamsList: teams,\n selection: 0,\n });\n this.props.modifySelectedTeamsList(teams);\n };\n\n handleAllChecked = (event) => {\n const { teamsList, checkType } = this.state;\n let teams = [];\n if (checkType !== event.target.id) {\n if (event.target.id === \"selectAll\") {\n teamsList.forEach((team) => {\n team.isChecked = true;\n teams.push(team);\n });\n } else {\n teamsList.forEach((team) => {\n team.isChecked = false;\n teams.push(team);\n });\n }\n this.props.modifySelectedTeamsList(teams);\n this.setState({\n teamsList: teams,\n checkType: event.target.id,\n selection: 0,\n });\n }\n };\n\n handleTopSelection = (selection) => {\n const { standings } = this.props;\n const { teamsList, standingModified } = this.state;\n const controlStanding = checkControlStanding(standings, selection);\n let newTeamsList = [];\n\n teamsList.forEach((team) => {\n if (!standingModified) {\n this.setState({\n standingModified: true,\n });\n\n if (controlStanding <= selection) {\n if (team.standing > controlStanding) {\n team.standing = team.standing - 1;\n }\n }\n }\n\n if (team.standing > selection || team.name === \"CONTROL\") {\n team.isChecked = false;\n } else {\n team.isChecked = true;\n }\n newTeamsList.push(team);\n });\n\n this.props.modifySelectedTeamsList(newTeamsList);\n this.setState({\n teamsList: newTeamsList,\n checkType: \"top\",\n selection: selection,\n });\n };\n\n showStandingNumber = (team) => {\n const { checkType, selection } = this.state;\n let showStanding = \"\";\n if (checkType === \"top\" && selection >= team.standing && team.name !== \"CONTROL\") {\n showStanding = ` (${team.standing})`;\n }\n\n return showStanding;\n };\n\n render() {\n const { translate } = this.props;\n const { teamsList, selection } = this.state;\n\n const itemsList = teamsList.map((team) => {\n const showStanding = this.showStandingNumber(team);\n let disableTeam = false;\n\n return (\n \n
\n \n\n \n
\n
\n );\n });\n\n return (\n
\n
\n

{translate(\"Common:teams\")}

\n \n
\n
\n
{itemsList}
\n
\n
\n );\n }\n}\n\nexport default TeamsListAside;\n","import React from \"react\";\nimport { Popup } from \"semantic-ui-react\";\nimport { GRAPHS_GROUP } from \"../utilities/DashBoardUtilities\";\n\nconst DataSourceNavigator = (props) => {\n const { translate, selectedGraphs, handleGraphSelector, loadingDecisionsData, decisionsData, decisionsDataError } =\n props;\n\n let performanceClass = \"\";\n let decisionsClass = \"\";\n const decisionsDataExist =\n loadingDecisionsData === false && (Object.keys(decisionsData).length > 0 || decisionsDataError !== \"\");\n\n if (selectedGraphs === GRAPHS_GROUP.PERFORMANCE) {\n performanceClass = \"selectedGraph\";\n decisionsClass = \"\";\n } else {\n performanceClass = \"\";\n decisionsClass = \"selectedGraph\";\n }\n\n const selectGraphContainer = (\n
\n \n {translate(\"performance\")}\n \n \n {translate(\"decisions\")}\n \n }\n content={translate(\"loadingDecisionsData\")}\n on=\"click\"\n open={!decisionsDataExist}\n position=\"bottom center\"\n />\n
\n );\n\n return <>{selectGraphContainer};\n};\n\nexport default DataSourceNavigator;\n","import React, { Component } from \"react\";\nimport { Modal, Button, Form } from \"semantic-ui-react\";\nimport TeamsHandlers from \"../dashBoards/TeamsHandlers\";\nimport { checkControlStanding } from \"./utilities\";\n\nclass TeamsListModal extends Component {\n state = {\n teamsList: [],\n areAllChecked: true,\n areAllUnchecked: false,\n standingModified: false,\n };\n\n componentDidMount() {\n this.setState({\n teamsList: this.props.teamsList,\n });\n }\n\n componentDidUpdate(lastProps) {\n const { teamsList } = this.props;\n\n if (lastProps.selectedGraphs !== this.props.selectedGraphs) {\n this.setState({\n teamsList: teamsList,\n });\n }\n }\n\n handleCheckChildElement = (event) => {\n const { teamsList } = this.state;\n let teams = [];\n this.setState({\n checkType: \"\",\n });\n teamsList.forEach((team) => {\n if (team.name === event.target.value) {\n team.isChecked = event.target.checked;\n }\n teams.push(team);\n });\n this.setState({\n teamsList: teams,\n selection: 0,\n });\n this.props.modifySelectedTeamsList(teams);\n };\n\n handleAllChecked = (event) => {\n const { teamsList, checkType } = this.state;\n let teams = [];\n if (checkType !== event.target.id) {\n if (event.target.id === \"selectAll\") {\n teamsList.forEach((team) => {\n team.isChecked = true;\n teams.push(team);\n });\n } else {\n teamsList.forEach((team) => {\n team.isChecked = false;\n teams.push(team);\n });\n }\n this.props.modifySelectedTeamsList(teams);\n this.setState({\n teamsList: teams,\n checkType: event.target.id,\n selection: 0,\n });\n }\n };\n\n handleTopSelection = (selection) => {\n const { standings } = this.props;\n const { teamsList, standingModified } = this.state;\n const controlStanding = checkControlStanding(standings, selection);\n let newTeamsList = [];\n\n teamsList.forEach((team) => {\n if (!standingModified) {\n this.setState({\n standingModified: true,\n });\n\n if (controlStanding <= selection) {\n if (team.standing > controlStanding) {\n team.standing = team.standing - 1;\n }\n }\n }\n\n if (team.standing > selection || team.name === \"CONTROL\") {\n team.isChecked = false;\n } else {\n team.isChecked = true;\n }\n newTeamsList.push(team);\n });\n\n this.props.modifySelectedTeamsList(newTeamsList);\n this.setState({\n teamsList: newTeamsList,\n checkType: \"top\",\n selection: selection,\n });\n };\n\n showStandingNumber = (team) => {\n const { checkType, selection } = this.state;\n let showStanding = \"\";\n if (checkType === \"top\" && selection >= team.standing && team.name !== \"CONTROL\") {\n showStanding = ` (${team.standing})`;\n }\n\n return showStanding;\n };\n\n render() {\n const { translate, openTeamsListModal, handleTeamsListModal } = this.props;\n const { teamsList, selection } = this.state;\n const itemsList = teamsList.map((team) => {\n const showStanding = this.showStandingNumber(team);\n let disableTeam = false;\n\n return (\n \n
\n \n\n \n
\n
\n );\n });\n\n return (\n \n \n {translate(\"chooseATeam\")}\n \n \n \n
{itemsList}
\n
\n \n \n );\n })}\n
\n );\n }\n return component;\n};\n\nconst buildActionButtons = (details) => {\n var actionButtons = [\n ...supplyChainButtons.map((value) => {\n return { ...value };\n }),\n ];\n if (!details.professorManagedProgress || details.status === CONSTANT.FINISHED) {\n const buttonIndex = actionButtons.findIndex((element) => element.key === \"advanceSimulation\");\n actionButtons[buttonIndex].hide = true;\n }\n if (\n (details.status !== CONSTANT.RUNNING && details.status !== CONSTANT.FINISHED) ||\n details.hasANextIteration === true\n ) {\n const nextRunButtonIndex = actionButtons.findIndex((element) => element.key === \"createNextRun\");\n actionButtons[nextRunButtonIndex].hide = true;\n }\n if (details.professorManagedProgress && details.status === CONSTANT.AWAITING_INITIALIZATION) {\n const advanceButtonIndex = actionButtons.findIndex((element) => element.key === \"advanceSimulation\");\n actionButtons[advanceButtonIndex].hide = true;\n const startButtonIndex = actionButtons.findIndex((element) => element.key === \"startSimulation\");\n actionButtons[startButtonIndex].hide = false;\n }\n\n if (details.status === CONSTANT.RUNNING || details.status === CONSTANT.FINISHED) {\n const buttonIndex = actionButtons.findIndex((element) => element.key === \"dashboards\");\n actionButtons[buttonIndex].hide = false;\n }\n\n const showModifyConditions = [CONSTANT.AWAITING_INITIALIZATION];\n const lastMileProfessorManaged =\n (details.professorManagedProgress === true) & (details.gameMode === SUPPLYCHAIN_CONSTANTS.LastMile);\n if (showModifyConditions.includes(details.status) && !lastMileProfessorManaged) {\n const modifyButtonIndex = actionButtons.findIndex((element) => element.key === \"modifySimulation\");\n actionButtons[modifyButtonIndex].hide = false;\n }\n\n return actionButtons.filter((button) => !button.hide);\n};\n\nconst supplyChainButtons = [\n {\n key: \"modifySimulation\",\n name: \"CrisisModifyModal:ModifySimulation\",\n action: \"modifySimulationAction\",\n hide: true,\n },\n {\n key: \"advanceSimulation\",\n name: \"AdvanceSimulationModal:advanceSimulation\",\n action: \"handleAdvanceModal\",\n hide: false,\n },\n {\n key: \"startSimulation\",\n name: \"AdvanceSimulationModal:startSimulation\",\n action: \"handleAdvanceModal\",\n hide: true,\n },\n {\n key: \"standings\",\n name: \"standings\",\n action: \"standingsAction\",\n },\n {\n key: \"registeredStudents\",\n name: \"registeredStudents\",\n action: \"registeredStudentsAction\",\n },\n {\n key: \"shareSimulation\",\n name: \"shareSimulation\",\n action: \"handleShareModal\",\n hide: false,\n },\n {\n key: \"dashboards\",\n name: \"dashboards\",\n action: \"dashboardsAction\",\n hide: false,\n },\n {\n key: \"createNextRun\",\n name: \"CrisisDetailScreen:createNextRun\",\n action: \"createNextRunAction\",\n hide: false,\n },\n {\n key: \"Documentation\",\n name: \"Common:Documents\",\n action: \"documentationAction\",\n hide: false,\n },\n {\n key: \"back\",\n name: \"Common:back\",\n action: \"backAction\",\n hide: false,\n },\n];\n\nexport default ActionButtons;\n","import React from \"react\";\nimport \"./SimulationDetailStyles.css\";\n\nconst SimulationTitle = (props) => {\n return (\n
\n

{props.title}

\n \n
\n );\n};\n\nexport default SimulationTitle;\n","import React, { Component } from \"react\";\nimport { List, Image } from \"semantic-ui-react\";\nimport supplyChainLogo from \"../../assets/supplychain-logo.png\";\nimport SimulationTitle from \"./SimulationTitle\";\nimport HelpHoverComponent from \"../helpers/HelpHoverComponent\";\nimport moment from \"moment\";\nimport { getLanguagePrefix } from \"../utilities/LanguageUtilities\";\nimport { withTranslation } from \"react-i18next\";\n\nclass SupplyChainDetailComponent extends Component {\n formatDate = (date, language) => {\n return moment(date)\n .locale(getLanguagePrefix(language))\n .format(`MMMM D, YYYY [${this.props.t(\"at\")}] hh:mm A`);\n };\n\n render() {\n const translate = this.props.t;\n const simulationDetails = this.props.simulationDetails;\n const loadingDetails = this.props.loadingDetails;\n const language = this.props.language;\n\n let detailBoxStyles = \"detailsDataLoading\";\n let listDetails = [];\n if (!loadingDetails && simulationDetails) {\n detailBoxStyles = \"detailsDataCharged\";\n\n let startDateText = null;\n let endDateText = null;\n if (simulationDetails.professorManagedProgress) {\n startDateText = translate(\"MedicaDetailScreen:professorManaged\");\n endDateText = translate(\"MedicaDetailScreen:professorManaged\");\n } else {\n startDateText = this.formatDate(simulationDetails.startTime, language);\n endDateText = this.formatDate(simulationDetails.endTime, language);\n }\n\n listDetails = [\n {\n item: translate(\"Common:status\"),\n content: translate(`Common:${simulationDetails.status}`),\n },\n {\n item: translate(\"Common:currentDay\"),\n content: simulationDetails.currentSimulationDay,\n },\n {\n item: translate(\"Common:GameMode\"),\n content: translate(`SupplyChainCommon:${simulationDetails.gameMode}`),\n },\n { key: 3, item: translate(\"Common:startDate\"), content: startDateText },\n { key: 4, item: translate(\"Common:endDate\"), content: endDateText },\n ];\n } else {\n listDetails = [\n { item: translate(\"Common:status\"), content: \"\" },\n {\n item: translate(\"SupplyChainCommon:GameMode\"),\n content: \"\",\n },\n ];\n }\n return (\n
\n \n
\n
\n \n
\n
\n

{translate(\"SupplyChainDetailScreen:simulationDetails\").toUpperCase()}

\n \n {listDetails.map((detail, index) => {\n if (!detail.content) return null;\n let helpHoverComponent = null;\n if (detail.hasHelp) {\n helpHoverComponent = ;\n }\n return (\n \n {loadingDetails === true ? (\n
\n ) : (\n
\n {detail.item}: \n {detail.content}\n {helpHoverComponent}\n
\n )}\n \n );\n })}\n \n
\n
\n
\n );\n }\n}\n\nexport default withTranslation(\"Common\", \"SupplyChainCommon\")(SupplyChainDetailComponent);\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"semantic-ui-react\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport { withTranslation } from \"react-i18next\";\nimport { compose } from \"redux\";\nimport {\n supplyChainAdvanceSimulation,\n supplyChainResetRequestsState,\n supplyChainStartSimulation,\n supplyChainGetNumberOfRegisteredStudents,\n} from \"../../store/SupplyChainSimulationDetails/actions\";\nimport { connect } from \"react-redux\";\nimport InputComponent from \"../helpers/InputComponent\";\n\nclass AdvanceSimulationModal extends Component {\n state = {\n inputNumberValue: 1,\n };\n\n componentDidMount() {\n this.props.supplyChainGetNumberOfRegisteredStudents(this.props.simulationDetails.id);\n }\n\n advanceSimulation = (advanceMethod) => {\n let advanceParams = { simulationId: this.props.simulationDetails.id };\n if (this.props.simulationDetails.status === \"AwaitingInitialization\") {\n advanceParams[\"numberOfTeams\"] = this.state.inputNumberValue;\n } else if (\n this.props.simulationDetails.status === \"Initialized\" ||\n this.props.simulationDetails.status === \"Running\"\n ) {\n advanceParams[\"numberOfWeeksToAdvance\"] = this.state.inputNumberValue;\n }\n advanceMethod(advanceParams);\n };\n\n handleClose = () => {\n this.props.handleAdvanceModal();\n };\n\n successAction = () => {\n this.props.getSimulationDetails(this.props.simulationDetails.id);\n this.props.supplyChainResetRequestsState();\n this.handleClose();\n };\n\n handleInputNumberValueChanged = (id, data) => {\n this.setState({ inputNumberValue: parseInt(data) });\n };\n\n handleWeeksToAdvanceChanged = (id, data) => {\n let valueToSave = parseInt(data);\n if (valueToSave < 1) {\n valueToSave = 1;\n }\n\n if (valueToSave > 4) {\n valueToSave = 4;\n }\n this.setState({ inputNumberValue: valueToSave });\n };\n\n render() {\n const translate = this.props.t;\n let oncloseFunction = this.handleClose;\n\n let requestStatus = this.props.advanceSimulationRequestStatus;\n let buttonContent = translate(\"AdvanceSimulationModal:advance\");\n let advanceButtonMethod = this.props.supplyChainAdvanceSimulation;\n let customSuccessMessage = translate(\"Simulation advanced successfully.\");\n let titleText = translate(`AdvanceSimulationModal:advanceSimulation`);\n let disabledAdvanceButton = Number.isNaN(this.state.inputNumberValue);\n\n let numberInput = null;\n if (this.props.simulationDetails.status === \"AwaitingInitialization\") {\n buttonContent = translate(\"AdvanceSimulationModal:start\");\n advanceButtonMethod = this.props.supplyChainStartSimulation;\n requestStatus = this.props.startSimulationRequestStatus;\n titleText = translate(`AdvanceSimulationModal:startSimulation`);\n\n let numberOfStudents = this.props.numberOfRegisteredStudentsStatus.numberOfStudents;\n let numberOfStudentsError = this.props.numberOfRegisteredStudentsStatus.errorMessage;\n let messageToStartSimulation = null;\n\n if (numberOfStudentsError === \"\" && numberOfStudents === 0) {\n disabledAdvanceButton = true;\n messageToStartSimulation = (\n

\n {translate(\"SupplyChainAdvanceSimulationModal:StartSimulationController_SimulationEmpty\")}\n

\n );\n } else {\n messageToStartSimulation = (\n
\n

{translate(\"SupplyChainAdvanceSimulationModal:StudentsAreJoined\")}

\n

\n {translate(\"SupplyChainAdvanceSimulationModal:RegisteredStudents\")}\n {numberOfStudentsError === \"\" ? numberOfStudents : \"N\"}\n

\n

\n {translate(\"SupplyChainAdvanceSimulationModal:RecommendedNumberOfTeams\")}\n {numberOfStudentsError === \"\"\n ? Math.ceil(numberOfStudents / 4)\n : translate(\"SupplyChainAdvanceSimulationModal:RoundedUp\")}\n

\n

{translate(\"SupplyChainAdvanceSimulationModal:MissingSpotsMessage\")}

\n
\n );\n }\n\n numberInput = (\n
\n {messageToStartSimulation}\n \n
\n );\n } else if (\n this.props.simulationDetails.status === \"Initialized\" ||\n this.props.simulationDetails.status === \"Running\"\n ) {\n numberInput = (\n
\n \n
\n );\n }\n\n let actionButtons = null;\n actionButtons = (\n \n this.advanceSimulation(advanceButtonMethod)}\n />\n \n
\n \n \n {actionButtons}\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getDocumentation: (simulationId) => dispatch(supplyChainGetDocumentation(simulationId)),\n supplyChainGetSimulationDetails: (simulationId) => dispatch(supplyChainGetSimulationDetails(simulationId)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n documentationStatus: state.supplyChainSimulationDetails.documentationStatus,\n supplyChainSimulationDetails: state.supplyChainSimulationDetails.simulationDetails,\n supplyChainSimulationDetailsRequestStatus: state.supplyChainSimulationDetails.simulationDetailsRequestStatus,\n language: state.user.userProfile.language,\n };\n};\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\n \"MedicaDetailScreen\",\n \"SupplyChainDetailScreen\",\n \"ModifyModal\",\n \"ShareModal\",\n \"MedicaAdvancedOptions\",\n \"Common\"\n ),\n withRouter\n);\n\nexport default HOC(SupplyChainDetail);\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { Table } from \"semantic-ui-react\";\n\nclass RegisteredStudentsComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n registeredStudentList: props.simulationRegisteredStudents,\n direction: null,\n };\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, registeredStudentList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n registeredStudentList: _.sortBy(registeredStudentList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n registeredStudentList: registeredStudentList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, registeredStudentList } = this.state;\n const arrowsIcon = ;\n const teamsAssigned = registeredStudentList.some((x) => x.team?.length > 0);\n return (\n
(this.topTable = ref)}>\n

{`${translate(\"registeredStudentsOf\")}: ${registeredStudentList.length}`}

\n \n \n \n {teamsAssigned ? (\n \n
\n {translate(\"Common:team\").toUpperCase()}\n {arrowsIcon}\n
\n
\n ) : null}\n \n
\n {translate(\"name\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"email\").toUpperCase()}\n {arrowsIcon}\n
\n
\n
\n
\n \n {registeredStudentList.map((student) => {\n return (\n \n {teamsAssigned ? {student.team} : null}\n {`${student.studentFirstName} ${student.studentLastName}`}\n {student.email}\n \n );\n })}\n \n
\n
\n );\n }\n}\n\nexport default RegisteredStudentsComponent;","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { Container } from \"semantic-ui-react\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { getStorage } from \"../../services/StorageService\";\nimport { supplyChainGetRegisteredStudents } from \"../../store/SupplyChainSimulationDetails/actions\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport RegisteredStudentsComponent from \"./RegisteredStudentsComponent\";\n\nclass SupplyChainRegisteredStudents extends Component {\n state = {\n requestedSimulationName: getUrlSearchParam(),\n };\n\n componentDidMount() {\n const requestedSimulationId = getStorage(LOCALSTORAGE.requestedSimulation);\n this.props.getRegisteredStudents(requestedSimulationId);\n }\n\n render() {\n const translate = this.props.t;\n const registeredStudentsStatus = this.props.supplyChainGetRegisteredStudentsStatus;\n let body = null;\n\n if (registeredStudentsStatus.success) {\n if (registeredStudentsStatus.registeredStudents.length > 0) {\n body = (\n \n );\n }\n else {\n body = ;\n }\n }\n else {\n body = ;\n }\n\n if (registeredStudentsStatus.loading) {\n body = ;\n }\n\n return (\n \n \n \n {body}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getRegisteredStudents: (simulationId) => dispatch(supplyChainGetRegisteredStudents(simulationId)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n supplyChainGetRegisteredStudentsStatus: state.supplyChainSimulationDetails.registeredStudents,\n language: state.user.userProfile.language,\n };\n};\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"RegisteredStudentsScreen\", \"Common\"),\n withRouter\n);\n\nexport default HOC(SupplyChainRegisteredStudents);","import { faChevronDown, faChevronRight, faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport _ from \"lodash\";\nimport memoizeOne from \"memoize-one\";\nimport React, { PureComponent } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { Container, Table } from \"semantic-ui-react\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { supplyChainGetSimulationStandings } from \"../../store/SupplyChainSimulationDetails/actions\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport \"./supplyChainStandings.css\";\nimport { getStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nexport class supplyChainStandings extends PureComponent {\n state = {\n expandedRows: [],\n requestedSimulationName: getUrlSearchParam(),\n column: null,\n direction: null,\n };\n\n componentDidMount() {\n const requestedSimulationId = getStorage(LOCALSTORAGE.requestedSimulation);\n this.props.supplyChainGetSimulationStandings(requestedSimulationId);\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, direction } = this.state;\n let newColumn = clickedColumn;\n let newDirection = null;\n\n if (column !== clickedColumn) {\n newDirection = \"asc\";\n }\n\n if (column === clickedColumn && direction === \"asc\") {\n newDirection = \"desc\";\n }\n\n if (column === clickedColumn && direction === \"desc\") {\n newColumn = null;\n newDirection = null;\n }\n\n this.setState({\n column: newColumn,\n direction: newDirection,\n });\n };\n\n handleRowClick(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n const newExpandedRows = isRowCurrentlyExpanded\n ? currentExpandedRows.filter((id) => id !== rowId)\n : currentExpandedRows.concat(rowId);\n\n this.setState({ expandedRows: newExpandedRows });\n }\n\n renderItem(item) {\n const translate = this.props.t;\n const clickCallback = () => this.handleRowClick(item.index);\n const itemRows = [\n \n {this.renderItemCaret(item.index)}\n {item.teamName}\n $ {item.cashSupplyAndAssembly.toFixed(2)}\n $ {item.cashProduction.toFixed(2)}\n $ {item.cashNetworkA.toFixed(2)}\n $ {item.cashNetworkB.toFixed(2)}\n $ {item.cashGlobal.toFixed(2)}\n ,\n ];\n\n if (this.state.expandedRows.includes(item.index)) {\n itemRows.push(\n \n \n \n \n \n \n {translate(\"Team Member\")}\n \n {translate(\"Email\")}\n {translate(\"Role\")}\n \n \n {item.teamMembers.students.map(this.renderItemDetails.bind(this))}\n
\n
\n
\n );\n }\n\n return itemRows;\n }\n\n renderItemCaret(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n if (isRowCurrentlyExpanded) {\n return ;\n } else {\n return ;\n }\n }\n\n renderItemDetails(item, index) {\n return (\n \n \n {item.name}\n \n\n \n {item.email}\n \n\n \n {this.props.t(item.role)}\n \n \n );\n }\n\n standingsTableData = (teamStandings, teamMembersList) => {\n const allPositionStandings = teamStandings.find((x) => x.teamPosition === \"All\");\n const supplyAndAssemblyStandings = teamStandings.find((x) => x.teamPosition === \"SupplyAndAssembly\");\n const productionStandings = teamStandings.find((x) => x.teamPosition === \"Production\");\n const networkAStandings = teamStandings.find((x) => x.teamPosition === \"NetworkA\");\n const networkBStandings = teamStandings.find((x) => x.teamPosition === \"NetworkB\");\n const standingsTable = [];\n\n allPositionStandings.standings.forEach((element, index) => {\n const teamName = element.teamName;\n const cashSupplyAndAssembly = supplyAndAssemblyStandings.standings.find((x) => x.teamName === teamName);\n const cashProduction = productionStandings.standings.find((x) => x.teamName === teamName);\n const cashNetworkA = networkAStandings.standings.find((x) => x.teamName === teamName);\n const cashNetworkB = networkBStandings.standings.find((x) => x.teamName === teamName);\n const teamMembers = teamMembersList.find((x) => x.teamName === teamName);\n standingsTable.push({\n index,\n teamName,\n cashGlobal: element.cash,\n cashSupplyAndAssembly: cashSupplyAndAssembly.cash,\n cashProduction: cashProduction.cash,\n cashNetworkA: cashNetworkA.cash,\n cashNetworkB: cashNetworkB.cash,\n teamMembers,\n });\n });\n return standingsTable;\n };\n\n memoizedStandingsTableData = memoizeOne(this.standingsTableData);\n\n render() {\n const translate = this.props.t;\n const standingsState = this.props.standings;\n\n let bodyContent;\n let sortedStandingsData;\n\n if (standingsState.success) {\n const standingsTableData = this.memoizedStandingsTableData(\n standingsState.simulationStandings,\n standingsState.teamMembers\n );\n\n sortedStandingsData = standingsTableData;\n if (this.state.column && this.state.direction) {\n sortedStandingsData = _.orderBy(standingsTableData, [this.state.column], this.state.direction);\n }\n }\n\n if (standingsState.success && sortedStandingsData.length > 0) {\n const standingsTableRows = sortedStandingsData.map(this.renderItem.bind(this));\n const arrowsIcon = ;\n\n bodyContent = (\n \n \n \n \n \n <>\n {translate(\"Team\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"SupplyAndAssembly\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"Production\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"NetworkA\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"NetworkB\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"Total\")}\n {arrowsIcon}\n \n \n \n \n {standingsTableRows}\n
\n );\n }\n\n if (standingsState.success && sortedStandingsData.length === 0) {\n bodyContent = ;\n }\n\n if (standingsState.loading) {\n bodyContent = ;\n }\n\n if (!standingsState.loading && !standingsState.success) {\n bodyContent = ;\n }\n\n return (\n \n \n \n {bodyContent}\n \n );\n }\n}\nconst mapStateToProps = (state) => ({\n standings: state.supplyChainSimulationDetails.standings,\n simulationId: state.supplyChainSimulationDetails.simulationDetails.id,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n supplyChainGetSimulationStandings: (simulationId) => dispatch(supplyChainGetSimulationStandings(simulationId)),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation([\"SupplyChainStandings\", \"StandingsScreen\", \"Common\"]),\n withRouter\n);\n\nexport default HOC(supplyChainStandings);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport * as SUPPLY_CHAIN_CONSTANTS from \"../../constants/SupplyChainConstants\";\nimport CalendarComponent from \"../helpers/CalendarComponent\";\nimport DateTimeSelector from \"../helpers/DateTimeSelector\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport DropDownComponent from \"../helpers/DropDownComponent\";\nimport { Checkbox } from \"semantic-ui-react\";\n\nimport \"./supplyChainRunAgain.css\";\n\nclass NextRunFormComponent extends Component {\n state = {\n dateToModify: \"\",\n openCalendar: false,\n };\n\n handleFormChange = (id, data) => {\n this.props.formChanged(id, data);\n };\n\n onChangeTimeBetweenAdvances = (id, pace) => {\n this.handleFormChange(id, pace);\n const { startTime, endTime } = this.props.formData;\n\n this.matchEndAndStartTimeHourDivisibility(startTime.value.hour, endTime.value.hour, pace);\n };\n\n onChangeStartTime = (value) => {\n const { professorAdvance, timeBetweenAdvances, startTime, endTime } = this.props.formData;\n this.props.setHour(\"startTime\", value);\n\n if (professorAdvance.value === false) {\n this.matchEndAndStartTimeHourDivisibility(startTime.value.hour, endTime.value.hour, timeBetweenAdvances.value);\n }\n };\n\n matchEndAndStartTimeHourDivisibility = (startHour, endHour, dividerInt) => {\n if (dividerInt === 1) return;\n\n const startTimeDivisibility = startHour % dividerInt;\n const endTimeDivisibility = endHour % dividerInt;\n\n if (startTimeDivisibility !== endTimeDivisibility) {\n const newEndHour = CONSTANT.HOUR_NUMBERS.find((x) => x.value % dividerInt === startTimeDivisibility).value;\n this.props.setHour(\"endTime\", newEndHour);\n }\n };\n\n gameModeOptions = [\n {\n key: 1,\n text: this.props.t(`SupplyChainCommon:${SUPPLY_CHAIN_CONSTANTS.OneStationUnknownPeers}`),\n value: SUPPLY_CHAIN_CONSTANTS.OneStationUnknownPeers,\n },\n {\n key: 2,\n text: this.props.t(`SupplyChainCommon:${SUPPLY_CHAIN_CONSTANTS.OneStationKnownPeers}`),\n value: SUPPLY_CHAIN_CONSTANTS.OneStationKnownPeers,\n },\n {\n key: 3,\n text: this.props.t(`SupplyChainCommon:${SUPPLY_CHAIN_CONSTANTS.AllStationsKnownPeers}`),\n value: SUPPLY_CHAIN_CONSTANTS.AllStationsKnownPeers,\n },\n {\n key: 4,\n text: this.props.t(`SupplyChainCommon:${SUPPLY_CHAIN_CONSTANTS.LastMile}`),\n value: SUPPLY_CHAIN_CONSTANTS.LastMile,\n },\n ];\n\n advanceSimulationOptions = [\n {\n key: 1,\n text: this.props.t(\"Common:yes\"),\n value: true,\n },\n {\n key: 2,\n text: this.props.t(\"Common:no\"),\n value: false,\n },\n ];\n\n timeBetweenAdvancesOptions = [\n {\n key: \"time1\",\n text: this.props.t(\"SupplyChainPurchased:TimeBetweenAdvancesOneHour\"),\n value: 1,\n },\n {\n key: \"time2\",\n text: this.props.t(\"SupplyChainPurchased:TimeBetweenAdvancesTwoHours\"),\n value: 2,\n },\n ];\n\n handleCalendar = (action) => {\n this.setState({\n dateToModify: action,\n openCalendar: !this.state.openCalendar,\n });\n };\n\n handleSubmit(e) {\n e.preventDefault();\n const formValues = this.checkWithDatesSelected();\n this.props.handleContinue(formValues);\n }\n\n render() {\n const translate = this.props.t;\n let calendarComponent = null;\n const { formData } = this.props;\n let selectedDate = null;\n\n if (this.state.dateToModify === \"startDate\") {\n selectedDate = formData.startTime.value.date;\n } else {\n selectedDate = formData.endTime.value.date;\n }\n\n if (this.state.openCalendar) {\n calendarComponent = (\n
\n this.props.setDate(value, this.state.dateToModify)}\n selectedDate={selectedDate}\n language={this.props.language}\n />\n
\n );\n }\n\n let endTimeOptions = null;\n if (this.props.formData.professorAdvance.value === false && this.props.formData.timeBetweenAdvances.value > 1) {\n const startTimeDivisibility = formData.startTime.value.hour % this.props.formData.timeBetweenAdvances.value;\n endTimeOptions = CONSTANT.HOUR_NUMBERS.filter(\n (x) => x.value % this.props.formData.timeBetweenAdvances.value === startTimeDivisibility\n ).map((hour) => ({\n key: hour.key,\n text: hour.value,\n value: hour.value,\n }));\n }\n\n const automaticSimulationEntries = formData.professorAdvance.value ? null : (\n <>\n \n this.setState({ dateToModify: \"startDate\" })}\n dateToSet={CONSTANT.START_DATE}\n settingHour={(event, value) => this.onChangeStartTime(value.value)}\n date={formData.startTime.value.date}\n hour={formData.startTime.value.hour}\n hourFormat={formData.startTime.value.hourFormat}\n language={this.props.language}\n labelAlignment=\"left\"\n />\n\n this.setState({ dateToModify: \"endDate\" })}\n dateToSet={CONSTANT.END_DATE}\n settingHour={(event, value) => this.props.setHour(\"endTime\", value.value)}\n date={formData.endTime.value.date}\n hour={formData.endTime.value.hour}\n hourFormat={formData.endTime.value.hourFormat}\n language={this.props.language}\n labelAlignment=\"left\"\n timeOptions={endTimeOptions}\n />\n \n );\n\n return (\n <>\n {calendarComponent}\n \n\n \n {automaticSimulationEntries}\n \n
\n

{translate(\"SupplyChainCommon:GameModeHelp\")}

\n
    \n
  • {translate(\"SupplyChainCommon:OneStationUnknownPeersHelp\")}
  • \n
  • {translate(\"SupplyChainCommon:OneStationKnownPeersHelp\")}
  • \n
  • {translate(\"SupplyChainCommon:AllStationsKnownPeersHelp\")}
  • \n
  • {translate(\"SupplyChainCommon:LastMileHelp\")}
  • \n
\n
\n
\n \n this.handleFormChange(\"teamsStayTheSame\", !data.checked)}\n />\n
\n \n );\n }\n}\n\nexport default withTranslation([\"SupplyChainRunAgain\", \"Purchased\", \"Common\", \"SupplyChainCommon\"])(\n NextRunFormComponent\n);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Button, Container, Form, Grid, Image } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport LeftTitleComponent from \"../titles/leftTitle/LeftTitleComponent\";\nimport NextRunFormComponent from \"./NextRunFormComponent\";\nimport moment from \"moment\";\nimport * as SUPPLY_CHAIN_CONSTANTS from \"../../constants/SupplyChainConstants\";\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport {\n supplyChainCreateNextRun,\n supplyChainGetSimulationDetails,\n resetCreateNextRunState,\n} from \"../../store/SupplyChainSimulationDetails/actions\";\nimport { supplyChainGetProfessorScenarios } from \"../../store/SupplyChainSimulationDetails/actions\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport BackButton from \"../helpers/BackButton\";\nimport { withRouter } from \"react-router-dom\";\nimport supplyChainLogo from \"../../assets/supplychain-logo.png\";\nimport gearIcon from \"../../assets/gear-icon.svg\";\nimport RedirectModal from \"../modals/RedirectModal\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport AdvancedOptions from \"../supplyChainAdvancedOptions/AdvancedOptions\";\n\nconst getSimulationAffix = (iterationNumber) => {\n const numberString = iterationNumber.toString();\n if (typeof numberString !== \"string\") {\n return;\n }\n if (numberString.endsWith(\"1\") === true && numberString.endsWith(\"11\") === false) {\n return \"st\";\n }\n if (numberString.endsWith(\"2\") === true && numberString.endsWith(\"12\") === false) {\n return \"nd\";\n }\n if (numberString.endsWith(\"3\") === true && numberString.endsWith(\"13\") === false) {\n return \"rd\";\n }\n return \"th\";\n};\n\nconst convertHoursToMilliseconds = (hours) => hours * 60 * 60 * 1000;\n\nclass supplyChainRunAgain extends Component {\n constructor(props) {\n super(props);\n\n const startDate = moment().add(1, \"hour\");\n const endDate = startDate.clone().add(1, \"day\");\n\n this.state = {\n formValidated: true,\n dateValidationError: \"\",\n openAdvancedOptions: false,\n advancedOptions: {\n scenarioId: \"\",\n },\n form: {\n gameMode: {\n value: SUPPLY_CHAIN_CONSTANTS.OneStationUnknownPeers,\n valid: true,\n rules: {},\n },\n professorAdvance: {\n value: true,\n valid: true,\n rules: {},\n },\n startTime: {\n value: {\n hour: this.switchTo12HourFormat(Number(moment(startDate).format(\"HH\"))),\n hourFormat: moment(startDate).format(\"a\"),\n date: startDate,\n },\n valid: true,\n rules: {},\n },\n endTime: {\n value: {\n hour: this.switchTo12HourFormat(Number(moment(endDate).format(\"HH\"))),\n hourFormat: moment(endDate).format(\"a\"),\n date: endDate,\n },\n valid: true,\n rules: {},\n },\n timeBetweenAdvances: {\n value: 1,\n valid: true,\n rules: {},\n },\n teamsStayTheSame: {\n value: true,\n valid: true,\n rules: {},\n },\n },\n };\n }\n\n async componentDidMount() {\n const storedSimulationDetailsId = this.props.simulationDetails.id;\n const requestedSimulationId = getUrlSearchParam();\n const { getSimulationDetails } = this.props;\n this.props.resetCreateNextRunState();\n if (storedSimulationDetailsId !== requestedSimulationId) {\n await getSimulationDetails(requestedSimulationId);\n }\n this.props.getProfessorScenarios();\n }\n\n onFormChanged = (id, data) => {\n const updatedForm = { ...this.state.form };\n const updatedFormElement = { ...updatedForm[id] };\n updatedFormElement.value = data;\n updatedFormElement.valid = this.validateFormValue(updatedFormElement.value, updatedFormElement.rules);\n updatedForm[id] = updatedFormElement;\n this.setState({ form: updatedForm, formValidated: true });\n };\n\n setDate = (date, dateToModify) => {\n let updatedForm = { ...this.state.form };\n\n const segmentedStartTime = updatedForm.startTime.value;\n const segmentedEndTime = updatedForm.endTime.value;\n\n if (dateToModify === \"startDate\" && date >= moment(segmentedEndTime.date).format(\"YYYY-MM-DD\")) {\n segmentedStartTime.date = date;\n segmentedEndTime.date = moment(date).add(1, \"day\");\n } else {\n if (dateToModify === \"startDate\") {\n segmentedStartTime.date = date;\n } else {\n segmentedEndTime.date = date;\n }\n }\n\n updatedForm = this.updateFormValidation(updatedForm);\n this.setState({ form: updatedForm, formValidated: true, dateValidationError: \"\" });\n };\n\n setHour = (statePropertyToModify, value) => {\n let updatedForm = { ...this.state.form };\n const segmentedStartTime = updatedForm[statePropertyToModify].value;\n\n if (isNaN(value)) {\n segmentedStartTime.hourFormat = value;\n } else {\n segmentedStartTime.hour = value;\n }\n\n updatedForm = this.updateFormValidation(updatedForm);\n this.setState({ form: updatedForm, formValidated: true, dateValidationError: {} });\n };\n\n switchTo24HourFormat = (hour, format) => {\n let formatedHour = 0;\n if (format === \"am\" && hour === 12) {\n formatedHour = hour - 12;\n } else if (format === \"pm\" && hour < 12) {\n formatedHour = hour + 12;\n } else {\n formatedHour = hour;\n }\n return formatedHour;\n };\n\n switchTo12HourFormat = (hour) => {\n let formatedHour = null;\n if (hour > 12) {\n formatedHour = hour - 12;\n } else {\n if (hour === 0) {\n formatedHour = 12;\n } else {\n formatedHour = hour;\n }\n }\n return formatedHour;\n };\n\n getTime = (segmentedTime) => {\n const formattedHour = this.switchTo24HourFormat(segmentedTime.hour, segmentedTime.hourFormat);\n return this.formatDateTime(segmentedTime.date, formattedHour);\n };\n\n formatDateTime = (date, time) => {\n return moment(`${moment(date).format(\"YYYY-MM-DD\")} ${time}`, \"YYYY-MM-DD H\");\n };\n\n updateFormValidation = (form) => {\n const updatedForm = {};\n Object.keys(form).forEach((key) => {\n const updatedElement = { ...form[key] };\n updatedElement.valid = this.validateFormValue(updatedElement.value, updatedElement.rules);\n updatedForm[key] = updatedElement;\n });\n\n return updatedForm;\n };\n\n validateFormValue = (value, rules) => {\n let isValid = true;\n if (rules.minLength) {\n isValid = isValid && value.length >= rules.minLength;\n }\n\n if (rules.minHoursBeforeDate) {\n const timeNow = moment();\n const convertedDate = this.getTime(value);\n isValid = isValid && convertedDate.diff(timeNow) >= rules.minHoursBeforeDate;\n }\n return isValid;\n };\n\n handleAdvancedOptionsComponent = () => {\n this.setState({\n openAdvancedOptions: !this.state.openAdvancedOptions,\n });\n };\n\n getNextRunSimulationName() {\n const currentSimulationName = this.props.simulationDetails.name;\n const currentIteration = this.props.simulationDetails.iterationNumber;\n const baseName = currentIteration > 1 ? currentSimulationName.slice(0, -6) : currentSimulationName;\n const nextIteration = currentIteration + 1;\n const nextIterationAffix = getSimulationAffix(nextIteration);\n\n return `${baseName} (${nextIteration}${nextIterationAffix})`;\n }\n\n submitCreateSimulationRequest = (event) => {\n event.preventDefault();\n if (!this.state.formValidated) {\n const updatedForm = this.updateFormValidation(this.state.form);\n this.setState({ form: updatedForm, formValidated: true });\n return;\n }\n\n const form = this.state.form;\n const formValid = Object.keys(form).every((key) => {\n const formEntry = form[key];\n return formEntry.valid;\n });\n\n if (!formValid) {\n return;\n }\n\n const gameMode = form.gameMode.value;\n const professorAdvance = form.professorAdvance.value;\n const simulationId = this.props.simulationDetails.id;\n const teamsStayTheSame = form.teamsStayTheSame.value;\n\n if (professorAdvance) {\n const request = {\n simulationId: simulationId,\n gameMode: gameMode,\n ProfessorManagedProgress: professorAdvance,\n teamsStayTheSame: teamsStayTheSame,\n scenarioId: this.state.advancedOptions.scenarioId,\n };\n\n this.props.createNextRun(request);\n return;\n }\n\n const endTime = form.endTime;\n const convertedStartTime = this.getTime(form.startTime.value);\n const convertedEndTime = this.getTime(endTime.value);\n\n if (convertedStartTime.diff(moment()) < SUPPLY_CHAIN_CONSTANTS.minTimeBeforeSimulationStartsInMiliseconds) {\n form.startTime.valid = false;\n this.setState({\n form: form,\n formValidated: true,\n dateValidationError: { message: \"SupplyChainPurchased:SimulationStartInTheFuture\" },\n });\n return;\n }\n\n const pace = this.state.form.timeBetweenAdvances.value;\n const { minimumNumberOfHoursToRunByPace, maximumNumberOfHoursToRunByPace } = SUPPLY_CHAIN_CONSTANTS;\n const minimumHoursToRun =\n typeof minimumNumberOfHoursToRunByPace[pace] === \"number\" ? minimumNumberOfHoursToRunByPace[pace] : 50;\n const maximumHoursToRun =\n typeof maximumNumberOfHoursToRunByPace[pace] === \"number\" ? maximumNumberOfHoursToRunByPace[pace] : 122;\n\n if (convertedEndTime.diff(convertedStartTime) < convertHoursToMilliseconds(minimumHoursToRun)) {\n endTime.valid = false;\n this.setState({\n form: form,\n formValidated: true,\n dateValidationError: { message: \"SupplyChainPurchased:SimulationMinDurationError\", hours: minimumHoursToRun },\n });\n return;\n }\n\n if (convertedEndTime.diff(convertedStartTime) > convertHoursToMilliseconds(maximumHoursToRun)) {\n endTime.valid = false;\n this.setState({\n form: form,\n formValidated: true,\n dateValidationError: { message: \"SupplyChainPurchased:SimulationMaxDurationError\", hours: maximumHoursToRun },\n });\n return;\n }\n\n const request = {\n simulationId: simulationId,\n gameMode: gameMode,\n ProfessorManagedProgress: professorAdvance,\n startTime: convertedStartTime,\n endTime: convertedEndTime,\n pace: pace,\n teamsStayTheSame: teamsStayTheSame,\n scenarioId: this.state.advancedOptions.scenarioId,\n };\n\n this.props.createNextRun(request);\n };\n\n handleAdvancedOptionsComponent = () => {\n this.setState({\n openAdvancedOptions: !this.state.openAdvancedOptions,\n });\n };\n\n onAdvancedOptionsChanged = (id, value) => {\n const { advancedOptions } = this.state;\n this.setState({\n advancedOptions: {\n ...advancedOptions,\n [id]: value,\n },\n });\n };\n\n render() {\n const { t: translate } = this.props;\n const {\n loading: detailsLoading,\n detailsValid,\n errorMessage: detailErrorMessage,\n } = this.props.simulationDetailsRequestStatus;\n const {\n loading: createNextRunLoading,\n errorMessage: createNextRunErrorMessage,\n success: createNextRunSuccess,\n } = this.props.createNextRunStatus;\n\n let continueButton = (\n \n );\n\n let formBody = null;\n\n if (detailsLoading === true) {\n formBody =
;\n }\n if (createNextRunLoading === true) {\n continueButton =
;\n }\n\n if (detailsValid === true) {\n const nextRunSimulationName = this.getNextRunSimulationName();\n formBody = (\n
\n
\n \n \n \n
\n );\n }\n\n let messagesComponent = null;\n let translatedErrorMessage = \"\";\n const { dateValidationError } = this.state;\n if (typeof dateValidationError.message === \"string\") {\n translatedErrorMessage = translate(dateValidationError.message, { hours: dateValidationError.hours });\n }\n if (createNextRunErrorMessage !== \"\") {\n translatedErrorMessage = translate(createNextRunErrorMessage);\n }\n if (detailErrorMessage !== \"\") {\n translatedErrorMessage = translate(detailErrorMessage);\n }\n if (translatedErrorMessage !== \"\") {\n messagesComponent = (\n \n \n \n \n \n );\n }\n\n const { professorScenariosStatus } = this.props;\n const { advancedOptions, openAdvancedOptions } = this.state;\n const advancedOptionsComponent = (\n <>\n \n \n
{continueButton}
\n
\n \n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n {formBody}\n \n \n
\n \n
\n
\n
\n {messagesComponent}\n \n \n
{continueButton}
\n
\n
\n
\n {openAdvancedOptions ? advancedOptionsComponent : null}\n\n \n \n \n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n professorScenariosStatus: state.supplyChainSimulationDetails.professorScenarios,\n simulationDetailsRequestStatus: state.supplyChainSimulationDetails.simulationDetailsRequestStatus,\n simulationDetails: state.supplyChainSimulationDetails.simulationDetails,\n createNextRunStatus: state.supplyChainSimulationDetails.createNextRunStatus,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n getProfessorScenarios: () => dispatch(supplyChainGetProfessorScenarios()),\n getSimulationDetails: (id) => dispatch(supplyChainGetSimulationDetails(id)),\n createNextRun: (request) => dispatch(supplyChainCreateNextRun(request)),\n resetCreateNextRunState: () => dispatch(resetCreateNextRunState()),\n});\n\nconst HOCs = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation([\"SupplyChainRunAgain\", \"common\"]),\n withRouter\n);\n\nexport default HOCs(supplyChainRunAgain);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Form } from \"semantic-ui-react\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport NavigationButton from \"../helpers/NavigationButton\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { commitCreambowBuyFormData } from \"../../store/CreambowBuySimulation/actions\";\nimport { withRouter } from \"react-router-dom\";\nimport * as ROUTES from \"../../constants/Routes\";\n\nclass BuyQuestionnaireForm extends Component {\n state = {\n form: {\n numberOfStudents: {\n value: 4,\n valid: true,\n rules: {\n minValue: 4,\n },\n },\n },\n formValid: true,\n };\n\n handleFormChange = (id, data) => {\n const updatedForm = { ...this.state.form };\n const updatedFormElement = { ...updatedForm[id] };\n updatedFormElement.value = data;\n updatedFormElement.valid = this.validateFormErrors(updatedFormElement.value, updatedFormElement.rules);\n updatedForm[id] = updatedFormElement;\n\n this.setState({ form: updatedForm, formValid: true });\n };\n\n validateFormErrors = (value, rules) => {\n if (rules) {\n let isValid = true;\n if (rules.minValue) {\n isValid = isValid && value >= rules.minValue;\n }\n return isValid;\n }\n };\n\n handleContinue = () => {\n const dataForm = this.state.form;\n const formValid = Object.keys(dataForm).every((key) => {\n const dataEntry = dataForm[key];\n return dataEntry.valid;\n });\n\n if (!formValid) {\n this.setState({ formValid: false });\n return;\n }\n\n const storeData = {};\n Object.keys(dataForm).forEach((key) => {\n const dataEntry = dataForm[key];\n storeData[key] = dataEntry[\"value\"];\n });\n this.props.commitCreambowBuyFormData(storeData);\n this.props.history.push(ROUTES.CREAMBOW_PAYMENT);\n };\n\n optionsWhoPaying = [\n {\n key: 1,\n text: this.props.t(\"Common:institution\"),\n value: true,\n },\n ];\n\n render() {\n const { t: translate } = this.props;\n\n let inputComponent = null;\n let messagesComponent = null;\n\n inputComponent = (\n \n );\n\n if (!this.state.formValid) {\n messagesComponent = ;\n }\n\n return (\n <>\n
\n {inputComponent}\n {messagesComponent}\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n commitCreambowBuyFormData: (data) => dispatch(commitCreambowBuyFormData(data)),\n});\n\nconst HOC = compose(connect(null, mapDispatchToProps), withTranslation(\"CrisisBuySimulation\", \"Common\"), withRouter);\nexport default HOC(BuyQuestionnaireForm);\n","import React, { Component } from \"react\";\nimport BackButton from \"../helpers/BackButton\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport { Container } from \"semantic-ui-react\";\nimport payIcon from \"../../assets/pay-icon.png\";\nimport { withTranslation } from \"react-i18next\";\nimport { withRouter } from \"react-router-dom\";\nimport BuyQuestionnaireForm from \"./buyQuestionnaireForm\";\n\nclass CreambowBuyQuestionnaire extends Component {\n render() {\n const translate = this.props.t;\n return (\n \n \n \n
\n \n
\n \n
\n );\n }\n}\n\nexport default withTranslation(\"Common\")(withRouter(CreambowBuyQuestionnaire));\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { Container } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport BackButton from \"../helpers/BackButton\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport { fixChatWidgetPlacement } from \"../../services/ChatWidgetPositionService\";\nimport PaymentValidationComponent from \"../activationForio/PaymentValidationComponent\";\nimport { getStorage, mergeDataToStorage, setStorage } from \"../../services/StorageService\";\nimport * as LOCAL_STORAGE from \"../../constants/LocalStorage\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport {\n creambowResetDiscountCode,\n creambowValidateDiscountCode,\n restoreCreambowPurchaseInformationFromStorage,\n} from \"../../store/CreambowBuySimulation/actions\";\n\nclass ActivationCreamBow extends Component {\n updateStorage = (value) => {\n mergeDataToStorage(LOCAL_STORAGE.creambowQuestionnaire, value);\n };\n\n componentDidMount() {\n this.props.restorePurchaseInformationFromStorage();\n }\n\n validateDiscountCode = (discountCode) => {\n this.props.validateDiscountCode({\n code: discountCode,\n numberOfLicenses: this.props.buyForm.numberOfStudents,\n simulationId: \"\",\n targetSimulation: \"Creambow\",\n });\n };\n\n removeDiscountCode = () => {\n const { resetDiscountCode } = this.props;\n const creambowQuestionnaire = getStorage(LOCAL_STORAGE.creambowQuestionnaire);\n delete creambowQuestionnaire.discountActivated;\n delete creambowQuestionnaire.discountedPrice;\n delete creambowQuestionnaire.discountCode;\n setStorage(LOCAL_STORAGE.creambowQuestionnaire, creambowQuestionnaire);\n resetDiscountCode();\n };\n\n render() {\n const { t: translate, discountCodeStatus, buyForm, resetDiscountCode } = this.props;\n return (\n \n \n \n
\n \n \n
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n discountCodeStatus: state.creambowBuySimulation.discountCode,\n buyForm: state.creambowBuySimulation.buyForm,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n restorePurchaseInformationFromStorage: () => dispatch(restoreCreambowPurchaseInformationFromStorage()),\n validateDiscountCode: (discountCode) => dispatch(creambowValidateDiscountCode(discountCode)),\n resetDiscountCode: () => dispatch(creambowResetDiscountCode()),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"Payment\", \"PaymentForio\", \"Common\"),\n withRouter\n);\nexport default HOC(ActivationCreamBow);\n","import activationCreambow from \"./activationCreambow\";\nexport default activationCreambow;\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport InputComponent from \"../helpers/InputComponent\";\nimport \"./purchasedCreambowStyles.css\";\n\nclass CreateCreambowSimulationForm extends Component {\n handleFormChange = (id, data) => {\n this.props.formChanged(id, data);\n };\n\n render() {\n const translate = this.props.t;\n\n return (\n <>\n \n \n );\n }\n}\n\nexport default withTranslation([\"Purchased\", \"Common\", \"CrisisCommon\"])(CreateCreambowSimulationForm);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Button, Container, Form, Grid, Image } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport CrisisShareSimulationModal from \"../modals/CrisisShareModal\";\nimport LeftTitleComponent from \"../titles/leftTitle/LeftTitleComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\nimport creambowLogo from \"../../assets/creambow-logo.png\";\nimport CreateCreambowSimulationForm from \"./createCreambowSimulationForm\";\nimport { compose } from \"redux\";\nimport { connect } from \"react-redux\";\nimport {\n creambowCreateSimulation,\n resetCreateSimulationDefaults,\n resetCreambowBuySimulationStoreDefaults,\n restoreCreambowPurchaseInformationFromStorage,\n} from \"../../store/CreambowBuySimulation/actions\";\nimport \"./purchasedCreambowStyles.css\";\nimport { createCreambowTeamLink } from \"../utilities/ForioSimulationUtilities\";\nimport { withRouter } from \"react-router-dom\";\nimport { CREAMBOW_SIMULATION_DETAILS } from \"../../constants/Routes\";\nimport { setStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\n\nclass PurchasedCreambow extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n formValidated: false,\n form: {\n simulationName: {\n value: \"\",\n valid: true,\n rules: {\n minLength: 1,\n },\n },\n },\n };\n }\n\n componentDidMount() {\n this.props.restoreCreambowPurchaseInformationFromStorage();\n this.props.resetCreateSimulationDefaults();\n }\n\n submitCreateSimulationRequest = (event) => {\n event.preventDefault();\n if (!this.state.formValidated) {\n const updatedForm = this.updateFormValidation(this.state.form);\n this.setState({ form: updatedForm, formValidated: true });\n return;\n }\n\n const form = this.state.form;\n const formValid = Object.keys(form).every((key) => {\n const formEntry = form[key];\n return formEntry.valid;\n });\n\n if (!formValid) {\n return;\n }\n\n const request = {\n simulationName: this.state.form.simulationName.value,\n paymentSummaryId: this.props.paymentSummaryId,\n simulationType: \"Creambow\",\n };\n\n this.props.creambowCreateSimulation(request);\n };\n\n onFormChanged = (id, data) => {\n const updatedForm = { ...this.state.form };\n const updatedFormElement = { ...updatedForm[id] };\n updatedFormElement.value = data;\n updatedFormElement.valid = this.validateFormValue(updatedFormElement.value, updatedFormElement.rules);\n updatedForm[id] = updatedFormElement;\n this.setState({ form: updatedForm, formValidated: true });\n };\n\n updateFormValidation = (form) => {\n const updatedForm = {};\n Object.keys(form).forEach((key) => {\n const updatedElement = { ...form[key] };\n updatedElement.valid = this.validateFormValue(updatedElement.value, updatedElement.rules);\n updatedForm[key] = updatedElement;\n });\n\n return updatedForm;\n };\n\n validateFormValue = (value, rules) => {\n let isValid = true;\n if (rules.minLength) {\n isValid = isValid && value.length >= rules.minLength;\n }\n\n return isValid;\n };\n\n onModalDismiss = () => {\n const simulationId = this.props.createSimulation.simulationId;\n this.props.resetCreambowBuySimulationStoreDefaults();\n setStorage(LOCALSTORAGE.requestedSimulation, simulationId);\n this.props.history.push(CREAMBOW_SIMULATION_DETAILS);\n };\n\n render() {\n const translate = this.props.t;\n const { simulationCreated, createdSimulationMessage, simulationId, errorMessage, loading } =\n this.props.createSimulation;\n\n let navigationButton = null;\n navigationButton = (\n
\n \n
\n );\n\n if (loading) {\n navigationButton = ;\n }\n\n let messagesComponent = null;\n if (errorMessage !== \"\") {\n messagesComponent = ;\n }\n\n const shareSimulationModal = (\n this.onModalDismiss()}\n messageType={true}\n />\n );\n\n return (\n \n {shareSimulationModal}\n \n \n \n \n \n \n \n \n \n
\n \n \n
\n \n \n \n
\n \n \n {messagesComponent}\n {navigationButton}\n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n paymentSummaryId: state.creambowBuySimulation.payment.paymentSummaryId,\n language: state.user.userProfile.language,\n createSimulation: state.creambowBuySimulation.createSimulation,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n creambowCreateSimulation: (request) => dispatch(creambowCreateSimulation(request)),\n restoreCreambowPurchaseInformationFromStorage: () => dispatch(restoreCreambowPurchaseInformationFromStorage()),\n resetCreateSimulationDefaults: () => dispatch(resetCreateSimulationDefaults()),\n resetCreambowBuySimulationStoreDefaults: () => dispatch(resetCreambowBuySimulationStoreDefaults()),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"CrisisBuySimulation\", \"CrisisPurchased\", \"Common\"),\n withRouter\n);\n\nexport default HOC(PurchasedCreambow);\n","import React from \"react\";\nimport { Button, Dropdown } from \"semantic-ui-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faBars } from \"@fortawesome/free-solid-svg-icons\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport * as CONSTANT from \"../../constants/UniversalConstants\";\n\nconst ActionButtons = (props) => {\n const translate = props.translate;\n const requestedSimulation = props.simulationDetails.name;\n let component = null;\n let actionButtons = [];\n var actionsDictionary = {};\n\n const registeredStudentsAction = () => {\n props.history.push({\n pathname: ROUTES.CREAMBOW_REGISTERED_STUDENTS,\n search: requestedSimulation,\n });\n };\n\n const standingsAction = () => {\n props.history.push({\n pathname: ROUTES.CREAMBOW_STANDINGS,\n search: requestedSimulation,\n });\n };\n\n actionsDictionary[\"handleAdvanceModal\"] = props.handleAdvanceModal;\n actionsDictionary[\"registeredStudentsAction\"] = registeredStudentsAction;\n actionsDictionary[\"standingsAction\"] = standingsAction;\n actionsDictionary[\"handleShareModal\"] = props.handleShareModal;\n actionsDictionary[\"backAction\"] = () => props.history.push(ROUTES.HOME);\n\n if (props.detailsLoaded) {\n actionButtons = buildActionButtons(props.simulationDetails);\n }\n\n if (props.isMobile) {\n component = (\n }>\n \n {actionButtons.map((button) => {\n const buttonName = translate(button.name).toUpperCase();\n return (\n \n {buttonName}\n \n );\n })}\n \n \n );\n } else {\n component = (\n
\n {actionButtons.map((button) => {\n const buttonName = translate(button.name).toUpperCase();\n return (\n \n );\n })}\n
\n );\n }\n return component;\n};\n\nconst buildActionButtons = (details) => {\n var actionButtons = [\n ...creambowButtons.map((value) => {\n return { ...value };\n }),\n ];\n\n if (details.status === CONSTANT.FINISHED) {\n const buttonIndex = actionButtons.findIndex((element) => element.key === \"advanceSimulation\");\n actionButtons[buttonIndex].hide = true;\n } else if (details.status === CONSTANT.AWAITING_INITIALIZATION) {\n const advanceButtonIndex = actionButtons.findIndex((element) => element.key === \"advanceSimulation\");\n actionButtons[advanceButtonIndex].hide = true;\n const startButtonIndex = actionButtons.findIndex((element) => element.key === \"startSimulation\");\n actionButtons[startButtonIndex].hide = false;\n }\n\n return actionButtons.filter((button) => !button.hide);\n};\n\nconst creambowButtons = [\n {\n key: \"advanceSimulation\",\n name: \"AdvanceSimulationModal:advanceSimulation\",\n action: \"handleAdvanceModal\",\n hide: false,\n },\n {\n key: \"startSimulation\",\n name: \"AdvanceSimulationModal:startSimulation\",\n action: \"handleAdvanceModal\",\n hide: true,\n },\n {\n key: \"standings\",\n name: \"standings\",\n action: \"standingsAction\",\n hide: false,\n },\n {\n key: \"registeredStudents\",\n name: \"registeredStudents\",\n action: \"registeredStudentsAction\",\n hide: false,\n },\n {\n key: \"shareSimulation\",\n name: \"shareSimulation\",\n action: \"handleShareModal\",\n hide: false,\n },\n {\n key: \"back\",\n name: \"Common:back\",\n action: \"backAction\",\n hide: false,\n },\n];\n\nexport default ActionButtons;\n","import React from \"react\";\nimport \"./SimulationDetailStyles.css\";\n\nconst SimulationTitle = (props) => {\n return (\n
\n

{props.title}

\n \n
\n );\n};\n\nexport default SimulationTitle;\n","import React, { Component } from \"react\";\nimport { List, Image } from \"semantic-ui-react\";\nimport creambowLogo from \"../../assets/creambow-logo.png\";\nimport SimulationTitle from \"./SimulationTitle\";\nimport HelpHoverComponent from \"../helpers/HelpHoverComponent\";\n\nclass CreambowDetailComponent extends Component {\n render() {\n const translate = this.props.translate;\n const simulationDetails = this.props.simulationDetails;\n const loadingDetails = this.props.loadingDetails;\n let detailBoxStyles = \"detailsDataLoading\";\n let listDetails = [];\n\n if (!loadingDetails && simulationDetails) {\n detailBoxStyles = \"detailsDataCharged\";\n listDetails = [\n {\n item: translate(\"Common:status\"),\n content: translate(`Common:${simulationDetails.status}`),\n },\n {\n item: translate(\"Common:currentDay\"),\n content: simulationDetails.currentSimulationDay,\n },\n ];\n } else {\n listDetails = [{ key: 1, item: translate(\"Common:status\"), content: \"\" }];\n }\n\n return (\n
\n \n
\n
\n \n
\n
\n

{translate(\"simulationDetails\").toUpperCase()}

\n \n {listDetails.map((detail, index) => {\n if (!detail.content) return null;\n let helpHoverComponent = null;\n if (detail.hasHelp) {\n helpHoverComponent = ;\n }\n return (\n \n {loadingDetails === true ? (\n
\n ) : (\n
\n {detail.item}: \n {detail.content}\n {helpHoverComponent}\n
\n )}\n \n );\n })}\n \n
\n
\n
\n );\n }\n}\n\nexport default CreambowDetailComponent;\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"semantic-ui-react\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport { withTranslation } from \"react-i18next\";\nimport { compose } from \"redux\";\nimport { creambowAdvanceSimulation, creambowResetRequestsState } from \"../../store/CreambowSimulationDetails/actions\";\nimport { connect } from \"react-redux\";\n\nclass AdvanceSimulationModal extends Component {\n advanceSimulation = () => {\n const advanceParams = { simulationId: this.props.simulationDetails.id };\n this.props.creambowAdvanceSimulation(advanceParams);\n };\n\n handleClose = () => {\n this.props.creambowResetRequestsState();\n this.props.handleAdvanceModal();\n };\n\n successAction = () => {\n this.props.getSimulationDetails(this.props.simulationDetails.id);\n this.handleClose();\n };\n\n render() {\n const translate = this.props.t;\n const { loading, errorMessage, success, failedTeams } = this.props.advanceSimulationRequestStatus;\n\n let oncloseFunction = this.handleClose;\n let statusComponent = null;\n let buttonContent = translate(\"AdvanceSimulationModal:advance\");\n let customSuccessMessage = translate(\"AdvanceSimulationModal:Simulation advanced successfully.\");\n let titleText = translate(`AdvanceSimulationModal:advanceSimulation`);\n\n if (this.props.simulationDetails.status === \"AwaitingInitialization\") {\n buttonContent = translate(\"AdvanceSimulationModal:start\");\n titleText = translate(`AdvanceSimulationModal:startSimulation`);\n } else if (\n this.props.simulationDetails.status === \"Initialized\" ||\n this.props.simulationDetails.status === \"Running\"\n ) {\n statusComponent = (\n
\n

{translate(\"AdvanceMessage\")}

\n
\n );\n }\n\n let actionButtons = (\n \n \n
\n \n \n {actionButtons}\n \n \n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n creambowGetSimulationDetails: (simulationId) => dispatch(creambowGetSimulationDetails(simulationId)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n creambowSimulationDetails: state.creambowSimulationDetails.simulationDetails,\n creambowSimulationDetailsRequestStatus: state.creambowSimulationDetails.simulationDetailsRequestStatus,\n language: state.user.userProfile.language,\n };\n};\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\n \"MedicaDetailScreen\",\n \"CrisisDetailScreen\",\n \"ModifyModal\",\n \"ShareModal\",\n \"MedicaAdvancedOptions\",\n \"Common\"\n ),\n withRouter\n);\n\nexport default HOC(CreambowDetail);\n","import _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { Table } from \"semantic-ui-react\";\n\nclass RegisteredStudentsComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n column: null,\n registeredStudentList: props.simulationRegisteredStudents,\n direction: null,\n };\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, registeredStudentList, direction } = this.state;\n if (column !== clickedColumn) {\n this.setState({\n column: clickedColumn,\n registeredStudentList: _.sortBy(registeredStudentList, [clickedColumn]),\n direction: \"ascending\",\n });\n return;\n }\n this.setState({\n registeredStudentList: registeredStudentList.reverse(),\n direction: direction === \"ascending\" ? \"descending\" : \"ascending\",\n });\n };\n\n render() {\n const translate = this.props.translate;\n const { column, direction, registeredStudentList } = this.state;\n const arrowsIcon = ;\n const teamsAssigned = registeredStudentList.some((x) => x.team?.length > 0);\n return (\n
(this.topTable = ref)}>\n

{`${translate(\"registeredStudentsOf\")}: ${registeredStudentList.length}`}

\n \n \n \n {teamsAssigned ? (\n \n
\n {translate(\"Common:team\").toUpperCase()}\n {arrowsIcon}\n
\n
\n ) : null}\n \n
\n {translate(\"name\").toUpperCase()}\n {arrowsIcon}\n
\n
\n \n
\n {translate(\"email\").toUpperCase()}\n {arrowsIcon}\n
\n
\n
\n
\n \n {registeredStudentList.map((student) => {\n return (\n \n {teamsAssigned ? {student.team} : null}\n {`${student.studentFirstName} ${student.studentLastName}`}\n {student.email}\n \n );\n })}\n \n
\n
\n );\n }\n}\n\nexport default RegisteredStudentsComponent;\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { Container } from \"semantic-ui-react\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { getStorage } from \"../../services/StorageService\";\nimport { creambowGetRegisteredStudents } from \"../../store/CreambowSimulationDetails/actions\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport RegisteredStudentsComponent from \"./RegisteredStudentsComponent\";\n\nclass CreambowRegisteredStudents extends Component {\n state = {\n requestedSimulationName: getUrlSearchParam(),\n };\n\n componentDidMount() {\n const requestedSimulationId = getStorage(LOCALSTORAGE.requestedSimulation);\n this.props.getRegisteredStudents(requestedSimulationId);\n }\n\n render() {\n const translate = this.props.t;\n const registeredStudentsStatus = this.props.registeredStudentsRequestStatus;\n let body = (\n \n );\n\n if (!registeredStudentsStatus.success) {\n body = ;\n }\n if (registeredStudentsStatus.loading) {\n body = ;\n }\n\n return (\n \n \n \n {body}\n \n );\n }\n}\n\nconst mapDispatchToProps = (dispatch) => ({\n getRegisteredStudents: (simulationId) => dispatch(creambowGetRegisteredStudents(simulationId)),\n});\n\nconst mapStateToProps = (state) => {\n return {\n registeredStudentsRequestStatus: state.creambowSimulationDetails.registeredStudents,\n language: state.user.userProfile.language,\n };\n};\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation(\"RegisteredStudentsScreen\", \"Common\"),\n withRouter\n);\n\nexport default HOC(CreambowRegisteredStudents);\n","import { faChevronDown, faChevronRight, faSort } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport _ from \"lodash\";\nimport memoizeOne from \"memoize-one\";\nimport React, { PureComponent } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport { compose } from \"redux\";\nimport { Container, Table } from \"semantic-ui-react\";\nimport { getUrlSearchParam } from \"../../services/NavigationService\";\nimport { creambowGetSimulationStandings } from \"../../store/CreambowSimulationDetails/actions\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport \"./creambowStandings.css\";\nimport { getStorage } from \"../../services/StorageService\";\nimport * as LOCALSTORAGE from \"../../constants/LocalStorage\";\n\nexport class creambowStandings extends PureComponent {\n state = {\n expandedRows: [],\n requestedSimulationName: getUrlSearchParam(),\n column: null,\n direction: null,\n };\n\n componentDidMount() {\n const requestedSimulationId = getStorage(LOCALSTORAGE.requestedSimulation);\n this.props.creambowGetSimulationStandings(requestedSimulationId);\n }\n\n handleSort = (clickedColumn) => () => {\n const { column, direction } = this.state;\n let newColumn = clickedColumn;\n let newDirection = null;\n\n if (column !== clickedColumn) {\n newDirection = \"asc\";\n }\n\n if (column === clickedColumn && direction === \"asc\") {\n newDirection = \"desc\";\n }\n\n if (column === clickedColumn && direction === \"desc\") {\n newColumn = null;\n newDirection = null;\n }\n\n this.setState({\n column: newColumn,\n direction: newDirection,\n });\n };\n\n handleRowClick(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n const newExpandedRows = isRowCurrentlyExpanded\n ? currentExpandedRows.filter((id) => id !== rowId)\n : currentExpandedRows.concat(rowId);\n\n this.setState({ expandedRows: newExpandedRows });\n }\n\n renderItem(item) {\n const translate = this.props.t;\n const clickCallback = () => this.handleRowClick(item.position);\n const itemRows = [\n \n {this.renderItemCaret(item.position)}\n {item.position}\n {item.teamName}\n $ {item.cash.toFixed(2)}\n ,\n ];\n\n if (this.state.expandedRows.includes(item.position)) {\n itemRows.push(\n \n \n \n \n \n \n {translate(\"Team Member\")}\n \n {translate(\"Email\")}\n \n \n {item.teamMembers.students.map(this.renderItemDetails.bind(this))}\n
\n
\n
\n );\n }\n\n return itemRows;\n }\n\n renderItemCaret(rowId) {\n const currentExpandedRows = this.state.expandedRows;\n const isRowCurrentlyExpanded = currentExpandedRows.includes(rowId);\n\n if (isRowCurrentlyExpanded) {\n return ;\n } else {\n return ;\n }\n }\n\n renderItemDetails(item, index) {\n return (\n \n \n {item.name}\n \n\n \n {item.email}\n \n \n );\n }\n\n standingsTableData = (teamStandings, teamMembersList) => {\n const standingsTable = [];\n\n teamStandings.forEach((element) => {\n const teamName = element.teamName;\n const teamMembers = teamMembersList.find((x) => x.teamName === teamName);\n standingsTable.push({\n position: element.position,\n teamName,\n cash: element.cash,\n teamMembers,\n });\n });\n return standingsTable;\n };\n\n memoizedStandingsTableData = memoizeOne(this.standingsTableData);\n\n render() {\n const translate = this.props.t;\n const standingsState = this.props.standings;\n\n let bodyContent;\n let sortedStandingsData;\n\n if (standingsState.success) {\n const standingsTableData = this.memoizedStandingsTableData(\n standingsState.simulationStandings,\n standingsState.teamMembers\n );\n\n sortedStandingsData = standingsTableData;\n if (this.state.column && this.state.direction) {\n sortedStandingsData = _.orderBy(standingsTableData, [this.state.column], this.state.direction);\n }\n }\n\n if (standingsState.success && sortedStandingsData.length > 0) {\n const standingsTableRows = sortedStandingsData.map(this.renderItem.bind(this));\n const arrowsIcon = ;\n\n bodyContent = (\n \n \n \n \n \n <>\n {translate(\"Position\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"Team\")}\n {arrowsIcon}\n \n \n \n <>\n {translate(\"Total\")}\n {arrowsIcon}\n \n \n \n \n {standingsTableRows}\n
\n );\n }\n\n if (standingsState.success && sortedStandingsData.length === 0) {\n bodyContent = ;\n }\n\n if (standingsState.loading) {\n bodyContent = ;\n }\n\n if (!standingsState.loading && !standingsState.success) {\n bodyContent = ;\n }\n\n return (\n \n \n \n {bodyContent}\n \n );\n }\n}\nconst mapStateToProps = (state) => ({\n standings: state.creambowSimulationDetails.standings,\n simulationId: state.creambowSimulationDetails.simulationDetails.id,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n creambowGetSimulationStandings: (simulationId) => dispatch(creambowGetSimulationStandings(simulationId)),\n});\n\nconst HOC = compose(\n connect(mapStateToProps, mapDispatchToProps),\n withTranslation([\"CrisisStandings\", \"StandingsScreen\", \"Common\"]),\n withRouter\n);\n\nexport default HOC(creambowStandings);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { Container, Menu, Message, Popup, Tab, Table } from \"semantic-ui-react\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport LoadingComponent from \"../helpers/LoadingComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport \"./decisionHistory.css\";\n\nconst dateOptions = {\n weekday: \"short\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: \"true\",\n};\n\nexport class DecisionHistory extends Component {\n formatDate(dateText) {\n const { i18n } = this.props;\n\n const dateNumber = Date.parse(dateText);\n return new Date(dateNumber).toLocaleString(i18n.language, dateOptions);\n }\n\n renderDecisionTable = (decisions) => {\n const { t } = this.props;\n if (decisions.length === 0) {\n return {t(\"noChangesYet\")};\n }\n\n return (\n \n \n \n {t(\"userName\")}\n {t(\"description\")}\n {t(\"timeSubmitted\")}\n {t(\"simulationDay\")}\n \n \n {decisions.map((x, index) => (\n \n {x.userFullName}\n {x.description}\n {this.formatDate(x.timeSubmitted)}\n {x.simulationDay}\n \n ))}\n
\n );\n };\n\n renderMenuItem = (menuTitle) => {\n const numberOfLetters = 20;\n let menuItemContent = menuTitle;\n if (menuTitle.length > numberOfLetters) {\n menuItemContent = (\n {`${menuTitle.substring(0, numberOfLetters - 1).trim()}...`}}\n />\n );\n }\n\n return {menuItemContent};\n };\n\n render() {\n const { t, simulationName, decisionHistoryStatus } = this.props;\n const { decisionHistory } = decisionHistoryStatus;\n\n const panes = Object.keys(decisionHistory).map((x) => ({\n menuItem: this.renderMenuItem(x),\n render: () => {this.renderDecisionTable(decisionHistory[x])},\n }));\n return (\n \n \n \n {decisionHistoryStatus.loading ? : null}\n {decisionHistoryStatus.outcome === false ? (\n \n ) : null}\n {decisionHistoryStatus.outcome ? (\n \n ) : null}\n \n );\n }\n}\n\nexport default withTranslation(\"DecisionHistory\")(DecisionHistory);\n","import React, { Component } from \"react\";\nimport { withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport { medicaGetDecisionHistory } from \"../../store/Medica/actions\";\nimport DecisionHistory from \"./DecisionHistory\";\n\nclass MedicaDecisionHistory extends Component {\n state = {\n simulationName: \"\",\n };\n\n async componentDidMount() {\n const params = new URLSearchParams(window.location.search);\n const simulationName = params.has(\"simulationName\") ? params.get(\"simulationName\") : \"\";\n const language = params.has(\"language\") ? params.get(\"language\") : \"en\";\n\n await this.props.getDecisionHistory(simulationName, language);\n this.setState({ simulationName });\n }\n\n render() {\n const { simulationName } = this.state;\n const { decisionHistoryStatus } = this.props;\n\n return ;\n }\n}\n\nconst mapStateToProps = (state) => ({\n decisionHistoryStatus: state.medica.decisionHistoryStatus,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n getDecisionHistory: (simulationName, language) => dispatch(medicaGetDecisionHistory(simulationName, language)),\n});\n\nconst HOC = compose(connect(mapStateToProps, mapDispatchToProps), withTranslation());\n\nexport default HOC(MedicaDecisionHistory);\n","import MedicaDecisionHistory from \"./MedicaDecisionHistory\";\n\nexport default MedicaDecisionHistory;\n","export const faq = {\n Medica: {\n image: \"/assets/medica-logo-transparent.png\",\n avatarBackgroundColor: \"#FFFFFF\",\n faq: [\n {\n section: \"Create Simulation\",\n question: {\n en: \"Where can I choose the scenario I want my students to play?\",\n es: \"¿Dónde puedo elegir el escenario que quiero que jueguen mis alumnos?\",\n },\n answer: {\n en: 'When setting up your simulation, in the same screen were you give it a name, click where it says \"Advanced Options\" and scroll down a bit. You should be able to see all of the scenarios available to you.',\n es: 'Al configurar su simulación, en la misma pantalla le dio un nombre, haga clic donde dice \"Opciones avanzadas\" y desplácese hacia abajo un poco. Debería poder ver todos los escenarios disponibles para usted.',\n },\n },\n {\n section: \"Create Simulation\",\n question: {\n en: \"I chose the wrong dates for my simulation.\",\n es: \"Elegí las fechas incorrectas para mi simulación.\",\n },\n answer: {\n en: 'You can change the selected dates from the Simulation Details view of that simulation by clicking \"Modify\" in the right hand side menu. You are only able to do so if the current simulation start time is at least one hour away.',\n es: 'Puede cambiar las fechas seleccionadas de la vista Detalles de simulación de esa simulación haciendo clic en \"Modificar\" en el menú del lado derecho. Solo puede hacerlo si la hora de inicio de simulación actual está al menos a una hora de distancia.',\n },\n },\n {\n section: \"Create Simulation\",\n question: { en: \"Can I delete a team or simulation?\", es: \"¿Puedo eliminar un equipo o simulación?\" },\n answer: {\n en: \"Contact us at support@processimlabs.com with the name of the team or simulation you want deleted and we will be happy to help you with that.\",\n es: \"Contáctenos en support@processimlabs.com con el nombre del equipo o la simulación que desea eliminar y estaremos encantados de ayudarlo con eso.\",\n },\n },\n {\n section: \"Create Simulation\",\n question: {\n en: \"I chose the wrong scenario for my simulation.\",\n es: \"Elegí el escenario incorrecto para mi simulación.\",\n },\n answer: {\n en: \"Unfortunately you/we cannot change the scenario of a simulation. You create a new simulation with the correct scenario and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, usted/no podemos cambiar el escenario de una simulación. Usted crea una nueva simulación con el escenario correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Create Simulation\",\n question: { en: \"Can I change the name of a simulation?\", es: \"¿Puedo cambiar el nombre de una simulación?\" },\n answer: {\n en: \"Unfortunately you/we cannot change the name of a simulation. You create a new simulation with the correct name and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, usted/no podemos cambiar el nombre de una simulación. Usted crea una nueva simulación con el nombre correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Create Simulation\",\n question: {\n en: \"I chose the wrong game mode (Manual vs Automatic).\",\n es: \"Elegí el modo de juego incorrecto (manual vs automático).\",\n },\n answer: {\n en: \"Unfortunately you/we cannot change the game mode of a simulation. You create a new simulation with the correct game mode and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, usted/no podemos cambiar el modo de juego de una simulación. Creas una nueva simulación con el modo de juego correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Create Simulation\",\n question: {\n en: \"I want to modify the scenario I chose last time.\",\n es: \"Quiero modificar el escenario que elegí la última vez.\",\n },\n answer: {\n en: 'When setting up your simulation, in the same screen were you give it a name, click where it says \"Advanced Options\" and scroll down a bit. From there, you can enable the \"Add variation\" feature that slightly adds small variations to your chosen scenario in case you want the scenario to be slightly but not significantly different from the last time you used it.',\n es: 'Al configurar su simulación, en la misma pantalla le dio un nombre, haga clic donde dice \"Opciones avanzadas\" y desplácese hacia abajo un poco. A partir de ahí, puede habilitar la función \"Agregar variación\" que agrega pequeñas variaciones al escenario elegido en caso de que desee que el escenario sea ligeramente pero no significativamente diferente de la última vez que lo usó.',\n },\n },\n {\n section: \"Simulation Details\",\n question: {\n en: \"Can I use the same documents from the last time I played?\",\n es: \"¿Puedo usar los mismos documentos de la última vez que jugué?\",\n },\n answer: {\n en: \"Our plaform automatically generates the documentation for each simulation depending on the scenario that you selected. We recommend to always download the documentation created for your specific simulation. \",\n es: \"Nuestro PlaForm genera automáticamente la documentación para cada simulación dependiendo del escenario que seleccionó. Recomendamos siempre descargar la documentación creada para su simulación específica.\",\n },\n },\n {\n section: \"Simulation Details\",\n question: {\n en: \"How do I set up the second run for my simulation?\",\n es: \"¿Cómo configuré la segunda ejecución para mi simulación?\",\n },\n answer: {\n en: 'Go to the Simulation Details view of the first simulation run and click where it says \"Run Again\". Remember that you will only be able to configure the second run after the first one has started. It is important that all students are registered to the first run before you set up the second run as our platform will copy all registered students from the first run into the second one.',\n es: 'Vaya a la vista Detalles de simulación de la primera ejecución de simulación y haga clic donde dice \"Ejecutar nuevamente\". Recuerde que solo podrá configurar la segunda ejecución después de que haya comenzado la primera. Es importante que todos los estudiantes estén registrados en la primera ejecución antes de configurar la segunda ejecución, ya que nuestra plataforma copiará a todos los estudiantes registrados desde la primera ejecución con la segunda.',\n },\n },\n {\n section: \"Simulation Details\",\n question: {\n en: \"A student didn't join the first run of the simulation in time, can still I have them play the second run? \",\n es: \"Un estudiante no se unió a la primera ejecución de la simulación a tiempo, ¿puede someterme a que jueguen la segunda carrera?\",\n },\n answer: {\n en: 'Yes you can. You will need to first set up the second simulation run. Go to the Simulation Details view of the second simulation run. If you want the student to create a new team, share the link found by clicking \"Share Simulation\". If you want the student to join an existing team, go to \"Standings\", share the link that you\\'ll find next to the team you want them to join.',\n es: 'Sí tu puedes. Primero deberá configurar la segunda ejecución de simulación. Vaya a la vista Detalles de simulación de la segunda ejecución de simulación. Si desea que el estudiante cree un nuevo equipo, comparta el enlace que se encuentra haciendo clic en \"Simulación de compartir\". Si desea que el estudiante se una a un equipo existente, vaya a \"clasificación\", comparta el enlace que encontrará junto al equipo al que desea que se unan.',\n },\n },\n {\n section: \"Student FAQ\",\n question: {\n en: \"Please direct your students to our student FAQ.\",\n es: \"Dirija a sus alumnos a nuestras preguntas frecuentes para estudiantes.\",\n },\n answer: {\n en: \"Link to Student FAQ: {studentFaq}\",\n es: \"Enlace a las preguntas frecuentes del estudiante: {studentFaq}\",\n },\n },\n ],\n },\n Simunation: {\n image: \"/assets/simunation-logo.png\",\n avatarBackgroundColor: \"#7E217E\",\n faq: [\n {\n section: \"Create Simulation\",\n question: {\n en: \"I chose the wrong number of students when creating the simulation.\",\n es: \"Elegí el número incorrecto de estudiantes al crear la simulación.\",\n },\n answer: { en: \"Contact us at support@processimlabs.com\", es: \"Contáctenos en support@processimlabs.com\" },\n },\n {\n section: \"Advance Simulation\",\n question: {\n en: \"I am getting an error when I try to advance the simulation.\",\n es: \"Recibo un error cuando intento avanzar en la simulación.\",\n },\n answer: {\n en: \"Ask students not to make any changes in the simulation for a moment as you try again.\",\n es: \"Pídale a los estudiantes que no realicen cambios en la simulación por un momento mientras lo intenta nuevamente.\",\n },\n },\n {\n section: \"Advance Simulation\",\n question: { en: \"I can't advance the simulation.\", es: \"No puedo avanzar en la simulación.\" },\n answer: {\n en: 'You may have chosen a different game mode. If you can\\'t see the option \"Advance Simulation\" on the right hand side menu in the \"Simulation Details\" view you likely selected the game mode in which each one of the teams in your simulation can each control the progress of their simulation. ',\n es: 'Es posible que hayas elegido un modo de juego diferente. Si no puede ver la opción \"Simulación avanzada\" en el menú del lado de la mano derecha en la vista \"Detalles de simulación\" que probablemente seleccionó el modo de juego en el que cada uno de los equipos en su simulación puede controlar el progreso de su simulación.',\n },\n },\n {\n section: \"Student FAQ\",\n question: {\n en: \"Please direct your students to our student FAQ.\",\n es: \"Dirija a sus alumnos a nuestras preguntas frecuentes para estudiantes.\",\n },\n answer: {\n en: \"Link to Student FAQ: {studentFaq}\",\n es: \"Enlace a las preguntas frecuentes del estudiante: {studentFaq}\",\n },\n },\n ],\n },\n Bindz: {\n image: \"/assets/crisis-logo.png\",\n avatarBackgroundColor: \"#18B1B9\",\n faq: [\n {\n section: \"Create Simulation\",\n question: {\n en: \"Can I change the selected dates or times for my simulation?\",\n es: \"¿Puedo cambiar las fechas o tiempos seleccionados para mi simulación?\",\n },\n answer: {\n en: 'You can change the selected dates/times from the Simulation Details view of that simulation by clicking \"Modify\" in the right hand side menu. You are only able to do so if the current simulation start time is at least one hour away.',\n es: 'Puede cambiar las fechas/tiempos seleccionadas desde la vista Detalles de simulación de esa simulación haciendo clic en \"Modificar\" en el menú del lado derecho. Solo puede hacerlo si la hora de inicio de simulación actual está al menos a una hora de distancia.',\n },\n },\n {\n section: \"Create Simulation\",\n question: {\n en: \"I chose the wrong scenario for my simulation.\",\n es: \"Elegí el escenario incorrecto para mi simulación.\",\n },\n answer: {\n en: \"Unfortunately you/we cannot change the scenario of a simulation. You create a new simulation with the correct scenario and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, usted/no podemos cambiar el escenario de una simulación. Usted crea una nueva simulación con el escenario correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Create Simulation\",\n question: { en: \"Can I change the name of a simulation?\", es: \"¿Puedo cambiar el nombre de una simulación?\" },\n answer: {\n en: \"Unfortunately you/we cannot change the name of a simulation. You can create a new simulation with the correct name and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, no es posible cambiar el nombre de una simulación. Usted puede crear una nueva simulación con el nombre correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Create Simulation\",\n question: {\n en: \"I chose the wrong game mode (Manual vs Automatic).\",\n es: \"Elegí el modo de juego incorrecto (manual vs automático).\",\n },\n answer: {\n en: \"Unfortunately you/we cannot change the game mode of a simulation. You create a new simulation with the correct game mode and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, usted/no podemos cambiar el modo de juego de una simulación. Creas una nueva simulación con el modo de juego correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Student FAQ\",\n question: {\n en: \"Please direct your students to our student FAQ.\",\n es: \"Dirija a sus alumnos a nuestras preguntas frecuentes para estudiantes.\",\n },\n answer: {\n en: \"Link to Student FAQ: {studentFaq}\",\n es: \"Enlace a las preguntas frecuentes del estudiante: {studentFaq}\",\n },\n },\n ],\n },\n SupplyGrain: {\n image: \"/assets/supplychain-logo.png\",\n avatarBackgroundColor: \"#006F5D\",\n faq: [\n {\n section: \"Create Simulation\",\n question: {\n en: \"Can I change the selected dates or times for my simulation?\",\n es: \"¿Puedo cambiar las fechas o tiempos seleccionados para mi simulación?\",\n },\n answer: {\n en: 'You can change the selected dates/times from the Simulation Details view of that simulation by clicking \"Modify\" in the right hand side menu. You are only able to do so if the current simulation start time is at least one hour away.',\n es: 'Puede cambiar las fechas/tiempos seleccionadas desde la vista Detalles de simulación de esa simulación haciendo clic en \"Modificar\" en el menú del lado derecho. Solo puede hacerlo si la hora de inicio de simulación actual está al menos a una hora de distancia.',\n },\n },\n {\n section: \"Create Simulation\",\n question: {\n en: \"I chose the wrong scenario for my simulation.\",\n es: \"Elegí el escenario incorrecto para mi simulación.\",\n },\n answer: {\n en: \"Unfortunately you/we cannot change the scenario of a simulation. You create a new simulation with the correct scenario and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, usted/no podemos cambiar el escenario de una simulación. Usted crea una nueva simulación con el escenario correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Create Simulation\",\n question: { en: \"Can I change the name of a simulation?\", es: \"¿Puedo cambiar el nombre de una simulación?\" },\n answer: {\n en: \"Unfortunately you/we cannot change the name of a simulation. You create a new simulation with the correct name and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, usted/no podemos cambiar el nombre de una simulación. Usted crea una nueva simulación con el nombre correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Create Simulation\",\n question: {\n en: \"I chose the wrong game mode (Manual vs Automatic).\",\n es: \"Elegí el modo de juego incorrecto (manual vs automático).\",\n },\n answer: {\n en: \"Unfortunately you/we cannot change the game mode of a simulation. You create a new simulation with the correct game mode and contact us at support@processimlabs.com with the name of the other simulation for us to delete it.\",\n es: \"Desafortunadamente, usted/no podemos cambiar el modo de juego de una simulación. Creas una nueva simulación con el modo de juego correcto y contáctenos a support@processimlabs.com con el nombre de la otra simulación para que lo eliminemos.\",\n },\n },\n {\n section: \"Simulation Details\",\n question: {\n en: \"How do I set up the second run for my simulation?\",\n es: \"¿Cómo configuré la segunda ejecución para mi simulación?\",\n },\n answer: {\n en: 'Go to the Simulation Details view of the first simulation run and click where it says \"Run Again\". Remember that you will only be able to configure the second run after the first one has started. It is important that all students are registered to the first run before you set up the second run as our platform will copy all registered students from the first run into the second one.',\n es: 'Vaya a la vista Detalles de simulación de la primera ejecución de simulación y haga clic donde dice \"Ejecutar nuevamente\". Recuerde que solo podrá configurar la segunda ejecución después de que haya comenzado la primera. Es importante que todos los estudiantes estén registrados en la primera ejecución antes de configurar la segunda ejecución, ya que nuestra plataforma copiará a todos los estudiantes registrados desde la primera ejecución con la segunda.',\n },\n },\n {\n section: \"Student FAQ\",\n question: {\n en: \"Please direct your students to our student FAQ.\",\n es: \"Dirija a sus alumnos a nuestras preguntas frecuentes para estudiantes.\",\n },\n answer: {\n en: \"Link to Student FAQ: {studentFaq}\",\n es: \"Enlace a las preguntas frecuentes del estudiante: {studentFaq}\",\n },\n },\n ],\n },\n};\n\nexport const studentFaq = {\n Medica: {\n image: \"/assets/medica-logo-transparent.png\",\n avatarBackgroundColor: \"#FFFFFF\",\n faq: [\n {\n section: \"Login\",\n question: { en: \"I can't log in.\", es: \"No puedo iniciar sesión.\" },\n answer: {\n en: \"Check if you typing your email and password correctly. You can also reset your password or contact us at support@processimlabs.com if none of this works.\",\n es: \"Verifique haber escrito su correo electrónico y contraseña correctamente. También puede restablecer su contraseña o contactarnos en support@processimlabs.com si ninguna de las dos opciones funciona.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"The app is telling me I have no simulations.\",\n es: \"La aplicación me dice que no tengo simulaciones.\",\n },\n answer: {\n en: \"Make sure you downloaded the correct mobile app, we have several. Also, remember that when logging in to our app, you should be using the same email/password you chose when you created your account on our website.\",\n es: \"Asegúrese de descargar la aplicación móvil correcta, tenemos varias. Además, recuerde que al iniciar sesión en nuestra aplicación, debe usar el mismo correo electrónico/contraseña que eligió cuando creó su cuenta en nuestro sitio web.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"I can't find the app in my phone's app store.\",\n es: \"No puedo encontrar la aplicación en la tienda de aplicaciones de mi teléfono.\",\n },\n answer: {\n en: \"You can use the links shown after you join the simulation to be directed directly to your phone's app store. If you still can't see it your device may not be supported.\",\n es: \"Puede usar los enlaces que se muestran después de unirse a la simulación para dirigirse directamente a la App Store de su teléfono. Si aún no puede verlo, su dispositivo no será compatible.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"I already have an account with Processim Labs, do I need to create a new one?\",\n es: \"Ya tengo una cuenta con Processim Labs, ¿necesito crear una nueva?\",\n },\n answer: {\n en: \"No need, you can use your existing account. \",\n es: \"No hay necesidad, puede usar su cuenta existente.\",\n },\n },\n {\n section: \"Login\",\n question: { en: \"I forgot my password.\", es: \"Olvidé mi contraseña.\" },\n answer: {\n en: 'Just click the \"Forgot it?\" link in the login page and follow the steps.',\n es: 'Simplemente haga clic en el enlace \"¿La Olvidé?\" en la página de inicio de sesión y siga los pasos.',\n },\n },\n {\n section: \"Create Account\",\n question: {\n en: \"My email is already linked to an account.\",\n es: \"Mi correo electrónico ya está vinculado a una cuenta.\",\n },\n answer: {\n en: \"This is likely because you played another Processim Labs simulation in the past. In this case there is no need to create a new account, you can just log in to your existing one.\",\n es: \"Esto es probable porque jugaste otra simulación de Processim Labs en el pasado. En este caso, no hay necesidad de crear una nueva cuenta, puede iniciar sesión en su cuenta existente.\",\n },\n },\n {\n section: \"Create Account\",\n question: { en: \"I misspelled my email.\", es: \"Escribí mal mi correo electrónico.\" },\n answer: {\n en: \"You can play with a misspelled email no problem (if you remember how you misspelled it) or contact us at support@processimlabs.com so that we can further assist you.\",\n es: \"Puede jugar con un correo electrónico mal escrito sin problema (si recuerda cómo lo deletreó) o contáctenos a support@processimlabs.com.com para que podamos ayudarlo aún más.\",\n },\n },\n {\n section: \"Create Team\",\n question: { en: \"How do I join a simulation?\", es: \"¿Cómo unirse a una simulación?\" },\n answer: {\n en: \"You need to use the link that your professor shared or will share with you. \",\n es: \"Debe usar el enlace que su profesor compartió o compartirá con usted.\",\n },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"Can I join a simulation that is already over?\",\n es: \"¿Puedo unir a una simulación que ya ha terminado?\",\n },\n answer: {\n en: \"You cannot join a simulation that is already over. If your class will be playing a second run of the simulation, contact your professor in order to get the a link to join it.\",\n es: \"No puede unirse a una simulación que ya ha terminado. Si su clase jugará una segunda ejecución de la simulación, comuníquese con su profesor para obtener el enlace para unirse.\",\n },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"Can I join a simulation that already started?\",\n es: \"¿Puedo unir a una simulación que ya comenzó?\",\n },\n answer: { en: \"Yes, not a problem.\", es: \"Sí, no es un problema.\" },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"Where can I find the link I need to share with my teammates?\",\n es: \"¿Dónde puedo encontrar el enlace que necesito compartir con mis compañeros de equipo?\",\n },\n answer: {\n en: \"We sent an email with the link to the email address you used when creating your account. Your professor also has access to this link from their account on our website, you can request the link from them as well.\",\n es: \"Enviamos un correo electrónico con el enlace a la dirección de correo electrónico que utilizó al crear su cuenta. Su profesor también tiene acceso a este enlace desde su cuenta en nuestro sitio web, también puede solicitar el enlace.\",\n },\n },\n {\n section: \"Create Team\",\n question: { en: \"Can I change my team name?\", es: \"¿Puedo cambiar el nombre de mi equipo?\" },\n answer: {\n en: \"No, thats not possible. Choose your team name wisely.\",\n es: \"No, eso no es posible. Elija sabiamente el nombre de su equipo.\",\n },\n },\n {\n section: \"Create Team\",\n question: { en: \"Can I created another team?\", es: \"¿Puedo crear otro equipo?\" },\n answer: {\n en: \"You cannot. Another team member can create a new team and you can then join it.\",\n es: \"No puedes. Otro miembro del equipo puede crear un nuevo equipo y luego puede unirse a él.\",\n },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"The link that was shared with me is not working.\",\n es: \"El enlace que se compartió conmigo no está funcionando.\",\n },\n answer: {\n en: \"Doble check that you are using the correct link. It should look like https://medicascientific.app/XXXX\",\n es: \"Verifique que esté utilizando el enlace correcto. Debería parecerse a https://medicascientific.app/xxxx\",\n },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"I'm in the wrong team, can I change teams?\",\n es: \"Estoy en el equipo equivocado, ¿puedo cambiar equipos?\",\n },\n answer: {\n en: \"Yes you can. Get the team link from the team you want to join, click it and log in to your account.\",\n es: \"Sí tu puedes. Obtenga el enlace del equipo del equipo al que desea unirse, haga clic en él e inicie sesión con su cuenta.\",\n },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"I created my account directly on your website without using a simulation link.\",\n es: \"Creé mi cuenta directamente en su sitio web sin usar un enlace de simulación.\",\n },\n answer: {\n en: \"Not a problem! Click on the simulation link shared by your professor and then log in to your account.\",\n es: \"¡No es un problema! Haga clic en el enlace de simulación compartido por su profesor y luego inicie sesión en su cuenta.\",\n },\n },\n {\n section: \"Join Team\",\n question: { en: \"How do I join a team?\", es: \"¿Cómo unirme a un equipo?\" },\n answer: {\n en: \"Wait for your team leader to create the team and share the team link with you. Click the link shared and follow the steps on our website.\",\n es: \"Espere a que el líder de su equipo cree el equipo y comparta el enlace del equipo con usted. Haga clic en el enlace compartido y siga los pasos de nuestro sitio web.\",\n },\n },\n {\n section: \"Join Team\",\n question: {\n en: \"I'm in the wrong team, can I change teams?\",\n es: \"Estoy en el equipo equivocado, ¿puedo cambiar equipos?\",\n },\n answer: {\n en: \"Yes you can. Get the team link from the team you want to join, click it and log in to your account.\",\n es: \"Sí tu puedes. Obtenga el enlace del equipo del equipo al que desea unirse, haga clic en él e inicie sesión en su cuenta.\",\n },\n },\n {\n section: \"Join Team\",\n question: {\n en: \"Can I join a simulation that is already over?\",\n es: \"¿Puedo unir a una simulación que ya ha terminado?\",\n },\n answer: {\n en: \"You cannot join a simulation that is already over. If your class will be playing a second run of the simulation, contact your professor in order to get the a link to join it.\",\n es: \"No puede unirse a una simulación que ya ha terminado. Si su clase reproducirá una segunda ejecución de la simulación, comuníquese con su profesor para obtener el enlace A para unirse.\",\n },\n },\n {\n section: \"Join Team\",\n question: {\n en: \"Can I join a simulation that already started?\",\n es: \"¿Puedo unir a una simulación que ya comenzó?\",\n },\n answer: { en: \"Yes, not a problem.\", es: \"Sí, no es un problema.\" },\n },\n {\n section: \"Join Team\",\n question: {\n en: \"How can I tell if I'm in the correct team?\",\n es: \"¿Cómo puedo saber si estoy en el equipo correcto?\",\n },\n answer: {\n en: \"In the main screen of our app, after you are logged it, you can find the name of the team you are currently in.\",\n es: \"En la pantalla principal de nuestra aplicación, después de registrarla, puede encontrar el nombre del equipo en el que se encuentra actualmente.\",\n },\n },\n {\n section: \"Join Team\",\n question: {\n en: \"I created my account directly on your website without using a simulation link.\",\n es: \"Creé mi cuenta directamente en su sitio web sin usar un enlace de simulación.\",\n },\n answer: {\n en: \"Not a problem! Click on the team link shared by your team leader and then log in to your account.\",\n es: \"¡No es un problema! Haga clic en el enlace del equipo compartido por el líder de su equipo y luego inicie sesión en su cuenta.\",\n },\n },\n {\n section: \"Join Team\",\n question: {\n en: \"The link that was shared with me is not working.\",\n es: \"El enlace que se compartió conmigo no está funcionando.\",\n },\n answer: {\n en: \"Doble check that you are using the correct link. It should look like https://medicascientific.app/XXXX\",\n es: \"DOBLE verifique que esté utilizando el enlace correcto. Debería parecerse a https://medicascientific.app/xxxx\",\n },\n },\n {\n section: \"Payment\",\n question: { en: \"My payment won't go through.\", es: \"Tengo problemas para pagar.\" },\n answer: {\n en: \"You may want to try with a different card and/or check if you have enough funds available. Don't hesitate to contact us on our chat if you still need help with this.\",\n es: \"Por favor pruebe con una tarjeta diferente y/o verifique si tiene suficientes fondos disponibles. No dude en contactarnos en nuestro chat si aún necesita ayuda con esto.\",\n },\n },\n {\n section: \"Gameplay\",\n question: {\n en: \"How does the simulation move forward in time?\",\n es: \"¿Cómo avanza la simulación en el tiempo?\",\n },\n answer: {\n en: \"When setting up the simulation you professor could've chosen between our Manual or Automatic modes. In Manual mode, they would control when and by how many virtual days the simulation would advance each time. In Automatic mode, the simulation will advance a set number of virtual days every hour on the dot.\",\n es: \"Al configurar la simulación, el profesor podría haber elegido entre nuestros modo manual o automático. En modo manual, el profesor controla cuándo y en cuántos días virtuales la simulación avanzaría cada vez. En modo automático, la simulación avanzará un número establecido de días virtuales cada hora en el punto.\",\n },\n },\n {\n section: \"Gameplay\",\n question: {\n en: \"The simulation advanced for everyone but mine didn't.\",\n es: \"La simulación avanzó para todos, pero la mía no lo hizo.\",\n },\n answer: {\n en: \"Check your internet connection and tapping the refresh button in the Home screen of the app. If this doesn't work contact us at support@processimlabs.com.\",\n es: \"Verifique su conexión a Internet y tocando el botón de actualización en la pantalla de inicio de la aplicación. Si esto no funciona, comuníquese con nosotros en support@processimlabs.com.\",\n },\n },\n {\n section: \"Gameplay\",\n question: {\n en: \"How can I check the Standings table?\",\n es: \"¿Cómo puedo comprobar la tabla de clasificación?\",\n },\n answer: {\n en: 'You can find the Standings table by going to the app\\'s side menu and tapping on \"Standings\".',\n es: 'Puede encontrar la tabla de clasificación yendo al menú lateral de la aplicación y aprovechando \"clasificación\".',\n },\n },\n {\n section: \"Gameplay\",\n question: { en: \"How can I change the app's language?\", es: \"¿Cómo puedo cambiar el idioma de la aplicación?\" },\n answer: {\n en: \"You can change the app's language by going to the app's side menu and tapping \\\"Settings\\\" and selecting the language of your choosing there.\",\n es: 'Puede cambiar el idioma de la aplicación desde el menú lateral de la aplicación y pulsando el botón de \"configuración\", ahi puede seleccionar el lenguaje de su preferencia.',\n },\n },\n {\n section: \"Gameplay\",\n question: {\n en: \"How can I move from a first simulation run to the second one?\",\n es: \"¿Cómo puedo pasar de una primera ejecución de simulación al segundo?\",\n },\n answer: {\n en: 'If your professor decides to setup a second simulation run for your class, you can switch from one simulation run to the next by going to the app\\'s side menu and tapping \"Settings\", tapping the \"Switch Simulation\" button there and selecting the simulation run you want to join from the list.',\n es: 'Si su profesor decide configurar una segunda ejecución de simulación para su clase, puede cambiar de una ejecución de simulación a la siguiente yendo al menú lateral de la aplicación y aprovechando la \"configuración\", tocando el botón \"Simulación de conmutación\" allí y seleccionando la ejecución de la simulación Desea unirse desde la lista.',\n },\n },\n {\n section: \"Gameplay\",\n question: {\n en: \"I didn't get my certificate at the end of the simulation.\",\n es: \"No obtuve mi certificado al final de la simulación.\",\n },\n answer: {\n en: \"The certificate is generated automatically at the end of each simulation. If you dismissed the popup by accident you can close and open the app to get the popup again. If you dismissed the popup and chose for it not to be shown again you will need to log out and back in to get the popup again.\",\n es: \"El certificado se genera automáticamente al final de cada simulación. Si descarta la ventana emergente por accidente, puede cerrar y abrir la aplicación para volver a obtener la ventana emergente. Si descartó la ventana emergente y eligió que no se muestre nuevamente, deberá iniciar sesión y volver para obtener la ventana emergente nuevamente.\",\n },\n },\n {\n section: \"Standard Line\",\n question: { en: \"I have too many Accumulated Orders.\", es: \"Tengo demasiados órdenes acumuladas.\" },\n answer: {\n en: \"Accumulated Orders happen when there is not enough raw material inventory to produce the number of units that you need to build. You may want to check your levels of Inventory.\",\n es: \"Los pedidos acumulados ocurren cuando no hay suficiente inventario de materia prima para producir el número de unidades que necesita construir. Es posible que desee verificar sus niveles de inventario.\",\n },\n },\n {\n section: \"Standard Line\",\n question: {\n en: \"How can I determine the Standard Line's demand?\",\n es: \"¿Cómo puedo determinar la demanda de la línea Standard?\",\n },\n answer: {\n en: \"Demand in the Standard Line is given by the relation between your Product Price and the Market Price. Setting your Product Price below the current Market Price will increase demand for your Standard products and vice versa. It is possible to determine price elasticity by analyzing the data in the simulation.\",\n es: \"La demanda en la línea Standard viene dada por la relación entre el precio de su producto y el precio del mercado. Establecer el precio de su producto por debajo del precio de mercado actual aumentará la demanda de sus productos Standard y viceversa. Es posible determinar la elasticidad del precio analizando los datos en la simulación.\",\n },\n },\n {\n section: \"Standard Line\",\n question: { en: \"I sold a machine but I didn't mean to.\", es: \"Vendí una máquina por accidente.\" },\n answer: {\n en: \"The sale of a machine in any of the stations is irreversible. You can purchase a new machine to replace the one you sold but remember that you sell machines at a much lower price than you buy them.\",\n es: \"La venta de una máquina en cualquiera de las estaciones es irreversible. Puede comprar una nueva máquina para reemplazar la que vendió, pero recuerde que vende máquinas a un precio mucho más bajo que los compra.\",\n },\n },\n {\n section: \"Standard Line\",\n question: {\n en: \"Does my Product Price have an influence on the Market Price?\",\n es: \"¿El precio de mi producto influye en el precio del mercado?\",\n },\n answer: {\n en: \"Market Price is the same for all teams and it does not dependent on any of the decisions made by any of the teams.\",\n es: \"El precio de mercado es el mismo para todos los equipos y no depende de ninguna de las decisiones tomadas por ninguno de los equipos.\",\n },\n },\n {\n section: \"Standard Line\",\n question: { en: \"How do Batching Stations work?\", es: \"¿Cómo funcionan las estaciones de lotes?\" },\n answer: {\n en: \"Each Batching Station has a different batch processing time. The station will start building a new batch as soon as there are enough units in the previous Queue to match your current desired Batch Size.\",\n es: \"Cada estación de lotes tiene un tiempo de procesamiento por lotes diferente. La estación comenzará a construir un nuevo lote tan pronto como haya suficientes unidades en la cola anterior para que coincida con su tamaño de lote deseado actual.\",\n },\n },\n {\n section: \"Custom Line\",\n question: { en: \"I have too many Accumulated Orders.\", es: \"Tengo demasiados órdenes acumuladas.\" },\n answer: {\n en: \"Accumulated Orders happen when there is not enough raw material inventory to produce the number of units that you need to build. You may want to check your levels of Inventory. Keep in mind that the Standard Line has priority over the Custom Line whenever when receiving Inventory.\",\n es: \"Los pedidos acumulados ocurren cuando no hay suficiente inventario de materia prima para producir el número de unidades que necesita construir. Es posible que desee verificar sus niveles de inventario. Recuerda que la línea Standard tiene prioridad sobre la línea Custom cuando al recibir el inventario.\",\n },\n },\n {\n section: \"Custom Line\",\n question: { en: \"I sold a machine but I didn't mean to.\", es: \"Vendí una máquina accidentalmente.\" },\n answer: {\n en: \"The sale of a machine in any of the stations is irreversible. You can purchase a new machine to replace the one you sold but remember that you sell machines at a much lower price than you buy them.\",\n es: \"La venta de una máquina en cualquiera de las estaciones es irreversible. Puede comprar una nueva máquina para reemplazar la que vendió, pero recuerde que vende máquinas a un precio mucho más bajo que los compra.\",\n },\n },\n {\n section: \"Custom Line\",\n question: {\n en: \"How is the selling price of my Custom products determined?\",\n es: \"¿Cómo se determina el precio de venta de mis productos Custom?\",\n },\n answer: {\n en: \"The price of your Custom products depends on how fast or slow you deliver them (Average Lead Time). The faster you deliver them the higher your selling price will be and vice versa. \",\n es: \"El precio de sus productos Custom depende de qué tan rápido o lento los entregue (tiempo de entrega promedio). Cuanto más rápido los entregue, mayor será su precio de venta y viceversa.\",\n },\n },\n {\n section: \"Inventory\",\n question: { en: \"Why do I have no Inventory?\", es: \"¿Por qué no tengo inventario?\" },\n answer: {\n en: \"You may not have enough cash on hand to place your next order. Check your finances and either get a loan or reduce your current Order Size. \",\n es: \"Es posible que no tenga suficiente efectivo disponible para realizar su próximo pedido. Verifique sus finanzas y obtenga un préstamo o reduzca el tamaño de su pedido actual.\",\n },\n },\n {\n section: \"Inventory\",\n question: {\n en: \"What's the company's inventory management policy?\",\n es: \"¿Cuál es la política de gestión de inventario de la compañía?\",\n },\n answer: {\n en: \"Medica Scientific uses a continuos Review inventory management policy.\",\n es: \"Medica Scientific utiliza una política de gestión de inventario de revisión continua.\",\n },\n },\n {\n section: \"Work Force\",\n question: {\n en: \"Why is my number of Experts decreasing?\",\n es: \"¿Por qué está disminuyendo mi número de expertos?\",\n },\n answer: {\n en: \"Your employees may be quitting due to burn out caused by working extra shifts. \",\n es: \"Es posible que sus empleados renunciaran debido al estrés causado por el trabajo de turnos adicionales.\",\n },\n },\n ],\n },\n Simunation: {\n image: \"/assets/simunation-logo.png\",\n avatarBackgroundColor: \"#7E217E\",\n faq: [\n {\n section: \"Login\",\n question: { en: \"I can't log in.\", es: \"No puedo iniciar sesión.\" },\n answer: {\n en: \"Check if you typing your email and password correctly. You can also reset your password or contact us at support@processimlabs.com if none of this works.\",\n es: \"Verifique si escribe su correo electrónico y contraseña correctamente. También puede restablecer su contraseña o contactarnos a support@processimlabs.com.com si nada de esto funciona.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"I can't find the app in my phone's app store.\",\n es: \"No puedo encontrar la aplicación en la tienda de aplicaciones de mi teléfono.\",\n },\n answer: {\n en: \"You can use the links shown after you join the simulation to be directed directly to your phone's app store. If you still can't see it your device may not be supported.\",\n es: \"Puede usar los enlaces que se muestran después de unirse a la simulación para dirigirse directamente a la App Store de su teléfono. Si aún no puede verlo, su dispositivo no será compatible.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"I already have an account with Processim Labs, do I need to create a new one?\",\n es: \"Ya tengo una cuenta con ProcessIM Labs, ¿necesito crear una nueva?\",\n },\n answer: {\n en: \"No need, you can use your existing account. \",\n es: \"No hay necesidad, puede usar su cuenta existente.\",\n },\n },\n {\n section: \"Login\",\n question: { en: \"I forgot my password.\", es: \"Olvidé mi contraseña.\" },\n answer: {\n en: 'Just click the \"Forgot it?\" link in the login page and follow the steps.',\n es: 'Simplemente haga clic en el enlace de \"¡Olvidé mi Contraseña!\" en la página de inicio de sesión y siga los pasos.',\n },\n },\n {\n section: \"Create Account\",\n question: {\n en: \"My email is already linked to an account.\",\n es: \"Mi correo electrónico ya está vinculado a una cuenta.\",\n },\n answer: {\n en: \"This is likely because you played another Processim Labs simulation in the past. In this case there is no need to create a new account, you can just log in to your existing one.\",\n es: \"Esto es probable porque jugaste otra simulación de Processim Labs en el pasado. En este caso, no hay necesidad de crear una nueva cuenta, puede iniciar sesión en su existente.\",\n },\n },\n {\n section: \"Create Account\",\n question: { en: \"I misspelled my email.\", es: \"Escribí mal mi correo electrónico.\" },\n answer: {\n en: \"You can play with a misspelled email no problem (if you remember how you misspelled it) or contact us at support@processimlabs.com so that we can further assist you.\",\n es: \"Puede jugar con un correo electrónico mal escrito sin problema (si recuerda cómo lo escribió mal) o contáctenos a support@processimlabs.com.com para que podamos ayudarlo aún más.\",\n },\n },\n {\n section: \"Activation Code\",\n question: { en: \"My Activation Code is not working.\", es: \"Mi código de activación no funciona.\" },\n answer: {\n en: \"Verify that you are typing the code correctly and contact us at support@processimlabs.com if it is still not working.\",\n es: \"Verifique que esté escribiendo el código correctamente y contáctenos a support@processimlabs.com.com si aún no funciona.\",\n },\n },\n {\n section: \"Join Team\",\n question: { en: \"I can't read the QR code.\", es: \"No puedo leer el código QR.\" },\n answer: {\n en: \"Try asking your team leader for the invitation link or restarting the app. \",\n es: \"Intente pedirle al líder de su equipo el enlace de invitación o reiniciar la aplicación.\",\n },\n },\n {\n section: \"Join Team\",\n question: { en: \"The invitation link is not working.\", es: \"El enlace de invitación no funciona.\" },\n answer: {\n en: \"Remember that you need to have downloaded the mobile app before hand. Try opening the link by pasting it into a different browser or scanning the QR code invitation if that fails.\",\n es: \"Recuerde que debe haber descargado la aplicación móvil de antemano. Intente abrir el enlace pegándolo en un navegador diferente o escaneando la invitación del código QR si eso falla.\",\n },\n },\n {\n section: \"Join Team\",\n question: { en: \"I'm in the wrong team.\", es: \"Estoy en el equipo equivocado.\" },\n answer: { en: \"Contact us at support@processimlabs.com\", es: \"Contáctenos en support@processimlabs.com.com\" },\n },\n ],\n },\n Bindz: {\n image: \"/assets/crisis-logo.png\",\n avatarBackgroundColor: \"#18B1B9\",\n faq: [\n {\n section: \"Login\",\n question: { en: \"I can't log in.\", es: \"No puedo iniciar sesión.\" },\n answer: {\n en: \"Check if you typing your email and password correctly. You can also reset your password or contact us at support@processimlabs.com if none of this works.\",\n es: \"Verifique si escribe su correo electrónico y contraseña correctamente. También puede restablecer su contraseña o contactarnos a support@processimlabs.com.com si nada de esto funciona.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"The app is telling me I have no simulations.\",\n es: \"La aplicación me dice que no tengo simulaciones.\",\n },\n answer: {\n en: \"Make sure you downloaded the correct mobile app, we have several. Also, remember that when logging in to our app, you should be using the same email/password you chose when you created your account on our website.\",\n es: \"Asegúrese de descargar la aplicación móvil correcta, tenemos varias. Además, recuerde que al iniciar sesión en nuestra aplicación, debe usar el mismo correo electrónico/contraseña que eligió cuando creó su cuenta en nuestro sitio web.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"I can't find the app in my phone's app store.\",\n es: \"No puedo encontrar la aplicación en la tienda de aplicaciones de mi teléfono.\",\n },\n answer: {\n en: \"You can use the links shown after you join the simulation to be directed directly to your phone's app store. If you still can't see it your device may not be supported.\",\n es: \"Puede usar los enlaces que se muestran después de unirse a la simulación para dirigirse directamente a la App Store de su teléfono. Si aún no puede verlo, su dispositivo no será compatible.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"I already have an account with Processim Labs, do I need to create a new one?\",\n es: \"Ya tengo una cuenta con Processim Labs, ¿necesito crear una nueva?\",\n },\n answer: {\n en: \"No need, you can use your existing account. \",\n es: \"No hay necesidad, puede usar su cuenta existente.\",\n },\n },\n {\n section: \"Login\",\n question: { en: \"I forgot my password.\", es: \"Olvidé mi contraseña.\" },\n answer: {\n en: 'Just click the \"Forgot it?\" link in the login page and follow the steps.',\n es: 'Simplemente haga clic en el enlace de \"¡Olvidé mi Contraseña!\" en la página de inicio de sesión y siga los pasos.',\n },\n },\n {\n section: \"Create Account\",\n question: {\n en: \"My email is already linked to an account.\",\n es: \"Mi correo electrónico ya está vinculado a una cuenta.\",\n },\n answer: {\n en: \"This is likely because you played another Processim Labs simulation in the past. In this case there is no need to create a new account, you can just log in to your existing one.\",\n es: \"Esto es probable porque jugaste otra simulación de Processim Labs en el pasado. En este caso, no hay necesidad de crear una nueva cuenta, puede iniciar sesión en su existente.\",\n },\n },\n {\n section: \"Create Account\",\n question: { en: \"I misspelled my email.\", es: \"Escribí mal mi correo electrónico.\" },\n answer: {\n en: \"You can play with a misspelled email no problem (if you remember how you misspelled it) or contact us at support@processimlabs.com so that we can further assist you.\",\n es: \"Puede jugar con un correo electrónico mal escrito sin problema (si recuerda cómo lo escribió mal) o contáctenos a support@processimlabs.com.com para que podamos ayudarlo aún más.\",\n },\n },\n {\n section: \"Join Simulation\",\n question: { en: \"How do I join a simulation?\", es: \"¿Cómo me uniré a una simulación?\" },\n answer: {\n en: \"You need to use the link that your professor shared or will share with you. \",\n es: \"Debe usar el enlace que su profesor compartió o compartirá con usted.\",\n },\n },\n {\n section: \"Join Simulation\",\n question: {\n en: \"Can I join a simulation that is already over?\",\n es: \"¿Puedo unir a una simulación que ya ha terminado?\",\n },\n answer: {\n en: \"Yes you can. Please consider that if your professor is having your class play a second run, you can run that second simulation directly with his/her help.\",\n es: \"Sí tu puedes. Tenga en cuenta que si su profesor está haciendo que su clase juegue una segunda carrera, puede ejecutar esa segunda simulación directamente con su ayuda.\",\n },\n },\n {\n section: \"Join Simulation\",\n question: {\n en: \"Can I join a simulation that already started?\",\n es: \"¿Puedo unir a una simulación que ya comenzó?\",\n },\n answer: { en: \"Yes, not a problem.\", es: \"Sí, no es un problema.\" },\n },\n {\n section: \"Join Simulation\",\n question: { en: \"Can I choose what team I want to play in?\", es: \"¿Puedo elegir en qué equipo quiero jugar?\" },\n answer: { en: \"You get assigned to a team randomly.\", es: \"Te asignan a un equipo al azar.\" },\n },\n {\n section: \"Join Simulation\",\n question: { en: \"Can I change my team?\", es: \"¿Puedo cambiar mi equipo?\" },\n answer: { en: \"You cannot.\", es: \"No puedes.\" },\n },\n {\n section: \"Join Simulation\",\n question: {\n en: \"The link that was shared with me is not working.\",\n es: \"El enlace que se compartió conmigo no está funcionando.\",\n },\n answer: {\n en: \"Doble check that you are using the correct link. It should look like https://bindz.processimlabs.com/XXXX\",\n es: \"DOBLE verifique que esté utilizando el enlace correcto. Debería parecerse a https://bindz.processimlabs.com/xxxx\",\n },\n },\n {\n section: \"Gameplay\",\n question: {\n en: \"I can only access one section in the simulation.\",\n es: \"Solo puedo acceder a una sección en la simulación.\",\n },\n answer: {\n en: \"The current game mode that your professor selected does not allow for you to access the other sections in the supply chain.\",\n es: \"El modo de juego actual que su profesor seleccionó no le permite acceder a las otras secciones en la cadena de suministro.\",\n },\n },\n {\n section: \"Gameplay\",\n question: { en: \"I'm not getting any incoming material.\", es: \"No estoy obteniendo ningún material entrante.\" },\n answer: {\n en: \"Your provider does not have enough material to send your way.\",\n es: \"Su proveedor no tiene suficiente material para enviar su camino.\",\n },\n },\n {\n section: \"Gameplay\",\n question: { en: \"How do I get a loan?\", es: \"¿Cómo obtengo un préstamo?\" },\n answer: {\n en: \"You can't. If you use more money than you have you'll see negative cash in your simulation.\",\n es: \"No puedes. Si usa más dinero del que tiene, verá efectivo negativo en su simulación.\",\n },\n },\n {\n section: \"Gameplay\",\n question: { en: \"My products have bad quality.\", es: \"Mis productos tienen mala calidad.\" },\n answer: {\n en: \"Your product's quality depends not only from your processes but the quality of the products you receive from the previous section.\",\n es: \"La calidad de su producto depende no solo de sus procesos sino también de la calidad de los productos que recibe de la sección anterior.\",\n },\n },\n {\n section: \"Gameplay\",\n question: { en: \"I have a huge backlog.\", es: \"Tengo una gran cartera de pedidos.\" },\n answer: {\n en: \"Try ordering more from the previous section. Be careful not to overcompensate.\",\n es: \"Intente ordenar más de la sección anterior. Tenga cuidado de no compensar en exceso.\",\n },\n },\n {\n section: \"Supply and Assembly\",\n question: { en: \"I'm not producing anything.\", es: \"No estoy produciendo nada.\" },\n answer: {\n en: \"Make sure you have enough Material X or Y.\",\n es: \"Asegúrese de tener suficiente material X o Y.\",\n },\n },\n {\n section: \"Production 1\",\n question: {\n en: \"My indicators show low quality in my products.\",\n es: \"Mis indicadores muestran baja calidad en mis productos.\",\n },\n answer: {\n en: \"Older machines will lower the quality of your products.\",\n es: \"Las máquinas más antiguas reducirán la calidad de sus productos.\",\n },\n },\n {\n section: \"Production 2\",\n question: {\n en: \"My indicators show low quality in my products.\",\n es: \"Mis indicadores muestran baja calidad en mis productos.\",\n },\n answer: {\n en: \"Overworked employees are likely the cause of low quality in your products.\",\n es: \"Los empleados con exceso de trabajo son probablemente la causa de baja calidad en sus productos.\",\n },\n },\n ],\n },\n SupplyGrain: {\n image: \"/assets/supplychain-logo.png\",\n avatarBackgroundColor: \"#006F5D\",\n faq: [\n {\n section: \"Login\",\n question: { en: \"I can't log in.\", es: \"No puedo iniciar sesión.\" },\n answer: {\n en: \"Check if you typing your email and password correctly. You can also reset your password or contact us at support@processimlabs.com if none of this works.\",\n es: \"Verifique si escribe su correo electrónico y contraseña correctamente. También puede restablecer su contraseña o contactarnos a support@processimlabs.com.com si nada de esto funciona.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"The app is telling me I have no simulations.\",\n es: \"La aplicación me dice que no tengo simulaciones.\",\n },\n answer: {\n en: \"Make sure you downloaded the correct mobile app, we have several. Also, remember that when logging in to our app, you should be using the same email/password you chose when you created your account on our website.\",\n es: \"Asegúrese de descargar la aplicación móvil correcta, tenemos varias. Además, recuerde que al iniciar sesión en nuestra aplicación, debe usar el mismo correo electrónico/contraseña que eligió cuando creó su cuenta en nuestro sitio web.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"I can't find the app in my phone's app store.\",\n es: \"No puedo encontrar la aplicación en la tienda de aplicaciones de mi teléfono.\",\n },\n answer: {\n en: \"You can use the links shown after you join the simulation to be directed directly to your phone's app store. If you still can't see it your device may not be supported.\",\n es: \"Puede usar los enlaces que se muestran después de unirse a la simulación para dirigirse directamente a la App Store de su teléfono. Si aún no puede verlo, su dispositivo no será compatible.\",\n },\n },\n {\n section: \"Login\",\n question: {\n en: \"I already have an account with Processim Labs, do I need to create a new one?\",\n es: \"Ya tengo una cuenta con ProcessIM Labs, ¿necesito crear una nueva?\",\n },\n answer: {\n en: \"No need, you can use your existing account. \",\n es: \"No hay necesidad, puede usar su cuenta existente.\",\n },\n },\n {\n section: \"Login\",\n question: { en: \"I forgot my password.\", es: \"Olvidé mi contraseña.\" },\n answer: {\n en: 'Just click the \"Forgot it?\" link in the login page and follow the steps.',\n es: 'Simplemente haga clic en el enlace de \"¿Olvide mi Contraseña?\" en la página de inicio de sesión y siga los pasos.',\n },\n },\n {\n section: \"Create Account\",\n question: {\n en: \"My email is already linked to an account.\",\n es: \"Mi correo electrónico ya está vinculado a una cuenta.\",\n },\n answer: {\n en: \"This is likely because you played another Processim Labs simulation in the past. In this case there is no need to create a new account, you can just log in to your existing one.\",\n es: \"Esto es probable porque jugaste otra simulación de Processim Labs en el pasado. En este caso, no hay necesidad de crear una nueva cuenta, puede iniciar sesión en su existente.\",\n },\n },\n {\n section: \"Create Account\",\n question: { en: \"I misspelled my email.\", es: \"Escribí mal mi correo electrónico.\" },\n answer: {\n en: \"You can play with a misspelled email no problem (if you remember how you misspelled it) or contact us at support@processimlabs.com so that we can further assist you.\",\n es: \"Puede jugar con un correo electrónico mal escrito sin problema (si recuerda cómo lo escribió mal) o contáctenos a support@processimlabs.com.com para que podamos ayudarlo aún más.\",\n },\n },\n {\n section: \"Create Team\",\n question: { en: \"How do I join a simulation?\", es: \"¿Cómo me uniré a una simulación?\" },\n answer: {\n en: \"You need to use the link that your professor shared or will share with you. \",\n es: \"Debe usar el enlace que su profesor compartió o compartirá con usted.\",\n },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"Can I join a simulation that is already over?\",\n es: \"¿Puedo unir a una simulación que ya ha terminado?\",\n },\n answer: {\n en: \"Yes you can. Please consider that if your professor is having your class play a second run, you can run that second simulation directly with his/her help.\",\n es: \"Sí tu puedes. Tenga en cuenta que si su profesor está haciendo que su clase juegue una segunda carrera, puede ejecutar esa segunda simulación directamente con su ayuda.\",\n },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"Can I join a simulation that already started?\",\n es: \"¿Puedo unir a una simulación que ya comenzó?\",\n },\n answer: { en: \"Yes, not a problem.\", es: \"Sí, no es un problema.\" },\n },\n {\n section: \"Create Team\",\n question: { en: \"Can I choose what team I want to play in?\", es: \"¿Puedo elegir en qué equipo quiero jugar?\" },\n answer: { en: \"You get assigned to a team randomly.\", es: \"Te asignan a un equipo al azar.\" },\n },\n {\n section: \"Create Team\",\n question: { en: \"Can I change my team?\", es: \"¿Puedo cambiar mi equipo?\" },\n answer: { en: \"You cannot.\", es: \"No puedes.\" },\n },\n {\n section: \"Create Team\",\n question: {\n en: \"The link that was shared with me is not working.\",\n es: \"El enlace que se compartió conmigo no está funcionando.\",\n },\n answer: {\n en: \"Doble check that you are using the correct link. It should look like https://supplygrain.processimlabs.com/XXXX\",\n es: \"DOBLE verifique que esté utilizando el enlace correcto. Debería parecerse a https://supplygrain.processimlabs.com/xxxx\",\n },\n },\n {\n section: \"Gameplay\",\n question: {\n en: \"I can only access one section in the simulation.\",\n es: \"Solo puedo acceder a una sección en la simulación.\",\n },\n answer: {\n en: \"The current game mode that your professor selected does not allow for you to access the other sections in the supply chain.\",\n es: \"El modo de juego actual que su profesor seleccionó no le permite acceder a las otras secciones en la cadena de suministro.\",\n },\n },\n ],\n },\n};\n","import React from \"react\";\nimport { Grid, Image, List } from \"semantic-ui-react\";\n\nconst ProductOption = (props) => {\n const onSelect = typeof props.onSelect === \"function\" ? () => props.onSelect(props.id) : undefined;\n\n const willDisplayIcon = typeof props.showBack === \"boolean\" && props.showBack;\n const icon = willDisplayIcon ? : undefined;\n\n return (\n \n {icon}\n
\n \n
\n \n {props.title}\n \n
\n );\n};\n\nexport default ProductOption;\n","import React from \"react\";\nimport { Label, List } from \"semantic-ui-react\";\n\nconst FaqTag = (props) => {\n const { onSelect, isSelected, tagTitle, tagId } = props;\n return (\n onSelect(tagId)}>\n \n \n );\n};\n\nexport default FaqTag;\n","import React, { Component } from \"react\";\nimport { Accordion, Container, Divider, Grid, Icon, List, Message } from \"semantic-ui-react\";\nimport { faq, studentFaq } from \"../../constants/FAQ_DATA_STRUCTURE\";\nimport * as ROUTES from \"../../constants/Routes\";\nimport MedicaImage from \"../../assets/medica-logo-transparent.png\";\nimport SimunationImage from \"../../assets/simunation-logo.png\";\nimport CrisisImage from \"../../assets/crisis-logo.png\";\nimport SupplyGrainImage from \"../../assets/supplychain-logo.png\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport { withTranslation } from \"react-i18next\";\nimport ProductOption from \"./ProductOption\";\nimport FaqTag from \"./FaqTag\";\n\nimport \"./ProcessimLabsFaq.css\";\n\nfunction onlyUnique(value, index, self) {\n return self.indexOf(value) === index;\n}\n\nconst productImages = {\n Medica: MedicaImage,\n Simunation: SimunationImage,\n Bindz: CrisisImage,\n SupplyGrain: SupplyGrainImage,\n};\n\nconst productNames = {\n Medica: \"Medica\",\n Simunation: \"Simunation\",\n Bindz: \"Bindz\",\n SupplyGrain: \"Supply Grain\",\n};\n\nclass ProcessimLabsFaq extends Component {\n state = {\n productSelected: \"\",\n tagSelected: \"\",\n };\n\n onSelectProduct = (id) => {\n this.setState({ productSelected: id, tagSelected: \"\" });\n };\n\n onSelectTag = (id) => {\n this.setState({ tagSelected: id });\n };\n\n render() {\n const { t, i18n, isStudent } = this.props;\n const { productSelected, tagSelected } = this.state;\n const language = [\"en\", \"es\"].includes(i18n.language) ? i18n.language : \"en\";\n const FaqData = isStudent ? studentFaq : faq;\n let faqProducts;\n\n if (productSelected.length === 0) {\n faqProducts = (\n \n {Object.keys(FaqData).map((x) => {\n return (\n \n );\n })}\n \n );\n } else {\n faqProducts = (\n \n this.onSelectProduct(\"\")}>\n \n \n \n );\n }\n\n let questionTags = null;\n if (productSelected.length > 0) {\n questionTags = FaqData[productSelected].faq\n .map((x) => x.section)\n .filter(onlyUnique)\n .map((x, index) => (\n \n ));\n questionTags.unshift(\n \n );\n }\n\n let faqQuestions = null;\n const studentFaqLink = `${window.location.origin}${ROUTES.STUDENT_FAQ}`;\n if (productSelected.length > 0 && tagSelected.length > 0) {\n const selectedQuestions =\n tagSelected === \"All\"\n ? FaqData[productSelected].faq\n : FaqData[productSelected].faq.filter((x) => x.section === tagSelected);\n\n const questionPanels = selectedQuestions.map((x, index) => ({\n key: `question${index}`,\n title: {\n content: x.question[language],\n },\n content: {\n content: {x.answer[language].replace(\"{studentFaq}\", studentFaqLink)},\n },\n }));\n faqQuestions = ;\n }\n return (\n \n \n \n \n );\n }\n}\n\nexport default withTranslation(\"FAQ\")(ProcessimLabsFaq);\n","import ProcessimLabsFaq from \"./ProcessimLabsFaq\";\n\nexport default ProcessimLabsFaq;\n","import React from \"react\";\nimport { Route, Switch } from \"react-router\";\nimport * as ROUTES from \"../constants/Routes\";\nimport CallBackComponent from \"./authComponents/CallBackComponent\";\nimport CheckAuth from \"./authComponents/CheckAuth\";\nimport LoadingComponent from \"./authComponents/LogoutComponent\";\nimport CatalogueScreen from \"./catalogue\";\nimport AbogadosBuyQuestionnaire from \"./abogadosBuyQuestionnaire\";\nimport AbogadosDetail from \"./abogadosDetail\";\nimport AbogadosRegisteredStudents from \"./abogadosRegisteredStudents\";\nimport AbogadosStandings from \"./abogadosStandings\";\nimport CreateNewScenarioScreen from \"./createNewScenario\";\nimport CrisisBuyQuestionnaire from \"./crisisBuyQuestionnaire\";\nimport CrisisDashboards from \"./crisisDashboards\";\nimport CrisisDetail from \"./crisisDetail\";\nimport CrisisJoinSimulation from \"./crisisJoinSimulation\";\nimport CrisisJoinSimulationPreamble from \"./crisisJoinSimulationPreamble\";\nimport CrisisRegisteredStudents from \"./crisisRegisteredStudents\";\nimport CrisisStandings from \"./crisisStandings\";\nimport CrisisRunAgain from \"./crisisRunAgain\";\nimport CrisisBadLinkComponent from \"./crisisBadLink\";\nimport DashBoardsScreen from \"./dashBoards\";\nimport HomeScreen from \"./home\";\nimport MedicaBadLinkComponent from \"./medicaBadLink\";\nimport MedicaBuyQuestionnaireScreen from \"./medicaBuyQuestionnaire\";\nimport MedicaDetailScreen from \"./medicaDetail\";\nimport MedicaStandingsPublic from \"./medicaStandingsPublic\";\nimport ActivationAbogados from \"./activationAbogados\";\nimport PaymentMedica from \"./paymentMedica\";\nimport PaymentCrisis from \"./paymentCrisis\";\nimport PaymentSimunationScreen from \"./paymentSimunation\";\nimport PaymentSupplyChain from \"./paymentSupplyChain\";\nimport ProfileScreen from \"./profile\";\nimport PurchasedAbogados from \"./purchasedAbogados\";\nimport PurchasedCrisis from \"./purchasedCrisis\";\nimport PurchasedMedicaScreen from \"./purchasedMedica\";\nimport PurchasedSimunationScreen from \"./purchasedSimunation\";\nimport PushNotificationsScreen from \"./pushNotifications\";\nimport RegisteredStudentsScreen from \"./registeredStudents\";\nimport RunAgainScreen from \"./runAgain\";\nimport ScenarioManagerScreen from \"./scenarioManager\";\nimport SimulationCreated from \"./simulationCreated\";\nimport SimunationBuyQuestionnaireScreen from \"./simunationBuyQuestionnaire\";\nimport SimunationDetailScreen from \"./simunationDetail\";\nimport SimunationRegisteredStudentsScreen from \"./simunationRegisteredStudents\";\nimport SimunationStandingsScreen from \"./simunationStandings\";\nimport StandingsScreen from \"./standings\";\nimport StudentCreateTeamScreen from \"./studentCreateTeam\";\nimport StudentJoinTeamScreen from \"./studentJoinTeam\";\nimport StudentsLoginScreen from \"./studentsLogin\";\nimport SupplyChainBuyQuestionnaire from \"./supplychainBuyQuestionnaire\";\nimport PurchasedSupplyChain from \"./purchasedSupplyChain\";\nimport TutorialsScreen from \"./tutorials\";\nimport SupplyChainJoinSimulationPreamble from \"./supplyChainJoinSimulationPreamble\";\nimport SupplyChainJoinSimulation from \"./supplyChainJoinSimulation\";\nimport SupplyChainDashboards from \"./supplyChainDashboards\";\nimport SupplyChainDetail from \"./supplyChainDetail\";\nimport SupplyChainRegisteredStudents from \"./supplyChainRegisteredStudents\";\nimport SupplyChainStandings from \"./supplyChainStandings\";\nimport SupplyChainRunAgain from \"./supplyChainRunAgain\";\nimport * as Sentry from \"@sentry/react\";\nimport CreambowBuyQuestionnaire from \"./creambowBuyQuestionnaire\";\nimport ActivationCreambow from \"./activationCreambow\";\nimport PurchasedCreambow from \"./purchasedCreambow\";\nimport CreambowDetail from \"./creambowDetail\";\nimport CreambowRegisteredStudents from \"./creambowRegisteredStudents\";\nimport CreambowStandings from \"./creambowStandings\";\nimport MedicaDecisionHistory from \"./medicaDecisionHistory\";\nimport ProcessimLabsFaq from \"./processimLabsFaq\";\n\nconst SentryRoute = Sentry.withSentryRouting(Route);\n\nconst Navigation = () => {\n return (\n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n }\n />\n } />\n } />\n } />\n }\n />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n }\n />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n\n } />\n } />\n } />\n }\n />\n } />\n } />\n }\n />\n } />\n }\n />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n\n } />\n } />\n } />\n } />\n } />\n } />\n \n );\n};\nexport default Navigation;\n","import React from \"react\";\nimport { Container } from \"semantic-ui-react\";\nimport { withTranslation } from \"react-i18next\";\nimport HeaderComponent from \"../header/HeaderComponent\";\nimport MainTitleComponent from \"../titles/mainTitle/MainTitleComponent\";\nimport MessagesComponent from \"../helpers/MessagesComponent\";\n\nconst CookiesDisabledScreen = (props) => {\n const { t } = props;\n const translate = t;\n\n return (\n \n \n \n \n \n );\n};\n\nexport default withTranslation(\"CookiesDisabledScreen\", \"Common\")(CookiesDisabledScreen);\n","import backgroundImageOne from \"../../assets/background-one.png\";\nimport backgroundImageTwo from \"../../assets/background-two.png\";\nimport mobileBackgroundImageOne from \"../../assets/background-mobile-one.png\";\nimport mobileBackgroundImageTwo from \"../../assets/background-mobile-two.png\";\nimport * as ROUTES from \"../../constants/Routes\";\n\nlet backgroundImage = \"\";\n\nexport const changeBackgroundImage = (pathName) => {\n const isPortrait = window.innerHeight > window.innerWidth;\n let imageOne = null;\n let imageTwo = null;\n if (isPortrait) {\n imageOne = mobileBackgroundImageOne;\n imageTwo = mobileBackgroundImageTwo;\n } else {\n imageOne = backgroundImageOne;\n imageTwo = backgroundImageTwo;\n }\n\n if (pathName === ROUTES.HOME) {\n backgroundImage = imageOne;\n } else {\n backgroundImage = imageTwo;\n }\n return backgroundImage;\n};\n","import React, { Component } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"redux\";\nimport * as Sentry from \"@sentry/react\";\nimport Axios from \"axios\";\nimport Navigation from \"./components/Navigation\";\nimport * as ROUTES from \"./constants/Routes\";\nimport CookiesDisabledScreen from \"./components/cookiesDisable\";\nimport { changeBackgroundImage } from \"./components/utilities/BackgroundUtilities\";\nimport { isLoggedIn, login, setUserLanguage } from \"./store/User/actions\";\nimport { getStorage, removeStorage } from \"./services/StorageService\";\nimport { processLanguageAndSave } from \"./components/utilities/LanguageUtilities\";\nimport * as LOCALSTORAGE from \"./constants/LocalStorage\";\nimport * as CONSTANT from \"./constants/UniversalConstants\";\nimport { axiosLogExceptionsFromBackend, axiosLogErrorsFromBackend } from \"./services/FetchService\";\nconst cookiesEnabled = navigator.cookieEnabled;\n\nclass App extends Component {\n componentDidMount() {\n if (cookiesEnabled) {\n this.checkIsLoggedIn();\n }\n Axios.interceptors.response.use(axiosLogErrorsFromBackend, axiosLogExceptionsFromBackend);\n }\n\n componentWillUnmount() {\n Axios.interceptors.response.eject(axiosLogErrorsFromBackend, axiosLogExceptionsFromBackend);\n }\n\n componentDidUpdate(prevProps) {\n const { user, history, location } = this.props;\n\n if (cookiesEnabled && (!user.language || prevProps.user.language !== user.language)) {\n this.setLanguage();\n }\n\n if (prevProps.user.email !== user.email) {\n this.saveUserChatInformation(user);\n this.configureSentryScope(user);\n }\n\n if (location.pathname === ROUTES.DOWNLOAD_APP) {\n window.history.pushState(null, null, location.href);\n window.onpopstate = function () {\n history.replace(ROUTES.STUDENT_FAQ);\n removeStorage(LOCALSTORAGE.purchasedProduct);\n };\n }\n }\n\n configureSentryScope = (user) => {\n Sentry.configureScope((scope) => {\n scope.setUser({ email: user.email });\n scope.setExtra(\"website version\", CONSTANT.APP_VERSION_NUMBER);\n scope.setExtra(\"user role\", user.role);\n });\n };\n\n setChatLanguage = (language) => {\n var _smartsupp = window.smartsupp;\n if (_smartsupp) {\n _smartsupp(\"language\", language);\n }\n };\n\n saveUserChatInformation = (user) => {\n if (user) {\n var _smartsupp = window.smartsupp;\n if (_smartsupp) {\n _smartsupp(\"name\", user.firstName);\n _smartsupp(\"email\", user.email);\n _smartsupp(\"variables\", {\n role: {\n label: \"Role\",\n value: user.role,\n },\n });\n }\n }\n };\n\n checkIsLoggedIn = async () => {\n const isLoggedInPath = this.checkIfLoggedInPath();\n if (isLoggedInPath) await this.props.isLoggedIn();\n };\n\n checkIfLoggedInPath = () => {\n const pathName = window.location.pathname.toLowerCase();\n const noLoginRequiredPages = [\n ROUTES.CALLBACK.toLowerCase(),\n ROUTES.CHECK_AUTH.toLowerCase(),\n ROUTES.FAQ.toLowerCase(),\n ROUTES.MEDICA_STANDINGS_PUBLIC.toLowerCase(),\n ROUTES.CRISIS_JOIN_SIMULATION_PREAMBLE.toLowerCase(),\n ROUTES.MEDICA_BAD_LINK.toLowerCase(),\n ROUTES.CRISIS_BAD_LINK.toLowerCase(),\n ROUTES.STUDENT_FAQ.toLowerCase(),\n ];\n return !noLoginRequiredPages.includes(pathName);\n };\n\n setLanguage = () => {\n const { setUserLanguage, user } = this.props;\n const { language } = user;\n const localLanguage = getStorage(LOCALSTORAGE.localLanguage);\n let bestLanguageFit = null;\n\n if (language) {\n if (CONSTANT.LANGUAGES_LIST.includes(language.slice(0, 2))) {\n bestLanguageFit = language.slice(0, 2);\n } else {\n bestLanguageFit = CONSTANT.LANGUAGES_LIST[0];\n }\n } else {\n if (localLanguage) {\n bestLanguageFit = localLanguage;\n } else {\n const browserLang = navigator.language.slice(0, 2) || navigator.userLanguage.slice(0, 2);\n if (CONSTANT.LANGUAGES_LIST.includes(browserLang)) {\n bestLanguageFit = browserLang;\n } else {\n bestLanguageFit = CONSTANT.LANGUAGES_LIST[0];\n }\n }\n }\n\n this.setChatLanguage(bestLanguageFit);\n processLanguageAndSave(bestLanguageFit, setUserLanguage);\n };\n\n render() {\n const pathName = window.location.pathname;\n const backgroundImage = changeBackgroundImage(pathName);\n let routeNavigator = null;\n\n if (cookiesEnabled) {\n routeNavigator = ;\n } else {\n routeNavigator = ;\n }\n\n return (\n
\n \"Background\"\n {routeNavigator}\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => {\n return {\n user: {\n role: state.user.userProfile.role,\n fullName: state.user.userProfile.fullName,\n firstName: state.user.userProfile.firstName,\n lastName: state.user.userProfile.lastName,\n email: state.user.userProfile.email,\n institution: state.user.userProfile.institution,\n language: state.user.userProfile.language,\n },\n };\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n isLoggedIn: () => dispatch(isLoggedIn()),\n login: () => dispatch(login()),\n setUserLanguage: (lang) => dispatch(setUserLanguage(lang)),\n});\n\nexport default compose(connect(mapStateToProps, mapDispatchToProps))(withRouter(App));\n","// In production, we register a service worker to serve assets from local cache.\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 the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\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.1/8 is considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\nexport default function register() {\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);\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/facebookincubator/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. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log(\"New content is available; please refresh.\");\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 }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (response.status === 404 || response.headers.get(\"content-type\").indexOf(\"javascript\") === -1) {\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);\n }\n })\n .catch(() => {\n console.log(\"No internet connection found. App is running in offline mode.\");\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import \"semantic-ui-css/semantic.min.css\";\nimport \"./styles/styles.css\";\nimport \"./styles/uiCustomStyles.css\";\nimport \"./styles/main.css\";\nimport \"../node_modules/react-vis/dist/style.css\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { ConnectedRouter } from \"connected-react-router\";\nimport { I18nextProvider } from \"react-i18next\";\nimport history from \"./constants/History\";\nimport configureStore from \"./store/configureStore\";\nimport i18n from \"./translations/i18n\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./registerServiceWorker\";\nimport * as Sentry from \"@sentry/react\";\nimport { BrowserTracing, Integrations } from \"@sentry/tracing\";\nimport * as CONSTANT from \"./constants/UniversalConstants\";\n\nconst initialState = window.initialReduxState;\nconst store = configureStore(history, initialState);\n\nif (window.location.host === \"app.processimlabs.com\") {\n Sentry.init({\n dsn: \"https://0f436b703f0e43be86081ac368629c2f@sentry.io/1500570\",\n release: `appprocessimlabs@${CONSTANT.APP_VERSION_NUMBER}`,\n dist: CONSTANT.APP_DISTRIBUTION_NUMBER,\n environment: process.env.NODE_ENV,\n integrations: [\n new BrowserTracing({\n routingInstrumentation: Sentry.reactRouterV5Instrumentation(history),\n }),\n ],\n normalizeDepth: 4,\n tracesSampleRate: 1.0,\n });\n}\n\n/* eslint-disable no-unused-vars */\nconst integrationsIgnorePattern = Integrations;\n/* eslint-enable no-unused-vars */\n\nconst rootElement = document.getElementById(\"root\");\n\nReactDOM.render(\n \n \n \n \n \n \n ,\n rootElement\n);\n\nserviceWorker.unregister();\n","export const CHECK_AUTH = \"/\";\nexport const CALLBACK = \"/callback\";\nexport const LOADING = \"/Loading\";\nexport const LOGOUT = \"/Logout\";\nexport const HOME = \"/Home\";\nexport const CATALOGUE = \"/Catalogue\";\nexport const MEDICA_DETAIL = \"/MedicaDetail\";\nexport const PURCHASED_MEDICA_DETAIL = \"/PurchasedMedicaDetail\";\nexport const SIMUNATION_DETAIL = \"/SimunationDetail\";\nexport const PURCHASED_SIMUNATION_DETAIL = \"/PurchasedSimunationDetail\";\nexport const MEDICA_REGISTERED_STUDENTS = \"/MedicaRegisteredStudents\";\nexport const MEDICA_STANDINGS = \"/MedicaStandings\";\nexport const MEDICA_STANDINGS_PUBLIC = \"/MedicaLeaderboard\";\nexport const MEDICA_BAD_LINK = \"/MedicaBadLink\";\nexport const PUSH_NOTIFICATIONS = \"/Push_Notifications\";\nexport const PURCHASED_MEDICA = \"/PurchasedMedica\";\nexport const MEDICA_BUY_QUESTIONNAIRE = \"/MedicaBuy\";\nexport const PAYMENT_MEDICA = \"/PaymentMedica\";\nexport const PAYMENT_MEDICA_STUDENT = \"/PaymentStudentMedica\";\nexport const CHARGE = \"/Charge\";\nexport const RUN_AGAIN = \"/RunAgain\";\nexport const STUDENTS_LOGIN = \"/StudentsLogin\";\nexport const STUDENT_PAYMENT = \"/StudentPayment\";\nexport const STUDENT_CREATE_TEAM = \"/StudentCreateTeam\";\nexport const STUDENT_JOIN_TEAM = \"/StudentJoinTeam\";\nexport const DOWNLOAD_APP = \"/DownloadApp\";\nexport const SIMUNATION_BUY_QUESTIONNAIRE = \"/SimunationBuy\";\nexport const SIMUNATION_PAYMENT = \"/PaymentSimunation\";\nexport const PURCHASED_SIMUNATION = \"/PurchasedSimunation\";\nexport const SIMUNATION_STANDINGS = \"/SimunationStandings\";\nexport const SIMUNATION_REGISTERED_STUDENTS = \"/SimunationRegisteredStudents\";\nexport const MEDICA_DASHBOARDS = \"/MedicaDashBoards\";\nexport const MEDICA_DETAILS_DECISION_HISTORY = \"/MedicaDecisionsHistory\";\nexport const TUTORIALS = \"/Videos\";\nexport const PROFILE = \"/Profile\";\nexport const FAQ = \"/FAQ\";\nexport const STUDENT_FAQ = \"/StudentFAQ\";\nexport const SCENARIO_MANAGER = \"/ScenarioManager\";\nexport const CREATE_NEW_SCENARIO = \"/CreateNewScenario\";\nexport const CRISIS_BUY_QUESTIONNAIRE = \"/CrisisBuy\";\nexport const CRISIS_PAYMENT = \"/CrisisPayment\";\nexport const CRISIS_STUDENT_PAYMENT = \"/CrisisStudentPayment\";\nexport const CRISIS_CREATE_SIMULATION = \"/PurchasedCrisis\";\nexport const CRISIS_JOIN_SIMULATION_PREAMBLE = \"/CrisisJoinSimulationPreamble\";\nexport const CRISIS_JOIN_SIMULATION = \"/CrisisJoinSimulation\";\nexport const CRISIS_SIMULATION_DETAILS = \"/CrisisSimulationDetails\";\nexport const CRISIS_SIMULATION_DASHBOARDS = \"/CrisisSimulationDashboards\";\nexport const CRISIS_STANDINGS = \"/CrisisStandings\";\nexport const CRISIS_REGISTERED_STUDENTS = \"/RegisteredStudents\";\nexport const CRISIS_CREATE_NEXT_RUN = \"/CrisisCreateNextRun\";\nexport const CRISIS_BAD_LINK = \"/CrisisBadLink\";\n\nexport const SUPPLY_CHAIN_BUY_QUESTIONNAIRE = \"/SupplyChainBuy\";\nexport const SUPPLY_CHAIN_CREATE_SIMULATION = \"/PurchasedSupplyChain\";\nexport const SUPPLY_CHAIN_JOIN_SIMULATION_PREAMBLE = \"/SupplyChainJoinSimulationPreamble\";\nexport const SUPPLY_CHAIN_JOIN_SIMULATION = \"/SupplyChainJoinSimulation\";\nexport const SUPPLY_CHAIN_PAYMENT = \"/SupplyChainPayment\";\nexport const SUPPLY_CHAIN_STUDENT_PAYMENT = \"/SupplyChainStudentPayment\";\nexport const SUPPLY_CHAIN_SIMULATION_DETAILS = \"/SupplyChainSimulationDetails\";\nexport const SUPPLY_CHAIN_REGISTERED_STUDENTS = \"/SupplyChainRegisteredStudents\";\nexport const SUPPLY_CHAIN_STANDINGS = \"/SupplyChainStandings\";\nexport const SUPPLY_CHAIN_SIMULATION_DASHBOARDS = \"/SupplyChainSimulationDashboards\";\nexport const SUPPLY_CHAIN_CREATE_NEXT_RUN = \"/SupplyChainCreateNextRun\";\n\nexport const ABOGADOS_BUY_QUESTIONNAIRE = \"/AbogadosBuy\";\nexport const ABOGADOS_CREATE_SIMULATION = \"/PurchasedAbogados\";\nexport const ABOGADOS_PAYMENT = \"/AbogadosPayment\";\nexport const ABOGADOS_SIMULATION_DETAILS = \"/AbogadosSimulationDetails\";\nexport const ABOGADOS_STANDINGS = \"/AbogadosStandings\";\nexport const ABOGADOS_REGISTERED_STUDENTS = \"/AbogadosRegisteredStudents\";\nexport const CREAMBOW_BUY_QUESTIONNAIRE = \"/CreambowBuy\";\nexport const CREAMBOW_CREATE_SIMULATION = \"/PurchasedCreambow\";\nexport const CREAMBOW_PAYMENT = \"/CreambowPayment\";\nexport const CREAMBOW_SIMULATION_DETAILS = \"/CreambowSimulationDetails\";\nexport const CREAMBOW_STANDINGS = \"/CreambowStandings\";\nexport const CREAMBOW_REGISTERED_STUDENTS = \"/CreambowRegisteredStudents\";\n","import { createBrowserHistory } from \"history\";\n\nconst baseUrl = document.getElementsByTagName(\"base\")[0].getAttribute(\"href\");\nconst history = createBrowserHistory({ basename: baseUrl });\n\nexport default history;\n","module.exports = __webpack_public_path__ + \"static/media/medica-logo-transparent.73869d1f.png\";","import * as actions from \"./action-types\";\nimport * as auth0 from \"../../services/AuthService\";\n\nexport const isLoggedIn = () => {\n return async function (dispatch) {\n const response = await auth0.getCurrentSession();\n if (response) {\n dispatch({ type: actions.LOGGED_IN, payload: response });\n return true;\n } else {\n dispatch({ type: actions.NOT_LOGGED_IN });\n }\n };\n};\n\nexport const login = (options) => {\n return async function () {\n auth0.login(options);\n };\n};\n\nexport const logout = () => {\n return async function () {\n auth0.logout();\n };\n};\n\nexport const loginSuccessful = () => {\n return async function (dispatch) {\n const response = await auth0.loginSuccessful();\n if (response) {\n dispatch({ type: actions.LOGIN_SUCCESSFUL, payload: response });\n return true;\n } else {\n dispatch({ type: actions.NOT_LOGGED_IN });\n }\n };\n};\n\nexport const setUserLanguage = (language) => {\n return async function (dispatch) {\n dispatch({ type: actions.SET_USER_LANGUAGE, payload: language });\n };\n};\n","export const isLoggedIn = \"isLoggedIn\";\nexport const teamCode = \"teamCode\";\nexport const activationCode = \"activationCode\";\nexport const securityCode = \"securityCode\";\nexport const authInformation = \"authInformation\";\nexport const medicaQuestionnaire = \"medicaQuestionnaire\";\nexport const simulationCreated = \"simulationCreated\";\nexport const simunationQuestionnaire = \"simunationQuestionnaire\";\nexport const simulationSimunationCreated = \"simulationSimunationCreated\";\nexport const requestedSimulation = \"requestedSimulation\";\nexport const simulationId = \"simulationId\";\nexport const teamName = \"teamName\";\nexport const secondRunWarningWasShown = \"secondRunWarningWasShown\";\nexport const localLanguage = \"localLanguage\";\nexport const wasVideoSeen = \"wasVideoSeen\";\nexport const dontShowWelcomeModalAgain = \"dontShowWelcomeModalAgain\";\nexport const dontShowAddVariationInformationModalAgain = \"dontShowAddVariationInformationModalAgain\";\nexport const purchasedProduct = \"purchasedProduct\";\nexport const crisisQuestionnaire = \"crisisQuestionnaire\";\nexport const crisisJoinSimulationId = \"crisisJoinSimulationId\";\nexport const crisisPaymentSummaryId = \"crisisPaymentSummaryId\";\nexport const abogadosQuestionnaire = \"abogadosQuestionnaire\";\nexport const creambowQuestionnaire = \"creambowQuestionnaire\";\nexport const supplychainQuestionnaire = \"supplychainQuestionnaire\";\nexport const supplyChainJoinSimulationId = \"supplyChainJoinSimulationId\";\nexport const supplyChainPaymentSummaryId = \"supplyChainPaymentSummaryId\";\n","module.exports = \"data:image/png;base64,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LmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjE4NTRjMGYzLWE0NjEtNDE0Mi1hZmYzLTMwY2UyNDIxZTAwYiIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxM2UyOWJhNy0wMGY4LTQ3NmMtYjEyZS1iMzUwMjZmNjE3MTkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxYjZhMTE1MC1lMzE4LTRjZGYtYTE3MS02ZTM1OTRlYmJmOTYiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJNYWMgT1MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjUwMzA2MzczMTk1MjcwIgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZjI4OTcyN2ItN2MzNS00NTk0LTllZDYtMDExYjUxNjQzNmVmIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKE1hYyBPUykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDQtMThUMTI6MjY6MTMtMDY6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+MMnyoAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+YEEhIaDdJnmpMAAAV7SURBVHja7ZzPSyNnGMe/82QmPzBORl10qUEtWikpuJTSIqV79VB69OChJyl79rDnHvoX9NRDYfdW6CGXQil0eyuF2kppVVZ2ZUtJiNbIVpMx2YybyUwP0XFCNJn3zZvMK+Q9iWuSz37zvM/n0bwzyt3vfnQhaC2PG1ifmUZGTyKdiMO0beyZFWQPj5A9KELkUkSA66qKr999B8vjxo0/U6hZWNvaRqFmyQGuqyp++PA9pBNxKA0Lkf9+B53uQqmX4VIMjr6IxuR9uFEDZt3G2tY29s4qPYNTr0/w+dvzTejXJWgvHiFy/AuUermZinOOSGkX0f2vECntQNea74yuquGCL48bWJ2+C6VhQfvnGw/4uqUWvodiFZFOxLE+Ox0u+OobUwCAyOlOR2gP/t+fAADrs+nwEwcAKu0Ee7FqHkq9DF1TkRlNhgOua6q3IRXrOHg3qOYAAJnRkZDALzdY4xxhLG5w07YBAG40xfQ4VzNaHj948LrtycQZmQn+wHhzQ++dVcPbnNmDo2a1jC0F+vnG2BLcSAx7ZqVng/YGfliEadtwjKWuqbvRFBqT9wEAj3OFcNthoWbhyxfNLmHPrN6YvBtNof7mp3C11MXQ1fvA1bN7H+cKyIwmsTo9BXv6Eziji6CzfSivy3AjMTgjM3DH7sGlGAo1Cw/+eirPdAgAG/Oz2FiYu/Hfnxy/xMPd5z13E+HgAJBOxLE8ZmBlagK6qnrz+OZJCZunZYhcQsFvhYCG4EPwIfgQfAg+BA9lyOr0VyuW6ZJ3LucC31iYw8b8rBDwj37+bXClsjI5IWwo4/0zBfEmJWrxjrlc4F88+1vIXJ09OOIOgTtxsy4GfNjHh+BD8CH4EDwccF1Tbx94OhEX8slZRk8OFrzXz2+80XjMGCz48nhKDPi4cTsTb34AFhtk4oawTbYyeWcw4CKhe3n3iP2FRoSC8wYReuLpRJyrzimsjdlrWyT2dOLCwXnCoLDT5i0/YnuBVF/AM3qSeYSQInGeuYXC7CitGzTVH/B+QvM8PwUvk5G+grOWoTSJsx53Ihk2Jk/XCtSD/OJRGhbUfBZuJA5EYj2BupoBR1+Ee3H4hiUclTVtxSqCqnlhKdsAGhfgLOVIrG+hYok93EsXp+JYf5cl1sSpkhMMnofiO0kXtM6JtaMor/LCN6Vy9px5UiQWaKodtaQjMnVW9VP3MvGJp15GPxaZ+8xtly3xar4v4ErD8g4VBxURMW3Mag79WorvuYNsUGIRD8vhX+ZyqR0zlQuxiKefS3mVY5qLKCzxtCde9DpWEBEFTly0eK5d1lHgOqcwxdMG49tD3UREYYqnvbMEFxGFKZ5OA1e3zhIs8Wp+IOAsIqKwxcMrIgpbPLwiorDFwysiCls8vCLqmvhAxMMhIpJBPDwiIhnEwyMikkE8PCIiGcTDIyKSRTysIiJZxMMqIpJFPKwiIlnEwyoikko8DCIimcTDIiKSSTwsIiKZxMMiIpJJPCwiItnEE1REJJt4goqIZBNPUBGRbOLpJqLLQzkkpXg6ieiin5OM4mlvi/m2OicZxdOpn69MNY/7kYziadugvi53OXCRjOK5VkT+1CcnQP7DYTKJp1udU8sMIGmpXFcu1PqWnMubuK8lZvTk7bnUwI1clbRZt0H+a81cLSUvuHbVREzbBvnvEuboi9KCO/pb3td7ZgW0eVLyvtG48wHzPYEGknY0Bce4unfLk+OXULOHRWwszEFXVbhaCvWFz6BUct3vxuTUBraZHd8NZwo1C5unZahm3caDP5/i2/fvNf93FIMrccmsbW1fDVmbJyV8/OsfQq+MFb1M28bD3WceY9v9VTKjSaQTsa4fSeuaKuRaoKDQ2YNiy1W7/wPaS0uDtSnukwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAA5CAYAAACvQ9JQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABExJREFUeNrUWmlIVFEUvvNmzLQicqm0LAmNoiCEoh9tYGBlfyuCFqG9kBbCNrIwKixaQelHUEQrEUHUjzCQFsyisEiyfy2KNW0gleY60zl4Xh0Ob8aZN/f5pgMfvnffffd+3nvuvd85b5SKzQoBNYDfDuAn4BZgqtJgywBtgKDD+AiYgx16bBLNBdQCUlkZjkZPFG0gkWSAl+67AB2AACAJkMDq1gG2+GySXcyIYicHAXeoo2jsHCCPrq8ATtE/gUQ3AFbTsymAVXZd4Dqbpts0EnbsPmvnsHiWCWhgz58aNjsZwK79NLp2zBuiTbQWWmSm+eyS7RAdGkq/yXaDdjrBKc9SLphhoz4ugmlukPVFSbQcsE65ZNGM7C5AiXLRIiW7GVCmXLZIyOLGfJS5zHdAoziJeuKB7FLASUAi3XcDNgEesjpYlgLIJ2Ez1o1Rx44/sxMEN/5ienaDlTeIk+YLuU0kuuMRe++YeDYE8Iw9fx5qN5gFOAMYzsoOACosZmSieDcdcJpESrnTboD68SJgDCtDnz0k/NTKusU/t9BJspOIKPe7SsBeoagGivcC5CJFgB9Uhsppj0VdLZaNfiGE73maTm4o3X6xOqgTtrLnZbQ7BEmILNDls+aDNMADQfQmrXJu6wGtrE47imJRZzzgHatTqpNsKglnTrQKMFK8vFaMKO4O2ywI4C5Qzeqd1UXWoEp8ITwGrCSdavr1RhIwg5iPltAebBWucAmZoHOBzWT3LwErGFG0CYAjzHfRH7cTeSsbCshg9990km1n95cAb0WdN7Squ2hrCkcUrQCQw2agwSmJaISY1gr6O4A2/FA2GrCbucsHwD2nyIY7Iiv7aCuLZiaPlV0ANLkVKYSyUUR0NiuropNPxRPZDAuimFJaQ4kPV8KaUESvmukdtvUt1zn9OkYWp/6aIPqEcmDv4yG6NQ2FzmUx9TiiS5wiGgvZ/WJEayiqaFIOml2y6ez6FZ16jhKNhWyXmP7GeMzIWFmiSLDFNdm4zXVZvdftUN5Atmvo8NnMMAFkJIRMk6fdYJKbf/u0e4Kh7l1E1/m0lVXbGOFhYu+eQbIymQ6XXHrWCXiNKqseMJkKd0YoPnJoF+Bb2FcV/TeFFBZJtFGAaUpRHv/VmbFePYtzdkTRUREJd6c/LWGGZ26sQga1aguJ7XEs7Akyf/RS4CdzDK1htLOHhfEvVO+XoFodqgu/AN5VvZnwEYxogBYhhuHTWX0/ZWqaw/Rtkm3kuQLT7LpBX1ZK2Rmz7U+AebE2qpusl+K0oCBaoGMEdJL1qX9fCU1g2nS+runSRRa3oOOCKG5nhTqPNR1kMVN4QhD165p63WSzafWb7TQ7QVSX6vLSkWjaPgrF45Ks/GLj/5/0bEJ/kLX7Kb4zBploO8mRRjkrj4r8JykBkndGf5PFdGaxiu63M0FaYMn9QdYQwV+ihnY9TvlskgPtOhLt/hFgAIuKeTqYe74JAAAAAElFTkSuQmCC\"","import { isJsonString } from \"../components/utilities/DataValidationUtilities\";\n\nexport const setCookie = (cookieName, cookieData) => {\n const today = new Date();\n const thirtyDaysOnFuture = today.setDate(today.getDate() + 30);\n const formattedExpirationDate = new Date(thirtyDaysOnFuture);\n\n let expires = \"expires=\" + formattedExpirationDate.toGMTString();\n document.cookie = cookieName + \"=\" + encodeURI(JSON.stringify(cookieData)) + \";\" + expires + \";path=/\";\n};\n\nexport const getCookie = (cookieName) => {\n var name = cookieName + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var entries = decodedCookie.split(\";\");\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n while (entry.charAt(0) === \" \") {\n entry = entry.substring(1);\n }\n if (entry.indexOf(name) === 0) {\n try {\n const jsonData = decodeURI(entry.substring(name.length, entry.length));\n const jsonVerified = isJsonString(jsonData);\n if (jsonVerified) return JSON.parse(jsonData);\n return false;\n } catch (e) {\n return false;\n }\n }\n }\n};\n\nexport const deleteCookie = (cookieName) => {\n var deletedCookieDate = \"expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n document.cookie = `${cookieName}=;${deletedCookieDate}`;\n};\n","import { setCookie, getCookie, deleteCookie } from \"./CookieService\";\nimport { isJsonString } from \"../components/utilities/DataValidationUtilities\";\nconst isFirefox = navigator.userAgent.indexOf(\"Firefox\") !== -1;\nlet isStorageAvailable = null;\n\nconst storageAvailable = () => {\n if (isStorageAvailable === null) {\n try {\n let x = \"__storage_test__\";\n localStorage.setItem(x, x);\n localStorage.removeItem(x);\n isStorageAvailable = true;\n } catch (e) {\n isStorageAvailable = false;\n }\n }\n\n return isStorageAvailable;\n};\n\nexport const setStorage = (key, storageData) => {\n if (!storageAvailable() || isFirefox) {\n return setCookie(key, storageData);\n } else {\n return localStorage.setItem(key, JSON.stringify(storageData));\n }\n};\n\nexport const getStorage = (key) => {\n let data = \"\";\n if (!storageAvailable() || isFirefox) {\n data = getCookie(key);\n if (data) {\n return data;\n }\n } else {\n data = localStorage.getItem(key);\n if (data) {\n try {\n const jsonVerified = isJsonString(data);\n if (jsonVerified) return JSON.parse(data);\n return false;\n } catch (e) {\n return false;\n }\n }\n }\n return false;\n};\n\nexport function getStorageOrDefault(key) {\n const storageValue = getStorage(key);\n if (!storageValue) {\n return undefined;\n }\n return storageValue;\n}\n\nexport const removeStorage = (key) => {\n const isAnExistingKey = getStorage(key);\n if (isAnExistingKey) {\n if (!storageAvailable() || isFirefox) {\n return deleteCookie(key);\n } else {\n return localStorage.removeItem(key);\n }\n }\n};\n\nexport const mergeDataToStorage = (key, newObj) => {\n let newData;\n const lastObject = getStorage(key);\n if (lastObject) {\n newData = Object.assign(lastObject, newObj);\n } else {\n newData = newObj;\n }\n return setStorage(key, newData);\n};\n","export const LOGIN = \"User/LOGIN\";\nexport const LOGGED_IN = \"User/LOGGED_IN\";\nexport const NOT_LOGGED_IN = \"User/NOT_LOGGED_IN\";\nexport const LOGIN_SUCCESSFUL = \"User/LOGIN_SUCCESSFUL\";\nexport const SET_USER_LANGUAGE = \"User/SET_USER_LANGUAGE\";\n","const REGEXP = /^[0-9a-zA-Z\\-_\\s]+$/;\n\nexport const checkNameIsValid = (data) => {\n if (data.length > 0) {\n const nameTester = REGEXP.test(data);\n if (nameTester) {\n return true;\n }\n return false;\n }\n return true;\n};\n\nexport const isJsonString = (jsonData) => {\n if (\n /^[\\],:{}\\s]*$/.test(\n jsonData\n .replace(/\\[\"\\\\\\/bfnrtu]/g, \"@\")\n .replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+]?\\d+)?/g, \"]\")\n .replace(/(?:^|:|,)(?:\\s*\\[)+/g, \"\")\n )\n ) {\n return true;\n }\n return false;\n};\n","module.exports = __webpack_public_path__ + \"static/media/supplychain-logo.d08c84bd.png\";"],"sourceRoot":""}