{"version":3,"sources":["components/dataCollectors/components/DataCollectorsPerformanceTable.module.scss","components/projects/ProjectsOverviewHealthRiskItem.module.scss","components/layout/Layout.module.scss","components/dataCollectors/components/DataCollectorsPerformanceMap.module.scss","components/projectDashboard/components/ProjectsDashboardNumbers.module.scss","components/dashboardTables/DashboardReportSexAgeTable.module.scss","components/nationalSocietyDashboard/components/NationalSocietyDashboardNumbers.module.scss","components/reports/ReportsEditPage.module.scss","components/forms/MultiSelect.module.scss","components/common/map/MarkerIcon.module.scss","components/projects/ProjectHealthRiskItem.module.scss","components/forms/PhoneInputField.module.scss","components/agreements/AgreementsPage.module.scss","components/reports/ReportsTable.module.scss","components/nationalSocietyReports/NationalSocietyReportsTable.module.scss","components/alertEvents/components/CreateAlertEventDialog.module.scss","components/verifyEmailPage/VerifyEmailPage.module.scss","components/dataCollectors/components/DataCollectorsPerformanceMapLegend.module.scss","components/dataCollectors/components/DataCollectorsPerformanceTableLegend.module.scss","components/smsGateways/SmsGatewaysCreateOrEditPage.module.scss","components/resetPasswordCallbackPage/ResetPasswordCallbackPage.module.scss","components/alertEvents/components/AlertEventExpandableText.module.scss","components/reports/ReportsListPage.module.scss","components/nationalSocietyReports/NationalSocietyReportsListPage.module.scss","components/common/loading/Loading.module.scss","components/layout/SideMenu.module.scss","components/common/buttons/submitButton/SubmitButton.module.scss","components/resetPasswordPage/ResetPasswordPage.module.scss","components/forms/RadioGroupField.module.scss","components/forms/DisplayField.module.scss","components/projects/ProjectErrorMessagesPage.module.scss","components/projectAlertNotHandledRecipient/components/ProjectAlertNotHandledRecipientItem.module.scss","components/layout/AnonymousLayout.module.scss","components/common/buttons/tableActionsButton/TableActionsButton.module.scss","components/forms/form/Form.module.scss","components/dataCollectors/components/DataCollectorsTable.module.scss","components/common/tablePagination/TablePager.module.scss","components/dataCollectors/components/DataCollectorMap.module.scss","components/maps/MarkerClusterComponent.module.scss","components/common/icon/DataCollectorStatusIcon.module.scss","components/common/stringsEditor/StringsEditor.module.scss","components/forms/TextInputWithHTMLPreviewField.module.scss","components/layout/StringsSwitcher.module.scss","components/layout/TabMenu.module.scss","components/forms/formActions/FormActions.module.scss","components/common/tableActions/TableActions.module.scss","components/common/confirmationAction/ConfirmationAction.module.scss","components/common/confirmationDialog/ConfirmationDialog.module.scss","components/common/buttons/cancelButton/CancelButton.module.scss","components/dataCollectors/components/ReplaceSupervisorDialog.module.scss","components/dataCollectors/components/DataCollectorsPerformanceMapFilters.module.scss","components/forms/DatePicker.module.scss","components/common/InlineTextEditor/InlineTextEditor.module.scss","components/common/filters/HealthRiskFilter.module.scss","components/projectDashboard/ProjectsDashboardPage.module.scss","components/alerts/AlertsAssessment.module.scss","components/alerts/components/AlertNotificationRecipients.module.scss","components/projects/ProjectsOverviewPage.module.scss","components/nationalSocietyDashboard/NationalSocietyDashboardPage.module.scss","components/translations/TranslationsFilters.module.scss","components/forms/VirtualizedAutocomplete.module.scss","components/common/table/Table.module.scss","components/common/tableRowAction/TableRowAction.module.scss","components/common/filters/LocationFilter.module.scss","components/loginPage/LoginPage.module.scss","components/app/theme.js","utils/actions.js","authentication/authConstants.js","authentication/authActions.js","components/reports/logic/reportsConstants.js","utils/forms.js","components/forms/FieldBase.jsx","components/forms/TextInputField.jsx","utils/cache.js","utils/page.js","utils/RequestError.js","utils/http.js","utils/lifecycle.js","components/common/loading/Loading.js","components/app/logic/appConstans.js","components/app/logic/appActions.js","components/forms/CheckboxField.jsx","components/common/stringsEditor/StringsEditorDialog.js","components/forms/TextInputWithHTMLPreviewField.js","components/common/stringsEditor/EmailStringsEditorDialog.js","components/forms/TextInputWithCharacterCountField.js","components/common/stringsEditor/SmsStringsEditorDialog.js","components/common/stringsEditor/StringsEditor.js","siteMapPlaceholders.js","authentication/roles.js","authentication/accessMap.js","components/eidsrIntegration/logic/eidsrIntegrationSiteMap.js","strings.js","assets/icons/Case-management.svg","components/layout/UserStatus.js","components/layout/Header.jsx","assets/icons/Health-post.svg","assets/icons/Monitor.svg","assets/icons/People-in-need-2.svg","assets/icons/Settings.svg","assets/icons/Account-circle.svg","assets/icons/Logout.svg","assets/icons/Feedback.svg","assets/icons/COVID-19.svg","assets/icons/Urban.svg","assets/icons/Remote-support.svg","assets/icons/Alerts.svg","assets/icons/collapse.svg","assets/icons/expand.svg","assets/icons/Expand-left.svg","components/icons/RcIcon.js","components/layout/MenuSection.jsx","components/app/ApplicationInsightsProvider.jsx","components/common/buttons/expandButton/ExpandButton.jsx","components/layout/AccountSection.jsx","components/layout/SideMenu.js","components/layout/StringsSwitcher.js","components/layout/BaseLayout.js","utils/disableFormZoom.js","components/layout/MessagePopup.js","components/projectSetup/logic/projectSetupConstants.js","components/projectSetup/logic/projectSetupReducer.js","initialState.js","components/app/logic/appReducer.js","authentication/authReducer.js","components/nationalSocieties/logic/nationalSocietiesConstants.js","utils/immutable.js","components/nationalSocieties/logic/nationalSocietiesReducer.js","components/smsGateways/logic/smsGatewaysConstants.js","components/smsGateways/logic/smsGatewaysReducer.js","components/projects/logic/projectsConstants.js","components/projects/logic/projectsReducer.js","components/app/logic/requestReducer.js","components/globalCoordinators/logic/globalCoordinatorsConstants.js","components/globalCoordinators/logic/globalCoordinatorsReducer.js","components/healthRisks/logic/healthRisksConstants.js","components/healthRisks/logic/healthRisksReducer.js","components/suspectedDiseases/logic/suspectedDiseaseConstants.js","components/suspectedDiseases/logic/suspectedDiseaseReducer.js","components/nationalSocietyUsers/logic/nationalSocietyUsersConstants.js","components/nationalSocietyUsers/logic/nationalSocietyUsersReducer.js","components/dataCollectors/logic/dataCollectorsConstants.js","components/dataCollectors/logic/dataCollectorsReducer.js","components/agreements/logic/agreementsConstants.js","components/agreements/logic/agreementsReducer.js","components/reports/logic/reportsReducer.js","components/nationalSocietyReports/logic/nationalSocietyReportsConstants.js","components/nationalSocietyReports/logic/nationalSocietyReportsReducer.js","components/nationalSocietyStructure/logic/nationalSocietyStructureConstants.js","components/nationalSocietyStructure/logic/nationalSocietyStructureReducer.js","components/projectDashboard/logic/projectDashboardConstants.js","components/projectDashboard/logic/projectDashboardReducer.js","components/alerts/logic/alertsConstants.js","components/alerts/logic/alertsReducer.js","components/nationalSocietyDashboard/logic/nationalSocietyDashboardConstants.js","components/nationalSocietyDashboard/logic/nationalSocietyDashboardReducer.js","components/translations/logic/translationsConstants.js","components/translations/logic/translationsReducer.js","components/organizations/logic/organizationsConstants.js","components/organizations/logic/organizationsReducer.js","components/projectOrganizations/logic/projectOrganizationsConstants.js","components/projectOrganizations/logic/projectOrganizationsReducer.js","components/projectAlertRecipients/logic/projectAlertRecipientsConstants.js","components/projectAlertRecipients/logic/projectAlertRecipientsReducer.js","components/projectAlertNotHandledRecipient/logic/projectAlertNotHandledRecipientsConstants.js","components/projectAlertNotHandledRecipient/logic/projectAlertNotHandledRecipientsReducer.js","components/alertEvents/logic/alertEventsConstants.js","components/alertEvents/logic/alertEventsReducer.js","utils/tracking.js","components/eidsrIntegration/logic/eidsrIntegrationConstants.js","components/eidsrIntegration/logic/eidsrIntegrationReducer.js","redux/reducers.js","components/nationalSocieties/logic/nationalSocietiesSiteMap.js","components/smsGateways/logic/smsGatewaysSiteMap.js","components/projects/logic/projectsSiteMap.js","components/projectSetup/logic/projectSetupSiteMap.js","components/globalCoordinators/logic/globalCoordinatorsSiteMap.js","components/healthRisks/logic/healthRisksSiteMap.js","components/suspectedDiseases/logic/suspectedDiseaseSiteMap.js","components/nationalSocietyUsers/logic/nationalSocietyUsersSiteMap.js","components/dataCollectors/logic/dataCollectorsSiteMap.js","components/reports/logic/reportsSiteMap.js","components/nationalSocietyReports/logic/nationalSocietyReportsSiteMap.js","components/nationalSocietyStructure/logic/nationalSocietyStructureSiteMap.js","components/projectDashboard/logic/projectDashboardSiteMap.js","components/agreements/logic/agreementsSiteMap.js","components/alerts/logic/alertsSiteMap.js","components/alertEvents/logic/alertEventsSiteMap.js","components/nationalSocietyDashboard/logic/nationalSocietyDashboardSiteMap.js","components/organizations/logic/organizationsSiteMap.js","components/projectOrganizations/logic/projectOrganizationsSiteMap.js","components/feedback/logic/feedbackSiteMap.js","siteMap.js","components/translations/logic/translationsSiteMap.js","utils/siteMapService.js","utils/localStorage.js","components/app/logic/appSagas.js","authentication/auth.js","authentication/authSagas.js","components/nationalSocieties/logic/nationalSocietiesActions.js","components/nationalSocieties/logic/nationalSocietiesSagas.js","components/smsGateways/logic/smsGatewaysActions.js","components/smsGateways/logic/smsGatewaysSagas.js","components/projects/logic/projectsActions.js","utils/date.js","components/projects/logic/projectsSagas.js","components/projectSetup/logic/projectSetupActions.js","components/projectSetup/logic/projectSetupSagas.js","components/globalCoordinators/logic/globalCoordinatorsActions.js","components/globalCoordinators/logic/globalCoordinatorsSagas.js","components/healthRisks/logic/healthRisksActions.js","components/healthRisks/logic/healthRisksSagas.js","components/suspectedDiseases/logic/suspectedDiseaseActions.js","components/suspectedDiseases/logic/suspectedDiseaseSagas.js","components/nationalSocietyUsers/logic/nationalSocietyUsersActions.js","components/nationalSocietyUsers/logic/nationalSocietyUsersSagas.js","components/dataCollectors/logic/dataCollectorsActions.js","utils/downloadFile.js","components/dataCollectors/logic/dataCollectorsSagas.js","components/agreements/logic/agreementsActions.js","components/agreements/logic/agreementsSagas.js","components/reports/logic/reportsActions.js","components/common/filters/logic/reportFilterConstsants.js","components/reports/logic/reportsSagas.js","components/nationalSocietyReports/logic/nationalSocietyReportsActions.js","components/nationalSocietyReports/logic/nationalSocietyReportsSagas.js","components/nationalSocietyStructure/logic/nationalSocietyStructureActions.js","components/nationalSocietyStructure/logic/nationalSocietyStructureSagas.js","components/projectDashboard/logic/projectDashboardActions.js","utils/pdf.js","components/projectDashboard/logic/projectDashboardSagas.js","components/alerts/logic/alertsActions.js","components/alerts/logic/alertsSagas.js","components/alertEvents/logic/alertEventsActions.js","components/alertEvents/logic/alertEventsSagas.js","components/nationalSocietyDashboard/logic/nationalSocietyDashboardActions.js","components/nationalSocietyDashboard/logic/nationalSocietyDashboardSagas.js","components/translations/logic/translationsActions.js","components/translations/logic/translationsSagas.js","components/organizations/logic/organizationsActions.js","components/organizations/logic/organizationsSagas.js","components/projectOrganizations/logic/projectOrganizationsActions.js","components/projectOrganizations/logic/projectOrganizationsSagas.js","components/projectAlertRecipients/logic/projectAlertRecipientsActions.js","components/projectAlertRecipients/logic/projectAlertRecipientsSagas.js","components/projectAlertNotHandledRecipient/logic/projectAlertNotHandledRecipientsActions.js","components/projectAlertNotHandledRecipient/logic/projectAlertNotHandledRecipientsSagas.js","components/eidsrIntegration/logic/eidsrIntegrationActions.js","components/eidsrIntegration/logic/eidsrIntegrationSagas.js","redux/sagas.js","utils/sagaEffects.js","history.js","store.js","redux/configureStore.js","utils/appInsightsHelper.js","utils/useDashboardScrollingTracking.js","components/layout/TabDropdown.jsx","components/layout/ProjectMenu.jsx","components/layout/TabMenu.js","components/layout/BottomMenu.jsx","components/layout/Layout.js","utils/layout.js","components/homePage/Home.js","components/layout/AnonymousLayout.js","components/forms/PasswordInputField.jsx","components/forms/ValidationMessage.js","components/forms/formActions/FormActions.js","components/common/buttons/submitButton/SubmitButton.js","components/loginPage/LoginPage.js","components/app/AuthRoute.js","components/common/tableActions/TableActions.js","components/common/confirmationAction/ConfirmationAction.js","components/common/hasAccess/HasAccess.js","components/common/tableRowAction/TableRowAction.js","components/common/tableRowAction/TableRowActions.js","components/common/tableRowAction/TableRowMenu.js","components/common/buttons/cancelButton/CancelButton.js","components/common/confirmationDialog/ConfirmationDialog.js","components/nationalSocieties/NationalSocietiesTable.js","components/common/buttons/tableActionsButton/TableActionsButton.js","components/nationalSocieties/NationalSocietiesListPage.js","components/forms/form/Form.js","components/forms/SelectField.jsx","components/nationalSocieties/NationalSocietiesCreatePage.js","components/nationalSocieties/NationalSocietiesEditPage.js","components/nationalSocieties/NationalSocietiesOverviewPage.js","components/smsGateways/SmsGatewaysTable.js","components/smsGateways/SmsGatewaysListPage.js","components/smsGateways/logic/smsGatewayTypes.js","components/smsGateways/SmsGatewaysCreatePage.js","components/smsGateways/SmsGatewaysEditPage.js","components/projects/ProjectsTable.js","components/projects/ProjectsListPage.js","components/forms/MultiSelect.js","components/projects/ProjectHealthRiskItem.js","components/projects/logic/projectsService.js","components/projects/ProjectsCreatePage.js","components/layout/SubMenuTitle.jsx","components/projects/ProjectsEditPage.js","components/verifyEmailPage/VerifyEmailPage.js","components/globalCoordinators/GlobalCoordinatorsTable.js","components/globalCoordinators/GlobalCoordinatorsListPage.js","components/forms/PhoneInputField.jsx","components/globalCoordinators/GlobalCoordinatorsCreatePage.js","components/globalCoordinators/GlobalCoordinatorsEditPage.js","components/resetPasswordPage/ResetPasswordPage.js","components/resetPasswordCallbackPage/ResetPasswordCallbackPage.js","components/healthRisks/HealthRisksTable.js","components/healthRisks/HealthRisksListPage.js","components/healthRisks/logic/healthRisksService.js","components/healthRisks/HealthRisksCreatePage.js","components/healthRisks/HealthRisksEditPage.js","components/suspectedDiseases/SuspectedDiseaseTable.js","components/suspectedDiseases/SuspectedDiseaseListPage.js","components/suspectedDiseases/logic/suspectedDiseaseService.js","components/suspectedDiseases/SuspectedDiseaseCreatePage.js","components/suspectedDiseases/SuspectedDiseaseEditPage.js","components/nationalSocietyUsers/NationalSocietyUsersTable.js","components/nationalSocietyUsers/NationalSocietyUsersListPage.js","utils/birthYear.js","components/nationalSocietyUsers/NationalSocietyUsersCreatePage.js","components/nationalSocietyUsers/NationalSocietyUsersAddExistingPage.js","components/nationalSocietyUsers/NationalSocietyUsersEditPage.js","components/agreements/AgreementsPage.js","components/common/tableHeader/TableHeader.jsx","components/common/tablePagination/TablePager.js","components/dataCollectors/components/DataCollectorsTable.js","utils/debounce.js","components/common/filters/logic/locationFilterService.js","components/common/filters/LocationItem.js","components/common/selectAll/SelectAll.js","components/common/filters/DropdownPopover.jsx","components/common/filters/LocationFilter.js","components/common/filters/useLocalFilters.js","components/common/filters/useLocationFilter.js","components/common/filters/DrawerFilter.jsx","components/dataCollectors/components/DataCollectorsFilters.js","components/dataCollectors/components/ReplaceSupervisorDialog.js","components/dataCollectors/DataCollectorsListPage.js","utils/map.js","components/common/map/MarkerIcon.js","components/dataCollectors/logic/dataCollectorsService.js","components/dataCollectors/components/DataCollectorsPerformanceMap.js","components/forms/DatePicker.js","components/dataCollectors/components/DataCollectorsPerformanceMapFilters.js","components/dataCollectors/components/DataCollectorsPerformanceMapLegend.js","components/dataCollectors/DataCollectorsMapOverviewPage.js","components/forms/RadioGroupField.jsx","components/dataCollectors/components/DataCollectorMap.js","components/common/conditionalCollapse/ConditionalCollapse.js","components/dataCollectors/components/DataCollectorLocationItem.js","components/dataCollectors/DataCollectorsCreatePage.js","components/dataCollectors/DataCollectorsEditPage.js","components/common/InlineTextEditor/InlineTextEditor.js","components/nationalSocietyStructure/NationalSocietyLocationListItem.js","components/nationalSocietyStructure/NationalSocietyLocationList.js","components/nationalSocietyStructure/NationalSocietyStructurePage.js","components/reports/logic/reportsService.js","utils/sortReportByStatus.js","components/common/chip/ReportStatusChip.jsx","components/reports/CorrectReportsTable.js","components/common/filters/ReportStatusFilter.js","components/common/filters/HealthRiskFilter.js","components/common/filters/ReportFilters.js","components/forms/AutocompleteTextInputField.js","components/forms/TimePicker.js","components/reports/SendReportDialog.js","components/reports/CorrectReportsListPage.js","components/forms/DateInputField.jsx","components/reports/ReportsEditPage.js","components/projectDashboard/components/ProjectsDashboardFilters.js","components/projectDashboard/components/ProjectsDashboardNumbers.js","components/maps/MarkerClusterComponent.js","components/maps/ReportsMap.js","utils/useHoverChartTracking.js","components/dashboardCharts/DashboardReportsMap.js","components/dashboardCharts/DashboardReportChart.js","components/dashboardCharts/DashboardReportSexAgeChart.js","components/dashboardTables/DashboardReportSexAgeTable.js","components/dashboardCharts/DashboardDataCollectionPointChart.js","components/dashboardCharts/DashboardReportVillageChart.js","components/dashboard/MapAndDashboardNumbers.jsx","components/dashboardCharts/DashboardReportsSexAgePyramidChart.jsx","components/dashboardCharts/DashboardKeptReportByHealthRiskChart.jsx","utils/dateStrings.js","components/projectDashboard/ProjectsDashboardPage.js","components/common/table/TableNoData.js","components/common/chip/AlertStatusChip.jsx","components/alerts/components/AlertsTable.js","components/alerts/components/AlertsFilters.js","components/alerts/AlertsListPage.js","components/forms/DisplayField.jsx","components/alerts/components/AlertsAssessmentReport.js","components/alerts/components/AlertsEscalationDialog.js","components/alerts/components/AlertsCloseDialog.js","components/alerts/components/AlertsEscalationWithoutNotificationDialog.js","components/common/buttons/goBackToButton/GoBackToButton.jsx","components/alerts/components/AlertsAssessmentActions.js","components/alerts/components/AlertNotificationRecipients.js","components/alerts/AlertsAssessmentPage.js","components/projects/ProjectsOverviewPage.js","components/projects/ProjectsOverviewHealthRiskItem.js","components/projects/ProjectHealthRisksPage.jsx","components/projects/ProjectHealthRisksEditPage.jsx","components/common/icon/DataCollectorStatusIcon.js","components/dataCollectors/components/DataCollectorsPerformanceTable.js","components/dataCollectors/components/DataCollectorsPerformanceFilters.js","components/dataCollectors/components/DataCollectorsPerformanceTableLegend.js","components/dataCollectors/DataCollectorsPerformancePage.js","components/nationalSocietyDashboard/components/NationalSocietyDashboardFilters.js","components/nationalSocietyDashboard/components/NationalSocietyDashboardNumbers.js","components/nationalSocietyDashboard/NationalSocietyDashboardPage.js","components/translations/TranslationsTable.js","components/translations/TranslationsFilters.js","components/translations/TranslationsListPage.js","components/layout/NotFoundPage.js","components/organizations/OrganizationsTable.js","components/organizations/OrganizationsListPage.js","components/organizations/OrganizationsCreatePage.js","components/organizations/OrganizationsEditPage.js","components/projectOrganizations/ProjectOrganizationsTable.js","components/projectOrganizations/ProjectOrganizationsListPage.js","components/projectOrganizations/ProjectOrganizationsCreatePage.js","components/translations/EmailTranslationsListPage.js","components/translations/SmsTranslationsListPage.js","components/projectAlertRecipients/ProjectAlertRecipientsCreatePage.js","components/projectAlertRecipients/ProjectAlertRecipientsEditPage.js","components/reports/CorrectedButton.js","components/reports/IncorrectReportsTable.js","components/reports/IncorrectReportsListPage.js","components/nationalSocietyReports/NationalSocietyCorrectReportsTable.js","components/nationalSocietyReports/NationalSocietyCorrectReportsListPage.js","components/nationalSocietyReports/NationalSocietyIncorrectReportsTable.js","components/nationalSocietyReports/NationalSocietyIncorrectReportsListPage.js","components/alertEvents/components/AlertEventExpandableText.js","components/alertEvents/components/EditAlertEventDialog.js","components/alertEvents/components/AlertEventsTable.js","components/alertEvents/components/CreateAlertEventDialog.js","components/alertEvents/AlertEventsLogPage.js","components/common/settingsTableHeader/SettingsTableHeader.jsx","components/projects/ProjectErrorMessagesPage.js","components/eidsrIntegration/components/EidsrIntegrationNotEnabled.js","components/forms/PasswordDisplayField.jsx","components/eidsrIntegration/EidsrIntegrationPage.js","components/eidsrIntegration/components/DistrictAccordion.js","components/forms/VirtualizedAutocomplete.js","components/app/logic/appService.js","components/eidsrIntegration/components/EidsrIntegratonEditPageDistricts.js","components/eidsrIntegration/components/districtValidator.js","components/eidsrIntegration/EidsrIntegrationEditPage.js","components/feedback/FeedbackPage.jsx","components/projectAlertNotHandledRecipient/components/ProjectAlertNotHandledRecipientItem.js","components/projectAlertNotHandledRecipient/ProjectAlertNotHandledRecipientsPage.js","components/projectAlertRecipients/ProjectAlertRecipientsTable.js","components/projectAlertRecipients/ProjectAlertRecipientsListPage.js","components/common/stepper/SetupStepper.jsx","components/projectSetup/ProjectSetupName.jsx","components/projectSetup/ProjectSetupOrganization.jsx","components/projectSetup/ProjectSetupRecipients.jsx","components/common/healthRisk/HealthRiskCardEditable.jsx","components/projectSetup/ProjectSetupHealthRisk.jsx","components/projectSetup/ProjectSetupGeographicalStructure.jsx","components/projectSetup/ProjectSetupSummary.jsx","components/projectSetup/ProjectSetupPage.jsx","components/app/App.js","index.js","components/dataCollectors/components/DataCollectorLocationItem.module.scss","components/alerts/components/AlertsAssessmentReport.module.scss","components/eidsrIntegration/EidsrIntegration.module.scss","components/layout/UserStatus.module.scss"],"names":["module","exports","nyssPalette","primary","main","contrastText","light","secondary","dark","additional1","lightest","background","default","backgroundDark","createTheme","palette","augmentColor","text","theme","direction","breakpoints","values","xs","sm","md","lg","xl","typography","fontFamily","body1","fontSize","color","body2","button","h1","fontWeight","margin","h2","h3","h4","h5","h6","overrides","MuiButton","root","padding","textTransform","outlinedPrimary","border","containedPrimary","boxShadow","MuiIconButton","MuiMenu","paper","maxHeight","MuiPaper","elevation1","borderRadius","MuiInput","backgroundColor","input","transitionDelay","formControl","marginTop","multiline","inputMultiline","underline","borderBottom","borderBottomColor","MuiFormLabel","transform","lineHeight","focused","MuiFormControlLabel","marginRight","marginLeft","label","MuiInputLabel","zIndex","shrink","right","overflow","textOverflow","MuiInputAdornment","positionEnd","MuiLink","underlineHover","textDecoration","MuiListItem","paddingLeft","MuiListItemText","textAlign","MuiTableContainer","MuiTable","borderTop","borderLeft","borderRight","MuiTableHead","whiteSpace","MuiTableCell","head","stickyHeader","MuiTabs","indicator","height","MuiCard","MuiCardHeader","title","MuiCardContent","paddingBottom","MuiTab","opacity","textColorInherit","MuiTreeItem","content","cursor","selected","paddingRight","iconContainer","group","MuiExpansionPanel","MuiExpansionPanelActions","MuiDivider","MuiDialogTitle","MuiRadio","colorSecondary","width","MuiCheckbox","MuiTableSortLabel","verticalAlign","MuiAutocomplete","inputRoot","endAdornment","left","MuiTooltip","tooltip","MuiSwitch","MuiLinearProgress","marginBottom","MuiPopover","maxWidth","MuiSelect","icon","select","MuiChip","deleteIcon","MuiFormHelperText","MuiSnackbarContent","action","name","INVOKE","REQUEST","SUCCESS","FAILURE","getId","id","invoke","args","type","request","success","failure","LOGIN","LOGOUT","VERIFY_EMAIL","RESET_PASSWORD","RESET_PASSWORD_CALLBACK","localStorageUserIdKey","login","userName","password","redirectUrl","message","suppressPopup","logout","verifyEmail","email","token","resetPassword","resetPasswordCallback","OPEN_CORRECT_REPORTS_LIST","OPEN_INCORRECT_REPORTS_LIST","GET_CORRECT_REPORTS","GET_INCORRECT_REPORTS","OPEN_REPORT_EDITION","EDIT_REPORT","EXPORT_TO_CSV","EXPORT_TO_EXCEL","MARK_AS_ERROR","OPEN_SEND_REPORT","ACCEPT_REPORT","DISMISS_REPORT","TRACK_REPORT_EXPORT","MARK_AS_CORRECTED","MARK_AS_NOT_CORRECTED","DateColumnName","reportStatus","reportSexes","male","female","unspecified","reportAges","belowFive","aboveFour","reportCountToSexAge","countMalesAtLeastFive","sex","age","countMalesBelowFive","countFemalesAtLeastFive","countFemalesBelowFive","countUnspecifiedSexAndAge","ReportErrorType","reportDetailedFormatErrors","ReportType","validateField","field","formValues","_validators","length","validator","Error","isValid","value","errorMessage","_customError","validateFields","fields","hasOwnProperty","update","error","getFormValues","result","createFormField","validatorDefinition","form","formSubscribers","ref","subscribers","touched","subscribe","callback","push","unsubscribe","splice","indexOf","_subscribers","newValue","suspendValidation","subscriber","onChange","scrollTo","current","scrollIntoView","newValidators","useCustomErrors","useEffect","setCustomErrors","data","createForm","validators","refs","subscribeToForm","errors","customErrorsKeys","Object","keys","hasNewState","customErrorKey","find","e","replace","toLowerCase","errorMessages","isStringKey","extractString","getValues","addField","fieldValidators","clearCustomErrors","removeField","_","__","subscribeOnce","revalidateField","emailRegex","phoneNumberRegex","timeRegex","phoneNumber","strings","stringKeys","validation","invalidPhoneNumber","test","required","fieldRequired","requiredWhen","fieldGetter","integer","invalidInteger","isNaN","Number","minLength","stringsFormat","tooShortString","maxLength","tooLongString","invalidEmail","emailWhen","moduloTen","invalidModuloTen","nonNegativeNumber","valueCannotBeNegative","inRange","min","max","time","invalidTimeFormat","sexAge","sexOrAgeUnspecified","uniqueLocation","allLocations","duplicateLocation","filter","l","villageId","toString","zoneId","timeNotInFuture","valueDate","dayjs","format","isAfter","FieldBase","props","setAutoCompleteValue","inputValue","handleChange","val","getElementType","nativeEvent","target","getValue","setState","subscribeOnChange","checked","handleBlur","element","toISOString","tagName","state","undefined","subscription","this","Component","rest","controlProps","onBlur","customProps","PureComponent","createFieldComponent","TextInputField","rows","autoWidth","autoFocus","disabled","inputMode","className","fieldRef","placeholder","classNameInput","classNameLabel","TextField","helperText","fullWidth","InputLabelProps","InputProps","inputProps","step","cache","set","key","dependencies","reloadPage","window","location","href","RequestError","post","path","anonymous","abortSignal","callApi","Accept","get","getCached","setter","Promise","resolve","then","deleteHttp","put","handleValidationError","response","stringKey","responseNotSuccessful","method","headers","reject","init","redirect","credentials","Headers","Pragma","Expires","userLanguage","signal","body","JSON","stringify","fetch","ok","status","json","redirected","notAuthenticated","unauthorized","catch","tooManyRequests","useMount","mount","Loading","style","inline","noWait","absolute","top","useState","visible","setVisible","timer","setTimeout","clearTimeout","styles","loader","version","xmlns","x","y","viewBox","fill","d","attributeType","attributeName","from","to","dur","repeatCount","ROUTE_CHANGED","INIT_APPLICATION","GET_APP_DATA","GET_STRINGS","GET_USER","OPEN_MODULE","SHOW_MESSAGE","CLOSE_MESSAGE","ENTITY_UPDATED","SWITCH_STRINGS","STRINGS_UPDATED","SMS_STRINGS_UPDATED","EMAIL_STRINGS_UPDATED","STRINGS_DELETED","SMS_STRINGS_DELETED","EMAIL_STRINGS_DELETED","SET_APP_READY","PAGE_FOCUSED","TOGGLE_SIDE_MENU","EXPAND_SIDE_MENU","SEND_FEEDBACK","showMessage","messageKey","actions","entityUpdated","entity","entities","setAppReady","toggleSideMenu","initApplication","getUser","isAuthenticated","user","getAppData","contentLanguages","countries","isDevelopment","isDemo","authCookieExpiration","applicationInsightsConnectionString","getStrings","openModule","params","parameters","generalMenu","sideMenu","tabMenu","projectTabMenu","subTitle","sendFeedback","CheckboxField","FormControlLabel","control","Checkbox","FormHelperText","StringsEditorDialog","close","setForm","languageCodes","setLanguageCodes","dispatch","useDispatch","encodeURI","translations","map","t","languageCode","translationFields","reduce","prev","needsImprovement","handleSave","dto","lang","updateStrings","Dialog","open","onClose","onClick","stopPropagation","onKeyDown","DialogTitle","DialogContent","Grid","container","spacing","item","index","DialogActions","Button","variant","TextInputWithHTMLPreviewField","dangerouslySetInnerHTML","__html","htmlPreview","EmailStringsEditorDialog","useTheme","fullScreen","useMediaQuery","down","TextInputWithCharacterCountField","Typography","smsCharacters","smsParts","parseInt","SmsStringsEditorDialog","StringsEditor","setOpen","preventDefault","placeholders","Administrator","GlobalCoordinator","TechnicalAdvisor","DataConsumer","Manager","Supervisor","Coordinator","HeadSupervisor","accessMap","nationalSocieties","showDashboard","list","add","edit","delete","archive","nationalSocietyStructure","smsGateways","eidsrIntegration","organizations","projects","settings","overview","projectHealthRisks","nationalSocietyUsers","headManagerAccess","globalCoordinators","healthRisks","suspectedDiseases","dataCollectors","performanceList","export","replaceSupervisor","projectOrganizations","projectAlertNotifications","addRecipient","editRecipient","deleteRecipient","reports","sendReport","goToAlert","crossCheck","nationalSocietyReports","alerts","assess","alertEvents","projectErrorMessages","feedback","send","eidsrIntegrationSiteMap","parentPath","access","placeholderIndex","middleStepOnly","editionTitle","stringList","showKeys","areStringKeysDisplayed","errorPage","goHome","notFound","roles","welcome","signIn","forgotPassword","notSucceeded","lockedOut","nationalSociety","reopen","creationTitle","initialOrganizationName","country","contentLanguage","epiWeekStandard","Sunday","description","Monday","enableEidsrIntegration","messages","create","startDate","coordinator","headManager","technicalAdvisor","structure","introduction","removalConfirmation","saveEdition","saveNew","addRegion","addDistrict","addVillage","addZone","locationHeader","region","district","village","zone","setHead","notAMemberOfSociety","reportsMap","report","healthRisk","healthRiskCode","healthRiskType","translationsSection","alertsSection","suspectedDiseaseTitle","suspectedDiseaseList","noAlertRule","alertRuleDescription","alertRuleCountThreshold","alertRuleDaysThreshold","alertRuleKilometersThreshold","contentLanguageName","contentLanguageCaseDefinition","contentLanguageFeedbackMessage","constants","human","nonhuman","unusualevent","activity","suspectedDisease","suspectedDiseaseCode","suspectedDiseaseName","smsGateway","apiKeyCopied","apiKey","gatewayType","telerivetApiKey","telerivetProjectId","gatewayApiKeyName","gatewayApiKey","gatewayExtraKeyName","gatewayExtraKey","gatewayUrl","gatewayAuthUrl","gatewaySenderId","emailAddress","useIotHub","iotHubDeviceName","ping","pingIsRequired","useDualModem","modemOneName","modemTwoName","apiBaseUrl","trackerProgramId","locationDataElementId","dateOfOnsetDataElementId","phoneNumberDataElementId","suspectedDiseaseDataElementId","eventTypeDataElementId","genderDataElementId","districts","organisationUnits","choseOrganisationUnit","noDistricts","loading","noOptions","connNotTested","testConn","testConnToContinue","allDistrictsShouldOrgUnit","dataNotSet","dataElements","eidsrApi","ConnectionError","organization","isDefaultOrganization","projectOrganization","projectAlertRecipient","role","supervisors","anyHealthRisk","triggerDetails","receiverDetails","anySupervisor","modem","projectAlertNotHandledRecipient","project","settingsRootTitle","addNew","healthRisksEditionTitle","allowMultipleOrganizations","healthRisksSection","overviewHealthRisksSection","caseDefinition","feedbackMessage","alertRuleDaysThresholdEdit","alertRuleDays","alertRuleDay","alertRuleKilometersThresholdEdit","alertRuleKilometer","alertNotHandledNotificationRecipient","totalReportCount","totalDataCollectorCount","escalatedAlertCount","supervisorCount","endDate","ongoing","removalConfirmationText","removalConfirmationTextTwo","tooLongWarning","projectSetup","projectName","projectRecipients","cancelDialog","geographicalStructure","summary","notUpdated","dashboard","printTitle","printTitleNationalSociety","numbers","reportCountTitle","openAlerts","dismissedAlerts","escalatedAlerts","closedAlerts","numberOfVillages","numberOfDistricts","filters","timeGrouping","timeGroupingDay","timeGroupingWeek","organizationsAll","healthRiskAll","reportsType","allReportsType","dataCollectorReportsType","dataCollectionPointReportsType","trainingStatus","reportsPerHealthRisk","numberOfReports","periods","reportsPerFeature","total","below5","above5","unspecifiedAge","unspecifiedSex","reportsPerFeatureAndDate","femalesBelow5","femalesAbove5","malesBelow5","malesAbove5","unspecifiedSexAndAge","percentageOfReportedPeople","titlePercentage","reportsPerVillageAndDate","dataCollectionPointReportsByDate","referredToHospitalCount","keptReportsInEscalatedAlerts","timeRangeDescription","yLabel","activeDataCollectorCount","fromOtherVillagesCount","deathCount","dataCollectionPoints","alertsSummary","geographicalCoverageSummary","generatePdf","buttons","all","globalCoordinator","additionalPhoneNumber","nationalSocietyUser","addExisting","addExistingTitle","addExistingDescription","decadeOfBirth","customOrganization","projectIsClosed","projectIsMissing","confirmCoordinatorCreation","confirmCoordinatorCreationText","headSupervisor","headSupervisorNotAssigned","remove","notVerified","creationSuccessful","roleNotValid","exportExcel","exportCsv","dataCollectorType","displayName","latitude","longitude","birthYearGroup","supervisor","retrieveLocation","newSupervisor","replaceSupervisorWarning","selectLocation","deployed","addLocation","personalia","removeLocation","locationsHeader","showYourLocation","retrievingLocation","responsibleSupervisor","noDistrictsAlert","noVillagesAlert","noZonesAlert","setToInTraining","takeOutOfTraining","supervisorReplacedSuccessfully","setToDeployed","setToNotDeployed","completenessTitle","completenessDescription","completenessValueDescription","villageName","daysSinceLastReport","epiWeek","legend","ReportingCorrectly","NotReporting","ReportingWithErrors","supervisorsAll","sexAll","deployedMode","resetAll","other","Human","CollectionPoint","All","InTraining","Trained","Deployed","NotDeployed","mapOverview","date","dataCollectorDisplayName","malesBelowFive","malesAtLeastFive","femalesBelowFive","femalesAtLeastFive","referredCount","exportToExcel","exportToCsv","editReport","editedSuccesfully","acceptReport","dismissReport","acceptReportSuccess","dismissReportSuccess","errorType","corrected","markAsCorrected","senderSectionTitle","contentSectionTitle","statusSectionTitle","reportSex","reportAge","dataCollector","reportPartOfAlertLabel","selectDcFirst","selectDcAndLocationFirst","nationalSocietyReportsTitle","correctReportsTitle","incorrectReportsTitle","dateOfReport","timeOfReport","goToReportList","errorTypes","GlobalHealthRiskCodeNotFound","HealthRiskNotFound","FormatError","GatewayError","TooLong","DataCollectorUsedCollectionPointFormat","CollectionPointUsedDataCollectorFormat","CollectionPointNonHumanHealthRisk","SingleReportNonHumanHealthRisk","AggregateReportNonHumanHealthRisk","EventReportHumanHealthRisk","GenderAndAgeNonHumanHealthRisk","Gateway","Other","New","Rejected","Accepted","Pending","Closed","sexAgeConstants","dateTime","reportCount","healthRisksAll","details","closeReason","goBack","Open","Escalated","Dismissed","ToDismiss","ToEscalate","statusDescription","closed","escalated","dismissed","rejected","escalatedOutcomes","ActionTaken","alert","closeConfirmation","closeDescription","escalate","escalateConfirmation","escalateConfirmationInformDataCollectors","escalateNotificationEmails","escalateNotificationSmses","escalateWithoutNotification","escalateWithoutNotificationDialogTitle","escalateWithoutNotificationConfirmation","dismiss","escalationPossible","dismissalPossible","escalatedSuccessfully","dismissedSuccessfully","closedSuccessfully","eidsrValidation","connection","integrationValid","validReportsCount","tip","accept","reset","resetSuccessfully","sender","linkedToSupervisor","sent","reportId","escalatedTo","thresholdInfo","threshold","days","day","in","within","kilometers","eventLog","subtype","comment","dateOfEvent","timeOfEvent","alertStatus","eventTypes","Investigation","Outcome","Summary","PublicHealthActionTaken","eventSubtypes","Investigated","NotInvestigated","Unknown","CasePositiveLab","PresumedCasePositiveClinical","PresumedCasePositiveUnknown","CaseNegativeLab","PresumedCaseNegativeClinical","PresumedCaseNegativeUnknown","Recovered","Deceased","ImmunizationCampaign","HealthMessagesAwarenessRaising","Referral","Isolation","ProvidedORS","AnimalsDisposed","SafeDignifiedBurials","CommunityMeeting","AssistedInvestigation","CleanupFogging","Female","Male","Unspecified","BelowFive","AtLeastFive","logType","TriggeredAlert","EscalatedAlert","DismissedAlert","ClosedAlert","AcceptedReport","RejectedReport","ResetReport","area","unknown","selectAll","showResults","selectReportListType","mainReportsListType","dcpReportListType","unknownSenderReportListType","reportType","nonTrainingReports","correctedReports","kept","notCrossChecked","selectErrorType","isCorrected","WrongFormat","correctedStates","Corrected","NotCorrected","autocomplete","table","noData","cancel","confirm","inlineSave","setPassword","failed","registration","passwordTooWeak","enterEmail","submit","enterNewPassword","emailSent","goToLoginPage","noHealthRiskSelected","phoneNumberInvalid","nationalSocietyConsents","consentText","nationalSocietyWithUpdatedAgreement","nationalSocietiesWithUpdatedAgreement","agreeToContinue","postpone","iConsent","setAsHeadManager","pendingHeadManager","setSuccessfully","selectLanguage","downloadDirectly","common","previous","finish","next","tryAgain","confirmCancelation","denyCancelation","boolean","true","false","emailTitle","smsTitle","thankYouTitle","thankYouDescription","errorTitle","errorDescription","account","general","substr","stringPrefix","keyValue","noEditor","extractKey","substring","assign","_path","mapDispatchToProps","UserStatus","connect","anchorEl","setAnchorEl","useSelector","appData","handleClose","userStatusContainer","userStatus","rtl","currentTarget","arrow","Menu","popover","MenuItem","authCaption","ListItemText","authButton","Icon","fontIcon","useStyles","makeStyles","hamburgerMenu","up","display","smallLogo","logo","header","Header","sideMenuOpen","mobile","isSupervisor","includes","classes","isSmallScreen","paddingTop","src","alt","justifyContent","Date","getTime","_extends","i","arguments","source","prototype","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgCaseManagement","_ref","svgRef","titleId","ForwardRef","SvgHealthPost","SvgMonitor","_g","SvgPeopleInNeed2","cx","cy","r","SvgSettings","SvgAccountCircle","SvgLogout","SvgFeedback","_defs","SvgCovid19","clipPath","SvgUrban","SvgRemoteSupport","SvgAlerts","_circle","_path2","SvgCollapse","SvgExpand","RcIcon","SvgIcon","component","MonitorSvg","HealthPostSvg","CaseManagementSvg","PeopleInNeed2Svg","SettingsSvg","UserCircleSvg","LogoutSvg","FeedbackSvg","CovidSvg","UrbanSvg","RemoteSupportSvg","AlertsSvg","ExpandSvg","CollapseSvg","MenuSection","menuItems","handleItemClick","menuTitle","isExpanded","useRtlDirection","SideMenuIcon","ListItemIconWrapper","minWidth","SideMenuText","SideMenuTextWrapper","ListItemActive","ListItem","SubHeader","position","Divider","Hide","userSelect","List","subheader","ListSubheader","disableGutters","isActive","Tooltip","ListItemIcon","noWrap","SvgExpandLeft","ai","ExpandButton","triangleBackground","backgroundImage","invertedButton","IconButton","ExpandLeftSVG","AccountSection","AccordionContainer","bottom","Accordion","AccordionExpanded","AccordionSummary","AccordionSummaryContent","flexDirection","alignItems","gap","AccordionSummaryContentCollapsed","AccordionSummaryRoot","AccordionSummaryExpanded","AccordionDetails","ListItemUser","ListItemTextUserContainer","ListItemTextUser","ListItemTextWrapper","ListItemIconCollapsed","User","Account","square","expanded","disablePadding","url","primaryTypographyProps","MenuContainer","SideMenu","SideMenuContent","overflowX","overflowY","scrollbarColor","drawer","flexShrink","drawerOpen","transition","transitions","easing","sharp","duration","enteringScreen","drawerClose","leavingScreen","image","overflowVisible","expandSideMenu","siteMap","isSideMenuExpanded","closeDrawer","Drawer","anchor","PaperProps","ModalProps","keepMounted","sideMenuHeader","switchStrings","goToTranslations","StringsSwitcher","showStringsKeys","stringSwitcher","pageFocused","BaseLayout","ownProps","appReady","moduleError","authError","returnHome","children","addEventListener","handleWindowFocus","handleWindowStorageChange","removeEventListener","navigator","userAgent","MSStream","el","document","querySelector","getAttribute","re","join","setAttribute","addMaximumScaleToMetaViewport","layout","centeredLayoutMessage","closeMessage","MessagePopup","requestErrorMessageKey","requests","messageTime","messageContent","Snackbar","autoHideDuration","ApplicationInsightsProvider","connectionString","activated","setActivated","ApplicationInsights","config","autoTrackPageVisitTime","loadAppInsights","getAppInsights","OPEN_PROJECT_SETUP","CREATE_PROJECT_FROM_SETUP","SET_PROJECT_NAME","SET_ORGANIZATION_ID","SET_ALERT_NOT_HANDLED_NOTIFICATION_RECIPIENT_IDS","SET_HEALTH_RISKS","SET_REQUIRED_HEALTH_RISKS","SET_REGIONS","SET_DISTRICTS","SET_VILLAGES","SET_ZONES","SET_ALLOW_MULTIPLE_ORGANIZATIONS","projectSetupInitialState","timeZoneId","requiredHealthRisks","organizationId","alertNotHandledNotificationRecipientIds","formFetching","formData","regions","villages","zones","projectSetupReducer","LOCATION_CHANGE","formError","formSaving","listStale","initialState","isSending","isFetching","pending","auth","loginResponse","listFetching","listArchiving","listReopening","listData","overviewData","overviewFetching","structureData","structureFetching","nationalSocietyDashboard","isGeneratingPdf","filtersData","reportsGroupedByLocationDetails","reportsGroupedByLocationDetailsFetching","expandedItems","listNationalSocietyId","listRemoving","pinging","availableIoTDevices","reportLocationDataElementId","reportGeoLocationDataElementId","reportHealthRiskDataElementId","reportSuspectedDiseaseDataElementId","reportStatusDataElementId","reportGenderDataElementId","reportAgeGroupDataElementId","reportCaseCountFemaleAgeAtLeastFiveDataElementId","reportCaseCountMaleAgeAtLeastFiveDataElementId","reportCaseCountFemaleAgeBelowFiveDataElementId","reportCaseCountMaleAgeBelowFiveDataElementId","reportDateDataElementId","reportTimeDataElementId","reportDataCollectorIdDataElementId","organisationUnitsIsFetching","program","programIsFetching","listProjectId","projectAlertRecipients","recipient","countryCode","projectAlertNotHandledRecipients","projectId","users","formDataFetching","saving","isClosing","isClosed","formHealthRisks","formTimeZones","projectSummary","projectDashboard","dataCollectionPointsReportData","settingAsHead","addExistingFormData","filtersStale","page","rowsPerPage","totalRows","listSelectedAll","formRegions","formSupervisors","mapOverviewDataCollectorLocations","mapOverviewCenterLocation","mapOverviewFilters","mapOverviewDetails","mapOverviewDetailsFetching","updatingDataCollector","replacingSupervisor","performanceListData","completeness","performanceListFetching","performanceListFilters","locations","supervisorId","pageNumber","nationalSocietyId","pendingSocieties","staleSocieties","agreementDocuments","correctReportsListStale","incorrectReportsListStale","markingAsError","sorting","formDataCollectors","correctReportsPaginatedListData","correctReportsFilters","correctReportsSorting","incorrectReportsPaginatedListData","incorrectReportsFilters","incorrectReportsSorting","paginatedListData","isFetchingRecipients","isPendingAlertState","notificationPhoneNumbers","notificationEmails","isLoadingValidateEidsr","logFetching","logRemoving","logItems","listLanguages","listTranslations","emailLanguages","emailTranslations","smsLanguages","smsTranslations","appInsights","appReducer","route","homePage","authReducer","verifyEmailErrorMessage","resetPasswordErrorMessage","resetPasswordCallbackErrorMessage","GET_NATIONAL_SOCIETIES","CREATE_NATIONAL_SOCIETY","EDIT_NATIONAL_SOCIETY","OPEN_EDITION_NATIONAL_SOCIETY","OPEN_NATIONAL_SOCIETY_OVERVIEW","ARCHIVE_NATIONAL_SOCIETY","REOPEN_NATIONAL_SOCIETY","entityTypes","EpiWeekStandards","removeProperty","obj","removeFromArray","array","predicate","assignInArray","changes","setProperty","nationalSocietiesReducer","OPEN_SMS_GATEWAYS_LIST","GET_SMS_GATEWAYS","OPEN_SMS_GATEWAY_CREATION","CREATE_SMS_GATEWAY","OPEN_SMS_GATEWAY_EDITION","EDIT_SMS_GATEWAY","REMOVE_SMS_GATEWAY","PING_IOT_DEVICE","LIST_AVAILABLE_IOT_DEVICES","smsGatewaysReducer","nationalSocietyActions","iotDeviceId","OPEN_PROJECTS_LIST","GET_PROJECTS","OPEN_PROJECT_CREATION","CREATE_PROJECT","OPEN_PROJECT_EDITION","EDIT_PROJECT","EDIT_PROJECT_HEALTH_RISKS","OPEN_PROJECT_OVERVIEW","OPEN_PROJECT_HEALTH_RISKS_OVERVIEW","CLOSE_PROJECT","OPEN_ERROR_MESSAGES","OPEN_PROJECT_HEALTHRISKS_EDITION","projectsReducer","timeZones","overviewHealthRisks","overviewTimeZones","getActionType","parts","split","getActionName","slice","requestReducer","actionType","actionName","GET_GLOBAL_COORDINATORS","CREATE_GLOBAL_COORDINATOR","EDIT_GLOBAL_COORDINATOR","OPEN_EDITION_GLOBAL_COORDINATOR","REMOVE_GLOBAL_COORDINATOR","globalCoordinatorsReducer","GET_HEALTH_RISKS","OPEN_CREATION_HEALTH_RISK","CREATE_HEALTH_RISK","EDIT_HEALTH_RISK","OPEN_EDITION_HEALTH_RISK","REMOVE_HEALTH_RISK","healthRiskTypes","healthRisksReducer","GET_SUSPECTED_DISEASE","CREATE_SUSPECTED_DISEASE","EDIT_SUSPECTED_DISEASE","OPEN_EDITION_SUSPECTED_DISEASE","REMOVE_SUSPECTED_DISEASE","suspectedDiseaseReducer","OPEN_NATIONAL_SOCIETY_USERS_LIST","GET_NATIONAL_SOCIETY_USERS","OPEN_NATIONAL_SOCIETY_USER_CREATION","OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING","CREATE_NATIONAL_SOCIETY_USER","ADD_EXISTING_NATIONAL_SOCIETY_USER","OPEN_NATIONAL_SOCIETY_USER_EDITION","EDIT_NATIONAL_SOCIETY_USER","REMOVE_NATIONAL_SOCIETY_USER","SET_AS_HEAD_MANAGER","userRoles","globalCoordinatorUserRoles","coordinatorUserRoles","headManagerRoles","sexValues","nationalSocietyUsersReducer","formProjects","formAdditionalData","formOrganizations","formModems","modems","OPEN_DATA_COLLECTORS_LIST","GET_DATA_COLLECTORS","OPEN_DATA_COLLECTOR_CREATION","CREATE_DATA_COLLECTOR","OPEN_DATA_COLLECTOR_EDITION","EDIT_DATA_COLLECTOR","REMOVE_DATA_COLLECTOR","OPEN_DATA_COLLECTORS_MAP_OVERVIEW","GET_DATA_COLLECTORS_MAP_OVERVIEW","GET_DATA_COLLECTORS_MAP_DETAILS","SET_DATA_COLLECTORS_TRAINING_STATE","OPEN_DATA_COLLECTORS_PERFORMANCE_LIST","GET_DATA_COLLECTORS_PERFORMANCE","EXPORT_DATA_COLLECTORS_TO_EXCEL","EXPORT_DATA_COLLECTORS_TO_CSV","REPLACE_SUPERVISOR","SET_DATA_COLLECTORS_DEPLOYED_STATE","EXPORT_DATA_COLLECTOR_PERFORMANCE","SELECT_DATA_COLLECTOR","SELECT_ALL_DATA_COLLECTOR","collectionPoint","performanceStatus","trainingStatusInTraining","trainingStatusTrained","filterIsSet","initialFilters","dataCollectorsReducer","projectsActions","formDefaultSupervisorId","formDefaultLocation","every","isSelected","dataCollectorId","defaultSupervisorId","defaultLocation","centerLocation","dataCollectorLocations","dataCollectorIds","trainingState","epiDateRange","replacingState","nationalSocietyUsersActions","isExporting","isExportingToExcel","isExportingToCsv","OPEN_AGREEMENT_PAGE","ACCEPT_AGREEMENT","agreementsReducer","agreements","pendingAgreementDocuments","submitting","reportsReducer","itemToCorrect","itemToNoCorrect","OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST","OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST","GET_NATIONAL_SOCIETY_CORRECT_REPORTS","GET_NATIONAL_SOCIETY_INCORRECT_REPORTS","nationalSocietyReportsReducer","OPEN_NATIONAL_SOCIETY_STRUCTURE","CREATE_REGION","EDIT_REGION","REMOVE_REGION","CREATE_DISTRICT","EDIT_DISTRICT","REMOVE_DISTRICT","CREATE_VILLAGE","EDIT_VILLAGE","REMOVE_VILLAGE","CREATE_ZONE","EDIT_ZONE","REMOVE_ZONE","nationalSocietyStructureReducer","OPEN_PROJECT_DASHBOARD","GET_PROJECT_DASHBOARD_DATA","GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS","GENERATE_PDF","projectDashboardReducer","reportsGroupedByHealthRiskAndDate","reportsGroupedByFeaturesAndDate","reportsGroupedByVillageAndDate","reportsGroupedByFeatures","reportsGroupedByLocation","dataCollectionPointReports","keptReportsInEscalatedAlertsHistogramData","OPEN_ALERTS_LIST","GET_ALERTS","OPEN_ALERTS_ASSESSMENT","RESET_REPORT","ESCALATE_ALERT","DISMISS_ALERT","CLOSE_ALERT","FETCH_RECIPIENTS","EXPORT_ALERTS","VALIDATE_EIDSR","assessmentStatus","alertStatusFilters","timeTriggeredColumn","statusColumn","updateReport","alertsReducer","isAccepting","isDismissing","isResetting","formEscalating","formDismissing","formClosing","emails","phoneNumbers","validateEidsrResult","OPEN_NATIONAL_SOCIETY_DASHBOARD","GET_NATIONAL_SOCIETY_DASHBOARD_DATA","GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS","GENERATE_NATIONAL_SOCIETY_PDF","nationalSocietyDashboardReducer","OPEN_TRANSLATIONS_LIST","GET_TRANSLATIONS","OPEN_EMAIL_TRANSLATIONS_LIST","GET_EMAIL_TRANSLATIONS","OPEN_SMS_TRANSLATIONS_LIST","GET_SMS_TRANSLATIONS","translationsReducer","languages","appActions","some","OPEN_ORGANIZATIONS_LIST","GET_ORGANIZATIONS","OPEN_ORGANIZATION_CREATION","CREATE_ORGANIZATION","OPEN_ORGANIZATION_EDITION","EDIT_ORGANIZATION","REMOVE_ORGANIZATION","organizationsReducer","OPEN_PROJECT_ORGANIZATIONS_LIST","GET_PROJECT_ORGANIZATIONS","OPEN_PROJECT_ORGANIZATION_CREATION","CREATE_PROJECT_ORGANIZATION","REMOVE_PROJECT_ORGANIZATION","projectOrganizationsReducer","OPEN_ALERT_RECIPIENTS_LIST","GET_ALERT_RECIPIENTS","OPEN_ALERT_RECIPIENT_CREATION","OPEN_ALERT_RECIPIENT_EDITION","CREATE_ALERT_RECIPIENT","EDIT_ALERT_RECIPIENT","REMOVE_ALERT_RECIPIENT","projectAlertRecipientsReducer","OPEN_ALERT_NOT_HANDLED_RECIPIENTS","GET_ALERT_NOT_HANDLED_RECIPIENTS","CREATE_ALERT_NOT_HANDLED_RECIPIENT","EDIT_ALERT_NOT_HANDLED_RECIPIENT","REMOVE_ALERT_NOT_HANDLED_RECIPIENT","GET_ALERT_NOT_HANDLED_FORM_DATA","projectAlertNotHandledRecipientsReducer","recipients","OPEN_ALERT_EVENT_LOG","GET_ALERT_EVENT_LOG","OPEN_ALERT_EVENT_CREATION","CREATE_ALERT_EVENT","EDIT_ALERT_EVENT","DELETE_ALERT_EVENT","alertEventsReducer","alertEventTypes","alertEventSubtypes","alertEventLogId","initTracking","trackPage","trackTrace","INIT_TRACKING","TRACK_PAGEVIEW","TRACK_TRACE","pageView","alias","properties","trackingReducer","tracking","trackPageView","userRole","GET_EIDSR_INTEGRATION","EDIT_EIDSR_INTEGRATION","GET_EIDSR_ORGANISATION_UNITS","GET_EIDSR_PROGRAM","eidsrIntegrationReducer","nationalSocietyLeftMenuOrder","nationalSocietiesSiteMap","smsGatewaysSiteMap","projectTabMenuOrder","projectSubMenuOrder","projectsSiteMap","projectSetupSiteMap","globalCoordinatorsSiteMap","healthRisksSiteMap","suspectedDiseaseSiteMap","nationalSocietyUsersSiteMap","dataCollectorsSiteMap","reportsSiteMap","nationalSocietyReportsSiteMap","nationalSocietyStructureSiteMap","projectDashboardSiteMap","agreementsSiteMap","alertsSiteMap","alertEventsSiteMap","nationalSocietyDashboardSiteMap","organizationsSiteMap","projectOrganizationsSiteMap","hideWhen","feedbackSiteMap","getMenu","currentPath","authUser","pathHierarchy","getHierarchy","closestMenuPath","hierarchy","siteMapData","findClosestMenu","filteredSiteMap","sort","a","b","getUrl","siteMapParameters","currentItem","findSiteMapItem","getTitle","hidden","template","localStorage","getItem","setItem","removeItem","checkLogin","storeUser","authConsts","delay","routeParams","menuParams","subMenu","http","forEach","entry","entryDep","localStorageKeys","loginUrl","redirectToRoot","redirectTo","pathname","getRedirectUrl","authActions","isSuccess","agreementStatusResponse","consts","userId","goToEdition","getList","openEdition","openOverview","getNationalSocieties","openNationalSocietyEdition","openNationalSocietyOverview","createNationalSociety","editNationalSociety","archiveNationalSociety","reopenNationalSociety","force","currentData","nationalSocietyCountry","countryName","nationalSocietyName","nationalSocietyIsArchived","isArchived","nationalSocietyHasCoordinator","goToList","openList","openCreation","smsGatewayId","pingIotDevice","listAvailableIotDevices","openSmsGatewaysList","openSmsGatewayCreation","openSmsGatewayEdition","createSmsGateway","editSmsGateway","removeSmsGateway","getSmsGateways","openSmsGatewaysModule","parse","availableGateways","hasCoordinator","goToOverview","goToHealthRisks","openHealthRisksEdition","openHealthRisksOverview","editHealthRisks","extend","utc","weekOfYear","formatDate","year","getFullYear","month","getMonth","getDate","humanReadableMonth","humanReadableDay","convertToLocalDate","utcOffset","Math","floor","convertToUtc","getUtcOffset","openProjectsList","openProjectCreation","openProjectEdition","openProjectHealthRisksEdition","openProjectOverview","openProjectHealthRisksOverview","createProject","editProject","editProjectHealthRisks","closeProject","getProjects","openProjectsModule","openProjectDashboardModule","openErrorMessages","isCurrentUserHeadManager","openSetup","createFromSetup","setRequiredHealthRisks","openProjectSetup","createProjectFromSetup","hr","getGlobalCoordinators","openGlobalCoordinatorEdition","createGlobalCoordinator","editGlobalCoordinator","removeGlobalCoordinator","globalCoordinatorId","globalCoordinatorName","getHealthRisks","openHealthRiskCreation","openHealthRiskEdition","createHealthRisk","editHealthRisk","removeHealthRisk","healthRiskId","suspectedDiseasesList","getSuspectedDisease","openSuspectedDiseaseEdition","createSuspectedDisease","editSuspectedDisease","removeSuspectedDisease","suspecteddiseaseId","openAddExisting","nationalSocietyUserId","openNationalSocietyUsersList","openNationalSocietyUserCreation","openNationalSocietyAddExistingUser","openNationalSocietyUserEdition","createNationalSocietyUser","addExistingNationalSocietyUser","editNationalSocietyUser","removeNationalSocietyUser","getNationalSocietyUsers","setAsHeadManagerInOrganization","openNationalSocietyUsersModule","isListStale","lastNationalSocietyId","getSpecificRoleUserRetrievalUrl","getSpecificRoleUserAdditionUrl","getSpecificRoleUserEditionUrl","getSpecificRoleUserRemovalUrl","openMapOverview","getMapOverview","getMapDetails","lat","lng","setTrainingState","inTraining","openDataCollectorsPerformanceList","getDataCollectorsPerformanceList","supervisorRole","setDeployedState","exportDataCollectorPerformance","downloadFile","fileName","xhr","XMLHttpRequest","responseType","onreadystatechange","readyState","statusText","URL","createObjectURL","link","createElement","download","dispatchEvent","MouseEvent","bubbles","cancelable","view","setRequestHeader","openDataCollectorsList","openDataCollectorCreation","openDataCollectorMapOverview","getDataCollectorMapOverview","openDataCollectorEdition","createDataCollector","editDataCollector","removeDataCollector","getDataCollectors","openDataCollectorsModule","getDataCollectorsPerformance","getExcelExportData","getCsvExportData","fetchedFiltersData","performance","now","openAgreementPage","acceptAgreement","selectedLanguage","getPendingAgreementDocuments","openCorrectReportsList","openIncorrectReportsList","getCorrectList","getIncorrectList","openSendReport","markAsNotCorrected","trackReportExport","fileType","DataCollectorType","ReportErrorFilterType","reportErrorFilterTypes","correctedStateTypes","getCorrectReports","getIncorrectReports","openReportEdition","openReportsModule","formatCorrect","isTraining","requestFilters","orderBy","sortAscending","requestSorting","correctedState","real","humanHealthRisksforProject","openCorrectList","openIncorrectList","openNationalSocietyCorrectReportsList","openNationalSocietyIncorrectReportsList","getNationalSocietyCorrectReports","getNationalSocietyIncorrectReports","openNationalSocietyReportsModule","openStructure","createRegion","editRegion","removeRegion","createDistrict","regionId","editDistrict","removeDistrict","createVillage","districtId","editVillage","removeVillage","createZone","editZone","removeZone","openNationalSocietyStructure","openNationalSocietyModule","f","openDashboard","getDashboardData","getReportHealthRisks","containerElement","generatePdfDocument","reportFileName","pageHeight","contentWidth","elements","querySelectorAll","pdf","jsPDF","currentPositionY","setFontSize","domtoimage","toJpeg","bgcolor","imageData","canvasHeightInMm","scrollHeight","scrollWidth","addPage","addImage","save","openProjectDashboard","getProjectDashboardData","getProjectDashboardReportHealthRisks","localDate","groupingType","dataCollectionPointReportsGroupedByDate","siteMapParams","printTitleParams","goToEventLog","alertId","getAlerts","openAssessment","resetReport","escalateAlert","sendNotification","validateEidsr","dismissAlert","closeAlert","fetchRecipients","exportAlerts","openAlertsList","openAlertsAssessment","openAlertsModule","createdAt","previousAssessmentStatus","newAssessmentStatus","openEventLog","getEventLog","openAlertEventCreation","createAlertEvent","editAlertEvent","deleteAlertEvent","openAlertEventsModule","generateNationalSocietyPdf","openNationalSocietyDashboard","getNationalSocietyDashboardData","getNationalSocietyDashboardReportHealthRisks","openNationalSocietyDashboardModule","openTranslationsList","getTranslationsList","needsImprovementOnly","openEmailTranslationsList","getEmailTranslationsList","openSmsTranslationsList","getSmsTranslationsList","getTranslations","getEmailTranslations","getSmsTranslations","openOrganizationsList","openOrganizationCreation","openOrganizationEdition","createOrganization","editOrganization","removeOrganization","getOrganizations","openOrganizationsModule","projectOrganizationId","openProjectOrganizationsList","openProjectOrganizationCreation","createProjectOrganization","removeProjectOrganization","getProjectOrganizations","openProjectOrganizationsModule","createData","alertRecipientId","openProjectAlertRecipientsList","openAlertRecipientCreation","createAlertRecipient","openAlertRecipientEdition","editAlertRecipient","removeAlertRecipient","getProjectAlertRecipients","openProjectAlertRecipientsModule","openRecipients","getRecipients","getFormData","openProjectAlertNotHandledRecipients","createAlertNotHandledRecipient","editAlertNotHandledRecipient","removeAlertNotHandledRecipient","getProjectAlertNotHandledRecipients","getProjectAlertNotHandledRecipientsFormData","getOrganisationUnits","eidsrApiProperties","programId","getProgram","getEidsrIntegration","editEidsrIntegration","getNationalSocietyBaseInfo","getEidsrOrganisationUnits","getEidsrProgram","eidsrConfigurationResponse","nationalSocietyEnableEidsrIntegration","programResponse","rootSaga","takeEvery","takeLatest","appConsts","getRootSaga","generator","autoRestarting","console","createBrowserHistory","configureStore","history","composeEnhancers","compose","sagaMiddleware","createSagaMiddleware","store","createStore","combineReducers","router","connectRouter","createRootReducer","applyMiddleware","routerMiddleware","thunk","run","getState","deviceType","trackEvent","useDashboardScrollingTracking","inDashboardPage","setInDashboardPage","hasScrolledInDashboard","setHasScrolledInDashboard","pageTitle","scrollTop","setScrollTop","event","TabDropdown","projectTabMenuPage","onItemClick","anchorRef","useRef","tab","buttonRoot","popper","offsetWidth","borderBottomLeftRadius","borderBottomRightRadius","menuList","menuItem","menuItemActive","lastMenuItem","onMouseEnter","onMouseLeave","Popper","placement","disablePortal","modifiers","preventOverflow","enabled","boundariesElement","escapeWithReference","hide","ClickAwayListener","onClickAway","contains","MenuList","autoFocusItem","handleMenuItemClick","ProjectMenu","TabMenu","currentUrl","showTabMenu","Tabs","tabs","scrollButtons","indicatorColor","Tab","mapStateToProps","bottomNav","bottomNavDrawer","bottomNavActionSelected","bottomNavItem","listItem","grey","listItemActive","listItemTextActive","drawerPaper","drawerHeight","BottomMenuNavigation","toggleDrawer","BottomNavigation","getPage","BottomNavigationAction","onMenuClick","BottomMenu","React","setValue","isOpen","setIsOpen","options","setOptions","setTitle","activeMenuItem","activeSubMenuItem","subMenuItem","drawerOptions","option","pageContentId","resetPageContentScroll","getElementById","mainHeader","secondaryHeader","projectView","Layout","fillPage","handleScroll","isInProjectView","mainContent","pageContentContainer","onScroll","pageContent","withLayout","getHomePageUrl","Home","AnonymousLayout","anonymousLayout","PasswordInputField","showPassword","setValues","showPasswordComponent","InputAdornment","onMouseDown","ValidationMessage","SnackbarContent","FormActions","formActions","SubmitButton","regular","wide","CircularProgress","size","progressIcon","LoginPage","logoClick","setLogoClick","loginContent","Paper","loginPaper","loginPageLogo","redFill","logoCurve","animationCurve","loginPaperContent","loginHeader","onSubmit","forgotPasswordLink","Link","loginFooter","align","supportLogoHeader","supportLogo","AuthRoute","computedMatch","ignoreRedirection","setAuthError","useHistory","neededRole","exact","render","TableActions","tableActions","ConfirmationAction","confirmationText","handleDropdownClose","confirmationAction","Boolean","withAccessRestriction","condition","HasAccess","HasAccessComponent","propTypes","PropTypes","any","node","TableRowAction","directionRtl","tableRowAction","fetching","TableRowActions","tableRowActions","TableRowMenu","items","alwaysShow","alwaysHighlighted","filteredItems","CancelButton","ConfirmationDialog","isOpened","titleText","contentText","clickableRow","inactiveRow","NationalSocietiesTable","isListFetching","goToDashboard","isArchiving","isReopening","archiveConfirmationDialog","setArchiveConfirmationDialog","reopenConfirmationDialog","setReopenConfirmationDialog","getRowMenu","row","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","hover","coordinators","headManagers","TableActionsButton","startIcon","nationalSocietiesActions","goToCreation","NationalSocietiesListPage","callingUserRoles","match","userHasAddAccess","Form","shrinked","SelectField","disabledlabel","FormControl","InputLabel","htmlFor","Select","NationalSocietiesCreatePage","isSaving","contentLanguageId","countryId","epiWeekStartDay","language","itm","NationalSocietiesEditPage","NationalSocietiesOverviewPage","gutterBottom","SmsGatewaysTable","isRemoving","canModify","smsGatewaysActions","SmsGatewaysListPage","smsEagle","mtnSmsGateway","telerivet","smsGatewayTypes","SmsGatewaysCreatePage","setUseIotHub","selectedIotDevice","setSelectedIotDevice","setPingIsRequired","setUseDualModem","snackbarOpen","setSnackbarOpen","uuidv4","tr","tp","newForm","pingResult","clipboard","writeText","endAdornmentButton","deviceName","SmsGatewaysEditPage","ProjectsTable","isHeadManager","closeConfirmationDialog","setRemoveConfirmationDialog","userCanCloseProject","ProjectsListPage","userLanguageCode","components","Control","innerProps","innerRef","TextFieldProps","selectProps","inputComponent","MultiValue","isActivityReport","Chip","tabIndex","chip","isFocused","chipFocused","onDelete","removeProps","chipLabel","NoOptionsMessage","noOptionsMessage","Option","Placeholder","SingleValue","singleValue","ValueContainer","valueContainer","customMultiselectStyle","clearIndicator","provided","dropdownIndicator","MultiSelect","defaultValue","isClearable","restProps","isMulti","inputId","isRtl","inputRef","ProjectsHealthRiskItem","projectHealthRisk","ready","setReady","reportCountThreshold","setReportCountThreshold","healthRiskItemRef","getHealthRiskItemRef","useCallback","cardBodyText","Card","CardContent","healthRiskNameRtl","healthRiskName","getSaveFormModel","alertNotHandledNotificationRecipientId","ProjectsCreatePage","healthRiskDataSource","setHealthRiskDataSource","selectedHealthRisks","setSelectedHealthRisks","healthRisksFieldTouched","setHealthRisksFieldTouched","canChangeOrganization","useMemo","createRef","preventSubmit","alertNotHandledRecipients","eventData","removedValue","shr","selectedHealthRisk","SubMenuTitle","ProjectsEditPage","VerifyEmailPageComponent","handleSubmit","queryStrings","queryString","search","paperHeader","VerifyEmailPage","GlobalCoordinatorsTable","globalCoordinatorsActions","GlobalCoordinatorsListPage","PhoneInputField","defaultCountry","documentElement","containerClass","inputClass","phoneInput","buttonClass","searchClass","specialLabel","enableSearch","GlobalCoordinatorsCreatePage","GlobalCoordinatorsEditPage","ResetPasswordPageComponent","ResetPasswordPage","ResetPasswordCallbackPageComponent","ResetPasswordCallbackPage","HealthRisksTable","smallDeviceTableRow","healthRisksActions","HealthRisksListPage","selectedSuspectedDiseases","healthRiskSuspectedDiseases","sd","suspectedDiseaseId","languageContent","languageId","HealthRisksCreatePage","suspectedDiseasesDataSource","setSuspectedDiseasesDataSource","setSelectedSuspectedDiseases","selectedHealthRiskType","setHealthRiskType","finalFormData","healthRiskTypesData","log","ssd","HealthRisksEditPage","lc","SuspectedDiseaseTable","suspectedDiseaseActions","SuspectedDiseaseListPage","SuspectedDiseaseCreatePage","SuspectedDiseaseEditPage","NationalSocietyUsersTable","isSettingAsHead","u","hasHeadManagerAccess","canBeSetAsHeadManager","Roles","canBeEdited","isGlobalCoordinator","isCoordinator","isEditingHeadManagerOrCoordinator","isPendingHeadManager","isVerified","organizationName","goToAddExisting","NationalSocietyUsersListPage","parseBirthDecade","decade","getBirthDecades","yearMax","Array","String","NationalSocietyUsersCreatePage","birthDecades","selectedRole","setRole","setProjects","isConfirmed","confirmCoordinatorDialog","setConfirmCoordinatorDialog","hasAnyRole","canSelectModem","availableUserRoles","o","hasHeadManager","availableOrganizations","headSupervisorId","modemId","newRole","setValidators","createUser","headSupervisors","NationalSocietyUsersAddExistingPage","canSelectOrganization","preSelected","Box","mb","NationalSocietyUsersEditPage","editSupervisorFormData","availableProjects","agreementsActions","AgreementsPage","hasConsented","setHasConsented","setSelectedLanguage","validationMessage","setValidationMessage","selectedDocumentUrl","ad","agreementDocumentUrl","consentWrapper","consentPaper","aboveDocument","ns","agreementDocumentFrame","CardMedia","belowDocument","rel","tableHeader","flexWrap","TableHeader","TablePager","onChangePage","numberOfPages","ceil","pagesRange","pager","dropDown","DataCollectorsTable","isUpdatingDataCollector","selectDataCollector","selectAllDataCollectors","setIsSelected","isInTrainingMode","isDeployed","getSelectedIds","getSelectedDataCollectors","multipleSelectionMenu","renderLocation","firstLocation","checkCell","tableStyles","handleSelect","useDebounce","debouncedValue","setDebouncedValue","handler","mapSelectedDistricts","filterValue","mapSelectedVillages","districtIds","dId","mapSelectedZones","villageIds","vId","zoneIds","zId","setDistrict","districtToUpdateId","v","z","setVillage","villageToUpdateId","setZone","zoneToUpdateId","LocationItem","isVisible","setIsExpanded","childData","setChildData","getChildData","locationFilterItem","clickable","nodata","SelectAll","isSelectAllEnabled","toggleSelectAll","divider","popoverPaper","DropdownPopover","filterLabel","dialogOpen","setDialogOpen","handleDropdownClick","readOnly","onKeyUp","Popover","anchorOrigin","vertical","horizontal","transformOrigin","filterContainer","LocationFilter","filteredLocations","showUnknownLocation","selectedLocations","setSelectedLocations","includeUnknownLocation","setIncludeUnknownLocation","setSelectAll","regionIds","rId","anyUnselected","setSelectedStatusOfRegion","findIndex","updatedSelectedLocations","cascadeSelectRegion","setSelectedStatusOfDistrict","regionIndex","districtIndex","districtSelected","hasSelectedDistricts","cascadeSelectDistrict","setSelectedStatusOfVillage","villageIndex","villageSelected","flat","anySelectedVillages","anySelectedDistricts","cascadeSelectVillage","setSelectedStatusOfZone","zoneIndex","zoneSelected","anySelectedZones","cascadeSelectZone","extractSelectedValues","useLocalFilters","setFilter","change","useLocationFilter","localFilters","updateLocalFilters","locationsFilterLabel","setLocationsFilterLabel","locationFilters","compactNameDisplay","locationNames","withUnknownLocation","filterRegionId","reg","renderFilterLabel","pullTabContainer","shape","pullTab","contentContainer","resultsContainer","backdrop","backdropClass","DrawerFilter","startY","setStartY","drawerRef","onShowResults","onTransitionEnd","BackdropProps","onTouchStart","touches","clientY","onTouchMove","deltaY","onTouchEnd","changedTouches","Backdrop","filterItem","filterRadioGroup","radio","DataCollectorsFilters","handleFiltersChange","isMediumScreen","updateValue","handleLocationChange","handleSupervisorChange","handleSexChange","handleTrainingStatusChange","handleDeployedModeChange","Filter","useReducer","changed","setName","debouncedName","SelectProps","MenuProps","RadioGroup","Radio","ReplaceSupervisorDialog","selectedSupervisor","s","dc","sup","alignSelf","dataCollectorList","dataCollectorsActions","getDataCollectorList","DataCollectorsListPage","replaceSupervisorDialogOpened","setReplaceSupervisorDialogOpened","selectedDataCollectors","setSelectedDataCollectors","exportFileType","calculateBounds","points","loc","p","getMinLat","getMinLng","getMaxLat","getMaxLng","calculateIconSize","count","log10","SignIcon","multiple","L","divIcon","html","signMarker","iconSize","point","TextIcon","marker","getIconFromStatus","birthGroupDecade","parseFloat","number","linkedToHeadSupervisor","getFormDistricts","getFormVillages","createClusterIcon","cluster","getAllChildMarkers","m","dataCollectorInfo","aggregatedData","countReportingCorrectly","countReportingWithErrors","countNotReporting","getAggregatedStatus","createIcon","info","DataCollectorsPerformanceMap","detailsFetching","center","setCenter","bounds","setBounds","hasLocations","handleMarkerClick","latlng","MapContainer","zoom","maxZoom","TileLayer","attribution","showCoverageOnHover","iconCreateFunction","c","combineStatus","Marker","markerInvalid","markerValid","eventHandlers","click","Popup","popup","dataCollectorDetails","ScaleControl","imperial","LocalizedUtils","locale","DateFnsUtils","DatePicker","enLocale","setLocale","esLocale","frLocale","arLocale","utils","datePicker","autoOk","disableFuture","disableToolbar","DataCollectorsPerformanceMapFilters","DataCollectorsPerformanceMapLegend","renderItem","mapIconStyles","mapStyles","openDataCollectorsMapOverview","getDataCollectorsMapOverview","DataCollectorsMapOverviewPage","RadioGroupField","boldLabel","labelBold","MapEventHandler","onMarkerClick","onZoomChange","useMapEvent","getCenter","ChangeCenterLocation","useMap","setView","ZoomToCurrentLocation","updateZoomLevel","isFetcingLocation","setIsFetchingLocation","onRetrieveLocation","geolocation","getCurrentPosition","retrieveGpsLocation","coords","myLocationButton","fetchingLocation","DataCollectorMap","initialCenterLocation","markerLocation","setMarkerLocation","setCenterLocation","zoomLevel","setZoomLevel","clickedMyLocationButton","originalEvent","scrollWheelZoom","_zoom","ConditionalCollapse","collapsible","Collapse","timeout","unmountOnExit","DataCollectorLocationItem","locationNumber","isLastLocation","isOnlyLocation","initialDistricts","initialVillages","initialZones","isDefaultCollapsed","mapCenterLocation","setMapCenterLocation","defaultCollapsed","setDefaultCollapsed","setDistricts","setVillages","setZones","locationCardRef","getLocationCardRef","mapLocation","requiredMapLocation","collapsibleContent","expandFilterButton","renderCollapsedLocationData","collapsibleContainer","geoStructureSelectShrinked","Alert","severity","getFormZones","mapLabel","coordinateFieldsContainer","latLngInput","removeLocationButton","addLocationContainer","DataCollectorsCreatePage","isGettingCountryLocation","gettingLocation","countryData","currentUserRoles","setType","setLocations","removeDataCollectorLocation","previousLocation","DataCollectorsEditPage","allLocationsCollapsed","setAllLocationsCollapsed","nationalSocietyCountryCode","initialFormData","InlineTextEditor","initialValue","onSave","setIsModifying","setIsFocused","formRef","onFocus","relatedTarget","addText","NationalSocietyLocationListItem","isEditing","setIsEditing","isCurrentOpen","activeIndex","locationType","isZone","activeParentLocationId","manageLocation","editLocation","nextLocationType","nextLocations","iconExpanded","editContainer","ContainerProps","setActiveIndex","disableTypography","isEditingLocations","ListItemSecondaryAction","setIsEditingLocations","newName","NationalSocietyLocationList","isCreatingLocation","setIsCreatingLocation","borderStyle","lowerCaseLocationType","createLocation","nested","listContainer","noLocationsTextContainer","minHeight","addLocationField","disableSticky","addLocationLabel","nationalSocietyStructureActions","NationalSocietyStructurePage","renderDataCollectorDisplayName","dataRemoveText","isAnonymized","renderReportValue","displayZero","sortOrder","sortByReportStatus","statusA","statusB","timeA","receivedAt","timeB","getReportIcon","smallStatus","ReportStatusChip","wrap","CorrectReportsTable","column","isMarkingAsError","goToEditing","onSort","isDataCollectionPointTable","dashIfEmpty","handleSortChange","isAscending","canCrossCheck","isMarkedAsError","reportWasCrossCheckedBeforeEscalation","handleGoToAlert","canEdit","dataCollectorIsDeleted","TableSortLabel","active","checkbox","filterCheckboxGroup","noFlexWrap","ReportStatusFilter","correctReports","showDismissedFilter","doNotWrap","FormLabel","FormGroup","HealthRiskFilter","allHealthRisks","filteredHealthRisks","selectedIds","healtRiskMenuItem","newHealthRisks","hrId","handleHealthRiskChange","wordWrap","overflowWrap","selectFilterItem","radioGroup","showCorrectReportFilters","hideCorrectedFilter","hideTrainingStatusFilter","order","ReportFilters","LinearProgress","AutocompleteTextInputField","freeSolo","autoSelect","allowAddingValue","Autocomplete","filterOptions","filtered","getOptionLabel","getOptionSelected","renderOption","noOptionsText","renderInput","TimePicker","pattern","SendReportDialog","setDate","setTime","timeError","setTimeError","setIsSending","gatewayModemsDisabled","setGatewayModemsDisabled","abortController","AbortController","intervalHandler","dcFieldSubscription","dataCollectorsOptions","getReportStatus","timestamp","setInterval","clearInterval","err","currentSeconds","gatewayModemId","onDataCollectorChange","dcOption","currentUserModemId","validateTime","newDate","abort","Page","openReportsList","reportsActions","CorrectReportsListPage","canSendReport","Hidden","xsDown","filtersGrid","DateInputField","ReportsEditPage","selectedDataCollector","setSelectedDataCollector","availableReportStatus","setAvailableReportStatus","setReportSex","setReportAge","locationId","selectedLocation","setLocation","findSexAgeHelper","findSexAgeCombinationHelper","dataCollectorAndLocationSelected","comb","dataCollectorLocationId","correctNegativeMargin","formSectionTitle","newDataCollector","tableActionsContainer","editButton","filterTitle","collapsedFilterBar","collectionsTypes","ProjectsDashboardFilters","isFilterExpanded","setIsFilterExpanded","dataCollectionPoint","CardHeader","ProjectsDashboardNumbers","isMapExpanded","cardSizes","renderNumber","minimalSpacing","numberBox","card","dataCollectionPointSummary","MarkerClusterComponent","maxClusterRadius","reportsCount","h","reportHealthRiskDetails","ReportsMap","setZoom","totalReports","setTotalReports","hasInteractedWithMap","setHasInteractedWithMap","avg","calculateCenter","MapViewController","centerLatLong","fitBounds","resizeObserver","whenCreated","ResizeObserver","invalidateSize","observe","sum","useHoverChartTracking","hasHoveredChart","setHasHoveredChart","chartName","DashboardReportsMap","trackHoveredChart","DashboardReportChart","categories","allPeriods","series","period","chartData","valuesLabel","chart","xAxis","labels","formatter","yAxis","allowDecimals","itemStyle","credits","plotOptions","stacking","headerFormat","pointFormat","colors","getOptions","highcharts","Highcharts","reflow","DashboardReportSexAgeChart","DashboardReportSexAgeTable","rowHeader","columnHeader","DashboardDataCollectionPointChart","DashboardReportVillageChart","mapExpanded","mapCollapsed","mapButton","MapAndDashboardNumbers","DashboardNumbers","setIsMapExpanded","DashboardReportSexAgePyramidChart","totalNumbers","acc","totalCount","femaleAtLeastFivePercentage","femaleBelowFivePercentage","maleAtLeastFivePercentage","maleBelowFivePercentage","unspecifiedPercentage","stack","maxAbsValue","flatMap","abs","toFixed","getCategoryAndSeriesData","dateGroupingType","startEpiWeekString","endEpiWeekString","startYear","startWeek","totalWeekDiff","epiWeekStringInterval","epiYear","getEpiWeekStringInterval","chartStartDateEpiWeekString","chartEndDateEpiWeekString","startDateString","endDateString","parseISO","eachDayOfInterval","start","end","getDateStringInterval","chartStartDateString","chartEndDateString","getAggregatedSeriesData","aggregatedSeries","dateString","groupedReports","healthRiskReports","DashboardKeptReportByHealthRiskChart","yMax","setSelectedHealthRisk","toggleHealthRisk","maxColumnValues","curr","idx","yearandWeek","tickmarkPlacement","tickInterval","tickWidth","lineColor","lineWidth","tickColor","gridLineColor","gridZIndex","stackLabels","pointPadding","borderWidth","groupPadding","shadow","animation","useHTML","ml","projectDashboardActions","ProjectDashboardPage","dashboardElement","long","TableNoData","noDataInfo","AlertStatusChip","AlertsTable","goToAssessment","createSortHandler","hideSortIcon","AlertId","handleGoToAssessment","lastReportRegion","lastReportDistrict","lastReportVillage","lastReportZone","AlertsFilters","handleStatusChange","handleDateFromChange","handleDateToChange","alertsActions","AlertsListPage","handleFilterChange","DisplayField","displayField","relativeTime","require","ReportFormLabel","AlertsAssessmentReport","escalatedAt","showActions","showResetOption","acceptedAt","rejectedAt","fromOtherOrg","showSupervisorDetails","accordion","summarySmallScreen","expandIcon","alignContent","fromNow","supervisorName","supervisorPhoneNumber","AccordionActions","handleDismissReport","handleAcceptReport","handleResetReport","AlertsEscalationDialog","isEscalating","handleEscalateAlert","AlertsCloseDialog","handleCloseAlert","AlertsEscalationWithoutNotificationDialog","GoBackToButton","AlertsAssessmentActions","alertAssessmentStatus","isNationalSocietyEidsrEnabled","hasAccess","escalationDialogOpened","setEscalationDialogOpened","escalationWithoutNotificationDialogOpened","setEscalationWithoutNotificationDialogOpened","closeDialogOpened","setCloseDialogOpened","openValidationSnackbar","setOpenValidationSnackbar","comments","reason","AlertTitle","isEidsrApiConnectionRunning","isIntegrationConfigValid","areReportsValidCount","handleDismissAlert","AlertNotificationRecipients","infoBox","isLargerThanOne","AlertsAssessmentPage","handleReset","hasAccessToActions","healthRiskCountThreshold","healthRiskDaysThreshold","healthRiskKilometersThreshold","recipientsNotified","bodyText","ProjectsOverviewPage","fixed","cardInfoText","ProjectsOverviewHealthRiskItem","healthRiskTextArea","alertRuleData","ProjectHealthRisksPage","ProjectHealthRisksEditPage","DataCollectorStatusIcon","DataCollectorsPerformanceTable","handleTooltipClick","renderTooltipText","activeDataCollectors","totalDataCollectors","renderPercentage","decimals","multiplier","pow","round","roundToFixed","nameColumn","villageColumn","daysColumn","week","weekColumn","filterHeader","completenessBorderBottomColor","completenessTooltip","completenessAlignmentAndBorder","performanceInEpiWeeks","reportingStatus","DataCollectorsPerformanceFilters","handleAreaChange","DataCollectorsPerformanceTableLegend","dataCollectorActions","getDataCollectorPerformanceList","exportPerformance","DataCollectorsPerformancePage","NationalSocietyDashboardFilters","NationalSocietyDashboardNumbers","nationalSocietyDashboardActions","NationalSocietyDashboardPage","TranslationsTable","setSorting","sorted","reverse","sortedTranslations","translation","TranslationsFilters","setNeedsImprovementOnly","translationsActions","TranslationsListPage","NotFoundPage","setError","OrganizationsTable","showDefaultFlag","organizationsActions","OrganizationsListPage","OrganizationsCreatePage","OrganizationsEditPage","ProjectOrganizationsTable","projectOrganizationsActions","ProjectOrganizationsListPage","ProjectOrganizationsCreatePage","EmailTranslationsListPage","SmsTranslationsListPage","projectAlertRecipientsActions","ProjectAlertRecipientsCreatePage","freeTextOrganizations","setFreeTextOrganizations","supervisorsDataSource","setSupervisorsDataSource","selectedSupervisors","setSelectedSupervisors","selectedOrganizationId","setSelectedOrganizationId","acceptAnySupervisor","setAcceptAnySupervisor","acceptAnyHealthRisk","setAcceptAnyHealthRisk","uniqueOrganizations","Set","ar","org","ProjectAlertRecipientsEditPage","alertRecipient","ss","CorrectedButton","IncorrectReportsTable","onCorrectToggle","errorTypeString","errorTypeTranslation","reportErrorType","reportsTableStyles","IncorrectReportsListPage","NationalSocietyCorrectReportsTable","openNationalSocietyReportsList","nationalSocietyReportsActions","NationalSocietyCorrectReportsListPage","NationalSocietyIncorrectReportsTable","NationalSocietyIncorrectReportsListPage","AlertEventExpandableText","isTooLong","getText","collapsibleContentWrapper","actionsMargin","EditAlertEventDialog","eventLogItem","formattedEventType","formattedEventSubtype","bold","labelClassName","inputmode","AlertEventsTable","editDialogOpened","setEditDialogOpened","selectedEvent","setSelectedEvent","selectTypeAndFormat","metadata","escalatedOutcome","alertEventType","formatEventType","formatEventSubtype","alertEventSubtype","loggedBy","CreateAlertEventDialog","filteredSubtypes","setFilteredSubtypes","eventTypeId","eventSubtypeId","hour","minute","typeId","alertEventsActions","AlertEventsLogPage","createDialogOpened","setCreateDialogOpened","settingsHeader","SettingsTableHeader","InputWarningMessage","formField","setMessage","validate","inputWarningMsg","ProjectErrorMessagesPage","setErrorMessages","setIsSaving","fetchData","formsActions","EidsrIntegrationNotEnabled","PasswordDisplayField","setShowPassword","getAsterisk","eidsrIntegrationActions","goToEidsrIntegrationEdition","EidsrIntegrationPage","isEnabled","username","districtsWithOrganizationUnits","districtName","organisationUnitName","DistrictAccordion","withStyles","MuiAccordion","DistrictAccordionSummary","MuiAccordionSummary","DistrictAccordionDetails","MuiAccordionDetails","renderRow","cloneElement","OuterElementContext","createContext","OuterElementType","forwardRef","outerProps","useContext","ListboxComponent","itemData","Children","toArray","smUp","noSsr","itemCount","itemSize","getChildSize","child","isValidElement","gridRef","resetAfterIndex","useResetCache","Provider","outerElementType","innerElementType","overscanCount","renderGroup","VirtualizedAutocomplete","optionsLoading","loadingText","handleChangeValue","trim","textA","toUpperCase","textB","cleanUpOptions","customPopper","disableListWrap","groupBy","Fragment","EidsrIntegrationEditPageDistrictsComponent","integrationEditingDisabled","districtAccordionExpanded","setDistrictAccordionExpanded","districtDropdownsValues","setDistrictDropdownsValues","districtsWithOrganizationUnitsState","setDistrictsWithOrganizationUnitsState","organisationUnitsOptions","panel","newExpanded","organisationUnitId","newTab","updateDistrictDropdownsValues","newState","applyOrganisationUnit","districtValidator","allOrganisationUnits","districtItem","goToEidsrIntegration","EidsrIntegrationEditPage","setIntegrationEditingDisabled","enableIntegrationEditing","formApiProperties","getFormApiProperties","ProgramId","Url","UserName","Password","testConnection","updateDistrictsField","districtInput","FeedbackPage","isSendingFeedback","sendFeedbackResult","hasSent","setHasSent","resetForm","handleGoBack","ProjectAlertNotHandledRecipientItem","isAdministrator","unhandledRecipient","unhandledRecipients","setUnhandledRecipients","setNewRecipient","isCreating","hideDelete","setUser","recipientIds","editRecipients","addRecipients","userList","recipientNameSelect","removedRecipientIndex","rec","newRecipientList","organizationField","projectAlertNotHandledRecipientsActions","ProjectAlertNotHandledRecipientsPage","isFetchingFormData","isFetchingList","setIsCreating","newRecipient","setHideDelete","editedRecipientIds","oldRecipientId","ProjectAlertRecipientsTable","buttonContainer","ProjectAlertRecipientsListPage","stepper","backButton","dialogTitle","useColorlibStepIconStyles","activeText","notCompletedText","completed","Connector","alternativeLabel","line","StepConnector","getStepContent","steps","stepIndex","stepNumber","getStep","SetupStepper","isNextStepInvalid","setIsNextStepInvalid","activeStep","setActiveStep","sortedSteps","stepA","stepB","StepIcon","Stepper","connector","Step","StepLabel","StepIconComponent","prevActiveStep","isOptional","inputLabel","setProjectName","ProjectSetupName","inputText","inputField","setOrganizationId","setAllowMultipleOrganizations","ProjectSetupOrganization","selectedOrganization","setSelectedOrganization","eventOrganization","displayEmpty","renderValue","selectedId","chipContainer","setAlertNotHandledNotificationRecipientIds","ProjectSetupRecipients","alertRecipients","availableRecipients","setAvailableRecipients","selectedRecipients","setSelectedRecipients","recipientsWithinSelectedOrganization","eventRecipient","deselectedRecipientId","deselectedRecipient","handleDelete","useStyle","textInputLabel","cardInfoTextTitle","HealthRiskCardEditable","setHealthRisk","cardProps","editing","setEditing","HealthRiskCardTitle","HealthRiskCardView","HealthRiskCardForm","alertThreshold","setAlertThreshold","chipDisabled","setProjectHealthRisks","ProjectSetupHealthRisk","selectFieldOptions","updateHealthRisk","setRegions","ProjectSetupGeographicalStructure","tempRegions","tempDistricts","tempVillages","tempZones","openSnackbar","setOpenSnackbar","locationExists","temp","cardContent","healthRiskBackground","newLocation","SummaryRow","SummaryHealthRisksRow","SummaryGeographicalStructureRow","ProjectSetupSummary","allLocationRows","newLocationRows","newZones","newVillages","newDistricts","newRegions","concat","projectSetupActions","projectActions","ProjectSetupPage","projectSetupSteps","App","dir","AIConnectionString","ThemeProvider","DayJsUtils","userData","finally","ReactDOM"],"mappings":"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","file":"static/js/main.15f94b5d.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterHeader\":\"DataCollectorsPerformanceTable_filterHeader__23Iow\",\"completenessBorderBottomColor\":\"DataCollectorsPerformanceTable_completenessBorderBottomColor__28Pms\",\"completenessAlignmentAndBorder\":\"DataCollectorsPerformanceTable_completenessAlignmentAndBorder__2ooQG\",\"completeness\":\"DataCollectorsPerformanceTable_completeness__GogCy\",\"completenessTooltip\":\"DataCollectorsPerformanceTable_completenessTooltip__1moqZ\",\"nameColumn\":\"DataCollectorsPerformanceTable_nameColumn__1NzCC\",\"villageColumn\":\"DataCollectorsPerformanceTable_villageColumn__37Kd0\",\"daysColumn\":\"DataCollectorsPerformanceTable_daysColumn__2v8h-\",\"weekColumn\":\"DataCollectorsPerformanceTable_weekColumn__18s7R\",\"phoneNumber\":\"DataCollectorsPerformanceTable_phoneNumber__MVIF3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"healthRisk\":\"ProjectsOverviewHealthRiskItem_healthRisk__H0dFV\",\"healthRiskTextArea\":\"ProjectsOverviewHealthRiskItem_healthRiskTextArea__2kKNt\",\"healthRiskCode\":\"ProjectsOverviewHealthRiskItem_healthRiskCode__WRIIj\",\"alertRuleData\":\"ProjectsOverviewHealthRiskItem_alertRuleData__3DvSs\",\"header\":\"ProjectsOverviewHealthRiskItem_header__1tzbL\",\"healthRiskName\":\"ProjectsOverviewHealthRiskItem_healthRiskName__3Cahw\",\"rtl\":\"ProjectsOverviewHealthRiskItem_rtl__2Ifvx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"layout\":\"Layout_layout__3qLmz\",\"sideMenu\":\"Layout_sideMenu__2-qY2\",\"mainContent\":\"Layout_mainContent__YPoEU\",\"pageContentContainer\":\"Layout_pageContentContainer__i-Lmk\",\"pageContent\":\"Layout_pageContent__3nM6M\",\"loader\":\"Layout_loader__79GWV\",\"centeredLayoutMessage\":\"Layout_centeredLayoutMessage__2CXlt\",\"fillPage\":\"Layout_fillPage__2PYDS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"DataCollectorsPerformanceMap_popup__27ur-\",\"dataCollectorDetails\":\"DataCollectorsPerformanceMap_dataCollectorDetails__pWOPb\",\"map\":\"DataCollectorsPerformanceMap_map__iTkEj\",\"marker_ReportingWithErrors\":\"DataCollectorsPerformanceMap_marker_ReportingWithErrors__TcsJI\",\"marker_ReportingCorrectly\":\"DataCollectorsPerformanceMap_marker_ReportingCorrectly___kORw\",\"marker_NotReporting\":\"DataCollectorsPerformanceMap_marker_NotReporting__34Eh8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"numberName\":\"ProjectsDashboardNumbers_numberName__1GtJm\",\"numberValue\":\"ProjectsDashboardNumbers_numberValue__3yuPC\",\"numberBox\":\"ProjectsDashboardNumbers_numberBox__2_WZH\",\"card\":\"ProjectsDashboardNumbers_card__1_rkc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"rowHeader\":\"DashboardReportSexAgeTable_rowHeader__3Gt7D\",\"columnHeader\":\"DashboardReportSexAgeTable_columnHeader__ku4Sg\",\"table\":\"DashboardReportSexAgeTable_table__2-Sxn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"numberName\":\"NationalSocietyDashboardNumbers_numberName__HztQa\",\"numberValue\":\"NationalSocietyDashboardNumbers_numberValue__3DJaH\",\"numberBox\":\"NationalSocietyDashboardNumbers_numberBox__3-reU\",\"card\":\"NationalSocietyDashboardNumbers_card__19Bx0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fullWidth\":\"ReportsEditPage_fullWidth__3-vnk\",\"formSectionTitle\":\"ReportsEditPage_formSectionTitle__pLOq0\",\"correctNegativeMargin\":\"ReportsEditPage_correctNegativeMargin__1BYXO\",\"tableActionsContainer\":\"ReportsEditPage_tableActionsContainer__2DmdD\",\"editButton\":\"ReportsEditPage_editButton__F1p_s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"MultiSelect_input__MNzmR\",\"valueContainer\":\"MultiSelect_valueContainer__YGKYc\",\"chip\":\"MultiSelect_chip__2u0wr\",\"chipFocused\":\"MultiSelect_chipFocused__1Chso\",\"noOptionsMessage\":\"MultiSelect_noOptionsMessage__1rF39\",\"singleValue\":\"MultiSelect_singleValue__1vKen\",\"placeholder\":\"MultiSelect_placeholder__1vt7W\",\"paper\":\"MultiSelect_paper__2fbeY\",\"divider\":\"MultiSelect_divider__fW6KK\",\"chipLabel\":\"MultiSelect_chipLabel__xZPVc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"marker\":\"MarkerIcon_marker__2MWYF\",\"signMarker\":\"MarkerIcon_signMarker__baQu4\",\"multiple\":\"MarkerIcon_multiple__2ww8p\",\"text\":\"MarkerIcon_text__1LbX3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"ProjectHealthRiskItem_header__29lGO\",\"healthRiskName\":\"ProjectHealthRiskItem_healthRiskName___cG1V\",\"healthRiskNameRtl\":\"ProjectHealthRiskItem_healthRiskNameRtl__3o1AQ\",\"disabled\":\"ProjectHealthRiskItem_disabled__3uCTe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"phoneInput\":\"PhoneInputField_phoneInput__1aZ4a\",\"container\":\"PhoneInputField_container__38Myq\",\"error\":\"PhoneInputField_error__HA6Hn\",\"react-tel-input\":\"PhoneInputField_react-tel-input__3FMOD\",\"special-label\":\"PhoneInputField_special-label__2PNBN\",\"button\":\"PhoneInputField_button__394vO\",\"search\":\"PhoneInputField_search__3EZN8\",\"label\":\"PhoneInputField_label__11A8M\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"consentWrapper\":\"AgreementsPage_consentWrapper__rzrCy\",\"consentPaper\":\"AgreementsPage_consentPaper__3YNXv\",\"aboveDocument\":\"AgreementsPage_aboveDocument__2QXho\",\"agreementDocumentFrame\":\"AgreementsPage_agreementDocumentFrame__22IBY\",\"document\":\"AgreementsPage_document__32aBD\",\"belowDocument\":\"AgreementsPage_belowDocument__G3RSj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message\":\"ReportsTable_message__AO2D8\",\"phoneNumber\":\"ReportsTable_phoneNumber__2Amag\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"message\":\"NationalSocietyReportsTable_message__NbCi1\",\"phoneNumber\":\"NationalSocietyReportsTable_phoneNumber__2eQLj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fullWidth\":\"CreateAlertEventDialog_fullWidth__1AR_g\",\"bold\":\"CreateAlertEventDialog_bold__1FLFC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loginContent\":\"VerifyEmailPage_loginContent__3VAxr\",\"paperHeader\":\"VerifyEmailPage_paperHeader__2xQ85\",\"loginPaper\":\"VerifyEmailPage_loginPaper__32RBP\",\"loginPaperContent\":\"VerifyEmailPage_loginPaperContent__3y4i8\",\"forgotPasswordLink\":\"VerifyEmailPage_forgotPasswordLink__I3Nju\",\"actions\":\"VerifyEmailPage_actions__L01vi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"legend\":\"DataCollectorsPerformanceMapLegend_legend__3q3EG\",\"item\":\"DataCollectorsPerformanceMapLegend_item__3uyXu\",\"icon\":\"DataCollectorsPerformanceMapLegend_icon__2hu2b\",\"rtl\":\"DataCollectorsPerformanceMapLegend_rtl__2FIKi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"legend\":\"DataCollectorsPerformanceTableLegend_legend__3ujHM\",\"label\":\"DataCollectorsPerformanceTableLegend_label__4spDk\",\"rtl\":\"DataCollectorsPerformanceTableLegend_rtl__1IA_3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"endAdornmentButton\":\"SmsGatewaysCreateOrEditPage_endAdornmentButton__1Xuw5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loginContent\":\"ResetPasswordCallbackPage_loginContent__1TD5I\",\"paperHeader\":\"ResetPasswordCallbackPage_paperHeader__1U46L\",\"loginPaper\":\"ResetPasswordCallbackPage_loginPaper__Mumyr\",\"loginPaperContent\":\"ResetPasswordCallbackPage_loginPaperContent__2FsqP\",\"forgotPasswordLink\":\"ResetPasswordCallbackPage_forgotPasswordLink__2mBth\",\"actions\":\"ResetPasswordCallbackPage_actions__t84r2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"collapsibleContentWrapper\":\"AlertEventExpandableText_collapsibleContentWrapper__2X9dL\",\"actionsMargin\":\"AlertEventExpandableText_actionsMargin__1kJug\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filtersGrid\":\"ReportsListPage_filtersGrid__2GIs6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filtersGrid\":\"NationalSocietyReportsListPage_filtersGrid__1s6C4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loader\":\"Loading_loader__SIvl_\",\"absolute\":\"Loading_absolute__2I1Vq\",\"top\":\"Loading_top__1zi7L\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sideMenuHeader\":\"SideMenu_sideMenuHeader__1NfiV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"progressIcon\":\"SubmitButton_progressIcon__3grnq\",\"wide\":\"SubmitButton_wide__HoaPv\",\"underline\":\"SubmitButton_underline__3CtWP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loginContent\":\"ResetPasswordPage_loginContent__AXdRi\",\"paperHeader\":\"ResetPasswordPage_paperHeader__1QpJk\",\"loginPaper\":\"ResetPasswordPage_loginPaper__1BEWc\",\"loginPaperContent\":\"ResetPasswordPage_loginPaperContent__1_U6p\",\"forgotPasswordLink\":\"ResetPasswordPage_forgotPasswordLink__1SF6r\",\"actions\":\"ResetPasswordPage_actions__1eqEF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"horizontal\":\"RadioGroupField_horizontal__1c__m\",\"label\":\"RadioGroupField_label__kLGjP\",\"labelBold\":\"RadioGroupField_labelBold__21gGt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"displayField\":\"DisplayField_displayField__3yh75\",\"label\":\"DisplayField_label__1mXMs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formsActions\":\"ProjectErrorMessagesPage_formsActions__1D7tV\",\"input\":\"ProjectErrorMessagesPage_input__7KlD5\",\"inputWarningMsg\":\"ProjectErrorMessagesPage_inputWarningMsg__3frGw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"recipient\":\"ProjectAlertNotHandledRecipientItem_recipient__1lh50\",\"recipientName\":\"ProjectAlertNotHandledRecipientItem_recipientName__3epRn\",\"recipientNameSelect\":\"ProjectAlertNotHandledRecipientItem_recipientNameSelect__KjCcZ\",\"rtl\":\"ProjectAlertNotHandledRecipientItem_rtl__Xv7FJ\",\"organizationField\":\"ProjectAlertNotHandledRecipientItem_organizationField__1WVuU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"anonymousHeader\":\"AnonymousLayout_anonymousHeader__3Od1h\",\"content\":\"AnonymousLayout_content__2vq0g\",\"anonymousLayout\":\"AnonymousLayout_anonymousLayout__3WEZp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"TableActionsButton_button__2dabf\",\"progressIcon\":\"TableActionsButton_progressIcon__12W1v\",\"mobile\":\"TableActionsButton_mobile__2uQsg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"Form_form__qnEeO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkCell\":\"DataCollectorsTable_checkCell__1pij0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropDown\":\"TablePager_dropDown__1yKVA\",\"pager\":\"TablePager_pager__1o9zc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"myLocationButton\":\"DataCollectorMap_myLocationButton__1pdDU\",\"fetchingLocation\":\"DataCollectorMap_fetchingLocation__3TTck\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reportHealthRiskDetails\":\"MarkerClusterComponent_reportHealthRiskDetails__IpslC\",\"popup\":\"MarkerClusterComponent_popup__1ypUT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon_ReportingWithErrors\":\"DataCollectorStatusIcon_icon_ReportingWithErrors__2WOMx\",\"icon_ReportingCorrectly\":\"DataCollectorStatusIcon_icon_ReportingCorrectly__1wxml\",\"icon_NotReporting\":\"DataCollectorStatusIcon_icon_NotReporting__30UR6\",\"rtl\":\"DataCollectorStatusIcon_rtl__2RGm_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"stringKey\":\"StringsEditor_stringKey__2Akip\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"htmlPreview\":\"TextInputWithHTMLPreviewField_htmlPreview__2775C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"stringSwitcher\":\"StringsSwitcher_stringSwitcher__MU8bp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabMenu\":\"TabMenu_tabMenu__3bRuy\",\"tabs\":\"TabMenu_tabs__f-inK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formActions\":\"FormActions_formActions__1Eaxr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tableActions\":\"TableActions_tableActions__30nil\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"confirmationAction\":\"ConfirmationAction_confirmationAction__3uePe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"ConfirmationDialog_content__3Hji-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"regular\":\"CancelButton_regular__2ftP1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dataCollectorList\":\"ReplaceSupervisorDialog_dataCollectorList__1xbi3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filters\":\"DataCollectorsPerformanceMapFilters_filters__2OQhi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"datePicker\":\"DatePicker_datePicker__9wDN3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"addText\":\"InlineTextEditor_addText__1vVhg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"healthRiskFilter\":\"HealthRiskFilter_healthRiskFilter__JUj7V\",\"healtRiskMenuItem\":\"HealthRiskFilter_healtRiskMenuItem__1O7OG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filtersGrid\":\"ProjectsDashboardPage_filtersGrid__3riGm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"introduction\":\"AlertsAssessment_introduction__3kWww\",\"form\":\"AlertsAssessment_form__1LJCj\",\"reportsTitle\":\"AlertsAssessment_reportsTitle__2evwm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table\":\"AlertNotificationRecipients_table__1sAoj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chip\":\"ProjectsOverviewPage_chip__95XRt\",\"alertNotificationsHeader\":\"ProjectsOverviewPage_alertNotificationsHeader__2DKUR\",\"helpIcon\":\"ProjectsOverviewPage_helpIcon__1QLa4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filtersGrid\":\"NationalSocietyDashboardPage_filtersGrid__1OJWt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterItem\":\"TranslationsFilters_filterItem__1NBzx\",\"filters\":\"TranslationsFilters_filters__Anu1L\",\"filterLabel\":\"TranslationsFilters_filterLabel__1LsyV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customPopper\":\"VirtualizedAutocomplete_customPopper__1Pss2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"clickableRow\":\"Table_clickableRow__25tGX\",\"inactiveRow\":\"Table_inactiveRow__3xdFa\",\"tableContainer\":\"Table_tableContainer__2BwaT\",\"noDataInfo\":\"Table_noDataInfo__8fIHQ\",\"stickyTable\":\"Table_stickyTable__29-33\",\"smallDeviceTableRow\":\"Table_smallDeviceTableRow__3R99P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tableRowActions\":\"TableRowAction_tableRowActions__1wL8g\",\"rtl\":\"TableRowAction_rtl__2d547\",\"tableRowAction\":\"TableRowAction_tableRowAction__3EvNj\",\"fetching\":\"TableRowAction_fetching__lrm-7\",\"icon\":\"TableRowAction_icon__2golh\",\"alwaysHighlighted\":\"TableRowAction_alwaysHighlighted__L3Tu6\",\"loader\":\"TableRowAction_loader__2Wxg9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterContainer\":\"LocationFilter_filterContainer__3QlNA\",\"locationFilterItem\":\"LocationFilter_locationFilterItem__GXL0L\",\"rtl\":\"LocationFilter_rtl__1MozA\",\"regionItem\":\"LocationFilter_regionItem__14MeJ\",\"districtItem\":\"LocationFilter_districtItem__1p62j\",\"villageItem\":\"LocationFilter_villageItem__1RmYX\",\"iconContainer\":\"LocationFilter_iconContainer__2W7_5\",\"arrow\":\"LocationFilter_arrow__2FYqo\",\"clickable\":\"LocationFilter_clickable__JAuaX\",\"divider\":\"LocationFilter_divider__1H8O6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loginContent\":\"LoginPage_loginContent__14aPC\",\"paperHeader\":\"LoginPage_paperHeader__z8k32\",\"loginHeader\":\"LoginPage_loginHeader__3VPKS\",\"loginPaper\":\"LoginPage_loginPaper__1Phfg\",\"loginPaperContent\":\"LoginPage_loginPaperContent__1zgcv\",\"loginFooter\":\"LoginPage_loginFooter__2Lsi6\",\"forgotPasswordLink\":\"LoginPage_forgotPasswordLink__1_n2v\",\"actions\":\"LoginPage_actions__2ZOMZ\",\"loginPageLogo\":\"LoginPage_loginPageLogo__2siV_\",\"initlogo\":\"LoginPage_initlogo__1WwNq\",\"redFill\":\"LoginPage_redFill__Xrc6T\",\"logoCurve\":\"LoginPage_logoCurve__38obn\",\"showcurve\":\"LoginPage_showcurve___I2W6\",\"animationCurve\":\"LoginPage_animationCurve__2rt9W\",\"swosh\":\"LoginPage_swosh__3vWW4\",\"supportLogoHeader\":\"LoginPage_supportLogoHeader__3KaiJ\",\"supportLogo\":\"LoginPage_supportLogo__OLM4k\"};","import { createTheme } from \"@material-ui/core/styles\";\nconst { palette } = createTheme();\n\nexport const nyssPalette = {\n primary: {\n main: \"#D52B1E\",\n contrastText: \"#ffffff\",\n light: \"#FEE7E7\",\n },\n secondary: {\n light: \"#8c9eff\",\n main: \"#333333\",\n dark: \"#3d5afe\",\n contrastText: \"#ffffff\",\n },\n additional1: {\n light: \"#CDDDE7\",\n main: \"#7FA7B7\",\n dark: \"#355770\",\n lightest: \"#E5EEF2\",\n },\n background: {\n light: \"#ffffff\",\n default: \"#F1F1F1\",\n },\n backgroundDark: palette.augmentColor({\n main: \"#F4F4F4\",\n }),\n text: {\n secondary: \"#4F4F4F\",\n },\n};\n\nexport const theme = (direction) =>\n createTheme({\n breakpoints: {\n values: {\n xs: 0,\n sm: 600,\n md: 900,\n lg: 1200,\n xl: 1536,\n },\n },\n direction: direction,\n typography: {\n fontFamily: \"MyriadPro, Arial\",\n body1: {\n fontSize: \"1rem\",\n color: \"#333333\",\n },\n body2: {\n fontSize: \"0.875rem\",\n },\n button: {\n color: \"#333333\",\n },\n h1: {\n fontSize: \"2rem\",\n fontWeight: \"400\",\n margin: \"30px 0 30px\",\n },\n h2: {\n fontSize: \"1.75rem\",\n fontWeight: 600,\n margin: \"10px 0 10px\",\n },\n h3: {\n fontSize: \"1.5rem\",\n fontWeight: 600,\n margin: \"10px 0 10px\",\n },\n h4: {\n fontSize: \"1.25rem\",\n fontWeight: 600,\n margin: \"10px 0 10px\",\n },\n h5: {\n fontSize: \"1.125rem\",\n fontWeight: 600,\n margin: \"10px 0 10px\",\n },\n h6: {\n fontSize: \"1rem\",\n fontWeight: 600,\n margin: \"10px 0 10px\",\n },\n },\n palette: nyssPalette,\n overrides: {\n MuiButton: {\n root: {\n padding: \"7px 15px\",\n textTransform: \"none\",\n fontSize: \"1rem\",\n },\n outlinedPrimary: {\n border: \"2px solid #D52B1E !important\",\n },\n containedPrimary: {\n boxShadow: \"none\",\n \"&:hover\": {\n boxShadow: \"none\",\n },\n },\n },\n MuiIconButton: {\n root: {\n fontSize: \"22px\",\n padding: \"4px\",\n },\n },\n MuiMenu: {\n paper: {\n maxHeight: 200,\n },\n },\n MuiPaper: {\n root: {\n border: \"none\",\n },\n elevation1: {\n boxShadow: \"none\",\n borderRadius: 0,\n },\n },\n MuiInput: {\n root: {\n fontSize: \"1rem\",\n border: \"1px solid #E4E1E0\",\n backgroundColor: \"#fff\",\n },\n input: {\n padding: \"10px\",\n \"&:-webkit-autofill\": {\n transitionDelay: \"9999s\",\n },\n \"&$disabled\": {\n backgroundColor: \"#FAFAFA\",\n },\n },\n formControl: {\n marginTop: \"30px !important\",\n },\n multiline: {\n padding: \"10px\",\n },\n inputMultiline: {\n padding: \"0\",\n },\n underline: {\n \"&:before\": {\n borderBottom: \"none !important\",\n },\n \"&:after\": {\n borderBottomColor: \"#a0a0a0\",\n },\n \"&:hover\": {},\n },\n },\n MuiFormLabel: {\n root: {\n color: \"#333333 !important\",\n transform: \"translate(0, 2px);\",\n lineHeight: \"inherit\",\n fontSize: \"1rem\",\n },\n focused: {},\n },\n MuiFormControlLabel: {\n root: {\n marginRight: direction === \"ltr\" ? \"0px\" : \"-4px\",\n marginLeft: direction === \"ltr\" ? \"-4px\" : \"0px\",\n },\n label: {\n fontSize: \"1rem\",\n },\n },\n MuiInputLabel: {\n root: {\n zIndex: 1,\n },\n shrink: {\n transform: \"translate(0, 2px);\",\n right: 0,\n lineHeight: \"inherit\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n },\n MuiInputAdornment: {\n positionEnd: {\n marginLeft: \"3px\",\n },\n },\n MuiLink: {\n underlineHover: {\n textDecoration: \"underline\",\n },\n },\n MuiListItem: {\n root: {\n paddingLeft: 20,\n \"&$selected\": {\n backgroundColor: \"rgba(0, 0, 0, 0.06)\",\n },\n },\n },\n MuiListItemText: {\n root: {\n padding: \"12px 20px\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n textAlign: direction === \"ltr\" ? \"left\" : \"right\",\n },\n primary: {\n fontSize: \"1rem\",\n color: \"#737373\",\n },\n },\n MuiTableContainer: {\n root: {\n overflow: \"auto\",\n maxHeight: \"90vh\",\n },\n },\n MuiTable: {\n root: {\n borderTop: \"2px solid #f3f3f3\",\n borderLeft: \"2px solid #f3f3f3\",\n borderRight: \"2px solid #f3f3f3\",\n background: \"#FFFFFF\",\n },\n },\n MuiTableHead: {\n root: {\n \"& .MuiTableCell-root\": {\n backgroundColor: nyssPalette.background.light,\n },\n whiteSpace: \"normal\",\n \"@media screen and (max-width: 500px)\": {\n whiteSpace: \"nowrap\",\n }\n },\n },\n MuiTableCell: {\n root: {\n fontSize: \"1rem\",\n textAlign: direction === \"ltr\" ? \"left\" : \"right\",\n },\n head: {\n fontWeight: 600,\n borderBottomColor: \"#8C8C8C\",\n },\n stickyHeader: {\n backgroundColor: \"#F1F1F1\",\n },\n },\n MuiTabs: {\n root: {\n borderBottom: \"1px solid #e0e0e0\",\n },\n indicator: {\n backgroundColor: \"#D52B1E\",\n height: 3,\n },\n },\n MuiCard: {\n root: {\n border: \"2px solid #f3f3f3\",\n },\n },\n MuiCardHeader: {\n title: {\n fontSize: \"1rem\",\n fontWeight: \"bold\",\n },\n },\n MuiCardContent: {\n root: {\n \"&:last-child\": {\n paddingBottom: \"16px\",\n },\n },\n },\n MuiTab: {\n root: {\n \"&:hover\": {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\n opacity: 1,\n },\n },\n textColorInherit: {\n opacity: 1,\n },\n },\n MuiTreeItem: {\n root: {},\n content: {\n padding: \"8px\",\n cursor: \"default !important\",\n \"&:hover\": {\n backgroundColor: \"rgba(0, 0, 0, 0.04)\",\n },\n },\n selected: {},\n label: {\n backgroundColor: \"transparent !important\",\n cursor: \"pointer\",\n paddingLeft: direction === \"ltr\" ? \"4px\" : null,\n paddingRight: direction === \"ltr\" ? null : \"4px\",\n },\n iconContainer: {\n cursor: \"pointer\",\n \"&:empty\": {\n cursor: \"default\",\n },\n },\n group: {\n marginLeft: direction === \"ltr\" ? \"17px\" : null,\n marginRight: direction === \"ltr\" ? null : \"17px\",\n },\n },\n MuiExpansionPanel: {\n root: {\n border: \"2px solid #f3f3f3\",\n \"&$disabled\": {\n backgroundColor: \"#FAFAFA\",\n },\n },\n },\n MuiExpansionPanelActions: {\n root: {\n padding: \"15px 20px\",\n },\n },\n MuiDivider: {\n root: {\n backgroundColor: \"#f3f3f3\",\n },\n },\n MuiDialogTitle: {\n root: {\n paddingBottom: 0,\n },\n },\n MuiRadio: {\n colorSecondary: {\n \"&$checked\": {\n color: \"#D52B1E\",\n },\n },\n root: {\n padding: \"4px\",\n \"& .MuiSvgIcon-root\": {\n height: 22,\n width: 22,\n },\n },\n },\n MuiCheckbox: {\n root: {\n padding: \"4px\",\n \"& .MuiSvgIcon-root\": {\n height: 22,\n width: 22,\n },\n },\n },\n MuiTableSortLabel: {\n root: {\n verticalAlign: \"unset\",\n },\n },\n MuiAutocomplete: {\n input: {\n padding: \"10px !important\",\n },\n inputRoot: {\n paddingRight: direction === \"ltr\" ? 56 : \"0px !important\",\n paddingLeft: direction === \"ltr\" ? null : 56,\n },\n endAdornment: {\n right: direction === \"ltr\" ? 0 : null,\n left: direction === \"ltr\" ? null : 0,\n },\n },\n MuiTooltip: {\n tooltip: {\n fontSize: \"1rem\",\n padding: \"8px\",\n },\n },\n MuiSwitch: {\n root: {\n marginTop: \"7px !important\",\n },\n },\n MuiLinearProgress: {\n root: {\n marginBottom: \"-3px\",\n height: \"3px\",\n },\n },\n MuiPopover: {\n paper: {\n maxWidth: \"400px\",\n },\n },\n MuiSelect: {\n icon: {\n left: direction === \"ltr\" ? null : 0,\n right: direction === \"ltr\" ? 0 : null,\n },\n select: {\n paddingRight: direction === \"ltr\" ? \"24px\" : \"10px !important\",\n paddingLeft: direction === \"ltr\" ? 10 : \"24px\",\n },\n },\n MuiChip: {\n deleteIcon: {\n margin: direction === \"ltr\" ? \"0 5px 0 -6px\" : \"0 -6px 0 5px\",\n },\n icon: {\n marginLeft: direction === \"ltr\" ? \"5px\" : \"-6px\",\n marginRight: direction === \"ltr\" ? \"-6px\" : \"5px\",\n },\n label: {\n fontSize: \"1rem\",\n },\n },\n MuiFormHelperText: {\n root: {\n fontSize: \"1rem\",\n textAlign: direction === \"ltr\" ? \"left\" : \"right\",\n },\n },\n MuiSnackbarContent: {\n action: {\n marginLeft: direction === \"ltr\" ? \"auto\" : \"-8px\",\n marginRight: direction === \"ltr\" ? \"-8px\" : \"auto\",\n paddingLeft: direction === \"ltr\" ? \"16px\" : \"0\",\n paddingRight: direction === \"ltr\" ? \"0\" : \"16px\",\n },\n },\n },\n });\n","export const action = (name) => {\n return {\n INVOKE: `${name}_INVOKE`,\n REQUEST: `${name}_REQUEST`,\n SUCCESS: `${name}_SUCCESS`,\n FAILURE: `${name}_FAILURE`,\n getId: (id) => `${name}_${id}`,\n name: name,\n invoke: (args) => ({ type: `${name}_INVOKE`, ...args }),\n request: (args) => ({ type: `${name}_REQUEST`, ...args }),\n success: (args) => ({ type: `${name}_SUCCESS`, ...args }),\n failure: (args) => ({ type: `${name}_FAILURE`, ...args }),\n };\n};\n","import { action } from \"../utils/actions\";\n\nexport const LOGIN = action(\"LOGIN\");\nexport const LOGOUT = action(\"LOGOUT\");\nexport const VERIFY_EMAIL = action(\"VERIFY_EMAIL\");\nexport const RESET_PASSWORD = action(\"RESET_PASSWORD\");\nexport const RESET_PASSWORD_CALLBACK = action(\"RESET_PASSWORD_CALLBACK\");\n\nexport const localStorageUserIdKey = \"userId\";\n","import {\n LOGIN,\n LOGOUT,\n VERIFY_EMAIL,\n RESET_PASSWORD,\n RESET_PASSWORD_CALLBACK,\n} from \"./authConstants\";\n\nexport const login = {\n invoke: (userName, password, redirectUrl) => ({\n type: LOGIN.INVOKE,\n userName,\n password,\n redirectUrl,\n }),\n\n request: () => ({ type: LOGIN.REQUEST }),\n\n success: () => ({ type: LOGIN.SUCCESS }),\n\n failure: (message) => ({ type: LOGIN.FAILURE, message, suppressPopup: true }),\n};\n\nexport const logout = {\n invoke: () => ({ type: LOGOUT.INVOKE }),\n\n request: () => ({ type: LOGOUT.REQUEST }),\n\n success: () => ({ type: LOGOUT.SUCCESS }),\n\n failure: (message) => ({ type: LOGOUT.FAILURE, message }),\n};\n\nexport const verifyEmail = {\n invoke: (password, email, token) => ({\n type: VERIFY_EMAIL.INVOKE,\n password,\n email,\n token,\n }),\n\n request: () => ({ type: VERIFY_EMAIL.REQUEST }),\n\n success: () => ({ type: VERIFY_EMAIL.SUCCESS }),\n\n failure: (message) => ({ type: VERIFY_EMAIL.FAILURE, message }),\n};\n\nexport const resetPassword = {\n invoke: (email) => ({ type: RESET_PASSWORD.INVOKE, email }),\n\n request: () => ({ type: RESET_PASSWORD.REQUEST }),\n\n success: () => ({ type: RESET_PASSWORD.SUCCESS }),\n\n failure: (message) => ({\n type: RESET_PASSWORD.FAILURE,\n message,\n suppressPopup: true,\n }),\n};\n\nexport const resetPasswordCallback = {\n invoke: (password, email, token) => ({\n type: RESET_PASSWORD_CALLBACK.INVOKE,\n password,\n email,\n token,\n }),\n\n request: () => ({ type: RESET_PASSWORD_CALLBACK.REQUEST }),\n\n success: () => ({ type: RESET_PASSWORD_CALLBACK.SUCCESS }),\n\n failure: (message) => ({ type: RESET_PASSWORD_CALLBACK.FAILURE, message }),\n};\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_CORRECT_REPORTS_LIST = action(\"OPEN_CORRECT_REPORTS_LIST\");\nexport const OPEN_INCORRECT_REPORTS_LIST = action(\n \"OPEN_INCORRECT_REPORTS_LIST\",\n);\nexport const GET_CORRECT_REPORTS = action(\"GET_CORRECT_REPORTS\");\nexport const GET_INCORRECT_REPORTS = action(\"GET_INCORRECT_REPORTS\");\nexport const OPEN_REPORT_EDITION = action(\"OPEN_REPORT_EDITION\");\nexport const EDIT_REPORT = action(\"EDIT_REPORT\");\nexport const EXPORT_TO_CSV = action(\"EXPORT_TO_CSV\");\nexport const EXPORT_TO_EXCEL = action(\"EXPORT_TO_EXCEL\");\nexport const MARK_AS_ERROR = action(\"MARK_AS_ERROR\");\nexport const OPEN_SEND_REPORT = action(\"OPEN_SEND_REPORT\");\nexport const ACCEPT_REPORT = action(\"ACCEPT_REPORT_IN_LIST\");\nexport const DISMISS_REPORT = action(\"DISMISS_REPORT_IN_LIST\");\nexport const TRACK_REPORT_EXPORT = action(\"TRACK_REPORT_EXPORT\");\nexport const MARK_AS_CORRECTED = action(\"MARK_AS_CORRECTED\");\nexport const MARK_AS_NOT_CORRECTED = action(\"MARK_AS_NOT_CORRECTED\");\n\nexport const DateColumnName = \"date\";\n\nexport const reportStatus = {\n new: \"New\",\n pending: \"Pending\",\n accepted: \"Accepted\",\n rejected: \"Rejected\",\n closed: \"Closed\",\n};\n\nexport const reportSexes = {\n male: \"male\",\n female: \"female\",\n unspecified: \"unspecified\",\n};\n\nexport const reportAges = {\n belowFive: \"belowFive\",\n aboveFour: \"aboveFour\",\n unspecified: \"unspecified\",\n};\n\nexport const reportCountToSexAge = {\n countMalesAtLeastFive: {\n sex: reportSexes.male,\n age: reportAges.aboveFour,\n },\n countMalesBelowFive: {\n sex: reportSexes.male,\n age: reportAges.belowFive,\n },\n countFemalesAtLeastFive: {\n sex: reportSexes.female,\n age: reportAges.aboveFour,\n },\n countFemalesBelowFive: {\n sex: reportSexes.female,\n age: reportAges.belowFive,\n },\n countUnspecifiedSexAndAge: {\n sex: reportSexes.unspecified,\n age: reportAges.unspecified,\n },\n};\n\nexport const ReportErrorType = {\n formatError: \"FormatError\",\n healthRiskNotFound: \"HealthRiskNotFound\",\n tooLong: \"TooLong\",\n globalHealthRiskNotFound: \"GlobalHealthRiskCodeNotFound\",\n dataCollectorUsedCollectionPointFormat:\n \"DataCollectorUsedCollectionPointFormat\",\n collectionPointUsedDataCollectorFormat:\n \"CollectionPointUsedDataCollectorFormat\",\n collectionPointNonHumanHealthRisk: \"CollectionPointNonHumanHealthRisk\",\n singleReportNonHumanHealthRisk: \"SingleReportNonHumanHealthRisk\",\n aggregateReportNonHumanHealthRisk: \"AggregateReportNonHumanHealthRisk\",\n eventReportHumanHealthRisk: \"EventReportHumanHealthRisk\",\n genderAndAgeNonHumanHealthRisk: \"GenderAndAgeNonHumanHealthRisk\",\n gateway: \"Gateway\",\n other: \"Other\",\n};\n\nexport const reportDetailedFormatErrors = [\n ReportErrorType.genderAndAgeNonHumanHealthRisk,\n ReportErrorType.singleReportNonHumanHealthRisk,\n ReportErrorType.eventReportHumanHealthRisk,\n ReportErrorType.dataCollectorUsedCollectionPointFormat,\n ReportErrorType.collectionPointUsedDataCollectorFormat,\n ReportErrorType.collectionPointNonHumanHealthRisk,\n ReportErrorType.aggregateReportNonHumanHealthRisk,\n ReportErrorType.tooLong,\n];\n\nexport const ReportType = {\n single: \"Single\",\n aggregate: \"Aggregate\",\n event: \"Event\",\n dataCollectionPoint: \"DataCollectionPoint\",\n};\n","import dayjs from \"dayjs\";\nimport {\n strings,\n stringKeys,\n stringsFormat,\n extractString,\n isStringKey,\n} from \"../strings\";\nimport { useEffect } from \"react\";\nimport { reportAges } from \"../components/reports/logic/reportsConstants\";\n\nconst validateField = (field, formValues) => {\n if (field._validators && field._validators.length !== 0) {\n for (let validator of field._validators) {\n if (validator.length !== 2) {\n throw new Error(\"Wrong validator structure\");\n }\n\n const isValid = validator[1](field.value, formValues);\n\n if (!isValid) {\n return {\n isValid: isValid,\n errorMessage: !isValid ? validator[0]() : null,\n };\n }\n }\n }\n if (field._customError) {\n return {\n isValid: false,\n errorMessage: field._customError,\n };\n }\n\n return {\n isValid: true,\n errorMessage: null,\n };\n};\n\nconst revalidateField = (field, form) => {\n field.error = validateField(field, getFormValues(form)).errorMessage;\n};\n\nconst onChange = (\n name,\n newValue,\n subscribers,\n form,\n suspendValidation,\n formSubscribers,\n) => {\n const field = form[name];\n field.value = newValue;\n\n if (field._validators && !suspendValidation) {\n field.error = validateField(field, getFormValues(form)).errorMessage;\n }\n\n for (let subscriber of subscribers) {\n subscriber({ newValue: newValue, field: field, form: form });\n }\n\n for (let subscriber of formSubscribers) {\n subscriber();\n }\n};\n\nconst validateFields = (fields) => {\n let isValid = true;\n for (let name in fields) {\n if (!fields.hasOwnProperty(name)) {\n continue;\n }\n\n const field = fields[name];\n field.update(field.value);\n\n if (field.error) {\n isValid = false;\n }\n }\n\n return isValid;\n};\n\nconst getFormValues = (fields) => {\n let result = {};\n for (let name in fields) {\n if (!fields.hasOwnProperty(name)) {\n continue;\n }\n\n result[name] = fields[name].value;\n }\n return result;\n};\n\nconst createFormField = (\n name,\n value,\n validatorDefinition,\n form,\n formSubscribers,\n ref,\n) => {\n const subscribers = [];\n\n const field = {\n name: name,\n value: value,\n error: null,\n touched: false,\n ref: ref,\n subscribe: (callback) => {\n subscribers.push(callback);\n return {\n unsubscribe: () => subscribers.splice(subscribers.indexOf(callback), 1),\n };\n },\n _subscribers: subscribers,\n _validators: validatorDefinition,\n _customError: null,\n update: (newValue, suspendValidation) =>\n onChange(\n name,\n newValue,\n subscribers,\n form,\n suspendValidation,\n formSubscribers,\n ),\n scrollTo: () => ref.current && ref.current.scrollIntoView(),\n };\n\n field.setValidators = (newValidators) => (field._validators = newValidators);\n\n return field;\n};\n\nexport const useCustomErrors = (form, error) =>\n useEffect(() => {\n form && form.setCustomErrors(error && error.data);\n }, [form, error]);\n\nexport const createForm = (fields, validators, refs) => {\n const form = {};\n\n const formSubscribers = [];\n\n for (let name in fields) {\n if (!fields.hasOwnProperty(name)) {\n continue;\n }\n\n form[name] = createFormField(\n name,\n fields[name],\n validators && validators[name],\n form,\n formSubscribers,\n refs && refs[name],\n );\n }\n\n const subscribeToForm = (callback) => {\n formSubscribers.push(callback);\n return {\n unsubscribe: () =>\n formSubscribers.splice(formSubscribers.indexOf(callback), 1),\n };\n };\n\n const removeField = (name) => {\n delete form[name];\n };\n\n const setCustomErrors = (errors) => {\n const customErrorsKeys = errors ? Object.keys(errors) : [];\n let hasNewState = false;\n\n for (let name in form) {\n if (!form.hasOwnProperty(name)) {\n continue;\n }\n\n const field = form[name];\n const customErrorKey = customErrorsKeys.find((e) =>\n e.indexOf(\"[\") > -1\n ? e.replace(\"[\", \"_\").replace(\"].\", \"_\").toLowerCase() ===\n name.toLowerCase()\n : e.toLowerCase() === name.toLowerCase(),\n );\n\n if (customErrorKey) {\n const errorMessages = errors[customErrorKey];\n\n if (errorMessages && errorMessages.length) {\n if (!field._customError) {\n hasNewState = true;\n }\n\n field._customError = isStringKey(errorMessages[0])\n ? extractString(errorMessages[0])\n : errorMessages[0];\n }\n } else if (field._customError) {\n field._customError = null;\n hasNewState = true;\n }\n }\n\n hasNewState && validateFields(form);\n };\n\n return {\n fields: form,\n isValid: () => {\n setCustomErrors([]);\n return validateFields(form);\n },\n getValues: () => getFormValues(form),\n subscribe: subscribeToForm,\n addField: (name, value, fieldValidators, ref) => {\n form[name] = createFormField(\n name,\n value,\n fieldValidators,\n form,\n formSubscribers,\n ref,\n );\n },\n setCustomErrors: setCustomErrors,\n clearCustomErrors: () => setCustomErrors([]),\n removeField: (name, _, __) => removeField(name),\n subscribeOnce: (callback) => {\n const { unsubscribe } = subscribeToForm(() => {\n callback();\n unsubscribe();\n });\n },\n revalidateField: (field, formValues) => revalidateField(field, formValues),\n };\n};\n\nfunction timeNotInFuture(value) {\n const valueDate = dayjs(`${dayjs().format(\"YYYY-MM-DD\")} ${value}`);\n return dayjs().isAfter(valueDate);\n}\n\nconst emailRegex =\n /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\nconst phoneNumberRegex = /^\\+[0-9]{6}[0-9]*$/;\nconst timeRegex = /^[0-9]{2}:[0-9]{2}/;\n\nexport const validators = {\n phoneNumber: [\n () => strings(stringKeys.validation.invalidPhoneNumber),\n (value) => !value || phoneNumberRegex.test(value),\n ],\n required: [\n () => strings(stringKeys.validation.fieldRequired),\n (value) => !!value,\n ],\n requiredWhen: (fieldGetter) => [\n () => \"Value is required\",\n (value, fields) => !fieldGetter(fields) || !!value,\n ],\n integer: [\n () => strings(stringKeys.validation.invalidInteger),\n (value) => !value || !isNaN(Number(value)),\n ],\n minLength: (minLength) => [\n () =>\n stringsFormat(stringKeys.validation.tooShortString, { value: minLength }),\n (value) => !value || value.length >= minLength,\n ],\n maxLength: (maxLength) => [\n () =>\n stringsFormat(stringKeys.validation.tooLongString, { value: maxLength }),\n (value) => !value || value.length <= maxLength,\n ],\n email: [\n () => strings(stringKeys.validation.invalidEmail),\n (value) => emailRegex.test(value),\n ],\n emailWhen: (fieldGetter) => [\n () => strings(stringKeys.validation.invalidEmail),\n (value, fields) => !fieldGetter(fields) || emailRegex.test(value),\n ],\n moduloTen: [\n () => strings(stringKeys.validation.invalidModuloTen),\n (value) => Number(value) % 10 === 0,\n ],\n nonNegativeNumber: [\n () => strings(stringKeys.validation.valueCannotBeNegative),\n (value) => !value || (!isNaN(Number(value)) && Number(value) >= 0),\n ],\n inRange: (min, max) => [\n () => stringsFormat(stringKeys.validation.inRange, { min, max }),\n (value) =>\n !value || (!isNaN(Number(value)) && value >= min && value <= max),\n ],\n time: [\n () => strings(stringKeys.validation.invalidTimeFormat),\n (value) => !value || timeRegex.test(value),\n ],\n sexAge: (fieldGetter) => [\n () => strings(stringKeys.validation.sexOrAgeUnspecified),\n (value, fields) =>\n fieldGetter(fields) === value || value !== reportAges.unspecified,\n ],\n uniqueLocation: (fieldGetter, allLocations) => [\n () => strings(stringKeys.validation.duplicateLocation),\n (value, fields) =>\n allLocations.length === 1 ||\n allLocations.filter(\n (l) =>\n l.villageId.toString() === value &&\n (l.zoneId == null || l.zoneId.toString() === fieldGetter(fields)),\n ).length <= 1,\n ],\n timeNotInFuture: [\n () => strings(stringKeys.validation.timeNotInFuture),\n timeNotInFuture,\n ],\n};\n","import React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nimport dayjs from \"dayjs\";\n\nclass FieldBase extends PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.field.value === undefined ? \"\" : props.field.value,\n error: props.field.error,\n };\n\n this.subscription = props.field.subscribe(({ newValue, field }) => {\n this.setState({\n value: newValue,\n error: field.error,\n });\n });\n }\n\n setAutoCompleteValue = (value) =>\n value ? value.inputValue || value.title : \"\";\n\n handleChange = (e, val) => {\n // phone number component sends value where other elements send event\n const type =\n typeof e !== \"string\"\n ? this.getElementType((e.nativeEvent && e.nativeEvent.target) || e)\n : null;\n const value = this.getValue(type, e, val);\n\n this.setState({ value: value });\n this.props.field._customError = null;\n this.props.field.update(\n value,\n !this.props.field.touched && (type === \"textbox\" || type === \"password\"),\n );\n this.props.field.touched = true;\n\n if (this?.props?.subscribeOnChange != null) {\n this.props.subscribeOnChange(e, value);\n }\n };\n\n getValue = (type, e, val) => {\n if (!type) return `+${e}`; // phone number input custom change handling\n return type === \"checkbox\"\n ? e.target.checked\n : type === \"date\"\n ? dayjs(e)\n : this.setAutoCompleteValue(val) || e.target.value;\n };\n\n handleBlur = () => {};\n\n getElementType = (element) => {\n if (typeof element.toISOString === \"function\") {\n return \"date\";\n }\n\n if (element && element.type) {\n switch (element.type.toLowerCase()) {\n case \"checkbox\":\n return \"checkbox\";\n case \"text\":\n return \"textbox\";\n case \"password\":\n return \"textbox\";\n default:\n }\n }\n\n return element.tagName.toLowerCase();\n };\n\n componentWillUnmount() {\n this.subscription.unsubscribe();\n }\n\n render() {\n const { label, field, Component, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nFieldBase.propTypes = {\n Component: PropTypes.func,\n field: PropTypes.shape({\n subscribe: PropTypes.func,\n update: PropTypes.func,\n value: PropTypes.any,\n name: PropTypes.string,\n error: PropTypes.any,\n }),\n};\n\nexport const createFieldComponent = (Component) => (props) => (\n \n);\n\nexport default FieldBase;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createFieldComponent } from \"./FieldBase\";\nimport { TextField } from \"@material-ui/core\";\n\nconst TextInput = ({\n error,\n name,\n label,\n value,\n controlProps,\n multiline,\n rows,\n autoWidth,\n autoFocus,\n disabled,\n type,\n inputMode,\n endAdornment,\n className,\n fieldRef,\n placeholder,\n classNameInput,\n classNameLabel,\n}) => {\n return (\n \n );\n};\n\nTextInput.propTypes = {\n controlProps: PropTypes.object,\n name: PropTypes.string,\n};\n\nexport const TextInputField = createFieldComponent(TextInput);\nexport default TextInputField;\n","let cache = {};\n\nexport const retrieve = ({ key, setter, dependencies }) => {\n if (cache[key]) {\n return Promise.resolve(cache[key].value);\n }\n\n return setter().then((value) => {\n if (!value) {\n return null;\n }\n\n set(key, value, dependencies);\n\n return value;\n });\n};\n\nexport const get = (key) => (cache[key] ? cache[key].value : null);\n\nexport const set = (key, value, dependencies) =>\n (cache[key] = {\n value: value,\n dependencies: dependencies,\n });\n\nexport const cleanCacheForDependencies = (dependencies) => {\n Object.keys(cache).forEach((key) => {\n const entry = cache[key];\n if (\n entry.dependencies &&\n entry.dependencies.some(\n (entryDep) => dependencies.indexOf(entryDep) !== -1,\n )\n ) {\n delete cache[key];\n }\n });\n};\n","export const reloadPage = () => {\n window.location.href = window.location.href + \"\";\n};\n","export class RequestError extends Error {\n constructor(message, data) {\n super(message);\n this.name = \"RequestError\";\n this.data = data;\n }\n}\n","import { stringKeys, stringKey } from \"../strings\";\nimport * as cache from \"./cache\";\nimport { reloadPage } from \"./page\";\nimport { RequestError } from \"./RequestError\";\n\nexport const post = (path, data, anonymous, abortSignal) => {\n const headers = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n };\n\n return callApi(path, \"POST\", data || {}, headers, !anonymous, abortSignal);\n};\n\nexport const get = (path, anonymous, abortSignal) => {\n return callApi(path, \"GET\", undefined, {}, !anonymous, abortSignal);\n};\n\nexport const getCached = ({ path, dependencies }) =>\n cache.retrieve({\n key: path,\n setter: () => get(path),\n dependencies: dependencies,\n });\n\nexport const deleteHttp = (path, anonymous) => {\n return callApi(path, \"DELETE\", undefined, {}, !anonymous);\n};\n\nexport const put = (path, data, anonymous) => {\n const headers = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n };\n\n return callApi(path, \"PUT\", data || {}, headers, !anonymous);\n};\n\nexport const handleValidationError = (response) => {\n const message = stringKey(\n (response.message && response.message.key) ||\n stringKeys.error.responseNotSuccessful,\n );\n const data = response.message && response.message.data;\n\n throw new RequestError(message, data);\n};\n\nconst callApi = (\n path,\n method,\n data,\n headers = {},\n authenticate = false,\n abortSignal = null,\n) => {\n return new Promise((resolve, reject) => {\n let init = {\n method,\n redirect: \"manual\",\n credentials: \"include\",\n headers: new Headers({\n ...headers,\n Pragma: \"no-cache\",\n \"Cache-Control\": \"no-cache\",\n Expires: \"0\",\n ...(window.userLanguage\n ? { \"Accept-Language\": `${window.userLanguage}, en;q=0.5` }\n : {}),\n }),\n signal: abortSignal,\n };\n\n if (data) {\n init.body = JSON.stringify(data);\n }\n\n fetch(path, init)\n .then((response) => {\n if (response.ok) {\n if (response.status === 204) {\n resolve();\n } else {\n resolve(response.json());\n }\n } else if (\n response.status === 0 &&\n response.type === \"opaqueredirect\"\n ) {\n reject(new Error(stringKey(stringKeys.error.redirected)));\n } else if (response.status === 401) {\n reloadPage();\n reject(new Error(stringKey(stringKeys.error.notAuthenticated)));\n } else if (response.status === 403) {\n reject(new Error(stringKey(stringKeys.error.unauthorized)));\n } else if (response.status === 429) {\n reject(new Error(stringKey(stringKeys.error.tooManyRequests)));\n } else if (response.status === 400) {\n return response\n .json()\n .then((data) => handleValidationError(data))\n .catch((e) => reject(e));\n } else {\n return response\n .json()\n .then((data) => reject(new Error(stringKey(data.message.key))))\n .catch((e) => reject(e));\n }\n })\n .catch(reject);\n });\n};\n","import { useEffect } from \"react\";\n\nexport const useMount = (mount) => useEffect(mount, []);\n","import styles from \"./Loading.module.scss\";\n\nimport React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\n\nexport const Loading = ({ style, inline, noWait, absolute, top }) => {\n const [visible, setVisible] = useState(noWait);\n\n useEffect(() => {\n const timer = setTimeout(() => setVisible(true), 200);\n return () => clearTimeout(timer);\n });\n\n if (!visible) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nLoading.propTypes = {\n style: PropTypes.object,\n};\n","import { action } from \"../../../utils/actions\";\n\nexport const ROUTE_CHANGED = \"ROUTE_CHANGED\";\nexport const INIT_APPLICATION = action(\"INIT_APPLICATION\");\nexport const GET_APP_DATA = action(\"GET_APP_DATA\");\nexport const GET_STRINGS = action(\"GET_STRINGS\");\nexport const GO_TO_LOGIN = action(\"GO_TO_LOGIN\");\nexport const GET_USER = action(\"GET_USER\");\nexport const UPDATE_SITEMAP = action(\"UPDATE_SITEMAP\");\nexport const UPDATE_SITEMAP_PATH = action(\"UPDATE_SITEMAP_PATH\");\nexport const OPEN_MODULE = action(\"OPEN_MODULE\");\nexport const SHOW_MESSAGE = action(\"SHOW_MESSAGE\");\nexport const CLOSE_MESSAGE = action(\"CLOSE_MESSAGE\");\nexport const ENTITY_UPDATED = \"ENTITY_UPDATED\";\nexport const SWITCH_STRINGS = \"SWITCH_STRINGS\";\nexport const STRINGS_UPDATED = \"STRINGS_UPDATED\";\nexport const SMS_STRINGS_UPDATED = \"SMS_STRINGS_UPDATED\";\nexport const EMAIL_STRINGS_UPDATED = \"EMAIL_STRINGS_UPDATED\";\nexport const STRINGS_DELETED = \"STRINGS_DELETED\";\nexport const SMS_STRINGS_DELETED = \"SMS_STRINGS_DELETED\";\nexport const EMAIL_STRINGS_DELETED = \"EMAIL_STRINGS_DELETED\";\nexport const SET_APP_READY = \"SET_APP_READY\";\nexport const PAGE_FOCUSED = \"PAGE_FOCUSED\";\nexport const TOGGLE_SIDE_MENU = \"TOGGLE_SIDE_MENU\";\nexport const EXPAND_SIDE_MENU = \"EXPAND_SIDE_MENU\";\nexport const SEND_FEEDBACK = action(\"SEND_FEEDBACK\");\n","import * as actions from \"./appConstans\";\nimport { push } from \"connected-react-router\";\n\nexport const showMessage = (messageKey, time) => ({\n type: actions.SHOW_MESSAGE.INVOKE,\n messageKey,\n time,\n});\nexport const closeMessage = () => ({ type: actions.CLOSE_MESSAGE.INVOKE });\nexport const entityUpdated = (entity) => ({\n type: actions.ENTITY_UPDATED,\n entities: [entity],\n});\nexport const switchStrings = (status) => ({\n type: actions.SWITCH_STRINGS,\n status,\n});\nexport const setAppReady = (status) => ({\n type: actions.SET_APP_READY,\n status,\n});\nexport const toggleSideMenu = (value) => ({\n type: actions.TOGGLE_SIDE_MENU,\n value,\n});\nexport const expandSideMenu = (value) => ({\n type: actions.EXPAND_SIDE_MENU,\n value,\n});\nexport const goToTranslations = () => push(`/translations`);\nexport const pageFocused = () => ({ type: actions.PAGE_FOCUSED });\nexport const stringsUpdated = (key, translations) => ({\n type: actions.STRINGS_UPDATED,\n key,\n translations,\n});\nexport const smsStringsUpdated = (key, translations) => ({\n type: actions.SMS_STRINGS_UPDATED,\n key,\n translations,\n});\nexport const emailStringsUpdated = (key, translations) => ({\n type: actions.EMAIL_STRINGS_UPDATED,\n key,\n translations,\n});\nexport const stringsDeleted = (key) => ({ type: actions.STRINGS_DELETED, key });\nexport const smsStringsDeleted = (key) => ({\n type: actions.SMS_STRINGS_DELETED,\n key,\n});\nexport const emailStringsDeleted = (key) => ({\n type: actions.EMAIL_STRINGS_DELETED,\n key,\n});\n\nexport const initApplication = {\n invoke: () => ({ type: actions.INIT_APPLICATION.INVOKE }),\n\n request: () => ({ type: actions.INIT_APPLICATION.REQUEST }),\n\n success: () => ({ type: actions.INIT_APPLICATION.SUCCESS }),\n\n failure: (message) => ({ type: actions.INIT_APPLICATION.FAILURE, message }),\n};\n\nexport const getUser = {\n invoke: () => ({ type: actions.GET_USER.INVOKE }),\n\n request: () => ({ type: actions.GET_USER.REQUEST }),\n\n success: (isAuthenticated, user) => ({\n type: actions.GET_USER.SUCCESS,\n isAuthenticated,\n user,\n }),\n\n failure: (message) => ({ type: actions.GET_USER.FAILURE, message }),\n};\n\nexport const getAppData = {\n invoke: () => ({ type: actions.GET_APP_DATA.INVOKE }),\n\n request: () => ({ type: actions.GET_APP_DATA.REQUEST }),\n\n success: (\n contentLanguages,\n countries,\n isDevelopment,\n isDemo,\n authCookieExpiration,\n applicationInsightsConnectionString,\n ) => ({\n type: actions.GET_APP_DATA.SUCCESS,\n contentLanguages,\n countries,\n isDevelopment,\n isDemo,\n authCookieExpiration,\n applicationInsightsConnectionString,\n }),\n\n failure: (message) => ({ type: actions.GET_APP_DATA.FAILURE, message }),\n};\n\nexport const getStrings = {\n invoke: () => ({ type: actions.GET_STRINGS.INVOKE }),\n\n request: () => ({ type: actions.GET_STRINGS.REQUEST }),\n\n success: () => ({ type: actions.GET_STRINGS.SUCCESS }),\n\n failure: (message) => ({ type: actions.GET_STRINGS.FAILURE, message }),\n};\n\nexport const openModule = {\n invoke: (path, params) => ({\n type: actions.OPEN_MODULE.INVOKE,\n path,\n params,\n }),\n\n success: (\n path,\n parameters,\n generalMenu,\n sideMenu,\n tabMenu,\n projectTabMenu,\n title,\n subTitle,\n ) => ({\n type: actions.OPEN_MODULE.SUCCESS,\n path,\n parameters,\n generalMenu,\n sideMenu,\n tabMenu,\n projectTabMenu,\n title,\n subTitle,\n }),\n\n failure: (message) => ({ type: actions.OPEN_MODULE.FAILURE, message }),\n};\n\nexport const sendFeedback = {\n invoke: (message) => ({ type: actions.SEND_FEEDBACK.INVOKE, message }),\n request: () => ({ type: actions.SEND_FEEDBACK.REQUEST }),\n success: () => ({ type: actions.SEND_FEEDBACK.SUCCESS }),\n failure: (message) => ({ type: actions.SEND_FEEDBACK.FAILURE, message }),\n};\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Checkbox, FormControlLabel, FormHelperText } from \"@material-ui/core\";\nimport { createFieldComponent } from \"./FieldBase\";\n\nconst CheckboxInput = ({\n error,\n name,\n label,\n value,\n controlProps,\n customProps,\n}) => {\n return (\n \n \n }\n name={name}\n label={label}\n />\n {error && {error}}\n \n );\n};\n\nCheckboxInput.propTypes = {\n label: PropTypes.string,\n controlProps: PropTypes.object,\n value: PropTypes.bool,\n name: PropTypes.string,\n error: PropTypes.string,\n};\n\nexport const CheckboxField = createFieldComponent(CheckboxInput);\nexport default CheckboxField;\n","import React, { useState, Fragment } from \"react\";\nimport { createForm } from \"../../../utils/forms\";\nimport TextInputField from \"../../forms/TextInputField\";\nimport { post, get } from \"../../../utils/http\";\nimport { useMount } from \"../../../utils/lifecycle\";\nimport { Loading } from \"../loading/Loading\";\nimport { updateStrings } from \"../../../strings\";\nimport {\n Grid,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@material-ui/core\";\nimport { useDispatch } from \"react-redux\";\nimport { stringsUpdated } from \"../../app/logic/appActions\";\nimport { stringsDeleted } from \"../../app/logic/appActions\";\nimport CheckboxField from \"../../forms/CheckboxField\";\n\nexport const StringsEditorDialog = ({ stringKey, close }) => {\n const [form, setForm] = useState(null);\n const [languageCodes, setLanguageCodes] = useState([]);\n const dispatch = useDispatch();\n\n const currentLanguageCode = \"en\";\n\n useMount(() => {\n get(`/api/resources/getString/${encodeURI(stringKey)}`).then((response) => {\n const translations = response.value.translations;\n\n setLanguageCodes(\n translations.map((t) => ({\n languageCode: t.languageCode,\n name: t.name,\n })),\n );\n\n const translationFields = translations.reduce(\n (prev, current) => ({\n ...prev,\n [`value_${current.languageCode}`]: current.value,\n }),\n {},\n );\n\n const fields = {\n key: stringKey,\n needsImprovement: response.value.needsImprovement,\n ...translationFields,\n };\n\n setForm(createForm(fields));\n });\n });\n\n const handleSave = () => {\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n const dto = {\n key: values.key,\n needsImprovement: values.needsImprovement,\n translations: languageCodes.map((lang) => ({\n languageCode: lang.languageCode,\n value: values[`value_${lang.languageCode}`],\n })),\n };\n\n post(\"/api/resources/saveString\", dto).then(() => {\n updateStrings({\n [values.key]: {\n needsImprovement: values.needsImprovement,\n value: values[`value_${currentLanguageCode}`],\n },\n });\n\n dispatch(\n stringsUpdated(\n dto.key,\n dto.translations.reduce(\n (prev, current) => ({\n ...prev,\n [current.languageCode]: current.value,\n }),\n {},\n ),\n ),\n );\n close();\n });\n };\n\n const handleDelete = () => {\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n const dto = {\n key: values.key,\n };\n\n post(\"/api/resources/deleteString\", dto).then(() => {\n dispatch(stringsDeleted(dto.key));\n close();\n });\n };\n\n if (!form) {\n return null;\n }\n\n const handleKeyDown = (e) => {\n e.stopPropagation();\n\n if (e.key === \"Escape\") {\n close();\n }\n\n if (e.key === \"Enter\") {\n handleSave();\n }\n };\n\n return (\n e.stopPropagation()}\n onKeyDown={handleKeyDown}\n >\n Edit string resource\n \n \n {!form && }\n {form && (\n \n \n \n \n\n {languageCodes.map((lang, index) => (\n \n \n \n ))}\n \n )}\n \n
\n
\n {form && (\n \n \n \n \n \n \n )}\n \n );\n};\n","import styles from \"./TextInputWithHTMLPreviewField.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createFieldComponent } from \"./FieldBase\";\nimport { Grid, TextField } from \"@material-ui/core\";\n\nconst TextInputWithHTMLPreview = ({\n error,\n name,\n label,\n value,\n controlProps,\n multiline,\n rows,\n autoWidth,\n autoFocus,\n disabled,\n type,\n}) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nTextInputWithHTMLPreview.propTypes = {\n controlProps: PropTypes.object,\n name: PropTypes.string,\n};\n\nexport const TextInputWithHTMLPreviewField = createFieldComponent(\n TextInputWithHTMLPreview,\n);\nexport default TextInputWithHTMLPreviewField;\n","import React, { useState, Fragment } from \"react\";\nimport { createForm } from \"../../../utils/forms\";\nimport TextInputField from \"../../forms/TextInputField\";\nimport { post, get } from \"../../../utils/http\";\nimport { useMount } from \"../../../utils/lifecycle\";\nimport { Loading } from \"../loading/Loading\";\nimport { useDispatch } from \"react-redux\";\nimport {\n emailStringsDeleted,\n emailStringsUpdated,\n} from \"../../app/logic/appActions\";\nimport TextWithHTMLPreviewInputField from \"../../forms/TextInputWithHTMLPreviewField\";\nimport {\n useTheme,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n useMediaQuery,\n Grid,\n} from \"@material-ui/core\";\n\nexport const EmailStringsEditorDialog = ({ stringKey, close }) => {\n const [form, setForm] = useState(null);\n const [languageCodes, setLanguageCodes] = useState([]);\n const dispatch = useDispatch();\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const currentLanguageCode = \"en\";\n\n useMount(() => {\n get(`/api/resources/getEmailString/${encodeURI(stringKey)}`).then(\n (response) => {\n const translations = response.value.translations;\n\n setLanguageCodes(\n translations.map((t) => ({\n languageCode: t.languageCode,\n name: t.name,\n value: t.value,\n })),\n );\n\n const translationFields = translations.reduce(\n (prev, current) => ({\n ...prev,\n [`value_${current.languageCode}`]: current.value,\n }),\n {},\n );\n\n const fields = {\n key: stringKey,\n ...translationFields,\n };\n\n setForm(createForm(fields));\n },\n );\n });\n\n const handleSave = () => {\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n const dto = {\n key: values.key,\n translations: languageCodes.map((lang) => ({\n languageCode: lang.languageCode,\n value: values[`value_${lang.languageCode}`],\n })),\n };\n\n post(\"/api/resources/saveEmailString\", dto).then(() => {\n dispatch(\n emailStringsUpdated(\n dto.key,\n dto.translations.reduce(\n (prev, current) => ({\n ...prev,\n [current.languageCode]: current.value,\n }),\n {},\n ),\n ),\n );\n close();\n });\n };\n\n const handleDelete = () => {\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n const dto = {\n key: values.key,\n };\n\n post(\"/api/resources/deleteEmailString\", dto).then(() => {\n dispatch(emailStringsDeleted(dto.key));\n close();\n });\n };\n\n if (!form) {\n return null;\n }\n\n const handleKeyDown = (e) => {\n e.stopPropagation();\n\n if (e.key === \"Escape\") {\n close();\n }\n };\n\n return (\n e.stopPropagation()}\n onKeyDown={handleKeyDown}\n fullScreen={fullScreen}\n maxWidth=\"md\"\n >\n Edit string resource\n \n \n {!form && }\n {form && (\n \n \n \n \n\n {languageCodes.map((lang, index) => (\n \n \n \n ))}\n \n )}\n \n
\n
\n {form && (\n \n \n \n \n \n )}\n \n );\n};\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createFieldComponent } from \"./FieldBase\";\nimport { Typography, Grid, TextField } from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../strings\";\n\nconst TextInputWithCharacterCount = ({\n error,\n name,\n label,\n value,\n controlProps,\n multiline,\n rows,\n autoWidth,\n autoFocus,\n disabled,\n type,\n}) => {\n return (\n \n \n \n \n {`${strings(\n stringKeys.translations.smsCharacters,\n )} ${value.length}`}\n \n \n {`${strings(\n stringKeys.translations.smsParts,\n )} ${parseInt(value.length / 160) + 1}`}\n \n \n \n );\n};\n\nTextInputWithCharacterCount.propTypes = {\n controlProps: PropTypes.object,\n name: PropTypes.string,\n};\n\nexport const TextInputWithCharacterCountField = createFieldComponent(\n TextInputWithCharacterCount,\n);\nexport default TextInputWithCharacterCountField;\n","import React, { useState, Fragment } from \"react\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Grid,\n} from \"@material-ui/core\";\nimport { createForm } from \"../../../utils/forms\";\nimport TextInputField from \"../../forms/TextInputField\";\nimport { post, get } from \"../../../utils/http\";\nimport { useMount } from \"../../../utils/lifecycle\";\nimport { Loading } from \"../loading/Loading\";\nimport { useDispatch } from \"react-redux\";\nimport {\n smsStringsDeleted,\n smsStringsUpdated,\n} from \"../../app/logic/appActions\";\nimport TextInputWithCharacterCountField from \"../../forms/TextInputWithCharacterCountField\";\n\nexport const SmsStringsEditorDialog = ({ stringKey, close }) => {\n const [form, setForm] = useState(null);\n const [languageCodes, setLanguageCodes] = useState([]);\n const dispatch = useDispatch();\n\n const currentLanguageCode = \"en\";\n\n useMount(() => {\n get(`/api/resources/getSmsString/${encodeURI(stringKey)}`).then(\n (response) => {\n const translations = response.value.translations;\n\n setLanguageCodes(\n translations.map((t) => ({\n languageCode: t.languageCode,\n name: t.name,\n })),\n );\n\n const translationFields = translations.reduce(\n (prev, current) => ({\n ...prev,\n [`value_${current.languageCode}`]: current.value,\n }),\n {},\n );\n\n const fields = {\n key: stringKey,\n ...translationFields,\n };\n\n setForm(createForm(fields));\n },\n );\n });\n\n const handleSave = () => {\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n const dto = {\n key: values.key,\n translations: languageCodes.map((lang) => ({\n languageCode: lang.languageCode,\n value: values[`value_${lang.languageCode}`],\n })),\n };\n\n post(\"/api/resources/saveSmsString\", dto).then(() => {\n dispatch(\n smsStringsUpdated(\n dto.key,\n dto.translations.reduce(\n (prev, current) => ({\n ...prev,\n [current.languageCode]: current.value,\n }),\n {},\n ),\n ),\n );\n close();\n });\n };\n\n const handleDelete = () => {\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n const dto = {\n key: values.key,\n };\n\n post(\"/api/resources/deleteSmsString\", dto).then(() => {\n dispatch(smsStringsDeleted(dto.key));\n close();\n });\n };\n\n if (!form) {\n return null;\n }\n\n const handleKeyDown = (e) => {\n e.stopPropagation();\n\n if (e.key === \"Escape\") {\n close();\n }\n\n if (e.key === \"Enter\") {\n handleSave();\n }\n };\n\n return (\n e.stopPropagation()}\n onKeyDown={handleKeyDown}\n >\n Edit string resource\n \n \n {!form && }\n {form && (\n \n \n \n \n\n {languageCodes.map((lang, index) => (\n \n \n \n ))}\n \n )}\n \n
\n
\n {form && (\n \n \n \n \n \n )}\n \n );\n};\n","import styles from \"./StringsEditor.module.scss\";\n\nimport React, { useState, Fragment } from \"react\";\nimport { StringsEditorDialog } from \"./StringsEditorDialog\";\nimport { EmailStringsEditorDialog } from \"./EmailStringsEditorDialog\";\nimport { SmsStringsEditorDialog } from \"./SmsStringsEditorDialog\";\n\nexport const StringsEditor = ({ stringKey, type, needsImprovement }) => {\n const [open, setOpen] = useState(false);\n\n const onStringClick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setOpen(true);\n };\n\n return (\n \n {`${stringKey}${needsImprovement ? \"*\" : \"\"}`}\n\n {open && type === \"strings\" && (\n {\n setOpen(false);\n }}\n />\n )}\n {open && type === \"email\" && (\n {\n setOpen(false);\n }}\n />\n )}\n {open && type === \"sms\" && (\n {\n setOpen(false);\n }}\n />\n )}\n \n );\n};\n","export const placeholders = {\n generalMenu: \"generalMenu\",\n leftMenu: \"leftMenu\",\n tabMenu: \"tabMenu\",\n projectTabMenu: \"projectTabMenu\",\n projectSubMenu: \"projectSubMenu\",\n};\n","export const Administrator = \"Administrator\";\nexport const GlobalCoordinator = \"GlobalCoordinator\";\nexport const TechnicalAdvisor = \"TechnicalAdvisor\";\nexport const DataConsumer = \"DataConsumer\";\nexport const Manager = \"Manager\";\nexport const Supervisor = \"Supervisor\";\nexport const Coordinator = \"Coordinator\";\nexport const HeadSupervisor = \"HeadSupervisor\";\n","import {\n Administrator,\n GlobalCoordinator,\n Manager,\n TechnicalAdvisor,\n DataConsumer,\n Supervisor,\n HeadSupervisor,\n Coordinator,\n} from \"./roles\";\n\nexport const accessMap = {\n nationalSocieties: {\n showDashboard: [\n Administrator,\n GlobalCoordinator,\n Manager,\n Coordinator,\n TechnicalAdvisor,\n DataConsumer,\n ],\n list: [Administrator, GlobalCoordinator, TechnicalAdvisor, DataConsumer],\n add: [Administrator, GlobalCoordinator],\n edit: [\n Administrator,\n GlobalCoordinator,\n Manager,\n TechnicalAdvisor,\n Coordinator,\n ],\n delete: [Administrator, GlobalCoordinator],\n archive: [Administrator, GlobalCoordinator],\n get: [\n Administrator,\n GlobalCoordinator,\n Manager,\n TechnicalAdvisor,\n DataConsumer,\n Coordinator,\n ],\n },\n nationalSocietyStructure: {\n edit: [Administrator, Manager, TechnicalAdvisor, Coordinator],\n },\n smsGateways: {\n list: [Administrator, Manager, TechnicalAdvisor, Coordinator],\n add: [Administrator],\n edit: [Administrator],\n delete: [Administrator],\n },\n eidsrIntegration: {\n get: [\n Administrator,\n GlobalCoordinator,\n Manager,\n TechnicalAdvisor,\n DataConsumer,\n Coordinator,\n ],\n edit: [Administrator, Manager, TechnicalAdvisor, Coordinator],\n },\n organizations: {\n list: [Administrator, Coordinator, Manager, TechnicalAdvisor],\n add: [Administrator, Coordinator, Manager, TechnicalAdvisor],\n edit: [Administrator, Coordinator, Manager, TechnicalAdvisor],\n delete: [Administrator, Coordinator, Manager, TechnicalAdvisor],\n },\n projects: {\n get: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n DataConsumer,\n Supervisor,\n HeadSupervisor,\n Coordinator,\n ],\n settings: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n Coordinator,\n ],\n overview: [Administrator, Manager, TechnicalAdvisor, Coordinator],\n projectHealthRisks: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n Coordinator,\n ],\n showDashboard: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n DataConsumer,\n Supervisor,\n HeadSupervisor,\n Coordinator,\n ],\n list: [Administrator, Manager, TechnicalAdvisor, DataConsumer, Coordinator],\n add: [Administrator, Manager, TechnicalAdvisor, Coordinator],\n edit: [Administrator, Manager, TechnicalAdvisor, Coordinator],\n delete: [Administrator, Manager, TechnicalAdvisor, Coordinator],\n },\n nationalSocietyUsers: {\n list: [\n Administrator,\n GlobalCoordinator,\n Manager,\n TechnicalAdvisor,\n Coordinator,\n ],\n add: [\n Administrator,\n GlobalCoordinator,\n Manager,\n TechnicalAdvisor,\n Coordinator,\n ],\n edit: [\n Administrator,\n GlobalCoordinator,\n Manager,\n TechnicalAdvisor,\n Coordinator,\n ],\n delete: [\n Administrator,\n GlobalCoordinator,\n Manager,\n TechnicalAdvisor,\n Coordinator,\n ],\n headManagerAccess: [GlobalCoordinator, Administrator, Coordinator],\n },\n globalCoordinators: {\n list: [Administrator, GlobalCoordinator],\n add: [Administrator],\n edit: [Administrator],\n delete: [Administrator],\n },\n healthRisks: {\n list: [Administrator, GlobalCoordinator],\n add: [Administrator, GlobalCoordinator],\n edit: [Administrator, GlobalCoordinator],\n delete: [Administrator, GlobalCoordinator],\n },\n suspectedDiseases: {\n list: [Administrator, GlobalCoordinator],\n add: [Administrator, GlobalCoordinator],\n edit: [Administrator, GlobalCoordinator],\n delete: [Administrator, GlobalCoordinator],\n },\n dataCollectors: {\n list: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n performanceList: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n add: [Administrator, Manager, TechnicalAdvisor, Supervisor, HeadSupervisor],\n edit: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n delete: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n export: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n HeadSupervisor,\n Supervisor,\n ],\n replaceSupervisor: [Administrator, Manager, TechnicalAdvisor],\n },\n projectOrganizations: {\n list: [Administrator, Coordinator, Manager, TechnicalAdvisor],\n add: [Administrator, Coordinator],\n delete: [Administrator, Coordinator],\n },\n projectAlertNotifications: {\n list: [Administrator, Manager, TechnicalAdvisor],\n addRecipient: [Administrator, Manager, TechnicalAdvisor],\n editRecipient: [Administrator, Manager, TechnicalAdvisor],\n deleteRecipient: [Administrator, Manager, TechnicalAdvisor],\n },\n reports: {\n list: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n edit: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n sendReport: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n goToAlert: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n crossCheck: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n },\n nationalSocietyReports: {\n list: [Administrator, Manager, TechnicalAdvisor],\n },\n alerts: {\n list: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n Coordinator,\n ],\n assess: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n Coordinator,\n ],\n },\n alertEvents: {\n list: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n add: [Administrator, Manager, TechnicalAdvisor, Supervisor, HeadSupervisor],\n edit: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n delete: [\n Administrator,\n Manager,\n TechnicalAdvisor,\n Supervisor,\n HeadSupervisor,\n ],\n },\n translations: {\n list: [Administrator, GlobalCoordinator],\n },\n projectErrorMessages: {\n list: [Administrator, Manager, TechnicalAdvisor],\n edit: [Administrator, Manager, TechnicalAdvisor],\n },\n feedback: {\n send: [\n Administrator,\n GlobalCoordinator,\n TechnicalAdvisor,\n DataConsumer,\n Manager,\n Supervisor,\n Coordinator,\n HeadSupervisor,\n ],\n },\n};\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const eidsrIntegrationSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/eidsrintegration\",\n title: () => strings(stringKeys.eidsrIntegration.title),\n placeholder: placeholders.tabMenu,\n access: accessMap.eidsrIntegration.get,\n placeholderIndex: 4,\n middleStepOnly: true,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/eidsrintegration\",\n path: \"/nationalsocieties/:nationalSocietyId/eidsrintegration/edit\",\n title: () => strings(stringKeys.eidsrIntegration.form.editionTitle),\n access: accessMap.eidsrIntegration.edit,\n },\n];\n","import React from \"react\";\nimport { StringsEditor } from \"./components/common/stringsEditor/StringsEditor\";\nimport { eidsrIntegrationSiteMap } from \"./components/eidsrIntegration/logic/eidsrIntegrationSiteMap\";\n\nlet stringList = {};\n\nlet showKeys = false;\n\nexport const areStringKeysDisplayed = () => showKeys;\n\nexport const stringKeys = {\n error: {\n responseNotSuccessful: \"error.responseNotSuccessful\",\n notAuthenticated: \"error.notAuthenticated\",\n unauthorized: \"error.unauthorized\",\n redirected: \"error.redirected\",\n tooManyRequests: \"error.tooManyRequests\",\n errorPage: {\n message: \"error.generalErrorMessage\",\n goHome: \"error.goHome\",\n notFound: \"error.notFound\",\n },\n },\n roles: {\n TechnicalAdvisor: \"role.technicaladvisor\",\n Administrator: \"role.administrator\",\n GlobalCoordinator: \"role.globalcoordinator\",\n DataConsumer: \"role.dataconsumer\",\n Manager: \"role.manager\",\n Supervisor: \"role.supervisor\",\n Coordinator: \"role.coordinator\",\n HeadSupervisor: \"role.headsupervisor\",\n },\n login: {\n title: \"login.title\",\n welcome: \"login.welcome\",\n signIn: \"login.signIn\",\n email: \"login.email\",\n password: \"login.password\",\n forgotPassword: \"login.forgotPassword\",\n notSucceeded: \"login.notSucceeded\",\n lockedOut: \"login.lockedOut\",\n },\n nationalSociety: {\n title: \"nationalSociety.title\",\n edit: \"nationalSociety.edit\",\n archive: {\n title: \"nationalSociety.archive.title\",\n content: \"nationalSociety.archive.content\",\n },\n reopen: {\n title: \"nationalSociety.reopen.title\",\n content: \"nationalSociety.reopen.content\",\n },\n form: {\n creationTitle: \"nationalSociety.form.creationTitle\",\n editionTitle: \"nationalSociety.form.editionTitle\",\n name: \"nationalSociety.form.name\",\n initialOrganizationName: \"nationalSociety.form.initialOrganizationName\",\n country: \"nationalSociety.form.country\",\n contentLanguage: \"nationalSociety.form.contentLanguage\",\n epiWeekStandard: {\n title: \"nationalSociety.form.epiWeekStandard.title\",\n Sunday: {\n label: \"nationalSociety.form.epiWeekStandard.sunday.label\",\n description:\n \"nationalSociety.form.epiWeekStandard.sunday.description\",\n },\n Monday: {\n label: \"nationalSociety.form.epiWeekStandard.monday.label\",\n description:\n \"nationalSociety.form.epiWeekStandard.monday.description\",\n },\n },\n enableEidsrIntegration: \"nationalSociety.form.enableEidsrIntegration\",\n },\n messages: {\n create: {\n success: \"nationalSociety.create.success\",\n },\n edit: {\n success: \"nationalSociety.edit.success\",\n },\n delete: {\n success: \"nationalSociety.delete.success\",\n },\n archive: {\n success: \"nationalSociety.archive.success\",\n },\n reopen: {\n success: \"nationalSociety.reopen.success\",\n },\n },\n list: {\n country: \"nationalSociety.list.country\",\n startDate: \"nationalSociety.list.startDate\",\n coordinator: \"nationalSociety.list.coordinator\",\n headManager: \"nationalSociety.list.headManager\",\n technicalAdvisor: \"nationalSociety.list.technicalAdvisor\",\n archive: \"nationalSociety.list.archive\",\n reopen: \"nationalSociety.list.reopen\",\n },\n settings: {\n title: \"nationalSociety.settings.title\",\n },\n overview: {\n title: \"nationalSociety.overview.title\",\n },\n structure: {\n title: \"nationalSociety.structure.title\",\n introduction: \"nationalSociety.structure.introduction\",\n removalConfirmation: \"nationalSociety.structure.removalConfirmation\",\n saveEdition: \"nationalSociety.structure.saveEdition\",\n saveNew: \"nationalSociety.structure.saveNew\",\n addRegion: \"nationalSociety.structure.addRegion\",\n addDistrict: \"nationalSociety.structure.addDistrict\",\n addVillage: \"nationalSociety.structure.addVillage\",\n addZone: \"nationalSociety.structure.addZone\",\n locationHeader: {\n region: \"nationalSociety.structure.region\",\n district: \"nationalSociety.structure.district\",\n village: \"nationalSociety.structure.village\",\n zone: \"nationalSociety.structure.zone\",\n },\n },\n setHead: {\n notAMemberOfSociety: \"nationalSociety.setHead.notAMemberOfSociety\",\n },\n },\n reportsMap: {\n reports: \"reportsMap.reports\",\n report: \"reportsMap.report\",\n },\n healthRisk: {\n title: \"healthRisk.title\",\n form: {\n creationTitle: \"healthRisk.form.creationTitle\",\n editionTitle: \"healthRisk.form.editionTitle\",\n healthRiskCode: \"healthRisk.form.healthRiskCode\",\n healthRiskType: \"healthRisk.form.healthRiskType\",\n translationsSection: \"healthRisk.form.translationsSection\",\n alertsSection: \"healthRisk.form.alertsSection\",\n suspectedDiseaseTitle: \"healthRisk.form.suspectedDiseaseTitle\",\n suspectedDiseaseList: \"healthRisk.form.suspectedDiseaseList\",\n noAlertRule: \"healthRisk.form.noAlertRule\",\n alertRuleDescription: \"healthRisk.form.alertRuleDescription\",\n alertRuleCountThreshold: \"healthRisk.form.alertRuleCountThreshold\",\n alertRuleDaysThreshold: \"healthRisk.form.alertRuleDaysThreshold\",\n alertRuleKilometersThreshold:\n \"healthRisk.form.alertRuleKilometersThreshold\",\n contentLanguageName: \"healthRisk.form.contentLanguageName\",\n contentLanguageCaseDefinition:\n \"healthRisk.form.contentLanguageCaseDefinition\",\n contentLanguageFeedbackMessage:\n \"healthRisk.form.contentLanguageFeedbackMessage\",\n },\n list: {\n healthRiskCode: \"healthRisk.list.healthRiskCode\",\n name: \"healthRisk.list.name\",\n healthRiskType: \"healthRisk.list.healthRiskType\",\n removalConfirmation: \"healthRisk.list.removalConfirmation\",\n },\n create: {\n success: \"healthRisk.create.success\",\n },\n edit: {\n success: \"healthRisk.edit.success\",\n },\n delete: {\n success: \"healthRisk.delete.success\",\n },\n constants: {\n healthRiskType: {\n human: \"healthRisk.type.human\",\n nonhuman: \"healthRisk.type.nonhuman\",\n unusualevent: \"healthRisk.type.unusualevent\",\n activity: \"healthRisk.type.activity\",\n },\n },\n },\n\n suspectedDisease: {\n title: \"suspectedDisease.title\",\n form: {\n creationTitle: \"suspectedDisease.form.creationTitle\",\n editionTitle: \"suspectedDisease.form.editionTitle\",\n suspectedDiseaseCode: \"suspectedDisease.form.suspectedDiseaseCode\",\n contentLanguageName: \"suspectedDisease.form.contentLanguageName\",\n translationsSection: \"suspectedDisease.form.translationsSection\",\n },\n list: {\n suspectedDiseaseCode: \"suspectedDisease.list.suspectedDiseaseCode\",\n suspectedDiseaseName: \"suspectedDisease.list.suspectedDiseaseName\",\n removalConfirmation: \"suspectedDisease.list.removalConfirmation\",\n },\n create: {\n success: \"suspectedDisease.create.success\",\n },\n edit: {\n success: \"suspectedDisease.edit.success\",\n },\n delete: {\n success: \"suspectedDisease.delete.success\",\n },\n },\n\n smsGateway: {\n title: \"smsGateway.title\",\n apiKeyCopied: \"smsGateway.apiKeyCopied\",\n form: {\n creationTitle: \"smsGateway.form.creationTitle\",\n editionTitle: \"smsGateway.form.editionTitle\",\n apiKey: \"smsGateway.form.apiKey\",\n gatewayType: \"smsGateway.form.gatewayType\",\n telerivetApiKey: \"smsGateway.form.telerivetApiKey\",\n telerivetProjectId: \"smsGateway.form.telerivetProjectId\",\n gatewayApiKeyName: \"smsGateway.form.gatewayApiKeyName\",\n gatewayApiKey: \"smsGateway.form.gatewayApiKey\",\n gatewayExtraKeyName: \"smsGateway.form.gatewayExtraKeyName\",\n gatewayExtraKey: \"smsGateway.form.gatewayExtraKey\",\n gatewayUrl: \"smsGateway.form.gatewayUrl\",\n gatewayAuthUrl: \"smsGateway.form.gatewayAuthUrl\",\n gatewaySenderId: \"smsGateway.form.gatewaySenderId\",\n emailAddress: \"smsGateway.form.emailAddress\",\n useIotHub: \"smsGateway.form.useIotHub\",\n iotHubDeviceName: \"smsGateway.form.iotHubDeviceName\",\n ping: \"smsGateway.form.ping\",\n pingIsRequired: \"smsGateway.form.pingIsRequired\",\n useDualModem: \"smsGateway.form.useDualModem\",\n modemOneName: \"smsGateway.form.modemOneName\",\n modemTwoName: \"smsGateway.form.modemTwoName\",\n },\n create: {\n success: \"smsGateway.create.success\",\n },\n edit: {\n success: \"smsGateway.edit.success\",\n },\n delete: {\n success: \"smsGateway.delete.success\",\n },\n list: {\n apiKey: \"smsGateway.list.apiKey\",\n gatewayType: \"smsGateway.list.gatewayType\",\n removalConfirmation: \"smsGateway.list.removalConfirmation\",\n useIotHub: \"smsGateway.list.useIotHub\",\n },\n },\n eidsrIntegration: {\n title: \"eidsrIntegration.title\",\n disabled: \"eidsrIntegration.disabled\",\n form: {\n editionTitle: \"eidsrIntegration.form.editionTitle\",\n userName: \"eidsrIntegration.form.userName\",\n password: \"eidsrIntegration.form.password\",\n apiBaseUrl: \"eidsrIntegration.form.apiBaseUrl\",\n trackerProgramId: \"eidsrIntegration.form.trackerProgramId\",\n locationDataElementId: \"eidsrIntegration.form.locationDataElementId\",\n dateOfOnsetDataElementId:\n \"eidsrIntegration.form.dateOfOnsetDataElementId\",\n phoneNumberDataElementId:\n \"eidsrIntegration.form.phoneNumberDataElementId\",\n suspectedDiseaseDataElementId:\n \"eidsrIntegration.form.suspectedDiseaseDataElementId\",\n eventTypeDataElementId: \"eidsrIntegration.form.eventTypeDataElementId\",\n genderDataElementId: \"eidsrIntegration.form.genderDataElementId\",\n districts: \"eidsrIntegration.form.districts\",\n organisationUnits: \"eidsrIntegration.form.organisationUnits\",\n choseOrganisationUnit: \"eidsrIntegration.form.choseOrganisationUnit\",\n noDistricts: \"eidsrIntegration.form.noDistricts\",\n loading: \"eidsrIntegration.form.loading\",\n noOptions: \"eidsrIntegration.form.noOptions\",\n connNotTested: \"eidsrIntegration.form.connNotTested\",\n testConn: \"eidsrIntegration.form.testConn\",\n testConnToContinue: \"eidsrIntegration.form.testConnToContinue\",\n allDistrictsShouldOrgUnit:\n \"eidsrIntegration.form.allDistrictsShouldOrgUnit\",\n dataNotSet: \"eidsrIntegration.from.dataNotSet\",\n dataElements: \"eidsrIntegration.from.dataElements\",\n },\n create: {\n success: \"eidsrIntegration.create.success\",\n },\n edit: {\n success: \"eidsrIntegration.edit.success\",\n },\n eidsrApi: {\n ConnectionError: \"eidsrIntegration.EidsrApi.ConnectionError\",\n },\n },\n organization: {\n title: \"organization.title\",\n form: {\n creationTitle: \"organization.form.creationTitle\",\n editionTitle: \"organization.form.editionTitle\",\n },\n create: {\n success: \"organization.create.success\",\n },\n edit: {\n success: \"organization.edit.success\",\n },\n delete: {\n success: \"organization.delete.success\",\n },\n list: {\n projects: \"organization.list.projects\",\n headManager: \"organization.list.headManager\",\n removalConfirmation: \"organization.list.removalConfirmation\",\n isDefaultOrganization: \"organization.list.isDefaultOrganization\",\n },\n },\n projectOrganization: {\n title: \"projectOrganization.title\",\n form: {\n creationTitle: \"projectOrganization.form.creationTitle\",\n organization: \"projectOrganization.form.organization\",\n },\n create: {\n success: \"projectOrganization.create.success\",\n },\n delete: {\n success: \"projectOrganization.delete.success\",\n },\n list: {\n name: \"projectOrganization.list.name\",\n removalConfirmation: \"projectOrganization.list.removalConfirmation\",\n },\n },\n projectAlertRecipient: {\n title: \"projectAlertRecipient.title\",\n description: \"projectAlertRecipient.description\",\n form: {\n creationTitle: \"projectAlertRecipient.form.creationTitle\",\n editionTitle: \"projectAlertRecipient.form.editionTitle\",\n role: \"projectAlertRecipient.form.role\",\n organization: \"projectAlertRecipient.form.organization\",\n projectOrganization: \"projectAlertRecipient.form.projectOrganization\",\n phoneNumber: \"projectAlertRecipient.form.phoneNumber\",\n supervisors: \"projectAlertRecipient.form.supervisors\",\n healthRisks: \"projectAlertRecipient.form.healthRisks\",\n anyHealthRisk: \"projectAlertRecipient.form.anyHealthRisk\",\n triggerDetails: \"projectAlertRecipient.form.triggerDetails\",\n receiverDetails: \"projectAlertRecipient.form.receiverDetails\",\n anySupervisor: \"projectAlertRecipient.form.anySupervisor\",\n modem: \"projectAlertRecipient.form.modem\",\n },\n create: {\n success: \"projectAlertRecipient.create.success\",\n },\n edit: {\n success: \"projectAlertRecipient.edit.success\",\n },\n delete: {\n success: \"projectAlertRecipient.delete.success\",\n },\n list: {\n role: \"projectAlertRecipient.list.role\",\n organization: \"projectAlertRecipient.list.organization\",\n phoneNumber: \"projectAlertRecipient.list.phoneNumber\",\n removalConfirmation: \"projectAlertRecipient.list.removalConfirmation\",\n supervisors: \"projectAlertRecipient.list.supervisors\",\n healthRisks: \"projectAlertRecipient.list.healthRisks\",\n },\n },\n projectAlertNotHandledRecipient: {\n title: \"projectAlertNotHandledRecipient.title\",\n description: \"projectAlertNotHandledRecipient.description\",\n add: \"projectAlertNotHandledRecipient.add\",\n error: \"projectAlertNotHandledRecipient.error\",\n },\n project: {\n title: \"project.title\",\n settingsRootTitle: \"project.settingsRootTitle\",\n addNew: \"project.addNew\",\n edit: \"project.edit\",\n form: {\n creationTitle: \"project.form.creationTitle\",\n editionTitle: \"project.form.editionTitle\",\n healthRisksEditionTitle: \"project.form.healthRisksEditionTitle\",\n name: \"project.form.name\",\n allowMultipleOrganizations: \"project.form.allowMultipleOrganizations\",\n organization: \"project.form.organization\",\n healthRisks: \"project.form.healthRisks\",\n healthRisksSection: \"project.form.healthRisksSection\",\n overviewHealthRisksSection: \"project.form.overviewHealthRisksSection\",\n caseDefinition: \"project.form.caseDefinition\",\n feedbackMessage: \"project.form.feedbackMessage\",\n alertsSection: \"project.form.alertsSection\",\n alertRuleCountThreshold: \"project.form.alertRuleCountThreshold\",\n alertRuleDaysThreshold: \"project.form.alertRuleDaysThreshold\",\n alertRuleDaysThresholdEdit: \"project.form.alertRuleDaysThresholdEdit\",\n alertRuleDays: \"project.form.alertRuleDays\",\n alertRuleDay: \"project.form.alertRuleDay\",\n alertRuleKilometersThreshold: \"project.form.alertRuleKilometersThreshold\",\n alertRuleKilometersThresholdEdit:\n \"project.form.alertRuleKilometersThresholdEdit\",\n alertRuleKilometer: \"project.form.alertRuleKilometer\",\n alertNotHandledNotificationRecipient:\n \"project.form.alertNotHandledNotificationRecipient\",\n },\n messages: {\n create: {\n success: \"project.create.success\",\n },\n edit: {\n success: \"project.edit.success\",\n },\n close: {\n success: \"project.close.success\",\n },\n },\n list: {\n name: \"project.list.name\",\n totalReportCount: \"project.list.totalReportCount\",\n totalDataCollectorCount: \"project.list.totalDataCollectorCount\",\n startDate: \"project.list.startDate\",\n escalatedAlertCount: \"project.list.escalatedAlertCount\",\n supervisorCount: \"project.list.supervisorCount\",\n endDate: \"project.list.endDate\",\n ongoing: \"project.list.ongoing\",\n edit: \"project.list.edit\",\n close: \"project.list.close\",\n removalConfirmation: \"project.list.removalConfirmation\",\n removalConfirmationText: \"project.list.removalConfirmationText\",\n removalConfirmationTextTwo: \"project.list.removalConfirmationTextTwo\",\n },\n settings: \"project.settings.title\",\n errorMessages: {\n title: \"project.settings.errorMessages.title\",\n tooLongWarning: \"project.settings.errorMessages.tooLongWarning\",\n },\n },\n projectSetup: {\n projectName: {\n name: \"projectSetup.projectName.name\",\n title: \"projectSetup.projectName.title\",\n error: \"projectSetup.projectName.error\",\n },\n projectOrganization: {\n name: \"projectSetup.organization.name\",\n title: \"projectSetup.organization.title\",\n placeholder: \"projectSetup.organization.placeholder\",\n error: \"projectSetup.organization.error\",\n },\n projectRecipients: {\n name: \"projectSetup.projectRecipients.name\",\n title: \"projectSetup.projectRecipients.title\",\n placeholder: \"projectSetup.projectRecipients.placeholder\",\n error: \"projectSetup.projectRecipients.error\",\n },\n cancelDialog: {\n title: \"projectSetup.cancelDialog.title\",\n description: \"projectSetup.cancelDialog.description\",\n },\n geographicalStructure: {\n name: \"projectSetup.geographicalStructure.name\",\n title: \"projectSetup.geographicalStructure.title\",\n description: \"projectSetup.geographicalStructure.description\",\n error: \"projectSetup.geographicalStructure.error\",\n },\n summary: {\n name: \"projectSetup.summary.name\",\n title: \"projectSetup.summary.title\",\n notUpdated: \"projectSetup.summary.notUpdated\",\n },\n projectHealthRisks: {\n name: \"projectSetup.projectHealthRisks.name\",\n title: \"projectSetup.projectHealthRisks.title\",\n placeholder: \"projectSetup.projectHealthRisks.placeholder\",\n description: \"projectSetup.projectHealthRisks.description\",\n error: \"projectSetup.projectHealthRisks.error\",\n },\n },\n dashboard: {\n title: \"dashboard.title\",\n printTitle: \"dashboard.printTitle\",\n printTitleNationalSociety: \"dashboard.printTitleNS\",\n numbers: {\n reportCountTitle: \"dashboard.numbers.reportCountTitle\",\n totalReportCount: \"dashboard.numbers.totalReportCount\",\n openAlerts: \"dashboard.numbers.openAlerts\",\n dismissedAlerts: \"dashboard.numbers.dismissedAlerts\",\n escalatedAlerts: \"dashboard.numbers.escalatedAlerts\",\n closedAlerts: \"dashboard.numbers.closedAlerts\",\n numberOfVillages: \"dashboard.numbers.villages\",\n numberOfDistricts: \"dashboard.numbers.districts\",\n },\n filters: {\n title: \"dashboard.filters.title\",\n startDate: \"dashboard.filters.startDate\",\n endDate: \"dashboard.filters.endDate\",\n timeGrouping: \"dashboard.filters.timeGrouping\",\n timeGroupingDay: \"dashboard.filters.timeGrouping.day\",\n timeGroupingWeek: \"dashboard.filters.timeGrouping.week\",\n organization: \"dashboard.filters.organization\",\n healthRisk: \"dashboard.filters.healthRisk\",\n organizationsAll: \"dashboard.filters.organizationsAll\",\n healthRiskAll: \"dashboard.filters.healthRiskAll\",\n reportsType: \"dashboard.filters.reportsType\",\n allReportsType: \"dashboard.filters.allReportsType\",\n dataCollectorReportsType: \"dashboard.filters.dataCollectorReportsType\",\n dataCollectionPointReportsType:\n \"dashboard.filters.dataCollectionPointReportsType\",\n trainingStatus: \"dashboard.filters.trainingStatus\",\n },\n reportsPerHealthRisk: {\n title: \"dashboard.reportsPerHealthRisk.title\",\n numberOfReports: \"dashboard.reportsPerHealthRisk.numberOfReports\",\n periods: \"dashboard.reportsPerHealthRisk.periods\",\n rest: \"dashboard.reportsPerHealthRisk.rest\",\n },\n reportsPerFeature: {\n title: \"dashboard.reportsPerFeature.title\",\n female: \"dashboard.reportsPerFeature.female\",\n male: \"dashboard.reportsPerFeature.male\",\n total: \"dashboard.reportsPerFeature.total\",\n below5: \"dashboard.reportsPerFeature.below5\",\n above5: \"dashboard.reportsPerFeature.above5\",\n unspecifiedAge: \"dashboard.reportsPerFeature.unspecifiedAge\",\n unspecifiedSex: \"dashboard.reportsPerFeature.unspecifiedSex\",\n },\n reportsPerFeatureAndDate: {\n femalesBelow5: \"dashboard.reportsPerFeatureAndDate.femalesBelow5\",\n femalesAbove5: \"dashboard.reportsPerFeatureAndDate.femalesAbove5\",\n malesBelow5: \"dashboard.reportsPerFeatureAndDate.malesBelow5\",\n malesAbove5: \"dashboard.reportsPerFeatureAndDate.malesAbove5\",\n unspecifiedSexAndAge:\n \"dashboard.reportsPerFeatureAndDate.unspecifiedSexAndAge\",\n numberOfReports: \"dashboard.reportsPerFeatureAndDate.numberOfReports\",\n percentageOfReportedPeople:\n \"dashboard.reportsPerFeatureAndDate.percentageOfReportedPeople\",\n title: \"dashboard.reportsPerFeatureAndDate.title\",\n titlePercentage: \"dashboard.reportsPerFeatureAndDate.titlePercentage\",\n },\n reportsPerVillageAndDate: {\n title: \"dashboard.reportsPerVillageAndDate.title\",\n rest: \"dashboard.reportsPerVillageAndDate.rest\",\n numberOfReports: \"dashboard.reportsPerVillageAndDate.numberOfReports\",\n },\n dataCollectionPointReportsByDate: {\n referredToHospitalCount:\n \"dashboard.dataCollectionPointReportsByDate.referredToHospitalCount\",\n //deathCount: \"dashboard.dataCollectionPointReportsByDate.deathCount\",\n //fromOtherVillagesCount:\n //\"dashboard.dataCollectionPointReportsByDate.fromOtherVillagesCount\",\n numberOfReports:\n \"dashboard.dataCollectionPointReportsByDate.numberOfReports\",\n title: \"dashboard.dataCollectionPointReportsByDate.title\",\n },\n keptReportsInEscalatedAlerts: {\n title: \"dashboard.keptReportsInEscalatedAlerts.title\",\n timeRangeDescription:\n \"dashboard.keptReportsInEscalatedAlerts.timeRangeDescription\",\n yLabel: \"dashboard.keptReportsInEscalatedAlerts.yLabel\",\n },\n activeDataCollectorCount: \"dashboard.activeDataCollectorCount\",\n referredToHospitalCount: \"dashboard.referredToHospitalCount\",\n fromOtherVillagesCount: \"dashboard.fromOtherVillagesCount\",\n deathCount: \"dashboard.deathCount\",\n dataCollectors: \"dashboard.dataCollectors\",\n dataCollectionPoints: \"dashboard.dataCollectionPoints\",\n alertsSummary: \"dashboard.alertsSummary\",\n geographicalCoverageSummary: \"dashboard.geographicalCoverageSummary\",\n map: {\n title: \"dashboard.map.title\",\n },\n generatePdf: \"dashboard.generatePdf\",\n buttons: {\n all: \"dashboard.buttons.all\",\n },\n },\n globalCoordinator: {\n title: \"globalCoordinator.title\",\n form: {\n creationTitle: \"globalCoordinator.form.creationTitle\",\n editionTitle: \"globalCoordinator.form.editionTitle\",\n phoneNumber: \"globalCoordinator.form.phoneNumber\",\n additionalPhoneNumber: \"globalCoordinator.form.additionalPhoneNumber\",\n organization: \"globalCoordinator.form.organization\",\n },\n list: {\n phoneNumber: \"globalCoordinator.list.phoneNumber\",\n organization: \"globalCoordinator.list.organization\",\n removalConfirmation: \"globalCoordinator.list.removalConfirmation\",\n },\n create: {\n success: \"globalCoordinator.create.success\",\n },\n edit: {\n success: \"globalCoordinator.edit.success\",\n },\n delete: {\n success: \"globalCoordinator.delete.success\",\n },\n },\n nationalSocietyUser: {\n title: \"nationalSocietyUser.title\",\n addExisting: \"nationalSocietyUser.addExisting\",\n form: {\n creationTitle: \"nationalSocietyUser.form.creationTitle\",\n addExistingTitle: \"nationalSocietyUser.form.addExistingTitle\",\n addExistingDescription: \"nationalSocietyUser.form.addExistingDescription\",\n editionTitle: \"nationalSocietyUser.form.editionTitle\",\n role: \"nationalSocietyUser.form.role\",\n decadeOfBirth: \"nationalSocietyUser.form.decadeOfBirth\",\n sex: \"nationalSocietyUser.form.sex\",\n project: \"nationalSocietyUser.form.project\",\n organization: \"nationalSocietyUser.form.organization\",\n phoneNumber: \"nationalSocietyUser.form.phoneNumber\",\n additionalPhoneNumber: \"nationalSocietyUser.form.additionalPhoneNumber\",\n customOrganization: \"nationalSocietyUser.form.customOrganization\",\n projectIsClosed: \"nationalSocietyUser.form.projectIsClosed\",\n projectIsMissing: \"nationalSocietyUser.form.projectIsMissing\",\n confirmCoordinatorCreation:\n \"nationalSocietyUser.form.confirmCoordinatorCreation\",\n confirmCoordinatorCreationText:\n \"nationalSocietyUser.form.confirmCoordinatorCreationText\",\n headSupervisor: \"nationalSocietyUser.form.headSupervisor\",\n headSupervisorNotAssigned:\n \"nationalSocietyUser.form.headSupervisorNotAssigned\",\n modem: \"nationalSocietyUser.form.modem\",\n },\n create: {\n success: \"nationalSocietyUser.create.success\",\n },\n edit: {\n success: \"nationalSocietyUser.edit.success\",\n },\n remove: {\n success: \"nationalSocietyUser.remove.success\",\n },\n list: {\n phoneNumber: \"nationalSocietyUser.list.phoneNumber\",\n role: \"nationalSocietyUser.list.role\",\n project: \"nationalSocietyUser.list.project\",\n removalConfirmation: \"nationalSocietyUser.list.removalConfirmation\",\n headManager: \"nationalSocietyUser.list.headManager\",\n organization: \"nationalSocietyUser.list.organization\",\n notVerified: \"nationalSocietyUser.list.notVerified\",\n },\n messages: {\n creationSuccessful: \"nationalSocietyUser.messages.creationSuccessful\",\n roleNotValid: \"nationalSocietyUser.messages.roleNotValid\",\n },\n },\n dataCollectors: {\n title: \"dataCollectors.title\",\n exportExcel: \"dataCollectors.exportExcel\",\n exportCsv: \"dataCollectors.exportCsv\",\n form: {\n creationTitle: \"dataCollectors.form.creationTitle\",\n editionTitle: \"dataCollectors.form.editionTitle\",\n dataCollectorType: \"dataCollectors.form.dataCollectorType\",\n displayName: \"dataCollectors.form.displayName\",\n sex: \"dataCollectors.form.sex\",\n phoneNumber: \"dataCollectors.form.phoneNumber\",\n additionalPhoneNumber: \"dataCollectors.form.additionalPhoneNumber\",\n latitude: \"dataCollectors.form.latitude\",\n longitude: \"dataCollectors.form.longitude\",\n birthYearGroup: \"dataCollectors.form.birthYearGroup\",\n supervisor: \"dataCollectors.form.supervisor\",\n village: \"dataCollectors.form.village\",\n district: \"dataCollectors.form.district\",\n region: \"dataCollectors.form.region\",\n zone: \"dataCollectors.form.zone\",\n retrieveLocation: \"dataCollectors.form.retrieveLocation\",\n replaceSupervisor: \"dataCollectors.form.replaceSupervisor\",\n newSupervisor: \"dataCollectors.form.newSupervisor\",\n replaceSupervisorWarning: \"dataCollectors.form.replaceSupervisorWarning\",\n selectLocation: \"dataCollectors.form.selectLocation\",\n deployed: \"dataCollectors.form.deployed\",\n addLocation: \"dataCollectors.form.addLocation\",\n personalia: \"dataCollectors.form.personalia\",\n removeLocation: \"dataCollectors.form.removeLocation\",\n locationsHeader: \"dataCollectors.form.locationsHeader\",\n showYourLocation: \"dataCollectors.form.showYourLocation\",\n retrievingLocation: \"dataCollectors.form.retrievingLocation\",\n responsibleSupervisor: \"dataCollectors.form.responsibleSupervisor\",\n alerts: {\n noDistrictsAlert: \"dataCollectors.form.alert.noDistrictsAlert\",\n noVillagesAlert: \"dataCollectors.form.alert.noVillagesAlert\",\n noZonesAlert: \"dataCollectors.form.alert.noZonesAlert\",\n },\n },\n list: {\n dataCollectorType: \"dataCollectors.list.dataCollectorType\",\n displayName: \"dataCollectors.list.displayName\",\n phoneNumber: \"dataCollectors.list.phoneNumber\",\n sex: \"dataCollectors.list.sex\",\n status: \"dataCollectors.list.status\",\n removalConfirmation: \"dataCollectors.list.removalConfirmation\",\n title: \"dataCollectors.list.title\",\n trainingStatus: \"dataCollectors.list.trainingStatus\",\n setToInTraining: \"dataCollectors.list.setToInTraining\",\n takeOutOfTraining: \"dataCollectors.list.takeOutOfTraining\",\n supervisor: \"dataCollectors.list.supervisor\",\n replaceSupervisor: \"dataCollectors.list.replaceSupervisor\",\n supervisorReplacedSuccessfully:\n \"dataCollectors.list.supervisorReplacedSuccessfully\",\n setToDeployed: \"dataCollectors.list.setToDeployed\",\n setToNotDeployed: \"dataCollectors.list.setToNotDeployed\",\n },\n performanceList: {\n title: \"dataCollectors.performanceList.title\",\n completenessTitle: \"dataCollectors.performanceList.completenessTitle\",\n completenessDescription:\n \"dataCollectors.performanceList.completenessDescription\",\n completenessValueDescription:\n \"dataCollectors.performanceList.completenessValueDescription\",\n name: \"dataCollectors.performanceList.name\",\n phoneNumber: \"dataCollectors.performanceList.phoneNumber\",\n villageName: \"dataCollectors.performanceList.villageName\",\n daysSinceLastReport: \"dataCollectors.performanceList.daysSinceLastReport\",\n epiWeek: \"dataCollectors.performanceList.epiWeek\",\n legend: {\n ReportingCorrectly:\n \"dataCollectors.performanceList.legend.reportingCorrectly\",\n NotReporting: \"dataCollectors.performanceList.legend.notReporting\",\n ReportingWithErrors:\n \"dataCollectors.performanceList.legend.reportingWithErrors\",\n },\n },\n filters: {\n supervisors: \"dataCollectors.filters.supervisors\",\n sex: \"dataCollectors.filters.sex\",\n supervisorsAll: \"dataCollectors.filters.supervisorsAll\",\n sexAll: \"dataCollectors.filters.sexAll\",\n trainingStatus: \"dataCollectors.filters.trainingStatus\",\n deployedMode: \"dataCollectors.filters.deployedMode\",\n resetAll: \"dataCollectors.filters.resetAll\",\n name: \"dataCollectors.filters.name\",\n },\n constants: {\n sex: {\n male: \"dataCollectors.sex.male\",\n female: \"dataCollectors.sex.female\",\n other: \"dataCollectors.sex.other\",\n },\n dataCollectorType: {\n Human: \"dataCollectors.dataCollectorType.human\",\n CollectionPoint: \"dataCollectors.dataCollectorType.collectionPoint\",\n },\n trainingStatus: {\n All: \"dataCollectors.trainingStatus.all\",\n InTraining: \"dataCollectors.trainingStatus.inTraining\",\n Trained: \"dataCollectors.trainingStatus.trained\",\n },\n deployedMode: {\n All: \"dataCollectors.deployedMode.all\",\n Deployed: \"dataCollectors.deployedMode.deployed\",\n NotDeployed: \"dataCollectors.deployedMode.notDeployed\",\n },\n },\n mapOverview: {\n title: \"dataCollectors.mapOverview.title\",\n legend: {\n ReportingCorrectly:\n \"dataCollectors.mapOverview.legend.reportingCorrectly\",\n NotReporting: \"dataCollectors.mapOverview.legend.notReporting\",\n ReportingWithErrors:\n \"dataCollectors.mapOverview.legend.reportingWithErrors\",\n },\n },\n },\n reports: {\n list: {\n date: \"reports.list.date\",\n healthRisk: \"reports.list.healthRisk\",\n status: \"reports.list.status\",\n region: \"reports.list.region\",\n district: \"reports.list.district\",\n village: \"reports.list.village\",\n zone: \"reports.list.zone\",\n dataCollectorDisplayName: \"reports.list.dataCollectorDisplayName\",\n message: \"reports.list.message\",\n malesBelowFive: \"reports.list.malesBelowFive\",\n malesAtLeastFive: \"reports.list.malesAtLeastFive\",\n femalesBelowFive: \"reports.list.femalesBelowFive\",\n femalesAtLeastFive: \"reports.list.femalesAtLeastFive\",\n referredCount: \"reports.list.referredCount\",\n deathCount: \"reports.list.deathCount\",\n fromOtherVillagesCount: \"reports.list.fromOtherVillagesCount\",\n exportToExcel: \"reports.list.exportToExcel\",\n exportToCsv: \"reports.list.exportToCsv\",\n editReport: \"reports.list.editReport\",\n editedSuccesfully: \"reports.list.editedSuccessfully\",\n sendReport: \"reports.list.sendReport\",\n goToAlert: \"reports.list.goToAlert\",\n acceptReport: \"reports.list.acceptReport\",\n dismissReport: \"reports.list.dismissReport\",\n acceptReportSuccess: \"reports.list.acceptReportSuccess\",\n dismissReportSuccess: \"reports.list.dismissReportSuccess\",\n errorType: \"reports.list.errorType\",\n corrected: \"reports.list.corrected\",\n markAsCorrected: \"reports.list.markAsCorrected\",\n project: \"reports.list.project\",\n },\n form: {\n title: \"reports.form.editionTitle\",\n senderSectionTitle: \"reports.form.senderSectionTitle\",\n contentSectionTitle: \"reports.form.contentSectionTitle\",\n statusSectionTitle: \"reports.form.statusSectionTitle\",\n reportStatus: \"reports.form.reportStatus\",\n reportSex: \"reports.form.reportSex\",\n reportAge: \"reports.form.reportAge\",\n dataCollector: \"reports.form.dataCollector\",\n reportPartOfAlertLabel: \"reports.form.reportPartOfAlertLabel\",\n selectDcFirst: \"reports.form.selectDcFirst\",\n selectDcAndLocationFirst: \"reports.form.selectDcAndLocationFirst\",\n date: \"reports.form.date\",\n healthRisk: \"reports.form.healthRisk\",\n malesBelowFive: \"reports.form.malesBelowFive\",\n malesAtLeastFive: \"reports.form.malesAtLeastFive\",\n femalesBelowFive: \"reports.form.femalesBelowFive\",\n femalesAtLeastFive: \"reports.form.femalesAtLeastFive\",\n referredCount: \"reports.form.referredCount\",\n deathCount: \"reports.form.deathCount\",\n fromOtherVillagesCount: \"reports.form.fromOtherVillagesCount\",\n },\n title: \"reports.title\",\n nationalSocietyReportsTitle: \"reports.nationalSocietyReportsTitle\",\n correctReportsTitle: \"correctReports.title\",\n incorrectReportsTitle: \"incorrectReports.title\",\n sendReport: {\n dataCollector: \"reports.sendReport.dataCollector\",\n message: \"reports.sendReport.message\",\n dateOfReport: \"reports.sendReport.dateOfReport\",\n timeOfReport: \"reports.sendReport.timeOfReport\",\n sendReport: \"reports.sendReport.sendReport\",\n goToReportList: \"reports.sendReport.goToReportList\",\n success: \"reports.sendReport.success\",\n modem: \"reports.sendReport.modem\",\n },\n errorTypes: {\n GlobalHealthRiskCodeNotFound:\n \"report.errorType.globalHealthRiskCodeNotFound\",\n HealthRiskNotFound: \"report.errorType.healthRiskNotFound\",\n FormatError: \"report.errorType.formatError\",\n GatewayError: \"report.errorType.gatewayError\",\n TooLong: \"report.errorType.tooLong\",\n DataCollectorUsedCollectionPointFormat:\n \"report.errorType.dataCollectorUsedCollectionPointFormat\",\n CollectionPointUsedDataCollectorFormat:\n \"report.errorType.collectionPointUsedDataCollectorFormat\",\n CollectionPointNonHumanHealthRisk:\n \"report.errorType.collectionPointNonHumanHealthRisk\",\n SingleReportNonHumanHealthRisk:\n \"report.errorType.singleReportNonHumanHealthRisk\",\n AggregateReportNonHumanHealthRisk:\n \"report.errorType.aggregateReportNonHumanHealthRisk\",\n EventReportHumanHealthRisk: \"report.errorType.eventReportHumanHealthRisk\",\n GenderAndAgeNonHumanHealthRisk:\n \"report.errorType.genderAndAgeNonHumanHealthRisk\",\n Gateway: \"report.errorType.gateway\",\n Other: \"report.errorType.other\",\n },\n status: {\n New: \"report.status.notCrossChecked\",\n Rejected: \"report.status.rejected\",\n Accepted: \"report.status.accepted\",\n Pending: \"report.status.notCrossChecked\",\n Closed: \"report.status.notCrossChecked\",\n },\n sexAgeConstants: {\n male: \"report.sexAgeConstants.male\",\n female: \"report.sexAgeConstants.female\",\n unspecified: \"report.sexAgeConstants.unspecified\",\n belowFive: \"report.sexAgeConstants.belowFive\",\n aboveFour: \"report.sexAgeConstants.aboveFour\",\n },\n },\n alerts: {\n list: {\n id: \"alerts.list.id\",\n title: \"alerts.list.title\",\n dateTime: \"alerts.list.dateTime\",\n healthRisk: \"alerts.list.healthRisk\",\n reportCount: \"alerts.list.reportCount\",\n village: \"alerts.list.village\",\n status: \"alerts.list.status\",\n success: \"alerts.list.success\",\n error: \"alerts.list.error\",\n export: \"alerts.list.export\",\n },\n filters: {\n healthRisks: \"alerts.filters.healthRisks\",\n healthRisksAll: \"alerts.filters.healthRisksAll\",\n status: \"alerts.filters.status\",\n },\n details: {\n title: \"alerts.details.title\",\n },\n assess: {\n title: \"alerts.assess.title\",\n caseDefinition: \"alerts.assess.caseDefinition\",\n introduction: \"alerts.assess.introduction\",\n reports: \"alerts.assess.reports\",\n closeReason: \"alerts.assess.closeReason\",\n goBack: \"alerts.assess.goBack\",\n status: {\n Open: \"alerts.assess.status.open\",\n Closed: \"alerts.assess.status.closed\",\n Escalated: \"alerts.assess.status.escalated\",\n Dismissed: \"alerts.assess.status.dismissed\",\n ToDismiss: \"alerts.assess.status.toDismiss\",\n ToEscalate: \"alerts.assess.status.toEscalate\",\n },\n statusDescription: {\n closed: \"alerts.assess.statusDescription.closed\",\n escalated: \"alerts.assess.statusDescription.escalated\",\n dismissed: \"alerts.assess.statusDescription.dismissed\",\n rejected: \"alerts.assess.statusDescription.rejected\",\n },\n escalatedOutcomes: {\n Dismissed: \"alerts.assess.escalatedOutcomes.dismiss\",\n ActionTaken: \"alerts.assess.escalatedOutcomes.actionTaken\",\n Other: \"alerts.assess.escalatedOutcomes.other\",\n },\n alert: {\n close: \"alerts.assess.alert.close\",\n closeConfirmation: \"alerts.assess.alert.closeConfirmation\",\n closeDescription: \"alerts.assess.alert.closeDescription\",\n escalate: \"alerts.assess.alert.escalate\",\n escalateConfirmation: \"alerts.assess.alert.escalateConfirmation\",\n escalateConfirmationInformDataCollectors:\n \"alerts.assess.alert.escalateConfirmationInformDataCollectors\",\n escalateNotificationEmails:\n \"alerts.assess.alert.escalateNotificationEmails\",\n escalateNotificationSmses:\n \"alerts.assess.alert.escalateNotificationSmses\",\n escalateWithoutNotification:\n \"alerts.assess.alert.escalateWithoutNotification\",\n escalateWithoutNotificationDialogTitle:\n \"alerts.assess.alert.escalateWithoutNotificationDialogTitle\",\n escalateWithoutNotificationConfirmation:\n \"alerts.assess.alert.escalateWithoutNotificationConfirmation\",\n dismiss: \"alerts.assess.alert.dismiss\",\n escalationPossible: \"alerts.assess.alert.escalationPossible\",\n dismissalPossible: \"alerts.assess.alert.dismissalPossible\",\n escalatedSuccessfully: \"alerts.assess.alert.escalatedSuccessfully\",\n dismissedSuccessfully: \"alerts.assess.alert.dismissedSuccessfully\",\n closedSuccessfully: \"alerts.assess.alert.closedSuccessfully\",\n eidsrValidation: {\n connection: \"alerts.assess.alert.eidsrValidation.connection\",\n integrationValid:\n \"alerts.assess.alert.eidsrValidation.integrationValid\",\n validReportsCount:\n \"alerts.assess.alert.eidsrValidation.validReportsCount\",\n tip: \"alerts.assess.alert.eidsrValidation.tip\",\n title: \"alerts.assess.alert.eidsrValidation.title\",\n },\n },\n report: {\n accept: \"alerts.assess.report.accept\",\n dismiss: \"alerts.assess.report.dismiss\",\n reset: \"alerts.assess.report.reset\",\n resetSuccessfully: \"alerts.assess.report.resetSuccessfully\",\n sender: \"alerts.assess.report.sender\",\n phoneNumber: \"alerts.assess.report.phoneNumber\",\n village: \"alerts.assess.report.village\",\n district: \"alerts.assess.report.district\",\n region: \"alerts.assess.report.region\",\n sex: \"alerts.assess.report.sex\",\n age: \"alerts.assess.report.age\",\n id: \"alerts.assess.report.id\",\n linkedToSupervisor: \"alerts.assess.report.linkedToSupervisor\",\n sent: \"alerts.assess.report.sent\",\n reportId: \"alerts.assess.report.reportId\",\n date: \"alerts.assess.report.date\",\n time: \"alerts.assess.report.time\",\n },\n escalatedTo: {\n title: \"alerts.assess.escalatedTo.title\",\n role: \"alerts.assess.escalatedTo.role\",\n organization: \"alerts.assess.escalatedTo.organization\",\n phoneNumber: \"alerts.assess.escalatedTo.phoneNumber\",\n },\n thresholdInfo: {\n threshold: \"alerts.assess.alert.threshold\",\n reports: \"alerts.assess.alert.reports\",\n report: \"alerts.assess.alert.report\",\n days: \"alerts.assess.alert.days\",\n day: \"alerts.assess.alert.day\",\n in: \"alerts.assess.alert.in\",\n within: \"alerts.assess.alert.within\",\n kilometers: \"alerts.assess.alert.kilometers\",\n },\n },\n eventLog: {\n title: \"alerts.eventLog.title\",\n edit: \"alerts.eventLog.edit\",\n list: {\n date: \"alerts.eventLog.list.date\",\n userName: \"alerts.eventLog.list.userName\",\n type: \"alerts.eventLog.list.type\",\n subtype: \"alerts.eventLog.list.subtype\",\n comment: \"alerts.eventLog.list.comment\",\n removalConfirmation: \"alerts.eventLog.list.removalConfirmation\",\n },\n form: {\n dateOfEvent: \"alerts.eventLog.form.dateOfEvent\",\n timeOfEvent: \"alerts.eventLog.form.timeOfEvent\",\n comment: \"alerts.eventLog.form.comment\",\n },\n },\n constants: {\n alertStatus: {\n All: \"alerts.alertStatus.all\",\n Open: \"alerts.alertStatus.open\",\n Dismissed: \"alerts.alertStatus.dismissed\",\n Escalated: \"alerts.alertStatus.escalated\",\n Closed: \"alerts.alertStatus.closed\",\n },\n escalatedOutcomes: {\n Dismissed: \"alerts.escalatedOutcomes.dismissed\",\n ActionTaken: \"alerts.escalatedOutcomes.actionTaken\",\n Other: \"alerts.escalatedOutcomes.other\",\n },\n reportStatus: {\n Rejected: \"alerts.reportStatus.rejected\",\n Accepted: \"alerts.reportStatus.accepted\",\n Pending: \"alerts.reportStatus.pending\",\n Closed: \"alerts.reportStatus.closed\",\n },\n eventTypes: {\n Investigation: \"alerts.eventTypes.investigation\",\n Outcome: \"alerts.eventTypes.outcome\",\n Summary: \"alerts.eventTypes.summary\",\n PublicHealthActionTaken: \"alerts.eventTypes.publicHealthActionTaken\",\n },\n eventSubtypes: {\n Investigated: \"alerts.eventTypes.subtypes.investigated\",\n NotInvestigated: \"alerts.eventTypes.subtypes.notInvestigated\",\n Unknown: \"alerts.eventTypes.subtypes.unknown\",\n CasePositiveLab: \"alerts.eventTypes.subtypes.casePositiveLab\",\n PresumedCasePositiveClinical:\n \"alerts.eventTypes.subtypes.presumedCasePositiveClinical\",\n PresumedCasePositiveUnknown:\n \"alerts.eventTypes.subtypes.presumedCasePositiveUnknown\",\n CaseNegativeLab: \"alerts.eventTypes.subtypes.caseNegativeLab\",\n PresumedCaseNegativeClinical:\n \"alerts.eventTypes.subtypes.presumedCaseNegativeClinical\",\n PresumedCaseNegativeUnknown:\n \"alerts.eventTypes.subtypes.presumedCaseNegativeUnknown\",\n Recovered: \"alerts.eventTypes.subtypes.recovered\",\n Deceased: \"alerts.eventTypes.subtypes.deceased\",\n ImmunizationCampaign: \"alerts.eventTypes.subtypes.immunizationCampaign\",\n HealthMessagesAwarenessRaising:\n \"alerts.eventTypes.subtypes.healthMessagesAwarenessRaising\",\n Referral: \"alerts.eventTypes.subtypes.referral\",\n Isolation: \"alerts.eventTypes.subtypes.isolation\",\n ProvidedORS: \"alerts.eventTypes.subtypes.providedORS\",\n AnimalsDisposed: \"alerts.eventTypes.subtypes.AnimalsDisposed\",\n SafeDignifiedBurials: \"alerts.eventTypes.subtypes.safeDignifiedBurials\",\n CommunityMeeting: \"alerts.eventTypes.subtypes.communityMeeting\",\n AssistedInvestigation:\n \"alerts.eventTypes.subtypes.assistedInvestigation\",\n CleanupFogging: \"alerts.eventTypes.subtypes.cleanupFogging\",\n Other: \"alerts.eventTypes.subtypes.other\",\n },\n sex: {\n Female: \"alerts.sex.female\",\n Male: \"alerts.sex.male\",\n Unspecified: \"alerts.sexAndAge.unspecified\",\n },\n age: {\n BelowFive: \"alerts.age.belowFive\",\n AtLeastFive: \"alerts.age.atLeastFive\",\n Unspecified: \"alerts.sexAndAge.unspecified\",\n },\n logType: {\n TriggeredAlert: \"alerts.logType.TriggeredAlert\",\n EscalatedAlert: \"alerts.logType.EscalatedAlert\",\n DismissedAlert: \"alerts.logType.DismissedAlert\",\n ClosedAlert: \"alerts.logType.ClosedAlert\",\n AcceptedReport: \"alerts.logType.AcceptedReport\",\n RejectedReport: \"alerts.logType.RejectedReport\",\n ResetReport: \"alerts.logType.ResetReport\",\n },\n },\n title: \"alerts.title\",\n },\n filters: {\n area: {\n all: \"filters.area.all\",\n unknown: \"filters.area.unknown\",\n selectAll: \"filters.area.selectAll\",\n showResults: \"filters.area.showResults\",\n },\n report: {\n healthRisk: \"filters.report.healthRisk\",\n healthRiskAll: \"filters.report.healthRiskAll\",\n selectReportListType: \"filters.report.selectReportListType\",\n mainReportsListType: \"filters.report.mainReportsListType\",\n dcpReportListType: \"filters.report.dcpReportListType\",\n unknownSenderReportListType: \"filters.report.unknownSenderReportListType\",\n status: \"filters.report.status\",\n reportType: \"filters.report.reportType\",\n nonTrainingReports: \"filters.report.nonTrainingReports\",\n correctedReports: \"filters.report.correctedReports\",\n kept: \"filters.report.keptReports\",\n dismissed: \"filters.report.dismissedReports\",\n notCrossChecked: \"filters.report.notCrossCheckedReports\",\n selectErrorType: \"filters.report.selectErrorType\",\n isCorrected: \"filters.report.isCorrected\",\n errorTypes: {\n All: \"filters.report.errorTypeAll\",\n HealthRiskNotFound: \"filters.report.errorTypeHealthRiskNotFound\",\n WrongFormat: \"filters.report.errorTypeWrongFormat\",\n GatewayError: \"filters.report.errorTypeGatewayError\",\n Other: \"filters.report.errorTypeOther\",\n },\n correctedStates: {\n All: \"filters.report.correctedStateAll\",\n Corrected: \"filters.report.correctedStateCorrected\",\n NotCorrected: \"filters.report.correctedStateNotCorrected\",\n },\n },\n autocomplete: {\n noOptions: \"filters.autocomplete.noOptions\",\n },\n },\n table: {\n noData: \"table.noData\",\n },\n form: {\n cancel: \"form.cancel\",\n confirm: \"form.confirm\",\n inlineSave: \"form.inlineSave\",\n },\n user: {\n logout: \"user.logout\",\n verifyEmail: {\n setPassword: \"user.verifyEmail.setPassword\",\n welcome: \"user.verifyEmail.welcome\",\n signIn: \"user.verifyEmail.signIn\",\n password: \"user.verifyEmail.password\",\n failed: \"user.verifyEmail.failed\",\n },\n registration: {\n passwordTooWeak: \"user.registration.passwordTooWeak\",\n },\n resetPassword: {\n success: \"user.resetPassword.success\",\n failed: \"user.resetPassword.failed\",\n enterEmail: \"user.resetPassword.enterEmail\",\n emailAddress: \"user.resetPassword.emailAddress\",\n submit: \"user.resetPassword.submit\",\n enterNewPassword: \"user.resetPassword.enterNewPassword\",\n notFound: \"user.resetPassword.notFound\",\n emailSent: \"user.resetPassword.emailSent\",\n goToLoginPage: \"user.resetPassword.goToLoginPage\",\n },\n },\n validation: {\n invalidPhoneNumber: \"validation.invalidPhoneNumber\",\n fieldRequired: \"validation.fieldRequired\",\n noHealthRiskSelected: \"validation.noHealthRiskSelected\",\n //noSuspectedDiseaseSelected: \"validation.noSuspectedDiseaseSelected\",\n tooShortString: \"validation.tooShortString\",\n tooLongString: \"validation.tooLongString\",\n invalidEmail: \"validation.invalidEmail\",\n invalidInteger: \"validation.invalidInteger\",\n phoneNumberInvalid: \"validation.phoneNumberInvalid\",\n invalidModuloTen: \"validation.invalidModuloTen\",\n valueCannotBeNegative: \"validation.valueCannotBeNegative\",\n inRange: \"validation.valueMustBeInRange\",\n invalidTimeFormat: \"validation.invalidTimeFormat\",\n sexOrAgeUnspecified: \"validation.sexOrAgeUnspecified\",\n duplicateLocation: \"validation.dataCollector.duplicateLocation\",\n timeNotInFuture: \"validation.timeNotInFuture\",\n },\n nationalSocietyConsents: {\n title: \"headManagerConsents.title\",\n consentText: \"headManagerConsents.consentText\",\n nationalSociety: \"headManagerConsents.nationalSociety\",\n nationalSocietyWithUpdatedAgreement:\n \"headManagerConsents.nationalSocietyWithUpdatedAgreement\",\n nationalSocietiesWithUpdatedAgreement:\n \"headManagerConsents.nationalSocietiesWithUpdatedAgreement\",\n nationalSocieties: \"headManagerConsents.nationalSocieties\",\n agreeToContinue: \"headManagerConsents.agreeToContinue\",\n submit: \"headManagerConsents.submit\",\n postpone: \"headManagerConsents.postpone\",\n iConsent: \"headManagerConsents.iConsent\",\n setAsHeadManager: \"headManagerConsents.setAsHeadManager\",\n pendingHeadManager: \"headManagerConsents.pendingHeadManager\",\n setSuccessfully: \"headManagerConsents.setSuccessfully\",\n selectLanguage: \"headManagerConsents.selectLanguage\",\n downloadDirectly: \"headManagerConsents.downloadDirectly\",\n },\n common: {\n buttons: {\n add: \"common.buttons.add\",\n edit: \"common.buttons.edit\",\n update: \"common.buttons.update\",\n goBack: \"common.buttons.goBack\",\n previous: \"common.buttons.previous\",\n finish: \"common.buttons.finish\",\n next: \"common.buttons.next\",\n tryAgain: \"common.buttons.tryAgain\",\n confirmCancelation: \"common.buttons.confirmCancelation\",\n denyCancelation: \"common.buttons.denyCancelation\",\n showResults: \"common.buttons.showResults\",\n },\n boolean: {\n true: \"common.true\",\n false: \"common.false\",\n },\n name: \"common.name\",\n location: \"common.location\",\n email: \"common.email\",\n filter: \"common.filter\",\n filters: \"common.filters\",\n },\n translations: {\n title: \"translations.title\",\n emailTitle: \"translations.emailTitle\",\n smsTitle: \"translations.smsTitle\",\n smsCharacters: \"translations.smsCharacters\",\n smsParts: \"translations.smsParts\",\n list: {\n key: \"translations.list.key\",\n },\n needsImprovement: \"translations.needsImprovement\",\n },\n feedback: {\n title: \"feedback.title\",\n send: \"feedback.send\",\n submit: \"feedback.submit\",\n description: \"feedback.description\",\n placeholder: \"feedback.placeholder\",\n thankYouTitle: \"feedback.thankYouTitle\",\n thankYouDescription: \"feedback.thankYouDescription\",\n errorTitle: \"feedback.errorTitle\",\n errorDescription: \"feedback.errorDescription\",\n },\n sideMenu: {\n account: \"sideMenu.account\",\n general: \"sideMenu.general\",\n nationalSocieties: \"sideMenu.nationalSocieties\",\n },\n};\n\nexport const isStringKey = (key) =>\n key && key.substr(0, stringPrefix.length) === stringPrefix;\n\nexport const extractString = (keyValue, noEditor) =>\n strings(extractKey(keyValue), noEditor);\n\nexport const strings = (key, noEditor) => {\n const value = stringList[key];\n\n if (showKeys) {\n return noEditor ? (\n key\n ) : (\n \n );\n }\n\n return value === undefined ? key : value.value;\n};\n\nexport const stringsFormat = (key, data, noEditor) => {\n const value = stringList[key];\n\n if (showKeys) {\n return noEditor ? (\n key\n ) : (\n \n );\n }\n\n if (value === undefined) {\n return key;\n }\n\n return Object.keys(data || {}).reduce(\n (result, stringKey) => result.replace(`{${stringKey}}`, data[stringKey]),\n value.value || \"\",\n );\n};\n\nconst stringPrefix = \"string:\";\n\nexport const stringKey = (key) => `${stringPrefix}${key}`;\n\nexport const extractKey = (key) =>\n isStringKey(key) ? key.substring(stringPrefix.length) : key;\n\nexport function updateStrings(strings) {\n Object.assign(stringList, strings);\n}\n\nexport function toggleStringsMode() {\n showKeys = !showKeys;\n}\n\nexport default stringList;\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCaseManagement(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 48\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 38v1c0 .6-.4 1-1 1H8c-.6 0-1-.4-1-1v-1c0-.6.4-1 1-1h2c.6 0 1 .4 1 1zm-1-9H8c-.6 0-1 .4-1 1v1c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-1c0-.6-.4-1-1-1zm6-11c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm7.5 19h-8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h8c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5zM20 23.4c0-1.9-1.5-3.4-3.4-3.4h-1.2c-1.9 0-3.4 1.5-3.4 3.4V25h8v-1.6zM32 8.1v37.7c0 1.1-.9 2.1-2 2.2H2c-1.1 0-2-1-2-2.2V8.1C0 7 .9 6 2 6h5c0-1.1.9-2 2-2h3c0-2.2 1.8-4 4-4s4 1.8 4 4h3c1.1 0 2 .9 2 2h5c1.1 0 2 1 2 2.1zM15 5c0 .6.4 1 1 1s1-.4 1-1-.4-1-1-1-1 .4-1 1zm13 5h-3c0 1.1-.9 2-2 2H9c-1.1 0-2-.9-2-2H4v34h24V10zm-4.5 19h-8c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h8c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCaseManagement);\nexport default __webpack_public_path__ + \"static/media/Case-management.7cb8f208.svg\";\nexport { ForwardRef as ReactComponent };","import styles from \"./UserStatus.module.scss\";\nimport React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useDispatch, useSelector, connect } from \"react-redux\";\nimport { Menu, MenuItem, ListItemText, Icon } from \"@material-ui/core\";\nimport { logout } from \"../../authentication/authActions\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { push } from \"connected-react-router\";\n\nexport const UserStatusComponent = ({ push }) => {\n const dispatch = useDispatch();\n const [anchorEl, setAnchorEl] = useState();\n const user = useSelector((state) => state.appData.user);\n\n const handleClick = (e) => setAnchorEl(e.currentTarget);\n\n const handleClose = () => setAnchorEl(null);\n\n const handleLogout = () => dispatch(logout.invoke());\n\n if (!user) {\n return null;\n }\n\n return (\n
\n \n
{user.name}
\n \n
\n \n \n \n \n \n \n \n push(\"/feedback\")}\n className={styles.authButton}\n >\n \n feedback\n \n {strings(stringKeys.feedback.send)}\n \n \n \n exit_to_app\n \n {strings(stringKeys.user.logout)}\n \n \n \n );\n};\n\nUserStatusComponent.propTypes = {\n logout: PropTypes.func,\n sendFeedback: PropTypes.func,\n isSendingFeedback: PropTypes.bool,\n sendFeedbackResult: PropTypes.string,\n};\n\nconst mapDispatchToProps = {\n push: push,\n};\n\nexport const UserStatus = connect(\n null,\n mapDispatchToProps,\n)(UserStatusComponent);\n","import { Link } from \"react-router-dom\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { UserStatus } from \"./UserStatus\";\nimport {\n Grid,\n Icon,\n useTheme,\n useMediaQuery,\n makeStyles,\n} from \"@material-ui/core\";\nimport { toggleSideMenu } from \"../app/logic/appActions\";\n\nconst useStyles = makeStyles((theme) => ({\n hamburgerMenu: {\n cursor: \"pointer\",\n [theme.breakpoints.up(\"lg\")]: {\n display: \"none\",\n },\n },\n smallLogo: {\n height: \"36px\",\n [theme.breakpoints.up(\"lg\")]: {\n display: \"none\",\n },\n },\n logo: {\n marginTop: \"20px\",\n height: \"36px\",\n },\n header: {\n paddingLeft: \"20px\",\n paddingRight: \"20px\",\n [theme.breakpoints.up(\"lg\")]: {\n paddingLeft: \"15px\",\n paddingRight: \"15px\",\n },\n },\n}));\n\nconst HeaderComponent = ({\n sideMenuOpen,\n toggleSideMenu,\n rtl,\n isSupervisor,\n}) => {\n const theme = useTheme();\n const classes = useStyles();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n return (\n \n {!isSupervisor && (\n
toggleSideMenu(!sideMenuOpen)}>\n \n menu\n \n \n
\n )}\n {isSupervisor && (\n \n \n \n \n \n \n )}\n
\n );\n};\n\nconst mapStateToProps = (state) => ({\n sideMenuOpen: state.appData.mobile.sideMenuOpen,\n rtl: state.appData.direction === \"rtl\",\n isSupervisor:\n state.appData.user.roles.includes(\"Supervisor\") ||\n state.appData.user.roles.includes(\"HeadSupervisor\"),\n});\n\nconst mapDispatchToProps = {\n toggleSideMenu: toggleSideMenu,\n};\n\nexport const Header = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(HeaderComponent);\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHealthPost(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 48 48\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.63 8.22a1.021 1.021 0 0 0-1.26 0L.37 20.7a1.007 1.007 0 0 0-.37.78V48h32V21.48a1.007 1.007 0 0 0-.37-.78zM23 33h-4v4a3 3 0 0 1-6 0v-4H9a3 3 0 0 1 0-6h4v-4a3 3 0 0 1 6 0v4h4a3 3 0 0 1 0 6zM37 2v-.5a1.5 1.5 0 0 0-3 0V48h3V10h11V2z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHealthPost);\nexport default __webpack_public_path__ + \"static/media/Health-post.0ea93a01.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMonitor(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 48 43\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47 0H1a1.003 1.003 0 0 0-1 1v31a1.003 1.003 0 0 0 1 1h18v6h-9a2 2 0 0 0-2 2v1.5a.5.5 0 0 0 .5.5h31a.5.5 0 0 0 .5-.5V41a2 2 0 0 0-2-2h-9v-6h18a1.003 1.003 0 0 0 1-1V1a1.003 1.003 0 0 0-1-1zM25.9 31.5a1.973 1.973 0 0 1-3.8 0 1.88 1.88 0 0 1-.07-.53 1.851 1.851 0 0 1 .26-.97 1.962 1.962 0 0 1 3.42 0 1.851 1.851 0 0 1 .26.97 1.88 1.88 0 0 1-.07.53zM4 27V4h40v23z\",\n \"data-name\": \"Layer 2\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonitor);\nexport default __webpack_public_path__ + \"static/media/Monitor.f708e0d9.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPeopleInNeed2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 48 32\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 20.97a10.938 10.938 0 0 1 4.13-8.46 7.565 7.565 0 0 0-4.5-1.51A7.69 7.69 0 0 0 5 18.58V22h8zM35 20.97V22h8v-3.42A7.69 7.69 0 0 0 35.37 11a7.565 7.565 0 0 0-4.5 1.51A10.938 10.938 0 0 1 35 20.97zM15 22v3h18v-4.03a9 9 0 0 0-18 0z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 24,\n cy: 5,\n r: 5\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 13,\n cy: 5,\n r: 4\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 35,\n cy: 5,\n r: 4\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.5 29h-45a1.5 1.5 0 0 0 0 3h45a1.5 1.5 0 0 0 0-3z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPeopleInNeed2);\nexport default __webpack_public_path__ + \"static/media/People-in-need-2.85024e46.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSettings(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 48 48\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45 21h-1.25a19.867 19.867 0 0 0-3.668-8.84l.889-.888a3 3 0 1 0-4.242-4.243l-.89.889A19.868 19.868 0 0 0 27 4.25V3a3 3 0 0 0-6 0v1.25a19.868 19.868 0 0 0-8.84 3.668l-.888-.889a3 3 0 1 0-4.243 4.243l.889.889A19.867 19.867 0 0 0 4.25 21H3a3 3 0 0 0 0 6h1.25a19.867 19.867 0 0 0 3.668 8.84l-.889.888a3 3 0 0 0 4.242 4.243l.89-.889A19.868 19.868 0 0 0 21 43.75V45a3 3 0 0 0 6 0v-1.25a19.868 19.868 0 0 0 8.84-3.668l.888.889a3 3 0 1 0 4.243-4.243l-.889-.889A19.867 19.867 0 0 0 43.75 27H45a3 3 0 0 0 0-6zM24 38a14 14 0 1 1 14-14 14.016 14.016 0 0 1-14 14z\",\n \"data-name\": \"Layer 2\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSettings);\nexport default __webpack_public_path__ + \"static/media/Settings.aa031edb.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAccountCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 21,\n viewBox: \"0 0 22 21\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 1.75C6.04873 1.75 2.03027 5.67 2.03027 10.5C2.03027 15.33 6.04873 19.25 11 19.25C15.9513 19.25 19.9698 15.33 19.9698 10.5C19.9698 5.67 15.9513 1.75 11 1.75ZM6.57794 15.995C6.96364 15.2075 9.31372 14.4375 11 14.4375C12.6863 14.4375 15.0454 15.2075 15.4221 15.995C14.2022 16.94 12.6684 17.5 11 17.5C9.33166 17.5 7.79783 16.94 6.57794 15.995ZM16.7048 14.7262C15.4221 13.2037 12.3096 12.6875 11 12.6875C9.69045 12.6875 6.57794 13.2037 5.29527 14.7262C4.38035 13.5537 3.82423 12.0925 3.82423 10.5C3.82423 6.64125 7.04437 3.5 11 3.5C14.9557 3.5 18.1758 6.64125 18.1758 10.5C18.1758 12.0925 17.6197 13.5537 16.7048 14.7262ZM11 5.25C9.2599 5.25 7.86062 6.615 7.86062 8.3125C7.86062 10.01 9.2599 11.375 11 11.375C12.7402 11.375 14.1395 10.01 14.1395 8.3125C14.1395 6.615 12.7402 5.25 11 5.25ZM11 9.625C10.2555 9.625 9.65457 9.03875 9.65457 8.3125C9.65457 7.58625 10.2555 7 11 7C11.7445 7 12.3455 7.58625 12.3455 8.3125C12.3455 9.03875 11.7445 9.625 11 9.625Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAccountCircle);\nexport default __webpack_public_path__ + \"static/media/Account-circle.a31843f4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogout(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 19,\n viewBox: \"0 0 20 19\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.34738 13.3739L7.42198 12.2821L5.42421 10.3081L13.237 10.2462L13.2248 8.7098L5.41203 8.77171L7.37833 6.774L6.2865 5.69171L2.47584 9.56324L6.34738 13.3739ZM16.3464 14.8312L10.2006 14.8799L10.2128 16.4163L16.3586 16.3676C17.2036 16.3609 17.8895 15.6641 17.8828 14.819L17.7976 4.06396C17.7909 3.21891 17.094 2.533 16.249 2.53969L10.1032 2.58839L10.1154 4.12483L16.2612 4.07613L16.3464 14.8312Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogout);\nexport default __webpack_public_path__ + \"static/media/Logout.bdecb0b1.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFeedback(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 1.75391H4C3.0375 1.75391 2.25 2.54141 2.25 3.50391V19.2539L5.75 15.7539H18C18.9625 15.7539 19.75 14.9664 19.75 14.0039V3.50391C19.75 2.54141 18.9625 1.75391 18 1.75391ZM18 14.0039H5.75L4 15.7539V3.50391H18V14.0039ZM6.625 7.87891H8.375V9.62891H6.625V7.87891ZM10.125 7.87891H11.875V9.62891H10.125V7.87891ZM13.625 7.87891H15.375V9.62891H13.625V7.87891Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFeedback);\nexport default __webpack_public_path__ + \"static/media/Feedback.359ea772.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCovid19(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 20,\n viewBox: \"0 0 22 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_905_900)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3125 7.91667C21.1302 7.91667 20.9553 7.98251 20.8264 8.09973C20.6974 8.21694 20.625 8.37591 20.625 8.54167V9.16667H18.733C18.5657 7.87073 18.0055 6.64255 17.1151 5.61917L18.4539 4.40208L18.9929 4.81708C19.1218 4.93433 19.2968 5.0002 19.4792 5.0002C19.6616 5.0002 19.8365 4.93433 19.9655 4.81708C20.0944 4.69984 20.1669 4.54081 20.1669 4.375C20.1669 4.20919 20.0944 4.05016 19.9655 3.93292L17.6738 1.84958C17.5448 1.73234 17.3699 1.66647 17.1875 1.66647C17.0051 1.66647 16.8302 1.73234 16.7012 1.84958C16.5722 1.96683 16.4998 2.12585 16.4998 2.29167C16.4998 2.45748 16.5722 2.6165 16.7012 2.73375L17.1577 3.22333L15.8189 4.44083C14.6932 3.63138 13.3422 3.12217 11.9167 2.97V1.25H12.6042C12.7865 1.25 12.9614 1.18415 13.0903 1.06694C13.2192 0.949731 13.2917 0.79076 13.2917 0.625C13.2917 0.45924 13.2192 0.300268 13.0903 0.183058C12.9614 0.065848 12.7865 0 12.6042 0L9.39583 0C9.2135 0 9.03863 0.065848 8.9097 0.183058C8.78077 0.300268 8.70833 0.45924 8.70833 0.625C8.70833 0.79076 8.78077 0.949731 8.9097 1.06694C9.03863 1.18415 9.2135 1.25 9.39583 1.25H10.0833V2.97C8.65782 3.12217 7.30683 3.63138 6.18108 4.44083L4.84229 3.22333L5.29879 2.73375C5.42776 2.6165 5.50022 2.45748 5.50022 2.29167C5.50022 2.12585 5.42776 1.96683 5.29879 1.84958C5.16982 1.73234 4.99489 1.66647 4.8125 1.66647C4.63011 1.66647 4.45518 1.73234 4.32621 1.84958L2.08771 3.93292C1.96241 4.05074 1.89303 4.20859 1.89451 4.37246C1.89599 4.53633 1.96822 4.69312 2.09563 4.80906C2.22303 4.92499 2.39543 4.9908 2.57569 4.9923C2.75596 4.9938 2.92965 4.93088 3.05938 4.81708L3.54613 4.40208L4.88446 5.61917C3.99419 6.6426 3.43421 7.87077 3.267 9.16667H1.375V8.54167C1.375 8.37591 1.30257 8.21694 1.17364 8.09973C1.0447 7.98251 0.869836 7.91667 0.6875 7.91667C0.505164 7.91667 0.330295 7.98251 0.201364 8.09973C0.0724328 8.21694 0 8.37591 0 8.54167L0 11.4583C0 11.6241 0.0724328 11.7831 0.201364 11.9003C0.330295 12.0175 0.505164 12.0833 0.6875 12.0833C0.869836 12.0833 1.0447 12.0175 1.17364 11.9003C1.30257 11.7831 1.375 11.6241 1.375 11.4583V10.8333H3.267C3.43434 12.1293 3.99448 13.3574 4.88492 14.3808L3.54613 15.5979L3.00713 15.1829C2.94326 15.1249 2.86745 15.0788 2.78401 15.0474C2.70057 15.016 2.61115 14.9998 2.52083 14.9998C2.43052 14.9998 2.34109 15.016 2.25765 15.0474C2.17422 15.0788 2.0984 15.1249 2.03454 15.1829C1.97068 15.241 1.92002 15.3099 1.88546 15.3857C1.8509 15.4616 1.83311 15.5429 1.83311 15.625C1.83311 15.7071 1.8509 15.7884 1.88546 15.8643C1.92002 15.9401 1.97068 16.009 2.03454 16.0671L4.32621 18.1504C4.39007 18.2085 4.46588 18.2545 4.54932 18.2859C4.63276 18.3174 4.72219 18.3335 4.8125 18.3335C4.90281 18.3335 4.99224 18.3174 5.07568 18.2859C5.15912 18.2545 5.23493 18.2085 5.29879 18.1504C5.36265 18.0924 5.41331 18.0234 5.44787 17.9476C5.48243 17.8717 5.50022 17.7904 5.50022 17.7083C5.50022 17.6262 5.48243 17.5449 5.44787 17.4691C5.41331 17.3932 5.36265 17.3243 5.29879 17.2662L4.84229 16.7767L6.18108 15.5592C7.30683 16.3686 8.65782 16.8778 10.0833 17.03V18.75H9.39583C9.2135 18.75 9.03863 18.8158 8.9097 18.9331C8.78077 19.0503 8.70833 19.2092 8.70833 19.375C8.70833 19.5408 8.78077 19.6997 8.9097 19.8169C9.03863 19.9342 9.2135 20 9.39583 20H12.6042C12.7865 20 12.9614 19.9342 13.0903 19.8169C13.2192 19.6997 13.2917 19.5408 13.2917 19.375C13.2917 19.2092 13.2192 19.0503 13.0903 18.9331C12.9614 18.8158 12.7865 18.75 12.6042 18.75H11.9167V17.03C13.3422 16.8778 14.6932 16.3686 15.8189 15.5592L17.1577 16.7767L16.7012 17.2662C16.6373 17.3243 16.5867 17.3932 16.5521 17.4691C16.5176 17.5449 16.4998 17.6262 16.4998 17.7083C16.4998 17.7904 16.5176 17.8717 16.5521 17.9476C16.5867 18.0234 16.6373 18.0924 16.7012 18.1504C16.7651 18.2085 16.8409 18.2545 16.9243 18.2859C17.0078 18.3174 17.0972 18.3335 17.1875 18.3335C17.2778 18.3335 17.3672 18.3174 17.4507 18.2859C17.5341 18.2545 17.6099 18.2085 17.6738 18.1504L19.9655 16.0671C20.0293 16.009 20.08 15.9401 20.1145 15.8643C20.1491 15.7884 20.1669 15.7071 20.1669 15.625C20.1669 15.5429 20.1491 15.4616 20.1145 15.3857C20.08 15.3099 20.0293 15.241 19.9655 15.1829C19.9016 15.1249 19.8258 15.0788 19.7423 15.0474C19.6589 15.016 19.5695 14.9998 19.4792 14.9998C19.3889 14.9998 19.2994 15.016 19.216 15.0474C19.1326 15.0788 19.0567 15.1249 18.9929 15.1829L18.4539 15.5979L17.1155 14.3808C18.0058 13.3574 18.5658 12.1292 18.733 10.8333H20.625V11.4583C20.625 11.6241 20.6974 11.7831 20.8264 11.9003C20.9553 12.0175 21.1302 12.0833 21.3125 12.0833C21.4948 12.0833 21.6697 12.0175 21.7986 11.9003C21.9276 11.7831 22 11.6241 22 11.4583V8.54167C22 8.37591 21.9276 8.21694 21.7986 8.09973C21.6697 7.98251 21.4948 7.91667 21.3125 7.91667ZM8.47917 8.33333C8.16189 8.33333 7.85174 8.2478 7.58794 8.08756C7.32414 7.92732 7.11853 7.69956 6.99711 7.43308C6.87569 7.1666 6.84393 6.87338 6.90582 6.59049C6.96772 6.3076 7.1205 6.04775 7.34485 5.8438C7.5692 5.63985 7.85503 5.50096 8.16621 5.44469C8.47739 5.38842 8.79993 5.4173 9.09305 5.52768C9.38618 5.63805 9.63671 5.82497 9.81298 6.06479C9.98925 6.30461 10.0833 6.58657 10.0833 6.875C10.0833 7.26177 9.91432 7.63271 9.61348 7.9062C9.31264 8.17969 8.90462 8.33333 8.47917 8.33333ZM13.75 13.75C13.5687 13.75 13.3915 13.7011 13.2407 13.6096C13.09 13.518 12.9725 13.3878 12.9031 13.2356C12.8337 13.0833 12.8156 12.9157 12.8509 12.7541C12.8863 12.5924 12.9736 12.444 13.1018 12.3274C13.23 12.2109 13.3934 12.1315 13.5712 12.0993C13.749 12.0672 13.9333 12.0837 14.1008 12.1468C14.2683 12.2098 14.4115 12.3166 14.5122 12.4537C14.6129 12.5907 14.6667 12.7518 14.6667 12.9167C14.6667 13.1377 14.5701 13.3496 14.3982 13.5059C14.2263 13.6622 13.9931 13.75 13.75 13.75Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_905_900\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 22,\n height: 20\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCovid19);\nexport default __webpack_public_path__ + \"static/media/COVID-19.bb49ee60.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUrban(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 20,\n viewBox: \"0 0 22 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_905_896)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.5096 6.66667H20.625V5.44167C20.6254 5.38357 20.613 5.32599 20.5888 5.27226C20.5645 5.21852 20.5287 5.1697 20.4835 5.12862C20.4383 5.08754 20.3846 5.05502 20.3255 5.03294C20.2664 5.01087 20.2031 4.99967 20.1392 5H19.25V0.625C19.25 0.45924 19.1776 0.300268 19.0486 0.183058C18.9197 0.065848 18.7448 0 18.5625 0C18.3802 0 18.2053 0.065848 18.0764 0.183058C17.9474 0.300268 17.875 0.45924 17.875 0.625V5H16.9858C16.9219 4.99967 16.8586 5.01087 16.7995 5.03294C16.7404 5.05502 16.6867 5.08754 16.6415 5.12862C16.5963 5.1697 16.5605 5.21852 16.5362 5.27226C16.512 5.32599 16.4996 5.38357 16.5 5.44167V6.66667H15.6154C15.4854 6.66678 15.3607 6.71378 15.2688 6.79737C15.1768 6.88096 15.1251 6.99429 15.125 7.1125V18.75H13.2917V1.25C13.2913 1.13959 13.2429 1.03381 13.157 0.955736C13.0711 0.877668 12.9548 0.833663 12.8333 0.833333H7.33333C7.21189 0.833663 7.09552 0.877668 7.00964 0.955736C6.92377 1.03381 6.87536 1.13959 6.875 1.25V18.75H3.66667V16.1617C4.25205 16.0108 4.75765 15.6726 5.09019 15.2094C5.42273 14.7462 5.55976 14.1892 5.476 13.6414C5.39223 13.0935 5.09332 12.5917 4.63442 12.2285C4.17552 11.8653 3.58761 11.6652 2.97917 11.6652C2.37072 11.6652 1.78281 11.8653 1.32391 12.2285C0.865016 12.5917 0.566105 13.0935 0.482338 13.6414C0.398571 14.1892 0.5356 14.7462 0.868139 15.2094C1.20068 15.6726 1.70629 16.0108 2.29167 16.1617V18.75H0V20H22V7.1125C21.9999 6.99429 21.9482 6.88096 21.8562 6.79737C21.7643 6.71378 21.6396 6.66678 21.5096 6.66667ZM19.25 13.125C19.2497 13.0976 19.2554 13.0703 19.2668 13.0449C19.2782 13.0195 19.2951 12.9965 19.3164 12.9771C19.3378 12.9577 19.3632 12.9423 19.3911 12.932C19.419 12.9216 19.449 12.9164 19.4792 12.9167H20.3958C20.426 12.9164 20.456 12.9216 20.4839 12.932C20.5118 12.9423 20.5372 12.9577 20.5586 12.9771C20.5799 12.9965 20.5968 13.0195 20.6082 13.0449C20.6196 13.0703 20.6253 13.0976 20.625 13.125V13.9583C20.6253 13.9858 20.6196 14.013 20.6082 14.0384C20.5968 14.0638 20.5799 14.0869 20.5586 14.1063C20.5372 14.1257 20.5118 14.141 20.4839 14.1514C20.456 14.1617 20.426 14.1669 20.3958 14.1667H19.4792C19.449 14.1669 19.419 14.1617 19.3911 14.1514C19.3632 14.141 19.3378 14.1257 19.3164 14.1063C19.2951 14.0869 19.2782 14.0638 19.2668 14.0384C19.2554 14.013 19.2497 13.9858 19.25 13.9583V13.125ZM20.3958 11.6667H19.4792C19.449 11.6669 19.419 11.6617 19.3911 11.6514C19.3632 11.641 19.3378 11.6257 19.3164 11.6063C19.2951 11.5869 19.2782 11.5638 19.2668 11.5384C19.2554 11.513 19.2497 11.4858 19.25 11.4583V10.625C19.2497 10.5976 19.2554 10.5703 19.2668 10.5449C19.2782 10.5195 19.2951 10.4965 19.3164 10.4771C19.3378 10.4577 19.3632 10.4423 19.3911 10.432C19.419 10.4216 19.449 10.4164 19.4792 10.4167H20.3958C20.426 10.4164 20.456 10.4216 20.4839 10.432C20.5118 10.4423 20.5372 10.4577 20.5586 10.4771C20.5799 10.4965 20.5968 10.5195 20.6082 10.5449C20.6196 10.5703 20.6253 10.5976 20.625 10.625V11.4583C20.6253 11.4858 20.6196 11.513 20.6082 11.5384C20.5968 11.5638 20.5799 11.5869 20.5586 11.6063C20.5372 11.6257 20.5118 11.641 20.4839 11.6514C20.456 11.6617 20.426 11.6669 20.3958 11.6667ZM20.3958 9.16667H19.4792C19.449 9.16695 19.419 9.16175 19.3911 9.15138C19.3632 9.141 19.3378 9.12567 19.3164 9.10627C19.2951 9.08687 19.2782 9.06379 19.2668 9.03839C19.2554 9.01298 19.2497 8.98577 19.25 8.95833V8.125C19.2497 8.09756 19.2554 8.07035 19.2668 8.04495C19.2782 8.01954 19.2951 7.99647 19.3164 7.97707C19.3378 7.95766 19.3632 7.94233 19.3911 7.93196C19.419 7.92159 19.449 7.91639 19.4792 7.91667H20.3958C20.426 7.91639 20.456 7.92159 20.4839 7.93196C20.5118 7.94233 20.5372 7.95766 20.5586 7.97707C20.5799 7.99647 20.5968 8.01954 20.6082 8.04495C20.6196 8.07035 20.6253 8.09756 20.625 8.125V8.95833C20.6253 8.98577 20.6196 9.01298 20.6082 9.03839C20.5968 9.06379 20.5799 9.08687 20.5586 9.10627C20.5372 9.12567 20.5118 9.141 20.4839 9.15138C20.456 9.16175 20.426 9.16695 20.3958 9.16667ZM16.5 8.125C16.4997 8.09756 16.5054 8.07035 16.5168 8.04495C16.5282 8.01954 16.5451 7.99647 16.5664 7.97707C16.5878 7.95766 16.6132 7.94233 16.6411 7.93196C16.669 7.92159 16.699 7.91639 16.7292 7.91667H17.6458C17.676 7.91639 17.706 7.92159 17.7339 7.93196C17.7618 7.94233 17.7872 7.95766 17.8086 7.97707C17.8299 7.99647 17.8468 8.01954 17.8582 8.04495C17.8696 8.07035 17.8753 8.09756 17.875 8.125V8.95833C17.8753 8.98577 17.8696 9.01298 17.8582 9.03839C17.8468 9.06379 17.8299 9.08687 17.8086 9.10627C17.7872 9.12567 17.7618 9.141 17.7339 9.15138C17.706 9.16175 17.676 9.16695 17.6458 9.16667H16.7292C16.699 9.16695 16.669 9.16175 16.6411 9.15138C16.6132 9.141 16.5878 9.12567 16.5664 9.10627C16.5451 9.08687 16.5282 9.06379 16.5168 9.03839C16.5054 9.01298 16.4997 8.98577 16.5 8.95833V8.125ZM16.5 10.625C16.4997 10.5976 16.5054 10.5703 16.5168 10.5449C16.5282 10.5195 16.5451 10.4965 16.5664 10.4771C16.5878 10.4577 16.6132 10.4423 16.6411 10.432C16.669 10.4216 16.699 10.4164 16.7292 10.4167H17.6458C17.676 10.4164 17.706 10.4216 17.7339 10.432C17.7618 10.4423 17.7872 10.4577 17.8086 10.4771C17.8299 10.4965 17.8468 10.5195 17.8582 10.5449C17.8696 10.5703 17.8753 10.5976 17.875 10.625V11.4583C17.8753 11.4858 17.8696 11.513 17.8582 11.5384C17.8468 11.5638 17.8299 11.5869 17.8086 11.6063C17.7872 11.6257 17.7618 11.641 17.7339 11.6514C17.706 11.6617 17.676 11.6669 17.6458 11.6667H16.7292C16.699 11.6669 16.669 11.6617 16.6411 11.6514C16.6132 11.641 16.5878 11.6257 16.5664 11.6063C16.5451 11.5869 16.5282 11.5638 16.5168 11.5384C16.5054 11.513 16.4997 11.4858 16.5 11.4583V10.625ZM16.5 13.125C16.4997 13.0976 16.5054 13.0703 16.5168 13.0449C16.5282 13.0195 16.5451 12.9965 16.5664 12.9771C16.5878 12.9577 16.6132 12.9423 16.6411 12.932C16.669 12.9216 16.699 12.9164 16.7292 12.9167H17.6458C17.676 12.9164 17.706 12.9216 17.7339 12.932C17.7618 12.9423 17.7872 12.9577 17.8086 12.9771C17.8299 12.9965 17.8468 13.0195 17.8582 13.0449C17.8696 13.0703 17.8753 13.0976 17.875 13.125V13.9583C17.8753 13.9858 17.8696 14.013 17.8582 14.0384C17.8468 14.0638 17.8299 14.0869 17.8086 14.1063C17.7872 14.1257 17.7618 14.141 17.7339 14.1514C17.706 14.1617 17.676 14.1669 17.6458 14.1667H16.7292C16.699 14.1669 16.669 14.1617 16.6411 14.1514C16.6132 14.141 16.5878 14.1257 16.5664 14.1063C16.5451 14.0869 16.5282 14.0638 16.5168 14.0384C16.5054 14.013 16.4997 13.9858 16.5 13.9583V13.125ZM8.70833 3.33333C8.7087 3.22293 8.7571 3.11714 8.84298 3.03907C8.92885 2.961 9.04522 2.917 9.16667 2.91667H11C11.1214 2.917 11.2378 2.961 11.3237 3.03907C11.4096 3.11714 11.458 3.22293 11.4583 3.33333V3.75C11.458 3.86041 11.4096 3.96619 11.3237 4.04426C11.2378 4.12233 11.1214 4.16634 11 4.16667H9.16667C9.04522 4.16634 8.92885 4.12233 8.84298 4.04426C8.7571 3.96619 8.7087 3.86041 8.70833 3.75V3.33333ZM8.70833 6.66667C8.7087 6.55626 8.7571 6.45047 8.84298 6.3724C8.92885 6.29433 9.04522 6.25033 9.16667 6.25H11C11.1214 6.25033 11.2378 6.29433 11.3237 6.3724C11.4096 6.45047 11.458 6.55626 11.4583 6.66667V7.08333C11.458 7.19374 11.4096 7.29953 11.3237 7.3776C11.2378 7.45567 11.1214 7.49967 11 7.5H9.16667C9.04522 7.49967 8.92885 7.45567 8.84298 7.3776C8.7571 7.29953 8.7087 7.19374 8.70833 7.08333V6.66667ZM8.70833 10C8.7087 9.88959 8.7571 9.78381 8.84298 9.70574C8.92885 9.62767 9.04522 9.58366 9.16667 9.58333H11C11.1214 9.58366 11.2378 9.62767 11.3237 9.70574C11.4096 9.78381 11.458 9.88959 11.4583 10V10.4167C11.458 10.5271 11.4096 10.6329 11.3237 10.7109C11.2378 10.789 11.1214 10.833 11 10.8333H9.16667C9.04522 10.833 8.92885 10.789 8.84298 10.7109C8.7571 10.6329 8.7087 10.5271 8.70833 10.4167V10ZM8.70833 18.75V16.6667C8.7087 16.5563 8.7571 16.4505 8.84298 16.3724C8.92885 16.2943 9.04522 16.2503 9.16667 16.25H11C11.1214 16.2503 11.2378 16.2943 11.3237 16.3724C11.4096 16.4505 11.458 16.5563 11.4583 16.6667V18.75H8.70833ZM19.25 18.75V16.6667C19.2504 16.5563 19.2988 16.4505 19.3846 16.3724C19.4705 16.2943 19.5869 16.2503 19.7083 16.25H20.1667C20.2881 16.2503 20.4045 16.2943 20.4904 16.3724C20.5762 16.4505 20.6246 16.5563 20.625 16.6667V18.75H19.25Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_905_896\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 22,\n height: 20\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUrban);\nexport default __webpack_public_path__ + \"static/media/Urban.3971c678.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRemoteSupport(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 20,\n viewBox: \"0 0 22 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_905_904)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.0796 7.11823C19.7612 5.14145 18.6711 3.33477 17.0085 2.02822C15.346 0.721674 13.2219 0.00245889 11.0242 0.00195339C8.82656 0.0014479 6.70204 0.719686 5.03875 2.02547C3.37546 3.33125 2.2844 5.13743 1.96488 7.11406C1.42003 7.18507 0.921551 7.43212 0.560712 7.80997C0.199872 8.18782 0.000819342 8.67119 4.57461e-08 9.17156V12.9124C-6.01511e-05 13.1866 0.0592897 13.4581 0.17466 13.7114C0.290031 13.9647 0.459162 14.1949 0.672394 14.3888C0.885627 14.5826 1.13878 14.7364 1.41741 14.8414C1.69603 14.9463 1.99466 15.0003 2.29625 15.0003H4.12317C4.36677 15.0003 4.60039 14.9123 4.77264 14.7557C4.9449 14.5992 5.04167 14.3868 5.04167 14.1653V7.91865C5.04167 7.69719 4.9449 7.48481 4.77264 7.32821C4.60039 7.17162 4.36677 7.08365 4.12317 7.08365H3.8225C4.14148 5.56014 5.03509 4.18552 6.34932 3.19672C7.66355 2.20792 9.31606 1.66689 11.022 1.66689C12.7279 1.66689 14.3804 2.20792 15.6947 3.19672C17.0089 4.18552 17.9025 5.56014 18.2215 7.08365H17.8768C17.6332 7.08365 17.3996 7.17162 17.2274 7.32821C17.0551 7.48481 16.9583 7.69719 16.9583 7.91865V14.1653C16.9583 14.3868 17.0551 14.5992 17.2274 14.7557C17.3996 14.9123 17.6332 15.0003 17.8768 15.0003H18.3113C18.1897 15.6964 17.7992 16.3303 17.21 16.7885C16.6208 17.2466 15.8714 17.4989 15.0961 17.5003H13.4956C13.2938 17.1826 12.9824 16.9342 12.6095 16.7938C12.2366 16.6534 11.8232 16.6288 11.4334 16.7238C11.0436 16.8187 10.6991 17.028 10.4534 17.319C10.2077 17.6101 10.0746 17.9668 10.0746 18.3336C10.0746 18.7005 10.2077 19.0572 10.4534 19.3482C10.6991 19.6393 11.0436 19.8486 11.4334 19.9435C11.8232 20.0385 12.2366 20.0138 12.6095 19.8734C12.9824 19.733 13.2938 19.4847 13.4956 19.167H15.0961C16.366 19.1654 17.5894 18.733 18.527 17.9545C19.4646 17.176 20.0488 16.1073 20.1653 14.9578C20.6833 14.861 21.1487 14.6047 21.483 14.2322C21.8172 13.8596 21.9999 13.3936 22 12.9128V9.17198C21.9994 8.67838 21.8059 8.20102 21.4542 7.82497C21.1025 7.44892 20.6154 7.19819 20.0796 7.11823Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_905_904\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 22,\n height: 20\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRemoteSupport);\nexport default __webpack_public_path__ + \"static/media/Remote-support.0a66247f.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAlerts(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 38,\n height: 49,\n viewBox: \"0 0 22 20\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_13_2919)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 48.5H20C21.0609 48.5 22.0783 48.0786 22.8284 47.3284C23.5786 46.5783 24 45.5609 24 44.5H14C14 45.5609 14.4214 46.5783 15.1716 47.3284C15.9217 48.0786 16.9391 48.5 18 48.5ZM33.5 33.5H33.333L31.453 19.4C31.1658 17.2545 30.3286 15.2198 29.0226 13.4935C27.7167 11.7672 25.9865 10.408 24 9.548V5.5C24 4.17392 23.4732 2.90215 22.5355 1.96447C21.5979 1.02678 20.3261 0.5 19 0.5C17.6739 0.5 16.4021 1.02678 15.4645 1.96447C14.5268 2.90215 14 4.17392 14 5.5V9.548C12.0135 10.408 10.2833 11.7672 8.97736 13.4935C7.67141 15.2198 6.83418 17.2545 6.547 19.4L4.667 33.5H4.5C3.30653 33.5 2.16193 33.9741 1.31802 34.818C0.474106 35.6619 0 36.8065 0 38C0 39.1935 0.474106 40.3381 1.31802 41.182C2.16193 42.0259 3.30653 42.5 4.5 42.5H33.5C34.6935 42.5 35.8381 42.0259 36.682 41.182C37.5259 40.3381 38 39.1935 38 38C38 36.8065 37.5259 35.6619 36.682 34.818C35.8381 33.9741 34.6935 33.5 33.5 33.5ZM19 3.5C19.3956 3.5 19.7822 3.6173 20.1111 3.83706C20.44 4.05682 20.6964 4.36918 20.8478 4.73463C20.9991 5.10009 21.0387 5.50222 20.9616 5.89018C20.8844 6.27814 20.6939 6.63451 20.4142 6.91421C20.1345 7.19392 19.7781 7.3844 19.3902 7.46157C19.0022 7.53874 18.6001 7.49913 18.2346 7.34776C17.8692 7.19638 17.5568 6.94004 17.3371 6.61114C17.1173 6.28224 17 5.89556 17 5.5C17 4.96957 17.2107 4.46086 17.5858 4.08579C17.9609 3.71071 18.4696 3.5 19 3.5Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_13_2919\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 38,\n height: 48,\n transform: \"translate(0 0.5)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAlerts);\nexport default __webpack_public_path__ + \"static/media/Alerts.2dfc3672.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCollapse(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 38,\n height: 39,\n viewBox: \"0 0 38 39\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 19,\n cy: 19.6484,\n r: 18.6592,\n fill: \"#1E1E1E\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.9605 15.3482L29.0899 9.38165L30.07 10.5528L22.9406 16.5194L28.9642 17.0542L28.8159 18.5724L20.2107 17.8083L20.9748 9.20313L22.4953 9.3246L21.9605 15.3482Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.9893 21.7922L9.84873 27.8019L8.86151 26.6289L16.0021 20.6192L9.95349 20.099L10.0982 18.5746L18.739 19.3176L17.9959 27.9584L16.4691 27.8407L16.9893 21.7922Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCollapse);\nexport default __webpack_public_path__ + \"static/media/collapse.0b526768.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgExpand(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 38,\n height: 39,\n viewBox: \"0 0 38 39\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 18.8782,\n cy: 18.9966,\n r: 18.6592,\n fill: \"#1E1E1E\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.7002 11.7589L20.6043 17.7652L19.6176 16.5996L26.7136 10.5933L20.6871 10.0921L20.8269 8.57313L29.4362 9.28912L28.7202 17.8984L27.199 17.7854L27.7002 11.7589Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.041 24.1989L17.9495 17.9239L18.9803 19.0587L12.0718 25.3338L18.1357 25.6251L18.0487 27.154L9.38596 26.7378L9.80219 18.0751L11.3324 18.135L11.041 24.1989Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgExpand);\nexport default __webpack_public_path__ + \"static/media/expand.8d56b31b.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgExpandLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 49,\n viewBox: \"0 0 48 49\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_13_2865)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.9999 48.5C43.4746 48.5006 42.9544 48.3975 42.4691 48.1965C41.9838 47.9956 41.543 47.7008 41.1719 47.329L22.1719 27.329C21.8003 26.9575 21.5055 26.5165 21.3044 26.0311C21.1033 25.5457 20.9998 25.0254 20.9998 24.5C20.9998 23.9746 21.1033 23.4543 21.3044 22.9689C21.5055 22.4835 21.8003 22.0425 22.1719 21.671L41.1719 1.671C41.9221 0.920836 42.9395 0.499397 44.0004 0.499397C45.0613 0.499397 46.0787 0.920836 46.8289 1.671C47.5791 2.42117 48.0005 3.43861 48.0005 4.4995C48.0005 5.56039 47.5791 6.57784 46.8289 7.328L30.9999 24.5L46.8289 41.671C47.3885 42.2304 47.7697 42.9432 47.9241 43.7193C48.0786 44.4954 47.9993 45.2998 47.6965 46.0309C47.3937 46.7619 46.8808 47.3867 46.2228 47.8262C45.5648 48.2658 44.7912 48.5002 43.9999 48.5ZM25.8299 47.329C26.2015 46.9575 26.4963 46.5165 26.6974 46.0311C26.8985 45.5457 27.002 45.0254 27.002 44.5C27.002 43.9746 26.8985 43.4543 26.6974 42.9689C26.4963 42.4835 26.2015 42.0425 25.8299 41.671L9.9999 24.5L25.8289 7.328C26.5791 6.57784 27.0005 5.56039 27.0005 4.4995C27.0005 3.43861 26.5791 2.42117 25.8289 1.671C25.0787 0.920835 24.0613 0.499397 23.0004 0.499397C21.9395 0.499397 20.9221 0.920835 20.1719 1.671L1.1719 21.671C0.800296 22.0425 0.505513 22.4835 0.304393 22.9689C0.103273 23.4543 -0.000244141 23.9746 -0.000244141 24.5C-0.000244141 25.0254 0.103273 25.5457 0.304393 26.0311C0.505513 26.5165 0.800296 26.9575 1.1719 27.329L20.1719 47.329C20.5433 47.7005 20.9843 47.9951 21.4696 48.1961C21.9549 48.3972 22.4751 48.5006 23.0004 48.5006C23.5257 48.5006 24.0459 48.3972 24.5312 48.1961C25.0165 47.9951 25.4585 47.7005 25.8299 47.329Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_13_2865\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgExpandLeft);\nexport default __webpack_public_path__ + \"static/media/Expand-left.ebd7e39b.svg\";\nexport { ForwardRef as ReactComponent };","import { SvgIcon } from \"@material-ui/core\";\nimport { ReactComponent as CaseManagementSvg } from \"../../assets/icons/Case-management.svg\";\nimport { ReactComponent as HealthPostSvg } from \"../../assets/icons/Health-post.svg\";\nimport { ReactComponent as MonitorSvg } from \"../../assets/icons/Monitor.svg\";\nimport { ReactComponent as PeopleInNeed2Svg } from \"../../assets/icons/People-in-need-2.svg\";\nimport { ReactComponent as SettingsSvg } from \"../../assets/icons/Settings.svg\";\nimport { ReactComponent as UserCircleSvg } from \"../../assets/icons/Account-circle.svg\";\nimport { ReactComponent as LogoutSvg } from \"../../assets/icons/Logout.svg\";\nimport { ReactComponent as FeedbackSvg } from \"../../assets/icons/Feedback.svg\";\nimport { ReactComponent as CovidSvg } from \"../../assets/icons/COVID-19.svg\";\nimport { ReactComponent as UrbanSvg } from \"../../assets/icons/Urban.svg\";\nimport { ReactComponent as RemoteSupportSvg } from \"../../assets/icons/Remote-support.svg\";\nimport { ReactComponent as AlertsSvg } from \"../../assets/icons/Alerts.svg\";\nimport { ReactComponent as CollapseSvg } from \"../../assets/icons/collapse.svg\";\nimport { ReactComponent as ExpandSvg } from \"../../assets/icons/expand.svg\";\n\nexport const RcIcon = ({ icon, ...props }) => {\n switch (icon) {\n case \"Dashboard\":\n return ;\n case \"Project\":\n return (\n \n );\n case \"Report\":\n return (\n \n );\n case \"Users\":\n return (\n \n );\n case \"Settings\":\n return ;\n case \"UserCircle\":\n return (\n \n );\n case \"Logout\":\n return ;\n case \"Feedback\":\n return ;\n case \"HealthRisks\":\n return ;\n case \"NationalSocieties\":\n return ;\n case \"GlobalCoordinators\":\n return (\n \n );\n case \"Alerts\":\n return ;\n case \"Expand\":\n return ;\n case \"Collapse\":\n return ;\n default:\n return null;\n }\n};\n","import {\n List,\n ListItem,\n ListItemText,\n ListItemIcon,\n ListSubheader,\n Divider,\n makeStyles,\n Tooltip,\n Typography,\n} from \"@material-ui/core\";\nimport { RcIcon } from \"../icons/RcIcon\";\nimport { useSelector } from \"react-redux\";\n\nexport const MenuSection = ({\n menuItems,\n handleItemClick,\n menuTitle,\n isExpanded,\n}) => {\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const useStyles = makeStyles(() => ({\n SideMenuIcon: {\n fontSize: \"26px\",\n color: \"#1E1E1E\",\n },\n ListItemIconWrapper: {\n minWidth: \"20px\",\n },\n SideMenuText: {\n color: \"#1E1E1E\",\n fontSize: \"16px\",\n },\n SideMenuTextWrapper: {\n padding: useRtlDirection ? \"12px 16px 12px 12px\" : \"12px 12px 12px 16px\",\n },\n ListItemActive: {\n backgroundColor: \"#E3E3E3\",\n \"& span p\": {\n fontWeight: \"600\",\n },\n },\n ListItem: {\n padding: useRtlDirection ? \"0 16px 0 0\" : \"0 0 0 16px\",\n },\n SubHeader: {\n color: \"#1E1E1E\",\n lineHeight: \"28px\",\n margin: useRtlDirection ? \"0 8px 0 0\" : \"0 0 0 8px\",\n position: \"relative\",\n },\n Divider: {\n backgroundColor: \"#B4B4B4\",\n },\n Hide: {\n color: \"transparent\",\n userSelect: \"none\",\n },\n }));\n const classes = useStyles();\n\n return (\n \n \n \n {menuTitle}\n \n \n \n \n }\n >\n {menuItems.map((item) => {\n return (\n handleItemClick(item)}\n >\n \n \n {item.icon && (\n \n )}\n \n \n \n \n {item.title}\n \n \n }\n className={classes.SideMenuTextWrapper}\n />\n \n );\n })}\n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\n\nlet ai;\n\nexport const ApplicationInsightsProvider = ({ connectionString, children }) => {\n const [activated, setActivated] = useState(false);\n\n useEffect(() => {\n if (!activated && connectionString) {\n ai = new ApplicationInsights({\n config: {\n connectionString: connectionString,\n autoTrackPageVisitTime: true,\n },\n });\n ai.loadAppInsights();\n\n setActivated(true);\n }\n }, [activated, connectionString]);\n\n return <>{children};\n};\n\nexport const getAppInsights = () => ai;\n","import React from \"react\";\nimport {\n IconButton,\n SvgIcon,\n makeStyles,\n useTheme,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport { ReactComponent as ExpandLeftSVG } from \"../../../../assets/icons/Expand-left.svg\";\nimport { useSelector } from \"react-redux\";\n\nexport const ExpandButton = ({ onClick, isExpanded }) => {\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const useStyles = makeStyles((theme) => ({\n triangleBackground: {\n position: \"absolute\",\n zIndex: 1201,\n right: useRtlDirection ? undefined : -10,\n left: useRtlDirection ? -10 : undefined,\n top: 5,\n height: 35,\n width: 35,\n transform: useRtlDirection ? \"rotate(225deg)\" : \"rotate(45deg)\",\n backgroundImage: useRtlDirection\n ? `linear-gradient(-315deg, rgba(255,0,0,0) 50%, ${theme.palette.backgroundDark.main} 50%)`\n : `linear-gradient(45deg, rgba(255,0,0,0) 50%, ${theme.palette.backgroundDark.main} 50%)`,\n borderRadius: \"10px\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n button: {\n padding: 0,\n transform: useRtlDirection\n ? \"rotate(-225deg) translateX(-5px)\"\n : \"rotate(135deg) translateX(-5px)\",\n color: theme.palette.primary.main,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n invertedButton: {\n transform: \"rotate(-45deg)\",\n },\n }));\n const classes = useStyles();\n\n // The expanded button should only appear for larger screens\n if (isSmallScreen) return null;\n return (\n
\n \n \n \n
\n );\n};\n\nexport default ExpandButton;\n","import React from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport {\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n makeStyles,\n Tooltip,\n} from \"@material-ui/core\";\nimport { RcIcon } from \"../icons/RcIcon\";\nimport { logout } from \"../../authentication/authActions\";\nimport { strings, stringKeys } from \"../../strings\";\n\nexport const AccountSection = ({ handleItemClick, isExpanded }) => {\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n const user = useSelector((state) => state.appData.user);\n const isSupervisor =\n user.roles.includes(\"Supervisor\") || user.roles.includes(\"HeadSupervisor\");\n\n const useStyles = makeStyles((theme) => ({\n AccordionContainer: {\n position: \"sticky\",\n marginTop: \"auto\",\n bottom: 0,\n zIndex: 1,\n },\n Accordion: {\n backgroundColor: theme.palette.backgroundDark.main,\n \"&.MuiAccordion-root:before\": {\n backgroundColor: \"inherit\",\n },\n },\n AccordionExpanded: {\n margin: \"0 !important\",\n },\n AccordionSummary: {\n backgroundColor: \"#EDEDED\",\n \"&:hover\": {\n backgroundColor: \"rgba(0, 0, 0, 0.08)\",\n },\n },\n AccordionSummaryContent: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: \"12px\",\n padding: \"5px 0 5px 0\",\n margin: \"10px 0 10px 0\",\n },\n AccordionSummaryContentCollapsed: {\n justifyContent: \"center\",\n },\n AccordionSummaryRoot: {\n boxShadow: \"0px -2px 2px 0px rgba(124, 124, 124, 0.20)\",\n borderRadius: \"8px 8px 0 0\",\n },\n AccordionSummaryExpanded: {\n padding: \"0 8px\",\n borderRadius: \"8px 8px 0 0\",\n },\n AccordionDetails: {\n padding: 0,\n },\n List: {\n width: \"100%\",\n },\n ListItem: {\n color: \"#1E1E1E\",\n padding: \"8px 16px 8px 16px\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n ListItemUser: {\n color: \"#1E1E1E\",\n padding: \"0px 16px 0px 16px\",\n },\n ListItemTextUserContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"center\",\n paddingLeft: 0,\n paddingRight: 0,\n },\n ListItemTextUser: {\n color: \"#7C7C7C\",\n },\n ListItemText: {\n color: \"#1E1E1E\",\n },\n ListItemTextWrapper: {\n margin: \"0\",\n padding: \"8px 0 8px 0\",\n },\n ListItemIcon: {\n minWidth: \"20px\",\n paddingRight: \"20px\",\n },\n ListItemIconCollapsed: {\n paddingRight: \"0px\",\n },\n User: {\n fontSize: 16,\n },\n Account: {\n fontWeight: \"bold\",\n padding: useRtlDirection ? \"8px 8px 8px 0\" : \"8px 0 8px 8px\",\n backgroundColor: theme.palette.background.default,\n },\n Hide: {\n color: \"transparent\",\n userSelect: \"none\",\n },\n }));\n const classes = useStyles();\n const dispatch = useDispatch();\n const handleLogout = () => dispatch(logout.invoke());\n\n if (isSupervisor) return null;\n\n return (\n
\n \n {strings(stringKeys.sideMenu.account)}\n \n \n \n
\n \n \n\n {isExpanded && (\n {user.name}\n )}\n \n
\n
\n \n \n {isExpanded && (\n \n \n \n \n {user.roles[0]}\n \n \n \n \n {user.email}\n \n \n \n \n )}\n handleItemClick({ url: \"/feedback\" })}\n className={classes.ListItem}\n >\n \n \n \n \n \n {isExpanded && (\n \n \n {strings(stringKeys.feedback.send)}\n \n \n )}\n \n \n \n \n \n \n \n {isExpanded && (\n \n \n {strings(stringKeys.user.logout)}\n \n \n )}\n \n \n \n \n
\n );\n};\n\nAccountSection.propTypes = {\n logout: PropTypes.func,\n sendFeedback: PropTypes.func,\n isSendingFeedback: PropTypes.bool,\n sendFeedbackResult: PropTypes.string,\n};\n","import styles from \"./SideMenu.module.scss\";\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { push } from \"connected-react-router\";\nimport {\n useTheme,\n Drawer,\n Grid,\n useMediaQuery,\n makeStyles,\n} from \"@material-ui/core\";\nimport { toggleSideMenu } from \"../app/logic/appActions\";\nimport { MenuSection } from \"./MenuSection\";\nimport { stringKeys, strings } from \"../../strings\";\nimport ExpandButton from \"../common/buttons/expandButton/ExpandButton\";\nimport { AccountSection } from \"./AccountSection\";\nimport { expandSideMenu } from \"../app/logic/appActions\";\n\nconst drawerWidth = 230;\n\nconst useStyles = makeStyles((theme) => ({\n MenuContainer: {\n paddingTop: \"12px\",\n backgroundColor: theme.palette.background.default,\n },\n SideMenu: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n backgroundColor: theme.palette.background.default,\n position: \"relative\",\n },\n SideMenuContent: {\n overflowX: \"hidden\",\n overflowY: \"auto\",\n scrollbarColor: `#B4B4B4 ${theme.palette.background.default}`,\n },\n drawer: {\n zIndex: 100,\n \"@media (min-width: 1280px)\": {\n width: drawerWidth,\n },\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n \"& .MuiDrawer-paper\": {\n borderRight: \"none\",\n borderLeft: \"none\",\n },\n },\n drawerOpen: {\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n drawerClose: {\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: \"230px\",\n [theme.breakpoints.up(\"sm\")]: {\n width: \"58px\",\n },\n },\n logo: {\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n image: {\n height: \"38px\",\n },\n overflowVisible: {\n overflowY: \"visible\",\n },\n}));\n\nconst SideMenuComponent = ({\n generalMenu,\n sideMenu,\n sideMenuOpen,\n toggleSideMenu,\n push,\n isSideMenuExpanded,\n expandSideMenu,\n isSupervisor,\n}) => {\n const theme = useTheme();\n const classes = useStyles();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const userLanguageCode = useSelector(\n (state) => state.appData.user.languageCode,\n );\n\n const handleItemClick = (item) => {\n push(item.url);\n closeDrawer();\n };\n\n const closeDrawer = () => {\n toggleSideMenu(false);\n };\n\n const handleExpandClick = () => {\n expandSideMenu(!isSideMenuExpanded);\n };\n\n if (isSupervisor) return null;\n return (\n
\n
\n \n
\n \n
\n \n \n \n
\n
\n \n {generalMenu.length !== 0 && (\n \n )}\n {sideMenu.length !== 0 && (\n \n \n \n )}\n \n
\n \n
\n \n
\n
\n );\n};\n\nSideMenuComponent.propTypes = {\n appReady: PropTypes.bool,\n sideMenu: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n generalMenu: state.appData.siteMap.generalMenu,\n sideMenu: state.appData.siteMap.sideMenu,\n sideMenuOpen: state.appData.mobile.sideMenuOpen,\n isSideMenuExpanded: state.appData.isSideMenuExpanded,\n isSupervisor:\n state.appData.user.roles.includes(\"Supervisor\") ||\n state.appData.user.roles.includes(\"HeadSupervisor\"),\n});\n\nconst mapDispatchToProps = {\n push: push,\n toggleSideMenu: toggleSideMenu,\n expandSideMenu: expandSideMenu,\n};\n\nexport const SideMenu = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(SideMenuComponent);\n","import styles from \"./StringsSwitcher.module.scss\";\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport * as appActions from \"../app/logic/appActions\";\nimport { Button } from \"@material-ui/core\";\n\nconst StringsSwitcherComponent = ({\n isDevelopment,\n switchStrings,\n showStringsKeys,\n goToTranslations,\n}) => {\n if (!isDevelopment) {\n return null;\n }\n\n return (\n
\n switchStrings()}\n >\n Switch keys\n \n goToTranslations()}\n >\n Translations\n \n
\n );\n};\n\nStringsSwitcherComponent.propTypes = {\n appReady: PropTypes.bool,\n sideMenu: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n isDevelopment: state.appData.isDevelopment,\n});\n\nconst mapDispatchToProps = {\n switchStrings: appActions.switchStrings,\n goToTranslations: appActions.goToTranslations,\n};\n\nexport const StringsSwitcher = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(StringsSwitcherComponent);\n","import styles from \"./Layout.module.scss\";\n\nimport React, { useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { Button, Typography } from \"@material-ui/core\";\nimport { push } from \"connected-react-router\";\nimport { StringsSwitcher } from \"./StringsSwitcher\";\nimport { pageFocused } from \"../app/logic/appActions\";\nimport {\n checkIsIOS,\n addMaximumScaleToMetaViewport,\n} from \"../../utils/disableFormZoom\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { stringKeys, strings } from \"../../strings\";\n\nconst BaseLayoutComponent = ({\n appReady,\n children,\n moduleError,\n push,\n pageFocused,\n returnHome,\n}) => {\n useEffect(() => {\n window.addEventListener(\"focus\", handleWindowFocus);\n window.addEventListener(\"storage\", handleWindowStorageChange); // IE fix\n return () => {\n window.removeEventListener(\"focus\", handleWindowFocus);\n window.removeEventListener(\"storage\", handleWindowStorageChange);\n };\n });\n\n useMount(() => {\n if (checkIsIOS()) {\n addMaximumScaleToMetaViewport();\n }\n });\n\n const handleWindowFocus = () => pageFocused();\n const handleWindowStorageChange = () => {};\n\n if (!appReady) {\n return (\n
\n \n
\n );\n }\n\n return (\n
\n {moduleError && (\n
\n \n {strings(stringKeys.error.errorPage.message)}\n \n {strings(moduleError)}\n
\n \n
\n )}\n {!moduleError && children}\n \n
\n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n appReady: state.appData.appReady,\n isDevelopment: state.appData.appReady,\n moduleError: state.appData.moduleError || ownProps.authError,\n returnHome: ownProps.returnHome,\n});\n\nconst mapDispatchToProps = {\n push: push,\n pageFocused: pageFocused,\n};\n\nBaseLayoutComponent.propTypes = {\n appReady: PropTypes.bool,\n};\n\nexport const BaseLayout = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(BaseLayoutComponent);\n","export const addMaximumScaleToMetaViewport = () => {\n const el = document.querySelector(\"meta[name=viewport]\");\n\n if (el !== null) {\n let content = el.getAttribute(\"content\");\n let re = /maximum-scale=[0-9.]+/g;\n\n if (re.test(content)) {\n content = content.replace(re, \"maximum-scale=1.0\");\n } else {\n content = [content, \"maximum-scale=1.0\"].join(\", \");\n }\n\n el.setAttribute(\"content\", content);\n }\n};\n\nexport const checkIsIOS = () =>\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { Icon, Snackbar } from \"@material-ui/core\";\nimport * as appActions from \"../app/logic/appActions\";\nimport { areStringKeysDisplayed, extractString } from \"../../strings\";\n\nconst MessagePopupComponent = ({\n messageKey,\n requestErrorMessageKey,\n messageTime,\n closeMessage,\n}) => {\n const messageContent = requestErrorMessageKey\n ? extractString(requestErrorMessageKey)\n : messageKey\n ? extractString(messageKey)\n : null;\n\n return (\n close}\n open={!!messageContent}\n message={messageContent}\n autoHideDuration={areStringKeysDisplayed() ? null : messageTime || 5000}\n onClick={areStringKeysDisplayed() ? null : closeMessage}\n onClose={areStringKeysDisplayed() ? null : closeMessage}\n />\n );\n};\n\nMessagePopupComponent.propTypes = {\n appReady: PropTypes.bool,\n sideMenu: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n requestErrorMessageKey: state.requests.errorMessage,\n messageKey: state.appData.messageKey,\n messageTime: state.appData.messageTime,\n});\n\nconst mapDispatchToProps = {\n closeMessage: appActions.closeMessage,\n};\n\nexport const MessagePopup = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(MessagePopupComponent);\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_PROJECT_SETUP = action(\"OPEN_PROJECT_SETUP\");\nexport const CREATE_PROJECT_FROM_SETUP = action(\"CREATE_PROJECT_FROM_SETUP\");\nexport const OPEN_ERROR_MESSAGES = action(\"OPEN_ERROR_MESSAGES\");\n\n//Actions to update the setup form\nexport const SET_PROJECT_NAME = \"SET_PROJECT_NAME\";\nexport const SET_ORGANIZATION_ID = \"SET_ORGANIZATION_ID\";\nexport const SET_ALERT_NOT_HANDLED_NOTIFICATION_RECIPIENT_IDS =\n \"SET_ALERT_NOT_HANDLED_NOTIFICATION_RECIPIENT_IDS\";\nexport const SET_HEALTH_RISKS = \"SET_HEALTH_RISKS\";\nexport const SET_REQUIRED_HEALTH_RISKS = \"SET_REQUIRED_HEALTH_RISKS\";\nexport const SET_REGIONS = \"SET_REGIONS\";\nexport const SET_DISTRICTS = \"SET_DISTRICTS\";\nexport const SET_VILLAGES = \"SET_VILLAGES\";\nexport const SET_ZONES = \"SET_ZONES\";\nexport const SET_ALLOW_MULTIPLE_ORGANIZATIONS = \"SET_ALLOW_MULTIPLE_ORGANIZATIONS\";\n","import * as actions from \"./projectSetupConstants\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport const projectSetupInitialState = {\n projectName: \"\",\n allowMultipleOrganizations: false,\n timeZoneId: null,\n healthRisks: [],\n requiredHealthRisks: [],\n organizationId: null,\n alertNotHandledNotificationRecipientIds: [],\n formFetching: false,\n formData: null,\n regions: [],\n districts: [],\n villages: [],\n zones: [],\n};\n\nexport function projectSetupReducer(state = projectSetupInitialState, action) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.OPEN_PROJECT_SETUP.INVOKE:\n return { ...state, formFetching: true, formData: null, regions: [] };\n\n case actions.OPEN_PROJECT_SETUP.REQUEST:\n return { ...state, formFetching: true, formData: null, regions: [] };\n\n case actions.OPEN_PROJECT_SETUP.SUCCESS:\n return { ...state, formFetching: false, formData: action.data.formData };\n\n case actions.OPEN_PROJECT_SETUP.FAILURE:\n return { ...state, formFetching: false, formError: action.error };\n\n case actions.CREATE_PROJECT_FROM_SETUP.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_PROJECT_FROM_SETUP.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_PROJECT_FROM_SETUP.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.SET_PROJECT_NAME:\n return { ...state, projectName: action.projectName };\n\n case actions.SET_ORGANIZATION_ID:\n return { ...state, organizationId: action.organizationId };\n\n case actions.SET_ALLOW_MULTIPLE_ORGANIZATIONS:\n return { ...state, allowMultipleOrganizations: action.allowMultipleOrganizations };\n\n case actions.SET_ALERT_NOT_HANDLED_NOTIFICATION_RECIPIENT_IDS:\n return {\n ...state,\n alertNotHandledNotificationRecipientIds:\n action.alertNotHandledNotificationRecipientIds,\n };\n\n case actions.SET_HEALTH_RISKS:\n return { ...state, healthRisks: action.healthRisks };\n\n case actions.SET_REQUIRED_HEALTH_RISKS:\n return { ...state, requiredHealthRisks: action.requiredHealthRisks };\n\n case actions.SET_REGIONS:\n return { ...state, regions: action.regions };\n\n case actions.SET_DISTRICTS:\n return { ...state, districts: action.districts };\n\n case actions.SET_VILLAGES:\n return { ...state, villages: action.villages };\n\n case actions.SET_ZONES:\n return { ...state, zones: action.zones };\n\n default:\n return state;\n }\n}\n","import { projectSetupInitialState } from \"./components/projectSetup/logic/projectSetupReducer\";\n\nexport const initialState = {\n appData: {\n appReady: false,\n user: null,\n contentLanguages: [],\n siteMap: {\n path: null,\n parameters: {},\n generalMenu: [],\n tabMenu: [],\n projectTabMenu: [],\n sideMenu: [],\n },\n mobile: {\n sideMenuOpen: false,\n },\n isSideMenuExpanded: true,\n message: null,\n moduleError: null,\n showStringsKeys: false,\n feedback: {\n isSending: false,\n result: \"\",\n },\n direction: \"ltr\",\n },\n requests: {\n isFetching: false,\n errorMessage: null,\n pending: {},\n },\n auth: {\n loginResponse: null,\n isFetching: false,\n },\n nationalSocieties: {\n listFetching: false,\n listArchiving: {},\n listReopening: {},\n listData: [],\n formFetching: false,\n formSaving: false,\n formData: null,\n overviewData: null,\n overviewFetching: false,\n structureData: null,\n structureFetching: false,\n dashboard: {\n name: null,\n filters: null,\n isFetching: false,\n },\n },\n nationalSocietyDashboard: {\n name: null,\n summary: null,\n isFetching: true,\n isGeneratingPdf: false,\n filtersData: {\n healthRisks: [],\n organizations: [],\n },\n filters: null,\n reportsGroupedByLocationDetails: null,\n reportsGroupedByLocationDetailsFetching: false,\n },\n nationalSocietyStructure: {\n regions: [],\n isFetching: false,\n districts: [],\n villages: [],\n zones: [],\n expandedItems: [],\n },\n smsGateways: {\n listNationalSocietyId: null,\n listFetching: false,\n listRemoving: {},\n listStale: true,\n listData: [],\n formFetching: false,\n formSaving: false,\n formData: null,\n pinging: {},\n availableIoTDevices: [],\n },\n eidsrIntegration: {\n isFetching: true,\n formSaving: false,\n formError: null,\n data: {\n id: null,\n userName: null,\n apiBaseUrl: null,\n password: null,\n trackerProgramId: null,\n locationDataElementId: null,\n dateOfOnsetDataElementId: null,\n phoneNumberDataElementId: null,\n suspectedDiseaseDataElementId: null,\n eventTypeDataElementId: null,\n genderDataElementId: null,\n reportLocationDataElementId: null,\n reportGeoLocationDataElementId: null,\n reportHealthRiskDataElementId: null,\n reportSuspectedDiseaseDataElementId: null,\n reportStatusDataElementId: null,\n reportGenderDataElementId: null,\n reportAgeGroupDataElementId: null,\n reportCaseCountFemaleAgeAtLeastFiveDataElementId: null,\n reportCaseCountMaleAgeAtLeastFiveDataElementId: null,\n reportCaseCountFemaleAgeBelowFiveDataElementId: null,\n reportCaseCountMaleAgeBelowFiveDataElementId: null,\n reportDateDataElementId: null,\n reportTimeDataElementId: null,\n reportDataCollectorIdDataElementId: null\n },\n organisationUnits: [],\n organisationUnitsIsFetching: false,\n program: null,\n programIsFetching: false,\n },\n organizations: {\n listNationalSocietyId: null,\n listFetching: false,\n listRemoving: {},\n listStale: true,\n listData: [],\n formFetching: false,\n formSaving: false,\n formData: null,\n },\n projectOrganizations: {\n listProjectId: null,\n listFetching: false,\n listRemoving: {},\n listStale: true,\n listData: [],\n formFetching: false,\n formSaving: false,\n formData: null,\n },\n projectAlertRecipients: {\n listProjectId: null,\n listFetching: false,\n listRemoving: {},\n listStale: true,\n listData: [],\n formFetching: false,\n formSaving: false,\n formData: null,\n recipient: null,\n countryCode: null,\n },\n projectAlertNotHandledRecipients: {\n projectId: null,\n listFetching: false,\n listStale: true,\n listData: [],\n users: [],\n formDataFetching: false,\n saving: false,\n },\n projects: {\n listFetching: false,\n isClosing: {},\n isClosed: {},\n listStale: true,\n listData: [],\n formFetching: false,\n formHealthRisks: [],\n formTimeZones: [],\n formSaving: false,\n formData: null,\n overviewData: null,\n dashboard: {\n name: null,\n projectSummary: null,\n isFetching: false,\n },\n },\n projectDashboard: {},\n projectDashboard: {\n name: null,\n projectSummary: null,\n isFetching: true,\n isGeneratingPdf: false,\n filtersData: {\n organizations: [],\n healthRisks: [],\n },\n filters: null,\n reportsGroupedByLocationDetails: null,\n reportsGroupedByLocationDetailsFetching: false,\n dataCollectionPointsReportData: false,\n },\n globalCoordinators: {\n listFetching: false,\n listRemoving: {},\n listData: [],\n formFetching: false,\n formSaving: false,\n formData: null,\n },\n healthRisks: {\n listFetching: false,\n listRemoving: {},\n listData: [],\n formFetching: false,\n formSaving: false,\n formError: null,\n formData: null,\n },\n suspectedDiseases: {\n listFetching: false,\n listRemoving: {},\n listData: [],\n formFetching: false,\n formSaving: false,\n formError: null,\n formData: null,\n },\n nationalSocietyUsers: {\n listFetching: false,\n listRemoving: {},\n listStale: true,\n listData: [],\n listNationalSocietyId: null,\n settingAsHead: {},\n formFetching: false,\n formSaving: false,\n formData: null,\n formError: null,\n addExistingFormData: null,\n },\n dataCollectors: {\n listFetching: false,\n listRemoving: {},\n listStale: true,\n filtersStale: true,\n listData: {\n data: [],\n page: null,\n rowsPerPage: null,\n totalRows: null,\n },\n listSelectedAll: false,\n formRegions: [],\n formSupervisors: [],\n formFetching: false,\n formSaving: false,\n formData: null,\n countryCode: null,\n mapOverviewDataCollectorLocations: [],\n mapOverviewCenterLocation: null,\n mapOverviewFilters: null,\n mapOverviewDetails: [],\n mapOverviewDetailsFetching: false,\n updatingDataCollector: {},\n replacingSupervisor: false,\n performanceListData: {\n data: [],\n page: null,\n rowsPerPage: null,\n totalRows: null,\n },\n completeness: null,\n performanceListFetching: false,\n performanceListFilters: {\n projectId: null,\n locations: null,\n name: \"\",\n supervisorId: null,\n trainingStatus: \"Trained\",\n pageNumber: 1,\n },\n filtersData: {\n supervisors: [],\n nationalSocietyId: null,\n },\n filters: {\n supervisorId: null,\n locations: null,\n sex: null,\n trainingStatus: \"All\",\n deployedMode: \"Deployed\",\n name: \"\",\n pageNumber: 1,\n },\n },\n agreements: {\n pendingSocieties: [],\n staleSocieties: [],\n agreementDocuments: [],\n },\n reports: {\n listFetching: false,\n listRemoving: {},\n correctReportsListStale: true,\n incorrectReportsListStale: true,\n listProjectId: null,\n markingAsError: false,\n filtersData: {\n healthRisks: [],\n },\n filters: null,\n sorting: null,\n editReport: {\n formHealthRisks: [],\n formDataCollectors: [],\n },\n sendReport: {\n dataCollectors: [],\n },\n correctReportsPaginatedListData: null,\n correctReportsFilters: null,\n correctReportsSorting: null,\n incorrectReportsPaginatedListData: null,\n incorrectReportsFilters: null,\n incorrectReportsSorting: null,\n countryCode: null,\n },\n nationalSocietyReports: {\n listFetching: false,\n listRemoving: {},\n correctReportsListStale: true,\n incorrectReportsListStale: true,\n listNationalSocietyId: null,\n paginatedListData: null,\n filtersData: {\n healthRisks: [],\n },\n correctReportsPaginatedListData: null,\n correctReportsFilters: null,\n correctReportsSorting: null,\n incorrectReportsPaginatedListData: null,\n incorrectReportsFilters: null,\n incorrectReportsSorting: null,\n },\n alerts: {\n listFetching: false,\n listRemoving: {},\n listProjectId: null,\n listData: null,\n formData: null,\n isFetchingRecipients: false,\n isPendingAlertState: false,\n notificationPhoneNumbers: [],\n notificationEmails: [],\n filters: null,\n filtersData: {\n healthRisks: null,\n locations: null,\n },\n isLoadingValidateEidsr: false,\n },\n alertEvents: {\n eventTypes: [],\n eventSubtypes: [],\n logFetching: false,\n logRemoving: {},\n listStale: true,\n logItems: null,\n formFetching: false,\n formSaving: false,\n formError: null,\n },\n translations: {\n listFetching: false,\n listLanguages: [],\n listTranslations: [],\n emailLanguages: [],\n emailTranslations: [],\n smsLanguages: [],\n smsTranslations: [],\n },\n tracking: {\n appInsights: null,\n },\n projectSetup: {\n ...projectSetupInitialState,\n },\n};\n","import { initialState } from \"../../../initialState\";\nimport * as actions from \"./appConstans\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function appReducer(state = initialState.appData, action) {\n switch (action.type) {\n case LOCATION_CHANGE:\n return {\n ...state,\n moduleError: null,\n messageKey: null,\n messageTime: null,\n mobile: {\n ...state.mobile,\n sideMenuOpen: false,\n },\n };\n\n case actions.SWITCH_STRINGS:\n return {\n ...state,\n showStringsKeys: action.status,\n };\n\n case actions.SET_APP_READY:\n return {\n ...state,\n appReady: action.status,\n };\n\n case actions.ROUTE_CHANGED:\n return {\n ...state,\n route: {\n url: action.url,\n path: action.path,\n params: action.params,\n },\n };\n\n case actions.INIT_APPLICATION.SUCCESS:\n return {\n ...state,\n appReady: true,\n };\n\n case actions.GET_USER.SUCCESS:\n return {\n ...state,\n user: action.user\n ? {\n id: action.user.id,\n name: action.user.name,\n email: action.user.email,\n roles: action.user.roles,\n languageCode: action.user.languageCode,\n homePage: action.user.homePage,\n }\n : null,\n direction:\n action.user && action.user.languageCode === \"ar\"\n ? \"rtl\"\n : state.direction,\n };\n\n case actions.GET_APP_DATA.SUCCESS:\n return {\n ...state,\n contentLanguages: action.contentLanguages,\n authCookieExpiration: action.authCookieExpiration,\n countries: action.countries,\n isDevelopment: action.isDevelopment,\n isDemo: action.isDemo,\n applicationInsightsConnectionString:\n action.applicationInsightsConnectionString,\n };\n\n case actions.OPEN_MODULE.INVOKE:\n return {\n ...state,\n siteMap: {\n path: action.path,\n parameters: {},\n generalMenu: [],\n sideMenu: [],\n tabMenu: [],\n projectTabMenu: [],\n title: null,\n subTitle: null,\n },\n };\n\n case actions.OPEN_MODULE.SUCCESS:\n return {\n ...state,\n siteMap: {\n path: action.path,\n parameters: action.parameters,\n generalMenu: action.generalMenu,\n sideMenu: action.sideMenu,\n tabMenu: action.tabMenu,\n projectTabMenu: action.projectTabMenu,\n title: action.title,\n },\n };\n\n case actions.TOGGLE_SIDE_MENU:\n return {\n ...state,\n mobile: {\n ...state.mobile,\n sideMenuOpen: action.value,\n },\n };\n\n case actions.EXPAND_SIDE_MENU:\n return {\n ...state,\n isSideMenuExpanded: action.value,\n };\n\n case actions.OPEN_MODULE.FAILURE:\n return {\n ...state,\n moduleError: action.message,\n };\n\n case actions.SHOW_MESSAGE.INVOKE:\n return {\n ...state,\n messageKey: action.messageKey,\n messageTime: action.time,\n };\n\n case actions.CLOSE_MESSAGE.INVOKE:\n return {\n ...state,\n messageKey: null,\n messageTime: null,\n };\n\n case actions.SEND_FEEDBACK.REQUEST:\n return {\n ...state,\n feedback: {\n isSending: true,\n result: \"\",\n },\n };\n\n case actions.SEND_FEEDBACK.SUCCESS:\n return {\n ...state,\n feedback: {\n isSending: false,\n result: \"ok\",\n },\n };\n\n case actions.SEND_FEEDBACK.FAILURE:\n return {\n ...state,\n feedback: {\n isSending: false,\n result: \"error\",\n },\n };\n\n default:\n return state;\n }\n}\n","import * as actions from \"./authConstants\";\nimport { initialState } from \"../initialState\";\n\nexport function authReducer(state = initialState.auth, action) {\n switch (action.type) {\n case actions.LOGIN.REQUEST:\n return { ...state, isFetching: true };\n\n case actions.LOGIN.FAILURE:\n return { ...state, isFetching: false, loginResponse: action.message };\n\n case actions.VERIFY_EMAIL.FAILURE:\n return { ...state, verifyEmailErrorMessage: action.message };\n\n case actions.RESET_PASSWORD.REQUEST:\n return { ...state, resetPasswordErrorMessage: null };\n\n case actions.RESET_PASSWORD.FAILURE:\n return { ...state, resetPasswordErrorMessage: action.message };\n\n case actions.RESET_PASSWORD_CALLBACK.FAILURE:\n return { ...state, resetPasswordCallbackErrorMessage: action.message };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const GET_NATIONAL_SOCIETIES = action(\"GET_NATIONAL_SOCIETIES\");\nexport const ADD_NATIONAL_SOCIETY = action(\"ADD_NATIONAL_SOCIETY\");\nexport const CREATE_NATIONAL_SOCIETY = action(\"CREATE_NATIONAL_SOCIETY\");\nexport const EDIT_NATIONAL_SOCIETY = action(\"EDIT_NATIONAL_SOCIETY\");\nexport const OPEN_EDITION_NATIONAL_SOCIETY = action(\n \"OPEN_EDITION_NATIONAL_SOCIETY\",\n);\nexport const OPEN_NATIONAL_SOCIETY_OVERVIEW = action(\n \"OPEN_NATIONAL_SOCIETY_OVERVIEW\",\n);\nexport const ARCHIVE_NATIONAL_SOCIETY = action(\"ARCHIVE_NATIONAL_SOCIETY\");\nexport const REOPEN_NATIONAL_SOCIETY = action(\"REOPEN_NATIONAL_SOCIETY\");\n\nexport const entityTypes = {\n nationalSociety: (id) => `nationalSociety:${id}`,\n project: (id) => `project:${id}`,\n};\n\nexport const EpiWeekStandards = [\"Monday\", \"Sunday\"];\n","export const removeProperty = (obj, key) => {\n const { [key]: _, ...rest } = obj;\n return rest;\n};\n\nexport const removeFromArray = (array, predicate) =>\n array.filter((item) => !predicate(item));\n\nexport const assignInArray = (array, predicate, changes) =>\n array.map((item) => (predicate(item) ? changes(item) : item));\n\nexport const setProperty = (obj, key, value) =>\n value === undefined\n ? removeProperty(obj, key)\n : {\n ...obj,\n [key]: value,\n };\n","import * as actions from \"./nationalSocietiesConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function nationalSocietiesReducer(\n state = initialState.nationalSocieties,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.GET_NATIONAL_SOCIETIES.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_NATIONAL_SOCIETIES.SUCCESS:\n return { ...state, listFetching: false, listData: action.list };\n\n case actions.GET_NATIONAL_SOCIETIES.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_EDITION_NATIONAL_SOCIETY.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_EDITION_NATIONAL_SOCIETY.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_EDITION_NATIONAL_SOCIETY.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_EDITION_NATIONAL_SOCIETY.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.OPEN_NATIONAL_SOCIETY_OVERVIEW.REQUEST:\n return { ...state, overviewFetching: true, overviewData: null };\n\n case actions.OPEN_NATIONAL_SOCIETY_OVERVIEW.SUCCESS:\n return { ...state, overviewFetching: false, overviewData: action.data };\n\n case actions.OPEN_NATIONAL_SOCIETY_OVERVIEW.FAILURE:\n return { ...state, overviewFetching: false };\n\n case actions.CREATE_NATIONAL_SOCIETY.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_NATIONAL_SOCIETY.SUCCESS:\n return { ...state, formSaving: false, listData: [] };\n\n case actions.CREATE_NATIONAL_SOCIETY.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_NATIONAL_SOCIETY.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_NATIONAL_SOCIETY.SUCCESS:\n return { ...state, formSaving: false, listData: [] };\n\n case actions.EDIT_NATIONAL_SOCIETY.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.ARCHIVE_NATIONAL_SOCIETY.REQUEST:\n return {\n ...state,\n listArchiving: setProperty(state.listArchiving, action.id, true),\n };\n case actions.ARCHIVE_NATIONAL_SOCIETY.SUCCESS:\n case actions.ARCHIVE_NATIONAL_SOCIETY.FAILURE:\n return {\n ...state,\n listArchiving: setProperty(state.listArchiving, action.id, undefined),\n };\n\n case actions.REOPEN_NATIONAL_SOCIETY.REQUEST:\n return {\n ...state,\n listReopening: setProperty(state.listReopening, action.id, true),\n };\n case actions.REOPEN_NATIONAL_SOCIETY.SUCCESS:\n case actions.REOPEN_NATIONAL_SOCIETY.FAILURE:\n return {\n ...state,\n listReopening: setProperty(state.listReopening, action.id, undefined),\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_SMS_GATEWAYS_LIST = action(\"OPEN_SMS_GATEWAYS_LIST\");\nexport const GET_SMS_GATEWAYS = action(\"GET_SMS_GATEWAYS\");\nexport const OPEN_SMS_GATEWAY_CREATION = action(\"OPEN_SMS_GATEWAY_CREATION\");\nexport const CREATE_SMS_GATEWAY = action(\"CREATE_SMS_GATEWAY\");\nexport const OPEN_SMS_GATEWAY_EDITION = action(\"OPEN_SMS_GATEWAY_EDITION\");\nexport const EDIT_SMS_GATEWAY = action(\"EDIT_SMS_GATEWAY\");\nexport const REMOVE_SMS_GATEWAY = action(\"REMOVE_SMS_GATEWAY\");\nexport const PING_IOT_DEVICE = action(\"PING_IOT_DEVICE\");\nexport const LIST_AVAILABLE_IOT_DEVICES = action(\"LIST_AVAILABLE_IOT_DEVICES\");\n","import * as actions from \"./smsGatewaysConstants\";\nimport * as nationalSocietyActions from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function smsGatewaysReducer(state = initialState.smsGateways, action) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.OPEN_SMS_GATEWAYS_LIST.INVOKE:\n return {\n ...state,\n listStale:\n state.listStale ||\n action.nationalSocietyId !== state.listNationalSocietyId,\n };\n\n case actions.OPEN_SMS_GATEWAYS_LIST.SUCCESS:\n return { ...state, listNationalSocietyId: action.nationalSocietyId };\n\n case actions.GET_SMS_GATEWAYS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_SMS_GATEWAYS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listData: action.list,\n listStale: false,\n pinging: {},\n availableIoTDevices: [],\n };\n\n case actions.GET_SMS_GATEWAYS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_SMS_GATEWAY_EDITION.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_SMS_GATEWAY_EDITION.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_SMS_GATEWAY_EDITION.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_SMS_GATEWAY_EDITION.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.CREATE_SMS_GATEWAY.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_SMS_GATEWAY.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_SMS_GATEWAY.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_SMS_GATEWAY.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_SMS_GATEWAY.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.EDIT_SMS_GATEWAY.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.REMOVE_SMS_GATEWAY.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_SMS_GATEWAY.SUCCESS:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n listStale: true,\n };\n\n case actions.REMOVE_SMS_GATEWAY.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n case nationalSocietyActions.ARCHIVE_NATIONAL_SOCIETY.SUCCESS:\n return { ...state, listStale: true };\n\n case actions.PING_IOT_DEVICE.REQUEST:\n return {\n ...state,\n pinging: setProperty(state.pinging, action.iotDeviceId, {\n pending: true,\n result: null,\n }),\n };\n\n case actions.PING_IOT_DEVICE.SUCCESS:\n return {\n ...state,\n pinging: setProperty(state.pinging, action.iotDeviceId, {\n pending: false,\n result: action.message,\n }),\n };\n\n case actions.PING_IOT_DEVICE.FAILURE:\n return {\n ...state,\n pinging: setProperty(state.pinging, action.iotDeviceId, {\n pending: false,\n result: action.message,\n }),\n };\n\n case actions.LIST_AVAILABLE_IOT_DEVICES.SUCCESS:\n return { ...state, availableIoTDevices: action.list };\n\n case actions.LIST_AVAILABLE_IOT_DEVICES.FAILURE:\n return { ...state, availableIoTDevices: [], formError: action.message };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_PROJECTS_LIST = action(\"OPEN_PROJECTS_LIST\");\nexport const GET_PROJECTS = action(\"GET_PROJECTS\");\nexport const OPEN_PROJECT_CREATION = action(\"OPEN_PROJECT_CREATION\");\nexport const CREATE_PROJECT = action(\"CREATE_PROJECT\");\nexport const OPEN_PROJECT_EDITION = action(\"OPEN_PROJECT_EDITION\");\nexport const EDIT_PROJECT = action(\"EDIT_PROJECT\");\nexport const EDIT_PROJECT_HEALTH_RISKS = action(\"EDIT_PROJECT_HEALTH_RISKS\");\nexport const OPEN_PROJECT_OVERVIEW = action(\"OPEN_PROJECT_OVERVIEW\");\nexport const OPEN_PROJECT_HEALTH_RISKS_OVERVIEW = action(\n \"OPEN_PROJECT_HEALTH_RISKS_OVERVIEW\",\n);\nexport const CLOSE_PROJECT = action(\"CLOSE_PROJECT\");\nexport const OPEN_ERROR_MESSAGES = \"OPEN_ERROR_MESSAGES\";\nexport const OPEN_PROJECT_HEALTHRISKS_EDITION = action(\n \"OPEN_PROJECT_HEALTHRISKS_EDITION\",\n);\n","import * as actions from \"./projectsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function projectsReducer(state = initialState.projects, action) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.GET_PROJECTS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_PROJECTS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listData: action.list,\n listStale: true,\n };\n\n case actions.GET_PROJECTS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_PROJECT_CREATION.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_PROJECT_CREATION.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_PROJECT_CREATION.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_PROJECT_CREATION.FAILURE:\n return { ...state, formFetching: false, formError: action.error };\n\n case actions.OPEN_PROJECT_EDITION.INVOKE:\n return {\n ...state,\n formFetching: true,\n formData: null,\n formHealthRisks: [],\n formTimeZones: [],\n };\n\n case actions.OPEN_PROJECT_EDITION.REQUEST:\n return {\n ...state,\n formFetching: true,\n formData: null,\n formHealthRisks: [],\n formTimeZones: [],\n };\n\n case actions.OPEN_PROJECT_EDITION.SUCCESS:\n return {\n ...state,\n formFetching: false,\n formData: action.data,\n formHealthRisks: action.healthRisks,\n formTimeZones: action.timeZones,\n };\n\n case actions.OPEN_PROJECT_EDITION.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.OPEN_PROJECT_HEALTHRISKS_EDITION.INVOKE:\n return {\n ...state,\n formFetching: true,\n formData: null,\n formHealthRisks: [],\n formTimeZones: [],\n };\n\n case actions.OPEN_PROJECT_HEALTHRISKS_EDITION.REQUEST:\n return {\n ...state,\n formFetching: true,\n formData: null,\n formHealthRisks: [],\n formTimeZones: [],\n };\n\n case actions.OPEN_PROJECT_HEALTHRISKS_EDITION.SUCCESS:\n return {\n ...state,\n formFetching: false,\n formData: action.data,\n formHealthRisks: action.healthRisks,\n formTimeZones: action.timeZones,\n };\n\n case actions.OPEN_PROJECT_HEALTHRISKS_EDITION.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.OPEN_PROJECT_OVERVIEW.INVOKE:\n return {\n ...state,\n formFetching: true,\n overviewData: null,\n overviewHealthRisks: [],\n overviewTimeZones: [],\n };\n\n case actions.OPEN_PROJECT_OVERVIEW.REQUEST:\n return {\n ...state,\n formFetching: true,\n overviewData: null,\n overviewHealthRisks: [],\n overviewTimeZones: [],\n };\n\n case actions.OPEN_PROJECT_OVERVIEW.SUCCESS:\n return {\n ...state,\n formFetching: false,\n overviewData: action.data,\n overviewHealthRisks: action.healthRisks,\n overviewTimeZones: action.timeZones,\n };\n\n case actions.OPEN_PROJECT_OVERVIEW.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.OPEN_PROJECT_HEALTH_RISKS_OVERVIEW.INVOKE:\n return {\n ...state,\n formFetching: true,\n overviewData: null,\n overviewHealthRisks: [],\n overviewTimeZones: [],\n };\n\n case actions.OPEN_PROJECT_HEALTH_RISKS_OVERVIEW.REQUEST:\n return {\n ...state,\n formFetching: true,\n overviewData: null,\n overviewHealthRisks: [],\n overviewTimeZones: [],\n };\n\n case actions.OPEN_PROJECT_HEALTH_RISKS_OVERVIEW.SUCCESS:\n return {\n ...state,\n formFetching: false,\n overviewData: action.data,\n overviewHealthRisks: action.healthRisks,\n overviewTimeZones: action.timeZones,\n };\n\n case actions.OPEN_PROJECT_HEALTH_RISKS_OVERVIEW.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.CREATE_PROJECT.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_PROJECT.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_PROJECT.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_PROJECT.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_PROJECT.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.EDIT_PROJECT.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_PROJECT_HEALTH_RISKS.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_PROJECT_HEALTH_RISKS.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.EDIT_PROJECT_HEALTH_RISKS.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.CLOSE_PROJECT.REQUEST:\n return {\n ...state,\n isClosing: setProperty(state.isClosing, action.id, true),\n };\n\n case actions.CLOSE_PROJECT.SUCCESS:\n return {\n ...state,\n isClosing: setProperty(state.isClosing, action.id, undefined),\n listStale: true,\n };\n\n case actions.CLOSE_PROJECT.FAILURE:\n return {\n ...state,\n isClosing: setProperty(state.isClosing, action.id, undefined),\n };\n\n default:\n return state;\n }\n}\n","import { initialState } from \"../../../initialState\";\nimport { CLOSE_MESSAGE } from \"./appConstans\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nconst getActionType = (type) => {\n const parts = type.split(\"_\");\n return parts[parts.length - 1];\n};\n\nconst getActionName = (type) => {\n const parts = type.split(\"_\");\n return parts.slice(0, parts.length - 1).join(\"_\");\n};\n\nexport function requestReducer(state = initialState.requests, action) {\n if (action.type === CLOSE_MESSAGE.INVOKE) {\n return {\n ...state,\n errorMessage: null,\n };\n }\n\n if (action.type === LOCATION_CHANGE) {\n return {\n ...state,\n errorMessage: null,\n };\n }\n\n const actionType = getActionType(action.type);\n const actionName = getActionName(action.type);\n\n switch (actionType) {\n case \"REQUEST\":\n return {\n ...state,\n isFetching: true,\n pending: {\n ...state.pending,\n ...(action.id ? { [actionName + \"_\" + action.id]: true } : {}),\n [actionName]: true,\n },\n };\n\n case \"SUCCESS\":\n return {\n ...state,\n isFetching: false,\n pending: {\n ...state.pending,\n ...(action.id ? { [actionName + \"_\" + action.id]: false } : {}),\n [actionName]: false,\n },\n };\n case \"FAILURE\":\n return {\n ...state,\n isFetching: false,\n errorMessage: action.suppressPopup\n ? null\n : action.message || (action.error && action.error.message),\n pending: {\n ...state.pending,\n ...(action.id ? { [actionName + \"_\" + action.id]: false } : {}),\n [actionName]: false,\n },\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const GET_GLOBAL_COORDINATORS = action(\"GET_GLOBAL_COORDINATORS\");\nexport const ADD_GLOBAL_COORDINATOR = action(\"ADD_GLOBAL_COORDINATOR\");\nexport const CREATE_GLOBAL_COORDINATOR = action(\"CREATE_GLOBAL_COORDINATOR\");\nexport const EDIT_GLOBAL_COORDINATOR = action(\"EDIT_GLOBAL_COORDINATOR\");\nexport const OPEN_EDITION_GLOBAL_COORDINATOR = action(\n \"OPEN_EDITION_GLOBAL_COORDINATOR\",\n);\nexport const REMOVE_GLOBAL_COORDINATOR = action(\"REMOVE_GLOBAL_COORDINATOR\");\n","import * as actions from \"./globalCoordinatorsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function globalCoordinatorsReducer(\n state = initialState.globalCoordinators,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.GET_GLOBAL_COORDINATORS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_GLOBAL_COORDINATORS.SUCCESS:\n return { ...state, listFetching: false, listData: action.list };\n\n case actions.GET_GLOBAL_COORDINATORS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_EDITION_GLOBAL_COORDINATOR.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_EDITION_GLOBAL_COORDINATOR.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_EDITION_GLOBAL_COORDINATOR.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_EDITION_GLOBAL_COORDINATOR.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.CREATE_GLOBAL_COORDINATOR.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_GLOBAL_COORDINATOR.SUCCESS:\n return { ...state, formSaving: false, listData: [] };\n\n case actions.CREATE_GLOBAL_COORDINATOR.FAILURE:\n return { ...state, formSaving: false, formError: action.message };\n\n case actions.EDIT_GLOBAL_COORDINATOR.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_GLOBAL_COORDINATOR.SUCCESS:\n return { ...state, formSaving: false, listData: [] };\n\n case actions.EDIT_GLOBAL_COORDINATOR.FAILURE:\n return { ...state, formSaving: false };\n\n case actions.REMOVE_GLOBAL_COORDINATOR.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_GLOBAL_COORDINATOR.SUCCESS:\n case actions.REMOVE_GLOBAL_COORDINATOR.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const GET_HEALTH_RISKS = action(\"GET_HEALTH_RISKS\");\nexport const ADD_HEALTH_RISK = action(\"ADD_HEALTH_RISK\");\nexport const OPEN_CREATION_HEALTH_RISK = action(\"OPEN_CREATION_HEALTH_RISK\");\nexport const CREATE_HEALTH_RISK = action(\"CREATE_HEALTH_RISK\");\nexport const EDIT_HEALTH_RISK = action(\"EDIT_HEALTH_RISK\");\nexport const OPEN_EDITION_HEALTH_RISK = action(\"OPEN_EDITION_HEALTH_RISK\");\nexport const REMOVE_HEALTH_RISK = action(\"REMOVE_HEALTH_RISK\");\n\nexport const healthRiskTypes = [\n \"Human\",\n \"NonHuman\",\n \"UnusualEvent\",\n \"Activity\",\n];\n","import * as actions from \"./healthRisksConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function healthRisksReducer(state = initialState.healthRisks, action) {\n switch (action.type) {\n case LOCATION_CHANGE:\n return { ...state, formData: null, formError: null };\n\n case actions.GET_HEALTH_RISKS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_HEALTH_RISKS.SUCCESS:\n return { ...state, listFetching: false, listData: action.list };\n\n case actions.GET_HEALTH_RISKS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_EDITION_HEALTH_RISK.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_EDITION_HEALTH_RISK.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_EDITION_HEALTH_RISK.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_EDITION_HEALTH_RISK.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.OPEN_CREATION_HEALTH_RISK.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_CREATION_HEALTH_RISK.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_CREATION_HEALTH_RISK.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_CREATION_HEALTH_RISK.FAILURE:\n return { ...state, formFetching: false, formError: action.error };\n\n case actions.CREATE_HEALTH_RISK.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_HEALTH_RISK.SUCCESS:\n return { ...state, formSaving: false, listData: [] };\n\n case actions.CREATE_HEALTH_RISK.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_HEALTH_RISK.REQUEST:\n return { ...state, formSaving: true, formError: null };\n\n case actions.EDIT_HEALTH_RISK.SUCCESS:\n return { ...state, formSaving: false, listData: [] };\n\n case actions.EDIT_HEALTH_RISK.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.REMOVE_HEALTH_RISK.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_HEALTH_RISK.SUCCESS:\n case actions.REMOVE_HEALTH_RISK.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const GET_SUSPECTED_DISEASE = action(\"GET_SUSPECTED_DISEASE\");\nexport const ADD_SUSPECTED_DISEASE = action(\"ADD_SUSPECTED_DISEASE\");\nexport const CREATE_SUSPECTED_DISEASE = action(\"CREATE_SUSPECTED_DISEASE\");\nexport const EDIT_SUSPECTED_DISEASE = action(\"EDIT_SUSPECTED_DISEASE\");\nexport const OPEN_EDITION_SUSPECTED_DISEASE = action(\n \"OPEN_EDITION_SUSPECTED_DISEASE\",\n);\nexport const REMOVE_SUSPECTED_DISEASE = action(\"REMOVE_SUSPECTED_DISEASE\");\n","import * as actions from \"./suspectedDiseaseConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function suspectedDiseaseReducer(\n state = initialState.suspectedDiseases,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE:\n return { ...state, formData: null, formError: null };\n\n case actions.GET_SUSPECTED_DISEASE.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_SUSPECTED_DISEASE.SUCCESS:\n return { ...state, listFetching: false, listData: action.list };\n\n case actions.GET_SUSPECTED_DISEASE.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_EDITION_SUSPECTED_DISEASE.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_EDITION_SUSPECTED_DISEASE.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_EDITION_SUSPECTED_DISEASE.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_EDITION_SUSPECTED_DISEASE.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.CREATE_SUSPECTED_DISEASE.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_SUSPECTED_DISEASE.SUCCESS:\n return { ...state, formSaving: false, listData: [] };\n\n case actions.CREATE_SUSPECTED_DISEASE.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_SUSPECTED_DISEASE.REQUEST:\n return { ...state, formSaving: true, formError: null };\n\n case actions.EDIT_SUSPECTED_DISEASE.SUCCESS:\n return { ...state, formSaving: false, listData: [] };\n\n case actions.EDIT_SUSPECTED_DISEASE.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.REMOVE_SUSPECTED_DISEASE.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_SUSPECTED_DISEASE.SUCCESS:\n case actions.REMOVE_SUSPECTED_DISEASE.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\nimport * as roles from \"../../../authentication/roles\";\n\nexport const OPEN_NATIONAL_SOCIETY_USERS_LIST = action(\n \"OPEN_NATIONAL_SOCIETY_USERS_LIST\",\n);\nexport const GET_NATIONAL_SOCIETY_USERS = action(\"GET_NATIONAL_SOCIETY_USERS\");\nexport const OPEN_NATIONAL_SOCIETY_USER_CREATION = action(\n \"OPEN_NATIONAL_SOCIETY_USER_CREATION\",\n);\nexport const OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING = action(\n \"OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING\",\n);\nexport const CREATE_NATIONAL_SOCIETY_USER = action(\n \"CREATE_NATIONAL_SOCIETY_USER\",\n);\nexport const ADD_EXISTING_NATIONAL_SOCIETY_USER = action(\n \"ADD_EXISTING_NATIONAL_SOCIETY_USER\",\n);\nexport const OPEN_NATIONAL_SOCIETY_USER_EDITION = action(\n \"OPEN_NATIONAL_SOCIETY_USER_EDITION\",\n);\nexport const EDIT_NATIONAL_SOCIETY_USER = action(\"EDIT_NATIONAL_SOCIETY_USER\");\nexport const REMOVE_NATIONAL_SOCIETY_USER = action(\n \"REMOVE_NATIONAL_SOCIETY_USER\",\n);\nexport const SET_AS_HEAD_MANAGER = action(\"SET_AS_HEAD_MANAGER\");\n\nexport const userRoles = [\n roles.Manager,\n roles.TechnicalAdvisor,\n roles.DataConsumer,\n roles.Supervisor,\n roles.HeadSupervisor,\n];\nexport const globalCoordinatorUserRoles = [roles.Manager, roles.Coordinator];\nexport const coordinatorUserRoles = [roles.Manager, roles.Coordinator];\nexport const headManagerRoles = [\n roles.Manager,\n roles.TechnicalAdvisor,\n roles.DataConsumer,\n roles.Supervisor,\n roles.HeadSupervisor,\n roles.Coordinator,\n];\nexport const sexValues = [\"Male\", \"Female\", \"Other\"];\n","import * as actions from \"./nationalSocietyUsersConstants\";\nimport * as nationalSocietyActions from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function nationalSocietyUsersReducer(\n state = initialState.nationalSocietyUsers,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.GET_NATIONAL_SOCIETY_USERS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_NATIONAL_SOCIETY_USERS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listData: action.list,\n listStale: false,\n listNationalSocietyId: action.nationalSocietyId,\n };\n\n case actions.GET_NATIONAL_SOCIETY_USERS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_NATIONAL_SOCIETY_USER_CREATION.REQUEST:\n return { ...state, formFetching: true, formProjects: [] };\n\n case actions.OPEN_NATIONAL_SOCIETY_USER_CREATION.SUCCESS:\n return { ...state, formFetching: false, formAdditionalData: action.data };\n\n case actions.OPEN_NATIONAL_SOCIETY_USER_CREATION.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.OPEN_NATIONAL_SOCIETY_USER_EDITION.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_NATIONAL_SOCIETY_USER_EDITION.SUCCESS:\n return {\n ...state,\n formFetching: false,\n formData: action.data,\n formOrganizations: action.organizations,\n formModems: action.modems,\n countryCode: action.countryCode,\n };\n\n case actions.OPEN_NATIONAL_SOCIETY_USER_EDITION.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING.SUCCESS:\n return { ...state, addExistingFormData: action.formData };\n\n case actions.CREATE_NATIONAL_SOCIETY_USER.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_NATIONAL_SOCIETY_USER.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_NATIONAL_SOCIETY_USER.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.ADD_EXISTING_NATIONAL_SOCIETY_USER.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.ADD_EXISTING_NATIONAL_SOCIETY_USER.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.ADD_EXISTING_NATIONAL_SOCIETY_USER.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_NATIONAL_SOCIETY_USER.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_NATIONAL_SOCIETY_USER.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.EDIT_NATIONAL_SOCIETY_USER.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.REMOVE_NATIONAL_SOCIETY_USER.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_NATIONAL_SOCIETY_USER.SUCCESS:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n listData: state.listData.filter((d) => d.id !== action.id),\n };\n\n case actions.REMOVE_NATIONAL_SOCIETY_USER.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n case actions.SET_AS_HEAD_MANAGER.REQUEST:\n return {\n ...state,\n settingAsHead: setProperty(state.settingAsHead, action.id, true),\n };\n\n case actions.SET_AS_HEAD_MANAGER.SUCCESS:\n return {\n ...state,\n listStale: true,\n settingAsHead: setProperty(state.settingAsHead, action.id, undefined),\n };\n\n case actions.SET_AS_HEAD_MANAGER.FAILURE:\n return {\n ...state,\n settingAsHead: setProperty(state.settingAsHead, action.id, undefined),\n message: action.error && action.error.message,\n };\n\n case nationalSocietyActions.ARCHIVE_NATIONAL_SOCIETY.SUCCESS:\n return { ...state, listStale: true };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_DATA_COLLECTORS_LIST = action(\"OPEN_DATA_COLLECTORS_LIST\");\nexport const GET_DATA_COLLECTORS = action(\"GET_DATA_COLLECTORS\");\nexport const OPEN_DATA_COLLECTOR_CREATION = action(\n \"OPEN_DATA_COLLECTOR_CREATION\",\n);\nexport const CREATE_DATA_COLLECTOR = action(\"CREATE_DATA_COLLECTOR\");\nexport const OPEN_DATA_COLLECTOR_EDITION = action(\n \"OPEN_DATA_COLLECTOR_EDITION\",\n);\nexport const EDIT_DATA_COLLECTOR = action(\"EDIT_DATA_COLLECTOR\");\nexport const REMOVE_DATA_COLLECTOR = action(\"REMOVE_DATA_COLLECTOR\");\nexport const OPEN_DATA_COLLECTORS_MAP_OVERVIEW = action(\n \"OPEN_DATA_COLLECTORS_MAP_OVERVIEW\",\n);\nexport const GET_DATA_COLLECTORS_MAP_OVERVIEW = action(\n \"GET_DATA_COLLECTORS_MAP_OVERVIEW\",\n);\nexport const GET_DATA_COLLECTORS_MAP_DETAILS = action(\n \"GET_DATA_COLLECTORS_MAP_DETAILS\",\n);\nexport const SET_DATA_COLLECTORS_TRAINING_STATE = action(\n \"SET_DATA_COLLECTORS_TRAINING_STATE\",\n);\nexport const OPEN_DATA_COLLECTORS_PERFORMANCE_LIST = action(\n \"OPEN_DATA_COLLECTORS_PERFORMANCE_LIST\",\n);\nexport const GET_DATA_COLLECTORS_PERFORMANCE = action(\n \"GET_DATA_COLLECTORS_PERFORMANCE\",\n);\nexport const EXPORT_DATA_COLLECTORS_TO_EXCEL = action(\n \"EXPORT_DATA_COLLECTORS_TO_EXCEL\",\n);\nexport const EXPORT_DATA_COLLECTORS_TO_CSV = action(\n \"EXPORT_DATA_COLLECTORS_TO_CSV\",\n);\nexport const REPLACE_SUPERVISOR = action(\"REPLACE_SUPERVISOR\");\nexport const SET_DATA_COLLECTORS_DEPLOYED_STATE = action(\n \"SET_DATA_COLLECTORS_DEPLOYED_STATE\",\n);\nexport const EXPORT_DATA_COLLECTOR_PERFORMANCE = action(\n \"EXPORT_DATA_COLLECTOR_PERFORMANCE\",\n);\nexport const SELECT_DATA_COLLECTOR = \"SELECT_DATA_COLLECTOR\";\nexport const SELECT_ALL_DATA_COLLECTOR = \"SELECT_ALL_DATA_COLLECTOR\";\n\nexport const sexValues = [\"Male\", \"Female\", \"Other\"];\n\nexport const dataCollectorType = {\n human: \"Human\",\n collectionPoint: \"CollectionPoint\",\n};\n\nexport const performanceStatus = {\n reportingCorrectly: \"ReportingCorrectly\",\n notReporting: \"NotReporting\",\n reportingWithErrors: \"ReportingWithErrors\",\n};\n\nexport const trainingStatusAll = \"All\";\nexport const trainingStatusInTraining = \"InTraining\";\nexport const trainingStatusTrained = \"Trained\";\nexport const trainingStatus = [\n trainingStatusAll,\n trainingStatusTrained,\n trainingStatusInTraining,\n];\n\nexport const deployedModeAll = \"All\";\nexport const deployedModeDeployed = \"Deployed\";\nexport const deployedModeNotDeployed = \"NotDeployed\";\nexport const deployedMode = [\n deployedModeAll,\n deployedModeDeployed,\n deployedModeNotDeployed,\n];\n","import * as actions from \"./dataCollectorsConstants\";\nimport * as projectsActions from \"../../projects/logic/projectsConstants\";\nimport * as nationalSocietyUsersActions from \"../../nationalSocietyUsers/logic/nationalSocietyUsersConstants\";\nimport { initialState } from \"../../../initialState\";\nimport {\n setProperty,\n removeProperty,\n assignInArray,\n} from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nconst filterIsSet = (filters) => {\n const initialFilters = initialState.dataCollectors.filters;\n return (\n filters.name !== initialFilters.name ||\n filters.area !== initialFilters.area ||\n filters.supervisorId !== initialFilters.supervisorId ||\n filters.sex !== initialFilters.sex ||\n filters.pageNumber !== initialFilters.pageNumber ||\n filters.trainingStatus !== initialFilters.trainingStatus\n );\n};\n\nexport function dataCollectorsReducer(\n state = initialState.dataCollectors,\n action,\n) {\n switch (action.type) {\n case projectsActions.CLOSE_PROJECT.SUCCESS:\n return { ...state, listStale: true };\n\n case LOCATION_CHANGE: // cleanup\n return {\n ...state,\n formData: null,\n formError: null,\n formDefaultSupervisorId: null,\n formRegions: [],\n formSupervisors: [],\n formDefaultLocation: null,\n };\n\n case actions.OPEN_DATA_COLLECTORS_LIST.INVOKE:\n return {\n ...state,\n filters:\n action.projectId === state.projectId\n ? state.filters\n : initialState.dataCollectors.filters,\n listData:\n action.projectId === state.projectId\n ? state.listData\n : { data: [], page: null, rowsPerPage: null, totalRows: null },\n };\n\n case actions.OPEN_DATA_COLLECTORS_LIST.SUCCESS:\n return {\n ...state,\n projectId: action.projectId,\n filtersData: action.filtersData,\n filtersStale: false,\n };\n\n case actions.GET_DATA_COLLECTORS.REQUEST:\n return { ...state, listFetching: true };\n\n case actions.GET_DATA_COLLECTORS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n filters: action.filters,\n listData: action.list,\n listStale: false,\n listSelectedAll: false,\n };\n\n case actions.GET_DATA_COLLECTORS.FAILURE:\n return { ...state, listFetching: false };\n\n case actions.SELECT_DATA_COLLECTOR:\n return {\n ...state,\n listSelectedAll:\n action.value &&\n state.listData.data.every(\n (i) =>\n i.isSelected || (action.value && i.id === action.dataCollectorId),\n ),\n listData: {\n ...state.listData,\n data: assignInArray(\n state.listData.data,\n (i) => i.id === action.dataCollectorId,\n (item) => ({ ...item, isSelected: action.value }),\n ),\n },\n };\n\n case actions.SELECT_ALL_DATA_COLLECTOR:\n return {\n ...state,\n listSelectedAll: action.value,\n listData: {\n ...state.listData,\n data: assignInArray(\n state.listData.data,\n (_) => true,\n (item) => ({ ...item, isSelected: action.value }),\n ),\n },\n };\n\n case actions.OPEN_DATA_COLLECTOR_EDITION.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_DATA_COLLECTOR_EDITION.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_DATA_COLLECTOR_EDITION.SUCCESS:\n return {\n ...state,\n formFetching: false,\n formData: action.data,\n filters: initialState.dataCollectors.filters,\n listStale: filterIsSet(state.filters),\n };\n\n case actions.OPEN_DATA_COLLECTOR_EDITION.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.OPEN_DATA_COLLECTOR_CREATION.REQUEST:\n return {\n ...state,\n formFetching: true,\n nationalSocietyId: null,\n formDefaultSupervisorId: null,\n formRegions: [],\n formSupervisors: [],\n formDefaultLocation: null,\n };\n\n case actions.OPEN_DATA_COLLECTOR_CREATION.SUCCESS:\n return {\n ...state,\n formFetching: false,\n nationalSocietyId: action.nationalSocietyId,\n formDefaultSupervisorId: action.defaultSupervisorId,\n formRegions: action.regions,\n formSupervisors: action.supervisors,\n formDefaultLocation: action.defaultLocation,\n filters: initialState.dataCollectors.filters,\n countryCode: action.countryCode,\n listStale: filterIsSet(state.filters),\n };\n\n case actions.OPEN_DATA_COLLECTOR_CREATION.FAILURE:\n return { ...state, formFetching: false, formError: action.message };\n\n case actions.GET_DATA_COLLECTORS_MAP_OVERVIEW.SUCCESS:\n return {\n ...state,\n mapOverviewFilters: action.filters,\n mapOverviewCenterLocation: action.centerLocation,\n mapOverviewDataCollectorLocations: action.dataCollectorLocations,\n };\n\n case actions.GET_DATA_COLLECTORS_MAP_OVERVIEW.FAILURE:\n return {\n ...state,\n mapOverviewCenterLocation: null,\n mapOverviewDataCollectorLocations: [],\n };\n\n case actions.GET_DATA_COLLECTORS_MAP_DETAILS.REQUEST:\n return {\n ...state,\n mapOverviewDetails: null,\n mapOverviewDetailsFetching: true,\n };\n\n case actions.GET_DATA_COLLECTORS_MAP_DETAILS.SUCCESS:\n return {\n ...state,\n mapOverviewDetails: action.details,\n mapOverviewDetailsFetching: false,\n };\n\n case actions.GET_DATA_COLLECTORS_MAP_DETAILS.FAILURE:\n return { ...state, mapOverviewDetailsFetching: false };\n\n case actions.CREATE_DATA_COLLECTOR.REQUEST:\n return { ...state, formSaving: true, formError: null };\n\n case actions.CREATE_DATA_COLLECTOR.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_DATA_COLLECTOR.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_DATA_COLLECTOR.REQUEST:\n return { ...state, formSaving: true, formError: null };\n\n case actions.EDIT_DATA_COLLECTOR.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.EDIT_DATA_COLLECTOR.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.REMOVE_DATA_COLLECTOR.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_DATA_COLLECTOR.SUCCESS:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n listStale: true,\n };\n\n case actions.REMOVE_DATA_COLLECTOR.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n case actions.SET_DATA_COLLECTORS_TRAINING_STATE.REQUEST:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (trainingState, id) => setProperty(trainingState, id, true),\n state.updatingDataCollector,\n ),\n };\n\n case actions.SET_DATA_COLLECTORS_TRAINING_STATE.SUCCESS:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (trainingState, id) => removeProperty(trainingState, id),\n state.updatingDataCollector,\n ),\n listStale: true,\n };\n\n case actions.SET_DATA_COLLECTORS_TRAINING_STATE.FAILURE:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (trainingState, id) => removeProperty(trainingState, id),\n state.updatingDataCollector,\n ),\n };\n\n case actions.OPEN_DATA_COLLECTORS_PERFORMANCE_LIST.SUCCESS:\n return {\n ...state,\n performanceListFilters: action.filters,\n filtersData: action.filtersData,\n };\n\n case actions.GET_DATA_COLLECTORS_PERFORMANCE.REQUEST:\n return {\n ...state,\n performanceListFetching: true,\n performanceListData: {\n data: [],\n page: null,\n rowsPerPage: null,\n totalRows: null,\n },\n };\n\n case actions.GET_DATA_COLLECTORS_PERFORMANCE.SUCCESS:\n return {\n ...state,\n performanceListFetching: false,\n performanceListData: action.list,\n completeness: action.completeness,\n epiDateRange: action.epiDateRange,\n performanceListFilters: action.filters,\n };\n\n case actions.GET_DATA_COLLECTORS_PERFORMANCE.FAILURE:\n return {\n ...state,\n performanceListFetching: false,\n performanceListData: [],\n };\n\n case actions.REPLACE_SUPERVISOR.REQUEST:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (replacingState, id) => setProperty(replacingState, id, true),\n state.updatingDataCollector,\n ),\n };\n\n case actions.REPLACE_SUPERVISOR.SUCCESS:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (replacingState, id) => removeProperty(replacingState, id),\n state.updatingDataCollector,\n ),\n listStale: true,\n };\n\n case actions.REPLACE_SUPERVISOR.FAILURE:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (replacingState, id) => removeProperty(replacingState, id),\n state.updatingDataCollector,\n ),\n };\n\n case actions.SET_DATA_COLLECTORS_DEPLOYED_STATE.REQUEST:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (replacingState, id) => setProperty(replacingState, id, true),\n state.updatingDataCollector,\n ),\n };\n\n case actions.SET_DATA_COLLECTORS_DEPLOYED_STATE.SUCCESS:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (replacingState, id) => removeProperty(replacingState, id),\n state.updatingDataCollector,\n ),\n listStale: true,\n };\n\n case actions.SET_DATA_COLLECTORS_DEPLOYED_STATE.FAILURE:\n return {\n ...state,\n updatingDataCollector: action.dataCollectorIds.reduce(\n (replacingState, id) => removeProperty(replacingState, id),\n state.updatingDataCollector,\n ),\n };\n\n case nationalSocietyUsersActions.CREATE_NATIONAL_SOCIETY_USER.SUCCESS: // set filters stale when creating a user\n return { ...state, filtersStale: true };\n\n case nationalSocietyUsersActions.EDIT_NATIONAL_SOCIETY_USER.SUCCESS: // set filters stale when editing a user\n return { ...state, filtersStale: true };\n\n case nationalSocietyUsersActions.REMOVE_NATIONAL_SOCIETY_USER.SUCCESS: // set filters stale when removing a user\n return { ...state, filtersStale: true };\n\n case actions.EXPORT_DATA_COLLECTOR_PERFORMANCE.INVOKE:\n return { ...state, isExporting: true };\n\n case actions.EXPORT_DATA_COLLECTOR_PERFORMANCE.SUCCESS:\n return { ...state, isExporting: false };\n\n case actions.EXPORT_DATA_COLLECTOR_PERFORMANCE.FAILURE:\n return { ...state, isExporting: false };\n\n case actions.EXPORT_DATA_COLLECTORS_TO_EXCEL.INVOKE:\n return { ...state, isExportingToExcel: true };\n\n case actions.EXPORT_DATA_COLLECTORS_TO_EXCEL.SUCCESS:\n return { ...state, isExportingToExcel: false };\n\n case actions.EXPORT_DATA_COLLECTORS_TO_EXCEL.FAILURE:\n return { ...state, isExportingToExcel: false };\n\n case actions.EXPORT_DATA_COLLECTORS_TO_CSV.INVOKE:\n return { ...state, isExportingToCsv: true };\n\n case actions.EXPORT_DATA_COLLECTORS_TO_CSV.SUCCESS:\n return { ...state, isExportingToCsv: false };\n\n case actions.EXPORT_DATA_COLLECTORS_TO_CSV.FAILURE:\n return { ...state, isExportingToCsv: false };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_AGREEMENT_PAGE = action(\"OPEN_AGREEMENT_PAGE\");\nexport const ACCEPT_AGREEMENT = action(\"ACCEPT_AGREEMENT\");\n","import * as actions from \"./agreementsConstants\";\nimport { initialState } from \"../../../initialState\";\n\nexport function agreementsReducer(state = initialState.agreements, action) {\n switch (action.type) {\n case actions.OPEN_AGREEMENT_PAGE.REQUEST:\n return {\n ...state,\n pendingSocieties: [],\n staleSocieties: [],\n agreementDocuments: [],\n };\n\n case actions.OPEN_AGREEMENT_PAGE.SUCCESS:\n return {\n ...state,\n pendingSocieties: action.pendingAgreementDocuments.pendingSocieties,\n staleSocieties: action.pendingAgreementDocuments.staleSocieties,\n agreementDocuments: action.pendingAgreementDocuments.agreementDocuments,\n };\n\n case actions.OPEN_AGREEMENT_PAGE.FAILURE:\n return {\n ...state,\n pendingSocieties: [],\n staleSocieties: [],\n agreementDocuments: [],\n };\n\n case actions.ACCEPT_AGREEMENT.REQUEST:\n return { ...state, submitting: true };\n\n case actions.ACCEPT_AGREEMENT.SUCCESS:\n return { ...state, submitting: false };\n\n case actions.ACCEPT_AGREEMENT.FAILURE:\n return { ...state, submitting: false };\n\n default:\n return state;\n }\n}\n","import * as actions from \"./reportsConstants\";\nimport * as projectsActions from \"../../projects/logic/projectsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function reportsReducer(state = initialState.reports, action) {\n switch (action.type) {\n case projectsActions.CLOSE_PROJECT.SUCCESS:\n return { ...state, listStale: true, listProjectId: null };\n\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null };\n\n case actions.OPEN_CORRECT_REPORTS_LIST.INVOKE:\n return {\n ...state,\n correctReportsListStale:\n state.correctReportsListStale ||\n action.projectId !== state.listProjectId,\n };\n\n case actions.OPEN_CORRECT_REPORTS_LIST.SUCCESS:\n return {\n ...state,\n listProjectId: action.projectId,\n filtersData: action.filtersData,\n };\n\n case actions.OPEN_INCORRECT_REPORTS_LIST.INVOKE:\n return {\n ...state,\n incorrectReportsListStale:\n state.incorrectReportsListStale ||\n action.projectId !== state.listProjectId,\n };\n\n case actions.OPEN_INCORRECT_REPORTS_LIST.SUCCESS:\n return {\n ...state,\n listProjectId: action.projectId,\n filtersData: action.filtersData,\n };\n\n case actions.GET_CORRECT_REPORTS.REQUEST:\n return {\n ...state,\n correctReportsPaginatedListData: state.correctReportsListStale\n ? null\n : state.correctReportsPaginatedListData,\n listFetching: true,\n };\n\n case actions.GET_CORRECT_REPORTS.SUCCESS:\n return {\n ...state,\n correctReportsFilters: action.filters,\n correctReportsSorting: action.sorting,\n listFetching: false,\n correctReportsListStale: false,\n correctReportsPaginatedListData: {\n data: action.data,\n page: action.page,\n rowsPerPage: action.rowsPerPage,\n totalRows: action.totalRows,\n },\n };\n\n case actions.GET_CORRECT_REPORTS.FAILURE:\n return {\n ...state,\n listFetching: false,\n correctReportsPaginatedListData: null,\n };\n\n case actions.GET_INCORRECT_REPORTS.REQUEST:\n return {\n ...state,\n incorrectReportsPaginatedListData: state.incorrectReportsListStale\n ? null\n : state.incorrectReportsPaginatedListData,\n listFetching: true,\n };\n\n case actions.GET_INCORRECT_REPORTS.SUCCESS:\n return {\n ...state,\n incorrectReportsFilters: action.filters,\n incorrectReportsSorting: action.sorting,\n listFetching: false,\n incorrectReportsListStale: false,\n incorrectReportsPaginatedListData: {\n data: action.data,\n page: action.page,\n rowsPerPage: action.rowsPerPage,\n totalRows: action.totalRows,\n },\n };\n\n case actions.GET_INCORRECT_REPORTS.FAILURE:\n return {\n ...state,\n listFetching: false,\n incorrectReportsPaginatedListData: null,\n };\n\n case actions.OPEN_REPORT_EDITION.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_REPORT_EDITION.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_REPORT_EDITION.SUCCESS:\n return {\n ...state,\n formFetching: false,\n formData: action.data,\n editReport: {\n formHealthRisks: action.healthRisks,\n formDataCollectors: action.dataCollectors,\n },\n };\n\n case actions.OPEN_REPORT_EDITION.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.EDIT_REPORT.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_REPORT.SUCCESS:\n return {\n ...state,\n formSaving: false,\n correctReportsListStale: true,\n incorrectReportsListStale: true,\n };\n\n case actions.EDIT_REPORT.FAILURE:\n return { ...state, formSaving: false };\n\n case actions.MARK_AS_ERROR.REQUEST:\n return { ...state, markingAsError: true };\n\n case actions.MARK_AS_ERROR.SUCCESS:\n return { ...state, markingAsError: false };\n\n case actions.MARK_AS_ERROR.FAILURE:\n return { ...state, markingAsError: false, message: action.message };\n\n case actions.OPEN_SEND_REPORT.REQUEST:\n return { ...state, formFetching: true };\n\n case actions.OPEN_SEND_REPORT.SUCCESS:\n return {\n ...state,\n formFetching: false,\n sendReport: {\n dataCollectors: action.dataCollectors,\n formData: action.formData,\n },\n };\n\n case actions.OPEN_SEND_REPORT.FAILURE:\n return { ...state, formFetching: false, message: action.message };\n\n case actions.ACCEPT_REPORT.REQUEST:\n return { ...state, listFetching: true };\n\n case actions.ACCEPT_REPORT.SUCCESS:\n return { ...state, listFetching: false };\n\n case actions.ACCEPT_REPORT.FAILURE:\n return { ...state, listFetching: false };\n\n case actions.DISMISS_REPORT.REQUEST:\n return { ...state, listFetching: true };\n\n case actions.DISMISS_REPORT.SUCCESS:\n return { ...state, listFetching: false };\n\n case actions.DISMISS_REPORT.FAILURE:\n return { ...state, listFetching: false };\n\n case actions.MARK_AS_CORRECTED.REQUEST:\n return { ...state, listFetching: true };\n\n case actions.MARK_AS_CORRECTED.FAILURE:\n return { ...state, listFetching: false };\n\n case actions.MARK_AS_CORRECTED.SUCCESS:\n const itemToCorrect = state.incorrectReportsPaginatedListData.data.find(\n (i) => i.id === parseInt(action.reportId),\n );\n\n itemToCorrect.isCorrected = true;\n\n return {\n ...state,\n listFetching: false,\n incorrectReportsPaginatedListData: {\n ...state.incorrectReportsPaginatedListData,\n itemToCorrect,\n },\n };\n\n case actions.MARK_AS_NOT_CORRECTED.REQUEST:\n return { ...state, listFetching: true };\n\n case actions.MARK_AS_NOT_CORRECTED.FAILURE:\n return { ...state, listFetching: false };\n\n case actions.MARK_AS_NOT_CORRECTED.SUCCESS:\n const itemToNoCorrect = state.incorrectReportsPaginatedListData.data.find(\n (i) => i.id === parseInt(action.reportId),\n );\n\n itemToNoCorrect.isCorrected = false;\n\n return {\n ...state,\n listFetching: false,\n incorrectReportsPaginatedListData: {\n ...state.incorrectReportsPaginatedListData,\n itemToNoCorrect,\n },\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST = action(\n \"OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST\",\n);\nexport const OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST = action(\n \"OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST\",\n);\nexport const GET_NATIONAL_SOCIETY_CORRECT_REPORTS = action(\n \"GET_NATIONAL_SOCIETY_CORRECT_REPORTS\",\n);\nexport const GET_NATIONAL_SOCIETY_INCORRECT_REPORTS = action(\n \"GET_NATIONAL_SOCIETY_INCORRECT_REPORTS\",\n);\n\nexport const DateColumnName = \"date\";\n","import * as actions from \"./nationalSocietyReportsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function nationalSocietyReportsReducer(\n state = initialState.nationalSocietyReports,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null };\n\n case actions.OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST.INVOKE:\n return {\n ...state,\n correctReportsListStale:\n action.nationalSocietyId !== state.listNationalSocietyId,\n };\n\n case actions.OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST.SUCCESS:\n return {\n ...state,\n listNationalSocietyId: action.nationalSocietyId,\n filtersData: action.filtersData,\n };\n\n case actions.OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST.INVOKE:\n return {\n ...state,\n incorrectReportsListStale:\n state.incorrectReportsListStale ||\n action.nationalSocietyId !== state.listNationalSocietyId,\n };\n\n case actions.OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST.SUCCESS:\n return { ...state, listNationalSocietyId: action.nationalSocietyId };\n\n case actions.GET_NATIONAL_SOCIETY_CORRECT_REPORTS.REQUEST:\n return {\n ...state,\n correctReportsPaginatedListData: state.correctReportsListStale\n ? null\n : state.correctReportsPaginatedListData,\n listFetching: true,\n };\n\n case actions.GET_NATIONAL_SOCIETY_CORRECT_REPORTS.SUCCESS:\n return {\n ...state,\n correctReportsFilters: action.filters,\n correctReportsSorting: action.sorting,\n listFetching: false,\n correctReportsListStale: false,\n correctReportsPaginatedListData: {\n data: action.data,\n page: action.page,\n rowsPerPage: action.rowsPerPage,\n totalRows: action.totalRows,\n },\n };\n\n case actions.GET_NATIONAL_SOCIETY_CORRECT_REPORTS.FAILURE:\n return {\n ...state,\n listFetching: false,\n correctReportsPaginatedListData: null,\n };\n\n case actions.GET_NATIONAL_SOCIETY_INCORRECT_REPORTS.REQUEST:\n return {\n ...state,\n incorrectReportsPaginatedListData: state.incorrectReportsListStale\n ? null\n : state.incorrectReportsPaginatedListData,\n listFetching: true,\n };\n\n case actions.GET_NATIONAL_SOCIETY_INCORRECT_REPORTS.SUCCESS:\n return {\n ...state,\n incorrectReportsFilters: action.filters,\n incorrectReportsSorting: action.sorting,\n listFetching: false,\n incorrectReportsListStale: false,\n incorrectReportsPaginatedListData: {\n data: action.data,\n page: action.page,\n rowsPerPage: action.rowsPerPage,\n totalRows: action.totalRows,\n },\n };\n\n case actions.GET_NATIONAL_SOCIETY_INCORRECT_REPORTS.FAILURE:\n return {\n ...state,\n listFetching: false,\n incorrectReportsPaginatedListData: null,\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_NATIONAL_SOCIETY_STRUCTURE = action(\n \"OPEN_NATIONAL_SOCIETY_STRUCTURE\",\n);\n\nexport const CREATE_REGION = action(\"CREATE_REGION\");\nexport const EDIT_REGION = action(\"EDIT_REGION\");\nexport const REMOVE_REGION = action(\"REMOVE_REGION\");\n\nexport const CREATE_DISTRICT = action(\"CREATE_DISTRICT\");\nexport const EDIT_DISTRICT = action(\"EDIT_DISTRICT\");\nexport const REMOVE_DISTRICT = action(\"REMOVE_DISTRICT\");\n\nexport const CREATE_VILLAGE = action(\"CREATE_VILLAGE\");\nexport const EDIT_VILLAGE = action(\"EDIT_VILLAGE\");\nexport const REMOVE_VILLAGE = action(\"REMOVE_VILLAGE\");\n\nexport const CREATE_ZONE = action(\"CREATE_ZONE\");\nexport const EDIT_ZONE = action(\"EDIT_ZONE\");\nexport const REMOVE_ZONE = action(\"REMOVE_ZONE\");\n","import * as actions from \"./nationalSocietyStructureConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { removeFromArray, assignInArray } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function nationalSocietyStructureReducer(\n state = initialState.nationalSocietyStructure,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, regions: null };\n\n case actions.OPEN_NATIONAL_SOCIETY_STRUCTURE.REQUEST:\n return { ...state, isFetching: true, regions: null };\n\n case actions.OPEN_NATIONAL_SOCIETY_STRUCTURE.SUCCESS:\n return {\n ...state,\n isFetching: false,\n regions: action.regions,\n districts: action.districts,\n villages: action.villages,\n zones: action.zones,\n };\n\n case actions.OPEN_NATIONAL_SOCIETY_STRUCTURE.FAILURE:\n return { ...state, isFetching: false };\n\n case actions.CREATE_REGION.SUCCESS:\n return { ...state, regions: [...state.regions, action.region] };\n\n case actions.REMOVE_REGION.SUCCESS:\n return {\n ...state,\n regions: removeFromArray(\n state.regions,\n (item) => item.id === action.id,\n ),\n };\n\n case actions.EDIT_REGION.SUCCESS:\n return {\n ...state,\n regions: assignInArray(\n state.regions,\n (item) => item.id === action.id,\n (item) => ({ ...item, name: action.name }),\n ),\n };\n\n case actions.CREATE_DISTRICT.SUCCESS:\n return { ...state, districts: [...state.districts, action.district] };\n\n case actions.REMOVE_DISTRICT.SUCCESS:\n return {\n ...state,\n districts: removeFromArray(\n state.districts,\n (item) => item.id === action.id,\n ),\n };\n\n case actions.EDIT_DISTRICT.SUCCESS:\n return {\n ...state,\n districts: assignInArray(\n state.districts,\n (item) => item.id === action.id,\n (item) => ({ ...item, name: action.name }),\n ),\n };\n\n case actions.CREATE_VILLAGE.SUCCESS:\n return { ...state, villages: [...state.villages, action.village] };\n\n case actions.REMOVE_VILLAGE.SUCCESS:\n return {\n ...state,\n villages: removeFromArray(\n state.villages,\n (item) => item.id === action.id,\n ),\n };\n\n case actions.EDIT_VILLAGE.SUCCESS:\n return {\n ...state,\n villages: assignInArray(\n state.villages,\n (item) => item.id === action.id,\n (item) => ({ ...item, name: action.name }),\n ),\n };\n\n case actions.CREATE_ZONE.SUCCESS:\n return { ...state, zones: [...state.zones, action.zone] };\n\n case actions.REMOVE_ZONE.SUCCESS:\n return {\n ...state,\n zones: removeFromArray(state.zones, (item) => item.id === action.id),\n };\n\n case actions.EDIT_ZONE.SUCCESS:\n return {\n ...state,\n zones: assignInArray(\n state.zones,\n (item) => item.id === action.id,\n (item) => ({ ...item, name: action.name }),\n ),\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_PROJECT_DASHBOARD = action(\"OPEN_PROJECT_DASHBOARD\");\nexport const GET_PROJECT_DASHBOARD_DATA = action(\"GET_PROJECT_DASHBOARD_DATA\");\nexport const GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS = action(\n \"GET_PROJECT_DASHBOARD_REPORT_HEALTHRISKS\",\n);\nexport const GENERATE_PDF = action(\"GENERATE_PDF\");\n","import * as actions from \"./projectDashboardConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function projectDashboardReducer(\n state = initialState.projectDashboard,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null };\n\n case actions.OPEN_PROJECT_DASHBOARD.INVOKE:\n return {\n ...state,\n filters: action.projectId === state.projectId ? state.filters : null,\n };\n\n case actions.OPEN_PROJECT_DASHBOARD.REQUEST:\n return { ...state, isFetching: true };\n\n case actions.OPEN_PROJECT_DASHBOARD.SUCCESS:\n return {\n ...state,\n projectId: action.projectId,\n filtersData: action.filtersData,\n isFetching: false,\n };\n\n case actions.GENERATE_PDF.REQUEST:\n return { ...state, isGeneratingPdf: true };\n\n case actions.GENERATE_PDF.SUCCESS:\n case actions.GENERATE_PDF.FAILURE:\n return { ...state, isGeneratingPdf: false };\n\n case actions.OPEN_PROJECT_DASHBOARD.FAILURE:\n return { ...state, isFetching: false };\n\n case actions.GET_PROJECT_DASHBOARD_DATA.REQUEST:\n return { ...state, isFetching: true };\n\n case actions.GET_PROJECT_DASHBOARD_DATA.SUCCESS:\n return {\n ...state,\n name: action.name,\n filters: action.filters,\n projectSummary: action.summary,\n reportsGroupedByHealthRiskAndDate:\n action.reportsGroupedByHealthRiskAndDate,\n reportsGroupedByFeaturesAndDate: action.reportsGroupedByFeaturesAndDate,\n reportsGroupedByVillageAndDate: action.reportsGroupedByVillageAndDate,\n reportsGroupedByFeatures: action.reportsGroupedByFeatures,\n reportsGroupedByLocation: action.reportsGroupedByLocation,\n dataCollectionPointsReportData: action.dataCollectionPointReports,\n keptReportsInEscalatedAlertsHistogramData:\n action.keptReportsInEscalatedAlertsHistogramData,\n isFetching: false,\n };\n\n case actions.GET_PROJECT_DASHBOARD_DATA.FAILURE:\n return { ...state, isFetching: false };\n\n case actions.GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS.REQUEST:\n return {\n ...state,\n reportsGroupedByLocationDetails: null,\n reportsGroupedByLocationDetailsFetching: true,\n };\n\n case actions.GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS.SUCCESS:\n return {\n ...state,\n reportsGroupedByLocationDetails: action.data,\n reportsGroupedByLocationDetailsFetching: false,\n };\n\n case actions.GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS.FAILURE:\n return { ...state, reportsGroupedByLocationDetailsFetching: false };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_ALERTS_LIST = action(\"OPEN_ALERTS_LIST\");\nexport const GET_ALERTS = action(\"GET_ALERTS\");\nexport const OPEN_ALERTS_ASSESSMENT = action(\"OPEN_ALERTS_ASSESSMENT\");\nexport const ACCEPT_REPORT = action(\"ACCEPT_REPORT\");\nexport const DISMISS_REPORT = action(\"DISMISS_REPORT\");\nexport const RESET_REPORT = action(\"RESET_REPORT\");\nexport const ESCALATE_ALERT = action(\"ESCALATE_ALERT\");\nexport const DISMISS_ALERT = action(\"DISMISS_ALERT\");\nexport const CLOSE_ALERT = action(\"CLOSE_ALERT\");\nexport const FETCH_RECIPIENTS = action(\"FETCH_RECIPIENTS\");\nexport const EXPORT_ALERTS = action(\"EXPORT_ALERTS\");\nexport const VALIDATE_EIDSR = action(\"VALIDATE_EIDSR\");\n\nexport const assessmentStatus = {\n escalated: \"Escalated\",\n closed: \"Closed\",\n dismissed: \"Dismissed\",\n rejected: \"Rejected\",\n toEscalate: \"ToEscalate\",\n toDismiss: \"ToDismiss\",\n open: \"Open\",\n};\n\nexport const escalatedOutcomes = {\n dismissed: \"Dismissed\",\n actionTaken: \"ActionTaken\",\n other: \"Other\",\n};\n\nexport const alertStatusFilters = {\n all: \"All\",\n open: \"Open\",\n escalated: \"Escalated\",\n dismissed: \"Dismissed\",\n closed: \"Closed\",\n};\n\nexport const alertStatus = {\n open: \"Open\",\n escalated: \"Escalated\",\n dismissed: \"Dismissed\",\n closed: \"Closed\",\n};\n\nexport const dateFilter = \"DateFilter\";\nexport const timeTriggeredColumn = \"TimeTriggered\";\nexport const timeOfLastReportColumn = \"TimeOfLastReport\";\nexport const statusColumn = \"Status\";\n","import * as actions from \"./alertsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\nimport { assignInArray } from \"../../../utils/immutable\";\n\nconst updateReport = (reports, reportId, changes) =>\n assignInArray(\n reports,\n (r) => r.id === reportId,\n (item) => ({ ...item, ...changes }),\n );\n\nexport function alertsReducer(state = initialState.alerts, action) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null };\n\n case actions.OPEN_ALERTS_LIST.INVOKE:\n return { ...state };\n\n case actions.OPEN_ALERTS_LIST.REQUEST:\n return { ...state, isFetching: true };\n\n case actions.OPEN_ALERTS_LIST.SUCCESS:\n return {\n ...state,\n listProjectId: action.projectId,\n filtersData: action.filtersData,\n isFetching: false,\n };\n\n case actions.GET_ALERTS.REQUEST:\n return { ...state, listData: state.listData, listFetching: true };\n\n case actions.GET_ALERTS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listData: {\n data: action.data,\n page: action.page,\n rowsPerPage: action.rowsPerPage,\n totalRows: action.totalRows,\n },\n filters: action.filters,\n };\n\n case actions.GET_ALERTS.FAILURE:\n return { ...state, listFetching: false, listData: null };\n\n case actions.OPEN_ALERTS_ASSESSMENT.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_ALERTS_ASSESSMENT.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_ALERTS_ASSESSMENT.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.ACCEPT_REPORT.REQUEST:\n return {\n ...state,\n formData: {\n ...state.formData,\n reports: updateReport(state.formData.reports, action.reportId, {\n isAccepting: true,\n }),\n },\n };\n\n case actions.ACCEPT_REPORT.SUCCESS:\n return {\n ...state,\n formData: {\n ...state.formData,\n assessmentStatus: action.assessmentStatus,\n reports: updateReport(state.formData.reports, action.reportId, {\n isAccepting: false,\n status: \"Accepted\",\n }),\n },\n };\n\n case actions.ACCEPT_REPORT.FAILURE:\n return {\n ...state,\n formData: {\n ...state.formData,\n reports: updateReport(state.formData.reports, action.reportId, {\n isAccepting: false,\n }),\n },\n };\n\n case actions.DISMISS_REPORT.REQUEST:\n return {\n ...state,\n formData: {\n ...state.formData,\n reports: updateReport(state.formData.reports, action.reportId, {\n isDismissing: true,\n }),\n },\n };\n\n case actions.DISMISS_REPORT.SUCCESS:\n return {\n ...state,\n formData: {\n ...state.formData,\n assessmentStatus: action.assessmentStatus,\n reports: updateReport(state.formData.reports, action.reportId, {\n isDismissing: false,\n status: \"Rejected\",\n }),\n },\n };\n\n case actions.DISMISS_REPORT.FAILURE:\n return {\n ...state,\n formData: {\n ...state.formData,\n reports: updateReport(state.formData.reports, action.reportId, {\n isDismissing: false,\n }),\n },\n };\n\n case actions.RESET_REPORT.REQUEST:\n return {\n ...state,\n formData: {\n ...state.formData,\n reports: updateReport(state.formData.reports, action.reportId, {\n isResetting: true,\n }),\n },\n };\n\n case actions.RESET_REPORT.SUCCESS:\n return {\n ...state,\n formData: {\n ...state.formData,\n assessmentStatus: action.assessmentStatus,\n reports: updateReport(state.formData.reports, action.reportId, {\n isResetting: false,\n status: \"Pending\",\n }),\n },\n };\n\n case actions.RESET_REPORT.FAILURE:\n return {\n ...state,\n formData: {\n ...state.formData,\n reports: updateReport(state.formData.reports, action.reportId, {\n isResetting: false,\n }),\n },\n };\n\n case actions.ESCALATE_ALERT.REQUEST:\n return { ...state, formEscalating: true };\n\n case actions.ESCALATE_ALERT.SUCCESS:\n return {\n ...state,\n formEscalating: false,\n formData: {\n ...state.formData,\n assessmentStatus: actions.assessmentStatus.escalated,\n },\n };\n\n case actions.ESCALATE_ALERT.FAILURE:\n return { ...state, formEscalating: false };\n\n case actions.DISMISS_ALERT.REQUEST:\n return { ...state, formDismissing: true };\n\n case actions.DISMISS_ALERT.SUCCESS:\n return {\n ...state,\n formDismissing: false,\n formData: {\n ...state.formData,\n assessmentStatus: actions.assessmentStatus.dismissed,\n },\n };\n\n case actions.DISMISS_ALERT.FAILURE:\n return { ...state, formDismissing: false };\n\n case actions.CLOSE_ALERT.REQUEST:\n return { ...state, formClosing: true };\n\n case actions.CLOSE_ALERT.SUCCESS:\n return {\n ...state,\n formClosing: false,\n formData: {\n ...state.formData,\n assessmentStatus: actions.assessmentStatus.closed,\n },\n };\n\n case actions.CLOSE_ALERT.FAILURE:\n return { ...state, formClosing: false };\n\n case actions.FETCH_RECIPIENTS.REQUEST:\n return {\n ...state,\n isFetchingRecipients: true,\n notificationEmails: [],\n notificationPhoneNumbers: [],\n };\n\n case actions.FETCH_RECIPIENTS.SUCCESS:\n return {\n ...state,\n isFetchingRecipients: false,\n notificationEmails: action.data.emails,\n notificationPhoneNumbers: action.data.phoneNumbers,\n };\n\n case actions.FETCH_RECIPIENTS.FAILURE:\n return {\n ...state,\n isFetchingRecipients: false,\n notificationEmails: [],\n notificationPhoneNumbers: [],\n };\n\n case actions.VALIDATE_EIDSR.REQUEST:\n return { ...state, isLoadingValidateEidsr: true };\n\n case actions.VALIDATE_EIDSR.SUCCESS:\n return {\n ...state,\n isLoadingValidateEidsr: false,\n formData: { ...state.formData, validateEidsrResult: action.data },\n };\n\n case actions.VALIDATE_EIDSR.FAILURE:\n return { ...state, isLoadingValidateEidsr: false };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_NATIONAL_SOCIETY_DASHBOARD = action(\n \"OPEN_NATIONAL_SOCIETY_DASHBOARD\",\n);\nexport const GET_NATIONAL_SOCIETY_DASHBOARD_DATA = action(\n \"GET_NATIONAL_SOCIETY_DASHBOARD_DATA\",\n);\nexport const GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS = action(\n \"GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTHRISKS\",\n);\nexport const GENERATE_NATIONAL_SOCIETY_PDF = action(\n \"GENERATE_NATIONAL_SOCIETY_PDF\",\n);\n","import * as actions from \"./nationalSocietyDashboardConstants\";\nimport { initialState } from \"../../../initialState\";\n\nexport function nationalSocietyDashboardReducer(\n state = initialState.nationalSocietyDashboard,\n action,\n) {\n switch (action.type) {\n case actions.OPEN_NATIONAL_SOCIETY_DASHBOARD.INVOKE:\n return {\n ...state,\n filters:\n action.nationalSocietyId === state.nationalSocietyId\n ? state.filters\n : null,\n };\n\n case actions.OPEN_NATIONAL_SOCIETY_DASHBOARD.REQUEST:\n return { ...state, isFetching: true };\n\n case actions.OPEN_NATIONAL_SOCIETY_DASHBOARD.SUCCESS:\n return {\n ...state,\n nationalSocietyId: action.nationalSocietyId,\n filtersData: action.filtersData,\n isFetching: false,\n };\n\n case actions.OPEN_NATIONAL_SOCIETY_DASHBOARD.FAILURE:\n return { ...state, isFetching: false };\n\n case actions.GENERATE_NATIONAL_SOCIETY_PDF.REQUEST:\n return { ...state, isGeneratingPdf: true };\n\n case actions.GENERATE_NATIONAL_SOCIETY_PDF.SUCCESS:\n case actions.GENERATE_NATIONAL_SOCIETY_PDF.FAILURE:\n return { ...state, isGeneratingPdf: false };\n\n case actions.GET_NATIONAL_SOCIETY_DASHBOARD_DATA.REQUEST:\n return { ...state, isFetching: true };\n\n // Updates redux state with dashboard data recieved from action\n case actions.GET_NATIONAL_SOCIETY_DASHBOARD_DATA.SUCCESS:\n return {\n ...state,\n name: action.name,\n filters: action.filters,\n summary: action.summary,\n reportsGroupedByLocation: action.reportsGroupedByLocation,\n reportsGroupedByVillageAndDate: action.reportsGroupedByVillageAndDate,\n reportsGroupedByHealthRiskAndDate:\n action.reportsGroupedByHealthRiskAndDate,\n reportsGroupedByFeaturesAndDate: action.reportsGroupedByFeaturesAndDate,\n reportsGroupedByFeatures: action.reportsGroupedByFeatures,\n keptReportsInEscalatedAlertsHistogramData:\n action.keptReportsInEscalatedAlertsHistogramData,\n isFetching: false,\n };\n\n case actions.GET_NATIONAL_SOCIETY_DASHBOARD_DATA.FAILURE:\n return { ...state, isFetching: false };\n\n case actions.GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS.REQUEST:\n return {\n ...state,\n reportsGroupedByLocationDetails: null,\n reportsGroupedByLocationDetailsFetching: true,\n };\n\n case actions.GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS.SUCCESS:\n return {\n ...state,\n reportsGroupedByLocationDetails: action.data,\n reportsGroupedByLocationDetailsFetching: false,\n };\n\n case actions.GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS.FAILURE:\n return { ...state, reportsGroupedByLocationDetailsFetching: false };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_TRANSLATIONS_LIST = action(\"OPEN_TRANSLATIONS_LIST\");\nexport const GET_TRANSLATIONS = action(\"GET_TRANSLATIONS\");\nexport const OPEN_EMAIL_TRANSLATIONS_LIST = action(\n \"OPEN_EMAIL_TRANSLATIONS_LIST\",\n);\nexport const GET_EMAIL_TRANSLATIONS = action(\"GET_EMAIL_TRANSLATIONS\");\nexport const OPEN_SMS_TRANSLATIONS_LIST = action(\"OPEN_SMS_TRANSLATIONS_LIST\");\nexport const GET_SMS_TRANSLATIONS = action(\"GET_SMS_TRANSLATIONS\");\n","import * as actions from \"./translationsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\nimport * as appActions from \"../../app/logic/appConstans\";\nimport { assignInArray, removeFromArray } from \"../../../utils/immutable\";\n\nexport function translationsReducer(state = initialState.translations, action) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.OPEN_TRANSLATIONS_LIST.INVOKE:\n return { ...state };\n\n case actions.OPEN_TRANSLATIONS_LIST.SUCCESS:\n return { ...state };\n\n case actions.GET_TRANSLATIONS.REQUEST:\n return {\n ...state,\n listFetching: true,\n listLanguages: [],\n listTranslations: [],\n };\n\n case actions.GET_TRANSLATIONS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listLanguages: action.data.languages,\n listTranslations: action.data.translations,\n };\n\n case actions.GET_TRANSLATIONS.FAILURE:\n return { ...state, listFetching: false };\n\n case actions.GET_EMAIL_TRANSLATIONS.REQUEST:\n return {\n ...state,\n listFetching: true,\n emailLanguages: [],\n emailTranslations: [],\n };\n\n case actions.GET_EMAIL_TRANSLATIONS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n emailLanguages: action.data.languages,\n emailTranslations: action.data.translations,\n };\n\n case actions.GET_EMAIL_TRANSLATIONS.FAILURE:\n return { ...state, listFetching: false };\n\n case actions.GET_SMS_TRANSLATIONS.REQUEST:\n return {\n ...state,\n listFetching: true,\n smsLanguages: [],\n smsTranslations: [],\n };\n\n case actions.GET_SMS_TRANSLATIONS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n smsLanguages: action.data.languages,\n smsTranslations: action.data.translations,\n };\n\n case actions.GET_SMS_TRANSLATIONS.FAILURE:\n return { ...state, listFetching: false };\n\n case appActions.STRINGS_UPDATED:\n return {\n ...state,\n listTranslations: state.listTranslations.some(\n (t) => t.key === action.key,\n )\n ? assignInArray(\n state.listTranslations,\n (item) => item.key === action.key,\n (item) => ({\n ...item,\n translations: action.translations,\n }),\n )\n : [\n ...state.listTranslations,\n {\n key: action.key,\n translations: action.translations,\n },\n ],\n };\n\n case appActions.SMS_STRINGS_UPDATED:\n return {\n ...state,\n smsTranslations: state.smsTranslations.some((t) => t.key === action.key)\n ? assignInArray(\n state.smsTranslations,\n (item) => item.key === action.key,\n (item) => ({\n ...item,\n translations: action.translations,\n }),\n )\n : [\n ...state.smsTranslations,\n {\n key: action.key,\n translations: action.translations,\n },\n ],\n };\n\n case appActions.EMAIL_STRINGS_UPDATED:\n return {\n ...state,\n emailTranslations: state.emailTranslations.some(\n (t) => t.key === action.key,\n )\n ? assignInArray(\n state.emailTranslations,\n (item) => item.key === action.key,\n (item) => ({\n ...item,\n translations: action.translations,\n }),\n )\n : [\n ...state.emailTranslations,\n {\n key: action.key,\n translations: action.translations,\n },\n ],\n };\n\n case appActions.STRINGS_DELETED:\n return {\n ...state,\n listTranslations: removeFromArray(\n state.listTranslations,\n (item) => item.key === action.key,\n ),\n };\n case appActions.SMS_STRINGS_DELETED:\n return {\n ...state,\n smsTranslations: removeFromArray(\n state.smsTranslations,\n (item) => item.key === action.key,\n ),\n };\n case appActions.EMAIL_STRINGS_DELETED:\n return {\n ...state,\n emailTranslations: removeFromArray(\n state.emailTranslations,\n (item) => item.key === action.key,\n ),\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_ORGANIZATIONS_LIST = action(\"OPEN_ORGANIZATIONS_LIST\");\nexport const GET_ORGANIZATIONS = action(\"GET_ORGANIZATIONS\");\nexport const OPEN_ORGANIZATION_CREATION = action(\"OPEN_ORGANIZATION_CREATION\");\nexport const CREATE_ORGANIZATION = action(\"CREATE_ORGANIZATION\");\nexport const OPEN_ORGANIZATION_EDITION = action(\"OPEN_ORGANIZATION_EDITION\");\nexport const EDIT_ORGANIZATION = action(\"EDIT_ORGANIZATION\");\nexport const REMOVE_ORGANIZATION = action(\"REMOVE_ORGANIZATION\");\n","import * as actions from \"./organizationsConstants\";\nimport * as nationalSocietyActions from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function organizationsReducer(\n state = initialState.organizations,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.OPEN_ORGANIZATIONS_LIST.INVOKE:\n return {\n ...state,\n listStale:\n state.listStale ||\n action.nationalSocietyId !== state.listNationalSocietyId,\n };\n\n case actions.OPEN_ORGANIZATIONS_LIST.SUCCESS:\n return { ...state, listNationalSocietyId: action.nationalSocietyId };\n\n case actions.GET_ORGANIZATIONS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_ORGANIZATIONS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listData: action.list,\n listStale: false,\n };\n\n case actions.GET_ORGANIZATIONS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_ORGANIZATION_EDITION.INVOKE:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_ORGANIZATION_EDITION.REQUEST:\n return { ...state, formFetching: true, formData: null };\n\n case actions.OPEN_ORGANIZATION_EDITION.SUCCESS:\n return { ...state, formFetching: false, formData: action.data };\n\n case actions.OPEN_ORGANIZATION_EDITION.FAILURE:\n return { ...state, formFetching: false };\n\n case actions.CREATE_ORGANIZATION.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_ORGANIZATION.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_ORGANIZATION.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_ORGANIZATION.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_ORGANIZATION.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.EDIT_ORGANIZATION.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.REMOVE_ORGANIZATION.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_ORGANIZATION.SUCCESS:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n listStale: true,\n };\n\n case actions.REMOVE_ORGANIZATION.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n case nationalSocietyActions.ARCHIVE_NATIONAL_SOCIETY.SUCCESS:\n return { ...state, listStale: true };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_PROJECT_ORGANIZATIONS_LIST = action(\n \"OPEN_PROJECT_ORGANIZATIONS_LIST\",\n);\nexport const GET_PROJECT_ORGANIZATIONS = action(\"GET_PROJECT_ORGANIZATIONS\");\nexport const OPEN_PROJECT_ORGANIZATION_CREATION = action(\n \"OPEN_PROJECT_ORGANIZATION_CREATION\",\n);\nexport const CREATE_PROJECT_ORGANIZATION = action(\n \"CREATE_PROJECT_ORGANIZATION\",\n);\nexport const REMOVE_PROJECT_ORGANIZATION = action(\n \"REMOVE_PROJECT_ORGANIZATION\",\n);\n","import * as actions from \"./projectOrganizationsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function projectOrganizationsReducer(\n state = initialState.projectOrganizations,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.OPEN_PROJECT_ORGANIZATIONS_LIST.INVOKE:\n return {\n ...state,\n listStale: state.listStale || action.projectId !== state.listProjectId,\n };\n\n case actions.OPEN_PROJECT_ORGANIZATIONS_LIST.SUCCESS:\n return { ...state, listProjectId: action.projectId };\n\n case actions.GET_PROJECT_ORGANIZATIONS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_PROJECT_ORGANIZATIONS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listData: action.list,\n listStale: false,\n };\n\n case actions.GET_PROJECT_ORGANIZATIONS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_PROJECT_ORGANIZATION_CREATION.SUCCESS:\n return { ...state, formData: action.formData };\n\n case actions.CREATE_PROJECT_ORGANIZATION.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_PROJECT_ORGANIZATION.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_PROJECT_ORGANIZATION.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.REMOVE_PROJECT_ORGANIZATION.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_PROJECT_ORGANIZATION.SUCCESS:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n listStale: true,\n };\n\n case actions.REMOVE_PROJECT_ORGANIZATION.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_ALERT_RECIPIENTS_LIST = action(\"OPEN_ALERT_RECIPIENTS_LIST\");\nexport const GET_ALERT_RECIPIENTS = action(\"GET_ALERT_RECIPIENTS\");\nexport const OPEN_ALERT_RECIPIENT_CREATION = action(\n \"OPEN_ALERT_RECIPIENT_CREATION\",\n);\nexport const OPEN_ALERT_RECIPIENT_EDITION = action(\n \"OPEN_ALERT_RECIPIENT_EDITION\",\n);\nexport const CREATE_ALERT_RECIPIENT = action(\"CREATE_ALERT_RECIPIENT\");\nexport const EDIT_ALERT_RECIPIENT = action(\"EDIT_ALERT_RECIPIENT\");\nexport const REMOVE_ALERT_RECIPIENT = action(\"REMOVE_ALERT_RECIPIENT\");\n","import * as actions from \"./projectAlertRecipientsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function projectAlertRecipientsReducer(\n state = initialState.projectAlertRecipients,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.OPEN_ALERT_RECIPIENTS_LIST.INVOKE:\n return {\n ...state,\n listStale: state.listStale || action.projectId !== state.listProjectId,\n };\n\n case actions.OPEN_ALERT_RECIPIENTS_LIST.SUCCESS:\n return { ...state, listProjectId: action.projectId };\n\n case actions.GET_ALERT_RECIPIENTS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_ALERT_RECIPIENTS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listData: action.list,\n listStale: false,\n };\n\n case actions.GET_ALERT_RECIPIENTS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.OPEN_ALERT_RECIPIENT_CREATION.SUCCESS:\n return { ...state, formData: action.formData };\n\n case actions.OPEN_ALERT_RECIPIENT_EDITION.SUCCESS:\n return {\n ...state,\n recipient: action.recipient,\n formData: action.formData,\n };\n\n case actions.CREATE_ALERT_RECIPIENT.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.CREATE_ALERT_RECIPIENT.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_ALERT_RECIPIENT.FAILURE:\n return { ...state, formSaving: false, formError: action.message };\n\n case actions.EDIT_ALERT_RECIPIENT.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_ALERT_RECIPIENT.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.EDIT_ALERT_RECIPIENT.FAILURE:\n return { ...state, formSaving: false, formError: action.message };\n\n case actions.REMOVE_ALERT_RECIPIENT.REQUEST:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, true),\n };\n\n case actions.REMOVE_ALERT_RECIPIENT.SUCCESS:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n listStale: true,\n };\n\n case actions.REMOVE_ALERT_RECIPIENT.FAILURE:\n return {\n ...state,\n listRemoving: setProperty(state.listRemoving, action.id, undefined),\n };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const OPEN_ALERT_NOT_HANDLED_RECIPIENTS = action(\n \"OPEN_ALERT_NOT_HANDLED_RECIPIENTS\",\n);\nexport const GET_ALERT_NOT_HANDLED_RECIPIENTS = action(\n \"GET_ALERT_NOT_HANDLED_RECIPIENTS\",\n);\nexport const CREATE_ALERT_NOT_HANDLED_RECIPIENT = action(\n \"CREATE_ALERT_NOT_HANDLED_RECIPIENT\",\n);\nexport const EDIT_ALERT_NOT_HANDLED_RECIPIENT = action(\n \"EDIT_ALERT_NOT_HANDLED_RECIPIENT\",\n);\nexport const REMOVE_ALERT_NOT_HANDLED_RECIPIENT = action(\n \"REMOVE_ALERT_NOT_HANDLED_RECIPIENT\",\n);\nexport const GET_ALERT_NOT_HANDLED_FORM_DATA = action(\n \"GET_ALERT_NOT_HANDLED_FORM_DATA\",\n);\n","import * as actions from \"./projectAlertNotHandledRecipientsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\n\nexport function projectAlertNotHandledRecipientsReducer(\n state = initialState.projectAlertNotHandledRecipients,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, formData: null, formError: null };\n\n case actions.OPEN_ALERT_NOT_HANDLED_RECIPIENTS.INVOKE:\n return {\n ...state,\n listStale: state.listStale || action.projectId !== state.projectId,\n };\n\n case actions.OPEN_ALERT_NOT_HANDLED_RECIPIENTS.SUCCESS:\n return { ...state, projectId: action.projectId };\n\n case actions.GET_ALERT_NOT_HANDLED_RECIPIENTS.REQUEST:\n return { ...state, listFetching: true, listData: [] };\n\n case actions.GET_ALERT_NOT_HANDLED_RECIPIENTS.SUCCESS:\n return {\n ...state,\n listFetching: false,\n listData: action.recipients,\n listStale: false,\n };\n\n case actions.GET_ALERT_NOT_HANDLED_RECIPIENTS.FAILURE:\n return { ...state, listFetching: false, listData: [] };\n\n case actions.CREATE_ALERT_NOT_HANDLED_RECIPIENT.REQUEST:\n return { ...state };\n\n case actions.CREATE_ALERT_NOT_HANDLED_RECIPIENT.SUCCESS:\n return { ...state, listStale: true };\n\n case actions.CREATE_ALERT_NOT_HANDLED_RECIPIENT.FAILURE:\n return { ...state };\n\n case actions.EDIT_ALERT_NOT_HANDLED_RECIPIENT.REQUEST:\n return { ...state, saving: true };\n\n case actions.EDIT_ALERT_NOT_HANDLED_RECIPIENT.SUCCESS:\n return { ...state, saving: false, listStale: true };\n\n case actions.EDIT_ALERT_NOT_HANDLED_RECIPIENT.FAILURE:\n return { ...state, saving: false };\n\n case actions.REMOVE_ALERT_NOT_HANDLED_RECIPIENT.REQUEST:\n return { ...state, saving: true };\n\n case actions.REMOVE_ALERT_NOT_HANDLED_RECIPIENT.SUCCESS:\n return { ...state, saving: false, listStale: true };\n\n case actions.REMOVE_ALERT_NOT_HANDLED_RECIPIENT.FAILURE:\n return { ...state, saving: false };\n\n case actions.GET_ALERT_NOT_HANDLED_FORM_DATA.REQUEST:\n return { ...state, formDataFetching: true };\n\n case actions.GET_ALERT_NOT_HANDLED_FORM_DATA.SUCCESS:\n return { ...state, formDataFetching: false, users: action.users };\n\n case actions.GET_ALERT_NOT_HANDLED_FORM_DATA.FAILURE:\n return { ...state, formDataFetching: false, users: [] };\n\n default:\n return state;\n }\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const logType = {\n triggeredAlert: \"TriggeredAlert\",\n escalatedAlert: \"EscalatedAlert\",\n dismissedAlert: \"DismissedAlert\",\n closedAlert: \"ClosedAlert\",\n acceptedReport: \"AcceptedReport\",\n rejectedReport: \"RejectedReport\",\n};\n\nexport const OPEN_ALERT_EVENT_LOG = action(\"OPEN_ALERT_EVENT_LOG\");\nexport const GET_ALERT_EVENT_LOG = action(\"GET_ALERT_EVENT_LOG\");\nexport const OPEN_ALERT_EVENT_CREATION = action(\"OPEN_ALERT_EVENT_CREATION\");\nexport const CREATE_ALERT_EVENT = action(\"CREATE_ALERT_EVENT\");\nexport const EDIT_ALERT_EVENT = action(\"EDIT_ALERT_EVENT\");\nexport const DELETE_ALERT_EVENT = action(\"DELETE_ALERT_EVENT\");\n","import * as actions from \"./alertEventsConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\n\nexport function alertEventsReducer(state = initialState.alertEvents, action) {\n switch (action.type) {\n case actions.OPEN_ALERT_EVENT_LOG.REQUEST:\n return { ...state, logFetching: true };\n\n case actions.OPEN_ALERT_EVENT_LOG.SUCCESS:\n return { ...state, logFetching: false, logItems: action.data.logItems };\n\n case actions.OPEN_ALERT_EVENT_LOG.FAILURE:\n return { ...state, logFetching: false };\n\n case actions.GET_ALERT_EVENT_LOG.REQUEST:\n return { ...state, logFetching: true, logItems: null };\n\n case actions.GET_ALERT_EVENT_LOG.SUCCESS:\n return { ...state, logFetching: false, logItems: action.data.logItems };\n\n case actions.GET_ALERT_EVENT_LOG.FAILURE:\n return { ...state, logFetching: false };\n\n case actions.OPEN_ALERT_EVENT_CREATION.REQUEST:\n return { ...state, formFetching: true };\n\n case actions.OPEN_ALERT_EVENT_CREATION.SUCCESS:\n return {\n ...state,\n formFetching: false,\n eventTypes: action.alertEventTypes,\n eventSubtypes: action.alertEventSubtypes,\n };\n\n case actions.OPEN_ALERT_EVENT_CREATION.FAILURE:\n return { ...state, formFetching: false, formError: action.message };\n\n case actions.CREATE_ALERT_EVENT.REQUEST:\n return { ...state, formSaving: true, formError: null };\n\n case actions.CREATE_ALERT_EVENT.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.CREATE_ALERT_EVENT.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.EDIT_ALERT_EVENT.REQUEST:\n return { ...state, formSaving: true, formError: null };\n\n case actions.EDIT_ALERT_EVENT.SUCCESS:\n return { ...state, formSaving: false, listStale: true };\n\n case actions.EDIT_ALERT_EVENT.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.DELETE_ALERT_EVENT.REQUEST:\n return {\n ...state,\n logRemoving: setProperty(\n state.logRemoving,\n action.alertEventLogId,\n true,\n ),\n };\n\n case actions.DELETE_ALERT_EVENT.SUCCESS:\n return {\n ...state,\n logRemoving: setProperty(\n state.logRemoving,\n action.alertEventLogId,\n undefined,\n ),\n listStale: true,\n };\n\n case actions.DELETE_ALERT_EVENT.FAILURE:\n return {\n ...state,\n logRemoving: setProperty(\n state.logRemoving,\n action.alertEventLogId,\n undefined,\n ),\n };\n\n default:\n return state;\n }\n}\n","import { put, takeEvery, select } from \"redux-saga/effects\";\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\nimport { action } from \"./actions\";\nimport { initialState } from \"../initialState\";\n\nconst INIT_TRACKING = action(\"INIT_TRACKING\");\nconst TRACK_PAGEVIEW = action(\"TRACK_PAGEVIEW\");\nconst TRACK_TRACE = action(\"TRACK_TRACE\");\n\nexport const actions = {\n pageView: (alias) => ({ type: TRACK_PAGEVIEW.INVOKE, alias }),\n trackTrace: (message, properties) => ({\n type: TRACK_TRACE.INVOKE,\n message,\n properties,\n }),\n};\n\nexport const trackingSagas = () => [\n takeEvery(INIT_TRACKING.INVOKE, initTracking),\n takeEvery(TRACK_PAGEVIEW.INVOKE, trackPage),\n takeEvery(TRACK_TRACE.INVOKE, trackTrace),\n];\n\nexport function trackingReducer(state = initialState.tracking, action) {\n switch (action.type) {\n case INIT_TRACKING.SUCCESS:\n return {\n ...state,\n appInsights: action.appInsights,\n };\n default:\n return state;\n }\n}\n\nexport function* initTracking() {\n const appData = yield select((state) => state.appData);\n\n const appInsights = new ApplicationInsights({\n config: {\n connectionString: appData.applicationInsightsConnectionString,\n },\n });\n appInsights.loadAppInsights();\n\n yield put({ type: INIT_TRACKING.SUCCESS, appInsights });\n}\n\nfunction* trackPage({ alias }) {\n const user = yield select((state) => state.appData.user);\n const appInsights = yield select((state) => state.tracking.appInsights);\n\n appInsights.trackPageView({\n properties: {\n alias,\n userRole: user.roles[0],\n },\n });\n}\n\nexport function* trackTrace({ message, properties }) {\n const user = yield select((state) => state.appData.user);\n const appInsights = yield select((state) => state.tracking.appInsights);\n\n appInsights.trackTrace({\n message,\n properties: {\n ...properties,\n userRole: user.roles[0],\n },\n });\n}\n","import { action } from \"../../../utils/actions\";\n\nexport const GET_EIDSR_INTEGRATION = action(\"GET_EIDSR_INTEGRATION\");\nexport const EDIT_EIDSR_INTEGRATION = action(\"EDIT_EIDSR_INTEGRATION\");\n\nexport const GET_EIDSR_ORGANISATION_UNITS = action(\n \"GET_EIDSR_ORGANISATION_UNITS\",\n);\nexport const GET_EIDSR_PROGRAM = action(\"GET_EIDSR_PROGRAM\");\n","import * as actions from \"./eidsrIntegrationConstants\";\nimport * as nationalSocietyActions from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { initialState } from \"../../../initialState\";\nimport { setProperty } from \"../../../utils/immutable\";\nimport { LOCATION_CHANGE } from \"connected-react-router\";\nimport { GET_EIDSR_ORGANISATION_UNITS } from \"./eidsrIntegrationConstants\";\n\nexport function eidsrIntegrationReducer(\n state = initialState.eidsrIntegration,\n action,\n) {\n switch (action.type) {\n case LOCATION_CHANGE: // cleanup\n return { ...state, data: null, formError: null };\n\n case actions.GET_EIDSR_INTEGRATION.INVOKE:\n return { ...state, isFetching: true };\n\n case actions.GET_EIDSR_INTEGRATION.REQUEST:\n return { ...state };\n\n case actions.GET_EIDSR_INTEGRATION.SUCCESS:\n return { ...state, data: action.data, isFetching: false };\n\n case actions.GET_EIDSR_INTEGRATION.FAILURE:\n return { ...state, isFetching: false };\n\n case actions.EDIT_EIDSR_INTEGRATION.REQUEST:\n return { ...state, formSaving: true };\n\n case actions.EDIT_EIDSR_INTEGRATION.SUCCESS:\n return { ...state, formSaving: false, data: {} };\n\n case actions.EDIT_EIDSR_INTEGRATION.FAILURE:\n return { ...state, formSaving: false, formError: action.error };\n\n case actions.GET_EIDSR_ORGANISATION_UNITS.REQUEST:\n return { ...state, organisationUnitsIsFetching: true };\n\n case actions.GET_EIDSR_ORGANISATION_UNITS.SUCCESS:\n return {\n ...state,\n organisationUnits: action.organisationUnits,\n organisationUnitsIsFetching: false,\n };\n\n case actions.GET_EIDSR_ORGANISATION_UNITS.FAILURE:\n return {\n ...state,\n organisationUnitsIsFetching: false,\n formError: action.error,\n };\n\n case actions.GET_EIDSR_PROGRAM.REQUEST:\n return { ...state, programIsFetching: true };\n\n case actions.GET_EIDSR_PROGRAM.SUCCESS:\n return { ...state, program: action.program, programIsFetching: false };\n\n case actions.GET_EIDSR_PROGRAM.FAILURE:\n return { ...state, programIsFetching: false, formError: action.error };\n\n default:\n return state;\n }\n}\n","import { appReducer } from \"../components/app/logic/appReducer\";\nimport { authReducer } from \"../authentication/authReducer\";\nimport { connectRouter } from \"connected-react-router\";\nimport { combineReducers } from \"redux\";\nimport { nationalSocietiesReducer } from \"../components/nationalSocieties/logic/nationalSocietiesReducer\";\nimport { smsGatewaysReducer } from \"../components/smsGateways/logic/smsGatewaysReducer\";\nimport { projectsReducer } from \"../components/projects/logic/projectsReducer\";\nimport { projectSetupReducer } from \"../components/projectSetup/logic/projectSetupReducer\";\nimport { requestReducer } from \"../components/app/logic/requestReducer\";\nimport { globalCoordinatorsReducer } from \"../components/globalCoordinators/logic/globalCoordinatorsReducer\";\nimport { healthRisksReducer } from \"../components/healthRisks/logic/healthRisksReducer\";\nimport { suspectedDiseaseReducer } from \"../components/suspectedDiseases/logic/suspectedDiseaseReducer\";\nimport { nationalSocietyUsersReducer } from \"../components/nationalSocietyUsers/logic/nationalSocietyUsersReducer\";\nimport { dataCollectorsReducer } from \"../components/dataCollectors/logic/dataCollectorsReducer\";\nimport { agreementsReducer } from \"../components/agreements/logic/agreementsReducer\";\nimport { reportsReducer } from \"../components/reports/logic/reportsReducer\";\nimport { nationalSocietyReportsReducer } from \"../components/nationalSocietyReports/logic/nationalSocietyReportsReducer\";\nimport { nationalSocietyStructureReducer } from \"../components/nationalSocietyStructure/logic/nationalSocietyStructureReducer\";\nimport { projectDashboardReducer } from \"../components/projectDashboard/logic/projectDashboardReducer\";\nimport { alertsReducer } from \"../components/alerts/logic/alertsReducer\";\nimport { nationalSocietyDashboardReducer } from \"../components/nationalSocietyDashboard/logic/nationalSocietyDashboardReducer\";\nimport { translationsReducer } from \"../components/translations/logic/translationsReducer\";\nimport { organizationsReducer } from \"../components/organizations/logic/organizationsReducer\";\nimport { projectOrganizationsReducer } from \"../components/projectOrganizations/logic/projectOrganizationsReducer\";\nimport { projectAlertRecipientsReducer } from \"../components/projectAlertRecipients/logic/projectAlertRecipientsReducer\";\nimport { projectAlertNotHandledRecipientsReducer } from \"../components/projectAlertNotHandledRecipient/logic/projectAlertNotHandledRecipientsReducer\";\nimport { alertEventsReducer } from \"../components/alertEvents/logic/alertEventsReducer\";\nimport { trackingReducer } from \"../utils/tracking\";\nimport { eidsrIntegrationReducer } from \"../components/eidsrIntegration/logic/eidsrIntegrationReducer\";\n\nexport const createRootReducer = (history) =>\n combineReducers({\n router: connectRouter(history),\n appData: appReducer,\n requests: requestReducer,\n auth: authReducer,\n nationalSocieties: nationalSocietiesReducer,\n nationalSocietyStructure: nationalSocietyStructureReducer,\n smsGateways: smsGatewaysReducer,\n eidsrIntegration: eidsrIntegrationReducer,\n organizations: organizationsReducer,\n projects: projectsReducer,\n projectSetup: projectSetupReducer,\n projectDashboard: projectDashboardReducer,\n projectOrganizations: projectOrganizationsReducer,\n projectAlertRecipients: projectAlertRecipientsReducer,\n globalCoordinators: globalCoordinatorsReducer,\n healthRisks: healthRisksReducer,\n suspectedDiseases: suspectedDiseaseReducer,\n nationalSocietyUsers: nationalSocietyUsersReducer,\n dataCollectors: dataCollectorsReducer,\n agreements: agreementsReducer,\n reports: reportsReducer,\n nationalSocietyReports: nationalSocietyReportsReducer,\n nationalSocietyDashboard: nationalSocietyDashboardReducer,\n alerts: alertsReducer,\n alertEvents: alertEventsReducer,\n translations: translationsReducer,\n projectAlertNotHandledRecipients: projectAlertNotHandledRecipientsReducer,\n tracking: trackingReducer,\n });\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const nationalSocietyLeftMenuOrder = {\n dashboard: 0,\n projects: 10,\n userlist: 20,\n nationalSocietyReports: 30,\n settings: 40,\n};\n\nexport const nationalSocietiesSiteMap = [\n {\n path: \"/nationalsocieties\",\n title: () => strings(stringKeys.nationalSociety.title),\n placeholder: placeholders.generalMenu,\n access: accessMap.nationalSocieties.list,\n icon: \"NationalSocieties\",\n },\n {\n parentPath: \"/nationalsocieties\",\n path: \"/nationalsocieties/add\",\n title: () => strings(stringKeys.nationalSociety.form.creationTitle),\n access: accessMap.nationalSocieties.add,\n },\n {\n parentPath: \"/nationalsocieties\",\n path: \"/nationalsocieties/:nationalSocietyId\",\n title: () => \"{nationalSocietyName}\",\n access: accessMap.nationalSocieties.get,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/overview\",\n path: \"/nationalsocieties/:nationalSocietyId/edit\",\n title: () => strings(stringKeys.nationalSociety.form.editionTitle),\n access: accessMap.nationalSocieties.edit,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId\",\n path: \"/nationalsocieties/:nationalSocietyId/settings\",\n title: () => strings(stringKeys.nationalSociety.settings.title),\n placeholder: placeholders.leftMenu,\n placeholderIndex: nationalSocietyLeftMenuOrder.settings,\n access: accessMap.nationalSocieties.edit,\n icon: \"Settings\",\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/overview\",\n title: () => strings(stringKeys.nationalSociety.overview.title),\n placeholder: placeholders.tabMenu,\n placeholderIndex: 1,\n access: accessMap.nationalSocieties.edit,\n middleStepOnly: true,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const smsGatewaysSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/smsgateways\",\n title: () => strings(stringKeys.smsGateway.title),\n placeholder: placeholders.tabMenu,\n access: accessMap.smsGateways.list,\n placeholderIndex: 2,\n middleStepOnly: true,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/smsgateways\",\n path: \"/nationalsocieties/:nationalSocietyId/smsgateways/add\",\n title: () => strings(stringKeys.smsGateway.form.creationTitle),\n access: accessMap.smsGateways.add,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/smsgateways\",\n path: \"/nationalsocieties/:nationalSocietyId/smsgateways/:smsGatewayId/edit\",\n title: () => strings(stringKeys.smsGateway.form.editionTitle),\n access: accessMap.smsGateways.edit,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { nationalSocietyLeftMenuOrder } from \"../../nationalSocieties/logic/nationalSocietiesSiteMap\";\n\nexport const projectTabMenuOrder = {\n dashboard: 0,\n alerts: 10,\n reports: 20,\n dataCollectors: 30,\n settings: 40,\n};\n\nconst projectSubMenuOrder = {\n general: 0,\n healthRisks: 1,\n unhandledAlertRecipients: 2,\n escalatedAlertRecipients: 3,\n errorMessages: 4,\n};\n\nexport const projectsSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId\",\n path: \"/nationalsocieties/:nationalSocietyId/projects\",\n title: () => strings(stringKeys.project.title),\n placeholder: placeholders.leftMenu,\n access: accessMap.projects.list,\n placeholderIndex: nationalSocietyLeftMenuOrder.projects,\n icon: \"Project\",\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/projects\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/add\",\n title: () => strings(stringKeys.project.form.creationTitle),\n access: accessMap.projects.add,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/projects\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/:projectId\",\n title: () => \"{projectName}\",\n access: accessMap.projects.get,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/projects/:projectId\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n title: () => strings(stringKeys.project.settingsRootTitle),\n placeholder: placeholders.projectTabMenu,\n access: accessMap.projects.settings,\n placeholderIndex: projectTabMenuOrder.settings,\n icon: \"Settings\",\n },\n {\n parentPath:\n \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/:projectId/overview\",\n title: () => strings(stringKeys.project.settings),\n access: accessMap.projects.overview,\n placeholder: placeholders.projectSubMenu,\n placeholderIndex: 1,\n middleStepOnly: true,\n },\n {\n parentPath:\n \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/:projectId/edit\",\n title: () => strings(stringKeys.project.form.editionTitle),\n access: accessMap.projects.edit,\n },\n {\n parentPath:\n \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/:projectId/healthrisks\",\n title: () => strings(stringKeys.healthRisk.title),\n placeholder: placeholders.projectSubMenu,\n access: accessMap.projects.projectHealthRisks,\n placeholderIndex: projectSubMenuOrder.healthRisks,\n middleStepOnly: true,\n icon: \"HealthRisks\"\n },\n {\n parentPath:\n \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/:projectId/editHealthRisks\",\n title: () => strings(stringKeys.project.form.healthRisksEditionTitle),\n access: accessMap.projects.edit,\n },\n {\n parentPath:\n \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n path: \"/projects/:projectId/escalatedAlertNotifications\",\n title: () => strings(stringKeys.projectAlertRecipient.title),\n placeholder: placeholders.projectSubMenu,\n access: accessMap.projectAlertNotifications.list,\n placeholderIndex: projectSubMenuOrder.escalatedAlertRecipients,\n middleStepOnly: true,\n },\n {\n parentPath:\n \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n path: \"/projects/:projectId/unhandledAlertNotifications\",\n title: () => strings(stringKeys.projectAlertNotHandledRecipient.title),\n placeholder: placeholders.projectSubMenu,\n access: accessMap.projectAlertNotifications.list,\n placeholderIndex: projectSubMenuOrder.unhandledAlertRecipients,\n middleStepOnly: true,\n },\n {\n parentPath: \"/projects/:projectId/escalatedAlertNotifications\",\n path: \"/projects/:projectId/escalatedAlertNotifications/addRecipient\",\n title: () => strings(stringKeys.projectAlertRecipient.form.creationTitle),\n access: accessMap.projectAlertNotifications.addRecipient,\n },\n {\n parentPath: \"/projects/:projectId/escalatedAlertNotifications\",\n path: \"/projects/:projectId/escalatedAlertNotifications/:alertRecipientId/editRecipient\",\n title: () => strings(stringKeys.projectAlertRecipient.form.editionTitle),\n access: accessMap.projectAlertNotifications.editRecipient,\n },\n {\n parentPath:\n \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n path: \"/projects/:projectId/errorMessages\",\n title: () => strings(stringKeys.project.errorMessages.title),\n placeholder: placeholders.projectSubMenu,\n access: accessMap.projectErrorMessages.list,\n placeholderIndex: 4,\n middleStepOnly: true,\n },\n];\n","import { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const projectSetupSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/projects\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/setup\",\n title: () => strings(stringKeys.project.form.creationTitle),\n access: accessMap.projects.add,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nexport const globalCoordinatorsSiteMap = [\n {\n path: \"/globalcoordinators\",\n title: () => strings(stringKeys.globalCoordinator.title),\n placeholder: placeholders.generalMenu,\n access: accessMap.globalCoordinators.list,\n icon: \"GlobalCoordinators\",\n },\n {\n parentPath: \"/globalcoordinators\",\n path: \"/globalcoordinators/add\",\n title: () => strings(stringKeys.globalCoordinator.form.creationTitle),\n access: accessMap.globalCoordinators.add,\n },\n {\n parentPath: \"/globalcoordinators\",\n path: \"/globalcoordinators/:globalCoordinatorId/edit\",\n title: () => strings(stringKeys.globalCoordinator.form.editionTitle),\n access: accessMap.globalCoordinators.edit,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const healthRisksSiteMap = [\n {\n path: \"/healthrisks\",\n title: () => strings(stringKeys.healthRisk.title),\n placeholder: placeholders.generalMenu,\n access: accessMap.healthRisks.list,\n icon: \"HealthRisks\",\n },\n {\n path: \"/healthrisks\",\n title: () => strings(stringKeys.healthRisk.title),\n placeholder: placeholders.tabMenu,\n access: accessMap.healthRisks.list,\n placeholderIndex: 1,\n },\n {\n parentPath: \"/healthrisks\",\n path: \"/healthrisks/add\",\n title: () => strings(stringKeys.healthRisk.form.creationTitle),\n access: accessMap.healthRisks.add,\n },\n {\n parentPath: \"/healthrisks\",\n path: \"/healthrisks/:healthRiskId/edit\",\n title: () => strings(stringKeys.healthRisk.form.editionTitle),\n access: accessMap.healthRisks.edit,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const suspectedDiseaseSiteMap = [\n {\n path: \"/suspecteddiseases\",\n title: () => strings(stringKeys.suspectedDisease.title),\n placeholder: placeholders.tabMenu,\n access: accessMap.suspectedDiseases.list,\n placeholderIndex: 2,\n },\n {\n parentPath: \"/suspecteddiseases\",\n path: \"/suspecteddiseases/add\",\n title: () => strings(stringKeys.suspectedDisease.form.creationTitle),\n access: accessMap.suspectedDiseases.add,\n },\n {\n parentPath: \"/suspecteddiseases\",\n path: \"/suspecteddiseases/:suspecteddiseaseId/edit\",\n title: () => strings(stringKeys.suspectedDisease.form.editionTitle),\n access: accessMap.suspectedDiseases.edit,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { nationalSocietyLeftMenuOrder } from \"../../nationalSocieties/logic/nationalSocietiesSiteMap\";\n\nexport const nationalSocietyUsersSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId\",\n path: \"/nationalsocieties/:nationalSocietyId/users\",\n title: () => strings(stringKeys.nationalSocietyUser.title),\n placeholder: placeholders.leftMenu,\n placeholderIndex: nationalSocietyLeftMenuOrder.userlist,\n access: accessMap.nationalSocietyUsers.list,\n icon: \"Users\",\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/users\",\n path: \"/nationalsocieties/:nationalSocietyId/users/add\",\n title: () => strings(stringKeys.nationalSocietyUser.form.creationTitle),\n access: accessMap.nationalSocietyUsers.add,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/users\",\n path: \"/nationalsocieties/:nationalSocietyId/users/addExisting\",\n title: () => strings(stringKeys.nationalSocietyUser.form.addExistingTitle),\n access: accessMap.nationalSocietyUsers.add,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/users\",\n path: \"/nationalsocieties/:nationalSocietyId/users/:nationalSocietyUserId/edit\",\n title: () => strings(stringKeys.nationalSocietyUser.form.editionTitle),\n access: accessMap.nationalSocietyUsers.edit,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { projectTabMenuOrder } from \"../../projects/logic/projectsSiteMap\";\n\nexport const dataCollectorsSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/projects/:projectId\",\n path: \"/projects/:projectId/datacollectors\",\n title: () => strings(stringKeys.dataCollectors.title),\n placeholder: placeholders.projectTabMenu,\n access: accessMap.dataCollectors.list,\n placeholderIndex: projectTabMenuOrder.dataCollectors,\n icon: \"Users\",\n },\n {\n parentPath: \"/projects/:projectId/datacollectors\",\n path: \"/projects/:projectId/datacollectors/list\",\n title: () => strings(stringKeys.dataCollectors.list.title),\n placeholder: placeholders.projectSubMenu,\n access: accessMap.dataCollectors.list,\n placeholderIndex: 1,\n middleStepOnly: true,\n },\n {\n parentPath: \"/projects/:projectId/datacollectors\",\n path: \"/projects/:projectId/datacollectors/add\",\n title: () => strings(stringKeys.dataCollectors.form.creationTitle),\n access: accessMap.dataCollectors.add,\n },\n {\n parentPath: \"/projects/:projectId/datacollectors\",\n path: \"/projects/:projectId/datacollectors/:dataCollectorId/edit\",\n title: () => strings(stringKeys.dataCollectors.form.editionTitle),\n access: accessMap.dataCollectors.edit,\n },\n {\n parentPath: \"/projects/:projectId/datacollectors\",\n path: \"/projects/:projectId/datacollectors/mapoverview\",\n title: () => strings(stringKeys.dataCollectors.mapOverview.title),\n placeholder: placeholders.projectSubMenu,\n access: accessMap.dataCollectors.list,\n placeholderIndex: 2,\n middleStepOnly: true,\n },\n {\n parentPath: \"/projects/:projectId/datacollectors\",\n path: \"/projects/:projectId/datacollectors/performance\",\n title: () => strings(stringKeys.dataCollectors.performanceList.title),\n placeholder: placeholders.projectSubMenu,\n access: accessMap.dataCollectors.performanceList,\n placeholderIndex: 3,\n middleStepOnly: true,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { projectTabMenuOrder } from \"../../projects/logic/projectsSiteMap\";\n\nexport const reportsSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/projects/:projectId\",\n path: \"/projects/:projectId/reports\",\n title: () => strings(stringKeys.reports.title),\n placeholder: placeholders.projectTabMenu,\n access: accessMap.reports.list,\n placeholderIndex: projectTabMenuOrder.reports,\n icon: \"Report\",\n },\n {\n parentPath: \"/projects/:projectId/reports\",\n path: \"/projects/:projectId/reports/correct\",\n title: () => strings(stringKeys.reports.correctReportsTitle),\n access: accessMap.reports.list,\n placeholder: placeholders.projectSubMenu,\n placeholderIndex: 1,\n middleStepOnly: true,\n },\n {\n parentPath: \"/projects/:projectId/reports\",\n path: \"/projects/:projectId/reports/incorrect\",\n title: () => strings(stringKeys.reports.incorrectReportsTitle),\n access: accessMap.reports.list,\n placeholder: placeholders.projectSubMenu,\n placeholderIndex: 2,\n middleStepOnly: true,\n },\n {\n parentPath: \"/projects/:projectId/reports\",\n path: \"/projects/:projectId/reports/:reportId/edit\",\n title: () => strings(stringKeys.reports.form.title),\n access: accessMap.reports.edit,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { nationalSocietyLeftMenuOrder } from \"../../nationalSocieties/logic/nationalSocietiesSiteMap\";\n\nexport const nationalSocietyReportsSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId\",\n path: \"/nationalsocieties/:nationalSocietyId/reports\",\n title: () => strings(stringKeys.reports.nationalSocietyReportsTitle),\n placeholder: placeholders.leftMenu,\n access: accessMap.nationalSocietyReports.list,\n placeholderIndex: nationalSocietyLeftMenuOrder.nationalSocietyReports,\n icon: \"Report\",\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/reports\",\n path: \"/nationalsocieties/:nationalSocietyId/reports/correct\",\n title: () => strings(stringKeys.reports.correctReportsTitle),\n placeholder: placeholders.tabMenu,\n access: accessMap.nationalSocietyReports.list,\n placeholderIndex: 1,\n middleStepOnly: true,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/reports\",\n path: \"/nationalsocieties/:nationalSocietyId/reports/incorrect\",\n title: () => strings(stringKeys.reports.incorrectReportsTitle),\n placeholder: placeholders.tabMenu,\n access: accessMap.nationalSocietyReports.list,\n placeholderIndex: 1,\n middleStepOnly: true,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const nationalSocietyStructureSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/structure\",\n title: () => strings(stringKeys.nationalSociety.structure.title),\n placeholder: placeholders.tabMenu,\n placeholderIndex: 3,\n access: accessMap.nationalSocietyStructure.edit,\n middleStepOnly: true,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { projectTabMenuOrder } from \"../../projects/logic/projectsSiteMap\";\n\nexport const projectDashboardSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/projects/:projectId\",\n path: \"/nationalsocieties/:nationalSocietyId/projects/:projectId/dashboard\",\n title: () => strings(stringKeys.dashboard.title),\n access: accessMap.projects.showDashboard,\n placeholder: placeholders.projectTabMenu,\n placeholderIndex: projectTabMenuOrder.dashboard,\n icon: \"Dashboard\",\n },\n];\n","import { strings, stringKeys } from \"../../../strings\";\n\nexport const agreementsSiteMap = [\n {\n path: \"/agreements\",\n title: () => strings(stringKeys.nationalSocietyConsents.title),\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { projectTabMenuOrder } from \"../../projects/logic/projectsSiteMap\";\n\nexport const alertsSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/projects/:projectId\",\n path: \"/projects/:projectId/alerts\",\n title: () => strings(stringKeys.alerts.title),\n placeholder: placeholders.projectTabMenu,\n access: accessMap.alerts.list,\n placeholderIndex: projectTabMenuOrder.alerts,\n icon: \"Alerts\"\n },\n {\n parentPath: \"/projects/:projectId/alerts\",\n path: \"/projects/:projectId/alerts/:alertId/details\",\n title: () => strings(stringKeys.alerts.details.title),\n access: accessMap.alerts.assess,\n },\n {\n parentPath: \"/projects/:projectId/alerts/:alertId/details\",\n path: \"/projects/:projectId/alerts/:alertId/assess\",\n title: () => strings(stringKeys.alerts.assess.title),\n placeholder: placeholders.tabMenu,\n access: accessMap.alerts.assess,\n middleStepOnly: true,\n },\n];\n","import { stringKeys, strings } from \"../../../strings\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { placeholders } from \"../../../siteMapPlaceholders\";\n\nexport const alertEventsSiteMap = [\n {\n parentPath: \"/projects/:projectId/alerts/:alertId/details\",\n path: \"/projects/:projectId/alerts/:alertId/eventLog\",\n title: () => strings(stringKeys.alerts.eventLog.title),\n placeholder: placeholders.tabMenu,\n access: accessMap.alertEvents.list,\n middleStepOnly: true,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { nationalSocietyLeftMenuOrder } from \"../../nationalSocieties/logic/nationalSocietiesSiteMap\";\n\nexport const nationalSocietyDashboardSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId\",\n path: \"/nationalsocieties/:nationalSocietyId/dashboard\",\n title: () => strings(stringKeys.dashboard.title),\n access: accessMap.nationalSocieties.showDashboard,\n placeholder: placeholders.leftMenu,\n placeholderIndex: nationalSocietyLeftMenuOrder.dashboard,\n icon: \"Dashboard\",\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const organizationsSiteMap = [\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/settings\",\n path: \"/nationalsocieties/:nationalSocietyId/organizations\",\n title: () => strings(stringKeys.organization.title),\n placeholder: placeholders.tabMenu,\n access: accessMap.organizations.list,\n placeholderIndex: 2,\n middleStepOnly: true,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/organizations\",\n path: \"/nationalsocieties/:nationalSocietyId/organizations/add\",\n title: () => strings(stringKeys.organization.form.creationTitle),\n access: accessMap.organizations.add,\n },\n {\n parentPath: \"/nationalsocieties/:nationalSocietyId/organizations\",\n path: \"/nationalsocieties/:nationalSocietyId/organizations/:organizationId/edit\",\n title: () => strings(stringKeys.organization.form.editionTitle),\n access: accessMap.organizations.edit,\n },\n];\n","import { placeholders } from \"../../../siteMapPlaceholders\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const projectOrganizationsSiteMap = [\n {\n parentPath:\n \"/nationalsocieties/:nationalSocietyId/projects/:projectId/settings\",\n path: \"/projects/:projectId/organizations\",\n title: () => strings(stringKeys.projectOrganization.title),\n placeholder: placeholders.tabMenu,\n access: accessMap.projectOrganizations.list,\n placeholderIndex: 2,\n middleStepOnly: true,\n hideWhen: (parameters) => !parameters.allowMultipleOrganizations,\n },\n {\n parentPath: \"/projects/:projectId/organizations\",\n path: \"/projects/:projectId/organizations/add\",\n title: () => strings(stringKeys.projectOrganization.form.creationTitle),\n access: accessMap.projectOrganizations.add,\n },\n];\n","import { accessMap } from \"../../../authentication/accessMap\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nexport const feedbackSiteMap = [\n {\n path: \"/feedback\",\n title: () => strings(stringKeys.feedback.send),\n access: accessMap.feedback.send,\n },\n];\n","import { nationalSocietiesSiteMap } from \"./components/nationalSocieties/logic/nationalSocietiesSiteMap\";\nimport { smsGatewaysSiteMap } from \"./components/smsGateways/logic/smsGatewaysSiteMap\";\nimport { projectsSiteMap } from \"./components/projects/logic/projectsSiteMap\";\nimport { projectSetupSiteMap } from \"./components/projectSetup/logic/projectSetupSiteMap\";\nimport { globalCoordinatorsSiteMap } from \"./components/globalCoordinators/logic/globalCoordinatorsSiteMap\";\nimport { healthRisksSiteMap } from \"./components/healthRisks/logic/healthRisksSiteMap\";\nimport { suspectedDiseaseSiteMap } from \"./components/suspectedDiseases/logic/suspectedDiseaseSiteMap\";\nimport { nationalSocietyUsersSiteMap } from \"./components/nationalSocietyUsers/logic/nationalSocietyUsersSiteMap\";\nimport { dataCollectorsSiteMap } from \"./components/dataCollectors/logic/dataCollectorsSiteMap\";\nimport { reportsSiteMap } from \"./components/reports/logic/reportsSiteMap\";\nimport { nationalSocietyReportsSiteMap } from \"./components/nationalSocietyReports/logic/nationalSocietyReportsSiteMap\";\nimport { nationalSocietyStructureSiteMap } from \"./components/nationalSocietyStructure/logic/nationalSocietyStructureSiteMap\";\nimport { projectDashboardSiteMap } from \"./components/projectDashboard/logic/projectDashboardSiteMap\";\nimport { agreementsSiteMap } from \"./components/agreements/logic/agreementsSiteMap\";\nimport { alertsSiteMap } from \"./components/alerts/logic/alertsSiteMap\";\nimport { alertEventsSiteMap } from \"./components/alertEvents/logic/alertEventsSiteMap\";\nimport { nationalSocietyDashboardSiteMap } from \"./components/nationalSocietyDashboard/logic/nationalSocietyDashboardSiteMap\";\nimport { translationsSiteMap } from \"./components/translations/logic/translationsSiteMap\";\nimport { organizationsSiteMap } from \"./components/organizations/logic/organizationsSiteMap\";\nimport { projectOrganizationsSiteMap } from \"./components/projectOrganizations/logic/projectOrganizationsSiteMap\";\nimport { eidsrIntegrationSiteMap } from \"./components/eidsrIntegration/logic/eidsrIntegrationSiteMap\";\nimport { feedbackSiteMap } from \"./components/feedback/logic/feedbackSiteMap\";\n\nexport const siteMap = [\n ...nationalSocietiesSiteMap,\n ...nationalSocietyDashboardSiteMap,\n ...nationalSocietyStructureSiteMap,\n ...nationalSocietyUsersSiteMap,\n ...smsGatewaysSiteMap,\n ...organizationsSiteMap,\n ...healthRisksSiteMap,\n ...suspectedDiseaseSiteMap,\n ...globalCoordinatorsSiteMap,\n ...projectsSiteMap,\n ...projectSetupSiteMap,\n ...projectDashboardSiteMap,\n ...projectOrganizationsSiteMap,\n ...dataCollectorsSiteMap,\n ...reportsSiteMap,\n ...nationalSocietyReportsSiteMap,\n ...agreementsSiteMap,\n ...alertsSiteMap,\n ...alertEventsSiteMap,\n ...translationsSiteMap,\n ...eidsrIntegrationSiteMap,\n ...feedbackSiteMap,\n];\n","import { accessMap } from \"../../../authentication/accessMap\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { placeholders } from \"../../../siteMapPlaceholders\";\n\nexport const translationsSiteMap = [\n /*{\n path: \"/translations\",\n title: () => strings(stringKeys.translations.title),\n access: accessMap.translations.list,\n placeholder: placeholders.tabMenu,\n placeholderIndex: 1\n },\n {\n path: \"/emailTranslations\",\n title: () => strings(stringKeys.translations.emailTitle),\n access: accessMap.translations.list,\n placeholder: placeholders.tabMenu,\n placeholderIndex: 2\n },\n {\n path: \"/smsTranslations\",\n title: () => strings(stringKeys.translations.smsTitle),\n access: accessMap.translations.list,\n placeholder: placeholders.tabMenu,\n placeholderIndex: 3\n }*/\n];\n","import { siteMap } from \"../siteMap\";\n\nconst findClosestMenu = (hierarchy, placeholder) => {\n for (let i = hierarchy.length - 1; i >= 0; i--) {\n if (hierarchy[i].siteMapData.placeholder === placeholder) {\n return hierarchy[i].siteMapData.parentPath;\n }\n }\n};\n\nexport const getMenu = (\n parameters,\n placeholder,\n currentPath,\n authUser,\n parentPath,\n) => {\n const pathHierarchy = getHierarchy(currentPath, parameters, authUser);\n const closestMenuPath = findClosestMenu(pathHierarchy, placeholder);\n\n const filteredSiteMap = siteMap.filter(\n (item) =>\n item.parentPath === (parentPath ? parentPath : closestMenuPath) &&\n item.placeholder &&\n item.placeholder === placeholder &&\n item.access.some((role) => authUser.roles.some((r) => r === role)) &&\n !(!!item.hideWhen && item.hideWhen(parameters)),\n );\n\n filteredSiteMap.sort((a, b) => a.placeholderIndex - b.placeholderIndex);\n\n return filteredSiteMap.map((item) => ({\n title: item.title(),\n url: getUrl(item.path, parameters),\n isActive: pathHierarchy.some((b) => b.siteMapData.path === item.path),\n icon: item.icon,\n path: item.path,\n }));\n};\n\nexport const getHierarchy = (path, siteMapParameters, authUser) => {\n if (!authUser || !path) {\n return [];\n }\n\n let currentItem = findSiteMapItem(path);\n let hierarchy = [];\n\n while (true) {\n const hasAccess =\n !currentItem.access ||\n !currentItem.access.length ||\n currentItem.access.some((role) => authUser.roles.some((r) => r === role));\n\n if (hasAccess) {\n hierarchy.splice(0, 0, {\n title: getTitle(currentItem.title(), siteMapParameters),\n url: getUrl(currentItem.path, siteMapParameters),\n isActive: currentItem.path === path,\n siteMapData: { ...currentItem },\n hidden: hierarchy.length === 0 && currentItem.middleStepOnly,\n });\n }\n\n if (!currentItem.parentPath) {\n break;\n }\n\n currentItem = findSiteMapItem(currentItem.parentPath);\n }\n\n return hierarchy;\n};\n\nconst getTitle = (template, params) =>\n Object.keys(params).reduce(\n (result, key) =>\n typeof result === \"string\"\n ? result.replace(`{${key}}`, params[key])\n : result,\n template,\n );\n\nconst getUrl = (template, params) =>\n Object.keys(params).reduce(\n (result, key) =>\n typeof result === \"string\"\n ? result.replace(`:${key}`, params[key])\n : result,\n template,\n );\n\nconst findSiteMapItem = (path) => {\n const item = siteMap.find((item) => item.path === path);\n if (!item) {\n throw new Error(\n `SiteMap configuration is inconsistent. Cannot find item with path: ${path}`,\n );\n }\n return item;\n};\n","export const get = (name) => localStorage.getItem(name);\nexport const set = (name, value) => localStorage.setItem(name, value);\nexport const remove = (name) => localStorage.removeItem(name);\n","import {\n call,\n put,\n takeEvery,\n takeLatest,\n select,\n delay,\n} from \"redux-saga/effects\";\nimport * as consts from \"./appConstans\";\nimport * as authConsts from \"../../../authentication/authConstants\";\nimport * as actions from \"./appActions\";\nimport { updateStrings, toggleStringsMode } from \"../../../strings\";\nimport * as http from \"../../../utils/http\";\nimport { placeholders } from \"../../../siteMapPlaceholders\";\nimport { getHierarchy, getMenu } from \"../../../utils/siteMapService\";\nimport * as cache from \"../../../utils/cache\";\nimport { reloadPage } from \"../../../utils/page\";\nimport * as localStorage from \"../../../utils/localStorage\";\nimport { initTracking } from \"../../../utils/tracking\";\n\nexport const appSagas = () => [\n takeEvery(consts.INIT_APPLICATION.INVOKE, initApplication),\n takeEvery(consts.OPEN_MODULE.INVOKE, openModule),\n takeEvery(consts.ENTITY_UPDATED, entityUpdated),\n takeEvery(consts.SWITCH_STRINGS, switchStrings),\n takeEvery(consts.SEND_FEEDBACK.INVOKE, sendFeedback),\n takeLatest(\"*\", checkLogin),\n];\n\nfunction* initApplication() {\n yield put(actions.initApplication.request());\n try {\n const user = yield select((state) => state.appData.user);\n yield call(getAppData);\n yield call(getStrings, user ? user.languageCode : \"en\");\n yield call(initTracking);\n yield put(actions.initApplication.success());\n\n window.userLanguage = user && user.languageCode;\n\n storeUser(user);\n } catch (error) {\n yield put(actions.initApplication.failure(error.message));\n }\n}\n\nfunction storeUser(user) {\n if (user) {\n localStorage.set(authConsts.localStorageUserIdKey, user.id);\n } else {\n localStorage.remove(authConsts.localStorageUserIdKey);\n }\n}\n\nfunction* checkLogin() {\n const authCookieExpiration = yield select(\n (state) => state.appData.authCookieExpiration,\n );\n\n if (!authCookieExpiration) {\n return;\n }\n\n yield delay((authCookieExpiration + 1) * 60 * 1000);\n reloadPage();\n}\n\nfunction* switchStrings() {\n yield put(actions.setAppReady(false));\n toggleStringsMode();\n yield delay(1);\n\n yield put(actions.setAppReady(true));\n}\n\nfunction* openModule({ path, params }) {\n const route = yield select((state) => state.appData.route);\n path = path || (yield select((state) => route && route.path));\n\n const user = yield select((state) => state.appData.user);\n\n const routeParams = (route && route.params) || {};\n const menuParams = { ...routeParams, ...params };\n\n const generalMenu = getMenu(menuParams, placeholders.generalMenu, path, user);\n const sideMenu = getMenu(menuParams, placeholders.leftMenu, path, user);\n const tabMenu = getMenu(menuParams, placeholders.tabMenu, path, user);\n const projectTabMenu = getMenu(\n menuParams,\n placeholders.projectTabMenu,\n path,\n user,\n ).map((item) => ({\n ...item,\n subMenu: getMenu(\n menuParams,\n placeholders.projectSubMenu,\n path,\n user,\n item.path,\n ),\n }));\n const title =\n params.title || getHierarchy(path, menuParams, user).slice(-1)[0].title;\n\n yield put(\n actions.openModule.success(\n path,\n menuParams,\n generalMenu,\n sideMenu,\n tabMenu,\n projectTabMenu,\n title,\n ),\n );\n}\n\nfunction* getAppData() {\n yield put(actions.getAppData.request());\n try {\n const appData = yield call(http.get, \"/api/appData/getAppData\", true);\n yield put(\n actions.getAppData.success(\n appData.value.contentLanguages,\n appData.value.countries,\n appData.value.isDevelopment,\n appData.value.isDemo,\n appData.value.authCookieExpiration,\n appData.value.applicationInsightsConnectionString,\n ),\n );\n } catch (error) {\n yield put(actions.getAppData.failure(error.message));\n }\n}\n\nfunction* getStrings(languageCode) {\n yield put(actions.getStrings.invoke());\n try {\n const response = yield call(\n http.get,\n `/api/appData/getStrings/${languageCode}`,\n true,\n );\n updateStrings(response.value);\n yield put(actions.getStrings.success());\n } catch (error) {\n yield put(actions.getStrings.failure(error.message));\n }\n}\n\nfunction entityUpdated({ entities }) {\n cache.cleanCacheForDependencies(entities);\n}\n\nfunction* sendFeedback({ message }) {\n yield put(actions.sendFeedback.request());\n try {\n yield call(http.post, `/api/feedback`, message);\n yield put(actions.sendFeedback.success());\n } catch (error) {\n yield put(actions.sendFeedback.failure(error.message));\n }\n}\n","import * as localStorage from \"../utils/localStorage\";\n\nconst localStorageKeys = {\n redirectUrl: \"redirect-url\",\n};\n\nexport const rootUrl = \"/\";\n\nexport const loginUrl = \"/login\";\n\nexport const redirectToLogin = () => redirectTo(loginUrl);\n\nexport const redirectToRoot = () => redirectTo(\"/\");\n\nexport const redirectTo = (path) => (window.location.pathname = path);\n\nexport const getRedirectUrl = () =>\n localStorage.get(localStorageKeys.redirectUrl);\n\nexport const setRedirectUrl = (url) =>\n localStorage.set(localStorageKeys.redirectUrl, url);\n\nexport const removeRedirectUrl = (url) =>\n localStorage.remove(localStorageKeys.redirectUrl);\n","import { call, put, takeEvery, takeLatest, select } from \"redux-saga/effects\";\nimport * as consts from \"../authentication/authConstants\";\nimport * as appConsts from \"../components/app/logic/appConstans\";\nimport * as authActions from \"../authentication/authActions\";\nimport * as appActions from \"../components/app/logic/appActions\";\nimport * as http from \"../utils/http\";\nimport * as auth from \"./auth\";\nimport { stringKeys, stringKey } from \"../strings\";\nimport { reloadPage } from \"../utils/page\";\nimport * as localStorage from \"../utils/localStorage\";\n\nexport const authSagas = () => [\n takeEvery(consts.LOGIN.INVOKE, login),\n takeEvery(consts.LOGOUT.INVOKE, logout),\n takeEvery(consts.VERIFY_EMAIL.INVOKE, verifyEmail),\n takeEvery(consts.RESET_PASSWORD.INVOKE, resetPassword),\n takeEvery(consts.RESET_PASSWORD_CALLBACK.INVOKE, resetPasswordCallback),\n takeLatest(appConsts.PAGE_FOCUSED, pageFocused),\n];\n\nfunction* login({ userName, password, redirectUrl }) {\n yield put(authActions.login.request());\n try {\n const data = yield call(\n http.post,\n \"/api/authentication/login\",\n { userName, password },\n true,\n );\n\n if (!data.isSuccess) {\n throw new Error(stringKey(data.message.key));\n }\n\n yield put(authActions.login.success());\n\n const agreementStatusResponse = yield call(\n http.get,\n \"/api/agreement/listPending\",\n );\n\n if (\n agreementStatusResponse.value.pendingSocieties.length > 0 ||\n agreementStatusResponse.value.staleSocieties.length > 0\n ) {\n auth.redirectTo(\"/agreements\");\n } else {\n auth.redirectToRoot();\n }\n } catch (error) {\n yield put(authActions.login.failure(error.message));\n }\n}\n\nfunction* logout() {\n yield put(authActions.logout.request());\n try {\n yield call(http.post, \"/api/authentication/logout\");\n localStorage.remove(consts.localStorageUserIdKey);\n yield put(authActions.logout.success());\n auth.redirectToLogin();\n } catch (error) {\n yield put(authActions.logout.failure(error.message));\n }\n}\n\nfunction* verifyEmail({ password, email, token }) {\n yield put(authActions.verifyEmail.request());\n try {\n yield call(\n http.post,\n \"/api/userverification/verifyEmailAndAddPassword\",\n { password, email, token },\n true,\n );\n yield put(authActions.verifyEmail.success());\n yield put(authActions.login.invoke(email, password));\n } catch (error) {\n yield put(authActions.verifyEmail.failure(error.message));\n }\n}\n\nfunction* resetPassword({ email }) {\n yield put(authActions.resetPassword.request());\n try {\n yield call(\n http.post,\n \"/api/userverification/resetPassword\",\n { email },\n true,\n );\n yield put(authActions.resetPassword.success());\n yield put(appActions.showMessage(stringKeys.user.resetPassword.emailSent));\n } catch (error) {\n yield put(authActions.resetPassword.failure(error.message));\n }\n}\n\nfunction* resetPasswordCallback({ password, email, token }) {\n yield put(authActions.resetPasswordCallback.request());\n try {\n yield call(\n http.post,\n \"/api/userverification/resetPasswordCallback\",\n { password, email, token },\n true,\n );\n yield put(authActions.resetPasswordCallback.success());\n yield put(authActions.login.invoke(email, password));\n } catch (error) {\n yield put(authActions.resetPasswordCallback.failure(error.message));\n }\n}\n\nfunction* pageFocused() {\n const user = yield select((state) => state.appData.user);\n const userId = user ? user.id.toString() : null;\n const storageUserId = localStorage.get(consts.localStorageUserIdKey) || null;\n\n if (storageUserId !== userId) {\n reloadPage();\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n GET_NATIONAL_SOCIETIES,\n CREATE_NATIONAL_SOCIETY,\n OPEN_NATIONAL_SOCIETY_OVERVIEW,\n} from \"./nationalSocietiesConstants\";\nimport {\n OPEN_EDITION_NATIONAL_SOCIETY,\n EDIT_NATIONAL_SOCIETY,\n ARCHIVE_NATIONAL_SOCIETY,\n REOPEN_NATIONAL_SOCIETY,\n} from \"./nationalSocietiesConstants\";\n\nexport const goToCreation = () => push(\"/nationalsocieties/add\");\nexport const goToList = () => push(\"/nationalsocieties\");\nexport const goToEdition = (id) => push(`/nationalsocieties/${id}/edit`);\nexport const goToOverview = (id) => push(`/nationalsocieties/${id}/overview`);\n\nexport const getList = {\n invoke: (userName, password, redirectUrl) => ({\n type: GET_NATIONAL_SOCIETIES.INVOKE,\n userName,\n password,\n redirectUrl,\n }),\n request: () => ({ type: GET_NATIONAL_SOCIETIES.REQUEST }),\n success: (list) => ({ type: GET_NATIONAL_SOCIETIES.SUCCESS, list }),\n failure: (message) => ({ type: GET_NATIONAL_SOCIETIES.FAILURE, message }),\n};\n\nexport const create = {\n invoke: (data) => ({ type: CREATE_NATIONAL_SOCIETY.INVOKE, data }),\n request: () => ({ type: CREATE_NATIONAL_SOCIETY.REQUEST }),\n success: () => ({ type: CREATE_NATIONAL_SOCIETY.SUCCESS }),\n failure: (error) => ({\n type: CREATE_NATIONAL_SOCIETY.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const edit = {\n invoke: (data) => ({ type: EDIT_NATIONAL_SOCIETY.INVOKE, data }),\n request: () => ({ type: EDIT_NATIONAL_SOCIETY.REQUEST }),\n success: () => ({ type: EDIT_NATIONAL_SOCIETY.SUCCESS }),\n failure: (error) => ({\n type: EDIT_NATIONAL_SOCIETY.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: ({ path, params }) => ({\n type: OPEN_EDITION_NATIONAL_SOCIETY.INVOKE,\n path,\n params,\n }),\n request: () => ({ type: OPEN_EDITION_NATIONAL_SOCIETY.REQUEST }),\n success: (data) => ({ type: OPEN_EDITION_NATIONAL_SOCIETY.SUCCESS, data }),\n failure: (message) => ({\n type: OPEN_EDITION_NATIONAL_SOCIETY.FAILURE,\n message,\n }),\n};\n\nexport const openOverview = {\n invoke: ({ path, params }) => ({\n type: OPEN_NATIONAL_SOCIETY_OVERVIEW.INVOKE,\n path,\n params,\n }),\n request: () => ({ type: OPEN_NATIONAL_SOCIETY_OVERVIEW.REQUEST }),\n success: (data) => ({ type: OPEN_NATIONAL_SOCIETY_OVERVIEW.SUCCESS, data }),\n failure: (message) => ({\n type: OPEN_NATIONAL_SOCIETY_OVERVIEW.FAILURE,\n message,\n }),\n};\n\nexport const archive = {\n invoke: (id) => ({ type: ARCHIVE_NATIONAL_SOCIETY.INVOKE, id }),\n request: (id) => ({ type: ARCHIVE_NATIONAL_SOCIETY.REQUEST, id }),\n success: (id) => ({ type: ARCHIVE_NATIONAL_SOCIETY.SUCCESS, id }),\n failure: (id, message) => ({\n type: ARCHIVE_NATIONAL_SOCIETY.FAILURE,\n id,\n message,\n }),\n};\n\nexport const reopen = {\n invoke: (id) => ({ type: REOPEN_NATIONAL_SOCIETY.INVOKE, id }),\n request: (id) => ({ type: REOPEN_NATIONAL_SOCIETY.REQUEST, id }),\n success: (id) => ({ type: REOPEN_NATIONAL_SOCIETY.SUCCESS, id }),\n failure: (id, message) => ({\n type: REOPEN_NATIONAL_SOCIETY.FAILURE,\n id,\n message,\n }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./nationalSocietiesConstants\";\nimport { entityTypes } from \"./nationalSocietiesConstants\";\nimport * as actions from \"./nationalSocietiesActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { push } from \"connected-react-router\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const nationalSocietiesSagas = () => [\n takeEvery(consts.GET_NATIONAL_SOCIETIES.INVOKE, getNationalSocieties),\n takeEvery(\n consts.OPEN_EDITION_NATIONAL_SOCIETY.INVOKE,\n openNationalSocietyEdition,\n ),\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_OVERVIEW.INVOKE,\n openNationalSocietyOverview,\n ),\n takeEvery(consts.EDIT_NATIONAL_SOCIETY.INVOKE, editNationalSociety),\n takeEvery(consts.CREATE_NATIONAL_SOCIETY.INVOKE, createNationalSociety),\n takeEvery(consts.ARCHIVE_NATIONAL_SOCIETY.INVOKE, archiveNationalSociety),\n takeEvery(consts.REOPEN_NATIONAL_SOCIETY.INVOKE, reopenNationalSociety),\n];\n\nfunction* getNationalSocieties(force) {\n const currentData = yield select((state) => state.nationalSocieties.listData);\n\n if (!force && currentData.length) {\n return;\n }\n\n yield put(actions.getList.request());\n try {\n const response = yield call(http.get, \"/api/nationalSociety/list\");\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\nfunction* openNationalSocietyEdition({ path, params }) {\n yield put(actions.openEdition.request());\n try {\n const response = yield call(\n http.get,\n `/api/nationalSociety/${params.nationalSocietyId}/get`,\n );\n\n yield put(\n appActions.openModule.invoke(path, {\n nationalSocietyCountry: response.value.countryName,\n nationalSocietyName: response.value.name,\n nationalSocietyId: response.value.id,\n }),\n );\n\n yield put(actions.openEdition.success(response.value));\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* openNationalSocietyOverview({ path, params }) {\n yield put(actions.openOverview.request());\n try {\n const response = yield call(\n http.get,\n `/api/nationalSociety/${params.nationalSocietyId}/get`,\n );\n\n yield put(\n appActions.openModule.invoke(path, {\n nationalSocietyCountry: response.value.countryName,\n nationalSocietyName: response.value.name,\n nationalSocietyId: response.value.id,\n nationalSocietyIsArchived: response.value.isArchived,\n nationalSocietyHasCoordinator:\n response.value.nationalSocietyHasCoordinator,\n }),\n );\n\n yield put(actions.openOverview.success(response.value));\n } catch (error) {\n yield put(actions.openOverview.failure(error.message));\n }\n}\n\nfunction* createNationalSociety({ data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(http.post, \"/api/nationalSociety/create\", data);\n yield put(actions.create.success(response.value));\n yield put(push(`/nationalsocieties/${response.value}`));\n yield put(\n appActions.showMessage(\n stringKeys.nationalSociety.messages.create.success,\n ),\n );\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* editNationalSociety({ data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/nationalSociety/${data.id}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(appActions.entityUpdated(entityTypes.nationalSociety(data.id)));\n yield put(push(`/nationalsocieties/${data.id}/overview`));\n yield put(\n appActions.showMessage(stringKeys.nationalSociety.messages.edit.success),\n );\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\nfunction* archiveNationalSociety({ id }) {\n yield put(actions.archive.request(id));\n try {\n yield call(http.post, `/api/nationalSociety/${id}/archive`);\n yield put(actions.archive.success(id));\n yield put(appActions.entityUpdated(entityTypes.nationalSociety(id)));\n yield call(getNationalSocieties, true);\n yield put(\n appActions.showMessage(\n stringKeys.nationalSociety.messages.archive.success,\n ),\n );\n } catch (error) {\n yield put(actions.archive.failure(id, error.message));\n }\n}\n\nfunction* reopenNationalSociety({ id }) {\n yield put(actions.reopen.request(id));\n try {\n yield call(http.post, `/api/nationalSociety/${id}/reopen`);\n yield put(actions.reopen.success(id));\n yield put(appActions.entityUpdated(entityTypes.nationalSociety(id)));\n yield call(getNationalSocieties, true);\n yield put(\n appActions.showMessage(\n stringKeys.nationalSociety.messages.reopen.success,\n ),\n );\n } catch (error) {\n yield put(actions.reopen.failure(id, error.message));\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_SMS_GATEWAYS_LIST,\n GET_SMS_GATEWAYS,\n OPEN_SMS_GATEWAY_CREATION,\n CREATE_SMS_GATEWAY,\n OPEN_SMS_GATEWAY_EDITION,\n EDIT_SMS_GATEWAY,\n REMOVE_SMS_GATEWAY,\n PING_IOT_DEVICE,\n LIST_AVAILABLE_IOT_DEVICES,\n} from \"./smsGatewaysConstants\";\n\nexport const goToList = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/smsgateways`);\nexport const goToCreation = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/smsgateways/add`);\nexport const goToEdition = (nationalSocietyId, smsGatewayId) =>\n push(\n `/nationalsocieties/${nationalSocietyId}/smsgateways/${smsGatewayId}/edit`,\n );\n\nexport const openList = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_SMS_GATEWAYS_LIST.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_SMS_GATEWAYS_LIST.REQUEST }),\n success: (nationalSocietyId) => ({\n type: OPEN_SMS_GATEWAYS_LIST.SUCCESS,\n nationalSocietyId,\n }),\n failure: (message) => ({ type: OPEN_SMS_GATEWAYS_LIST.FAILURE, message }),\n};\n\nexport const getList = {\n invoke: (nationalSocietyId) => ({\n type: GET_SMS_GATEWAYS.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: GET_SMS_GATEWAYS.REQUEST }),\n success: (list) => ({ type: GET_SMS_GATEWAYS.SUCCESS, list }),\n failure: (message) => ({ type: GET_SMS_GATEWAYS.FAILURE, message }),\n};\n\nexport const openCreation = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_SMS_GATEWAY_CREATION.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_SMS_GATEWAY_CREATION.REQUEST }),\n success: () => ({ type: OPEN_SMS_GATEWAY_CREATION.SUCCESS }),\n failure: (message) => ({ type: OPEN_SMS_GATEWAY_CREATION.FAILURE, message }),\n};\n\nexport const create = {\n invoke: (nationalSocietyId, data) => ({\n type: CREATE_SMS_GATEWAY.INVOKE,\n nationalSocietyId,\n data,\n }),\n request: () => ({ type: CREATE_SMS_GATEWAY.REQUEST }),\n success: () => ({ type: CREATE_SMS_GATEWAY.SUCCESS }),\n failure: (error) => ({\n type: CREATE_SMS_GATEWAY.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: (nationalSocietyId, smsGatewayId) => ({\n type: OPEN_SMS_GATEWAY_EDITION.INVOKE,\n nationalSocietyId,\n smsGatewayId,\n }),\n request: () => ({ type: OPEN_SMS_GATEWAY_EDITION.REQUEST }),\n success: (data) => ({ type: OPEN_SMS_GATEWAY_EDITION.SUCCESS, data }),\n failure: (message) => ({ type: OPEN_SMS_GATEWAY_EDITION.FAILURE, message }),\n};\n\nexport const edit = {\n invoke: (data) => ({ type: EDIT_SMS_GATEWAY.INVOKE, data }),\n request: () => ({ type: EDIT_SMS_GATEWAY.REQUEST }),\n success: () => ({ type: EDIT_SMS_GATEWAY.SUCCESS }),\n failure: (error) => ({\n type: EDIT_SMS_GATEWAY.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const remove = {\n invoke: (nationalSocietyId, smsGatewayId) => ({\n type: REMOVE_SMS_GATEWAY.INVOKE,\n nationalSocietyId,\n smsGatewayId,\n }),\n request: (id) => ({ type: REMOVE_SMS_GATEWAY.REQUEST, id }),\n success: (id) => ({ type: REMOVE_SMS_GATEWAY.SUCCESS, id }),\n failure: (id, message) => ({ type: REMOVE_SMS_GATEWAY.FAILURE, id, message }),\n};\n\nexport const pingIotDevice = {\n invoke: (iotDeviceId) => ({ type: PING_IOT_DEVICE.INVOKE, iotDeviceId }),\n request: (iotDeviceId) => ({ type: PING_IOT_DEVICE.REQUEST, iotDeviceId }),\n success: (iotDeviceId, message) => ({\n type: PING_IOT_DEVICE.SUCCESS,\n iotDeviceId,\n message,\n }),\n failure: (iotDeviceId, message) => ({\n type: PING_IOT_DEVICE.FAILURE,\n iotDeviceId,\n message,\n }),\n};\n\nexport const listAvailableIotDevices = {\n invoke: () => ({ type: LIST_AVAILABLE_IOT_DEVICES.INVOKE }),\n request: () => ({ type: LIST_AVAILABLE_IOT_DEVICES.REQUEST }),\n success: (list) => ({ type: LIST_AVAILABLE_IOT_DEVICES.SUCCESS, list }),\n failure: (message) => ({ type: LIST_AVAILABLE_IOT_DEVICES.FAILURE, message }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./smsGatewaysConstants\";\nimport * as actions from \"./smsGatewaysActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const smsGatewaysSagas = () => [\n takeEvery(consts.OPEN_SMS_GATEWAYS_LIST.INVOKE, openSmsGatewaysList),\n takeEvery(consts.OPEN_SMS_GATEWAY_CREATION.INVOKE, openSmsGatewayCreation),\n takeEvery(consts.OPEN_SMS_GATEWAY_EDITION.INVOKE, openSmsGatewayEdition),\n takeEvery(consts.CREATE_SMS_GATEWAY.INVOKE, createSmsGateway),\n takeEvery(consts.EDIT_SMS_GATEWAY.INVOKE, editSmsGateway),\n takeEvery(consts.REMOVE_SMS_GATEWAY.INVOKE, removeSmsGateway),\n takeEvery(consts.PING_IOT_DEVICE.INVOKE, pingIotDevice),\n takeEvery(consts.LIST_AVAILABLE_IOT_DEVICES.INVOKE, listAvailableIotDevices),\n];\n\nfunction* openSmsGatewaysList({ nationalSocietyId }) {\n yield put(actions.openList.request());\n try {\n yield openSmsGatewaysModule(nationalSocietyId);\n\n if (yield select((state) => state.smsGateways.listStale)) {\n yield call(getSmsGateways, nationalSocietyId);\n }\n\n yield put(actions.openList.success(nationalSocietyId));\n } catch (error) {\n yield put(actions.openList.failure(error.message));\n }\n}\n\nfunction* openSmsGatewayCreation({ nationalSocietyId }) {\n yield put(actions.openCreation.request());\n try {\n yield openSmsGatewaysModule(nationalSocietyId);\n yield put(actions.openCreation.success());\n } catch (error) {\n yield put(actions.openCreation.failure(error.message));\n }\n}\n\nfunction* openSmsGatewayEdition({ nationalSocietyId, smsGatewayId }) {\n yield put(actions.openEdition.request());\n try {\n const response = yield call(\n http.get,\n `/api/smsGateway/${smsGatewayId}/get`,\n );\n yield openSmsGatewaysModule(nationalSocietyId);\n yield put(actions.openEdition.success(response.value));\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* createSmsGateway({ nationalSocietyId, data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n `/api/smsGateway/create?nationalSocietyId=${nationalSocietyId}`,\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(actions.goToList(nationalSocietyId));\n yield put(appActions.showMessage(stringKeys.smsGateway.create.success));\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* editSmsGateway({ data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/smsGateway/${data.id}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList(data.nationalSocietyId));\n yield put(appActions.showMessage(stringKeys.smsGateway.edit.success));\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\nfunction* removeSmsGateway({ nationalSocietyId, smsGatewayId }) {\n yield put(actions.remove.request(smsGatewayId));\n try {\n yield call(http.post, `/api/smsGateway/${smsGatewayId}/delete`);\n yield put(actions.remove.success(smsGatewayId));\n yield call(getSmsGateways, nationalSocietyId);\n yield put(appActions.showMessage(stringKeys.smsGateway.delete.success));\n } catch (error) {\n yield put(actions.remove.failure(smsGatewayId, error.message));\n }\n}\n\nfunction* getSmsGateways(nationalSocietyId) {\n yield put(actions.getList.request());\n try {\n const response = yield call(\n http.get,\n `/api/smsGateway/list?nationalSocietyId=${nationalSocietyId}`,\n );\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\nfunction* pingIotDevice({ iotDeviceId }) {\n yield put(actions.pingIotDevice.request(iotDeviceId));\n try {\n const response = yield call(\n http.post,\n `api/smsGateway/iotDevices/${iotDeviceId}/ping`,\n );\n yield put(\n actions.pingIotDevice.success(iotDeviceId, {\n isSuccess: true,\n message: JSON.parse(response.value).data,\n }),\n );\n } catch (error) {\n yield put(actions.pingIotDevice.failure(iotDeviceId, error.message));\n }\n}\n\nfunction* listAvailableIotDevices() {\n yield put(actions.listAvailableIotDevices.request());\n try {\n const availableGateways = yield call(\n http.get,\n `/api/smsGateway/iotDevices/list`,\n );\n yield put(actions.listAvailableIotDevices.success(availableGateways.value));\n } catch (error) {\n yield put(actions.listAvailableIotDevices.failure(error.message));\n }\n}\n\nfunction* openSmsGatewaysModule(nationalSocietyId) {\n const nationalSociety = yield call(http.getCached, {\n path: `/api/nationalSociety/${nationalSocietyId}/get`,\n dependencies: [entityTypes.nationalSociety(nationalSocietyId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n nationalSocietyHasCoordinator: nationalSociety.value.hasCoordinator,\n }),\n );\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_PROJECTS_LIST,\n GET_PROJECTS,\n OPEN_PROJECT_CREATION,\n CREATE_PROJECT,\n OPEN_PROJECT_EDITION,\n EDIT_PROJECT,\n EDIT_PROJECT_HEALTH_RISKS,\n CLOSE_PROJECT,\n OPEN_PROJECT_OVERVIEW,\n OPEN_PROJECT_HEALTH_RISKS_OVERVIEW,\n OPEN_ERROR_MESSAGES,\n OPEN_PROJECT_HEALTHRISKS_EDITION,\n} from \"./projectsConstants\";\n\nexport const goToList = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/projects`);\nexport const goToCreation = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/projects/add`);\nexport const goToEdition = (nationalSocietyId, projectId) =>\n push(`/nationalsocieties/${nationalSocietyId}/projects/${projectId}/edit`);\nexport const goToDashboard = (nationalSocietyId, projectId) =>\n push(\n `/nationalsocieties/${nationalSocietyId}/projects/${projectId}/dashboard`,\n );\nexport const goToOverview = (nationalSocietyId, projectId) =>\n push(\n `/nationalsocieties/${nationalSocietyId}/projects/${projectId}/overview`,\n );\nexport const goToHealthRisksEdition = (nationalSocietyId, projectId) =>\n push(\n `/nationalsocieties/${nationalSocietyId}/projects/${projectId}/editHealthRisks`,\n );\nexport const goToHealthRisks = (nationalSocietyId, projectId) =>\n push(\n `/nationalsocieties/${nationalSocietyId}/projects/${projectId}/healthrisks`,\n );\n\nexport const openList = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_PROJECTS_LIST.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_PROJECTS_LIST.REQUEST }),\n success: () => ({ type: OPEN_PROJECTS_LIST.SUCCESS }),\n failure: (message) => ({ type: OPEN_PROJECTS_LIST.FAILURE, message }),\n};\n\nexport const getList = {\n invoke: (nationalSocietyId) => ({\n type: GET_PROJECTS.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: GET_PROJECTS.REQUEST }),\n success: (list) => ({ type: GET_PROJECTS.SUCCESS, list }),\n failure: (message) => ({ type: GET_PROJECTS.FAILURE, message }),\n};\n\nexport const openCreation = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_PROJECT_CREATION.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_PROJECT_CREATION.REQUEST }),\n success: (data) => ({ type: OPEN_PROJECT_CREATION.SUCCESS, data }),\n failure: (message) => ({ type: OPEN_PROJECT_CREATION.FAILURE, message }),\n};\n\nexport const create = {\n invoke: (nationalSocietyId, data) => ({\n type: CREATE_PROJECT.INVOKE,\n nationalSocietyId,\n data,\n }),\n request: () => ({ type: CREATE_PROJECT.REQUEST }),\n success: () => ({ type: CREATE_PROJECT.SUCCESS }),\n failure: (error) => ({\n type: CREATE_PROJECT.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: (nationalSocietyId, projectId) => ({\n type: OPEN_PROJECT_EDITION.INVOKE,\n nationalSocietyId,\n projectId,\n }),\n request: () => ({ type: OPEN_PROJECT_EDITION.REQUEST }),\n success: (data, healthRisks, timeZones) => ({\n type: OPEN_PROJECT_EDITION.SUCCESS,\n data,\n healthRisks,\n timeZones,\n }),\n failure: (message) => ({ type: OPEN_PROJECT_EDITION.FAILURE, message }),\n};\n\nexport const openHealthRisksEdition = {\n invoke: (nationalSocietyId, projectId) => ({\n type: OPEN_PROJECT_HEALTHRISKS_EDITION.INVOKE,\n nationalSocietyId,\n projectId,\n }),\n request: () => ({ type: OPEN_PROJECT_HEALTHRISKS_EDITION.REQUEST }),\n success: (data, healthRisks, timeZones) => ({\n type: OPEN_PROJECT_HEALTHRISKS_EDITION.SUCCESS,\n data,\n healthRisks,\n timeZones,\n }),\n failure: (message) => ({\n type: OPEN_PROJECT_HEALTHRISKS_EDITION.FAILURE,\n message,\n }),\n};\n\nexport const openOverview = {\n invoke: (nationalSocietyId, projectId) => ({\n type: OPEN_PROJECT_OVERVIEW.INVOKE,\n nationalSocietyId,\n projectId,\n }),\n request: () => ({ type: OPEN_PROJECT_OVERVIEW.REQUEST }),\n success: (data, healthRisks, timeZones) => ({\n type: OPEN_PROJECT_OVERVIEW.SUCCESS,\n data,\n healthRisks,\n timeZones,\n }),\n failure: (message) => ({ type: OPEN_PROJECT_OVERVIEW.FAILURE, message }),\n};\n\nexport const openHealthRisksOverview = {\n invoke: (nationalSocietyId, projectId) => ({\n type: OPEN_PROJECT_HEALTH_RISKS_OVERVIEW.INVOKE,\n nationalSocietyId,\n projectId,\n }),\n request: () => ({ type: OPEN_PROJECT_HEALTH_RISKS_OVERVIEW.REQUEST }),\n success: (data, healthRisks, timeZones) => ({\n type: OPEN_PROJECT_HEALTH_RISKS_OVERVIEW.SUCCESS,\n data,\n healthRisks,\n timeZones,\n }),\n failure: (message) => ({ type: OPEN_PROJECT_OVERVIEW.FAILURE, message }),\n};\n\nexport const edit = {\n invoke: (nationalSocietyId, projectId, data) => ({\n type: EDIT_PROJECT.INVOKE,\n nationalSocietyId,\n projectId,\n data,\n }),\n request: () => ({ type: EDIT_PROJECT.REQUEST }),\n success: () => ({ type: EDIT_PROJECT.SUCCESS }),\n failure: (error) => ({\n type: EDIT_PROJECT.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const editHealthRisks = {\n invoke: (nationalSocietyId, projectId, healthRisks) => ({\n type: EDIT_PROJECT_HEALTH_RISKS.INVOKE,\n nationalSocietyId,\n projectId,\n healthRisks,\n }),\n request: () => ({ type: EDIT_PROJECT_HEALTH_RISKS.REQUEST }),\n success: () => ({ type: EDIT_PROJECT_HEALTH_RISKS.SUCCESS }),\n failure: (error) => ({\n type: EDIT_PROJECT_HEALTH_RISKS.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const close = {\n invoke: (nationalSocietyId, projectId) => ({\n type: CLOSE_PROJECT.INVOKE,\n nationalSocietyId,\n projectId,\n }),\n request: (id) => ({ type: CLOSE_PROJECT.REQUEST, id }),\n success: (id) => ({ type: CLOSE_PROJECT.SUCCESS, id }),\n failure: (id, message) => ({ type: CLOSE_PROJECT.FAILURE, id, message }),\n};\n\nexport const openErrorMessages = (projectId) => ({\n type: OPEN_ERROR_MESSAGES,\n projectId,\n});\n","import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport weekOfYear from \"dayjs/plugin/weekOfYear\";\ndayjs.extend(utc);\ndayjs.extend(weekOfYear);\n\nexport const formatDate = (date) => {\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const humanReadableMonth = `${month < 10 ? \"0\" + month : month}`;\n const humanReadableDay = `${day < 10 ? \"0\" + day : day}`;\n\n return `${year}-${humanReadableMonth}-${humanReadableDay}`;\n};\n\nexport const convertToLocalDate = (date) => {\n const utcOffset = Math.floor(dayjs().utcOffset() / 60);\n const utcDate = dayjs(date);\n return utcDate.add(utcOffset, \"hour\");\n};\n\nexport const convertToUtc = (date) => {\n const utcOffset = Math.floor(dayjs().utcOffset() / 60);\n const localeDate = dayjs(date);\n return localeDate.add(-utcOffset, \"hour\");\n};\n\nexport const getUtcOffset = () => Math.floor(dayjs().utcOffset() / 60);\n\nexport const getEpiWeek = () => {\n const date = dayjs();\n\n const dayPs = (date.date() + 7) % 7;\n date.set(\"date\", date.date() - dayPs + 3);\n\n const jan4 = dayjs(new Date(date.year(), 0, 4));\n\n const dayDifference = (date - jan4) / 86400000;\n\n if (dayjs(date.year(), 0, 1).day() < 4) {\n return 1 + Math.ceil(dayDifference / 7);\n } else {\n return Math.ceil(dayDifference / 7);\n }\n};\n\nexport const generateEpiWeekFilters = () => {\n const currentEpiWeek = getEpiWeek() - 1;\n const weekFilters = [];\n\n for (let i = currentEpiWeek - 7; i <= currentEpiWeek; i++) {\n weekFilters.push({\n epiWeek: i,\n reportingCorrectly: true,\n reportingWithErrors: true,\n notReporting: true,\n });\n }\n\n return weekFilters;\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./projectsConstants\";\nimport * as actions from \"./projectsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringKeys } from \"../../../strings\";\nimport { getUtcOffset } from \"../../../utils/date\";\n\nexport const projectsSagas = () => [\n takeEvery(consts.OPEN_PROJECTS_LIST.INVOKE, openProjectsList),\n takeEvery(consts.OPEN_PROJECT_CREATION.INVOKE, openProjectCreation),\n takeEvery(consts.OPEN_PROJECT_EDITION.INVOKE, openProjectEdition),\n takeEvery(consts.OPEN_PROJECT_OVERVIEW.INVOKE, openProjectOverview),\n takeEvery(\n consts.OPEN_PROJECT_HEALTH_RISKS_OVERVIEW.INVOKE,\n openProjectHealthRisksOverview,\n ),\n takeEvery(consts.CREATE_PROJECT.INVOKE, createProject),\n takeEvery(consts.EDIT_PROJECT.INVOKE, editProject),\n takeEvery(consts.EDIT_PROJECT_HEALTH_RISKS.INVOKE, editProjectHealthRisks),\n takeEvery(consts.CLOSE_PROJECT.INVOKE, closeProject),\n takeEvery(consts.OPEN_ERROR_MESSAGES, openErrorMessages),\n takeEvery(\n consts.OPEN_PROJECT_HEALTHRISKS_EDITION.INVOKE,\n openProjectHealthRisksEdition,\n ),\n];\n\nfunction* openProjectsList({ nationalSocietyId }) {\n yield put(actions.openList.request());\n try {\n yield openProjectsModule(nationalSocietyId);\n\n if (yield select((state) => state.projects.listStale)) {\n yield call(getProjects, nationalSocietyId);\n }\n\n yield put(actions.openList.success());\n } catch (error) {\n yield put(actions.openList.failure(error.message));\n }\n}\n\nfunction* openProjectCreation({ nationalSocietyId }) {\n yield put(actions.openCreation.request());\n try {\n const formData = yield call(\n http.get,\n `/api/project/getFormData?nationalSocietyId=${nationalSocietyId}`,\n );\n yield openProjectsModule(nationalSocietyId);\n yield put(actions.openCreation.success(formData.value));\n } catch (error) {\n yield put(actions.openCreation.failure(error));\n }\n}\n\nfunction* openProjectEdition({ nationalSocietyId, projectId }) {\n yield put(actions.openEdition.request());\n try {\n const response = yield call(http.get, `/api/project/${projectId}/get`);\n yield call(openProjectDashboardModule, projectId);\n yield put(\n actions.openEdition.success(\n response.value,\n response.value.formData.healthRisks,\n response.value.formData.timeZones,\n ),\n );\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* openProjectHealthRisksEdition({ nationalSocietyId, projectId }) {\n yield put(actions.openHealthRisksEdition.request());\n try {\n const response = yield call(http.get, `/api/project/${projectId}/get`);\n yield call(openProjectDashboardModule, projectId);\n yield put(\n actions.openHealthRisksEdition.success(\n response.value,\n response.value.formData.healthRisks,\n response.value.formData.timeZones,\n ),\n );\n } catch (error) {\n yield put(actions.openHealthRisksEdition.failure(error.message));\n }\n}\n\nfunction* openProjectOverview({ projectId }) {\n yield put(actions.openOverview.request());\n try {\n const response = yield call(http.get, `/api/project/${projectId}/get`);\n yield call(openProjectDashboardModule, projectId);\n yield put(\n actions.openOverview.success(\n response.value,\n response.value.formData.healthRisks,\n response.value.formData.timeZones,\n ),\n );\n } catch (error) {\n yield put(actions.openOverview.failure(error.message));\n }\n}\n\nfunction* openProjectHealthRisksOverview({ projectId }) {\n yield put(actions.openHealthRisksOverview.request());\n try {\n const response = yield call(http.get, `/api/project/${projectId}/get`);\n yield call(openProjectDashboardModule, projectId);\n yield put(\n actions.openHealthRisksOverview.success(\n response.value,\n response.value.formData.healthRisks,\n response.value.formData.timeZones,\n ),\n );\n } catch (error) {\n yield put(actions.openHealthRisksOverview.failure(error.message));\n }\n}\n\nfunction* createProject({ nationalSocietyId, data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n `/api/project/create?nationalSocietyId=${nationalSocietyId}`,\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(actions.goToList(nationalSocietyId));\n yield put(\n appActions.showMessage(stringKeys.project.messages.create.success),\n );\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* editProject({ nationalSocietyId, projectId, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/project/${projectId}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(appActions.entityUpdated(entityTypes.project(projectId)));\n yield put(actions.goToOverview(nationalSocietyId, projectId));\n yield put(appActions.showMessage(stringKeys.project.messages.edit.success));\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\nfunction* editProjectHealthRisks({\n nationalSocietyId,\n projectId,\n healthRisks,\n}) {\n yield put(actions.editHealthRisks.request());\n try {\n const response = yield call(\n http.post,\n `/api/project/${projectId}/editProjectHealthRisks`,\n healthRisks,\n );\n yield put(actions.editHealthRisks.success(response.value));\n yield put(appActions.entityUpdated(entityTypes.project(projectId)));\n yield put(actions.goToHealthRisks(nationalSocietyId, projectId));\n yield put(appActions.showMessage(stringKeys.project.messages.edit.success));\n } catch (error) {\n yield put(actions.editHealthRisks.failure(error));\n }\n}\n\nfunction* closeProject({ nationalSocietyId, projectId }) {\n yield put(actions.close.request(projectId));\n try {\n yield call(\n http.post,\n `/api/project/${projectId}/close?nationalSocietyId=${nationalSocietyId}`,\n );\n yield put(actions.close.success(projectId));\n yield call(getProjects, nationalSocietyId);\n yield put(appActions.entityUpdated(entityTypes.project(projectId)));\n yield put(\n appActions.showMessage(stringKeys.project.messages.close.success),\n );\n } catch (error) {\n yield put(actions.close.failure(projectId, error.message));\n }\n}\n\nfunction* getProjects(nationalSocietyId) {\n yield put(actions.getList.request());\n try {\n const response = yield call(\n http.get,\n `/api/project/list?nationalSocietyId=${nationalSocietyId}&utcOffset=${getUtcOffset()}`,\n );\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\nfunction* openProjectsModule(nationalSocietyId) {\n const nationalSociety = yield call(http.getCached, {\n path: `/api/nationalSociety/${nationalSocietyId}/get`,\n dependencies: [entityTypes.nationalSociety(nationalSocietyId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n isCurrentUserHeadManager: nationalSociety.value.isCurrentUserHeadManager,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n }),\n );\n}\n\nfunction* openProjectDashboardModule(projectId) {\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n projectIsClosed: project.value.isClosed,\n allowMultipleOrganizations: project.value.allowMultipleOrganizations,\n }),\n );\n\n return project.value;\n}\n\nfunction* openErrorMessages({ projectId }) {\n yield call(openProjectDashboardModule, projectId);\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_PROJECT_SETUP,\n CREATE_PROJECT_FROM_SETUP,\n OPEN_ERROR_MESSAGES,\n SET_PROJECT_NAME,\n SET_ORGANIZATION_ID,\n SET_ALERT_NOT_HANDLED_NOTIFICATION_RECIPIENT_IDS,\n SET_HEALTH_RISKS,\n SET_REQUIRED_HEALTH_RISKS,\n SET_REGIONS,\n SET_DISTRICTS,\n SET_VILLAGES,\n SET_ZONES,\n SET_ALLOW_MULTIPLE_ORGANIZATIONS,\n} from \"./projectSetupConstants\";\n\nexport const goToList = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/projects`);\nexport const goToCreation = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/projects/add`);\n\nexport const openSetup = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_PROJECT_SETUP.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_PROJECT_SETUP.REQUEST }),\n success: (data) => ({ type: OPEN_PROJECT_SETUP.SUCCESS, data }),\n failure: (message) => ({ type: OPEN_PROJECT_SETUP.FAILURE, message }),\n};\n\nexport const createFromSetup = {\n invoke: (nationalSocietyId, data) => ({\n type: CREATE_PROJECT_FROM_SETUP.INVOKE,\n nationalSocietyId,\n data,\n }),\n request: () => ({ type: CREATE_PROJECT_FROM_SETUP.REQUEST }),\n success: () => ({ type: CREATE_PROJECT_FROM_SETUP.SUCCESS }),\n failure: (error) => ({\n type: CREATE_PROJECT_FROM_SETUP.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openErrorMessages = (projectId) => ({\n type: OPEN_ERROR_MESSAGES,\n projectId,\n});\n\nexport const setProjectName = (projectName) => ({\n type: SET_PROJECT_NAME,\n projectName,\n});\n\nexport const setOrganizationId = (organizationId) => ({\n type: SET_ORGANIZATION_ID,\n organizationId,\n});\n\nexport const setAllowMultipleOrganizations = (allowMultipleOrganizations) => ({\n type: SET_ALLOW_MULTIPLE_ORGANIZATIONS,\n allowMultipleOrganizations,\n});\n\nexport const setAlertNotHandledNotificationRecipientIds = (\n alertNotHandledNotificationRecipientIds,\n) => ({\n type: SET_ALERT_NOT_HANDLED_NOTIFICATION_RECIPIENT_IDS,\n alertNotHandledNotificationRecipientIds,\n});\n\nexport const setHealthRisks = (healthRisks) => ({\n type: SET_HEALTH_RISKS,\n healthRisks,\n});\nexport const setRequiredHealthRisks = (requiredHealthRisks) => ({\n type: SET_REQUIRED_HEALTH_RISKS,\n requiredHealthRisks,\n});\n\nexport const setRegions = (regions) => ({ type: SET_REGIONS, regions });\nexport const setDistricts = (districts) => ({ type: SET_DISTRICTS, districts });\nexport const setVillages = (villages) => ({ type: SET_VILLAGES, villages });\nexport const setZones = (zones) => ({ type: SET_ZONES, zones });\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./projectSetupConstants\";\nimport * as actions from \"./projectSetupActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const projectSetupSagas = () => [\n takeEvery(consts.OPEN_PROJECT_SETUP.INVOKE, openProjectSetup),\n takeEvery(consts.CREATE_PROJECT_FROM_SETUP.INVOKE, createProjectFromSetup),\n];\n\nfunction* openProjectSetup({ nationalSocietyId }) {\n yield put(actions.openSetup.request());\n try {\n yield openProjectsModule(nationalSocietyId);\n\n const formData = yield call(\n http.get,\n `/api/project/getFormData?nationalSocietyId=${nationalSocietyId}`,\n );\n const regions = yield call(\n http.get,\n `/api/nationalSocietyStructure/get?nationalSocietyId=${nationalSocietyId}`,\n );\n\n // Manually add activity report health risks as required by filtering on healthRiskType === \"Activity\"\n // Should mabye reconsider this approach, these values should not be set in the frontend\n const requiredHealthRisks = formData.value.healthRisks.filter(\n (hr) => hr.healthRiskType === \"Activity\",\n );\n yield put(actions.setRequiredHealthRisks(requiredHealthRisks));\n\n yield put(\n actions.openSetup.success({\n formData: formData.value,\n regions: regions.value,\n }),\n );\n } catch (error) {\n yield put(actions.openSetup.failure(error));\n }\n}\n\nfunction* createProjectFromSetup({ nationalSocietyId, data }) {\n yield put(actions.createFromSetup.request());\n try {\n const response = yield call(\n http.post,\n `/api/project/create?nationalSocietyId=${nationalSocietyId}`,\n data,\n );\n yield put(actions.createFromSetup.success(response.value));\n yield put(actions.goToList(nationalSocietyId));\n yield put(\n appActions.showMessage(stringKeys.project.messages.create.success),\n );\n } catch (error) {\n yield put(actions.createFromSetup.failure(error));\n }\n}\n\nfunction* openProjectsModule(nationalSocietyId) {\n const nationalSociety = yield call(http.getCached, {\n path: `/api/nationalSociety/${nationalSocietyId}/get`,\n dependencies: [entityTypes.nationalSociety(nationalSocietyId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n isCurrentUserHeadManager: nationalSociety.value.isCurrentUserHeadManager,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n }),\n );\n}\n","import { push } from \"connected-react-router\";\nimport {\n GET_GLOBAL_COORDINATORS,\n CREATE_GLOBAL_COORDINATOR,\n REMOVE_GLOBAL_COORDINATOR,\n} from \"./globalCoordinatorsConstants\";\nimport {\n OPEN_EDITION_GLOBAL_COORDINATOR,\n EDIT_GLOBAL_COORDINATOR,\n} from \"./globalCoordinatorsConstants\";\n\nexport const goToCreation = () => push(\"/globalcoordinators/add\");\nexport const goToList = () => push(\"/globalcoordinators\");\nexport const goToEdition = (id) => push(`/globalcoordinators/${id}/edit`);\n\nexport const getList = {\n invoke: () => ({ type: GET_GLOBAL_COORDINATORS.INVOKE }),\n request: () => ({ type: GET_GLOBAL_COORDINATORS.REQUEST }),\n success: (list) => ({ type: GET_GLOBAL_COORDINATORS.SUCCESS, list }),\n failure: (message) => ({ type: GET_GLOBAL_COORDINATORS.FAILURE, message }),\n};\n\nexport const create = {\n invoke: (data) => ({ type: CREATE_GLOBAL_COORDINATOR.INVOKE, data }),\n request: () => ({ type: CREATE_GLOBAL_COORDINATOR.REQUEST }),\n success: () => ({ type: CREATE_GLOBAL_COORDINATOR.SUCCESS }),\n failure: (message) => ({\n type: CREATE_GLOBAL_COORDINATOR.FAILURE,\n message,\n suppressPopup: true,\n }),\n};\n\nexport const edit = {\n invoke: (data) => ({ type: EDIT_GLOBAL_COORDINATOR.INVOKE, data }),\n request: () => ({ type: EDIT_GLOBAL_COORDINATOR.REQUEST }),\n success: () => ({ type: EDIT_GLOBAL_COORDINATOR.SUCCESS }),\n failure: (message) => ({\n type: EDIT_GLOBAL_COORDINATOR.FAILURE,\n message,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: ({ path, params }) => ({\n type: OPEN_EDITION_GLOBAL_COORDINATOR.INVOKE,\n path,\n params,\n }),\n request: () => ({ type: OPEN_EDITION_GLOBAL_COORDINATOR.REQUEST }),\n success: (data) => ({ type: OPEN_EDITION_GLOBAL_COORDINATOR.SUCCESS, data }),\n failure: (message) => ({\n type: OPEN_EDITION_GLOBAL_COORDINATOR.FAILURE,\n message,\n }),\n};\n\nexport const remove = {\n invoke: (id) => ({ type: REMOVE_GLOBAL_COORDINATOR.INVOKE, id }),\n request: (id) => ({ type: REMOVE_GLOBAL_COORDINATOR.REQUEST, id }),\n success: (id) => ({ type: REMOVE_GLOBAL_COORDINATOR.SUCCESS, id }),\n failure: (id, message) => ({\n type: REMOVE_GLOBAL_COORDINATOR.FAILURE,\n id,\n message,\n }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./globalCoordinatorsConstants\";\nimport * as actions from \"./globalCoordinatorsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const globalCoordinatorsSagas = () => [\n takeEvery(consts.GET_GLOBAL_COORDINATORS.INVOKE, getGlobalCoordinators),\n takeEvery(\n consts.OPEN_EDITION_GLOBAL_COORDINATOR.INVOKE,\n openGlobalCoordinatorEdition,\n ),\n takeEvery(consts.EDIT_GLOBAL_COORDINATOR.INVOKE, editGlobalCoordinator),\n takeEvery(consts.CREATE_GLOBAL_COORDINATOR.INVOKE, createGlobalCoordinator),\n takeEvery(consts.REMOVE_GLOBAL_COORDINATOR.INVOKE, removeGlobalCoordinator),\n];\n\nfunction* getGlobalCoordinators(force) {\n const currentData = yield select(\n (state) => state.globalCoordinators.listData,\n );\n\n if (!force && currentData.length) {\n return;\n }\n\n yield put(actions.getList.request());\n try {\n const response = yield call(http.get, \"/api/globalcoordinator/list\");\n\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\nfunction* openGlobalCoordinatorEdition({ path, params }) {\n yield put(actions.openEdition.request());\n try {\n const response = yield call(\n http.get,\n `/api/globalCoordinator/${params.globalCoordinatorId}/get`,\n );\n\n yield put(\n appActions.openModule.invoke(path, {\n globalCoordinatorName: response.value.name,\n globalCoordinatorId: response.value.id,\n }),\n );\n\n yield put(actions.openEdition.success(response.value));\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* createGlobalCoordinator({ data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n \"/api/globalcoordinator/create\",\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(actions.goToList());\n yield put(\n appActions.showMessage(stringKeys.globalCoordinator.create.success),\n );\n } catch (error) {\n yield put(actions.create.failure(error.message));\n }\n}\n\nfunction* editGlobalCoordinator({ data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/globalcoordinator/${data.id}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList());\n yield put(\n appActions.showMessage(stringKeys.globalCoordinator.edit.success),\n );\n } catch (error) {\n yield put(actions.edit.failure(error.message));\n }\n}\n\nfunction* removeGlobalCoordinator({ id }) {\n yield put(actions.remove.request(id));\n try {\n yield call(http.post, `/api/globalcoordinator/${id}/delete`);\n yield put(actions.remove.success(id));\n yield call(getGlobalCoordinators, true);\n yield put(\n appActions.showMessage(stringKeys.globalCoordinator.delete.success),\n );\n } catch (error) {\n yield put(actions.remove.failure(id, error.message));\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n GET_HEALTH_RISKS,\n CREATE_HEALTH_RISK,\n REMOVE_HEALTH_RISK,\n OPEN_CREATION_HEALTH_RISK,\n} from \"./healthRisksConstants\";\nimport {\n OPEN_EDITION_HEALTH_RISK,\n EDIT_HEALTH_RISK,\n} from \"./healthRisksConstants\";\n\nexport const goToCreation = () => push(\"/healthrisks/add\"); /// for listing page\nexport const goToList = () => push(\"/healthrisks\");\nexport const goToEdition = (id) => push(`/healthrisks/${id}/edit`);\n\nexport const getList = {\n invoke: () => ({ type: GET_HEALTH_RISKS.INVOKE }),\n request: () => ({ type: GET_HEALTH_RISKS.REQUEST }),\n success: (list) => ({ type: GET_HEALTH_RISKS.SUCCESS, list }),\n failure: (message) => ({ type: GET_HEALTH_RISKS.FAILURE, message }),\n};\n\n//Added as new creation action to handle start of health risk creation and data we need for that\nexport const openCreation = {\n invoke: (data) => ({ type: OPEN_CREATION_HEALTH_RISK.INVOKE, data }),\n request: () => ({ type: OPEN_CREATION_HEALTH_RISK.REQUEST }),\n success: (data) => ({ type: OPEN_CREATION_HEALTH_RISK.SUCCESS, data }),\n failure: (message) => ({ type: OPEN_CREATION_HEALTH_RISK.FAILURE, message }),\n};\n\nexport const create = {\n invoke: (data) => ({ type: CREATE_HEALTH_RISK.INVOKE, data }),\n request: () => ({ type: CREATE_HEALTH_RISK.REQUEST }),\n success: () => ({ type: CREATE_HEALTH_RISK.SUCCESS }),\n failure: (error) => ({\n type: CREATE_HEALTH_RISK.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const edit = {\n invoke: (id, data) => ({ type: EDIT_HEALTH_RISK.INVOKE, id, data }),\n request: () => ({ type: EDIT_HEALTH_RISK.REQUEST }),\n success: () => ({ type: EDIT_HEALTH_RISK.SUCCESS }),\n failure: (error) => ({\n type: EDIT_HEALTH_RISK.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: ({ path, params }) => ({\n type: OPEN_EDITION_HEALTH_RISK.INVOKE,\n path,\n params,\n }),\n request: () => ({ type: OPEN_EDITION_HEALTH_RISK.REQUEST }),\n success: (data) => ({ type: OPEN_EDITION_HEALTH_RISK.SUCCESS, data }),\n failure: (message) => ({ type: OPEN_EDITION_HEALTH_RISK.FAILURE, message }),\n};\n\nexport const remove = {\n invoke: (id) => ({ type: REMOVE_HEALTH_RISK.INVOKE, id }),\n request: (id) => ({ type: REMOVE_HEALTH_RISK.REQUEST, id }),\n success: (id) => ({ type: REMOVE_HEALTH_RISK.SUCCESS, id }),\n failure: (id, message) => ({ type: REMOVE_HEALTH_RISK.FAILURE, id, message }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./healthRisksConstants\";\nimport * as actions from \"./healthRisksActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const healthRisksSagas = () => [\n takeEvery(consts.GET_HEALTH_RISKS.INVOKE, getHealthRisks),\n takeEvery(consts.OPEN_EDITION_HEALTH_RISK.INVOKE, openHealthRiskEdition),\n takeEvery(consts.OPEN_CREATION_HEALTH_RISK.INVOKE, openHealthRiskCreation),\n takeEvery(consts.EDIT_HEALTH_RISK.INVOKE, editHealthRisk),\n takeEvery(consts.CREATE_HEALTH_RISK.INVOKE, createHealthRisk),\n takeEvery(consts.REMOVE_HEALTH_RISK.INVOKE, removeHealthRisk),\n];\n\nfunction* getHealthRisks(force) {\n const currentData = yield select((state) => state.healthRisks.listData);\n if (!force && currentData.length) {\n return;\n }\n\n yield put(actions.getList.request());\n try {\n const response = yield call(http.get, \"/api/healthrisk/list\");\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\n//Added to handle the list of suspected diseases in helth risk creation\nfunction* openHealthRiskCreation() {\n yield put(actions.openCreation.request());\n try {\n const formData = yield call(http.get, \"/api/suspecteddisease/list\");\n yield put(actions.openCreation.success(formData.value));\n } catch (error) {\n yield put(actions.openCreation.failure(error));\n }\n}\n\n//Changed to handle the list of suspected diseases in helth risk edition\nfunction* openHealthRiskEdition({ path, params }) {\n yield put(actions.openEdition.request());\n try {\n const response = yield call(\n http.get,\n `/api/healthrisk/${params.healthRiskId}/get`,\n );\n const formData = yield call(http.get, \"/api/suspecteddisease/list\");\n yield put(\n appActions.openModule.invoke(path, {\n healthRiskCode: response.value.healthRiskCode,\n }),\n );\n response.value.suspectedDiseasesList = formData.value;\n yield put(actions.openEdition.success(response.value));\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* createHealthRisk({ data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(http.post, \"/api/healthrisk/create\", data);\n yield put(actions.create.success(response.value));\n yield put(actions.goToList());\n yield put(appActions.showMessage(stringKeys.healthRisk.create.success));\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* editHealthRisk({ id, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(http.post, `/api/healthrisk/${id}/edit`, data);\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList());\n yield put(appActions.showMessage(stringKeys.healthRisk.edit.success));\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\nfunction* removeHealthRisk({ id }) {\n yield put(actions.remove.request(id));\n try {\n yield call(http.post, `/api/healthrisk/${id}/delete`);\n yield put(actions.remove.success(id));\n yield call(getHealthRisks, true);\n yield put(appActions.showMessage(stringKeys.healthRisk.delete.success));\n } catch (error) {\n yield put(actions.remove.failure(id, error.message));\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n GET_SUSPECTED_DISEASE,\n CREATE_SUSPECTED_DISEASE,\n REMOVE_SUSPECTED_DISEASE,\n} from \"./suspectedDiseaseConstants\";\nimport {\n OPEN_EDITION_SUSPECTED_DISEASE,\n EDIT_SUSPECTED_DISEASE,\n} from \"./suspectedDiseaseConstants\";\n\nexport const goToCreation = () => push(\"/suspecteddiseases/add\");\nexport const goToList = () => push(\"/suspecteddiseases\");\nexport const goToEdition = (id) => push(`/suspecteddiseases/${id}/edit`);\n\nexport const getList = {\n invoke: () => ({ type: GET_SUSPECTED_DISEASE.INVOKE }),\n request: () => ({ type: GET_SUSPECTED_DISEASE.REQUEST }),\n success: (list) => ({ type: GET_SUSPECTED_DISEASE.SUCCESS, list }),\n failure: (message) => ({ type: GET_SUSPECTED_DISEASE.FAILURE, message }),\n};\n\nexport const create = {\n invoke: (data) => ({ type: CREATE_SUSPECTED_DISEASE.INVOKE, data }),\n request: () => ({ type: CREATE_SUSPECTED_DISEASE.REQUEST }),\n success: () => ({ type: CREATE_SUSPECTED_DISEASE.SUCCESS }),\n failure: (error) => ({\n type: CREATE_SUSPECTED_DISEASE.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const edit = {\n invoke: (id, data) => ({ type: EDIT_SUSPECTED_DISEASE.INVOKE, id, data }),\n request: () => ({ type: EDIT_SUSPECTED_DISEASE.REQUEST }),\n success: () => ({ type: EDIT_SUSPECTED_DISEASE.SUCCESS }),\n failure: (error) => ({\n type: EDIT_SUSPECTED_DISEASE.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: ({ path, params }) => ({\n type: OPEN_EDITION_SUSPECTED_DISEASE.INVOKE,\n path,\n params,\n }),\n request: () => ({ type: OPEN_EDITION_SUSPECTED_DISEASE.REQUEST }),\n success: (data) => ({ type: OPEN_EDITION_SUSPECTED_DISEASE.SUCCESS, data }),\n failure: (message) => ({\n type: OPEN_EDITION_SUSPECTED_DISEASE.FAILURE,\n message,\n }),\n};\n\nexport const remove = {\n invoke: (id) => ({ type: REMOVE_SUSPECTED_DISEASE.INVOKE, id }),\n request: (id) => ({ type: REMOVE_SUSPECTED_DISEASE.REQUEST, id }),\n success: (id) => ({ type: REMOVE_SUSPECTED_DISEASE.SUCCESS, id }),\n failure: (id, message) => ({\n type: REMOVE_SUSPECTED_DISEASE.FAILURE,\n id,\n message,\n }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./suspectedDiseaseConstants\";\nimport * as actions from \"./suspectedDiseaseActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const suspectedDiseaseSagas = () => [\n takeEvery(consts.GET_SUSPECTED_DISEASE.INVOKE, getSuspectedDisease),\n takeEvery(\n consts.OPEN_EDITION_SUSPECTED_DISEASE.INVOKE,\n openSuspectedDiseaseEdition,\n ),\n takeEvery(consts.EDIT_SUSPECTED_DISEASE.INVOKE, editSuspectedDisease),\n takeEvery(consts.CREATE_SUSPECTED_DISEASE.INVOKE, createSuspectedDisease),\n takeEvery(consts.REMOVE_SUSPECTED_DISEASE.INVOKE, removeSuspectedDisease),\n];\n\nfunction* getSuspectedDisease(force) {\n const currentData = yield select((state) => state.suspectedDiseases.listData);\n\n if (!force && currentData.length) {\n return;\n }\n\n yield put(actions.getList.request());\n try {\n const response = yield call(http.get, \"/api/suspecteddisease/list\");\n\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\nfunction* openSuspectedDiseaseEdition({ path, params }) {\n yield put(actions.openEdition.request());\n try {\n const response = yield call(\n http.get,\n `/api/suspecteddisease/${params.suspecteddiseaseId}/get`,\n );\n\n yield put(\n appActions.openModule.invoke(path, {\n suspectedDiseaseCode: response.value.suspectedDiseaseCode,\n }),\n );\n\n yield put(actions.openEdition.success(response.value));\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* createSuspectedDisease({ data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n \"/api/suspecteddisease/create\",\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(actions.goToList());\n yield put(\n appActions.showMessage(stringKeys.suspectedDisease.create.success),\n );\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* editSuspectedDisease({ id, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/suspecteddisease/${id}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList());\n yield put(appActions.showMessage(stringKeys.suspectedDisease.edit.success));\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\nfunction* removeSuspectedDisease({ id }) {\n yield put(actions.remove.request(id));\n try {\n yield call(http.post, `/api/suspecteddisease/${id}/delete`);\n yield put(actions.remove.success(id));\n yield call(getSuspectedDisease, true);\n yield put(\n appActions.showMessage(stringKeys.suspectedDisease.delete.success),\n );\n } catch (error) {\n yield put(actions.remove.failure(id, error.message));\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_NATIONAL_SOCIETY_USERS_LIST,\n GET_NATIONAL_SOCIETY_USERS,\n OPEN_NATIONAL_SOCIETY_USER_CREATION,\n OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING,\n CREATE_NATIONAL_SOCIETY_USER,\n ADD_EXISTING_NATIONAL_SOCIETY_USER,\n OPEN_NATIONAL_SOCIETY_USER_EDITION,\n EDIT_NATIONAL_SOCIETY_USER,\n REMOVE_NATIONAL_SOCIETY_USER,\n SET_AS_HEAD_MANAGER,\n} from \"./nationalSocietyUsersConstants\";\n\nexport const goToList = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/users`);\nexport const goToCreation = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/users/add`);\nexport const goToAddExisting = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/users/addExisting`);\nexport const goToEdition = (nationalSocietyId, nationalSocietyUserId) =>\n push(\n `/nationalsocieties/${nationalSocietyId}/users/${nationalSocietyUserId}/edit`,\n );\n\nexport const openList = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_NATIONAL_SOCIETY_USERS_LIST.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_NATIONAL_SOCIETY_USERS_LIST.REQUEST }),\n success: (nationalSocietyId) => ({\n type: OPEN_NATIONAL_SOCIETY_USERS_LIST.SUCCESS,\n nationalSocietyId,\n }),\n failure: (error) => ({\n type: OPEN_NATIONAL_SOCIETY_USERS_LIST.FAILURE,\n error,\n }),\n};\n\nexport const getList = {\n invoke: (nationalSocietyId) => ({\n type: GET_NATIONAL_SOCIETY_USERS.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: GET_NATIONAL_SOCIETY_USERS.REQUEST }),\n success: (nationalSocietyId, list) => ({\n type: GET_NATIONAL_SOCIETY_USERS.SUCCESS,\n nationalSocietyId,\n list,\n }),\n failure: (error) => ({ type: GET_NATIONAL_SOCIETY_USERS.FAILURE, error }),\n};\n\nexport const openCreation = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_CREATION.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_NATIONAL_SOCIETY_USER_CREATION.REQUEST }),\n success: (data) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_CREATION.SUCCESS,\n data,\n }),\n failure: (error) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_CREATION.FAILURE,\n error,\n }),\n};\n\nexport const openAddExisting = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING.REQUEST }),\n success: (formData) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING.SUCCESS,\n formData,\n }),\n failure: (error) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING.FAILURE,\n error,\n }),\n};\n\nexport const create = {\n invoke: (nationalSocietyId, data) => ({\n type: CREATE_NATIONAL_SOCIETY_USER.INVOKE,\n nationalSocietyId,\n data,\n }),\n request: () => ({ type: CREATE_NATIONAL_SOCIETY_USER.REQUEST }),\n success: () => ({ type: CREATE_NATIONAL_SOCIETY_USER.SUCCESS }),\n failure: (error) => ({\n type: CREATE_NATIONAL_SOCIETY_USER.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const addExisting = {\n invoke: (data) => ({ type: ADD_EXISTING_NATIONAL_SOCIETY_USER.INVOKE, data }),\n request: () => ({ type: ADD_EXISTING_NATIONAL_SOCIETY_USER.REQUEST }),\n success: () => ({ type: ADD_EXISTING_NATIONAL_SOCIETY_USER.SUCCESS }),\n failure: (error) => ({\n type: ADD_EXISTING_NATIONAL_SOCIETY_USER.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: (nationalSocietyUserId, role) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_EDITION.INVOKE,\n nationalSocietyUserId,\n role,\n }),\n request: () => ({ type: OPEN_NATIONAL_SOCIETY_USER_EDITION.REQUEST }),\n success: (data, organizations, modems, countryCode) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_EDITION.SUCCESS,\n data,\n organizations,\n modems,\n countryCode,\n }),\n failure: (error) => ({\n type: OPEN_NATIONAL_SOCIETY_USER_EDITION.FAILURE,\n error,\n }),\n};\n\nexport const edit = {\n invoke: (nationalSocietyId, data) => ({\n type: EDIT_NATIONAL_SOCIETY_USER.INVOKE,\n nationalSocietyId,\n data,\n }),\n request: () => ({ type: EDIT_NATIONAL_SOCIETY_USER.REQUEST }),\n success: () => ({ type: EDIT_NATIONAL_SOCIETY_USER.SUCCESS }),\n failure: (error) => ({\n type: EDIT_NATIONAL_SOCIETY_USER.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const remove = {\n invoke: (nationalSocietyUserId, role, nationalSocietyId) => ({\n type: REMOVE_NATIONAL_SOCIETY_USER.INVOKE,\n nationalSocietyUserId,\n role,\n nationalSocietyId,\n }),\n request: (id) => ({ type: REMOVE_NATIONAL_SOCIETY_USER.REQUEST, id }),\n success: (id) => ({ type: REMOVE_NATIONAL_SOCIETY_USER.SUCCESS, id }),\n failure: (id, error) => ({\n type: REMOVE_NATIONAL_SOCIETY_USER.FAILURE,\n id,\n error,\n }),\n};\n\nexport const setAsHeadManager = {\n invoke: (organizationId, nationalSocietyUserId) => ({\n type: SET_AS_HEAD_MANAGER.INVOKE,\n organizationId,\n nationalSocietyUserId,\n }),\n request: (id) => ({ type: SET_AS_HEAD_MANAGER.REQUEST, id }),\n success: (id) => ({ type: SET_AS_HEAD_MANAGER.SUCCESS, id }),\n failure: (id, error) => ({ type: SET_AS_HEAD_MANAGER.FAILURE, id, error }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./nationalSocietyUsersConstants\";\nimport * as actions from \"./nationalSocietyUsersActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport * as roles from \"../../../authentication/roles\";\nimport { stringKeys, stringKey } from \"../../../strings\";\n\nexport const nationalSocietyUsersSagas = () => [\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_USERS_LIST.INVOKE,\n openNationalSocietyUsersList,\n ),\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_USER_CREATION.INVOKE,\n openNationalSocietyUserCreation,\n ),\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_USER_ADD_EXISTING.INVOKE,\n openNationalSocietyAddExistingUser,\n ),\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_USER_EDITION.INVOKE,\n openNationalSocietyUserEdition,\n ),\n takeEvery(\n consts.CREATE_NATIONAL_SOCIETY_USER.INVOKE,\n createNationalSocietyUser,\n ),\n takeEvery(\n consts.ADD_EXISTING_NATIONAL_SOCIETY_USER.INVOKE,\n addExistingNationalSocietyUser,\n ),\n takeEvery(consts.EDIT_NATIONAL_SOCIETY_USER.INVOKE, editNationalSocietyUser),\n takeEvery(\n consts.REMOVE_NATIONAL_SOCIETY_USER.INVOKE,\n removeNationalSocietyUser,\n ),\n takeEvery(consts.SET_AS_HEAD_MANAGER.INVOKE, setAsHeadManagerInOrganization),\n];\n\nfunction* openNationalSocietyUsersList({ nationalSocietyId }) {\n yield put(actions.openList.request());\n try {\n yield openNationalSocietyUsersModule(nationalSocietyId);\n\n const isListStale = yield select(\n (state) => state.nationalSocietyUsers.listStale,\n );\n const lastNationalSocietyId = yield select(\n (state) => state.nationalSocietyUsers.listNationalSocietyId,\n );\n\n if (isListStale || lastNationalSocietyId !== nationalSocietyId) {\n yield call(getNationalSocietyUsers, nationalSocietyId);\n }\n\n yield put(actions.openList.success());\n } catch (error) {\n yield put(actions.openList.failure(error));\n }\n}\n\nfunction* openNationalSocietyUserCreation({ nationalSocietyId }) {\n yield put(actions.openCreation.request());\n try {\n yield openNationalSocietyUsersModule(nationalSocietyId);\n const formData = yield call(\n http.get,\n `/api/user/createFormData?nationalSocietyId=${nationalSocietyId}`,\n );\n yield put(actions.openCreation.success(formData.value));\n } catch (error) {\n yield put(actions.openCreation.failure(error));\n }\n}\n\nfunction* openNationalSocietyAddExistingUser({ nationalSocietyId }) {\n yield put(actions.openAddExisting.request());\n try {\n yield openNationalSocietyUsersModule(nationalSocietyId);\n const formData = yield call(\n http.get,\n `/api/user/addExistingFormData?nationalSocietyId=${nationalSocietyId}`,\n );\n yield put(actions.openAddExisting.success(formData));\n } catch (error) {\n yield put(actions.openAddExisting.failure(error));\n }\n}\n\nfunction* openNationalSocietyUserEdition({ nationalSocietyUserId, role }) {\n yield put(actions.openEdition.request());\n try {\n const nationalSocietyId = yield select(\n (state) => state.appData.route.params.nationalSocietyId,\n );\n const formData = yield call(\n http.get,\n `/api/user/editFormData?nationalSocietyUserId=${nationalSocietyUserId}&nationalSocietyId=${nationalSocietyId}`,\n );\n const response = yield call(\n http.get,\n getSpecificRoleUserRetrievalUrl(\n nationalSocietyUserId,\n formData.value.role,\n nationalSocietyId,\n ),\n );\n yield openNationalSocietyUsersModule(nationalSocietyId);\n yield put(\n actions.openEdition.success(\n response.value,\n formData.value.organizations,\n formData.value.modems,\n formData.value.countryCode,\n ),\n );\n } catch (error) {\n yield put(actions.openEdition.failure(error));\n }\n}\n\nfunction* createNationalSocietyUser({ nationalSocietyId, data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n getSpecificRoleUserAdditionUrl(nationalSocietyId, data.role),\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(actions.goToList(nationalSocietyId));\n yield put(\n appActions.showMessage(\n stringKeys.nationalSocietyUser.messages.creationSuccessful,\n ),\n );\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* addExistingNationalSocietyUser({ data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(http.post, \"/api/user/addExisting\", data);\n yield put(actions.create.success(response.value));\n yield put(actions.goToList(data.nationalSocietyId));\n yield put(\n appActions.showMessage(stringKeys.nationalSocietyUser.create.success),\n );\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* editNationalSocietyUser({ nationalSocietyId, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n getSpecificRoleUserEditionUrl(data.id, data.role),\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList(nationalSocietyId));\n yield put(\n appActions.showMessage(stringKeys.nationalSocietyUser.edit.success),\n );\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\nfunction* removeNationalSocietyUser({\n nationalSocietyUserId,\n role,\n nationalSocietyId,\n}) {\n yield put(actions.remove.request(nationalSocietyUserId));\n try {\n yield call(\n http.post,\n getSpecificRoleUserRemovalUrl(\n nationalSocietyUserId,\n role,\n nationalSocietyId,\n ),\n );\n yield put(actions.remove.success(nationalSocietyUserId));\n yield put(\n appActions.showMessage(stringKeys.nationalSocietyUser.remove.success),\n );\n } catch (error) {\n yield put(actions.remove.failure(nationalSocietyUserId, error));\n }\n}\n\nfunction* getNationalSocietyUsers(nationalSocietyId) {\n yield put(actions.getList.request());\n try {\n const response = yield call(\n http.get,\n `/api/user/list?nationalSocietyId=${nationalSocietyId}`,\n );\n yield put(actions.getList.success(nationalSocietyId, response.value));\n } catch (error) {\n yield put(actions.getList.failure(error));\n }\n}\n\nfunction* setAsHeadManagerInOrganization({\n organizationId,\n nationalSocietyUserId,\n}) {\n yield put(actions.setAsHeadManager.request(nationalSocietyUserId));\n try {\n yield call(\n http.post,\n `/api/organization/${organizationId}/setHeadManager`,\n { userId: nationalSocietyUserId },\n );\n yield put(actions.setAsHeadManager.success(nationalSocietyUserId));\n yield put(\n appActions.showMessage(\n stringKeys.nationalSocietyConsents.setSuccessfully,\n ),\n );\n const nationalSocietyId = yield select(\n (state) => state.appData.route.params.nationalSocietyId,\n );\n yield call(getNationalSocietyUsers, nationalSocietyId);\n } catch (error) {\n yield put(actions.setAsHeadManager.failure(nationalSocietyUserId, error));\n }\n}\n\nfunction getSpecificRoleUserAdditionUrl(nationalSocietyId, role) {\n switch (role) {\n case roles.TechnicalAdvisor:\n return `/api/technicalAdvisor/create?nationalSocietyId=${nationalSocietyId}`;\n case roles.Manager:\n return `/api/manager/create?nationalSocietyId=${nationalSocietyId}`;\n case roles.DataConsumer:\n return `/api/dataConsumer/create?nationalSocietyId=${nationalSocietyId}`;\n case roles.Supervisor:\n return `/api/supervisor/create?nationalSocietyId=${nationalSocietyId}`;\n case roles.Coordinator:\n return `/api/coordinator/create?nationalSocietyId=${nationalSocietyId}`;\n case roles.HeadSupervisor:\n return `/api/headSupervisor/create?nationalSocietyId=${nationalSocietyId}`;\n default:\n throw new Error(\n stringKey(stringKeys.nationalSocietyUser.messages.roleNotValid),\n );\n }\n}\n\nfunction getSpecificRoleUserEditionUrl(userId, role) {\n switch (role) {\n case roles.TechnicalAdvisor:\n return `/api/technicalAdvisor/${userId}/edit`;\n case roles.Manager:\n return `/api/manager/${userId}/edit`;\n case roles.DataConsumer:\n return `/api/dataConsumer/${userId}/edit`;\n case roles.Supervisor:\n return `/api/supervisor/${userId}/edit`;\n case roles.Coordinator:\n return `/api/coordinator/${userId}/edit`;\n case roles.HeadSupervisor:\n return `/api/headSupervisor/${userId}/edit`;\n default:\n throw new Error(\n stringKey(stringKeys.nationalSocietyUser.messages.roleNotValid),\n );\n }\n}\n\nfunction getSpecificRoleUserRetrievalUrl(userId, role, nationalSocietyId) {\n switch (role) {\n case roles.TechnicalAdvisor:\n return `/api/technicalAdvisor/${userId}/get?nationalSocietyId=${nationalSocietyId}`;\n case roles.Manager:\n return `/api/manager/${userId}/get?nationalSocietyId=${nationalSocietyId}`;\n case roles.DataConsumer:\n return `/api/dataConsumer/${userId}/get?nationalSocietyId=${nationalSocietyId}`;\n case roles.Supervisor:\n return `/api/supervisor/${userId}/get?nationalSocietyId=${nationalSocietyId}`;\n case roles.Coordinator:\n return `/api/coordinator/${userId}/get?nationalSocietyId=${nationalSocietyId}`;\n case roles.HeadSupervisor:\n return `/api/headSupervisor/${userId}/get?nationalSocietyId=${nationalSocietyId}`;\n default:\n throw new Error(\n stringKey(stringKeys.nationalSocietyUser.messages.roleNotValid),\n );\n }\n}\n\nfunction getSpecificRoleUserRemovalUrl(userId, role, nationalSocietyId) {\n switch (role) {\n case roles.TechnicalAdvisor:\n return `/api/technicalAdvisor/${userId}/delete?nationalSocietyId=${nationalSocietyId}`;\n case roles.Manager:\n return `/api/manager/${userId}/delete`;\n case roles.DataConsumer:\n return `/api/dataConsumer/${userId}/delete?nationalSocietyId=${nationalSocietyId}`;\n case roles.Supervisor:\n return `/api/supervisor/${userId}/delete`;\n case roles.Coordinator:\n return `/api/coordinator/${userId}/delete`;\n case roles.HeadSupervisor:\n return `/api/headSupervisor/${userId}/delete`;\n default:\n throw new Error(\n stringKey(stringKeys.nationalSocietyUser.messages.roleNotValid),\n );\n }\n}\n\nfunction* openNationalSocietyUsersModule(nationalSocietyId) {\n const nationalSociety = yield call(http.getCached, {\n path: `/api/nationalSociety/${nationalSocietyId}/get`,\n dependencies: [entityTypes.nationalSociety(nationalSocietyId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n }),\n );\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_DATA_COLLECTORS_LIST,\n GET_DATA_COLLECTORS,\n OPEN_DATA_COLLECTOR_CREATION,\n CREATE_DATA_COLLECTOR,\n OPEN_DATA_COLLECTOR_EDITION,\n EDIT_DATA_COLLECTOR,\n REMOVE_DATA_COLLECTOR,\n OPEN_DATA_COLLECTORS_MAP_OVERVIEW,\n GET_DATA_COLLECTORS_MAP_OVERVIEW,\n GET_DATA_COLLECTORS_MAP_DETAILS,\n SET_DATA_COLLECTORS_TRAINING_STATE,\n OPEN_DATA_COLLECTORS_PERFORMANCE_LIST,\n GET_DATA_COLLECTORS_PERFORMANCE,\n EXPORT_DATA_COLLECTORS_TO_CSV,\n EXPORT_DATA_COLLECTORS_TO_EXCEL,\n SELECT_DATA_COLLECTOR,\n SELECT_ALL_DATA_COLLECTOR,\n REPLACE_SUPERVISOR,\n SET_DATA_COLLECTORS_DEPLOYED_STATE,\n EXPORT_DATA_COLLECTOR_PERFORMANCE,\n} from \"./dataCollectorsConstants\";\n\nexport const goToList = (projectId) =>\n push(`/projects/${projectId}/datacollectors/list`);\nexport const goToOverview = (projectId) =>\n push(`/projects/${projectId}/datacollectors/mapoverview`);\nexport const goToCreation = (projectId) =>\n push(`/projects/${projectId}/datacollectors/add`);\nexport const goToEdition = (projectId, dataCollectorId) =>\n push(`/projects/${projectId}/datacollectors/${dataCollectorId}/edit`);\nexport const selectDataCollector = (dataCollectorId, value) => ({\n type: SELECT_DATA_COLLECTOR,\n dataCollectorId,\n value,\n});\nexport const selectAllDataCollectors = (value) => ({\n type: SELECT_ALL_DATA_COLLECTOR,\n value,\n});\n\nexport const openList = {\n invoke: (projectId) => ({\n type: OPEN_DATA_COLLECTORS_LIST.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_DATA_COLLECTORS_LIST.REQUEST }),\n success: (projectId, filtersData) => ({\n type: OPEN_DATA_COLLECTORS_LIST.SUCCESS,\n projectId,\n filtersData,\n }),\n failure: (message) => ({ type: OPEN_DATA_COLLECTORS_LIST.FAILURE, message }),\n};\n\nexport const getList = {\n invoke: (projectId, filters) => ({\n type: GET_DATA_COLLECTORS.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: GET_DATA_COLLECTORS.REQUEST }),\n success: (list, filters) => ({\n type: GET_DATA_COLLECTORS.SUCCESS,\n list,\n filters,\n }),\n failure: (message) => ({ type: GET_DATA_COLLECTORS.FAILURE, message }),\n};\n\nexport const openMapOverview = {\n invoke: (projectId) => ({\n type: OPEN_DATA_COLLECTORS_MAP_OVERVIEW.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_DATA_COLLECTORS_MAP_OVERVIEW.REQUEST }),\n success: () => ({ type: OPEN_DATA_COLLECTORS_MAP_OVERVIEW.SUCCESS }),\n failure: (message) => ({\n type: OPEN_DATA_COLLECTORS_MAP_OVERVIEW.FAILURE,\n message,\n }),\n};\n\nexport const getMapOverview = {\n invoke: (projectId, filters) => ({\n type: GET_DATA_COLLECTORS_MAP_OVERVIEW.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: GET_DATA_COLLECTORS_MAP_OVERVIEW.REQUEST }),\n success: (filters, dataCollectorLocations, centerLocation) => ({\n type: GET_DATA_COLLECTORS_MAP_OVERVIEW.SUCCESS,\n filters,\n dataCollectorLocations,\n centerLocation,\n }),\n failure: (message) => ({\n type: GET_DATA_COLLECTORS_MAP_OVERVIEW.FAILURE,\n message,\n }),\n};\n\nexport const openCreation = {\n invoke: (projectId) => ({\n type: OPEN_DATA_COLLECTOR_CREATION.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_DATA_COLLECTOR_CREATION.REQUEST }),\n success: (\n regions,\n supervisors,\n defaultLocation,\n defaultSupervisorId,\n countryCode,\n ) => ({\n type: OPEN_DATA_COLLECTOR_CREATION.SUCCESS,\n regions,\n supervisors,\n defaultLocation,\n defaultSupervisorId,\n countryCode,\n }),\n failure: (message) => ({\n type: OPEN_DATA_COLLECTOR_CREATION.FAILURE,\n message,\n }),\n};\n\nexport const create = {\n invoke: (data) => ({ type: CREATE_DATA_COLLECTOR.INVOKE, data }),\n request: () => ({ type: CREATE_DATA_COLLECTOR.REQUEST }),\n success: () => ({ type: CREATE_DATA_COLLECTOR.SUCCESS }),\n failure: (error) => ({\n type: CREATE_DATA_COLLECTOR.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: (dataCollectorId) => ({\n type: OPEN_DATA_COLLECTOR_EDITION.INVOKE,\n dataCollectorId,\n }),\n request: () => ({ type: OPEN_DATA_COLLECTOR_EDITION.REQUEST }),\n success: (data) => ({ type: OPEN_DATA_COLLECTOR_EDITION.SUCCESS, data }),\n failure: (message) => ({\n type: OPEN_DATA_COLLECTOR_EDITION.FAILURE,\n message,\n }),\n};\n\nexport const edit = {\n invoke: (data) => ({ type: EDIT_DATA_COLLECTOR.INVOKE, data }),\n request: () => ({ type: EDIT_DATA_COLLECTOR.REQUEST }),\n success: () => ({ type: EDIT_DATA_COLLECTOR.SUCCESS }),\n failure: (error) => ({\n type: EDIT_DATA_COLLECTOR.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const remove = {\n invoke: (dataCollectorId) => ({\n type: REMOVE_DATA_COLLECTOR.INVOKE,\n dataCollectorId,\n }),\n request: (id) => ({ type: REMOVE_DATA_COLLECTOR.REQUEST, id }),\n success: (id) => ({ type: REMOVE_DATA_COLLECTOR.SUCCESS, id }),\n failure: (id, message) => ({\n type: REMOVE_DATA_COLLECTOR.FAILURE,\n id,\n message,\n }),\n};\n\nexport const getMapDetails = {\n invoke: (projectId, lat, lng) => ({\n type: GET_DATA_COLLECTORS_MAP_DETAILS.INVOKE,\n projectId,\n lat,\n lng,\n }),\n request: () => ({ type: GET_DATA_COLLECTORS_MAP_DETAILS.REQUEST }),\n success: (details) => ({\n type: GET_DATA_COLLECTORS_MAP_DETAILS.SUCCESS,\n details,\n }),\n failure: (message) => ({\n type: GET_DATA_COLLECTORS_MAP_DETAILS.FAILURE,\n message,\n }),\n};\n\nexport const setTrainingState = {\n invoke: (dataCollectorIds, inTraining) => ({\n type: SET_DATA_COLLECTORS_TRAINING_STATE.INVOKE,\n dataCollectorIds,\n inTraining,\n }),\n request: (dataCollectorIds) => ({\n type: SET_DATA_COLLECTORS_TRAINING_STATE.REQUEST,\n dataCollectorIds,\n }),\n success: (dataCollectorIds, inTraining) => ({\n type: SET_DATA_COLLECTORS_TRAINING_STATE.SUCCESS,\n dataCollectorIds,\n inTraining,\n }),\n failure: (dataCollectorIds, message) => ({\n type: SET_DATA_COLLECTORS_TRAINING_STATE.FAILURE,\n dataCollectorIds,\n message,\n }),\n};\n\nexport const openDataCollectorsPerformanceList = {\n invoke: (projectId) => ({\n type: OPEN_DATA_COLLECTORS_PERFORMANCE_LIST.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_DATA_COLLECTORS_PERFORMANCE_LIST.REQUEST }),\n success: (filters, filtersData) => ({\n type: OPEN_DATA_COLLECTORS_PERFORMANCE_LIST.SUCCESS,\n filters,\n filtersData,\n }),\n failure: (message) => ({\n type: OPEN_DATA_COLLECTORS_PERFORMANCE_LIST.FAILURE,\n message,\n }),\n};\n\nexport const getDataCollectorsPerformanceList = {\n invoke: (projectId, filters) => ({\n type: GET_DATA_COLLECTORS_PERFORMANCE.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: GET_DATA_COLLECTORS_PERFORMANCE.REQUEST }),\n success: (list, completeness, epiDateRange, filters) => ({\n type: GET_DATA_COLLECTORS_PERFORMANCE.SUCCESS,\n list,\n completeness,\n epiDateRange,\n filters,\n }),\n failure: (message) => ({\n type: GET_DATA_COLLECTORS_PERFORMANCE.FAILURE,\n message,\n }),\n};\n\nexport const exportToExcel = {\n invoke: (projectId, filters) => ({\n type: EXPORT_DATA_COLLECTORS_TO_EXCEL.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: EXPORT_DATA_COLLECTORS_TO_EXCEL.REQUEST }),\n success: () => ({ type: EXPORT_DATA_COLLECTORS_TO_EXCEL.SUCCESS }),\n failure: (message) => ({\n type: EXPORT_DATA_COLLECTORS_TO_EXCEL.FAILURE,\n message,\n }),\n};\n\nexport const exportToCsv = {\n invoke: (projectId, filters) => ({\n type: EXPORT_DATA_COLLECTORS_TO_CSV.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: EXPORT_DATA_COLLECTORS_TO_CSV.REQUEST }),\n success: () => ({ type: EXPORT_DATA_COLLECTORS_TO_CSV.SUCCESS }),\n failure: (message) => ({\n type: EXPORT_DATA_COLLECTORS_TO_CSV.FAILURE,\n message,\n }),\n};\n\nexport const replaceSupervisor = {\n invoke: (dataCollectorIds, supervisorId, supervisorRole) => ({\n type: REPLACE_SUPERVISOR.INVOKE,\n dataCollectorIds,\n supervisorId,\n supervisorRole,\n }),\n request: (dataCollectorIds) => ({\n type: REPLACE_SUPERVISOR.REQUEST,\n dataCollectorIds,\n }),\n success: (dataCollectorIds) => ({\n type: REPLACE_SUPERVISOR.SUCCESS,\n dataCollectorIds,\n }),\n failure: (dataCollectorIds, error) => ({\n type: REPLACE_SUPERVISOR.FAILURE,\n error,\n dataCollectorIds,\n }),\n};\n\nexport const setDeployedState = {\n invoke: (dataCollectorIds, deployed) => ({\n type: SET_DATA_COLLECTORS_DEPLOYED_STATE.INVOKE,\n dataCollectorIds,\n deployed,\n }),\n request: (dataCollectorIds) => ({\n type: REPLACE_SUPERVISOR.REQUEST,\n dataCollectorIds,\n }),\n success: (dataCollectorIds) => ({\n type: REPLACE_SUPERVISOR.SUCCESS,\n dataCollectorIds,\n }),\n failure: (dataCollectorIds, error) => ({\n type: REPLACE_SUPERVISOR.FAILURE,\n error,\n dataCollectorIds,\n }),\n};\n\nexport const exportDataCollectorPerformance = {\n invoke: (projectId, filters) => ({\n type: EXPORT_DATA_COLLECTOR_PERFORMANCE.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: EXPORT_DATA_COLLECTOR_PERFORMANCE.REQUEST }),\n success: () => ({ type: EXPORT_DATA_COLLECTOR_PERFORMANCE.SUCCESS }),\n failure: (message) => ({\n type: EXPORT_DATA_COLLECTOR_PERFORMANCE.FAILURE,\n message,\n }),\n};\n","export const downloadFile = ({ url, fileName, token, data }) =>\n new Promise((resolve, reject) => {\n try {\n const xhr = new XMLHttpRequest();\n xhr.open(\"POST\", url, true);\n xhr.responseType = \"blob\";\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status !== 200) {\n reject(\n new Error(\n `Downloading file \"${fileName}\" failed. Status: ${xhr.statusText} (${xhr.status})`,\n ),\n );\n return;\n }\n try {\n const href = URL.createObjectURL(xhr.response);\n const link = document.createElement(\"a\");\n link.href = href;\n link.download = fileName;\n link.dispatchEvent(\n new MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n view: window,\n }),\n );\n resolve();\n } catch (error) {\n reject(error);\n }\n }\n };\n xhr.setRequestHeader(\"Content-type\", \"application/json; charset=utf-8\");\n xhr.send(JSON.stringify(data));\n } catch (e) {\n reject(e);\n }\n });\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./dataCollectorsConstants\";\nimport * as actions from \"./dataCollectorsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringKeys } from \"../../../strings\";\nimport dayjs from \"dayjs\";\nimport { downloadFile } from \"../../../utils/downloadFile\";\nimport { convertToUtc, formatDate } from \"../../../utils/date\";\n\nexport const dataCollectorsSagas = () => [\n takeEvery(consts.OPEN_DATA_COLLECTORS_LIST.INVOKE, openDataCollectorsList),\n takeEvery(\n consts.OPEN_DATA_COLLECTOR_CREATION.INVOKE,\n openDataCollectorCreation,\n ),\n takeEvery(\n consts.OPEN_DATA_COLLECTOR_EDITION.INVOKE,\n openDataCollectorEdition,\n ),\n takeEvery(\n consts.OPEN_DATA_COLLECTORS_MAP_OVERVIEW.INVOKE,\n openDataCollectorMapOverview,\n ),\n takeEvery(\n consts.GET_DATA_COLLECTORS_MAP_OVERVIEW.INVOKE,\n getDataCollectorMapOverview,\n ),\n takeEvery(consts.CREATE_DATA_COLLECTOR.INVOKE, createDataCollector),\n takeEvery(consts.EDIT_DATA_COLLECTOR.INVOKE, editDataCollector),\n takeEvery(consts.REMOVE_DATA_COLLECTOR.INVOKE, removeDataCollector),\n takeEvery(consts.GET_DATA_COLLECTORS_MAP_DETAILS.INVOKE, getMapDetails),\n takeEvery(consts.SET_DATA_COLLECTORS_TRAINING_STATE.INVOKE, setTrainingState),\n takeEvery(\n consts.OPEN_DATA_COLLECTORS_PERFORMANCE_LIST.INVOKE,\n openDataCollectorsPerformanceList,\n ),\n takeEvery(\n consts.GET_DATA_COLLECTORS_PERFORMANCE.INVOKE,\n getDataCollectorsPerformance,\n ),\n takeEvery(consts.EXPORT_DATA_COLLECTORS_TO_EXCEL.INVOKE, getExcelExportData),\n takeEvery(consts.EXPORT_DATA_COLLECTORS_TO_CSV.INVOKE, getCsvExportData),\n takeEvery(consts.GET_DATA_COLLECTORS.INVOKE, getDataCollectors),\n takeEvery(consts.REPLACE_SUPERVISOR.INVOKE, replaceSupervisor),\n takeEvery(consts.SET_DATA_COLLECTORS_DEPLOYED_STATE.INVOKE, setDeployedState),\n takeEvery(\n consts.EXPORT_DATA_COLLECTOR_PERFORMANCE.INVOKE,\n exportDataCollectorPerformance,\n ),\n];\n\nfunction* openDataCollectorsList({ projectId }) {\n yield put(actions.openList.request());\n try {\n yield openDataCollectorsModule(projectId);\n\n const filtersData = (yield call(\n http.get,\n `/api/dataCollector/filters?projectId=${projectId}`,\n )).value;\n\n const filters = {\n supervisorId: null,\n locations: null,\n sex: null,\n trainingStatus: \"All\",\n deployedMode: \"Deployed\",\n name: null,\n pageNumber: 1,\n };\n\n yield call(getDataCollectors, { projectId, filters });\n\n yield put(actions.openList.success(projectId, filtersData));\n } catch (error) {\n yield put(actions.openList.failure(error.message));\n }\n}\n\nfunction* openDataCollectorCreation({ projectId }) {\n yield put(actions.openCreation.request());\n try {\n yield openDataCollectorsModule(projectId);\n\n const response = yield call(\n http.get,\n `/api/dataCollector/formData?projectId=${projectId}`,\n );\n\n yield put(\n actions.openCreation.success(\n response.value.regions,\n response.value.supervisors,\n response.value.defaultLocation,\n response.value.defaultSupervisorId,\n response.value.countryCode,\n ),\n );\n } catch (error) {\n yield put(actions.openCreation.failure(error.message));\n }\n}\n\nfunction* openDataCollectorMapOverview({ projectId }) {\n yield put(actions.openMapOverview.request());\n try {\n yield openDataCollectorsModule(projectId);\n\n let endDate = convertToUtc(dayjs(new Date()));\n endDate = endDate.set(\"hour\", 0);\n endDate = endDate.set(\"minute\", 0);\n endDate = endDate.set(\"second\", 0);\n const filters = {\n startDate: endDate.add(-7, \"day\"),\n endDate: endDate,\n };\n\n yield call(getDataCollectorMapOverview, { projectId, filters });\n yield put(actions.openMapOverview.success());\n } catch (error) {\n yield put(actions.openMapOverview.failure(error.message));\n }\n}\n\nfunction* getDataCollectorMapOverview({ projectId, filters }) {\n yield put(actions.getMapOverview.request());\n try {\n const response = yield call(\n http.get,\n `/api/dataCollector/mapOverview?projectId=${projectId}&from=${filters.startDate}&to=${filters.endDate}`,\n );\n yield put(\n actions.getMapOverview.success(\n filters,\n response.value.dataCollectorLocations,\n response.value.centerLocation,\n ),\n );\n } catch (error) {\n yield put(actions.getMapOverview.failure(error.message));\n }\n}\n\nfunction* openDataCollectorEdition({ dataCollectorId }) {\n yield put(actions.openEdition.request());\n try {\n const response = yield call(\n http.get,\n `/api/dataCollector/${dataCollectorId}/get`,\n );\n yield openDataCollectorsModule(response.value.projectId);\n yield put(actions.openEdition.success(response.value));\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* createDataCollector({ data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(http.post, `/api/dataCollector/create`, data);\n yield put(actions.create.success(response.value));\n yield put(actions.goToList(data.projectId));\n yield put(appActions.showMessage(response.value));\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* editDataCollector({ data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/dataCollector/${data.id}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList(data.projectId));\n yield put(appActions.showMessage(response.value));\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\nfunction* removeDataCollector({ dataCollectorId }) {\n yield put(actions.remove.request(dataCollectorId));\n try {\n const response = yield call(\n http.post,\n `/api/dataCollector/${dataCollectorId}/delete`,\n );\n yield put(actions.remove.success(dataCollectorId));\n const projectId = yield select(\n (state) => state.appData.route.params.projectId,\n );\n const filters = yield select((state) => state.dataCollectors.filters);\n yield call(getDataCollectors, { projectId, filters });\n yield put(appActions.showMessage(response.value));\n } catch (error) {\n yield put(actions.remove.failure(dataCollectorId, error.message));\n }\n}\n\nfunction* getMapDetails({ projectId, lat, lng }) {\n yield put(actions.getMapDetails.request());\n try {\n const filters = yield select(\n (state) => state.dataCollectors.mapOverviewFilters,\n );\n const response = yield call(\n http.get,\n `/api/dataCollector/mapOverviewDetails?projectId=${projectId}&from=${filters.startDate}&to=${filters.endDate}&lat=${lat}&lng=${lng}`,\n );\n yield put(actions.getMapDetails.success(response.value));\n } catch (error) {\n yield put(actions.getMapDetails.failure(error.message));\n }\n}\n\nfunction* getDataCollectors({ projectId, filters }) {\n yield put(actions.getList.request());\n try {\n const response = yield call(\n http.post,\n `/api/dataCollector/list?projectId=${projectId}`,\n filters,\n );\n yield put(actions.getList.success(response.value, filters));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\nfunction* openDataCollectorsModule(projectId) {\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n projectIsClosed: project.value.isClosed,\n }),\n );\n}\n\nfunction* setTrainingState({ dataCollectorIds, inTraining }) {\n yield put(actions.setTrainingState.request(dataCollectorIds));\n try {\n const response = yield call(\n http.post,\n \"/api/dataCollector/setTrainingState\",\n { dataCollectorIds, inTraining },\n );\n yield put(actions.setTrainingState.success(dataCollectorIds, inTraining));\n yield put(appActions.showMessage(response.message.key));\n const projectId = yield select((state) => state.dataCollectors.projectId);\n const filters = yield select((state) => state.dataCollectors.filters);\n yield call(getDataCollectors, { projectId, filters });\n } catch (error) {\n yield put(\n actions.setTrainingState.failure(dataCollectorIds, error.message),\n );\n }\n}\n\nfunction* openDataCollectorsPerformanceList({ projectId }) {\n yield put(actions.openDataCollectorsPerformanceList.request());\n try {\n yield openDataCollectorsModule(projectId);\n\n const filters = yield select(\n (state) => state.dataCollectors.performanceListFilters,\n );\n\n let filtersData = yield select((state) => state.dataCollectors.filtersData);\n\n if (filtersData.nationalSocietyId == null) {\n const fetchedFiltersData = yield call(\n http.get,\n `/api/dataCollector/filters?projectId=${projectId}`,\n );\n filtersData = fetchedFiltersData.value;\n }\n\n yield call(getDataCollectorsPerformance, { projectId, filters });\n yield put(\n actions.openDataCollectorsPerformanceList.success(filters, filtersData),\n );\n } catch (error) {\n yield put(actions.openDataCollectorsPerformanceList.failure(error.message));\n }\n}\n\nfunction* getDataCollectorsPerformance({ projectId, filters }) {\n yield put(actions.getDataCollectorsPerformanceList.request());\n try {\n const response = yield call(\n http.post,\n `/api/dataCollector/performance?projectId=${projectId}`,\n filters,\n );\n yield put(\n actions.getDataCollectorsPerformanceList.success(\n response.value.performance,\n response.value.completeness,\n response.value.epiDateRange,\n filters,\n ),\n );\n } catch (error) {\n yield put(actions.getDataCollectorsPerformanceList.failure(error.message));\n }\n}\n\nfunction* getExcelExportData({ projectId, filters }) {\n yield put(actions.exportToExcel.request());\n try {\n const date = new Date(Date.now());\n yield downloadFile({\n url: `/api/dataCollector/exportToExcel?projectId=${projectId}`,\n fileName: `dataCollectors_${formatDate(date)}.xlsx`,\n data: filters,\n });\n\n yield put(actions.exportToExcel.success());\n } catch (error) {\n yield put(actions.exportToExcel.failure(error.message));\n }\n}\n\nfunction* getCsvExportData({ projectId, filters }) {\n yield put(actions.exportToCsv.request());\n try {\n const date = new Date(Date.now());\n yield downloadFile({\n url: `/api/dataCollector/exportToCsv?projectId=${projectId}`,\n fileName: `dataCollectors_${formatDate(date)}.csv`,\n data: filters,\n });\n\n yield put(actions.exportToCsv.success());\n } catch (error) {\n yield put(actions.exportToCsv.failure(error.message));\n }\n}\n\nfunction* replaceSupervisor({\n dataCollectorIds,\n supervisorId,\n supervisorRole,\n}) {\n yield put(actions.replaceSupervisor.request(dataCollectorIds));\n try {\n const projectId = yield select((state) => state.dataCollectors.projectId);\n const filters = yield select((state) => state.dataCollectors.filters);\n yield call(http.post, \"/api/dataCollector/replaceSupervisor\", {\n dataCollectorIds,\n supervisorId,\n supervisorRole,\n });\n yield call(getDataCollectors, { projectId, filters });\n yield put(actions.replaceSupervisor.success(dataCollectorIds));\n yield put(\n appActions.showMessage(\n stringKeys.dataCollectors.list.supervisorReplacedSuccessfully,\n ),\n );\n } catch (error) {\n yield put(actions.replaceSupervisor.failure(dataCollectorIds, error));\n }\n}\n\nfunction* setDeployedState({ dataCollectorIds, deployed }) {\n yield put(actions.setDeployedState.request(dataCollectorIds));\n try {\n const projectId = yield select((state) => state.dataCollectors.projectId);\n const filters = yield select((state) => state.dataCollectors.filters);\n const response = yield call(\n http.post,\n \"/api/dataCollector/setDeployedState\",\n { dataCollectorIds, deployed },\n );\n yield call(getDataCollectors, { projectId, filters });\n yield put(actions.setDeployedState.success(dataCollectorIds));\n yield put(appActions.showMessage(response.message.key));\n } catch (error) {\n yield put(actions.setDeployedState.failure(dataCollectorIds, error));\n }\n}\n\nfunction* exportDataCollectorPerformance({ projectId, filters }) {\n yield put(actions.exportDataCollectorPerformance.request());\n try {\n const date = new Date(Date.now());\n yield downloadFile({\n url: `/api/dataCollector/exportPerformance?projectId=${projectId}`,\n fileName: `dataCollectorPerformance_${formatDate(date)}.xlsx`,\n data: filters,\n });\n\n yield put(actions.exportDataCollectorPerformance.success());\n } catch (error) {\n yield put(actions.exportDataCollectorPerformance.failure(error.message));\n }\n}\n","import { OPEN_AGREEMENT_PAGE, ACCEPT_AGREEMENT } from \"./agreementsConstants\";\n\nexport const openAgreementPage = {\n invoke: () => ({ type: OPEN_AGREEMENT_PAGE.INVOKE }),\n request: () => ({ type: OPEN_AGREEMENT_PAGE.REQUEST }),\n success: (pendingAgreementDocuments) => ({\n type: OPEN_AGREEMENT_PAGE.SUCCESS,\n pendingAgreementDocuments,\n }),\n failure: (message) => ({ type: OPEN_AGREEMENT_PAGE.FAILURE, message }),\n};\n\nexport const acceptAgreement = {\n invoke: (selectedLanguage) => ({\n type: ACCEPT_AGREEMENT.INVOKE,\n selectedLanguage,\n }),\n request: () => ({ type: ACCEPT_AGREEMENT.REQUEST }),\n success: () => ({ type: ACCEPT_AGREEMENT.SUCCESS }),\n failure: (message) => ({\n type: ACCEPT_AGREEMENT.FAILURE,\n message,\n suppressPopup: true,\n }),\n};\n","import { call, put, takeEvery } from \"redux-saga/effects\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as consts from \"./agreementsConstants\";\nimport * as actions from \"./agreementsActions\";\nimport * as http from \"../../../utils/http\";\nimport * as auth from \"../../../authentication/auth\";\n\nexport const agreementsSagas = () => [\n takeEvery(consts.OPEN_AGREEMENT_PAGE.INVOKE, getPendingAgreementDocuments),\n takeEvery(consts.ACCEPT_AGREEMENT.INVOKE, acceptAgreement),\n];\n\nfunction* getPendingAgreementDocuments() {\n yield put(actions.openAgreementPage.request());\n try {\n const response = yield call(\n http.get,\n \"/api/agreement/pendingAgreementDocuments\",\n );\n\n yield put(actions.openAgreementPage.success(response.value));\n } catch (error) {\n yield put(actions.openAgreementPage.failure(error.message));\n }\n}\n\nfunction* acceptAgreement({ selectedLanguage }) {\n yield put(actions.acceptAgreement.request());\n try {\n yield call(\n http.post,\n `/api/agreement/accept?languageCode=${selectedLanguage}`,\n );\n yield put(actions.acceptAgreement.success());\n auth.redirectToRoot();\n } catch (error) {\n yield put(appActions.showMessage(error.message));\n yield put(actions.acceptAgreement.failure(error.message));\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_CORRECT_REPORTS_LIST,\n OPEN_REPORT_EDITION,\n EDIT_REPORT,\n EXPORT_TO_EXCEL,\n EXPORT_TO_CSV,\n OPEN_SEND_REPORT,\n ACCEPT_REPORT,\n DISMISS_REPORT,\n OPEN_INCORRECT_REPORTS_LIST,\n GET_INCORRECT_REPORTS,\n GET_CORRECT_REPORTS,\n TRACK_REPORT_EXPORT,\n MARK_AS_CORRECTED,\n MARK_AS_NOT_CORRECTED,\n} from \"./reportsConstants\";\n\nexport const goToList = (projectId) => push(`/projects/${projectId}/reports`);\nexport const goToEditing = (projectId, reportId) =>\n push(`/projects/${projectId}/reports/${reportId}/edit`);\nexport const goToAlert = (projectId, alertId) =>\n push(`/projects/${projectId}/alerts/${alertId}/assess`);\n\nexport const openCorrectReportsList = {\n invoke: (projectId) => ({\n type: OPEN_CORRECT_REPORTS_LIST.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_CORRECT_REPORTS_LIST.REQUEST }),\n success: (projectId, filtersData) => ({\n type: OPEN_CORRECT_REPORTS_LIST.SUCCESS,\n projectId,\n filtersData,\n }),\n failure: (message) => ({ type: OPEN_CORRECT_REPORTS_LIST.FAILURE, message }),\n};\n\nexport const openIncorrectReportsList = {\n invoke: (projectId) => ({\n type: OPEN_INCORRECT_REPORTS_LIST.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_INCORRECT_REPORTS_LIST.REQUEST }),\n success: (projectId, filtersData) => ({\n type: OPEN_INCORRECT_REPORTS_LIST.SUCCESS,\n projectId,\n filtersData,\n }),\n failure: (message) => ({\n type: OPEN_INCORRECT_REPORTS_LIST.FAILURE,\n message,\n }),\n};\n\nexport const getCorrectList = {\n invoke: (projectId, pageNumber, filters, sorting) => ({\n type: GET_CORRECT_REPORTS.INVOKE,\n projectId,\n pageNumber,\n filters,\n sorting,\n }),\n request: () => ({ type: GET_CORRECT_REPORTS.REQUEST }),\n success: (data, page, rowsPerPage, totalRows, filters, sorting) => ({\n type: GET_CORRECT_REPORTS.SUCCESS,\n data,\n page,\n rowsPerPage,\n totalRows,\n filters,\n sorting,\n }),\n failure: (message) => ({ type: GET_CORRECT_REPORTS.FAILURE, message }),\n};\n\nexport const getIncorrectList = {\n invoke: (projectId, pageNumber, filters, sorting) => ({\n type: GET_INCORRECT_REPORTS.INVOKE,\n projectId,\n pageNumber,\n filters,\n sorting,\n }),\n request: () => ({ type: GET_INCORRECT_REPORTS.REQUEST }),\n success: (data, page, rowsPerPage, totalRows, filters, sorting) => ({\n type: GET_INCORRECT_REPORTS.SUCCESS,\n data,\n page,\n rowsPerPage,\n totalRows,\n filters,\n sorting,\n }),\n failure: (message) => ({ type: GET_INCORRECT_REPORTS.FAILURE, message }),\n};\n\nexport const openEdition = {\n invoke: (projectId, reportId) => ({\n type: OPEN_REPORT_EDITION.INVOKE,\n projectId,\n reportId,\n }),\n request: () => ({ type: OPEN_REPORT_EDITION.REQUEST }),\n success: (data, healthRisks, dataCollectors) => ({\n type: OPEN_REPORT_EDITION.SUCCESS,\n data,\n healthRisks,\n dataCollectors,\n }),\n failure: (message) => ({ type: OPEN_REPORT_EDITION.FAILURE, message }),\n};\n\nexport const edit = {\n invoke: (projectId, reportId, data) => ({\n type: EDIT_REPORT.INVOKE,\n projectId,\n reportId,\n data,\n }),\n request: () => ({ type: EDIT_REPORT.REQUEST }),\n success: () => ({ type: EDIT_REPORT.SUCCESS }),\n failure: (message) => ({\n type: EDIT_REPORT.FAILURE,\n message,\n suppressPopup: true,\n }),\n};\n\nexport const exportToExcel = {\n invoke: (projectId, filters, sorting) => ({\n type: EXPORT_TO_EXCEL.INVOKE,\n projectId,\n filters,\n sorting,\n }),\n request: () => ({ type: EXPORT_TO_EXCEL.REQUEST }),\n success: () => ({ type: EXPORT_TO_EXCEL.SUCCESS }),\n failure: (message) => ({ type: EXPORT_TO_EXCEL.FAILURE, message }),\n};\n\nexport const exportToCsv = {\n invoke: (projectId, filters, sorting) => ({\n type: EXPORT_TO_CSV.INVOKE,\n projectId,\n filters,\n sorting,\n }),\n request: () => ({ type: EXPORT_TO_CSV.REQUEST }),\n success: () => ({ type: EXPORT_TO_CSV.SUCCESS }),\n failure: (message) => ({ type: EXPORT_TO_CSV.FAILURE, message }),\n};\n\nexport const openSendReport = {\n invoke: (projectId) => ({ type: OPEN_SEND_REPORT.INVOKE, projectId }),\n request: () => ({ type: OPEN_SEND_REPORT.REQUEST }),\n success: (dataCollectors, formData) => ({\n type: OPEN_SEND_REPORT.SUCCESS,\n dataCollectors,\n formData,\n }),\n failure: (message) => ({ type: OPEN_SEND_REPORT.FAILURE, message }),\n};\n\nexport const acceptReport = {\n invoke: (reportId) => ({ type: ACCEPT_REPORT.INVOKE, reportId }),\n request: () => ({ type: ACCEPT_REPORT.REQUEST }),\n success: () => ({ type: ACCEPT_REPORT.SUCCESS }),\n failure: (message) => ({ type: ACCEPT_REPORT.FAILURE, message }),\n};\n\nexport const dismissReport = {\n invoke: (reportId) => ({ type: DISMISS_REPORT.INVOKE, reportId }),\n request: () => ({ type: DISMISS_REPORT.REQUEST }),\n success: () => ({ type: DISMISS_REPORT.SUCCESS }),\n failure: (message) => ({ type: DISMISS_REPORT.FAILURE, message }),\n};\n\nexport const markAsCorrected = {\n invoke: (reportId) => ({ type: MARK_AS_CORRECTED.INVOKE, reportId }),\n request: () => ({ type: MARK_AS_CORRECTED.REQUEST }),\n success: (reportId) => ({ type: MARK_AS_CORRECTED.SUCCESS, reportId }),\n failure: (message) => ({ type: MARK_AS_CORRECTED.FAILURE, message }),\n};\n\nexport const markAsNotCorrected = {\n invoke: (reportId) => ({ type: MARK_AS_NOT_CORRECTED.INVOKE, reportId }),\n request: () => ({ type: MARK_AS_NOT_CORRECTED.REQUEST }),\n success: (reportId) => ({ type: MARK_AS_NOT_CORRECTED.SUCCESS, reportId }),\n failure: (message) => ({ type: MARK_AS_NOT_CORRECTED.FAILURE, message }),\n};\n\nexport const trackReportExport = (page, fileType, projectId) => ({\n type: TRACK_REPORT_EXPORT.INVOKE,\n page,\n fileType,\n projectId,\n});\n","export const DataCollectorType = {\n unknownSender: \"unknownSender\",\n human: \"human\",\n collectionPoint: \"collectionPoint\",\n};\n\nexport const ReportErrorFilterType = {\n all: \"All\",\n healthRiskNotFound: \"HealthRiskNotFound\",\n wrongFormat: \"WrongFormat\",\n other: \"Other\",\n};\n\nexport const reportErrorFilterTypes = [\n ReportErrorFilterType.all,\n ReportErrorFilterType.healthRiskNotFound,\n ReportErrorFilterType.wrongFormat,\n ReportErrorFilterType.other,\n];\n\nexport const correctedStateTypes = [\"All\", \"Corrected\", \"NotCorrected\"];\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./reportsConstants\";\nimport * as actions from \"./reportsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { downloadFile } from \"../../../utils/downloadFile\";\nimport { stringKeys } from \"../../../strings\";\nimport {\n ReportErrorFilterType,\n DataCollectorType,\n} from \"../../common/filters/logic/reportFilterConstsants\";\nimport { DateColumnName } from \"./reportsConstants\";\nimport { formatDate, getUtcOffset } from \"../../../utils/date\";\nimport { trackTrace } from \"../../../utils/tracking\";\n\nexport const reportsSagas = () => [\n takeEvery(consts.OPEN_CORRECT_REPORTS_LIST.INVOKE, openCorrectReportsList),\n takeEvery(\n consts.OPEN_INCORRECT_REPORTS_LIST.INVOKE,\n openIncorrectReportsList,\n ),\n takeEvery(consts.GET_CORRECT_REPORTS.INVOKE, getCorrectReports),\n takeEvery(consts.GET_INCORRECT_REPORTS.INVOKE, getIncorrectReports),\n takeEvery(consts.OPEN_REPORT_EDITION.INVOKE, openReportEdition),\n takeEvery(consts.EDIT_REPORT.INVOKE, editReport),\n takeEvery(consts.EXPORT_TO_EXCEL.INVOKE, getExcelExportData),\n takeEvery(consts.EXPORT_TO_CSV.INVOKE, getCsvExportData),\n takeEvery(consts.OPEN_SEND_REPORT.INVOKE, openSendReport),\n takeEvery(consts.ACCEPT_REPORT.INVOKE, acceptReport),\n takeEvery(consts.DISMISS_REPORT.INVOKE, dismissReport),\n takeEvery(consts.TRACK_REPORT_EXPORT.INVOKE, trackReportExport),\n takeEvery(consts.MARK_AS_CORRECTED.INVOKE, markAsCorrected),\n takeEvery(consts.MARK_AS_NOT_CORRECTED.INVOKE, markAsNotCorrected),\n];\n\nfunction* openCorrectReportsList({ projectId }) {\n const listStale = yield select(\n (state) => state.reports.correctReportsListStale,\n );\n\n yield put(actions.openCorrectReportsList.request());\n try {\n yield openReportsModule(projectId);\n\n const filtersData = yield call(\n http.get,\n `/api/report/filters?projectId=${projectId}`,\n );\n\n if (listStale) {\n yield call(getCorrectReports, { projectId });\n }\n\n yield put(\n actions.openCorrectReportsList.success(projectId, filtersData.value),\n );\n } catch (error) {\n yield put(actions.openCorrectReportsList.failure(error.message));\n }\n}\n\nfunction* openIncorrectReportsList({ projectId }) {\n const listStale = yield select(\n (state) => state.reports.incorrectReportsListStale,\n );\n\n yield put(actions.openIncorrectReportsList.request());\n try {\n yield openReportsModule(projectId);\n\n const filtersData = yield call(\n http.get,\n `/api/report/filters?projectId=${projectId}`,\n );\n\n if (listStale) {\n yield call(getIncorrectReports, { projectId });\n }\n\n yield put(\n actions.openIncorrectReportsList.success(projectId, filtersData.value),\n );\n } catch (error) {\n yield put(actions.openIncorrectReportsList.failure(error.message));\n }\n}\n\nfunction* getCorrectReports({ projectId, pageNumber, filters, sorting }) {\n const requestFilters = filters ||\n (yield select((state) => state.reports.correctReportsFilters)) || {\n dataCollectorType: DataCollectorType.human,\n errorType: null,\n healthRisks: [],\n locations: null,\n formatCorrect: true,\n isTraining: false,\n reportStatus: {\n kept: true,\n dismissed: true,\n notCrossChecked: true,\n },\n reportType: null,\n utcOffset: getUtcOffset(),\n trainingStatus: \"Trained\",\n };\n\n const requestSorting = sorting ||\n (yield select((state) => state.reports.correctReportsSorting)) || {\n orderBy: DateColumnName,\n sortAscending: false,\n };\n\n const page =\n pageNumber ||\n (yield select(\n (state) =>\n state.reports.correctReportsPaginatedListData &&\n state.reports.correctReportsPaginatedListData.page,\n )) ||\n 1;\n\n yield put(actions.getCorrectList.request());\n try {\n const response = yield call(\n http.post,\n `/api/report/list?projectId=${projectId}&pageNumber=${page}`,\n { ...requestFilters, ...requestSorting },\n );\n yield put(\n actions.getCorrectList.success(\n response.value.data,\n response.value.page,\n response.value.rowsPerPage,\n response.value.totalRows,\n requestFilters,\n requestSorting,\n ),\n );\n } catch (error) {\n yield put(actions.getCorrectList.failure(error.message));\n }\n}\n\nfunction* getIncorrectReports({ projectId, pageNumber, filters, sorting }) {\n const requestFilters = filters ||\n (yield select((state) => state.reports.incorrectReportsFilters)) || {\n dataCollectorType: DataCollectorType.human,\n errorType: ReportErrorFilterType.all,\n area: null,\n formatCorrect: false,\n isTraining: false,\n reportStatus: null,\n correctedState: \"All\",\n reportType: {\n real: true,\n corrected: false,\n },\n utcOffset: getUtcOffset(),\n trainingStatus: \"Trained\",\n };\n const requestSorting = sorting ||\n (yield select((state) => state.reports.incorrectReportsSorting)) || {\n orderBy: DateColumnName,\n sortAscending: false,\n };\n\n const page =\n pageNumber ||\n (yield select(\n (state) =>\n state.reports.incorrectReportsPaginatedListData &&\n state.reports.incorrectReportsPaginatedListData.page,\n )) ||\n 1;\n\n yield put(actions.getIncorrectList.request());\n try {\n const response = yield call(\n http.post,\n `/api/report/list?projectId=${projectId}&pageNumber=${page}`,\n { ...requestFilters, ...requestSorting },\n );\n yield put(\n actions.getIncorrectList.success(\n response.value.data,\n response.value.page,\n response.value.rowsPerPage,\n response.value.totalRows,\n requestFilters,\n requestSorting,\n ),\n );\n } catch (error) {\n yield put(actions.getIncorrectList.failure(error.message));\n }\n}\n\nfunction* openReportEdition({ projectId, reportId }) {\n yield put(actions.openEdition.request());\n try {\n const humanHealthRisksforProject = yield call(\n http.get,\n `/api/report/humanHealthRisksForProject/${projectId}/get`,\n );\n const response = yield call(http.get, `/api/report/${reportId}/get`);\n const filters = {\n area: null,\n sex: null,\n supervisorId: null,\n trainingStatus: null,\n name: null,\n dataCollectorType: response.value.dataCollectorType,\n };\n const dataCollectors = yield call(\n http.post,\n `/api/dataCollector/listAll?projectId=${projectId}`,\n filters,\n );\n yield openReportsModule(projectId);\n yield put(\n actions.openEdition.success(\n response.value,\n humanHealthRisksforProject.value.healthRisks,\n dataCollectors.value,\n ),\n );\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* editReport({ projectId, reportId, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/report/${reportId}/edit?projectId=${projectId}`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList(projectId));\n yield put(\n appActions.showMessage(stringKeys.reports.list.editedSuccesfully),\n );\n } catch (error) {\n yield put(actions.edit.failure(error.message));\n yield put(appActions.showMessage(error.message));\n }\n}\n\nfunction* getCsvExportData({ projectId, filters, sorting }) {\n yield put(actions.exportToExcel.request());\n try {\n const date = new Date(Date.now());\n yield downloadFile({\n url: `/api/report/exportToCsv?projectId=${projectId}`,\n fileName: `reports_${formatDate(date)}.csv`,\n data: { ...filters, ...sorting },\n });\n\n yield put(actions.exportToExcel.success());\n } catch (error) {\n yield put(actions.exportToExcel.failure(error.message));\n }\n}\n\nfunction* getExcelExportData({ projectId, filters, sorting }) {\n yield put(actions.exportToExcel.request());\n try {\n const date = new Date(Date.now());\n yield downloadFile({\n url: `/api/report/exportToExcel?projectId=${projectId}`,\n fileName: `reports_${formatDate(date)}.xlsx`,\n data: { ...filters, ...sorting },\n });\n\n yield put(actions.exportToExcel.success());\n } catch (error) {\n yield put(actions.exportToExcel.failure(error.message));\n }\n}\n\nfunction* openReportsModule(projectId) {\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n projectIsClosed: project.value.isClosed,\n }),\n );\n}\n\nfunction* openSendReport({ projectId }) {\n yield put(actions.openSendReport.request());\n try {\n const filters = {\n area: null,\n sex: null,\n supervisorId: null,\n trainingStatus: null,\n name: null,\n };\n const nationalSocietyId = yield select(\n (state) => state.appData.siteMap.parameters.nationalSocietyId,\n );\n const dataCollectors = yield call(\n http.post,\n `/api/dataCollector/listAll?projectId=${projectId}`,\n filters,\n );\n const formData = yield call(\n http.get,\n `/api/report/formData?nationalSocietyId=${nationalSocietyId}`,\n );\n yield put(\n actions.openSendReport.success(dataCollectors.value, formData.value),\n );\n } catch (error) {\n yield put(actions.openSendReport.failure(error.message));\n }\n}\n\nfunction* acceptReport({ reportId }) {\n yield put(actions.acceptReport.request());\n try {\n const projectId = yield select((state) => state.reports.listProjectId);\n yield call(http.post, `/api/report/${reportId}/accept`);\n yield put(actions.acceptReport.success());\n yield put(\n appActions.showMessage(stringKeys.reports.list.acceptReportSuccess),\n );\n yield getCorrectReports({ projectId });\n } catch (error) {\n yield put(actions.acceptReport.failure());\n yield put(appActions.showMessage(error.message));\n }\n}\n\nfunction* dismissReport({ reportId }) {\n yield put(actions.dismissReport.request());\n try {\n const projectId = yield select((state) => state.reports.listProjectId);\n yield call(http.post, `/api/report/${reportId}/dismiss`);\n yield put(actions.dismissReport.success());\n yield put(\n appActions.showMessage(stringKeys.reports.list.dismissReportSuccess),\n );\n yield getCorrectReports({ projectId });\n } catch (error) {\n yield put(actions.dismissReport.failure());\n yield put(appActions.showMessage(error.message));\n }\n}\n\nfunction* markAsCorrected({ reportId }) {\n yield put(actions.markAsCorrected.request());\n\n try {\n yield call(http.post, `/api/report/${reportId}/markAsCorrected`);\n yield put(actions.markAsCorrected.success(reportId));\n } catch (error) {\n yield put(actions.markAsCorrected.failure());\n yield put(appActions.showMessage(error.message));\n }\n}\n\nfunction* markAsNotCorrected({ reportId }) {\n yield put(actions.markAsNotCorrected.request());\n\n try {\n yield call(http.deleteHttp, `/api/report/${reportId}/markAsCorrected`);\n yield put(actions.markAsNotCorrected.success(reportId));\n } catch (error) {\n yield put(actions.markAsNotCorrected.failure());\n yield put(appActions.showMessage(error.message));\n }\n}\n\nfunction* trackReportExport({ page, fileType, projectId }) {\n const message = \"Report export\";\n const properties = {\n page,\n type: fileType,\n projectId,\n };\n\n yield call(trackTrace, { message, properties });\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST,\n OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST,\n GET_NATIONAL_SOCIETY_CORRECT_REPORTS,\n GET_NATIONAL_SOCIETY_INCORRECT_REPORTS,\n} from \"./nationalSocietyReportsConstants\";\n\nexport const goToList = (nationalSocietyId) =>\n push(`/nationalsociety/${nationalSocietyId}/reports`);\n\nexport const openCorrectList = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST.REQUEST }),\n success: (nationalSocietyId, filtersData) => ({\n type: OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST.SUCCESS,\n nationalSocietyId,\n filtersData,\n }),\n failure: (message) => ({\n type: OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST.FAILURE,\n message,\n }),\n};\n\nexport const openIncorrectList = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({\n type: OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST.REQUEST,\n }),\n success: (nationalSocietyId) => ({\n type: OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST.SUCCESS,\n nationalSocietyId,\n }),\n failure: (message) => ({\n type: OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST.FAILURE,\n message,\n }),\n};\n\nexport const getCorrectList = {\n invoke: (nationalSocietyId, pageNumber, filters, sorting) => ({\n type: GET_NATIONAL_SOCIETY_CORRECT_REPORTS.INVOKE,\n nationalSocietyId,\n pageNumber,\n filters,\n sorting,\n }),\n request: () => ({ type: GET_NATIONAL_SOCIETY_CORRECT_REPORTS.REQUEST }),\n success: (data, page, rowsPerPage, totalRows, filters, sorting) => ({\n type: GET_NATIONAL_SOCIETY_CORRECT_REPORTS.SUCCESS,\n data,\n page,\n rowsPerPage,\n totalRows,\n filters,\n sorting,\n }),\n failure: (message) => ({\n type: GET_NATIONAL_SOCIETY_CORRECT_REPORTS.FAILURE,\n message,\n }),\n};\n\nexport const getIncorrectList = {\n invoke: (nationalSocietyId, pageNumber, filters, sorting) => ({\n type: GET_NATIONAL_SOCIETY_INCORRECT_REPORTS.INVOKE,\n nationalSocietyId,\n pageNumber,\n filters,\n sorting,\n }),\n request: () => ({ type: GET_NATIONAL_SOCIETY_INCORRECT_REPORTS.REQUEST }),\n success: (data, page, rowsPerPage, totalRows, filters, sorting) => ({\n type: GET_NATIONAL_SOCIETY_INCORRECT_REPORTS.SUCCESS,\n data,\n page,\n rowsPerPage,\n totalRows,\n filters,\n sorting,\n }),\n failure: (message) => ({\n type: GET_NATIONAL_SOCIETY_INCORRECT_REPORTS.FAILURE,\n message,\n }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./nationalSocietyReportsConstants\";\nimport * as actions from \"./nationalSocietyReportsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport {\n DataCollectorType,\n ReportErrorFilterType,\n} from \"../../common/filters/logic/reportFilterConstsants\";\nimport { DateColumnName } from \"./nationalSocietyReportsConstants\";\nimport { getUtcOffset } from \"../../../utils/date\";\n\nexport const nationalSocietyReportsSagas = () => [\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_CORRECT_REPORTS_LIST.INVOKE,\n openNationalSocietyCorrectReportsList,\n ),\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_INCORRECT_REPORTS_LIST.INVOKE,\n openNationalSocietyIncorrectReportsList,\n ),\n takeEvery(\n consts.GET_NATIONAL_SOCIETY_CORRECT_REPORTS.INVOKE,\n getNationalSocietyCorrectReports,\n ),\n takeEvery(\n consts.GET_NATIONAL_SOCIETY_INCORRECT_REPORTS.INVOKE,\n getNationalSocietyIncorrectReports,\n ),\n];\n\nfunction* openNationalSocietyCorrectReportsList({ nationalSocietyId }) {\n const listStale = yield select(\n (state) => state.nationalSocietyReports.correctReportsListStale,\n );\n\n yield put(actions.openCorrectList.request());\n try {\n yield openNationalSocietyReportsModule(nationalSocietyId);\n\n const filtersData = yield call(\n http.get,\n `/api/nationalSocietyReport/filters?nationalSocietyId=${nationalSocietyId}`,\n );\n const filters = {\n dataCollectorType: DataCollectorType.human,\n healthRisks: [],\n locations: null,\n formatCorrect: true,\n reportStatus: {\n kept: true,\n dismissed: true,\n notCrossChecked: true,\n },\n utcOffset: getUtcOffset(),\n };\n const sorting = (yield select(\n (state) => state.nationalSocietyReports.correctReportsSorting,\n )) || {\n orderBy: DateColumnName,\n sortAscending: false,\n };\n\n if (listStale) {\n yield call(getNationalSocietyCorrectReports, {\n nationalSocietyId,\n filters,\n sorting,\n });\n }\n\n yield put(\n actions.openCorrectList.success(nationalSocietyId, filtersData.value),\n );\n } catch (error) {\n yield put(actions.openCorrectList.failure(error.message));\n }\n}\n\nfunction* openNationalSocietyIncorrectReportsList({ nationalSocietyId }) {\n const listStale = yield select(\n (state) => state.nationalSocietyReports.incorrectReportsListStale,\n );\n\n yield put(actions.openIncorrectList.request());\n try {\n yield openNationalSocietyReportsModule(nationalSocietyId);\n\n const filters = (yield select(\n (state) => state.nationalSocietyReports.incorrectReportsFilters,\n )) || {\n dataCollectorType: DataCollectorType.human,\n errorType: ReportErrorFilterType.all,\n area: null,\n formatCorrect: false,\n utcOffset: getUtcOffset(),\n };\n const sorting = (yield select(\n (state) => state.nationalSocietyReports.incorrectReportsSorting,\n )) || {\n orderBy: DateColumnName,\n sortAscending: false,\n };\n\n if (listStale) {\n yield call(getNationalSocietyIncorrectReports, {\n nationalSocietyId,\n filters,\n sorting,\n });\n }\n\n yield put(actions.openIncorrectList.success(nationalSocietyId));\n } catch (error) {\n yield put(actions.openIncorrectList.failure(error.message));\n }\n}\n\nfunction* getNationalSocietyCorrectReports({\n nationalSocietyId,\n pageNumber,\n filters,\n sorting,\n}) {\n yield put(actions.getCorrectList.request());\n try {\n const response = yield call(\n http.post,\n `/api/nationalSocietyReport/list?nationalSocietyId=${nationalSocietyId}&pageNumber=${\n pageNumber || 1\n }`,\n { ...filters, ...sorting },\n );\n yield put(\n actions.getCorrectList.success(\n response.value.data,\n response.value.page,\n response.value.rowsPerPage,\n response.value.totalRows,\n filters,\n sorting,\n ),\n );\n } catch (error) {\n yield put(actions.getCorrectList.failure(error.message));\n }\n}\n\nfunction* getNationalSocietyIncorrectReports({\n nationalSocietyId,\n pageNumber,\n filters,\n sorting,\n}) {\n yield put(actions.getIncorrectList.request());\n try {\n const response = yield call(\n http.post,\n `/api/nationalSocietyReport/list?nationalSocietyId=${nationalSocietyId}&pageNumber=${\n pageNumber || 1\n }`,\n { ...filters, ...sorting },\n );\n yield put(\n actions.getIncorrectList.success(\n response.value.data,\n response.value.page,\n response.value.rowsPerPage,\n response.value.totalRows,\n filters,\n sorting,\n ),\n );\n } catch (error) {\n yield put(actions.getIncorrectList.failure(error.message));\n }\n}\n\nfunction* openNationalSocietyReportsModule(nationalSocietyId) {\n const nationalSociety = yield call(http.getCached, {\n path: `/api/nationalSociety/${nationalSocietyId}/get`,\n dependencies: [entityTypes.nationalSociety(nationalSocietyId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n }),\n );\n}\n","import {\n OPEN_NATIONAL_SOCIETY_STRUCTURE,\n CREATE_REGION,\n EDIT_REGION,\n REMOVE_REGION,\n CREATE_DISTRICT,\n EDIT_DISTRICT,\n REMOVE_DISTRICT,\n CREATE_VILLAGE,\n EDIT_VILLAGE,\n REMOVE_VILLAGE,\n CREATE_ZONE,\n EDIT_ZONE,\n REMOVE_ZONE,\n} from \"./nationalSocietyStructureConstants\";\n\nexport const openStructure = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_NATIONAL_SOCIETY_STRUCTURE.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_NATIONAL_SOCIETY_STRUCTURE.REQUEST }),\n success: (regions, districts, villages, zones) => ({\n type: OPEN_NATIONAL_SOCIETY_STRUCTURE.SUCCESS,\n regions,\n districts,\n villages,\n zones,\n }),\n failure: (message) => ({\n type: OPEN_NATIONAL_SOCIETY_STRUCTURE.FAILURE,\n message,\n }),\n};\n\nexport const createRegion = {\n invoke: (nationalSocietyId, name) => ({\n type: CREATE_REGION.INVOKE,\n nationalSocietyId,\n name,\n }),\n request: () => ({ type: CREATE_REGION.REQUEST }),\n success: (data) => ({ type: CREATE_REGION.SUCCESS, region: data }),\n failure: (message) => ({ type: CREATE_REGION.FAILURE, message }),\n};\n\nexport const editRegion = {\n invoke: (id, name) => ({ type: EDIT_REGION.INVOKE, id, name }),\n request: (id) => ({ type: EDIT_REGION.REQUEST, id }),\n success: (id, name) => ({ type: EDIT_REGION.SUCCESS, id, name }),\n failure: (message) => ({ type: EDIT_REGION.FAILURE, message }),\n};\n\nexport const removeRegion = {\n invoke: (id) => ({ type: REMOVE_REGION.INVOKE, id }),\n request: (id) => ({ type: REMOVE_REGION.REQUEST, id }),\n success: (id) => ({ type: REMOVE_REGION.SUCCESS, id }),\n failure: (id, message) => ({ type: REMOVE_REGION.FAILURE, id, message }),\n};\n\nexport const createDistrict = {\n invoke: (regionId, name) => ({\n type: CREATE_DISTRICT.INVOKE,\n regionId,\n name,\n }),\n request: () => ({ type: CREATE_DISTRICT.REQUEST }),\n success: (regionId, data) => ({\n type: CREATE_DISTRICT.SUCCESS,\n regionId,\n district: data,\n }),\n failure: (message) => ({ type: CREATE_DISTRICT.FAILURE, message }),\n};\n\nexport const editDistrict = {\n invoke: (id, name) => ({ type: EDIT_DISTRICT.INVOKE, id, name }),\n request: (id) => ({ type: EDIT_DISTRICT.REQUEST, id }),\n success: (id, name) => ({ type: EDIT_DISTRICT.SUCCESS, id, name }),\n failure: (message) => ({ type: EDIT_DISTRICT.FAILURE, message }),\n};\n\nexport const removeDistrict = {\n invoke: (id) => ({ type: REMOVE_DISTRICT.INVOKE, id }),\n request: (id) => ({ type: REMOVE_DISTRICT.REQUEST, id }),\n success: (id) => ({ type: REMOVE_DISTRICT.SUCCESS, id }),\n failure: (id, message) => ({ type: REMOVE_DISTRICT.FAILURE, id, message }),\n};\n\nexport const createVillage = {\n invoke: (districtId, name) => ({\n type: CREATE_VILLAGE.INVOKE,\n districtId,\n name,\n }),\n request: () => ({ type: CREATE_VILLAGE.REQUEST }),\n success: (data) => ({ type: CREATE_VILLAGE.SUCCESS, village: data }),\n failure: (message) => ({ type: CREATE_VILLAGE.FAILURE, message }),\n};\n\nexport const editVillage = {\n invoke: (id, name) => ({ type: EDIT_VILLAGE.INVOKE, id, name }),\n request: (id) => ({ type: EDIT_VILLAGE.REQUEST, id }),\n success: (id, name) => ({ type: EDIT_VILLAGE.SUCCESS, id, name }),\n failure: (message) => ({ type: EDIT_VILLAGE.FAILURE, message }),\n};\n\nexport const removeVillage = {\n invoke: (id) => ({ type: REMOVE_VILLAGE.INVOKE, id }),\n request: (id) => ({ type: REMOVE_VILLAGE.REQUEST, id }),\n success: (id) => ({ type: REMOVE_VILLAGE.SUCCESS, id }),\n failure: (id, message) => ({ type: REMOVE_VILLAGE.FAILURE, id, message }),\n};\n\nexport const createZone = {\n invoke: (villageId, name) => ({ type: CREATE_ZONE.INVOKE, villageId, name }),\n request: () => ({ type: CREATE_ZONE.REQUEST }),\n success: (data) => ({ type: CREATE_ZONE.SUCCESS, zone: data }),\n failure: (message) => ({ type: CREATE_ZONE.FAILURE, message }),\n};\n\nexport const editZone = {\n invoke: (id, name) => ({ type: EDIT_ZONE.INVOKE, id, name }),\n request: (id) => ({ type: EDIT_ZONE.REQUEST, id }),\n success: (id, name) => ({ type: EDIT_ZONE.SUCCESS, id, name }),\n failure: (message) => ({ type: EDIT_ZONE.FAILURE, message }),\n};\n\nexport const removeZone = {\n invoke: (id) => ({ type: REMOVE_ZONE.INVOKE, id }),\n request: (id) => ({ type: REMOVE_ZONE.REQUEST, id }),\n success: (id) => ({ type: REMOVE_ZONE.SUCCESS, id }),\n failure: (id, message) => ({ type: REMOVE_ZONE.FAILURE, id, message }),\n};\n","import { call, put, takeEvery } from \"redux-saga/effects\";\nimport * as consts from \"./nationalSocietyStructureConstants\";\nimport * as actions from \"./nationalSocietyStructureActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\n\nexport const nationalSocietyStructureSagas = () => [\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_STRUCTURE.INVOKE,\n openNationalSocietyStructure,\n ),\n\n takeEvery(consts.CREATE_REGION.INVOKE, createRegion),\n takeEvery(consts.EDIT_REGION.INVOKE, editRegion),\n takeEvery(consts.REMOVE_REGION.INVOKE, removeRegion),\n\n takeEvery(consts.CREATE_DISTRICT.INVOKE, createDistrict),\n takeEvery(consts.EDIT_DISTRICT.INVOKE, editDistrict),\n takeEvery(consts.REMOVE_DISTRICT.INVOKE, removeDistrict),\n\n takeEvery(consts.CREATE_VILLAGE.INVOKE, createVillage),\n takeEvery(consts.EDIT_VILLAGE.INVOKE, editVillage),\n takeEvery(consts.REMOVE_VILLAGE.INVOKE, removeVillage),\n\n takeEvery(consts.CREATE_ZONE.INVOKE, createZone),\n takeEvery(consts.EDIT_ZONE.INVOKE, editZone),\n takeEvery(consts.REMOVE_ZONE.INVOKE, removeZone),\n];\n\nfunction* openNationalSocietyStructure({ nationalSocietyId }) {\n yield put(actions.openStructure.request());\n try {\n yield call(openNationalSocietyModule, nationalSocietyId);\n const response = yield call(\n http.get,\n `/api/nationalSocietyStructure/get?nationalSocietyId=${nationalSocietyId}`,\n );\n\n let regions = [];\n let districts = [];\n let villages = [];\n let zones = [];\n\n for (let region of response.value.regions) {\n regions.push({ id: region.id, name: region.name });\n for (let district of region.districts) {\n districts.push({\n id: district.id,\n name: district.name,\n regionId: region.id,\n });\n for (let village of district.villages) {\n villages.push({\n id: village.id,\n name: village.name,\n districtId: district.id,\n });\n for (let zone of village.zones) {\n zones.push({ id: zone.id, name: zone.name, villageId: village.id });\n }\n }\n }\n }\n\n yield put(\n actions.openStructure.success(regions, districts, villages, zones),\n );\n } catch (error) {\n yield put(actions.openStructure.failure(error.message));\n }\n}\n\nfunction* createRegion({ nationalSocietyId, name }) {\n yield put(actions.createRegion.request());\n try {\n const response = yield call(\n http.post,\n `/api/nationalSocietyStructure/region/create?nationalSocietyId=${nationalSocietyId}`,\n { name },\n );\n yield put(actions.createRegion.success(response.value));\n } catch (error) {\n yield put(actions.createRegion.failure(error.message));\n }\n}\n\nfunction* editRegion({ id, name }) {\n yield put(actions.editRegion.request());\n try {\n yield call(http.post, `/api/nationalSocietyStructure/region/${id}/edit`, {\n name,\n });\n yield put(actions.editRegion.success(id, name));\n } catch (error) {\n yield put(actions.editRegion.failure(error.message));\n }\n}\n\nfunction* removeRegion({ id }) {\n yield put(actions.removeRegion.request());\n try {\n yield call(http.post, `/api/nationalSocietyStructure/region/${id}/delete`);\n yield put(actions.removeRegion.success(id));\n } catch (error) {\n yield put(actions.removeRegion.failure(id, error.message));\n }\n}\n\nfunction* createDistrict({ regionId, name }) {\n yield put(actions.createDistrict.request());\n try {\n const response = yield call(\n http.post,\n `/api/nationalSocietyStructure/region/${regionId}/district/create`,\n { name },\n );\n yield put(actions.createDistrict.success(regionId, response.value));\n } catch (error) {\n yield put(actions.createDistrict.failure(error.message));\n }\n}\n\nfunction* editDistrict({ id, name }) {\n yield put(actions.editDistrict.request());\n try {\n yield call(http.post, `/api/nationalSocietyStructure/district/${id}/edit`, {\n name,\n });\n yield put(actions.editDistrict.success(id, name));\n } catch (error) {\n yield put(actions.editDistrict.failure(error.message));\n }\n}\n\nfunction* removeDistrict({ id }) {\n yield put(actions.removeDistrict.request());\n try {\n yield call(\n http.post,\n `/api/nationalSocietyStructure/district/${id}/delete`,\n );\n yield put(actions.removeDistrict.success(id));\n } catch (error) {\n yield put(actions.removeDistrict.failure(id, error.message));\n }\n}\n\nfunction* createVillage({ districtId, name }) {\n yield put(actions.createVillage.request());\n try {\n const response = yield call(\n http.post,\n `/api/nationalSocietyStructure/district/${districtId}/village/create`,\n { name },\n );\n yield put(actions.createVillage.success(response.value));\n } catch (error) {\n yield put(actions.createVillage.failure(error.message));\n }\n}\n\nfunction* editVillage({ id, name }) {\n yield put(actions.editVillage.request());\n try {\n yield call(http.post, `/api/nationalSocietyStructure/village/${id}/edit`, {\n name,\n });\n yield put(actions.editVillage.success(id, name));\n } catch (error) {\n yield put(actions.editVillage.failure(error.message));\n }\n}\n\nfunction* removeVillage({ id }) {\n yield put(actions.removeVillage.request());\n try {\n yield call(http.post, `/api/nationalSocietyStructure/village/${id}/delete`);\n yield put(actions.removeVillage.success(id));\n } catch (error) {\n yield put(actions.removeVillage.failure(id, error.message));\n }\n}\n\nfunction* createZone({ villageId, name }) {\n yield put(actions.createZone.request());\n try {\n const response = yield call(\n http.post,\n `/api/nationalSocietyStructure/zone/create?villageId=${villageId}`,\n { name },\n );\n yield put(actions.createZone.success(response.value));\n } catch (error) {\n yield put(actions.createZone.failure(error.message));\n }\n}\n\nfunction* editZone({ id, name }) {\n yield put(actions.editZone.request());\n try {\n yield call(http.post, `/api/nationalSocietyStructure/zone/${id}/edit`, {\n name,\n });\n yield put(actions.editZone.success(id, name));\n } catch (error) {\n yield put(actions.editZone.failure(error.message));\n }\n}\n\nfunction* removeZone({ id }) {\n yield put(actions.removeZone.request());\n try {\n yield call(http.post, `/api/nationalSocietyStructure/zone/${id}/delete`);\n yield put(actions.removeZone.success(id));\n } catch (error) {\n yield put(actions.removeZone.failure(id, error.message));\n }\n}\n\nfunction* openNationalSocietyModule(nationalSocietyId) {\n const nationalSociety = yield call(http.getCached, {\n path: `/api/nationalSociety/${nationalSocietyId}/get`,\n dependencies: [entityTypes.nationalSociety(nationalSocietyId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n nationalSocietyHasCoordinator: nationalSociety.value.hasCoordinator,\n }),\n );\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_PROJECT_DASHBOARD,\n GET_PROJECT_DASHBOARD_DATA,\n GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS,\n GENERATE_PDF,\n} from \"./projectDashboardConstants\";\n\nexport const goToDashboard = (nationalSocietyId, projectId) =>\n push(\n `/nationalsocieties/${nationalSocietyId}/projects/${projectId}/dashboard`,\n );\n\nexport const openDashboard = {\n invoke: (projectId, filters) => ({\n type: OPEN_PROJECT_DASHBOARD.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: OPEN_PROJECT_DASHBOARD.REQUEST }),\n success: (projectId, filtersData) => ({\n type: OPEN_PROJECT_DASHBOARD.SUCCESS,\n projectId,\n filtersData,\n }),\n failure: (message) => ({ type: OPEN_PROJECT_DASHBOARD.FAILURE, message }),\n};\n\nexport const getDashboardData = {\n invoke: (projectId, filters) => ({\n type: GET_PROJECT_DASHBOARD_DATA.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: GET_PROJECT_DASHBOARD_DATA.REQUEST }),\n success: (\n filters,\n summary,\n reportsGroupedByHealthRiskAndDate,\n reportsGroupedByFeaturesAndDate,\n reportsGroupedByVillageAndDate,\n reportsGroupedByFeatures,\n reportsGroupedByLocation,\n dataCollectionPointReports,\n keptReportsInEscalatedAlertsHistogramData,\n ) => ({\n type: GET_PROJECT_DASHBOARD_DATA.SUCCESS,\n filters,\n summary,\n reportsGroupedByHealthRiskAndDate,\n reportsGroupedByFeaturesAndDate,\n reportsGroupedByVillageAndDate,\n reportsGroupedByFeatures,\n reportsGroupedByLocation,\n dataCollectionPointReports,\n keptReportsInEscalatedAlertsHistogramData,\n }),\n failure: (message) => ({ type: GET_PROJECT_DASHBOARD_DATA.FAILURE, message }),\n};\n\nexport const getReportHealthRisks = {\n invoke: (projectId, latitude, longitude) => ({\n type: GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS.INVOKE,\n projectId,\n latitude,\n longitude,\n }),\n request: () => ({ type: GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS.REQUEST }),\n success: (data) => ({\n type: GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS.SUCCESS,\n data,\n }),\n failure: (message) => ({\n type: GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS.FAILURE,\n message,\n }),\n};\n\nexport const generatePdf = {\n invoke: (containerElement) => ({\n type: GENERATE_PDF.INVOKE,\n containerElement,\n }),\n request: () => ({ type: GENERATE_PDF.REQUEST }),\n success: () => ({ type: GENERATE_PDF.SUCCESS }),\n failure: (message) => ({ type: GENERATE_PDF.FAILURE, message }),\n};\n","import jsPDF from \"jspdf\";\nimport domtoimage from \"dom-to-image\";\n\nexport const generatePdfDocument = async (\n title,\n containerElement,\n reportFileName,\n) => {\n const pageWidth = 210; // mm\n const pageHeight = 295; // mm\n const margin = 10; // mm\n const spacing = 5; // mm\n\n const contentWidth = pageWidth - margin * 2;\n\n const elements = containerElement.querySelectorAll(\"[data-printable]\");\n\n let pdf = new jsPDF(\"p\", \"mm\", \"a4\");\n let currentPositionY = margin;\n\n pdf.setFontSize(10);\n pdf.text(title, 105, currentPositionY + 2, \"center\");\n\n currentPositionY += 10;\n\n for (const element of elements) {\n const imageData = await domtoimage.toJpeg(element, {\n bgcolor: \"white\",\n });\n const canvasHeightInMm =\n (element.scrollHeight * contentWidth) / element.scrollWidth;\n\n if (currentPositionY + canvasHeightInMm > pageHeight - margin) {\n pdf.addPage();\n currentPositionY = margin;\n }\n\n pdf.addImage(\n imageData,\n \"JPG\",\n margin,\n currentPositionY,\n contentWidth,\n canvasHeightInMm,\n );\n\n currentPositionY += canvasHeightInMm + spacing;\n }\n\n pdf.save(`${reportFileName}.pdf`);\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./projectDashboardConstants\";\nimport * as actions from \"./projectDashboardActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport { stringsFormat, stringKeys } from \"../../../strings\";\nimport { generatePdfDocument } from \"../../../utils/pdf\";\nimport { trackTrace } from \"../../../utils/tracking\";\n\ndayjs.extend(utc);\n\nexport const projectDashboardSagas = () => [\n takeEvery(consts.OPEN_PROJECT_DASHBOARD.INVOKE, openProjectDashboard),\n takeEvery(consts.GET_PROJECT_DASHBOARD_DATA.INVOKE, getProjectDashboardData),\n takeEvery(\n consts.GET_PROJECT_DASHBOARD_REPORT_HEALTH_RISKS.INVOKE,\n getProjectDashboardReportHealthRisks,\n ),\n takeEvery(consts.GENERATE_PDF.INVOKE, generatePdf),\n];\n\nfunction* openProjectDashboard({ projectId }) {\n yield put(actions.openDashboard.request());\n try {\n yield call(openProjectDashboardModule, projectId);\n const filtersData = yield call(\n http.get,\n `/api/projectDashboard/filters?projectId=${projectId}`,\n );\n const localDate = dayjs();\n const utcOffset = Math.floor(localDate.utcOffset() / 60);\n let endDate = localDate.add(-utcOffset, \"hour\");\n endDate = endDate.set(\"hour\", 0);\n endDate = endDate.set(\"minute\", 0);\n endDate = endDate.set(\"second\", 0);\n const filters = {\n healthRisks: [],\n locations: null,\n startDate: endDate.add(-7, \"day\"),\n endDate: endDate,\n groupingType: \"Day\",\n dataCollectorType: \"all\",\n reportStatus: {\n kept: true,\n dismissed: false,\n notCrossChecked: true,\n },\n utcOffset: utcOffset,\n trainingStatus: \"Trained\",\n };\n\n yield call(getProjectDashboardData, { projectId, filters });\n\n yield put(actions.openDashboard.success(projectId, filtersData.value));\n } catch (error) {\n yield put(actions.openDashboard.failure(error.message));\n }\n}\n\nfunction* getProjectDashboardData({ projectId, filters }) {\n yield put(actions.getDashboardData.request());\n try {\n const response = yield call(\n http.post,\n `/api/projectDashboard/data?projectId=${projectId}`,\n filters,\n );\n yield put(\n actions.getDashboardData.success(\n filters,\n response.value.summary,\n response.value.reportsGroupedByHealthRiskAndDate,\n response.value.reportsGroupedByFeaturesAndDate,\n response.value.reportsGroupedByVillageAndDate,\n response.value.reportsGroupedByFeatures,\n response.value.reportsGroupedByLocation,\n response.value.dataCollectionPointReportsGroupedByDate,\n response.value.keptReportsInEscalatedAlertsHistogramData,\n ),\n );\n } catch (error) {\n yield put(actions.getDashboardData.failure(error.message));\n }\n}\n\nfunction* getProjectDashboardReportHealthRisks({\n projectId,\n latitude,\n longitude,\n}) {\n yield put(actions.getReportHealthRisks.request());\n try {\n const filters = yield select((state) => state.projectDashboard.filters);\n const response = yield call(\n http.post,\n `/api/projectDashboard/reportHealthRisks?projectId=${projectId}&latitude=${latitude}&longitude=${longitude}`,\n filters,\n );\n yield put(actions.getReportHealthRisks.success(response.value));\n } catch (error) {\n yield put(actions.getReportHealthRisks.failure(error.message));\n }\n}\n\nfunction* generatePdf({ containerElement }) {\n const reportFileName = \"Report\";\n\n const projectId = yield select(\n (state) => state.appData.route.params.projectId,\n );\n const message = \"Generate project dashboard pdf\";\n const properties = {\n projectId,\n };\n\n yield call(trackTrace, { message, properties });\n yield put(actions.generatePdf.request());\n try {\n const siteMapParams = yield select(\n (state) => state.appData.siteMap.parameters,\n );\n\n const printTitleParams = {\n nationalSocietyName: siteMapParams.nationalSocietyName,\n projectName: siteMapParams.projectName,\n };\n\n const title = stringsFormat(\n stringKeys.dashboard.printTitle,\n printTitleParams,\n true,\n );\n\n yield call(generatePdfDocument, title, containerElement, reportFileName);\n yield put(actions.generatePdf.success());\n } catch (error) {\n yield put(actions.generatePdf.failure(error.message));\n }\n}\n\nfunction* openProjectDashboardModule(projectId) {\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n projectIsClosed: project.value.isClosed,\n }),\n );\n\n return project.value;\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_ALERTS_LIST,\n GET_ALERTS,\n OPEN_ALERTS_ASSESSMENT,\n ACCEPT_REPORT,\n DISMISS_REPORT,\n RESET_REPORT,\n ESCALATE_ALERT,\n DISMISS_ALERT,\n CLOSE_ALERT,\n FETCH_RECIPIENTS,\n EXPORT_ALERTS,\n VALIDATE_EIDSR,\n} from \"./alertsConstants\";\n\nexport const goToList = (projectId) => push(`/projects/${projectId}/alerts`);\nexport const goToAssessment = (projectId, alertId) =>\n push(`/projects/${projectId}/alerts/${alertId}/assess`);\nexport const goToEventLog = (projectId, alertId) =>\n push(`/projects/${projectId}/alerts/${alertId}/eventLog`);\n\nexport const openList = {\n invoke: (projectId) => ({ type: OPEN_ALERTS_LIST.INVOKE, projectId }),\n request: () => ({ type: OPEN_ALERTS_LIST.REQUEST }),\n success: (projectId, filtersData) => ({\n type: OPEN_ALERTS_LIST.SUCCESS,\n projectId,\n filtersData,\n }),\n failure: (message) => ({ type: OPEN_ALERTS_LIST.FAILURE, message }),\n};\n\nexport const getAlerts = {\n invoke: (projectId, pageNumber, filters) => ({\n type: GET_ALERTS.INVOKE,\n projectId,\n pageNumber,\n filters,\n }),\n request: () => ({ type: GET_ALERTS.REQUEST }),\n success: (data, page, rowsPerPage, totalRows, filters) => ({\n type: GET_ALERTS.SUCCESS,\n data,\n page,\n rowsPerPage,\n totalRows,\n filters,\n }),\n failure: (message) => ({ type: GET_ALERTS.FAILURE, message }),\n};\n\nexport const openAssessment = {\n invoke: (projectId, alertId) => ({\n type: OPEN_ALERTS_ASSESSMENT.INVOKE,\n projectId,\n alertId,\n }),\n request: () => ({ type: OPEN_ALERTS_ASSESSMENT.REQUEST }),\n success: (alertId, data) => ({\n type: OPEN_ALERTS_ASSESSMENT.SUCCESS,\n alertId,\n data,\n }),\n failure: (message) => ({ type: OPEN_ALERTS_ASSESSMENT.FAILURE, message }),\n};\n\nexport const acceptReport = {\n invoke: (alertId, reportId) => ({\n type: ACCEPT_REPORT.INVOKE,\n alertId,\n reportId,\n }),\n request: (reportId) => ({ type: ACCEPT_REPORT.REQUEST, reportId }),\n success: (reportId, assessmentStatus) => ({\n type: ACCEPT_REPORT.SUCCESS,\n reportId,\n assessmentStatus,\n }),\n failure: (reportId, message) => ({\n type: ACCEPT_REPORT.FAILURE,\n reportId,\n message,\n }),\n};\n\nexport const dismissReport = {\n invoke: (alertId, reportId) => ({\n type: DISMISS_REPORT.INVOKE,\n alertId,\n reportId,\n }),\n request: (reportId) => ({ type: DISMISS_REPORT.REQUEST, reportId }),\n success: (reportId, assessmentStatus) => ({\n type: DISMISS_REPORT.SUCCESS,\n reportId,\n assessmentStatus,\n }),\n failure: (reportId, message) => ({\n type: DISMISS_REPORT.FAILURE,\n reportId,\n message,\n }),\n};\n\nexport const resetReport = {\n invoke: (alertId, reportId) => ({\n type: RESET_REPORT.INVOKE,\n alertId,\n reportId,\n }),\n request: (reportId) => ({ type: RESET_REPORT.REQUEST, reportId }),\n success: (reportId, assessmentStatus) => ({\n type: RESET_REPORT.SUCCESS,\n reportId,\n assessmentStatus,\n }),\n failure: (reportId, message) => ({\n type: RESET_REPORT.FAILURE,\n reportId,\n message,\n }),\n};\n\nexport const escalateAlert = {\n invoke: (alertId, sendNotification) => ({\n type: ESCALATE_ALERT.INVOKE,\n alertId,\n sendNotification,\n }),\n request: () => ({ type: ESCALATE_ALERT.REQUEST }),\n success: () => ({ type: ESCALATE_ALERT.SUCCESS }),\n failure: (message) => ({ type: ESCALATE_ALERT.FAILURE, message }),\n};\n\nexport const validateEidsr = {\n invoke: (alertId) => ({ type: VALIDATE_EIDSR.INVOKE, alertId }),\n request: () => ({ type: VALIDATE_EIDSR.REQUEST }),\n success: (data) => ({ type: VALIDATE_EIDSR.SUCCESS, data }),\n failure: (message) => ({ type: VALIDATE_EIDSR.FAILURE, message }),\n};\n\nexport const dismissAlert = {\n invoke: (alertId) => ({ type: DISMISS_ALERT.INVOKE, alertId }),\n request: () => ({ type: DISMISS_ALERT.REQUEST }),\n success: () => ({ type: DISMISS_ALERT.SUCCESS }),\n failure: (message) => ({ type: DISMISS_ALERT.FAILURE, message }),\n};\n\nexport const closeAlert = {\n invoke: (alertId) => ({ type: CLOSE_ALERT.INVOKE, alertId }),\n request: () => ({ type: CLOSE_ALERT.REQUEST }),\n success: () => ({ type: CLOSE_ALERT.SUCCESS }),\n failure: (message) => ({ type: CLOSE_ALERT.FAILURE, message }),\n};\n\nexport const fetchRecipients = {\n invoke: (alertId) => ({ type: FETCH_RECIPIENTS.INVOKE, alertId }),\n request: () => ({ type: FETCH_RECIPIENTS.REQUEST }),\n success: (data) => ({ type: FETCH_RECIPIENTS.SUCCESS, data }),\n failure: (message) => ({ type: FETCH_RECIPIENTS.FAILURE, message }),\n};\n\nexport const exportAlerts = {\n invoke: (projectId, filters) => ({\n type: EXPORT_ALERTS.INVOKE,\n projectId,\n filters,\n }),\n request: () => ({ type: EXPORT_ALERTS.REQUEST }),\n success: () => ({ type: EXPORT_ALERTS.SUCCESS }),\n failure: (message) => ({ type: EXPORT_ALERTS.FAILURE, message }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./alertsConstants\";\nimport * as actions from \"./alertsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringKeys } from \"../../../strings\";\nimport dayjs from \"dayjs\";\nimport { downloadFile } from \"../../../utils/downloadFile\";\nimport { formatDate, getUtcOffset } from \"../../../utils/date\";\n\nexport const alertsSagas = () => [\n takeEvery(consts.OPEN_ALERTS_LIST.INVOKE, openAlertsList),\n takeEvery(consts.GET_ALERTS.INVOKE, getAlerts),\n takeEvery(consts.OPEN_ALERTS_ASSESSMENT.INVOKE, openAlertsAssessment),\n takeEvery(consts.ACCEPT_REPORT.INVOKE, acceptReport),\n takeEvery(consts.DISMISS_REPORT.INVOKE, dismissReport),\n takeEvery(consts.ESCALATE_ALERT.INVOKE, escalateAlert),\n takeEvery(consts.DISMISS_ALERT.INVOKE, dismissAlert),\n takeEvery(consts.CLOSE_ALERT.INVOKE, closeAlert),\n takeEvery(consts.RESET_REPORT.INVOKE, resetReport),\n takeEvery(consts.FETCH_RECIPIENTS.INVOKE, fetchRecipients),\n takeEvery(consts.EXPORT_ALERTS.INVOKE, exportAlerts),\n takeEvery(consts.VALIDATE_EIDSR.INVOKE, validateEidsr),\n];\n\nfunction* openAlertsList({ projectId }) {\n yield put(actions.openList.request());\n try {\n yield call(openAlertsModule, projectId);\n\n const filtersData = yield call(\n http.get,\n `/api/alert/getFiltersData?projectId=${projectId}`,\n );\n\n const localDate = dayjs();\n const utcOffset = getUtcOffset();\n let endDate = localDate.add(-utcOffset, \"hour\");\n endDate = endDate.set(\"hour\", 0);\n endDate = endDate.set(\"minute\", 0);\n endDate = endDate.set(\"second\", 0);\n\n const filters = {\n locations: null,\n healthRiskId: null,\n startDate: endDate.add(-30, \"day\"),\n endDate: endDate,\n status: consts.alertStatusFilters.all,\n orderBy: consts.statusColumn,\n sortAscending: false,\n utcOffset: utcOffset,\n };\n\n yield call(getAlerts, { projectId, filters });\n\n yield put(actions.openList.success(projectId, filtersData.value));\n } catch (error) {\n yield put(actions.openList.failure(error.message));\n }\n}\n\nfunction* getAlerts({ projectId, pageNumber, filters }) {\n yield put(actions.getAlerts.request());\n try {\n const response = yield call(\n http.post,\n `/api/alert/list?projectId=${projectId}&pageNumber=${pageNumber || 1}`,\n filters,\n );\n yield put(\n actions.getAlerts.success(\n response.value.data,\n response.value.page,\n response.value.rowsPerPage,\n response.value.totalRows,\n filters,\n ),\n );\n } catch (error) {\n yield put(actions.getAlerts.failure(error.message));\n }\n}\n\nfunction* fetchRecipients({ alertId }) {\n yield put(actions.fetchRecipients.request());\n try {\n const response = yield call(\n http.get,\n `/api/alert/${alertId}/alertRecipients`,\n );\n yield put(actions.fetchRecipients.success(response.value));\n } catch (error) {\n yield put(actions.fetchRecipients.failure(error.message));\n }\n}\n\nfunction* openAlertsAssessment({ projectId, alertId }) {\n yield put(actions.openAssessment.request());\n try {\n const data = yield call(\n http.get,\n `/api/alert/${alertId}/get?utcOffset=${getUtcOffset()}`,\n );\n\n const title = `${data.healthRisk}`;\n const subTitle = `${dayjs(data.createdAt).format(\"YYYY-MM-DD HH:mm\")}`;\n\n yield openAlertsModule(projectId, title, subTitle);\n yield put(actions.openAssessment.success(alertId, data));\n } catch (error) {\n yield put(actions.openAssessment.failure(error.message));\n }\n}\n\nfunction* acceptReport({ alertId, reportId }) {\n const previousAssessmentStatus = yield select(\n (state) => state.alerts.formData.assessmentStatus,\n );\n\n yield put(actions.acceptReport.request(reportId));\n try {\n const response = yield call(\n http.post,\n `/api/alert/${alertId}/acceptReport?reportId=${reportId}`,\n );\n const newAssessmentStatus = response.value.assessmentStatus;\n yield put(actions.acceptReport.success(reportId, newAssessmentStatus));\n\n if (\n previousAssessmentStatus !== newAssessmentStatus &&\n newAssessmentStatus === consts.assessmentStatus.toEscalate\n ) {\n yield put(\n appActions.showMessage(\n stringKeys.alerts.assess.alert.escalationPossible,\n 20000,\n ),\n );\n }\n } catch (error) {\n yield put(\n appActions.showMessage(\n stringKeys.alerts.assess.alert.dismissalPossible,\n 20000,\n ),\n );\n yield put(actions.acceptReport.failure(reportId, error.message));\n }\n}\n\nfunction* dismissReport({ alertId, reportId }) {\n const previousAssessmentStatus = yield select(\n (state) => state.alerts.formData.assessmentStatus,\n );\n\n yield put(actions.dismissReport.request(reportId));\n try {\n const response = yield call(\n http.post,\n `/api/alert/${alertId}/dismissReport?reportId=${reportId}`,\n );\n const newAssessmentStatus = response.value.assessmentStatus;\n yield put(actions.dismissReport.success(reportId, newAssessmentStatus));\n\n if (\n previousAssessmentStatus !== newAssessmentStatus &&\n newAssessmentStatus === consts.assessmentStatus.toDismiss\n ) {\n yield put(\n appActions.showMessage(\n stringKeys.alerts.assess.alert.dismissalPossible,\n 20000,\n ),\n );\n }\n } catch (error) {\n yield put(actions.dismissReport.failure(reportId, error.message));\n }\n}\n\nfunction* resetReport({ alertId, reportId }) {\n yield put(actions.resetReport.request(reportId));\n try {\n const response = yield call(\n http.post,\n `/api/alert/${alertId}/resetReport?reportId=${reportId}`,\n );\n const newAssessmentStatus = response.value.assessmentStatus;\n yield put(actions.resetReport.success(reportId, newAssessmentStatus));\n } catch (error) {\n yield put(actions.resetReport.failure(reportId, error.message));\n }\n}\n\nfunction* escalateAlert({ alertId, sendNotification }) {\n yield put(actions.escalateAlert.request());\n try {\n const response = yield call(http.post, `/api/alert/${alertId}/escalate`, {\n sendNotification,\n });\n yield put(actions.escalateAlert.success());\n yield put(appActions.showMessage(response.value));\n } catch (error) {\n yield put(appActions.showMessage(error.message));\n yield put(actions.escalateAlert.failure(error.message));\n }\n}\n\nfunction* dismissAlert({ alertId }) {\n const projectId = yield select(\n (state) => state.appData.route.params.projectId,\n );\n\n yield put(actions.dismissAlert.request());\n try {\n yield call(http.post, `/api/alert/${alertId}/dismiss`);\n yield put(actions.dismissAlert.success());\n yield put(actions.goToList(projectId));\n yield put(\n appActions.showMessage(\n stringKeys.alerts.assess.alert.dismissedSuccessfully,\n ),\n );\n } catch (error) {\n yield put(appActions.showMessage(error.message));\n yield put(actions.dismissAlert.failure(error.message));\n }\n}\n\nfunction* closeAlert({ alertId }) {\n const projectId = yield select(\n (state) => state.appData.route.params.projectId,\n );\n\n yield put(actions.closeAlert.request());\n try {\n yield call(http.post, `/api/alert/${alertId}/close`);\n yield put(actions.closeAlert.success());\n yield put(actions.goToEventLog(projectId, alertId));\n yield put(\n appActions.showMessage(stringKeys.alerts.assess.alert.closedSuccessfully),\n );\n } catch (error) {\n yield put(appActions.showMessage(error.message));\n yield put(actions.closeAlert.failure(error.message));\n }\n}\n\nfunction* exportAlerts({ projectId, filters }) {\n yield put(actions.exportAlerts.request());\n\n try {\n const date = new Date(Date.now());\n yield downloadFile({\n url: `/api/alert/export?projectId=${projectId}`,\n fileName: `alerts_${formatDate(date)}.xlsx`,\n data: { ...filters },\n });\n\n yield put(actions.exportAlerts.success());\n } catch (error) {\n yield put(actions.exportAlerts.failure(error.message));\n }\n}\n\nfunction* openAlertsModule(projectId, title, subTitle) {\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n title: title,\n subTitle: subTitle,\n projectIsClosed: project.value.isClosed,\n }),\n );\n}\n\nfunction* validateEidsr({ alertId }) {\n yield put(actions.validateEidsr.request());\n try {\n const response = yield call(\n http.get,\n `/api/alert/${alertId}/eidsr-validate`,\n );\n yield put(actions.validateEidsr.success(response.value));\n } catch (error) {\n yield put(actions.validateEidsr.failure(error.message));\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_ALERT_EVENT_LOG,\n GET_ALERT_EVENT_LOG,\n OPEN_ALERT_EVENT_CREATION,\n CREATE_ALERT_EVENT,\n EDIT_ALERT_EVENT,\n DELETE_ALERT_EVENT,\n} from \"./alertEventsConstants\";\n\nexport const goToLog = (projectId, alertId) =>\n push(`/projects/${projectId}/alerts/${alertId}/eventLog`);\n\nexport const openEventLog = {\n invoke: (projectId, alertId) => ({\n type: OPEN_ALERT_EVENT_LOG.INVOKE,\n projectId,\n alertId,\n }),\n request: () => ({ type: OPEN_ALERT_EVENT_LOG.REQUEST }),\n success: (alertId, data) => ({\n type: OPEN_ALERT_EVENT_LOG.SUCCESS,\n alertId,\n data,\n }),\n failure: (message) => ({ type: OPEN_ALERT_EVENT_LOG.FAILURE, message }),\n};\n\nexport const getEventLog = {\n invoke: (alertId) => ({ type: GET_ALERT_EVENT_LOG.INVOKE, alertId }),\n request: () => ({ type: GET_ALERT_EVENT_LOG.REQUEST }),\n success: (data) => ({ type: GET_ALERT_EVENT_LOG.SUCCESS, data }),\n failure: (message) => ({ type: GET_ALERT_EVENT_LOG.FAILURE, message }),\n};\n\nexport const openCreation = {\n invoke: () => ({ type: OPEN_ALERT_EVENT_CREATION.INVOKE }),\n request: () => ({ type: OPEN_ALERT_EVENT_CREATION.REQUEST }),\n success: (alertEventTypes, alertEventSubtypes) => ({\n type: OPEN_ALERT_EVENT_CREATION.SUCCESS,\n alertEventTypes,\n alertEventSubtypes,\n }),\n failure: (message) => ({ type: OPEN_ALERT_EVENT_CREATION.FAILURE, message }),\n};\n\nexport const create = {\n invoke: (alertId, data) => ({\n type: CREATE_ALERT_EVENT.INVOKE,\n alertId,\n data,\n }),\n request: () => ({ type: CREATE_ALERT_EVENT.REQUEST }),\n success: (formData) => ({ type: CREATE_ALERT_EVENT.SUCCESS, formData }),\n failure: (error) => ({\n type: CREATE_ALERT_EVENT.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const edit = {\n invoke: (alertId, alertEventLogId, text) => ({\n type: EDIT_ALERT_EVENT.INVOKE,\n alertId,\n alertEventLogId,\n text,\n }),\n request: () => ({ type: EDIT_ALERT_EVENT.REQUEST }),\n success: () => ({ type: EDIT_ALERT_EVENT.SUCCESS }),\n failure: (error) => ({\n type: EDIT_ALERT_EVENT.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const remove = {\n invoke: (alertId, alertEventLogId) => ({\n type: DELETE_ALERT_EVENT.INVOKE,\n alertId,\n alertEventLogId,\n }),\n request: (alertEventLogId) => ({\n type: DELETE_ALERT_EVENT.REQUEST,\n alertEventLogId,\n }),\n success: (alertEventLogId) => ({\n type: DELETE_ALERT_EVENT.SUCCESS,\n alertEventLogId,\n }),\n failure: (id, message) => ({ type: DELETE_ALERT_EVENT.FAILURE, id, message }),\n};\n","import { call, put, takeEvery } from \"redux-saga/effects\";\nimport * as actions from \"../../alertEvents/logic/alertEventsActions\";\nimport * as http from \"../../../utils/http\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport { stringKeys, strings } from \"../../../strings\";\nimport * as consts from \"../../alertEvents/logic/alertEventsConstants\";\nimport { getUtcOffset } from \"../../../utils/date\";\nimport dayjs from \"dayjs\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\n\nexport const alertEventsSagas = () => {\n return [\n takeEvery(consts.OPEN_ALERT_EVENT_LOG.INVOKE, openEventLog),\n takeEvery(consts.GET_ALERT_EVENT_LOG.INVOKE, getEventLog),\n takeEvery(consts.OPEN_ALERT_EVENT_CREATION.INVOKE, openAlertEventCreation),\n takeEvery(consts.CREATE_ALERT_EVENT.INVOKE, createAlertEvent),\n takeEvery(consts.EDIT_ALERT_EVENT.INVOKE, editAlertEvent),\n takeEvery(consts.DELETE_ALERT_EVENT.INVOKE, deleteAlertEvent),\n ];\n};\n\nfunction* openEventLog({ projectId, alertId }) {\n yield put(actions.openEventLog.request());\n try {\n const response = yield call(\n http.get,\n `/api/alertEvents/${alertId}/eventLog?utcOffset=${getUtcOffset()}`,\n );\n const data = response.value;\n\n const title = data.healthRisk;\n const subTitle = dayjs(data.createdAt).format(\"YYYY-MM-DD HH:mm\");\n\n yield openAlertEventsModule(projectId, title, subTitle);\n\n yield put(actions.openEventLog.success(alertId, data));\n } catch (error) {\n yield put(actions.openEventLog.failure(error.message));\n }\n}\n\nfunction* getEventLog({ alertId }) {\n yield put(actions.getEventLog.request());\n try {\n const response = yield call(\n http.get,\n `/api/alertEvents/${alertId}/eventLog?utcOffset=${getUtcOffset()}`,\n );\n const data = response.value;\n\n yield put(actions.getEventLog.success(data));\n } catch (error) {\n yield put(actions.getEventLog.failure(error.message));\n }\n}\n\nfunction* openAlertEventCreation() {\n yield put(actions.openCreation.request());\n try {\n const response = yield call(http.get, `/api/alertEvents/eventLog/formData`);\n\n yield put(\n actions.openCreation.success(\n response.value.eventTypes,\n response.value.eventSubtypes,\n ),\n );\n } catch (error) {\n yield put(actions.openCreation.failure(error.message));\n }\n}\n\nfunction* createAlertEvent({ alertId, data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n `/api/alertEvents/${alertId}/eventLog/add`,\n data,\n );\n yield call(getEventLog, { alertId });\n yield put(actions.create.success(response.value));\n yield put(appActions.showMessage(response.message.key));\n } catch (error) {\n yield put(actions.create.failure(error.message));\n yield put(appActions.showMessage(error.message));\n }\n}\n\nfunction* editAlertEvent({ alertId, alertEventLogId, text }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/alertEvents/${alertId}/eventLog/edit/${alertEventLogId}`,\n { alertEventLogId, text },\n );\n yield call(getEventLog, { alertId });\n yield put(actions.edit.success(response.value));\n yield put(appActions.showMessage(response.message.key));\n } catch (error) {\n yield put(actions.edit.failure(error.message));\n yield put(appActions.showMessage(error.message));\n }\n}\n\nfunction* deleteAlertEvent({ alertId, alertEventLogId }) {\n yield put(actions.remove.request(alertEventLogId));\n try {\n const response = yield call(\n http.post,\n `/api/alertEvents/${alertId}/eventLog/delete/${alertEventLogId}`,\n { alertId, alertEventLogId },\n );\n yield put(actions.remove.success(alertEventLogId));\n\n yield call(getEventLog, { alertId });\n yield put(actions.remove.success(response.value));\n yield put(appActions.showMessage(response.message.key));\n } catch (error) {\n yield put(actions.remove.failure(alertEventLogId, error.message));\n yield put(appActions.showMessage(error.message));\n }\n}\n\nfunction* openAlertEventsModule(projectId, title, subTitle) {\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n title: title,\n subTitle: subTitle,\n projectIsClosed: project.value.isClosed,\n }),\n );\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_NATIONAL_SOCIETY_DASHBOARD,\n GET_NATIONAL_SOCIETY_DASHBOARD_DATA,\n GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS,\n GENERATE_NATIONAL_SOCIETY_PDF,\n} from \"./nationalSocietyDashboardConstants\";\n\nexport const goToDashboard = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/dashboard`);\n\nexport const openDashboard = {\n invoke: (nationalSocietyId, filters) => ({\n type: OPEN_NATIONAL_SOCIETY_DASHBOARD.INVOKE,\n nationalSocietyId,\n filters,\n }),\n request: () => ({ type: OPEN_NATIONAL_SOCIETY_DASHBOARD.REQUEST }),\n success: (nationalSocietyId, filtersData) => ({\n type: OPEN_NATIONAL_SOCIETY_DASHBOARD.SUCCESS,\n nationalSocietyId,\n filtersData,\n }),\n failure: (message) => ({\n type: OPEN_NATIONAL_SOCIETY_DASHBOARD.FAILURE,\n message,\n }),\n};\n\nexport const getDashboardData = {\n invoke: (nationalSocietyId, filters) => ({\n type: GET_NATIONAL_SOCIETY_DASHBOARD_DATA.INVOKE,\n nationalSocietyId,\n filters,\n }),\n request: () => ({ type: GET_NATIONAL_SOCIETY_DASHBOARD_DATA.REQUEST }),\n success: (\n filters,\n summary,\n reportsGroupedByLocation,\n reportsGroupedByVillageAndDate,\n reportsGroupedByHealthRiskAndDate,\n reportsGroupedByFeaturesAndDate,\n reportsGroupedByFeatures,\n keptReportsInEscalatedAlertsHistogramData,\n ) => ({\n type: GET_NATIONAL_SOCIETY_DASHBOARD_DATA.SUCCESS,\n filters,\n summary,\n reportsGroupedByLocation,\n reportsGroupedByVillageAndDate,\n reportsGroupedByHealthRiskAndDate,\n reportsGroupedByFeaturesAndDate,\n reportsGroupedByFeatures,\n keptReportsInEscalatedAlertsHistogramData,\n }),\n failure: (message) => ({\n type: GET_NATIONAL_SOCIETY_DASHBOARD_DATA.FAILURE,\n message,\n }),\n};\n\nexport const getReportHealthRisks = {\n invoke: (nationalSocietyId, latitude, longitude) => ({\n type: GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS.INVOKE,\n nationalSocietyId,\n latitude,\n longitude,\n }),\n request: () => ({\n type: GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS.REQUEST,\n }),\n success: (data) => ({\n type: GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS.SUCCESS,\n data,\n }),\n failure: (message) => ({\n type: GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS.FAILURE,\n message,\n }),\n};\n\nexport const generateNationalSocietyPdf = {\n invoke: (containerElement) => ({\n type: GENERATE_NATIONAL_SOCIETY_PDF.INVOKE,\n containerElement,\n }),\n request: () => ({ type: GENERATE_NATIONAL_SOCIETY_PDF.REQUEST }),\n success: () => ({ type: GENERATE_NATIONAL_SOCIETY_PDF.SUCCESS }),\n failure: (message) => ({\n type: GENERATE_NATIONAL_SOCIETY_PDF.FAILURE,\n message,\n }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./nationalSocietyDashboardConstants\";\nimport * as actions from \"./nationalSocietyDashboardActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringsFormat, stringKeys } from \"../../../strings\";\nimport { generatePdfDocument } from \"../../../utils/pdf\";\nimport { trackTrace } from \"../../../utils/tracking\";\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\ndayjs.extend(utc);\n\nexport const nationalSocietyDashboardSagas = () => [\n takeEvery(\n consts.OPEN_NATIONAL_SOCIETY_DASHBOARD.INVOKE,\n openNationalSocietyDashboard,\n ),\n takeEvery(\n consts.GET_NATIONAL_SOCIETY_DASHBOARD_DATA.INVOKE,\n getNationalSocietyDashboardData,\n ),\n takeEvery(\n consts.GET_NATIONAL_SOCIETY_DASHBOARD_REPORT_HEALTH_RISKS.INVOKE,\n getNationalSocietyDashboardReportHealthRisks,\n ),\n takeEvery(\n consts.GENERATE_NATIONAL_SOCIETY_PDF.INVOKE,\n generateNationalSocietyPdf,\n ),\n];\n\nfunction* openNationalSocietyDashboard({ nationalSocietyId }) {\n yield put(actions.openDashboard.request());\n try {\n yield call(openNationalSocietyDashboardModule, nationalSocietyId);\n const filtersData = yield call(\n http.get,\n `/api/nationalSocietyDashboard/filters?nationalSocietyId=${nationalSocietyId}`,\n );\n const localDate = dayjs();\n const utcOffset = Math.floor(localDate.utcOffset() / 60);\n let endDate = localDate.add(-utcOffset, \"hour\");\n endDate = endDate.set(\"hour\", 0);\n endDate = endDate.set(\"minute\", 0);\n endDate = endDate.set(\"second\", 0);\n const filters = {\n healthRisks: [],\n organizationId: null,\n locations: null,\n startDate: endDate.add(-7, \"day\"),\n endDate: endDate,\n groupingType: \"Day\",\n reportStatus: {\n kept: true,\n dismissed: false,\n notCrossChecked: true,\n },\n dataCollectorType: \"all\",\n utcOffset: utcOffset,\n };\n\n yield call(getNationalSocietyDashboardData, { nationalSocietyId, filters });\n\n yield put(\n actions.openDashboard.success(nationalSocietyId, filtersData.value),\n );\n } catch (error) {\n yield put(actions.openDashboard.failure(error.message));\n }\n}\n\n// fetches dashboard data from server. Runs success action with data if successful, otherwise runs failure action with error message\nfunction* getNationalSocietyDashboardData({ nationalSocietyId, filters }) {\n yield put(actions.getDashboardData.request());\n try {\n const response = yield call(\n http.post,\n `/api/nationalSocietyDashboard/data?nationalSocietyId=${nationalSocietyId}`,\n filters,\n );\n yield put(\n actions.getDashboardData.success(\n filters,\n response.value.summary,\n response.value.reportsGroupedByLocation,\n response.value.reportsGroupedByVillageAndDate,\n response.value.reportsGroupedByHealthRiskAndDate,\n response.value.reportsGroupedByFeaturesAndDate,\n response.value.reportsGroupedByFeatures,\n response.value.keptReportsInEscalatedAlertsHistogramData,\n ),\n );\n } catch (error) {\n yield put(actions.getDashboardData.failure(error.message));\n }\n}\n\nfunction* getNationalSocietyDashboardReportHealthRisks({\n nationalSocietyId,\n latitude,\n longitude,\n}) {\n yield put(actions.getReportHealthRisks.request());\n try {\n const filters = yield select(\n (state) => state.nationalSocietyDashboard.filters,\n );\n const response = yield call(\n http.post,\n `/api/nationalSocietyDashboard/reportHealthRisks?nationalSocietyId=${nationalSocietyId}&latitude=${latitude}&longitude=${longitude}`,\n filters,\n );\n yield put(actions.getReportHealthRisks.success(response.value));\n } catch (error) {\n yield put(actions.getReportHealthRisks.failure(error.message));\n }\n}\n\nfunction* generateNationalSocietyPdf({ containerElement }) {\n const reportFileName = \"Report\";\n\n const nationalSocietyId = yield select(\n (state) => state.appData.route.params.nationalSocietyId,\n );\n const message = \"Generate National Society dashboard pdf\";\n const properties = {\n nationalSocietyId,\n };\n\n yield call(trackTrace, { message, properties });\n yield put(actions.generateNationalSocietyPdf.request());\n try {\n const siteMapParams = yield select(\n (state) => state.appData.siteMap.parameters,\n );\n\n const printTitleParams = {\n nationalSocietyName: siteMapParams.nationalSocietyName,\n };\n\n const title = stringsFormat(\n stringKeys.dashboard.printTitleNationalSociety,\n printTitleParams,\n true,\n );\n\n yield call(generatePdfDocument, title, containerElement, reportFileName);\n yield put(actions.generateNationalSocietyPdf.success());\n } catch (error) {\n yield put(actions.generateNationalSocietyPdf.failure(error.message));\n }\n}\n\nfunction* openNationalSocietyDashboardModule(nationalSocietyId) {\n const nationalSociety = yield call(http.getCached, {\n path: `/api/nationalSociety/${nationalSocietyId}/get`,\n dependencies: [entityTypes.nationalSociety(nationalSocietyId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n }),\n );\n\n return nationalSociety.value;\n}\n","import {\n OPEN_TRANSLATIONS_LIST,\n GET_TRANSLATIONS,\n OPEN_EMAIL_TRANSLATIONS_LIST,\n GET_EMAIL_TRANSLATIONS,\n OPEN_SMS_TRANSLATIONS_LIST,\n GET_SMS_TRANSLATIONS,\n} from \"./translationsConstants\";\n\nexport const openTranslationsList = {\n invoke: () => ({ type: OPEN_TRANSLATIONS_LIST.INVOKE }),\n request: () => ({ type: OPEN_TRANSLATIONS_LIST.REQUEST }),\n success: () => ({ type: OPEN_TRANSLATIONS_LIST.SUCCESS }),\n failure: (message) => ({ type: OPEN_TRANSLATIONS_LIST.FAILURE, message }),\n};\n\nexport const getTranslationsList = {\n invoke: (needsImprovementOnly) => ({\n type: GET_TRANSLATIONS.INVOKE,\n needsImprovementOnly,\n }),\n request: () => ({ type: GET_TRANSLATIONS.REQUEST }),\n success: (data) => ({ type: GET_TRANSLATIONS.SUCCESS, data }),\n failure: (message) => ({ type: GET_TRANSLATIONS.FAILURE, message }),\n};\n\nexport const openEmailTranslationsList = {\n invoke: () => ({ type: OPEN_EMAIL_TRANSLATIONS_LIST.INVOKE }),\n request: () => ({ type: OPEN_EMAIL_TRANSLATIONS_LIST.REQUEST }),\n success: () => ({ type: OPEN_EMAIL_TRANSLATIONS_LIST.SUCCESS }),\n failure: (message) => ({\n type: OPEN_EMAIL_TRANSLATIONS_LIST.FAILURE,\n message,\n }),\n};\n\nexport const getEmailTranslationsList = {\n invoke: (needsImprovementOnly) => ({\n type: GET_EMAIL_TRANSLATIONS.INVOKE,\n needsImprovementOnly,\n }),\n request: () => ({ type: GET_EMAIL_TRANSLATIONS.REQUEST }),\n success: (data) => ({ type: GET_EMAIL_TRANSLATIONS.SUCCESS, data }),\n failure: (message) => ({ type: GET_EMAIL_TRANSLATIONS.FAILURE, message }),\n};\n\nexport const openSmsTranslationsList = {\n invoke: () => ({ type: OPEN_SMS_TRANSLATIONS_LIST.INVOKE }),\n request: () => ({ type: OPEN_SMS_TRANSLATIONS_LIST.REQUEST }),\n success: () => ({ type: OPEN_SMS_TRANSLATIONS_LIST.SUCCESS }),\n failure: (message) => ({ type: OPEN_SMS_TRANSLATIONS_LIST.FAILURE, message }),\n};\n\nexport const getSmsTranslationsList = {\n invoke: (needsImprovementOnly) => ({\n type: GET_SMS_TRANSLATIONS.INVOKE,\n needsImprovementOnly,\n }),\n request: () => ({ type: GET_SMS_TRANSLATIONS.REQUEST }),\n success: (data) => ({ type: GET_SMS_TRANSLATIONS.SUCCESS, data }),\n failure: (message) => ({ type: GET_SMS_TRANSLATIONS.FAILURE, message }),\n};\n","import { call, put, takeEvery } from \"redux-saga/effects\";\nimport * as consts from \"./translationsConstants\";\nimport * as actions from \"./translationsActions\";\nimport * as http from \"../../../utils/http\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const translationsSagas = () => [\n takeEvery(consts.OPEN_TRANSLATIONS_LIST.INVOKE, openTranslationsList),\n takeEvery(\n consts.OPEN_EMAIL_TRANSLATIONS_LIST.INVOKE,\n openEmailTranslationsList,\n ),\n takeEvery(consts.OPEN_SMS_TRANSLATIONS_LIST.INVOKE, openSmsTranslationsList),\n takeEvery(consts.GET_TRANSLATIONS.INVOKE, getTranslations),\n takeEvery(consts.GET_EMAIL_TRANSLATIONS.INVOKE, getEmailTranslations),\n takeEvery(consts.GET_SMS_TRANSLATIONS.INVOKE, getSmsTranslations),\n];\n\nfunction* openTranslationsList({ path }) {\n yield put(actions.openTranslationsList.request());\n try {\n yield call(getTranslations, { needsImprovementOnly: false });\n yield put(\n appActions.openModule.invoke(path, {\n title: strings(stringKeys.translations.title),\n }),\n );\n yield put(actions.openTranslationsList.success());\n } catch (error) {\n yield put(actions.openTranslationsList.failure(error.message));\n }\n}\n\nfunction* getTranslations({ needsImprovementOnly }) {\n yield put(actions.getTranslationsList.request());\n try {\n const response = yield call(\n http.get,\n `/api/resources/listStringsTranslations?needsImprovementOnly=${needsImprovementOnly}`,\n );\n yield put(actions.getTranslationsList.success(response.value));\n } catch (error) {\n yield put(actions.getTranslationsList.failure(error.message));\n }\n}\n\nfunction* openEmailTranslationsList({ path }) {\n yield put(actions.openEmailTranslationsList.request());\n try {\n yield call(getEmailTranslations, { needsImprovementOnly: false });\n yield put(\n appActions.openModule.invoke(path, {\n title: strings(stringKeys.translations.title),\n }),\n );\n yield put(actions.openEmailTranslationsList.success());\n } catch (error) {\n yield put(actions.openEmailTranslationsList.failure(error.message));\n }\n}\n\nfunction* getEmailTranslations({ needsImprovementOnly }) {\n yield put(actions.getEmailTranslationsList.request());\n try {\n const response = yield call(\n http.get,\n `/api/resources/listEmailTranslations?needsImprovementOnly=${needsImprovementOnly}`,\n );\n yield put(actions.getEmailTranslationsList.success(response.value));\n } catch (error) {\n yield put(actions.getEmailTranslationsList.failure(error.message));\n }\n}\n\nfunction* openSmsTranslationsList({ path }) {\n yield put(actions.openSmsTranslationsList.request());\n try {\n yield call(getSmsTranslations, { needsImprovementOnly: false });\n yield put(\n appActions.openModule.invoke(path, {\n title: strings(stringKeys.translations.title),\n }),\n );\n yield put(actions.openSmsTranslationsList.success());\n } catch (error) {\n yield put(actions.openSmsTranslationsList.failure(error.message));\n }\n}\n\nfunction* getSmsTranslations({ needsImprovementOnly }) {\n yield put(actions.getSmsTranslationsList.request());\n try {\n const response = yield call(\n http.get,\n `/api/resources/listSmsTranslations?needsImprovementOnly=${needsImprovementOnly}`,\n );\n yield put(actions.getSmsTranslationsList.success(response.value));\n } catch (error) {\n yield put(actions.getSmsTranslationsList.failure(error.message));\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_ORGANIZATIONS_LIST,\n GET_ORGANIZATIONS,\n OPEN_ORGANIZATION_CREATION,\n CREATE_ORGANIZATION,\n OPEN_ORGANIZATION_EDITION,\n EDIT_ORGANIZATION,\n REMOVE_ORGANIZATION,\n} from \"./organizationsConstants\";\n\nexport const goToList = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/organizations`);\nexport const goToCreation = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/organizations/add`);\nexport const goToEdition = (nationalSocietyId, organizationId) =>\n push(\n `/nationalsocieties/${nationalSocietyId}/organizations/${organizationId}/edit`,\n );\n\nexport const openList = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_ORGANIZATIONS_LIST.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_ORGANIZATIONS_LIST.REQUEST }),\n success: (nationalSocietyId) => ({\n type: OPEN_ORGANIZATIONS_LIST.SUCCESS,\n nationalSocietyId,\n }),\n failure: (error) => ({ type: OPEN_ORGANIZATIONS_LIST.FAILURE, error }),\n};\n\nexport const getList = {\n invoke: (nationalSocietyId) => ({\n type: GET_ORGANIZATIONS.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: GET_ORGANIZATIONS.REQUEST }),\n success: (list) => ({ type: GET_ORGANIZATIONS.SUCCESS, list }),\n failure: (error) => ({ type: GET_ORGANIZATIONS.FAILURE, error }),\n};\n\nexport const openCreation = {\n invoke: (nationalSocietyId) => ({\n type: OPEN_ORGANIZATION_CREATION.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: OPEN_ORGANIZATION_CREATION.REQUEST }),\n success: () => ({ type: OPEN_ORGANIZATION_CREATION.SUCCESS }),\n failure: (error) => ({ type: OPEN_ORGANIZATION_CREATION.FAILURE, error }),\n};\n\nexport const create = {\n invoke: (nationalSocietyId, data) => ({\n type: CREATE_ORGANIZATION.INVOKE,\n nationalSocietyId,\n data,\n }),\n request: () => ({ type: CREATE_ORGANIZATION.REQUEST }),\n success: () => ({ type: CREATE_ORGANIZATION.SUCCESS }),\n failure: (error) => ({\n type: CREATE_ORGANIZATION.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const openEdition = {\n invoke: (nationalSocietyId, organizationId) => ({\n type: OPEN_ORGANIZATION_EDITION.INVOKE,\n nationalSocietyId,\n organizationId,\n }),\n request: () => ({ type: OPEN_ORGANIZATION_EDITION.REQUEST }),\n success: (data) => ({ type: OPEN_ORGANIZATION_EDITION.SUCCESS, data }),\n failure: (error) => ({ type: OPEN_ORGANIZATION_EDITION.FAILURE, error }),\n};\n\nexport const edit = {\n invoke: (nationalSocietyId, data) => ({\n type: EDIT_ORGANIZATION.INVOKE,\n nationalSocietyId,\n data,\n }),\n request: () => ({ type: EDIT_ORGANIZATION.REQUEST }),\n success: () => ({ type: EDIT_ORGANIZATION.SUCCESS }),\n failure: (error) => ({\n type: EDIT_ORGANIZATION.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const remove = {\n invoke: (nationalSocietyId, organizationId) => ({\n type: REMOVE_ORGANIZATION.INVOKE,\n nationalSocietyId,\n organizationId,\n }),\n request: (id) => ({ type: REMOVE_ORGANIZATION.REQUEST, id }),\n success: (id) => ({ type: REMOVE_ORGANIZATION.SUCCESS, id }),\n failure: (id, error) => ({ type: REMOVE_ORGANIZATION.FAILURE, id, error }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./organizationsConstants\";\nimport * as actions from \"./organizationsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const organizationsSagas = () => [\n takeEvery(consts.OPEN_ORGANIZATIONS_LIST.INVOKE, openOrganizationsList),\n takeEvery(consts.OPEN_ORGANIZATION_CREATION.INVOKE, openOrganizationCreation),\n takeEvery(consts.OPEN_ORGANIZATION_EDITION.INVOKE, openOrganizationEdition),\n takeEvery(consts.CREATE_ORGANIZATION.INVOKE, createOrganization),\n takeEvery(consts.EDIT_ORGANIZATION.INVOKE, editOrganization),\n takeEvery(consts.REMOVE_ORGANIZATION.INVOKE, removeOrganization),\n];\n\nfunction* openOrganizationsList({ nationalSocietyId }) {\n yield put(actions.openList.request());\n try {\n yield openOrganizationsModule(nationalSocietyId);\n\n if (yield select((state) => state.organizations.listStale)) {\n yield call(getOrganizations, nationalSocietyId);\n }\n\n yield put(actions.openList.success(nationalSocietyId));\n } catch (error) {\n yield put(actions.openList.failure(error.message));\n }\n}\n\nfunction* openOrganizationCreation({ nationalSocietyId }) {\n yield put(actions.openCreation.request());\n try {\n yield openOrganizationsModule(nationalSocietyId);\n yield put(actions.openCreation.success());\n } catch (error) {\n yield put(actions.openCreation.failure(error.message));\n }\n}\n\nfunction* openOrganizationEdition({ nationalSocietyId, organizationId }) {\n yield put(actions.openEdition.request());\n try {\n const response = yield call(\n http.get,\n `/api/organization/${organizationId}/get`,\n );\n yield openOrganizationsModule(nationalSocietyId);\n yield put(actions.openEdition.success(response.value));\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* createOrganization({ nationalSocietyId, data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n `/api/organization/create?nationalSocietyId=${nationalSocietyId}`,\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(actions.goToList(nationalSocietyId));\n yield put(appActions.showMessage(stringKeys.organization.create.success));\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* editOrganization({ nationalSocietyId, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/organization/${data.id}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList(nationalSocietyId));\n yield put(appActions.showMessage(stringKeys.organization.edit.success));\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\nfunction* removeOrganization({ nationalSocietyId, organizationId }) {\n yield put(actions.remove.request(organizationId));\n try {\n yield call(http.post, `/api/organization/${organizationId}/delete`);\n yield put(actions.remove.success(organizationId));\n yield call(getOrganizations, nationalSocietyId);\n yield put(appActions.showMessage(stringKeys.organization.delete.success));\n } catch (error) {\n yield put(actions.remove.failure(organizationId, error));\n }\n}\n\nfunction* getOrganizations(nationalSocietyId) {\n yield put(actions.getList.request());\n try {\n const response = yield call(\n http.get,\n `/api/organization/list?nationalSocietyId=${nationalSocietyId}`,\n );\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error));\n }\n}\n\nfunction* openOrganizationsModule(nationalSocietyId) {\n const nationalSociety = yield call(http.getCached, {\n path: `/api/nationalSociety/${nationalSocietyId}/get`,\n dependencies: [entityTypes.nationalSociety(nationalSocietyId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n nationalSocietyHasCoordinator:\n nationalSociety.value.nationalSocietyHasCoordinator,\n isCurrentUserHeadManager: nationalSociety.value.isCurrentUserHeadManager,\n }),\n );\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_PROJECT_ORGANIZATIONS_LIST,\n GET_PROJECT_ORGANIZATIONS,\n OPEN_PROJECT_ORGANIZATION_CREATION,\n CREATE_PROJECT_ORGANIZATION,\n REMOVE_PROJECT_ORGANIZATION,\n} from \"./projectOrganizationsConstants\";\n\nexport const goToList = (projectId) =>\n push(`/projects/${projectId}/organizations`);\nexport const goToCreation = (projectId) =>\n push(`/projects/${projectId}/organizations/add`);\n\nexport const openList = {\n invoke: (projectId) => ({\n type: OPEN_PROJECT_ORGANIZATIONS_LIST.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_PROJECT_ORGANIZATIONS_LIST.REQUEST }),\n success: (projectId) => ({\n type: OPEN_PROJECT_ORGANIZATIONS_LIST.SUCCESS,\n projectId,\n }),\n failure: (message) => ({\n type: OPEN_PROJECT_ORGANIZATIONS_LIST.FAILURE,\n message,\n }),\n};\n\nexport const getList = {\n invoke: (projectId) => ({\n type: GET_PROJECT_ORGANIZATIONS.INVOKE,\n projectId,\n }),\n request: () => ({ type: GET_PROJECT_ORGANIZATIONS.REQUEST }),\n success: (list) => ({ type: GET_PROJECT_ORGANIZATIONS.SUCCESS, list }),\n failure: (message) => ({ type: GET_PROJECT_ORGANIZATIONS.FAILURE, message }),\n};\n\nexport const openCreation = {\n invoke: (projectId) => ({\n type: OPEN_PROJECT_ORGANIZATION_CREATION.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_PROJECT_ORGANIZATION_CREATION.REQUEST }),\n success: (formData) => ({\n type: OPEN_PROJECT_ORGANIZATION_CREATION.SUCCESS,\n formData,\n }),\n failure: (message) => ({\n type: OPEN_PROJECT_ORGANIZATION_CREATION.FAILURE,\n message,\n }),\n};\n\nexport const create = {\n invoke: (projectId, data) => ({\n type: CREATE_PROJECT_ORGANIZATION.INVOKE,\n projectId,\n data,\n }),\n request: () => ({ type: CREATE_PROJECT_ORGANIZATION.REQUEST }),\n success: () => ({ type: CREATE_PROJECT_ORGANIZATION.SUCCESS }),\n failure: (error) => ({\n type: CREATE_PROJECT_ORGANIZATION.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const remove = {\n invoke: (projectId, projectOrganizationId) => ({\n type: REMOVE_PROJECT_ORGANIZATION.INVOKE,\n projectId,\n projectOrganizationId,\n }),\n request: (id) => ({ type: REMOVE_PROJECT_ORGANIZATION.REQUEST, id }),\n success: (id) => ({ type: REMOVE_PROJECT_ORGANIZATION.SUCCESS, id }),\n failure: (id, message) => ({\n type: REMOVE_PROJECT_ORGANIZATION.FAILURE,\n id,\n message,\n }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./projectOrganizationsConstants\";\nimport * as actions from \"./projectOrganizationsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const projectOrganizationsSagas = () => [\n takeEvery(\n consts.OPEN_PROJECT_ORGANIZATIONS_LIST.INVOKE,\n openProjectOrganizationsList,\n ),\n takeEvery(\n consts.OPEN_PROJECT_ORGANIZATION_CREATION.INVOKE,\n openProjectOrganizationCreation,\n ),\n takeEvery(\n consts.CREATE_PROJECT_ORGANIZATION.INVOKE,\n createProjectOrganization,\n ),\n takeEvery(\n consts.REMOVE_PROJECT_ORGANIZATION.INVOKE,\n removeProjectOrganization,\n ),\n];\n\nfunction* openProjectOrganizationsList({ projectId }) {\n yield put(actions.openList.request());\n try {\n yield openProjectOrganizationsModule(projectId);\n\n if (yield select((state) => state.projectOrganizations.listStale)) {\n yield call(getProjectOrganizations, projectId);\n }\n\n yield put(actions.openList.success(projectId));\n } catch (error) {\n yield put(actions.openList.failure(error.message));\n }\n}\n\nfunction* openProjectOrganizationCreation({ projectId }) {\n yield put(actions.openCreation.request());\n try {\n const createData = yield call(\n http.get,\n `/api/projectOrganization/getCreateData?projectId=${projectId}`,\n );\n yield openProjectOrganizationsModule(projectId);\n yield put(actions.openCreation.success(createData.value));\n } catch (error) {\n yield put(actions.openCreation.failure(error.message));\n }\n}\n\nfunction* createProjectOrganization({ projectId, data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n `/api/projectOrganization/create?projectId=${projectId}`,\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(actions.goToList(projectId));\n yield put(\n appActions.showMessage(stringKeys.projectOrganization.create.success),\n );\n } catch (error) {\n yield put(actions.create.failure(error));\n }\n}\n\nfunction* removeProjectOrganization({ projectId, projectOrganizationId }) {\n yield put(actions.remove.request(projectOrganizationId));\n try {\n yield call(\n http.post,\n `/api/projectOrganization/${projectOrganizationId}/delete`,\n );\n yield put(actions.remove.success(projectOrganizationId));\n yield call(getProjectOrganizations, projectId);\n yield put(\n appActions.showMessage(stringKeys.projectOrganization.delete.success),\n );\n } catch (error) {\n yield put(actions.remove.failure(projectOrganizationId, error.message));\n }\n}\n\nfunction* getProjectOrganizations(projectId) {\n yield put(actions.getList.request());\n try {\n const response = yield call(\n http.get,\n `/api/projectOrganization/list?projectId=${projectId}`,\n );\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\nfunction* openProjectOrganizationsModule(projectId) {\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n projectIsClosed: project.value.isClosed,\n allowMultipleOrganizations: project.value.allowMultipleOrganizations,\n }),\n );\n}\n","import { push } from \"connected-react-router\";\nimport {\n OPEN_ALERT_RECIPIENTS_LIST,\n GET_ALERT_RECIPIENTS,\n OPEN_ALERT_RECIPIENT_CREATION,\n CREATE_ALERT_RECIPIENT,\n REMOVE_ALERT_RECIPIENT,\n OPEN_ALERT_RECIPIENT_EDITION,\n EDIT_ALERT_RECIPIENT,\n} from \"./projectAlertRecipientsConstants\";\n\nexport const goToList = (projectId) =>\n push(`/projects/${projectId}/escalatedAlertNotifications`);\nexport const goToCreation = (projectId) =>\n push(`/projects/${projectId}/escalatedAlertNotifications/addRecipient`);\nexport const goToEdition = (projectId, alertRecipientId) =>\n push(\n `/projects/${projectId}/escalatedAlertNotifications/${alertRecipientId}/editRecipient`,\n );\n\nexport const openList = {\n invoke: (projectId) => ({\n type: OPEN_ALERT_RECIPIENTS_LIST.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_ALERT_RECIPIENTS_LIST.REQUEST }),\n success: (projectId) => ({\n type: OPEN_ALERT_RECIPIENTS_LIST.SUCCESS,\n projectId,\n }),\n failure: (message) => ({ type: OPEN_ALERT_RECIPIENTS_LIST.FAILURE, message }),\n};\n\nexport const getList = {\n invoke: (projectId) => ({ type: GET_ALERT_RECIPIENTS.INVOKE, projectId }),\n request: () => ({ type: GET_ALERT_RECIPIENTS.REQUEST }),\n success: (list) => ({ type: GET_ALERT_RECIPIENTS.SUCCESS, list }),\n failure: (message) => ({ type: GET_ALERT_RECIPIENTS.FAILURE, message }),\n};\n\nexport const openCreation = {\n invoke: (projectId) => ({\n type: OPEN_ALERT_RECIPIENT_CREATION.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_ALERT_RECIPIENT_CREATION.REQUEST }),\n success: (formData) => ({\n type: OPEN_ALERT_RECIPIENT_CREATION.SUCCESS,\n formData,\n }),\n failure: (message) => ({\n type: OPEN_ALERT_RECIPIENT_CREATION.FAILURE,\n message,\n }),\n};\n\nexport const openEdition = {\n invoke: (projectId, alertRecipientId) => ({\n type: OPEN_ALERT_RECIPIENT_EDITION.INVOKE,\n projectId,\n alertRecipientId,\n }),\n request: () => ({ type: OPEN_ALERT_RECIPIENT_EDITION.REQUEST }),\n success: (recipient, formData) => ({\n type: OPEN_ALERT_RECIPIENT_EDITION.SUCCESS,\n recipient,\n formData,\n }),\n failure: (message) => ({\n type: OPEN_ALERT_RECIPIENT_EDITION.FAILURE,\n message,\n }),\n};\n\nexport const create = {\n invoke: (projectId, data) => ({\n type: CREATE_ALERT_RECIPIENT.INVOKE,\n projectId,\n data,\n }),\n request: () => ({ type: CREATE_ALERT_RECIPIENT.REQUEST }),\n success: () => ({ type: CREATE_ALERT_RECIPIENT.SUCCESS }),\n failure: (message) => ({\n type: CREATE_ALERT_RECIPIENT.FAILURE,\n message,\n suppressPopup: true,\n }),\n};\n\nexport const edit = {\n invoke: (projectId, data) => ({\n type: EDIT_ALERT_RECIPIENT.INVOKE,\n projectId,\n data,\n }),\n request: () => ({ type: EDIT_ALERT_RECIPIENT.REQUEST }),\n success: () => ({ type: EDIT_ALERT_RECIPIENT.SUCCESS }),\n failure: (message) => ({\n type: EDIT_ALERT_RECIPIENT.FAILURE,\n message,\n suppressPopup: true,\n }),\n};\n\nexport const remove = {\n invoke: (projectId, alertRecipientId) => ({\n type: REMOVE_ALERT_RECIPIENT.INVOKE,\n projectId,\n alertRecipientId,\n }),\n request: (id) => ({ type: REMOVE_ALERT_RECIPIENT.REQUEST, id }),\n success: (id) => ({ type: REMOVE_ALERT_RECIPIENT.SUCCESS, id }),\n failure: (id, message) => ({\n type: REMOVE_ALERT_RECIPIENT.FAILURE,\n id,\n message,\n }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./projectAlertRecipientsConstants\";\nimport * as actions from \"./projectAlertRecipientsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const projectAlertRecipientsSagas = () => [\n takeEvery(\n consts.OPEN_ALERT_RECIPIENTS_LIST.INVOKE,\n openProjectAlertRecipientsList,\n ),\n takeEvery(\n consts.OPEN_ALERT_RECIPIENT_CREATION.INVOKE,\n openAlertRecipientCreation,\n ),\n takeEvery(\n consts.OPEN_ALERT_RECIPIENT_EDITION.INVOKE,\n openAlertRecipientEdition,\n ),\n takeEvery(consts.CREATE_ALERT_RECIPIENT.INVOKE, createAlertRecipient),\n takeEvery(consts.EDIT_ALERT_RECIPIENT.INVOKE, editAlertRecipient),\n takeEvery(consts.REMOVE_ALERT_RECIPIENT.INVOKE, removeAlertRecipient),\n];\n\nfunction* openProjectAlertRecipientsList({ projectId }) {\n yield put(actions.openList.request());\n try {\n yield openProjectAlertRecipientsModule(projectId);\n\n if (yield select((state) => state.projectAlertRecipients.listStale)) {\n yield call(getProjectAlertRecipients, projectId);\n }\n\n yield put(actions.openList.success(projectId));\n } catch (error) {\n yield put(actions.openList.failure(error.message));\n }\n}\n\nfunction* openAlertRecipientCreation({ projectId }) {\n yield put(actions.openCreation.request());\n try {\n yield openProjectAlertRecipientsModule(projectId);\n if (yield select((state) => state.projectAlertRecipients.listStale)) {\n yield call(getProjectAlertRecipients, projectId);\n }\n const formData = yield call(\n http.get,\n `/api/projectAlertRecipient/formData?projectId=${projectId}`,\n );\n yield put(actions.openCreation.success(formData.value));\n } catch (error) {\n yield put(actions.openCreation.failure(error.message));\n }\n}\n\nfunction* createAlertRecipient({ projectId, data }) {\n yield put(actions.create.request());\n try {\n const nationalSocietyId = yield select(\n (state) => state.appData.siteMap.parameters.nationalSocietyId,\n );\n const response = yield call(\n http.post,\n `/api/projectAlertRecipient/create?nationalSocietyId=${nationalSocietyId}&projectId=${projectId}`,\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(actions.goToList(projectId));\n yield put(\n appActions.showMessage(stringKeys.projectAlertRecipient.create.success),\n );\n } catch (error) {\n yield put(actions.create.failure(error.message));\n }\n}\n\nfunction* openAlertRecipientEdition({ alertRecipientId }) {\n yield put(actions.openEdition.request());\n try {\n const projectId = yield select(\n (state) => state.appData.route.params.projectId,\n );\n const recipient = yield call(\n http.get,\n `/api/projectAlertRecipient/${alertRecipientId}/get`,\n );\n yield openProjectAlertRecipientsModule(projectId);\n const formData = yield call(\n http.get,\n `/api/projectAlertRecipient/formData?projectId=${projectId}`,\n );\n yield put(actions.openEdition.success(recipient.value, formData.value));\n } catch (error) {\n yield put(actions.openEdition.failure(error.message));\n }\n}\n\nfunction* editAlertRecipient({ projectId, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/projectAlertRecipient/${data.id}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n yield put(actions.goToList(projectId));\n yield put(\n appActions.showMessage(stringKeys.projectAlertRecipient.edit.success),\n );\n } catch (error) {\n yield put(actions.edit.failure(error.message));\n }\n}\n\nfunction* removeAlertRecipient({ projectId, alertRecipientId }) {\n yield put(actions.remove.request(alertRecipientId));\n try {\n yield call(\n http.post,\n `/api/projectAlertRecipient/${alertRecipientId}/delete`,\n );\n yield put(actions.remove.success(alertRecipientId));\n yield call(getProjectAlertRecipients, projectId);\n yield put(\n appActions.showMessage(stringKeys.projectAlertRecipient.delete.success),\n );\n } catch (error) {\n yield put(actions.remove.failure(alertRecipientId, error.message));\n }\n}\n\nfunction* getProjectAlertRecipients(projectId) {\n yield put(actions.getList.request());\n try {\n const nationalSocietyId = yield select(\n (state) => state.appData.siteMap.parameters.nationalSocietyId,\n );\n const response = yield call(\n http.get,\n `/api/projectAlertRecipient/list?nationalSocietyId=${nationalSocietyId}&projectId=${projectId}`,\n );\n yield put(actions.getList.success(response.value));\n } catch (error) {\n yield put(actions.getList.failure(error.message));\n }\n}\n\nfunction* openProjectAlertRecipientsModule(projectId) {\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n projectIsClosed: project.value.isClosed,\n allowMultipleOrganizations: project.value.allowMultipleOrganizations,\n }),\n );\n}\n","import {\n CREATE_ALERT_NOT_HANDLED_RECIPIENT,\n EDIT_ALERT_NOT_HANDLED_RECIPIENT,\n REMOVE_ALERT_NOT_HANDLED_RECIPIENT,\n GET_ALERT_NOT_HANDLED_FORM_DATA,\n GET_ALERT_NOT_HANDLED_RECIPIENTS,\n OPEN_ALERT_NOT_HANDLED_RECIPIENTS,\n} from \"./projectAlertNotHandledRecipientsConstants\";\n\nexport const openRecipients = {\n invoke: (projectId) => ({\n type: OPEN_ALERT_NOT_HANDLED_RECIPIENTS.INVOKE,\n projectId,\n }),\n request: () => ({ type: OPEN_ALERT_NOT_HANDLED_RECIPIENTS.REQUEST }),\n success: (projectId) => ({\n type: OPEN_ALERT_NOT_HANDLED_RECIPIENTS.SUCCESS,\n projectId,\n }),\n failure: (message) => ({\n type: OPEN_ALERT_NOT_HANDLED_RECIPIENTS.FAILURE,\n message,\n }),\n};\n\nexport const getRecipients = {\n invoke: (projectId) => ({\n type: GET_ALERT_NOT_HANDLED_RECIPIENTS.INVOKE,\n projectId,\n }),\n request: () => ({ type: GET_ALERT_NOT_HANDLED_RECIPIENTS.REQUEST }),\n success: (recipients) => ({\n type: GET_ALERT_NOT_HANDLED_RECIPIENTS.SUCCESS,\n recipients,\n }),\n failure: (message) => ({\n type: GET_ALERT_NOT_HANDLED_RECIPIENTS.FAILURE,\n message,\n }),\n};\n\nexport const create = {\n invoke: (projectId, data) => ({\n type: CREATE_ALERT_NOT_HANDLED_RECIPIENT.INVOKE,\n projectId,\n data,\n }),\n request: () => ({ type: CREATE_ALERT_NOT_HANDLED_RECIPIENT.REQUEST }),\n success: () => ({ type: CREATE_ALERT_NOT_HANDLED_RECIPIENT.SUCCESS }),\n failure: (message) => ({\n type: CREATE_ALERT_NOT_HANDLED_RECIPIENT.FAILURE,\n message,\n }),\n};\n\nexport const edit = {\n invoke: (projectId, data) => ({\n type: EDIT_ALERT_NOT_HANDLED_RECIPIENT.INVOKE,\n projectId,\n data,\n }),\n request: () => ({ type: EDIT_ALERT_NOT_HANDLED_RECIPIENT.REQUEST }),\n success: () => ({ type: EDIT_ALERT_NOT_HANDLED_RECIPIENT.SUCCESS }),\n failure: (message) => ({\n type: EDIT_ALERT_NOT_HANDLED_RECIPIENT.FAILURE,\n message,\n }),\n};\n\nexport const remove = {\n invoke: (projectId, data) => ({\n type: REMOVE_ALERT_NOT_HANDLED_RECIPIENT.INVOKE,\n projectId,\n data,\n }),\n request: () => ({ type: REMOVE_ALERT_NOT_HANDLED_RECIPIENT.REQUEST }),\n success: () => ({ type: REMOVE_ALERT_NOT_HANDLED_RECIPIENT.SUCCESS }),\n failure: (message) => ({\n type: REMOVE_ALERT_NOT_HANDLED_RECIPIENT.FAILURE,\n message,\n }),\n};\n\nexport const getFormData = {\n invoke: (projectId) => ({\n type: GET_ALERT_NOT_HANDLED_FORM_DATA.INVOKE,\n projectId,\n }),\n request: () => ({ type: GET_ALERT_NOT_HANDLED_FORM_DATA.REQUEST }),\n success: (users) => ({\n type: GET_ALERT_NOT_HANDLED_FORM_DATA.SUCCESS,\n users,\n }),\n failure: (message) => ({\n type: GET_ALERT_NOT_HANDLED_FORM_DATA.FAILURE,\n message,\n }),\n};\n","import { call, put, takeEvery } from \"redux-saga/effects\";\nimport * as consts from \"./projectAlertNotHandledRecipientsConstants\";\nimport * as actions from \"./projectAlertNotHandledRecipientsActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { entityTypes } from \"../../nationalSocieties/logic/nationalSocietiesConstants\";\n\nexport const projectAlertNotHandledRecipientsSagas = () => [\n takeEvery(\n consts.OPEN_ALERT_NOT_HANDLED_RECIPIENTS.INVOKE,\n openProjectAlertNotHandledRecipients,\n ),\n takeEvery(\n consts.CREATE_ALERT_NOT_HANDLED_RECIPIENT.INVOKE,\n createAlertNotHandledRecipient,\n ),\n takeEvery(\n consts.EDIT_ALERT_NOT_HANDLED_RECIPIENT.INVOKE,\n editAlertNotHandledRecipient,\n ),\n takeEvery(\n consts.REMOVE_ALERT_NOT_HANDLED_RECIPIENT.INVOKE,\n removeAlertNotHandledRecipient,\n ),\n takeEvery(\n consts.GET_ALERT_NOT_HANDLED_FORM_DATA.INVOKE,\n getProjectAlertNotHandledRecipientsFormData,\n ),\n];\n\nfunction* openProjectAlertNotHandledRecipients({ projectId }) {\n yield put(actions.openRecipients.request());\n try {\n yield getProjectAlertNotHandledRecipients(projectId);\n\n yield put(actions.openRecipients.success(projectId));\n } catch (error) {\n yield put(actions.openRecipients.failure(error.message));\n }\n}\n\nfunction* createAlertNotHandledRecipient({ projectId, data }) {\n yield put(actions.create.request());\n try {\n const response = yield call(\n http.post,\n `/api/projectAlertNotHandledRecipient/create?projectId=${projectId}`,\n data,\n );\n yield put(actions.create.success(response.value));\n yield put(appActions.showMessage(response.message.key));\n yield call(getProjectAlertNotHandledRecipients, projectId);\n } catch (error) {\n yield put(actions.create.failure(error.message));\n }\n}\n\nfunction* editAlertNotHandledRecipient({ projectId, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/projectAlertNotHandledRecipient/edit?projectId=${projectId}`,\n { recipients: data },\n );\n yield put(actions.edit.success(response.value));\n yield put(appActions.showMessage(response.message.key));\n yield call(getProjectAlertNotHandledRecipients, projectId);\n } catch (error) {\n yield put(actions.edit.failure(error.message));\n }\n}\n\nfunction* removeAlertNotHandledRecipient({ projectId, data }) {\n yield put(actions.remove.request());\n try {\n const response = yield call(\n http.post,\n `/api/projectAlertNotHandledRecipient/delete?projectId=${projectId}`,\n data,\n );\n yield put(actions.remove.success(response.value));\n yield put(appActions.showMessage(response.message.key));\n yield call(getProjectAlertNotHandledRecipients, projectId);\n } catch (error) {\n yield put(actions.remove.failure(error.message));\n }\n}\n\nfunction* getProjectAlertNotHandledRecipients(projectId) {\n yield put(actions.getRecipients.request());\n try {\n const response = yield call(\n http.get,\n `/api/projectAlertNotHandledRecipient/list?projectId=${projectId}`,\n );\n yield put(actions.getRecipients.success(response.value));\n\n const project = yield call(http.getCached, {\n path: `/api/project/${projectId}/basicData`,\n dependencies: [entityTypes.project(projectId)],\n });\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: project.value.nationalSociety.id,\n nationalSocietyName: project.value.nationalSociety.name,\n nationalSocietyCountry: project.value.nationalSociety.countryName,\n projectId: project.value.id,\n projectName: project.value.name,\n projectIsClosed: project.value.isClosed,\n allowMultipleOrganizations: project.value.allowMultipleOrganizations,\n }),\n );\n } catch (error) {\n yield put(actions.getRecipients.failure(error.message));\n }\n}\n\nfunction* getProjectAlertNotHandledRecipientsFormData({ projectId }) {\n yield put(actions.getFormData.request());\n try {\n const response = yield call(\n http.get,\n `/api/projectAlertNotHandledRecipient/formData?projectId=${projectId}`,\n );\n yield put(actions.getFormData.success(response.value));\n } catch (error) {\n yield put(actions.getFormData.failure(error.message));\n }\n}\n","import { push } from \"connected-react-router\";\nimport {\n GET_EIDSR_INTEGRATION,\n EDIT_EIDSR_INTEGRATION,\n GET_EIDSR_ORGANISATION_UNITS,\n GET_EIDSR_PROGRAM,\n} from \"./eidsrIntegrationConstants\";\n\nexport const goToEidsrIntegration = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/eidsrintegration`);\nexport const goToEidsrIntegrationEdition = (nationalSocietyId) =>\n push(`/nationalsocieties/${nationalSocietyId}/eidsrintegration/edit`);\n\nexport const get = {\n invoke: (nationalSocietyId) => ({\n type: GET_EIDSR_INTEGRATION.INVOKE,\n nationalSocietyId,\n }),\n request: () => ({ type: GET_EIDSR_INTEGRATION.REQUEST }),\n success: (data) => ({ type: GET_EIDSR_INTEGRATION.SUCCESS, data }),\n failure: (message) => ({ type: GET_EIDSR_INTEGRATION.FAILURE, message }),\n};\n\nexport const edit = {\n invoke: (id, data) => ({ type: EDIT_EIDSR_INTEGRATION.INVOKE, id, data }),\n request: () => ({ type: EDIT_EIDSR_INTEGRATION.REQUEST }),\n success: () => ({ type: EDIT_EIDSR_INTEGRATION.SUCCESS }),\n failure: (error) => ({\n type: EDIT_EIDSR_INTEGRATION.FAILURE,\n error,\n suppressPopup: true,\n }),\n};\n\nexport const getOrganisationUnits = {\n invoke: (eidsrApiProperties, programId) => ({\n type: GET_EIDSR_ORGANISATION_UNITS.INVOKE,\n eidsrApiProperties,\n programId,\n }),\n request: () => ({ type: GET_EIDSR_ORGANISATION_UNITS.REQUEST }),\n success: (organisationUnits) => ({\n type: GET_EIDSR_ORGANISATION_UNITS.SUCCESS,\n organisationUnits,\n }),\n failure: (message) => ({\n type: GET_EIDSR_ORGANISATION_UNITS.FAILURE,\n message,\n }),\n};\n\nexport const getProgram = {\n invoke: (eidsrApiProperties, programId) => ({\n type: GET_EIDSR_PROGRAM.INVOKE,\n eidsrApiProperties,\n programId,\n }),\n request: () => ({ type: GET_EIDSR_PROGRAM.REQUEST }),\n success: (program) => ({ type: GET_EIDSR_PROGRAM.SUCCESS, program }),\n failure: (message) => ({ type: GET_EIDSR_PROGRAM.FAILURE, message }),\n};\n","import { call, put, takeEvery, select } from \"redux-saga/effects\";\nimport * as consts from \"./eidsrIntegrationConstants\";\nimport * as actions from \"./eidsrIntegrationActions\";\nimport * as appActions from \"../../app/logic/appActions\";\nimport * as http from \"../../../utils/http\";\nimport { push } from \"connected-react-router\";\nimport { stringKeys } from \"../../../strings\";\n\nexport const eidsrIntegrationSagas = () => [\n takeEvery(consts.GET_EIDSR_INTEGRATION.INVOKE, getEidsrIntegration),\n takeEvery(consts.EDIT_EIDSR_INTEGRATION.INVOKE, editEidsrIntegration),\n takeEvery(\n consts.GET_EIDSR_ORGANISATION_UNITS.INVOKE,\n getEidsrOrganisationUnits,\n ),\n takeEvery(consts.GET_EIDSR_PROGRAM.INVOKE, getEidsrProgram),\n];\n\nfunction* getEidsrIntegration({ nationalSocietyId }) {\n yield put(actions.get.request());\n try {\n yield getNationalSocietyBaseInfo(nationalSocietyId);\n const eidsrConfigurationResponse = yield call(\n http.get,\n `/api/eidsrconfiguration/${nationalSocietyId}/get`,\n );\n yield put(actions.get.success(eidsrConfigurationResponse.value));\n } catch (error) {\n yield put(actions.get.failure(error.message));\n }\n}\n\nfunction* editEidsrIntegration({ id, data }) {\n yield put(actions.edit.request());\n try {\n const response = yield call(\n http.post,\n `/api/eidsrconfiguration/${id}/edit`,\n data,\n );\n yield put(actions.edit.success(response.value));\n\n yield put(push(`/nationalsocieties/${id}/eidsrintegration`));\n yield put(appActions.showMessage(stringKeys.eidsrIntegration.edit.success));\n } catch (error) {\n yield put(actions.edit.failure(error));\n }\n}\n\n// gets national society data to feed breadcrumb\nfunction* getNationalSocietyBaseInfo(nationalSocietyId) {\n const nationalSociety = yield call(\n http.get,\n `/api/nationalSociety/${nationalSocietyId}/get`,\n );\n\n yield put(\n appActions.openModule.invoke(null, {\n nationalSocietyId: nationalSociety.value.id,\n nationalSocietyName: nationalSociety.value.name,\n nationalSocietyCountry: nationalSociety.value.countryName,\n nationalSocietyIsArchived: nationalSociety.value.isArchived,\n nationalSocietyHasCoordinator: nationalSociety.value.hasCoordinator,\n nationalSocietyEnableEidsrIntegration:\n nationalSociety.value.enableEidsrIntegration,\n }),\n );\n}\n\nfunction* getEidsrOrganisationUnits({ eidsrApiProperties, programId }) {\n yield put(actions.getOrganisationUnits.request());\n try {\n const eidsrConfigurationResponse = yield call(\n http.post,\n \"/api/eidsr/organisationUnits\",\n { eidsrApiProperties, programId },\n );\n yield put(\n actions.getOrganisationUnits.success(\n eidsrConfigurationResponse.value.organisationUnits,\n ),\n );\n } catch (error) {\n yield put(actions.getOrganisationUnits.failure(error.message));\n }\n}\n\nfunction* getEidsrProgram({ eidsrApiProperties, programId }) {\n yield put(actions.getProgram.request());\n try {\n const programResponse = yield call(http.post, \"/api/eidsr/program\", {\n eidsrApiProperties,\n programId,\n });\n yield put(actions.getProgram.success(programResponse.value));\n } catch (error) {\n yield put(actions.getProgram.failure(error.message));\n }\n}\n","import { all } from \"redux-saga/effects\";\nimport { autoRestart } from \"../utils/sagaEffects\";\nimport { appSagas } from \"../components/app/logic/appSagas\";\nimport { authSagas } from \"../authentication/authSagas\";\nimport { nationalSocietiesSagas } from \"../components/nationalSocieties/logic/nationalSocietiesSagas\";\nimport { smsGatewaysSagas } from \"../components/smsGateways/logic/smsGatewaysSagas\";\nimport { projectsSagas } from \"../components/projects/logic/projectsSagas\";\nimport { projectSetupSagas } from \"../components/projectSetup/logic/projectSetupSagas\";\nimport { globalCoordinatorsSagas } from \"../components/globalCoordinators/logic/globalCoordinatorsSagas\";\nimport { healthRisksSagas } from \"../components/healthRisks/logic/healthRisksSagas\";\nimport { suspectedDiseaseSagas } from \"../components/suspectedDiseases/logic/suspectedDiseaseSagas\";\nimport { nationalSocietyUsersSagas } from \"../components/nationalSocietyUsers/logic/nationalSocietyUsersSagas\";\nimport { dataCollectorsSagas } from \"../components/dataCollectors/logic/dataCollectorsSagas\";\nimport { agreementsSagas } from \"../components/agreements/logic/agreementsSagas\";\nimport { reportsSagas } from \"../components/reports/logic/reportsSagas\";\nimport { nationalSocietyReportsSagas } from \"../components/nationalSocietyReports/logic/nationalSocietyReportsSagas\";\nimport { nationalSocietyStructureSagas } from \"../components/nationalSocietyStructure/logic/nationalSocietyStructureSagas\";\nimport { projectDashboardSagas } from \"../components/projectDashboard/logic/projectDashboardSagas\";\nimport { alertsSagas } from \"../components/alerts/logic/alertsSagas\";\nimport { alertEventsSagas } from \"../components/alertEvents/logic/alertEventsSagas\";\nimport { nationalSocietyDashboardSagas } from \"../components/nationalSocietyDashboard/logic/nationalSocietyDashboardSagas\";\nimport { translationsSagas } from \"../components/translations/logic/translationsSagas\";\nimport { organizationsSagas } from \"../components/organizations/logic/organizationsSagas\";\nimport { projectOrganizationsSagas } from \"../components/projectOrganizations/logic/projectOrganizationsSagas\";\nimport { projectAlertRecipientsSagas } from \"../components/projectAlertRecipients/logic/projectAlertRecipientsSagas\";\nimport { projectAlertNotHandledRecipientsSagas } from \"../components/projectAlertNotHandledRecipient/logic/projectAlertNotHandledRecipientsSagas\";\nimport { trackingSagas } from \"../utils/tracking\";\nimport { eidsrIntegrationSagas } from \"../components/eidsrIntegration/logic/eidsrIntegrationSagas\";\n\nfunction* rootSaga() {\n yield all([\n ...appSagas(),\n ...authSagas(),\n ...nationalSocietiesSagas(),\n ...nationalSocietyStructureSagas(),\n ...smsGatewaysSagas(),\n ...eidsrIntegrationSagas(),\n ...organizationsSagas(),\n ...projectsSagas(),\n ...projectSetupSagas(),\n ...projectDashboardSagas(),\n ...projectOrganizationsSagas(),\n ...projectAlertRecipientsSagas(),\n ...globalCoordinatorsSagas(),\n ...healthRisksSagas(),\n ...suspectedDiseaseSagas(),\n ...nationalSocietyUsersSagas(),\n ...dataCollectorsSagas(),\n ...agreementsSagas(),\n ...reportsSagas(),\n ...nationalSocietyReportsSagas(),\n ...nationalSocietyDashboardSagas(),\n ...alertsSagas(),\n ...alertEventsSagas(),\n ...translationsSagas(),\n ...projectAlertNotHandledRecipientsSagas(),\n ...trackingSagas(),\n ]);\n}\n\nexport const getRootSaga = () => autoRestart(rootSaga);\n","import { call } from \"redux-saga/effects\";\n\nexport const autoRestart = (generator) => {\n return function* autoRestarting(...args) {\n while (true) {\n try {\n yield call(generator, ...args);\n } catch (e) {\n console.error(`Unhandled error in '${generator.name}'`, e);\n }\n }\n };\n};\n","import { createBrowserHistory } from \"history\";\n\nexport default createBrowserHistory();\n","import { configureStore } from \"./redux/configureStore\";\nimport { initialState } from \"./initialState\";\nimport history from \"./history\";\n\nexport default configureStore(history, initialState);\n","import \"regenerator-runtime/runtime\";\nimport { createStore, compose, applyMiddleware } from \"redux\";\nimport { createRootReducer } from \"./reducers\";\nimport thunk from \"redux-thunk\";\nimport createSagaMiddleware from \"redux-saga\";\nimport { getRootSaga } from \"./sagas\";\nimport { routerMiddleware } from \"connected-react-router\";\n\nexport const configureStore = (history, initialState) => {\n const composeEnhancers =\n process.env.NODE_ENV === \"production\"\n ? compose\n : window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\n const sagaMiddleware = createSagaMiddleware();\n const store = createStore(\n createRootReducer(history),\n initialState,\n composeEnhancers(\n applyMiddleware(routerMiddleware(history), thunk, sagaMiddleware),\n ),\n );\n\n sagaMiddleware.run(getRootSaga());\n\n if (module.hot) {\n module.hot.accept(\"./reducers\", () => {\n const reducers = require(\"./reducers\");\n store.replaceReducer(reducers.createRootReducer(history));\n });\n }\n\n return store;\n};\n","import { getAppInsights } from \"../components/app/ApplicationInsightsProvider\";\nimport store from \"../store\";\nimport { deviceType } from \"react-device-detect\";\n\nexport const trackPageView = (name, properties) => {\n const appData = store.getState().appData;\n const userRole = appData?.user?.roles[0];\n const nationalSocietyName = appData?.siteMap?.parameters?.nationalSocietyName;\n const projectName = appData?.siteMap?.parameters?.projectName;\n\n const appInsights = getAppInsights();\n appInsights?.trackPageView({\n name,\n properties: {\n userRole,\n deviceType,\n nationalSocietyName,\n projectName,\n ...properties,\n },\n });\n};\n\nexport const trackEvent = (name, properties) => {\n const appData = store.getState().appData;\n const userRole = appData?.user?.roles[0];\n const nationalSocietyName = appData?.siteMap?.parameters?.nationalSocietyName;\n const projectName = appData?.siteMap?.parameters?.projectName;\n\n const appInsights = getAppInsights();\n appInsights?.trackEvent({\n name,\n properties: {\n userRole,\n deviceType,\n nationalSocietyName,\n projectName,\n ...properties,\n },\n });\n};\n","import { useSelector } from \"react-redux\";\nimport { useState, useEffect } from \"react\";\nimport { trackEvent } from \"./appInsightsHelper\";\n\n// This code is used to track if a user is scrolling in either the project or NS dashboard.\nconst useDashboardScrollingTracking = () => {\n const [inDashboardPage, setInDashboardPage] = useState(false);\n const [hasScrolledInDashboard, setHasScrolledInDashboard] = useState(false);\n const pageTitle = useSelector(\n (state) => state.appData.siteMap.title,\n );\n const [scrollTop, setScrollTop] = useState(0);\n const hasScrolledThreshold = 150;\n\n useEffect(() => {\n if (pageTitle === \"Dashboard\") {\n !inDashboardPage && setInDashboardPage(true);\n } else {\n inDashboardPage && setInDashboardPage(false);\n hasScrolledInDashboard && setHasScrolledInDashboard(false);\n }\n }, [pageTitle]);\n\n useEffect(() => {\n if (inDashboardPage && scrollTop > hasScrolledThreshold && !hasScrolledInDashboard) {\n trackEvent(\"hasScrolledInDashboard\");\n setHasScrolledInDashboard(true);\n }\n }, [scrollTop]);\n \n \n // Uses inDashboardPage and hasScrolledInDashboard state to not unneccesarrily store scrolling data.\n const handleScroll = (event) => {\n if(inDashboardPage && !hasScrolledInDashboard){\n setScrollTop(event.target.scrollTop);\n }\n }\n\n return handleScroll;\n}\n\nexport default useDashboardScrollingTracking;","import React, { useState, useRef } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { push } from \"connected-react-router\";\n\nimport { Button, Typography, makeStyles } from \"@material-ui/core\";\n\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport Popper from \"@material-ui/core/Popper\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport MenuList from \"@material-ui/core/MenuList\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport ExpandLessIcon from \"@material-ui/icons/ExpandLess\";\n\nexport const TabDropdownComponent = ({ projectTabMenuPage, onItemClick }) => {\n const [open, setOpen] = useState(false);\n const anchorRef = useRef(null);\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n // If the page has only 1 submenu item, then we want to display the submenu as the page\n // Used to display healthRisks instead of settings for Supervisors\n const page =\n projectTabMenuPage.subMenu?.length === 1\n ? projectTabMenuPage.subMenu[0]\n : projectTabMenuPage;\n\n const useStyles = makeStyles((theme) => ({\n container: {\n position: \"relative\",\n backgroundColor: \"inherit\",\n border: open ? \"1px solid #E3E3E3\" : \"1px solid transparent\",\n borderRadius: \"10px 10px 0px 0px\",\n },\n tab: {\n borderBottom: page.isActive\n ? `3px solid ${theme.palette.primary.main}`\n : \"3px solid transparent\",\n padding: \"8px 28px 8px 28px\",\n },\n buttonRoot: {\n borderRadius: \"10px 10px 0px 0px\",\n },\n popper: {\n marginLeft: 1,\n width: anchorRef?.current?.offsetWidth,\n backgroundColor: \"inherit\",\n zIndex: 1002,\n border: open ? \"1px solid #E3E3E3\" : \"none\",\n borderTop: \"none\",\n borderBottomLeftRadius: 10,\n borderBottomRightRadius: 10,\n },\n menuList: {\n padding: 0,\n width: \"100%\",\n backgroundColor: \"inherit\",\n borderRadius: \"0px 0px 10px 10px\",\n },\n menuItem: {\n display: \"flex\",\n whiteSpace: \"normal\",\n padding: 10,\n },\n menuItemActive: {\n backgroundColor: \"#E3E3E3\",\n },\n lastMenuItem: {\n borderBottomLeftRadius: 10,\n borderBottomRightRadius: 10,\n },\n }));\n\n const styles = useStyles();\n\n const handleToggle = () => {\n if (!open && page.subMenu?.length > 1) {\n setOpen(true);\n } else if (open && page.subMenu?.length > 1) {\n setOpen(false);\n } else {\n onItemClick(page);\n }\n };\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return;\n }\n setOpen(false);\n };\n\n const handleListKeyDown = (event) => {\n if (event.key === \"Tab\") {\n event.preventDefault();\n setOpen(false);\n }\n };\n\n const handleMenuItemClick = (menuItem) => {\n onItemClick(menuItem);\n };\n\n return (\n setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n >\n \n \n {page.title}\n \n {page.subMenu?.length > 1 ? (\n open ? (\n \n ) : (\n \n )\n ) : null}\n \n {/* No need to display the dropdown if it only has 1 menuitem */}\n {page.subMenu?.length > 1 && (\n \n \n \n {page.subMenu?.map((menuItem, index) => (\n handleMenuItemClick(menuItem)}\n >\n \n {menuItem.title}\n \n \n ))}\n \n \n \n )}\n \n );\n};\n\nconst mapDispatchToProps = {\n push: push,\n};\n\nexport const TabDropdown = connect(\n undefined,\n mapDispatchToProps,\n)(TabDropdownComponent);\n","import { Grid } from \"@material-ui/core\";\nimport { TabDropdown } from \"./TabDropdown\";\nimport { push } from \"connected-react-router\";\nimport { connect } from \"react-redux\";\n\nconst ProjectMenuComponent = ({ projectTabMenu, push }) => {\n const onItemClick = (item) => {\n push(item.url);\n };\n\n /* Only display project menu for all users other than data consumer since the role only has acces to project dashboard */\n return (\n projectTabMenu.length > 1 && (\n \n {projectTabMenu.map((item) => (\n \n \n \n ))}\n \n )\n );\n};\n\nconst mapStateToProps = (state) => ({\n projectTabMenu: state.appData.siteMap.projectTabMenu,\n});\n\nconst mapDispatchToProps = {\n push: push,\n};\n\nexport const ProjectMenu = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(ProjectMenuComponent);\n","import styles from \"./TabMenu.module.scss\";\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { push } from \"connected-react-router\";\nimport { Tabs, Tab, Grid, Typography } from \"@material-ui/core\";\n\nconst TabMenuComponent = ({ tabMenu, push, currentUrl }) => {\n const onItemClick = (item) => {\n push(item.url);\n };\n\n // http addresses are case insensitive so compare to-lower versions\n const showTabMenu = tabMenu.some(\n (t) => t.url.toLowerCase() === currentUrl.toLowerCase(),\n );\n return (\n \n {showTabMenu && (\n t.isActive))}\n className={styles.tabs}\n scrollButtons=\"auto\"\n indicatorColor=\"primary\"\n variant=\"scrollable\"\n >\n {tabMenu.map((item) => (\n {item.title}}\n onClick={item.isActive ? () => null : () => onItemClick(item)}\n style={{ textTransform: \"none\" }}\n\n />\n ))}\n \n )}\n \n );\n};\n\nTabMenuComponent.propTypes = {\n appReady: PropTypes.bool,\n tabMenu: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n tabMenu: state.appData.siteMap.tabMenu,\n currentUrl: state.appData.route.url,\n});\n\nconst mapDispatchToProps = {\n push: push,\n};\n\nexport const TabMenu = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(TabMenuComponent);\n","import React, { useEffect, useState } from \"react\";\nimport {\n makeStyles,\n BottomNavigation,\n BottomNavigationAction,\n Drawer,\n List,\n ListItem,\n ListItemText,\n Typography,\n} from \"@material-ui/core\";\nimport { connect } from \"react-redux\";\nimport { push } from \"connected-react-router\";\nimport { RcIcon } from \"../icons/RcIcon\";\n\nconst mapStateToProps = (state) => ({\n projectTabMenu: state.appData.siteMap.projectTabMenu,\n tabMenu: state.appData.siteMap.tabMenu,\n currentUrl: state.appData.route.url,\n});\n\nconst mapDispatchToProps = {\n push: push,\n};\n\nconst useStyles = makeStyles((theme) => ({\n bottomNav: {\n height: 70,\n zIndex: 1001,\n position: \"fixed\",\n backgroundColor: theme.palette.backgroundDark.main,\n bottom: 0,\n width: \"100%\",\n },\n bottomNavDrawer: {\n height: 70,\n backgroundColor: theme.palette.backgroundDark.main,\n },\n bottomNavActionSelected: {\n color: theme.palette.primary.main,\n whiteSpace: \"normal\",\n },\n bottomNavItem: {\n minWidth: 50,\n whiteSpace: \"nowrap\",\n color: theme.palette.text.secondary,\n },\n listItem: {\n borderBottom: `1px solid ${theme.palette.grey[400]}`,\n },\n listItemActive: {\n backgroundColor: theme.palette.primary.light,\n },\n listItemTextActive: {\n fontWeight: 600,\n },\n drawer: {\n flexShrink: 0,\n transition: \"height 0.3s ease\",\n },\n drawerPaper: {\n height: (props) => props.drawerHeight,\n maxHeight: 450,\n },\n}));\n\nconst BottomMenuNavigationComponent = ({\n value,\n handleChange,\n toggleDrawer,\n className,\n projectTabMenu,\n onItemClick,\n}) => {\n const classes = useStyles();\n\n const getPage = (page) => {\n return page.subMenu?.length === 1 ? page.subMenu[0] : page;\n };\n\n const onMenuClick = (page) => {\n // Opens drawer if there are sub menu options\n if (page.subMenu?.length > 1) {\n toggleDrawer(true, page.subMenu);\n }\n // Closes the drawer if the pressed menu option is already active\n else if (page.isActive) {\n toggleDrawer(false, []);\n }\n // Forwards the user to the selected menu option\n else {\n onItemClick(page);\n }\n };\n return (\n \n {projectTabMenu.length > 1 &&\n projectTabMenu.map((item) => {\n const page = getPage(item);\n return (\n onMenuClick(page)}\n icon={}\n />\n );\n })}\n \n );\n};\nexport const BottomMenuNavigation = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(BottomMenuNavigationComponent);\n\nexport const BottomMenuComponent = ({ projectTabMenu, push }) => {\n const [value, setValue] = React.useState(null);\n const [isOpen, setIsOpen] = React.useState(false);\n const [options, setOptions] = useState([]);\n\n // These numbers are used to set the height of the drawer to get the animation to work when it slides back down.\n // It needs a set height to get the transition to work.\n // Therefore the numbers are 73px for each sub-menu items and 70px for the navigation minus 1px since the border bottom of the last submenu item is removed.\n const classes = useStyles({ drawerHeight: options.length * 73 + 69 });\n const setTitle = () => {\n const activeMenuItem = projectTabMenu.find((menuItem) => menuItem.isActive);\n const activeSubMenuItem = activeMenuItem?.subMenu?.find(\n (subMenuItem) => subMenuItem.isActive,\n );\n setValue(\n activeSubMenuItem && activeMenuItem?.subMenu?.length === 1\n ? activeSubMenuItem?.title\n : activeMenuItem?.title,\n );\n };\n\n useEffect(() => {\n setTitle();\n }, [projectTabMenu]);\n\n const onItemClick = (item) => {\n push(item.url);\n };\n\n const toggleDrawer = (open, drawerOptions) => {\n setIsOpen(open);\n setOptions(drawerOptions);\n if (!open) {\n setTitle();\n }\n };\n\n const handleChange = (_, newValue) => {\n setValue(newValue);\n };\n\n // Don't display if it only has one item\n if (!value || projectTabMenu.length === 1) return null;\n\n return (\n <>\n \n toggleDrawer(false, [])}\n >\n \n toggleDrawer(false, [])}\n onKeyDown={() => toggleDrawer(false, [])}\n >\n \n {options.map((option, index) => (\n onItemClick(option)}\n >\n \n {option.title}\n \n }\n />\n \n ))}\n \n \n \n \n );\n};\n\nexport const BottomMenu = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(BottomMenuComponent);\n","import React from \"react\";\nimport { Header } from \"./Header\";\nimport { SideMenu } from \"./SideMenu\";\nimport { BaseLayout } from \"./BaseLayout\";\nimport styles from \"./Layout.module.scss\";\nimport { MessagePopup } from \"./MessagePopup\";\nimport { Typography, makeStyles, useMediaQuery, useTheme,Grid } from \"@material-ui/core\";\nimport { useSelector } from \"react-redux\";\nimport useDashboardScrollingTracking from \"../../utils/useDashboardScrollingTracking\";\nimport { ProjectMenu } from \"./ProjectMenu\";\nimport { TabMenu } from \"./TabMenu\";\nimport { BottomMenu } from \"./BottomMenu\";\n\nconst pageContentId = \"pageContent\";\n\nexport const resetPageContentScroll = () => {\n const element = document.getElementById(pageContentId);\n element && element.scrollTo(0, 0);\n};\n\nconst useStyles = makeStyles((theme) => ({\n mainHeader: {\n textAlign: \"center\",\n margin: 10\n },\n secondaryHeader: {\n textAlign: \"center\",\n color: theme.palette.text.secondary\n },\n projectView: {\n paddingBottom: 75\n }\n}));\n\nconst Layout = ({ fillPage, children }) => {\n const classes = useStyles();\n const handleScroll = useDashboardScrollingTracking();\n const theme = useTheme()\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n const nationalSocietyName = useSelector(\n (state) => state.appData.siteMap.parameters.nationalSocietyName,\n );\n const projectName = useSelector(\n (state) => state.appData.siteMap.parameters.projectName,\n );\n\n const projectMenu = useSelector(\n (state) => state.appData.siteMap.projectTabMenu\n );\n\n const isInProjectView = projectMenu.length > 0;\n\n const title = useSelector(\n (state) => state.appData.siteMap.parameters.title,\n );\n const subTitle = useSelector(\n (state) => state.appData.siteMap.parameters.subTitle,\n );\n\n return (\n \n \n
\n
\n \n \n
\n {nationalSocietyName && !projectName && (\n \n {nationalSocietyName}\n \n )}\n {projectName && (\n \n \n {nationalSocietyName}\n \n \n {projectName}\n \n \n )}\n {!isSmallScreen && }\n {/* Display tabmenu for all pages except alert assesment page */}\n {(!title && !subTitle) && }\n {children}\n
\n
\n \n \n {isSmallScreen && }\n \n
\n );\n};\n\nexport default Layout;\n","import React from \"react\";\n\nexport const withLayout = (Layout, Component, fillPage) => (props) => (\n \n \n \n);\n","import React, { useEffect } from \"react\";\nimport Layout from \"../layout/Layout\";\nimport { withLayout } from \"../../utils/layout\";\nimport { Typography } from \"@material-ui/core\";\nimport { push } from \"connected-react-router\";\nimport { connect } from \"react-redux\";\n\nconst HomeComponent = ({ user, push }) => {\n useEffect(() => {\n if (!user.homePage) {\n return;\n }\n push(getHomePageUrl(user));\n }, [user, push]);\n\n return (\n
\n Dashboard\n
\n );\n};\n\nconst getHomePageUrl = (user) => {\n switch (user.homePage.page) {\n case \"Root\":\n return \"/nationalsocieties\";\n case \"NationalSociety\":\n return `/nationalSocieties/${user.homePage.nationalSocietyId}`;\n case \"Project\":\n return `/nationalsocieties/${user.homePage.nationalSocietyId}/projects/${user.homePage.projectId}`;\n case \"ProjectList\":\n return `/nationalSocieties/${user.homePage.nationalSocietyId}/projects`;\n default:\n return \"/\";\n }\n};\n\nconst mapStateToProps = (state) => ({\n user: state.appData.user,\n});\n\nconst mapDispatchToProps = {\n push: push,\n};\n\nexport const Home = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(HomeComponent),\n);\n","import React from \"react\";\nimport { BaseLayout } from \"./BaseLayout\";\n\nimport styles from \"./AnonymousLayout.module.scss\";\nimport { MessagePopup } from \"./MessagePopup\";\n\nexport const AnonymousLayout = ({ children }) => {\n return (\n \n
\n
{children}
\n
\n \n
\n );\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createFieldComponent } from \"./FieldBase\";\nimport { TextField, IconButton, InputAdornment } from \"@material-ui/core\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\n\nconst PasswordInput = ({ error, name, label, value, controlProps }) => {\n const [values, setValues] = React.useState({\n showPassword: false,\n });\n\n const togglePassword = () => {\n setValues({ ...values, showPassword: !values.showPassword });\n };\n\n const showPasswordComponent = (\n \n event.preventDefault()}\n >\n {values.showPassword ? : }\n \n \n );\n\n return (\n \n );\n};\n\nPasswordInput.propTypes = {\n label: PropTypes.string,\n controlProps: PropTypes.object,\n value: PropTypes.string,\n name: PropTypes.string,\n error: PropTypes.string,\n};\n\nexport const PasswordInputField = createFieldComponent(PasswordInput);\nexport default PasswordInputField;\n","import { SnackbarContent } from \"@material-ui/core\";\nimport { resetPageContentScroll } from \"../layout/Layout\";\nimport { extractString } from \"../../strings\";\n\nexport const ValidationMessage = ({ message }) => {\n return (\n \n );\n};\n","import styles from \"./FormActions.module.scss\";\nimport React from \"react\";\n\nexport const FormActions = ({ children, className }) => {\n return
{children}
;\n};\n\nexport default FormActions;\n","import styles from \"./SubmitButton.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, CircularProgress } from \"@material-ui/core\";\n\nexport const SubmitButton = ({\n onClick,\n regular,\n isFetching,\n children,\n wide,\n disabled,\n underline,\n}) => {\n return (\n \n {isFetching && (\n \n )}\n {children}\n \n );\n};\n\nSubmitButton.propTypes = {\n onClick: PropTypes.func,\n label: PropTypes.string,\n};\n\nexport default SubmitButton;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withLayout } from \"../../utils/layout\";\nimport { connect } from \"react-redux\";\nimport { AnonymousLayout } from \"../layout/AnonymousLayout\";\nimport { Paper, Typography, Link, Grid } from \"@material-ui/core\";\nimport styles from \"./LoginPage.module.scss\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { createForm, validators } from \"../../utils/forms\";\nimport TextInputField from \"../forms/TextInputField\";\nimport PasswordInputField from \"../forms/PasswordInputField\";\nimport * as authActions from \"../../authentication/authActions\";\nimport { getRedirectUrl, redirectToRoot } from \"../../authentication/auth\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst LoginPageComponent = (props) => {\n const [form] = useState(() => {\n const fields = {\n userName: \"\",\n password: \"\",\n };\n\n const validation = {\n userName: [validators.required, validators.email],\n password: [validators.required],\n };\n\n return createForm(fields, validation);\n });\n\n const [logoClick, setLogoClick] = useState(0);\n\n useMount(() => {\n if (props.user) {\n redirectToRoot();\n }\n\n // Track page view\n trackPageView(\"LoginPage\");\n });\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n props.login(values.userName, values.password, getRedirectUrl());\n };\n\n if (props.user) {\n return null;\n }\n\n return (\n \n \n
\n \n
\n setLogoClick(logoClick + 1)}\n >\n Nyss logo\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {strings(stringKeys.login.title)}\n \n\n {props.loginResponse && (\n \n )}\n\n
\n \n \n \n \n\n \n \n \n \n\n
\n \n {strings(stringKeys.login.forgotPassword)}\n \n
\n\n \n
\n \n {strings(stringKeys.login.signIn)}\n \n \n \n
\n \n
\n \n \n \n \n \n Nyss was developed with the support of:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nLoginPageComponent.propTypes = {\n login: PropTypes.func,\n loginResponse: PropTypes.string,\n};\n\nconst mapStateToProps = (state) => ({\n user: state.appData.user,\n loginResponse: state.auth.loginResponse,\n isFetching: state.auth.isFetching,\n});\n\nconst mapDispatchToProps = {\n login: authActions.login.invoke,\n};\n\nexport const LoginPage = withLayout(\n AnonymousLayout,\n connect(mapStateToProps, mapDispatchToProps)(LoginPageComponent),\n);\n","import { useEffect, useState } from \"react\";\nimport * as auth from \"../../authentication/auth\";\nimport { Route, useHistory } from \"react-router\";\nimport { BaseLayout } from \"../layout/BaseLayout\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { stringKeys } from \"../../strings\";\nimport { ROUTE_CHANGED } from \"./logic/appConstans\";\n\nexport const AuthRoute = ({\n component: Component,\n roles,\n computedMatch,\n ignoreRedirection,\n ...rest\n}) => {\n const user = useSelector((state) => state.appData.user);\n const [authError, setAuthError] = useState(null);\n const dispatch = useDispatch();\n const history = useHistory();\n\n useEffect(() => {\n if (!user) {\n auth.setRedirectUrl(window.location.pathname);\n history.push(auth.loginUrl);\n return;\n }\n\n const redirectUrl = auth.getRedirectUrl();\n\n if (redirectUrl && !ignoreRedirection) {\n auth.removeRedirectUrl();\n history.push(redirectUrl);\n return;\n }\n\n if (\n roles &&\n roles.length &&\n !roles.some((neededRole) =>\n user.roles.some((userRole) => userRole === neededRole),\n )\n ) {\n setAuthError(stringKeys.error.unauthorized);\n return;\n }\n\n dispatch({\n type: ROUTE_CHANGED,\n url: computedMatch.url,\n path: computedMatch.path,\n params: computedMatch.params,\n });\n }, [user, computedMatch, ignoreRedirection, roles, dispatch, history]);\n\n const returnHome = () => {\n setAuthError(null);\n history.push(\"/\");\n dispatch({ type: ROUTE_CHANGED, url: \"/\", path: \"/\", params: {} });\n };\n\n if (!!authError) {\n return (\n \n );\n }\n\n return } />;\n};\n","import styles from \"./TableActions.module.scss\";\nimport React from \"react\";\n\nexport const TableActions = ({ children }) => (\n
{children}
\n);\n\nexport default TableActions;\n","import styles from \"./ConfirmationAction.module.scss\";\n\nimport React, { Fragment, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Menu, MenuItem, ListItemIcon } from \"@material-ui/core\";\n\nexport const ConfirmationAction = ({\n children,\n icon,\n confirmationText,\n onClick,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n\n const handleDropdownClick = (e) => {\n e.stopPropagation();\n setAnchorEl(e.currentTarget);\n };\n\n const handleDropdownClose = (e) => {\n e && e.stopPropagation();\n setAnchorEl(null);\n };\n\n const handleMenuClick = (e) => {\n e.stopPropagation();\n onClick();\n handleDropdownClose();\n };\n\n return (\n \n
\n {children}\n
\n \n \n {icon && {icon}}\n {confirmationText}\n \n \n
\n );\n};\n\nConfirmationAction.propTypes = {\n automationid: PropTypes.string,\n canEdit: PropTypes.bool,\n isIcon: PropTypes.bool,\n onClick: PropTypes.func,\n children: PropTypes.any,\n};\n\nexport default ConfirmationAction;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\n\nexport const withAccessRestriction =\n (Component) =>\n ({ roles, condition, ...props }) =>\n roles || condition !== undefined ? (\n \n \n \n ) : (\n \n );\n\nexport const HasAccessComponent = ({ user, roles, condition, children }) =>\n (!roles || user.roles.some((role) => roles.indexOf(role) > -1)) &&\n (condition === undefined || condition === true) &&\n children;\n\nconst mapStateToProps = (state) => ({\n user: state.appData.user,\n});\n\nHasAccessComponent.propTypes = {\n user: PropTypes.any,\n roles: PropTypes.array,\n children: PropTypes.node,\n};\n\nexport const HasAccess = connect(mapStateToProps)(HasAccessComponent);\n","import styles from \"./TableRowAction.module.scss\";\nimport React from \"react\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport ConfirmationAction from \"../confirmationAction/ConfirmationAction\";\nimport { withAccessRestriction } from \"../hasAccess/HasAccess\";\n\nconst TableRowActionComponent = ({\n icon,\n onClick,\n title,\n isFetching,\n confirmationText,\n directionRtl,\n}) => {\n const handleClick = (e) => {\n e.stopPropagation();\n onClick();\n };\n\n if (confirmationText) {\n return (\n \n \n {isFetching && (\n \n )}\n
{icon}
\n \n
\n );\n }\n\n return (\n \n {isFetching && }\n
{icon}
\n \n );\n};\n\nexport const TableRowAction = withAccessRestriction(TableRowActionComponent);\n","import styles from \"./TableRowAction.module.scss\";\n\nexport const TableRowActions = ({ children, directionRtl, ...rest }) => (\n \n {children}\n \n);\n","import styles from \"./TableRowAction.module.scss\";\nimport React, { Fragment, useState } from \"react\";\nimport { Menu, CircularProgress, MenuItem } from \"@material-ui/core\";\nimport { useSelector } from \"react-redux\";\n\nconst TableRowMenuComponent = ({\n id,\n icon,\n items,\n isFetching,\n alwaysShow,\n alwaysHighlighted,\n directionRtl,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const user = useSelector((state) => state.appData.user);\n\n const handleDropdownClick = (e) => {\n e.stopPropagation();\n\n filteredItems.length !== 0 && setAnchorEl(e.currentTarget);\n };\n\n const handleDropdownClose = (e) => {\n e && e.stopPropagation();\n setAnchorEl(null);\n };\n\n const handleMenuItemClick = (e, action) => {\n e.stopPropagation();\n action();\n handleDropdownClose();\n };\n\n const filteredItems = items.filter(\n (item) =>\n !item.roles || user.roles.some((role) => item.roles.indexOf(role) > -1),\n );\n\n if (!filteredItems.length && !alwaysShow) {\n return null;\n }\n\n return (\n \n \n {isFetching && }\n
{icon}
\n \n \n {filteredItems.map((menuItem, index) => (\n handleMenuItemClick(e, menuItem.action)}\n >\n {menuItem.title}\n \n ))}\n \n
\n );\n};\n\nexport const TableRowMenu = TableRowMenuComponent;\n","import styles from \"./CancelButton.module.scss\";\nimport PropTypes from \"prop-types\";\nimport { Button } from \"@material-ui/core\";\n\nexport const CancelButton = ({ onClick, children, variant }) => {\n return (\n \n {children}\n \n );\n};\n\nCancelButton.propTypes = {\n onClick: PropTypes.func,\n label: PropTypes.string,\n};\n\nexport default CancelButton;\n","import styles from \"./ConfirmationDialog.module.scss\";\n\nimport React from \"react\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport FormActions from \"../../forms/formActions/FormActions\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../../common/buttons/cancelButton/CancelButton\";\nimport { withAccessRestriction } from \"../hasAccess/HasAccess\";\nimport {\n useTheme,\n DialogTitle,\n Dialog,\n DialogContent,\n useMediaQuery,\n Typography,\n} from \"@material-ui/core\";\n\nexport const ConfirmationDialogComponent = ({\n children,\n isOpened,\n isFetching,\n close,\n submit,\n titleText,\n contentText,\n}) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n\n return (\n \n {titleText}\n \n {contentText && {contentText}}\n {children}\n \n \n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.form.confirm)}\n \n \n \n \n );\n};\n\nexport const ConfirmationDialog = withAccessRestriction(\n ConfirmationDialogComponent,\n);\n","import styles from \"../common/table/Table.module.scss\";\nimport React, { useState, Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n makeStyles,\n} from \"@material-ui/core\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport dayjs from \"dayjs\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\nimport { TableRowMenu } from \"../common/tableRowAction/TableRowMenu\";\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\nimport { ConfirmationDialog } from \"../common/confirmationDialog/ConfirmationDialog\";\n\nconst useStyles = makeStyles((theme) => ({\n clickableRow: {\n cursor: \"pointer\",\n },\n inactiveRow: {\n \"& .MuiTableCell-body\": {\n color: theme.palette.text.disabled,\n },\n },\n}));\n\nexport const NationalSocietiesTable = ({\n isListFetching,\n goToEdition,\n goToDashboard,\n list,\n archive,\n reopen,\n isArchiving,\n isReopening,\n rtl,\n}) => {\n const [archiveConfirmationDialog, setArchiveConfirmationDialog] = useState({\n isOpen: false,\n nationalSocietyId: null,\n });\n const [reopenConfirmationDialog, setReopenConfirmationDialog] = useState({\n isOpen: false,\n nationalSocietyId: null,\n });\n\n const classes = useStyles();\n\n const archiveConfirmed = () => {\n archive(archiveConfirmationDialog.nationalSocietyId);\n setArchiveConfirmationDialog({ isOpen: false });\n };\n\n const reopenConfirmed = () => {\n reopen(reopenConfirmationDialog.nationalSocietyId);\n setReopenConfirmationDialog({ isOpen: false });\n };\n\n if (isListFetching) {\n return ;\n }\n\n const getRowMenu = (row) => [\n {\n title: strings(stringKeys.nationalSociety.list.archive),\n disabled: row.isArchived,\n roles: accessMap.nationalSocieties.archive,\n action: () =>\n setArchiveConfirmationDialog({\n isOpen: true,\n nationalSocietyId: row.id,\n }),\n },\n {\n title: strings(stringKeys.nationalSociety.list.reopen),\n disabled: !row.isArchived,\n roles: accessMap.nationalSocieties.archive,\n action: () =>\n setReopenConfirmationDialog({\n isOpen: true,\n nationalSocietyId: row.id,\n }),\n },\n ];\n\n return (\n \n \n \n \n \n {strings(stringKeys.common.name)}\n \n {strings(stringKeys.nationalSociety.list.country)}\n \n \n {strings(stringKeys.nationalSociety.list.startDate)}\n \n \n {strings(stringKeys.nationalSociety.list.coordinator)}\n \n \n {strings(stringKeys.nationalSociety.list.headManager)}\n \n \n {strings(stringKeys.nationalSociety.list.technicalAdvisor)}\n \n \n \n \n \n {list.map((row) => (\n goToDashboard(row.id)}\n className={`${classes.clickableRow} ${\n row.isArchived ? classes.inactiveRow : \"\"\n }`}\n >\n {row.name}\n {row.country}\n \n {dayjs(row.startDate).format(\"YYYY-MM-DD\")}\n \n {row.coordinators}\n {row.headManagers}\n {row.technicalAdvisor}\n \n \n goToEdition(row.id)}\n icon={}\n title={\"Edit\"}\n />\n }\n isFetching={isArchiving[row.id] || isReopening[row.id]}\n />\n \n \n \n ))}\n \n
\n
\n\n archiveConfirmed()}\n close={() => setArchiveConfirmationDialog({ isOpen: false })}\n contentText={strings(stringKeys.nationalSociety.archive.content)}\n />\n\n reopenConfirmed()}\n close={() => setReopenConfirmationDialog({ isOpen: false })}\n contentText={strings(stringKeys.nationalSociety.reopen.content)}\n />\n
\n );\n};\n\nNationalSocietiesTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default NationalSocietiesTable;\n","import styles from \"./TableActionsButton.module.scss\";\n\nimport React from \"react\";\nimport { Button, CircularProgress } from \"@material-ui/core\";\nimport { withAccessRestriction } from \"../../hasAccess/HasAccess\";\n\nconst TableActionsButtonComponent = ({\n onClick,\n startIcon,\n isFetching,\n children,\n variant,\n style,\n}) => (\n \n {isFetching && (\n \n )}\n {children}\n \n);\n\nexport const TableActionsButton = withAccessRestriction(\n TableActionsButtonComponent,\n);\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as nationalSocietiesActions from \"./logic/nationalSocietiesActions\";\nimport * as appActions from \"../app/logic/appActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport NationalSocietiesTable from \"./NationalSocietiesTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport * as nationalSocietyDashboardActions from \"../nationalSocietyDashboard/logic/nationalSocietyDashboardActions\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport { accessMap } from \"../../authentication/accessMap\";\n\nconst NationalSocietiesListPageComponent = ({\n showStringsKeys,\n match,\n openModule,\n getList,\n ...props\n}) => {\n useMount(() => {\n openModule(match.path, match.params);\n getList();\n\n // Track page view\n trackPageView(\"NationalSocietiesListPage\");\n });\n\n const user = useSelector((state) => state.appData.user);\n const userHasAddAccess =\n user &&\n user.roles.some((role) => accessMap.nationalSocieties.add.includes(role));\n\n return (\n \n {userHasAddAccess && (\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n )}\n\n \n \n );\n};\n\nNationalSocietiesListPageComponent.propTypes = {\n getNationalSocieties: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n archive: PropTypes.func,\n reopen: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n list: state.nationalSocieties.listData,\n isListFetching: state.nationalSocieties.listFetching,\n isArchiving: state.nationalSocieties.listArchiving,\n isReopening: state.nationalSocieties.listReopening,\n callingUserRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n getList: nationalSocietiesActions.getList.invoke,\n goToCreation: nationalSocietiesActions.goToCreation,\n goToEdition: nationalSocietiesActions.goToEdition,\n goToDashboard: nationalSocietyDashboardActions.goToDashboard,\n openModule: appActions.openModule.invoke,\n archive: nationalSocietiesActions.archive.invoke,\n reopen: nationalSocietiesActions.reopen.invoke,\n};\n\nexport const NationalSocietiesListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietiesListPageComponent),\n);\n","import styles from \"./Form.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nexport const Form = ({ onSubmit, children, fullWidth, className, style }) => {\n return (\n \n {children}\n \n );\n};\n\nForm.propTypes = {\n onSubmit: PropTypes.func,\n};\n\nexport default Form;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Select,\n FormControl,\n FormHelperText,\n InputLabel,\n} from \"@material-ui/core\";\nimport { createFieldComponent } from \"./FieldBase\";\n\nconst SelectInput = ({\n error,\n disabled,\n disabledlabel,\n name,\n label,\n value,\n onChange,\n controlProps,\n customProps,\n children,\n}) => {\n const { fieldRef, ...rest } = customProps;\n\n return (\n \n \n {label}\n \n {\n onChange && onChange(e);\n controlProps.onChange(e);\n }}\n >\n {children}\n \n {error && {error}}\n {disabled && {disabledlabel}}\n \n );\n};\n\nSelectInput.propTypes = {\n controlProps: PropTypes.object,\n value: PropTypes.string,\n name: PropTypes.string,\n};\n\nexport const SelectField = createFieldComponent(SelectInput);\nexport default SelectField;\n","import React, { useState, Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as nationalSocietiesActions from \"./logic/nationalSocietiesActions\";\nimport * as appActions from \"../app/logic/appActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport SelectField from \"../forms/SelectField\";\nimport { MenuItem, Grid } from \"@material-ui/core\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { EpiWeekStandards } from \"./logic/nationalSocietiesConstants\";\nimport CheckboxField from \"../forms/CheckboxField\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietiesCreatePageComponent = (props) => {\n const [form] = useState(() => {\n const fields = {\n name: \"\",\n initialOrganizationName: \"\",\n contentLanguageId: \"\",\n countryId: \"\",\n epiWeekStartDay: \"Sunday\",\n enableEidsrIntegration: false,\n };\n\n const validation = {\n name: [validators.required, validators.minLength(1)],\n initialOrganizationName: [validators.required, validators.maxLength(100)],\n contentLanguageId: [validators.required],\n countryId: [validators.required],\n };\n\n return createForm(fields, validation);\n });\n\n useMount(() => {\n props.openModule(props.match.path, props.match.params);\n\n // Track page view\n trackPageView(\"NationalSocietiesCreatePage\");\n });\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n props.create({\n name: values.name,\n initialOrganizationName: values.initialOrganizationName,\n contentLanguageId: parseInt(values.contentLanguageId),\n countryId: parseInt(values.countryId),\n epiWeekStartDay: values.epiWeekStartDay,\n enableEidsrIntegration: values.enableEidsrIntegration,\n });\n };\n\n useCustomErrors(form, props.error);\n\n return (\n \n {props.error && !props.error.data && (\n \n )}\n\n
\n \n \n \n \n\n \n \n \n\n \n \n {props.countries.map((country) => (\n \n {country.name}\n \n ))}\n \n \n\n \n \n {props.contentLanguages.map((language) => (\n \n {language.name}\n \n ))}\n \n \n\n \n \n {EpiWeekStandards.map((itm) => (\n \n {strings(\n stringKeys.nationalSociety.form.epiWeekStandard[itm].label,\n )}\n \n ))}\n \n \n\n \n \n \n \n\n \n props.goToList()}>\n {strings(stringKeys.form.cancel)}\n \n\n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nNationalSocietiesCreatePageComponent.propTypes = {\n getNationalSocieties: PropTypes.func,\n openModule: PropTypes.func,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n contentLanguages: state.appData.contentLanguages,\n countries: state.appData.countries,\n error: state.nationalSocieties.formError,\n isSaving: state.nationalSocieties.formSaving,\n});\n\nconst mapDispatchToProps = {\n getList: nationalSocietiesActions.getList.invoke,\n create: nationalSocietiesActions.create.invoke,\n goToList: nationalSocietiesActions.goToList,\n openModule: appActions.openModule.invoke,\n};\n\nexport const NationalSocietiesCreatePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietiesCreatePageComponent),\n);\n","import React, { useEffect, useState, Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as nationalSocietiesActions from \"./logic/nationalSocietiesActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport SelectField from \"../forms/SelectField\";\nimport { MenuItem, Grid } from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { EpiWeekStandards } from \"./logic/nationalSocietiesConstants\";\nimport CheckboxField from \"../forms/CheckboxField\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietiesEditPageComponent = (props) => {\n const [form, setForm] = useState(null);\n\n useMount(() => {\n props.openEdition(props.match);\n\n // Track page view\n trackPageView(\"NationalSocietiesEditPage\");\n });\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n const fields = {\n id: props.data.id,\n name: props.data.name,\n contentLanguageId: props.data.contentLanguageId.toString(),\n countryId: props.data.countryId.toString(),\n epiWeekStartDay: props.data.epiWeekStartDay,\n enableEidsrIntegration: props.data.enableEidsrIntegration,\n };\n\n const validation = {\n id: [validators.required],\n name: [validators.required, validators.minLength(3)],\n contentLanguageId: [validators.required],\n countryId: [validators.required],\n };\n\n setForm(createForm(fields, validation));\n }, [props.data, props.match]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n props.edit({\n id: props.data.id,\n name: values.name,\n contentLanguageId: parseInt(values.contentLanguageId),\n countryId: parseInt(values.countryId),\n epiWeekStartDay: values.epiWeekStartDay,\n enableEidsrIntegration: values.enableEidsrIntegration,\n });\n };\n\n useCustomErrors(form, props.error);\n\n if (props.isFetching || !form) {\n return ;\n }\n\n return (\n \n {props.error && !props.error.data && (\n \n )}\n\n
\n \n \n \n \n\n \n \n {props.countries.map((country) => (\n \n {country.name}\n \n ))}\n \n \n\n \n \n {props.contentLanguages.map((language) => (\n \n {language.name}\n \n ))}\n \n \n\n \n \n {EpiWeekStandards.map((itm) => (\n \n {strings(\n stringKeys.nationalSociety.form.epiWeekStandard[itm].label,\n )}\n \n ))}\n \n \n\n \n \n \n \n\n \n props.goToOverview(props.data.id)}>\n {strings(stringKeys.form.cancel)}\n \n\n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nNationalSocietiesEditPageComponent.propTypes = {\n getNationalSocieties: PropTypes.func,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n contentLanguages: state.appData.contentLanguages,\n countries: state.appData.countries,\n error: state.nationalSocieties.formError,\n isFetching: state.nationalSocieties.formFetching,\n isSaving: state.nationalSocieties.formSaving,\n data: state.nationalSocieties.formData,\n});\n\nconst mapDispatchToProps = {\n openEdition: nationalSocietiesActions.openEdition.invoke,\n edit: nationalSocietiesActions.edit.invoke,\n goToOverview: nationalSocietiesActions.goToOverview,\n};\n\nexport const NationalSocietiesEditPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietiesEditPageComponent),\n);\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport * as nationalSocietiesActions from \"./logic/nationalSocietiesActions\";\nimport Layout from \"../layout/Layout\";\nimport { Typography, Grid } from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport * as roles from \"../../authentication/roles\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietiesOverviewPageComponent = (props) => {\n useMount(() => {\n props.openOverview(props.match);\n\n // Track page view\n trackPageView(\"NationalSocietiesOverviewPage\");\n });\n\n if (props.isFetching || !props.data) {\n return ;\n }\n\n return (\n \n
\n \n \n \n {strings(stringKeys.nationalSociety.form.name)}\n \n \n {props.data.name}\n \n \n\n \n \n {strings(stringKeys.nationalSociety.form.country)}\n \n \n {props.data.countryName}\n \n \n\n \n \n {strings(stringKeys.nationalSociety.form.contentLanguage)}\n \n \n {props.data.contentLanguageName}\n \n \n\n \n \n {strings(stringKeys.nationalSociety.form.epiWeekStandard.title)}\n \n \n {strings(\n stringKeys.nationalSociety.form.epiWeekStandard[\n props.data.epiWeekStartDay\n ].label,\n )}\n
\n \n (\n {strings(\n stringKeys.nationalSociety.form.epiWeekStandard[\n props.data.epiWeekStartDay\n ].description,\n )}\n )\n \n
\n
\n\n \n \n {strings(stringKeys.nationalSociety.form.enableEidsrIntegration)}\n \n \n {props.data.enableEidsrIntegration\n ? strings(stringKeys.common.boolean.true)\n : strings(stringKeys.common.boolean.false)}\n \n \n
\n\n \n props.openEdition(props.data.id)}\n roles={accessMap.nationalSocieties.edit}\n condition={\n !props.nationalSocietyIsArchived &&\n (!props.data.hasCoordinator ||\n props.callingUserRoles.some(\n (r) => r === roles.Coordinator || r === roles.Administrator,\n ))\n }\n variant={\"contained\"}\n >\n {strings(stringKeys.common.buttons.edit)}\n \n \n
\n
\n );\n};\n\nNationalSocietiesOverviewPageComponent.propTypes = {\n getNationalSocieties: PropTypes.func,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n isFetching: state.nationalSocieties.overviewFetching,\n data: state.nationalSocieties.overviewData,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n nationalSocietyHasCoordinator:\n state.appData.siteMap.parameters.nationalSocietyHasCoordinator,\n callingUserRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n openOverview: nationalSocietiesActions.openOverview.invoke,\n openEdition: nationalSocietiesActions.goToEdition,\n};\n\nexport const NationalSocietiesOverviewPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietiesOverviewPageComponent),\n);\n","import styles from \"../common/table/Table.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer\n} from \"@material-ui/core\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport * as roles from \"../../authentication/roles\";\n\nexport const SmsGatewaysTable = ({\n isListFetching,\n isRemoving,\n goToEdition,\n remove,\n list,\n nationalSocietyId,\n callingUserRoles,\n rtl,\n}) => {\n if (isListFetching) {\n return ;\n }\n\n const canModify =\n callingUserRoles.some(\n (r) => r === roles.Administrator,\n );\n\n return (\n \n \n \n \n {strings(stringKeys.common.name)}\n \n {strings(stringKeys.smsGateway.list.apiKey)}\n \n \n {strings(stringKeys.smsGateway.list.gatewayType)}\n \n \n {strings(stringKeys.smsGateway.list.useIotHub)}\n \n \n \n \n \n {list.map((row) => (\n goToEdition(nationalSocietyId, row.id) : null\n }\n className={canModify ? styles.clickableRow : null}\n >\n {row.name}\n {row.apiKey}\n \n {strings(`smsGateway.type.${row.gatewayType.toLowerCase()}`)}\n \n {row.iotHubDeviceName}\n \n \n goToEdition(nationalSocietyId, row.id)}\n icon={}\n roles={accessMap.smsGateways.edit}\n condition={canModify}\n title=\"Edit\"\n directionRtl={rtl}\n />\n remove(nationalSocietyId, row.id)}\n confirmationText={strings(\n stringKeys.smsGateway.list.removalConfirmation,\n )}\n icon={}\n title=\"Delete\"\n roles={accessMap.smsGateways.delete}\n condition={canModify}\n isFetching={isRemoving[row.id]}\n directionRtl={rtl}\n />\n \n \n \n ))}\n \n
\n
\n );\n};\n\nSmsGatewaysTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default SmsGatewaysTable;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as smsGatewaysActions from \"./logic/smsGatewaysActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport SmsGatewaysTable from \"./SmsGatewaysTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport * as roles from \"../../authentication/roles\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst SmsGatewaysListPageComponent = (props) => {\n useMount(() => {\n props.openSmsGatewaysList(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"SmsGatewaysListPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n return (\n \n {!props.nationalSocietyIsArchived && (\n \n props.goToCreation(props.nationalSocietyId)}\n roles={accessMap.smsGateways.add}\n condition={\n !props.nationalSocietyHasCoordinator ||\n props.callingUserRoles.some(\n (r) => r === roles.Coordinator || r === roles.Administrator,\n )\n }\n add\n variant=\"contained\"\n rtl={useRtlDirection}\n >\n {strings(stringKeys.common.buttons.add)}\n \n \n )}\n\n \n \n );\n};\n\nSmsGatewaysListPageComponent.propTypes = {\n getSmsGateways: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n list: state.smsGateways.listData,\n isListFetching: state.smsGateways.listFetching,\n isRemoving: state.smsGateways.listRemoving,\n callingUserRoles: state.appData.user.roles,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n nationalSocietyHasCoordinator:\n state.appData.siteMap.parameters.nationalSocietyHasCoordinator,\n});\n\nconst mapDispatchToProps = {\n openSmsGatewaysList: smsGatewaysActions.openList.invoke,\n goToCreation: smsGatewaysActions.goToCreation,\n goToEdition: smsGatewaysActions.goToEdition,\n remove: smsGatewaysActions.remove.invoke,\n};\n\nexport const SmsGatewaysListPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(SmsGatewaysListPageComponent),\n);\n","export const smsEagle = \"SmsEagle\";\nexport const smsGateway = \"SmsGateway\";\nexport const mtnSmsGateway = \"MTNSmsGateway\";\nexport const telerivet = \"Telerivet\";\nexport const smsGatewayTypes = [smsEagle, telerivet, smsGateway, mtnSmsGateway];\n","import styles from \"./SmsGatewaysCreateOrEditPage.module.scss\";\nimport React, { useState, Fragment, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as smsGatewaysActions from \"./logic/smsGatewaysActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport SelectInput from \"../forms/SelectField\";\nimport {\n smsGatewayTypes,\n smsEagle,\n smsGateway,\n mtnSmsGateway,\n telerivet,\n} from \"./logic/smsGatewayTypes\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport CheckboxField from \"../forms/CheckboxField\";\nimport {\n Typography,\n MenuItem,\n Grid,\n Icon,\n InputAdornment,\n Snackbar,\n IconButton,\n} from \"@material-ui/core\";\nimport FileCopyIcon from \"@material-ui/icons/FileCopy\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst SmsGatewaysCreatePageComponent = (props) => {\n const [useIotHub, setUseIotHub] = useState(null);\n const [selectedIotDevice, setSelectedIotDevice] = useState(\"\");\n const [pingIsRequired, setPingIsRequired] = useState(null);\n const [, setUseDualModem] = useState(null);\n const [snackbarOpen, setSnackbarOpen] = useState(false);\n\n const [form] = useState(() => {\n const fields = {\n name: \"\",\n apiKey: uuidv4().replace(/-/g, \"\"),\n gatewayType: smsEagle || smsGateway || telerivet || mtnSmsGateway,\n telerivetApiKey: \"\",\n telerivetProjectId: \"\",\n gatewayApiKey: \"\",\n gatewayApiKeyName: \"\",\n gatewayExtraKey: \"\",\n gatewayExtraKeyName: \"\",\n gatewayUrl: \"\",\n gatewayAuthUrl: \"\",\n gatewaySenderId: \"\",\n emailAddress: \"\",\n useIotHub: false,\n iotHubDeviceName: \"\",\n useDualModem: false,\n modemOneName: \"\",\n modemTwoName: \"\",\n };\n\n const validation = {\n name: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n apiKey: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n gatewayType: [validators.required],\n telerivetApiKey: [\n validators.requiredWhen(\n (tr) => tr.gatewayType.toString() === telerivet,\n ),\n ],\n telerivetProjectId: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === telerivet,\n ),\n ],\n gatewayApiKey: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === smsGateway || tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayApiKeyName: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === smsGateway || tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayExtraKey: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayExtraKeyName: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayUrl: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === smsGateway || tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayAuthUrl: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewaySenderId: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === smsGateway || tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n emailAddress: [\n validators.emailWhen(\n (_) => _.gatewayType.toString() === smsEagle && _.useIotHub === false,\n ),\n ],\n iotHubDeviceName: [validators.requiredWhen((x) => x.useIotHub === true)],\n modemOneName: [validators.maxLength(100)],\n modemTwoName: [validators.maxLength(100)],\n useIotHub: [validators.requiredWhen((x) => x.useDualModem === true)],\n };\n\n const newForm = createForm(fields, validation);\n newForm.fields.useIotHub.subscribe(({ newValue }) =>\n setUseIotHub(newValue),\n );\n newForm.fields.iotHubDeviceName.subscribe(({ newValue }) =>\n setSelectedIotDevice(newValue),\n );\n newForm.fields.useDualModem.subscribe(({ newValue }) =>\n setUseDualModem(newValue),\n );\n return newForm;\n });\n\n useMount(() => {\n props.openCreation(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"SmsGatewaysCreatePage\");\n });\n\n const { listAvailableIotDevices } = props;\n useEffect(() => {\n if (useIotHub) {\n listAvailableIotDevices();\n }\n }, [useIotHub, listAvailableIotDevices]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n if (useIotHub && (!pingResult || !pingResult.isSuccess)) {\n setPingIsRequired(strings(stringKeys.smsGateway.form.pingIsRequired));\n return;\n }\n\n const values = form.getValues();\n props.create(props.nationalSocietyId, {\n name: values.name,\n apiKey: values.apiKey,\n gatewayType: values.gatewayType,\n telerivetApiKey:\n values.gatewayType.toString() === telerivet\n ? values.telerivetApiKey\n : null,\n telerivetProjectId:\n values.gatewayType.toString() === telerivet\n ? values.telerivetProjectId\n : null,\n gatewayApiKey:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayApiKey\n : null,\n gatewayApiKeyName:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayApiKeyName\n : null,\n gatewayExtraKey:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayExtraKey\n : null,\n gatewayExtraKeyName:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayExtraKeyName\n : null,\n gatewayUrl:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayUrl : null,\n gatewayAuthUrl:\n values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayAuthUrl : null,\n gatewaySenderId:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewaySenderId\n : null,\n emailAddress: values.emailAddress,\n iotHubDeviceName: values.useIotHub ? values.iotHubDeviceName : null,\n modemOneName: values.useDualModem ? values.modemOneName : null,\n modemTwoName: values.useDualModem ? values.modemTwoName : null,\n });\n };\n\n const pingResult =\n props.pinging[selectedIotDevice] && props.pinging[selectedIotDevice].result;\n\n const handlePing = () => {\n setPingIsRequired(null);\n props.pingIotDevice(form.fields.iotHubDeviceName.value);\n };\n\n const copyApiKey = () => {\n navigator.clipboard.writeText(form.fields.apiKey.value);\n setSnackbarOpen(true);\n };\n\n const handleSnackbarClose = () => {\n setSnackbarOpen(false);\n };\n\n useCustomErrors(form, props.error);\n\n return (\n \n {props.error && !props.error.data && (\n \n )}\n\n
\n \n \n \n \n\n \n \n \n \n \n \n }\n />\n \n\n \n \n {smsGatewayTypes.map((type) => (\n \n {strings(`smsGateway.type.${type.toLowerCase()}`)}\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 {form.fields.useIotHub.value && (\n \n \n \n {(props.data && props.data.iotHubDeviceName\n ? [\n ...props.availableIoTDevices,\n props.data.iotHubDeviceName,\n ]\n : props.availableIoTDevices\n )\n .sort()\n .map((deviceName) => (\n \n {deviceName}\n \n ))}\n \n \n \n \n {strings(stringKeys.smsGateway.form.ping)}\n \n {pingResult && (\n \n {pingResult.isSuccess ? (\n \n check\n \n ) : (\n \n error\n \n )}{\" \"}\n {pingResult.message}\n \n )}\n {pingIsRequired && (\n \n {pingIsRequired}\n \n )}\n \n \n )}\n\n \n \n \n\n {form.fields.useDualModem.value && (\n \n \n \n \n \n \n \n \n )}\n \n \n props.goToList(props.nationalSocietyId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n\n \n
\n );\n};\n\nSmsGatewaysCreatePageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isSaving: state.smsGateways.formSaving,\n error: state.smsGateways.formError,\n pinging: state.smsGateways.pinging,\n availableIoTDevices: state.smsGateways.availableIoTDevices,\n});\n\nconst mapDispatchToProps = {\n openCreation: smsGatewaysActions.openCreation.invoke,\n create: smsGatewaysActions.create.invoke,\n goToList: smsGatewaysActions.goToList,\n pingIotDevice: smsGatewaysActions.pingIotDevice.invoke,\n listAvailableIotDevices: smsGatewaysActions.listAvailableIotDevices.invoke,\n};\n\nexport const SmsGatewaysCreatePage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(SmsGatewaysCreatePageComponent),\n);\n","import styles from \"./SmsGatewaysCreateOrEditPage.module.scss\";\nimport React, { useEffect, useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as smsGatewaysActions from \"./logic/smsGatewaysActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport PasswordInputField from \"../forms/PasswordInputField\";\nimport TextInputField from \"../forms/TextInputField\";\nimport SelectInput from \"../forms/SelectField\";\nimport { Loading } from \"../common/loading/Loading\";\nimport {\n smsGatewayTypes,\n smsEagle,\n smsGateway,\n mtnSmsGateway,\n telerivet,\n} from \"./logic/smsGatewayTypes\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport CheckboxField from \"../forms/CheckboxField\";\nimport {\n Typography,\n MenuItem,\n Button,\n Grid,\n Icon,\n InputAdornment,\n Snackbar,\n IconButton,\n} from \"@material-ui/core\";\nimport RefreshIcon from \"@material-ui/icons/Refresh\";\nimport FileCopyIcon from \"@material-ui/icons/FileCopy\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst SmsGatewaysEditPageComponent = (props) => {\n const [form, setForm] = useState(null);\n const [useIotHub, setUseIotHub] = useState(null);\n const [selectedIotDevice, setSelectedIotDevice] = useState(null);\n const [pingIsRequired, setPingIsRequired] = useState(null);\n const [useDualModem, setUseDualModem] = useState(null);\n const [snackbarOpen, setSnackbarOpen] = useState(false);\n\n useMount(() => {\n props.openEdition(props.nationalSocietyId, props.smsGatewayId);\n\n // Track page view\n trackPageView(\"SmsGatewaysEditPage\");\n });\n\n const { listAvailableIotDevices } = props;\n useEffect(() => {\n if (useIotHub) {\n listAvailableIotDevices();\n }\n }, [useIotHub, listAvailableIotDevices]);\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n setSelectedIotDevice(props.data && props.data.iotHubDeviceName);\n setUseIotHub(props.data && !!props.data.iotHubDeviceName);\n setUseDualModem(props.data && !!props.data.modemOneName);\n\n const fields = {\n id: props.data.id,\n name: props.data.name,\n apiKey: props.data.apiKey,\n gatewayType: props.data.gatewayType.toString(),\n telerivetApiKey: props.data.telerivetApiKey || \"\",\n telerivetProjectId: props.data.telerivetProjectId || \"\",\n gatewayApiKey: props.data.gatewayApiKey || \"\",\n gatewayApiKeyName: props.data.gatewayApiKeyName || \"\",\n gatewayExtraKey: props.data.gatewayExtraKey || \"\",\n gatewayExtraKeyName: props.data.gatewayExtraKeyName || \"\",\n gatewayUrl: props.data.gatewayUrl || \"\",\n gatewayAuthUrl: props.data.gatewayAuthUrl || \"\",\n gatewaySenderId: props.data.gatewaySenderId || \"\",\n emailAddress: props.data.emailAddress || \"\",\n useIotHub: !!props.data.iotHubDeviceName,\n iotHubDeviceName: props.data.iotHubDeviceName || \"\",\n useDualModem: !!props.data.modemOneName,\n modemOneName: props.data.modemOneName || \"\",\n modemTwoName: props.data.modemTwoName || \"\",\n };\n\n const validation = {\n name: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n apiKey: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n gatewayType: [validators.required],\n telerivetApiKey: [\n validators.requiredWhen(\n (tr) => tr.gatewayType.toString() === telerivet,\n ),\n ],\n telerivetProjectId: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === telerivet,\n ),\n ],\n gatewayApiKey: [\n validators.requiredWhen(\n (tr) => tr.gatewayType.toString() === smsGateway || tr.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayApiKeyName: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === smsGateway || tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayExtraKey: [\n validators.requiredWhen(\n (tr) => tr.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayExtraKeyName: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayUrl: [\n validators.requiredWhen(\n (tr) => tr.gatewayType.toString() === smsGateway || tr.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewayAuthUrl: [\n validators.requiredWhen(\n (tr) => tr.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n gatewaySenderId: [\n validators.requiredWhen(\n (tp) => tp.gatewayType.toString() === smsGateway || tp.gatewayType.toString() === mtnSmsGateway,\n ),\n ],\n emailAddress: [\n validators.emailWhen(\n (_) => _.gatewayType.toString() === smsEagle && _.useIotHub === false,\n ),\n ],\n iotHubDeviceName: [validators.requiredWhen((x) => x.useIotHub === true)],\n modemOneName: [\n validators.requiredWhen((x) => x.useDualModem === true),\n validators.maxLength(100),\n ],\n modemTwoName: [\n validators.requiredWhen((x) => x.useDualModem === true),\n validators.maxLength(100),\n ],\n useIotHub: [validators.requiredWhen((x) => x.useDualModem === true)],\n };\n\n const newForm = createForm(fields, validation);\n newForm.fields.useIotHub.subscribe(({ newValue }) =>\n setUseIotHub(newValue),\n );\n newForm.fields.iotHubDeviceName.subscribe(({ newValue }) =>\n setSelectedIotDevice(newValue),\n );\n newForm.fields.useDualModem.subscribe(({ newValue }) =>\n setUseDualModem(newValue),\n );\n setForm(newForm);\n }, [props.data, props.match]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n if (useIotHub && (!pingResult || !pingResult.isSuccess)) {\n setPingIsRequired(strings(stringKeys.smsGateway.form.pingIsRequired));\n return;\n }\n\n const values = form.getValues();\n props.edit({\n id: values.id,\n nationalSocietyId: parseInt(props.nationalSocietyId),\n name: values.name,\n apiKey: values.apiKey,\n gatewayType: values.gatewayType,\n emailAddress: values.gatewayType.toString() === smsEagle\n ? values.emailAddress\n : null,\n telerivetApiKey:\n values.gatewayType.toString() === telerivet\n ? values.telerivetApiKey\n : null,\n telerivetProjectId:\n values.gatewayType.toString() === telerivet\n ? values.telerivetProjectId\n : null,\n gatewayApiKey:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayApiKey\n : null,\n gatewayApiKeyName:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayApiKeyName\n : null,\n gatewayExtraKey:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayExtraKey\n : null,\n gatewayExtraKeyName:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayExtraKeyName\n : null,\n gatewayUrl:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayUrl : null,\n gatewayAuthUrl:\n values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewayAuthUrl : null,\n gatewaySenderId:\n values.gatewayType.toString() === smsGateway || values.gatewayType.toString() === mtnSmsGateway\n ? values.gatewaySenderId\n : null,\n iotHubDeviceName: values.useIotHub ? values.iotHubDeviceName : null,\n modemOneName: values.useDualModem ? values.modemOneName : null,\n modemTwoName: values.useDualModem ? values.modemTwoName : null,\n });\n };\n\n useCustomErrors(form, props.error);\n\n if (props.isFetching || !form) {\n return ;\n }\n\n const pingResult =\n props.pinging[selectedIotDevice] && props.pinging[selectedIotDevice].result;\n\n const handlePing = () => {\n setPingIsRequired(null);\n props.pingIotDevice(form.fields.iotHubDeviceName.value);\n };\n\n const generateUuid = () => {\n form.fields.apiKey.update(uuidv4().replace(/-/g, \"\"));\n };\n\n const copyApiKey = () => {\n navigator.clipboard.writeText(form.fields.apiKey.value);\n setSnackbarOpen(true);\n };\n\n const handleSnackbarClose = () => {\n setSnackbarOpen(false);\n };\n\n return (\n \n {props.error && !props.error.data && (\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 {smsGatewayTypes.map((type) => (\n \n {strings(`smsGateway.type.${type.toLowerCase()}`)}\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 {form.fields.useIotHub.value && (\n \n \n \n {(props.data && props.data.iotHubDeviceName\n ? [\n ...props.availableIoTDevices,\n props.data.iotHubDeviceName,\n ]\n : props.availableIoTDevices\n )\n .sort()\n .map((deviceName) => (\n \n {deviceName}\n \n ))}\n \n \n \n \n {strings(stringKeys.smsGateway.form.ping)}\n \n {pingResult && (\n \n {pingResult.isSuccess ? (\n \n check\n \n ) : (\n \n error\n \n )}{\" \"}\n {pingResult.message}\n \n )}\n {pingIsRequired && (\n \n {pingIsRequired}\n \n )}\n \n \n )}\n\n \n \n \n\n {useDualModem && (\n \n \n \n \n \n \n \n \n )}\n \n\n \n props.goToList(props.nationalSocietyId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n\n \n
\n );\n};\n\nSmsGatewaysEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n smsGatewayId: ownProps.match.params.smsGatewayId,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isFetching: state.smsGateways.formFetching,\n isSaving: state.smsGateways.formSaving,\n data: state.smsGateways.formData,\n error: state.smsGateways.formError,\n pinging: state.smsGateways.pinging,\n availableIoTDevices: state.smsGateways.availableIoTDevices,\n});\n\nconst mapDispatchToProps = {\n openEdition: smsGatewaysActions.openEdition.invoke,\n edit: smsGatewaysActions.edit.invoke,\n goToList: smsGatewaysActions.goToList,\n pingIotDevice: smsGatewaysActions.pingIotDevice.invoke,\n listAvailableIotDevices: smsGatewaysActions.listAvailableIotDevices.invoke,\n};\n\nexport const SmsGatewaysEditPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(SmsGatewaysEditPageComponent),\n);\n","import React, { Fragment, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport dayjs from \"dayjs\";\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport * as roles from \"../../authentication/roles\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\nimport { TableRowMenu } from \"../common/tableRowAction/TableRowMenu\";\nimport { ConfirmationDialog } from \"../common/confirmationDialog/ConfirmationDialog\";\nimport {\n Typography,\n Grid,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n makeStyles,\n} from \"@material-ui/core\";\n\nconst useStyles = makeStyles((theme) => ({\n clickableRow: {\n cursor: \"pointer\",\n },\n inactiveRow: {\n \"& .MuiTableCell-body\": {\n color: theme.palette.text.disabled,\n },\n },\n}));\n\nexport const ProjectsTable = ({\n isListFetching,\n goToDashboard,\n list,\n nationalSocietyId,\n close,\n isClosing,\n callingUserRoles,\n isHeadManager,\n rtl,\n}) => {\n const [closeConfirmationDialog, setRemoveConfirmationDialog] = useState({\n isOpen: false,\n projectId: null,\n });\n\n const classes = useStyles();\n\n const closeConfirmed = () => {\n close(nationalSocietyId, closeConfirmationDialog.projectId);\n setRemoveConfirmationDialog({ isOpen: false });\n };\n\n const userCanCloseProject =\n callingUserRoles.some(\n (r) => r === roles.Administrator || r === roles.Coordinator,\n ) || isHeadManager;\n\n if (isListFetching) {\n return ;\n }\n\n const getRowMenu = (project) => [\n {\n title: strings(stringKeys.project.list.close),\n disabled: project.isClosed || !userCanCloseProject,\n action: () =>\n setRemoveConfirmationDialog({ isOpen: true, projectId: project.id }),\n },\n ];\n\n return (\n \n \n \n \n \n \n {strings(stringKeys.project.list.name)}\n \n \n {strings(stringKeys.project.list.startDate)}\n \n \n {strings(stringKeys.project.list.endDate)}\n \n \n {strings(stringKeys.project.list.supervisorCount)}\n \n \n {strings(stringKeys.project.list.totalDataCollectorCount)}\n \n \n {strings(stringKeys.project.list.totalReportCount)}\n \n \n {strings(stringKeys.project.list.escalatedAlertCount)}\n \n \n \n \n \n {list.map((project) => (\n goToDashboard(nationalSocietyId, project.id)}\n className={`${classes.clickableRow} ${\n project.isClosed ? classes.inactiveRow : \"\"\n }`}\n >\n {project.name}\n \n {dayjs(project.startDate).format(\"YYYY-MM-DD\")}\n \n \n {project.endDate\n ? dayjs(project.endDate).format(\"YYYY-MM-DD\")\n : strings(stringKeys.project.list.ongoing)}\n \n {project.supervisorCount}\n {project.totalDataCollectorCount}\n {project.totalReportCount}\n {project.escalatedAlertCount}\n \n \n }\n isFetching={isClosing[project.id]}\n directionRtl={rtl}\n />\n \n \n \n ))}\n \n
\n
\n closeConfirmed()}\n close={() => setRemoveConfirmationDialog({ isOpen: false })}\n >\n \n \n \n \n \n \n {strings(stringKeys.project.list.removalConfirmationText)}\n \n \n {strings(stringKeys.project.list.removalConfirmationTextTwo)}\n \n \n \n \n
\n );\n};\n\nProjectsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default ProjectsTable;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as projectsActions from \"./logic/projectsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport ProjectsTable from \"./ProjectsTable\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectsListPageComponent = (props) => {\n useMount(() => {\n props.openProjectsList(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"ProjectsListPage\");\n });\n\n const userLanguageCode = useSelector(\n (state) => state.appData.user.languageCode,\n );\n\n return (\n \n {!props.nationalSocietyIsArchived && (\n \n props.goToCreation(props.nationalSocietyId)}\n add\n roles={accessMap.projects.add}\n variant=\"contained\"\n rtl={userLanguageCode === \"ar\"}\n >\n {strings(stringKeys.common.buttons.add)}\n \n \n )}\n\n \n \n );\n};\n\nProjectsListPageComponent.propTypes = {\n getProjects: PropTypes.func,\n goToDashboard: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n close: PropTypes.func,\n isListFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n list: state.projects.listData,\n isListFetching: state.projects.listFetching,\n isClosing: state.projects.isClosing,\n callingUserRoles: state.appData.user.roles,\n isHeadManager: state.appData.siteMap.parameters.isCurrentUserHeadManager,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n});\n\nconst mapDispatchToProps = {\n openProjectsList: projectsActions.openList.invoke,\n goToDashboard: projectsActions.goToDashboard,\n goToCreation: projectsActions.goToCreation,\n goToEdition: projectsActions.goToEdition,\n close: projectsActions.close.invoke,\n};\n\nexport const ProjectsListPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(ProjectsListPageComponent),\n);\n","import styles from \"./MultiSelect.module.scss\";\n\nimport React from \"react\";\nimport Select from \"react-select\";\nimport {\n TextField,\n Typography,\n Paper,\n Chip,\n MenuItem,\n} from \"@material-ui/core\";\nimport CancelIcon from \"@material-ui/icons/Cancel\";\n\nconst components = {\n Control,\n Menu,\n MultiValue,\n NoOptionsMessage,\n Option,\n Placeholder,\n SingleValue,\n ValueContainer,\n};\n\nconst customMultiselectStyle = {\n clearIndicator: (provided) => ({\n ...provided,\n cursor: \"pointer\",\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n cursor: \"pointer\",\n }),\n};\n\nexport const MultiSelect = ({\n name,\n error,\n label,\n value,\n defaultValue,\n options,\n onChange,\n rtl,\n isClearable,\n ...restProps\n}) => {\n return (\n \n );\n};\n\nfunction MultiValue(props) {\n const isActivityReport =\n !!props.data.data && props.data.data.healthRiskType === \"Activity\";\n\n return (\n : null\n }\n classes={{label: styles.chipLabel}}\n />\n );\n}\n\nfunction NoOptionsMessage(props) {\n return (\n \n {props.children}\n \n );\n}\n\nfunction Menu(props) {\n return (\n \n {props.children}\n \n );\n}\n\nfunction inputComponent({ inputRef, ...props }) {\n return
;\n}\n\nfunction Control(props) {\n const {\n children,\n innerProps,\n innerRef,\n selectProps: { TextFieldProps },\n } = props;\n\n return (\n \n );\n}\n\nfunction Option(props) {\n return (\n \n {props.children}\n \n );\n}\n\nfunction Placeholder(props) {\n const { innerProps = {}, children } = props;\n return (\n \n {children}\n \n );\n}\n\nfunction SingleValue(props) {\n return (\n \n {props.children}\n \n );\n}\n\nfunction ValueContainer(props) {\n return
{props.children}
;\n}\n","import styles from \"./ProjectHealthRiskItem.module.scss\";\nimport React, {\n useState,\n Fragment,\n useEffect,\n useRef,\n useCallback,\n} from \"react\";\nimport { validators } from \"../../utils/forms\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport {\n Card,\n CardContent,\n Typography,\n Grid,\n makeStyles,\n useTheme,\n} from \"@material-ui/core\";\n\nexport const ProjectsHealthRiskItem = ({\n form,\n healthRisk,\n projectHealthRisk,\n rtl,\n}) => {\n const [ready, setReady] = useState(false);\n const [reportCountThreshold, setReportCountThreshold] = useState(\n healthRisk.alertRuleCountThreshold || 0,\n );\n\n const healthRiskItemRef = useRef(null);\n const getHealthRiskItemRef = useCallback((node) => healthRiskItemRef, []);\n\n const useStyles = makeStyles({\n cardBodyText: {\n fontSize: 16,\n },\n label: {\n top: -15,\n },\n content: {\n margin: \"20px -8px\",\n },\n });\n\n const classes = useStyles();\n\n const theme = useTheme();\n\n useMount(() => {\n form.addField(\n `healthRisk.${healthRisk.healthRiskId}.projectHealthRiskId` || \"\",\n projectHealthRisk.id,\n [],\n healthRiskItemRef,\n );\n form.addField(\n `healthRisk.${healthRisk.healthRiskId}.caseDefinition`,\n healthRisk.caseDefinition,\n [validators.required, validators.maxLength(500)],\n healthRiskItemRef,\n );\n form.addField(\n `healthRisk.${healthRisk.healthRiskId}.feedbackMessage`,\n healthRisk.feedbackMessage,\n [validators.required, validators.maxLength(160)],\n healthRiskItemRef,\n );\n form.addField(\n `healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold` || \"\",\n healthRisk.alertRuleCountThreshold,\n [validators.nonNegativeNumber],\n healthRiskItemRef,\n );\n form.addField(\n `healthRisk.${healthRisk.healthRiskId}.alertRuleDaysThreshold`,\n healthRisk.alertRuleDaysThreshold,\n [\n validators.requiredWhen(\n (f) =>\n f[`healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold`] >\n 1,\n ),\n validators.inRange(1, 365),\n ],\n healthRiskItemRef,\n );\n form.addField(\n `healthRisk.${healthRisk.healthRiskId}.alertRuleKilometersThreshold`,\n healthRisk.alertRuleKilometersThreshold,\n [\n validators.requiredWhen(\n (f) =>\n f[`healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold`] >\n 1,\n ),\n validators.inRange(1, 9999),\n ],\n );\n\n form.fields[\n `healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold`\n ].subscribe(({ newValue }) => setReportCountThreshold(newValue));\n setReady(true);\n\n return () => {\n form.removeField(\n `healthRisk.${healthRisk.healthRiskId}.projectHealthRiskId`,\n );\n form.removeField(`healthRisk.${healthRisk.healthRiskId}.caseDefinition`);\n form.removeField(`healthRisk.${healthRisk.healthRiskId}.feedbackMessage`);\n form.removeField(\n `healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold`,\n );\n form.removeField(\n `healthRisk.${healthRisk.healthRiskId}.alertRuleDaysThreshold`,\n );\n form.removeField(\n `healthRisk.${healthRisk.healthRiskId}.alertRuleKilometersThreshold`,\n );\n };\n });\n\n useEffect(() => {\n if (reportCountThreshold <= 1) {\n form.fields[\n `healthRisk.${healthRisk.healthRiskId}.alertRuleDaysThreshold`\n ].update(\"\");\n form.fields[\n `healthRisk.${healthRisk.healthRiskId}.alertRuleKilometersThreshold`\n ].update(\"\");\n }\n }, [form, reportCountThreshold, healthRisk]);\n\n const renderHeader = () =>\n !rtl ? (\n \n \n {healthRisk.healthRiskCode}\n \n \n {healthRisk.healthRiskName}\n \n \n ) : (\n \n \n {healthRisk.healthRiskName}\n \n \n {healthRisk.healthRiskCode}\n \n \n );\n\n if (!ready) {\n return null;\n }\n\n return (\n \n \n {renderHeader()}\n \n \n \n {strings(stringKeys.project.form.caseDefinition)}\n \n }\n classNameLabel={classes.label}\n name={`healthRisk.${healthRisk.healthRiskId}.caseDefinition`}\n field={\n form.fields[\n `healthRisk.${healthRisk.healthRiskId}.caseDefinition`\n ]\n }\n multiline\n rows={4}\n fieldRef={getHealthRiskItemRef}\n />\n \n \n \n {strings(stringKeys.project.form.feedbackMessage)}\n \n }\n classNameLabel={classes.label}\n name={`healthRisk.${healthRisk.healthRiskId}.feedbackMessage`}\n field={\n form.fields[\n `healthRisk.${healthRisk.healthRiskId}.feedbackMessage`\n ]\n }\n multiline\n rows={4}\n fieldRef={getHealthRiskItemRef}\n />\n \n \n\n \n {strings(stringKeys.project.form.alertsSection)}\n \n\n {healthRisk.healthRiskType === \"Activity\" && (\n \n {strings(stringKeys.healthRisk.form.noAlertRule)}\n \n )}\n\n {healthRisk.healthRiskType !== \"Activity\" && (\n \n \n \n \n {strings(stringKeys.project.form.alertRuleCountThreshold)}\n \n }\n name={`healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold`}\n field={\n form.fields[\n `healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold`\n ]\n }\n inputMode={\"numeric\"}\n fieldRef={getHealthRiskItemRef}\n />\n \n\n {reportCountThreshold > 1 && (\n \n \n {strings(\n stringKeys.project.form.alertRuleDaysThresholdEdit,\n )}\n \n }\n name={`healthRisk.${healthRisk.healthRiskId}.alertRuleDaysThreshold`}\n field={\n form.fields[\n `healthRisk.${healthRisk.healthRiskId}.alertRuleDaysThreshold`\n ]\n }\n inputMode={\"numeric\"}\n fieldRef={getHealthRiskItemRef}\n />\n \n )}\n\n {reportCountThreshold > 1 && (\n \n \n {strings(\n stringKeys.project.form\n .alertRuleKilometersThresholdEdit,\n )}\n \n }\n name={`healthRisk.${healthRisk.healthRiskId}.alertRuleKilometersThreshold`}\n field={\n form.fields[\n `healthRisk.${healthRisk.healthRiskId}.alertRuleKilometersThreshold`\n ]\n }\n inputMode={\"numeric\"}\n fieldRef={getHealthRiskItemRef}\n />\n \n )}\n \n \n )}\n \n \n );\n};\n","export const getSaveFormModel = (values, healthRisks) => ({\n name: values?.name,\n allowMultipleOrganizations: values?.allowMultipleOrganizations,\n timeZoneId: values?.timeZoneId,\n healthRisks:\n healthRisks &&\n healthRisks.map((healthRisk) => ({\n id: values[`healthRisk.${healthRisk.healthRiskId}.projectHealthRiskId`],\n healthRiskId: healthRisk.healthRiskId,\n feedbackMessage:\n values[`healthRisk.${healthRisk.healthRiskId}.feedbackMessage`],\n caseDefinition:\n values[`healthRisk.${healthRisk.healthRiskId}.caseDefinition`],\n alertRuleCountThreshold: parseInt(\n values[`healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold`],\n ),\n alertRuleDaysThreshold: parseInt(\n values[`healthRisk.${healthRisk.healthRiskId}.alertRuleDaysThreshold`],\n ),\n alertRuleKilometersThreshold: parseInt(\n values[\n `healthRisk.${healthRisk.healthRiskId}.alertRuleKilometersThreshold`\n ],\n ),\n })),\n organizationId:\n values && values.organizationId ? parseInt(values?.organizationId) : null,\n alertNotHandledNotificationRecipientId: parseInt(\n values?.alertNotHandledNotificationRecipientId,\n ),\n});\n","import React, {\n useState,\n Fragment,\n useEffect,\n useMemo,\n useCallback,\n createRef,\n} from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as projectsActions from \"./logic/projectsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { Grid, Typography, MenuItem } from \"@material-ui/core\";\nimport { MultiSelect } from \"../forms/MultiSelect\";\nimport { ProjectsHealthRiskItem } from \"./ProjectHealthRiskItem\";\nimport { getSaveFormModel } from \"./logic/projectsService\";\nimport SelectField from \"../forms/SelectField\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport CheckboxField from \"../forms/CheckboxField\";\nimport * as roles from \"../../authentication/roles\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectsCreatePageComponent = (props) => {\n const [healthRiskDataSource, setHealthRiskDataSource] = useState([]);\n const [selectedHealthRisks, setSelectedHealthRisks] = useState([]);\n const [healthRisksFieldTouched, setHealthRisksFieldTouched] = useState(false);\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n useEffect(() => {\n props.data &&\n setHealthRiskDataSource(\n props.data.healthRisks.map((hr) => ({\n label: hr.healthRiskName,\n value: hr.healthRiskId,\n data: hr,\n })),\n );\n props.data &&\n setSelectedHealthRisks(\n props.data.healthRisks.filter((hr) => hr.healthRiskType === \"Activity\"),\n );\n }, [props.data]);\n\n const canChangeOrganization = useCallback(\n () =>\n props.callingUserRoles.some(\n (r) => r === roles.Administrator || r === roles.Coordinator,\n ),\n [props.callingUserRoles],\n );\n\n const form = useMemo(() => {\n const fields = {\n name: \"\",\n allowMultipleOrganizations: false,\n organizationId: \"\",\n alertNotHandledNotificationRecipientId: \"\",\n };\n\n const validation = {\n name: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n organizationId: [validators.requiredWhen((f) => canChangeOrganization())],\n alertNotHandledNotificationRecipientId: [validators.required],\n };\n\n const refs = {\n name: createRef(),\n organizationId: createRef(),\n alertNotHandledNotificationRecipientId: createRef(),\n };\n\n return createForm(fields, validation, refs);\n }, [canChangeOrganization]);\n\n useCustomErrors(form, props.error);\n\n useMount(() => {\n props.openCreation(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"ProjectsCreatePage\");\n });\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const preventSubmit = selectedHealthRisks.length === 1;\n\n if (preventSubmit) {\n setHealthRisksFieldTouched(true);\n }\n\n if (!form.isValid()) {\n Object.values(form.fields)\n .filter((e) => e.error)[0]\n .scrollTo();\n return;\n }\n\n !preventSubmit &&\n props.create(\n props.nationalSocietyId,\n getSaveFormModel(form.getValues(), selectedHealthRisks),\n );\n };\n\n const onHealthRiskChange = (value, eventData) => {\n if (eventData.action === \"select-option\") {\n setSelectedHealthRisks([...selectedHealthRisks, eventData.option.data]);\n } else if (\n (eventData.action === \"remove-value\" ||\n eventData.action === \"pop-value\") &&\n eventData.removedValue.data.healthRiskType !== \"Activity\"\n ) {\n setSelectedHealthRisks(\n selectedHealthRisks.filter(\n (hr) => hr.healthRiskId !== eventData.removedValue.value,\n ),\n );\n } else if (eventData.action === \"clear\") {\n setSelectedHealthRisks(\n props.data.healthRisks.filter((hr) => hr.healthRiskType === \"Activity\"),\n );\n }\n };\n\n const getSelectedHealthRiskValue = () =>\n healthRiskDataSource\n .filter((hr) =>\n selectedHealthRisks.some((shr) => shr.healthRiskId === hr.value),\n )\n .sort((a, b) => (a.data.healthRiskType === \"Activity\" ? -1 : 1));\n\n if (!props.data) {\n return null;\n }\n\n return (\n \n {props.error && }\n\n
\n \n \n \n \n\n {canChangeOrganization() && (\n \n \n \n \n\n \n \n {props.data.organizations.map((organization) => (\n \n {organization.name}\n \n ))}\n \n \n \n )}\n\n \n \n {props.data.alertNotHandledRecipients.map((recipient) => (\n \n {recipient.name}\n \n ))}\n \n \n\n \n setHealthRisksFieldTouched(true)}\n error={\n healthRisksFieldTouched && selectedHealthRisks.length < 2\n ? `${strings(stringKeys.validation.noHealthRiskSelected)}`\n : null\n }\n rtl={useRtlDirection}\n />\n \n\n {selectedHealthRisks.length > 0 && (\n \n \n {strings(stringKeys.project.form.healthRisksSection)}\n \n \n )}\n\n {selectedHealthRisks.map((selectedHealthRisk) => (\n \n \n \n ))}\n \n\n \n props.goToList(props.nationalSocietyId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nProjectsCreatePageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n data: state.projects.formData,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isSaving: state.projects.formSaving,\n error: state.projects.formError,\n callingUserRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n openCreation: projectsActions.openCreation.invoke,\n create: projectsActions.create.invoke,\n goToList: projectsActions.goToList,\n};\n\nexport const ProjectsCreatePage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(ProjectsCreatePageComponent),\n);\n","import { connect } from \"react-redux\";\nimport { Typography } from \"@material-ui/core\";\n\nconst SubMenuTitleComponent = ({ title, ...props }) => {\n return (\n \n {title}\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n title: state.appData.siteMap.title,\n});\n\nexport const SubMenuTitle = connect(mapStateToProps, {})(SubMenuTitleComponent);\n","import React, { useState, Fragment, useEffect, createRef } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as projectsActions from \"./logic/projectsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { Grid } from \"@material-ui/core\";\nimport { getSaveFormModel } from \"./logic/projectsService\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport CheckboxField from \"../forms/CheckboxField\";\nimport { SubMenuTitle } from \"../layout/SubMenuTitle\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectsEditPageComponent = (props) => {\n useMount(() => {\n props.openEdition(props.nationalSocietyId, props.projectId);\n\n // Track page view\n trackPageView(\"ProjectsEditPage\");\n });\n\n const [form, setForm] = useState(null);\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n let fields = {\n name: props.data.name,\n allowMultipleOrganizations: props.data.allowMultipleOrganizations,\n };\n\n let validation = {\n name: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n };\n\n const refs = {\n name: createRef(),\n };\n\n setForm(createForm(fields, validation, refs));\n return () => setForm(null);\n }, [props.data]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n Object.values(form.fields)\n .filter((e) => e.error)[0]\n .scrollTo();\n return;\n }\n\n props.edit(\n props.nationalSocietyId,\n props.projectId,\n getSaveFormModel(form.getValues()),\n );\n };\n\n useCustomErrors(form, props.error);\n\n if (props.isFetching || !form) {\n return ;\n }\n\n return (\n \n \n {props.error && }\n\n
\n \n \n \n \n\n \n \n \n \n\n \n \n props.goToOverview(props.nationalSocietyId, props.projectId)\n }\n >\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nProjectsEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isFetching: state.projects.formFetching,\n isSaving: state.projects.formSaving,\n data: state.projects.formData,\n error: state.projects.formError,\n});\n\nconst mapDispatchToProps = {\n openEdition: projectsActions.openEdition.invoke,\n edit: projectsActions.edit.invoke,\n goToOverview: projectsActions.goToOverview,\n};\n\nexport const ProjectsEditPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(ProjectsEditPageComponent),\n);\n","import React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withLayout } from \"../../utils/layout\";\nimport { connect } from \"react-redux\";\nimport { AnonymousLayout } from \"../layout/AnonymousLayout\";\nimport { Paper, Button, Typography } from \"@material-ui/core\";\nimport styles from \"./VerifyEmailPage.module.scss\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { createForm, validators } from \"../../utils/forms\";\nimport PasswordInputField from \"../forms/PasswordInputField\";\nimport * as authActions from \"../../authentication/authActions\";\nimport queryString from \"query-string\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nclass VerifyEmailPageComponent extends PureComponent {\n constructor(props) {\n super(props);\n\n const fields = {\n password: \"\",\n };\n\n const validation = {\n password: [validators.required, validators.minLength(8)],\n };\n\n this.form = createForm(fields, validation);\n\n // Track page view\n trackPageView(\"VerifyEmailPage\");\n }\n\n handleSubmit = (e) => {\n e.preventDefault();\n\n if (!this.form.isValid()) {\n return;\n }\n\n const queryStrings = queryString.parse(this.props.location.search);\n\n const values = this.form.getValues();\n const email = queryStrings.email;\n const token = queryStrings.token;\n\n this.props.verifyEmail(values.password, email, token);\n };\n\n render() {\n return (\n
\n \n
\n \n {strings(stringKeys.user.verifyEmail.welcome)}\n \n \n {strings(stringKeys.user.verifyEmail.setPassword)}\n \n\n {this.props.verifyEmailErrorMessage && (\n \n )}\n\n
\n \n\n
\n \n {strings(stringKeys.user.verifyEmail.signIn)}\n \n
\n \n
\n
\n
\n );\n }\n}\n\nVerifyEmailPageComponent.propTypes = {\n verifyEmail: PropTypes.func,\n verifyEmailErrorMessage: PropTypes.string,\n};\n\nconst mapStateToProps = (state) => ({\n verifyEmailErrorMessage: state.auth.verifyEmailErrorMessage,\n});\n\nconst mapDispatchToProps = {\n verifyEmail: authActions.verifyEmail.invoke,\n};\n\nexport const VerifyEmailPage = withLayout(\n AnonymousLayout,\n connect(mapStateToProps, mapDispatchToProps)(VerifyEmailPageComponent),\n);\n","import styles from \"../common/table/Table.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer\n} from \"@material-ui/core\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\n\nexport const GlobalCoordinatorsTable = ({\n isListFetching,\n isRemoving,\n goToEdition,\n remove,\n list,\n rtl,\n}) => {\n if (isListFetching) {\n return ;\n }\n\n return (\n \n \n \n \n {strings(stringKeys.common.name)}\n \n {strings(stringKeys.common.email)}\n \n \n {strings(stringKeys.globalCoordinator.list.phoneNumber)}\n \n \n {strings(stringKeys.globalCoordinator.list.organization)}\n \n \n \n \n \n {list.map((row) => (\n goToEdition(row.id)}\n className={styles.clickableRow}\n >\n {row.name}\n {row.email}\n {row.phoneNumber}\n {row.organization}\n \n \n goToEdition(row.id)}\n icon={}\n title={\"Edit\"}\n />\n remove(row.id)}\n confirmationText={strings(\n stringKeys.globalCoordinator.list.removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.id]}\n />\n \n \n \n ))}\n \n
\n
\n );\n};\n\nGlobalCoordinatorsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default GlobalCoordinatorsTable;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as globalCoordinatorsActions from \"./logic/globalCoordinatorsActions\";\nimport * as appActions from \"../app/logic/appActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport GlobalCoordinatorsTable from \"./GlobalCoordinatorsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst GlobalCoordinatorsListPageComponent = (props) => {\n useMount(() => {\n props.openModule(props.match.path, props.match.params);\n props.getList();\n\n // Track page view\n trackPageView(\"GlobalCoordinatorsListPage\");\n });\n\n const userLanguageCode = useSelector(\n (state) => state.appData.user.languageCode,\n );\n\n return (\n \n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n\n \n \n );\n};\n\nGlobalCoordinatorsListPageComponent.propTypes = {\n getGlobalCoordinators: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n list: state.globalCoordinators.listData,\n isListFetching: state.globalCoordinators.listFetching,\n isRemoving: state.globalCoordinators.listRemoving,\n});\n\nconst mapDispatchToProps = {\n getList: globalCoordinatorsActions.getList.invoke,\n goToCreation: globalCoordinatorsActions.goToCreation,\n goToEdition: globalCoordinatorsActions.goToEdition,\n remove: globalCoordinatorsActions.remove.invoke,\n openModule: appActions.openModule.invoke,\n};\n\nexport const GlobalCoordinatorsListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(GlobalCoordinatorsListPageComponent),\n);\n","import styles from \"./PhoneInputField.module.scss\";\nimport React, { Fragment } from \"react\";\nimport PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\nimport { createFieldComponent } from \"./FieldBase\";\nimport { FormHelperText, InputLabel } from \"@material-ui/core\";\nimport { useEffect } from \"react\";\n\nconst DEMO_NS_COUNTRY = \"MI\"; // demo National Society\n\nconst PhoneInputComponent = ({\n error,\n value,\n defaultCountry,\n name,\n label,\n controlProps,\n fieldRef,\n rtl,\n}) => {\n useEffect(() => {\n document.documentElement.style.setProperty(\n \"--selected-flag-padding\",\n rtl ? \"0 8px 0 0\" : \"0 0 0 8px\",\n );\n document.documentElement.style.setProperty(\n \"--flag-arrow-left\",\n rtl ? \"0\" : \"20px\",\n );\n document.documentElement.style.setProperty(\n \"--flag-arrow-right\",\n rtl ? \"20px\" : \"0\",\n );\n document.documentElement.style.setProperty(\n \"--phone-input-padding-left\",\n rtl ? \"10px\" : \"48px\",\n );\n document.documentElement.style.setProperty(\n \"--phone-input-padding-right\",\n rtl ? \"48px\" : \"0\",\n );\n document.documentElement.style.setProperty(\n \"--selected-flag-option-margin-right\",\n rtl ? \"0\" : \"7px\",\n );\n document.documentElement.style.setProperty(\n \"--selected-flag-option-margin-left\",\n rtl ? \"7px\" : \"0\",\n );\n }, [rtl]);\n\n return (\n \n {label}\n \n {error && {error}}\n \n );\n};\n\nconst PhoneInputField = createFieldComponent(PhoneInputComponent);\nexport default PhoneInputField;\n","import React, { useState, Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm } from \"../../utils/forms\";\nimport * as globalCoordinatorsActions from \"./logic/globalCoordinatorsActions\";\nimport * as appActions from \"../app/logic/appActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport PhoneInputField from \"../forms/PhoneInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { Grid } from \"@material-ui/core\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst GlobalCoordinatorsCreatePageComponent = (props) => {\n const [form] = useState(() => {\n const fields = {\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n additionalPhoneNumber: \"\",\n organization: \"\",\n };\n\n const validation = {\n name: [validators.required, validators.maxLength(100)],\n email: [validators.required, validators.email, validators.maxLength(100)],\n phoneNumber: [\n validators.required,\n validators.maxLength(20),\n validators.phoneNumber,\n ],\n additionalPhoneNumber: [validators.maxLength(20), validators.phoneNumber],\n organization: [validators.maxLength(100)],\n };\n\n return createForm(fields, validation);\n });\n\n useMount(() => {\n props.openModule(props.match.path, props.match.params);\n\n // Track page view\n trackPageView(\"GlobalCoordinatorsCreatePage\");\n });\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n props.create(values);\n };\n\n return (\n \n {props.error && }\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 props.goToList()}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nGlobalCoordinatorsCreatePageComponent.propTypes = {\n getGlobalCoordinators: PropTypes.func,\n openModule: PropTypes.func,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n contentLanguages: state.appData.contentLanguages,\n countries: state.appData.countries,\n error: state.globalCoordinators.formError,\n isSaving: state.globalCoordinators.formSaving,\n});\n\nconst mapDispatchToProps = {\n getList: globalCoordinatorsActions.getList.invoke,\n create: globalCoordinatorsActions.create.invoke,\n goToList: globalCoordinatorsActions.goToList,\n openModule: appActions.openModule.invoke,\n};\n\nexport const GlobalCoordinatorsCreatePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(GlobalCoordinatorsCreatePageComponent),\n);\n","import React, { useEffect, useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm } from \"../../utils/forms\";\nimport * as globalCoordinatorsActions from \"./logic/globalCoordinatorsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport PhoneInputField from \"../forms/PhoneInputField\";\nimport { Grid } from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst GlobalCoordinatorsEditPageComponent = (props) => {\n const [form, setForm] = useState(null);\n\n useMount(() => {\n props.openEdition(props.match);\n\n // Track page view\n trackPageView(\"GlobalCoordinatorsEditPage\");\n });\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n const fields = {\n id: props.data.id,\n name: props.data.name,\n phoneNumber: props.data.phoneNumber,\n additionalPhoneNumber: props.data.additionalPhoneNumber,\n organization: props.data.organization,\n };\n\n const validation = {\n name: [validators.required, validators.maxLength(100)],\n phoneNumber: [\n validators.required,\n validators.maxLength(20),\n validators.phoneNumber,\n ],\n additionalPhoneNumber: [validators.maxLength(20), validators.phoneNumber],\n organization: [validators.maxLength(100)],\n };\n\n setForm(createForm(fields, validation));\n }, [props.data, props.match]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n props.edit(values);\n };\n\n if (props.isFetching || !form) {\n return ;\n }\n\n return (\n \n
\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n props.goToList()}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nGlobalCoordinatorsEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state) => ({\n isFetching: state.globalCoordinators.formFetching,\n isSaving: state.globalCoordinators.formSaving,\n data: state.globalCoordinators.formData,\n});\n\nconst mapDispatchToProps = {\n openEdition: globalCoordinatorsActions.openEdition.invoke,\n goToList: globalCoordinatorsActions.goToList,\n edit: globalCoordinatorsActions.edit.invoke,\n};\n\nexport const GlobalCoordinatorsEditPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(GlobalCoordinatorsEditPageComponent),\n);\n","import React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withLayout } from \"../../utils/layout\";\nimport { connect } from \"react-redux\";\nimport { AnonymousLayout } from \"../layout/AnonymousLayout\";\nimport TextInputField from \"../forms/TextInputField\";\nimport styles from \"./ResetPasswordPage.module.scss\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { createForm, validators } from \"../../utils/forms\";\nimport * as authActions from \"../../authentication/authActions\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport { Link, Paper, Typography, Grid } from \"@material-ui/core\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nclass ResetPasswordPageComponent extends PureComponent {\n constructor(props) {\n super(props);\n\n const fields = {\n emailAddress: \"\",\n };\n\n const validation = {\n emailAddress: [validators.required, validators.email],\n };\n\n this.form = createForm(fields, validation);\n\n // Track page view\n trackPageView(\"ResetPasswordPage\");\n }\n\n handleSubmit = (e) => {\n e.preventDefault();\n\n if (!this.form.isValid()) {\n return;\n }\n\n const values = this.form.getValues();\n\n this.props.resetPassword(values.emailAddress);\n };\n\n render() {\n return (\n
\n \n
\n \n {strings(stringKeys.user.resetPassword.enterEmail)}\n \n\n {this.props.resetPasswordErrorMessage && (\n \n )}\n\n
\n \n \n \n \n \n\n \n \n \n \n {strings(stringKeys.user.resetPassword.goToLoginPage)}\n \n \n \n \n {strings(stringKeys.user.resetPassword.submit)}\n \n \n \n \n
\n
\n
\n
\n );\n }\n}\n\nResetPasswordPageComponent.propTypes = {\n resetPassword: PropTypes.func,\n resetPasswordErrorMessage: PropTypes.string,\n};\n\nconst mapStateToProps = (state) => ({\n resetPasswordErrorMessage: state.auth.resetPasswordErrorMessage,\n isFetching: state.requests.isFetching,\n});\n\nconst mapDispatchToProps = {\n resetPassword: authActions.resetPassword.invoke,\n};\n\nexport const ResetPasswordPage = withLayout(\n AnonymousLayout,\n connect(mapStateToProps, mapDispatchToProps)(ResetPasswordPageComponent),\n);\n","import React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withLayout } from \"../../utils/layout\";\nimport { connect } from \"react-redux\";\nimport { AnonymousLayout } from \"../layout/AnonymousLayout\";\nimport { Paper, Button, Typography } from \"@material-ui/core\";\nimport styles from \"./ResetPasswordCallbackPage.module.scss\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { createForm, validators } from \"../../utils/forms\";\nimport PasswordInputField from \"../forms/PasswordInputField\";\nimport * as authActions from \"../../authentication/authActions\";\nimport queryString from \"query-string\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nclass ResetPasswordCallbackPageComponent extends PureComponent {\n constructor(props) {\n super(props);\n\n // Track page view\n trackPageView(\"ResetPasswordCallbackPage\");\n\n const fields = {\n password: \"\",\n };\n\n const validation = {\n password: [validators.required, validators.minLength(8)],\n };\n\n this.form = createForm(fields, validation);\n }\n\n handleSubmit = (e) => {\n e.preventDefault();\n\n if (!this.form.isValid()) {\n return;\n }\n\n const queryStrings = queryString.parse(this.props.location.search);\n\n const values = this.form.getValues();\n const email = queryStrings.email;\n const token = queryStrings.token;\n\n this.props.resetPasswordCallback(values.password, email, token);\n };\n\n render() {\n return (\n
\n \n
\n \n {strings(stringKeys.user.resetPassword.enterNewPassword)}\n \n\n {this.props.resetPasswordCallbackErrorMessage && (\n \n )}\n\n
\n \n\n
\n \n
\n \n
\n
\n
\n );\n }\n}\n\nResetPasswordCallbackPageComponent.propTypes = {\n resetPasswordCallback: PropTypes.func,\n resetPasswordCallbackErrorMessage: PropTypes.string,\n};\n\nconst mapStateToProps = (state) => ({\n resetPasswordCallbackErrorMessage:\n state.auth.resetPasswordCallbackErrorMessage,\n});\n\nconst mapDispatchToProps = {\n resetPasswordCallback: authActions.resetPasswordCallback.invoke,\n};\n\nexport const ResetPasswordCallbackPage = withLayout(\n AnonymousLayout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ResetPasswordCallbackPageComponent),\n);\n","import styles from \"../common/table/Table.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n useTheme,\n useMediaQuery,\n TableContainer\n} from \"@material-ui/core\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\n\nexport const HealthRisksTable = ({\n isListFetching,\n isRemoving,\n goToEdition,\n remove,\n list,\n rtl,\n}) => {\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n \n if (isListFetching) {\n return ;\n }\n return (\n \n \n \n \n \n {strings(stringKeys.healthRisk.list.healthRiskCode)}\n \n {strings(stringKeys.healthRisk.list.name)}\n \n {strings(stringKeys.healthRisk.list.healthRiskType)}\n \n \n \n \n \n {list.map((row) => (\n goToEdition(row.id)}\n className={`${styles.clickableRow} ${isSmallScreen ? styles.smallDeviceTableRow : \"\"}`}\n >\n {row.healthRiskCode}\n {row.name}\n \n {strings(\n stringKeys.healthRisk.constants.healthRiskType[\n row.healthRiskType.toLowerCase()\n ],\n )}\n \n \n \n goToEdition(row.id)}\n icon={}\n title={\"Edit\"}\n />\n remove(row.id)}\n confirmationText={strings(\n stringKeys.healthRisk.list.removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.id]}\n />\n \n \n \n ))}\n \n
\n
\n );\n};\n\nHealthRisksTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default HealthRisksTable;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as healthRisksActions from \"./logic/healthRisksActions\";\nimport * as appActions from \"../app/logic/appActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport HealthRisksTable from \"./HealthRisksTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst HealthRisksListPageComponent = (props) => {\n useMount(() => {\n props.openModule(props.match.path, props.match.params);\n props.getList();\n\n // Track page view\n trackPageView(\"HealthRisksListPage\");\n });\n\n const userLanguageCode = useSelector(\n (state) => state.appData.user.languageCode,\n );\n\n return (\n \n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n\n \n \n );\n};\n\nHealthRisksListPageComponent.propTypes = {\n getHealthRisks: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n list: state.healthRisks.listData,\n isListFetching: state.healthRisks.listFetching,\n isRemoving: state.healthRisks.listRemoving,\n});\n\nconst mapDispatchToProps = {\n getList: healthRisksActions.getList.invoke,\n goToCreation: healthRisksActions.goToCreation,\n goToEdition: healthRisksActions.goToEdition,\n remove: healthRisksActions.remove.invoke,\n openModule: appActions.openModule.invoke,\n};\n\nexport const HealthRisksListPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(HealthRisksListPageComponent),\n);\n","export const getSaveFormModel = (\n values,\n contentLanguages,\n selectedSuspectedDiseases,\n) => ({\n healthRiskCode: parseInt(values.healthRiskCode),\n healthRiskType: values.healthRiskType,\n alertRuleCountThreshold: parseInt(values.alertRuleCountThreshold),\n alertRuleDaysThreshold: parseInt(values.alertRuleDaysThreshold),\n alertRuleKilometersThreshold: parseInt(values.alertRuleKilometersThreshold),\n healthRiskSuspectedDiseases: selectedSuspectedDiseases.map((sd) => ({\n suspectedDiseaseId: sd.suspectedDiseaseId,\n })),\n languageContent: contentLanguages.map((lang) => ({\n languageId: lang.id,\n name: values[`contentLanguage_${lang.id}_name`],\n caseDefinition: values[`contentLanguage_${lang.id}_caseDefinition`],\n feedbackMessage: values[`contentLanguage_${lang.id}_feedbackMessage`],\n })),\n});\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as healthRisksActions from \"./logic/healthRisksActions\";\nimport * as appActions from \"../app/logic/appActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { Typography, MenuItem, Grid } from \"@material-ui/core\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport SelectField from \"../forms/SelectField\";\nimport { healthRiskTypes } from \"./logic/healthRisksConstants\";\nimport { getSaveFormModel } from \"./logic/healthRisksService\";\nimport { strings, stringKeys, stringsFormat } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { MultiSelect } from \"../forms/MultiSelect\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst HealthRisksCreatePageComponent = (props) => {\n const [suspectedDiseasesDataSource, setSuspectedDiseasesDataSource] =\n useState([]);\n const [selectedSuspectedDiseases, setSelectedSuspectedDiseases] = useState(\n [],\n );\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n const [reportCountThreshold, setReportCountThreshold] = useState(0);\n const [selectedHealthRiskType, setHealthRiskType] = useState(null);\n const [form] = useState(() => {\n let fields = {\n healthRiskCode: \"\",\n healthRiskType: \"Human\",\n alertRuleCountThreshold: \"\",\n alertRuleDaysThreshold: \"\",\n alertRuleKilometersThreshold: \"\",\n };\n\n let validation = {\n healthRiskCode: [validators.required, validators.nonNegativeNumber],\n healthRiskType: [validators.required],\n alertRuleCountThreshold: [validators.nonNegativeNumber],\n alertRuleDaysThreshold: [\n validators.requiredWhen((f) => f.alertRuleCountThreshold > 1),\n validators.inRange(1, 365),\n ],\n alertRuleKilometersThreshold: [\n validators.requiredWhen((f) => f.alertRuleCountThreshold > 1),\n validators.inRange(1, 9999),\n ],\n };\n\n const finalFormData = props.contentLanguages.reduce(\n (result, lang) => ({\n fields: {\n ...result.fields,\n [`contentLanguage_${lang.id}_name`]: \"\",\n [`contentLanguage_${lang.id}_caseDefinition`]: \"\",\n [`contentLanguage_${lang.id}_feedbackMessage`]: \"\",\n },\n validation: {\n ...result.validation,\n [`contentLanguage_${lang.id}_name`]: [\n validators.required,\n validators.maxLength(100),\n ],\n [`contentLanguage_${lang.id}_caseDefinition`]: [\n validators.required,\n validators.maxLength(500),\n ],\n [`contentLanguage_${lang.id}_feedbackMessage`]: [\n validators.required,\n validators.maxLength(160),\n ],\n },\n }),\n { fields, validation },\n );\n\n const newForm = createForm(finalFormData.fields, finalFormData.validation);\n newForm.fields.alertRuleCountThreshold.subscribe(({ newValue }) =>\n setReportCountThreshold(newValue),\n );\n newForm.fields.healthRiskType.subscribe(({ newValue }) =>\n setHealthRiskType(newValue),\n );\n return newForm;\n });\n\n useEffect(() => {\n props.data &&\n setSuspectedDiseasesDataSource(\n props.data.map((sd) => ({\n value: sd.suspectedDiseaseId,\n label: sd.suspectedDiseaseName,\n data: sd,\n })),\n );\n if (form && reportCountThreshold <= 1) {\n form.fields.alertRuleDaysThreshold.update(\"\");\n form.fields.alertRuleKilometersThreshold.update(\"\");\n }\n return;\n }, [form, reportCountThreshold, props.data]);\n\n const [healthRiskTypesData] = useState(\n healthRiskTypes.map((t) => ({\n value: t,\n label: strings(\n stringKeys.healthRisk.constants.healthRiskType[t.toLowerCase()],\n ),\n })),\n );\n\n useMount(() => {\n props.openModule(props.match.path, props.match.params);\n ///Added to handle suspected disease list\n props.openCreation();\n\n // Track page view\n trackPageView(\"HealthRisksCreatePage\");\n });\n\n useCustomErrors(form, props.formError);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n console.log(\"selected SD\");\n console.log(selectedSuspectedDiseases);\n\n props.create(\n getSaveFormModel(\n form.getValues(),\n props.contentLanguages,\n selectedSuspectedDiseases,\n ),\n );\n };\n\n //Handle add or remove suspected disease values in list\n const onSuspectedDiseaseChange = (value, eventData) => {\n if (eventData.action === \"select-option\") {\n setSelectedSuspectedDiseases([\n ...selectedSuspectedDiseases,\n eventData.option.data,\n ]);\n } else if (\n eventData.action === \"remove-value\" ||\n eventData.action === \"pop-value\"\n ) {\n setSelectedSuspectedDiseases(\n selectedSuspectedDiseases.filter(\n (sd) => sd.suspectedDiseaseId !== eventData.removedValue.value,\n ),\n );\n } else if (eventData.action === \"clear\") {\n suspectedDiseasesDataSource.sort();\n }\n };\n\n const getSelectedSuspectedDiseaseValue = () =>\n suspectedDiseasesDataSource.filter((sd) =>\n selectedSuspectedDiseases.some(\n (ssd) => ssd.suspectedDiseaseId === sd.value,\n ),\n );\n\n return (\n \n {props.formError && (\n \n )}\n\n
\n \n \n \n \n \n \n {healthRiskTypesData.map(({ value, label }) => (\n \n {label}\n \n ))}\n \n \n \n \n {strings(stringKeys.healthRisk.form.suspectedDiseaseTitle)}\n \n \n \n\n {props.contentLanguages.map((lang) => (\n \n \n \n {stringsFormat(\n stringKeys.healthRisk.form.translationsSection,\n { language: lang.name },\n )}\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n ))}\n\n {selectedHealthRiskType === \"Activity\" && (\n \n \n \n {strings(stringKeys.healthRisk.form.alertsSection)}\n \n \n {strings(stringKeys.healthRisk.form.noAlertRule)}\n \n \n \n )}\n\n {selectedHealthRiskType !== \"Activity\" && (\n \n \n \n {strings(stringKeys.healthRisk.form.alertsSection)}\n \n \n {strings(stringKeys.healthRisk.form.alertRuleDescription)}\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n )}\n \n\n \n props.goToList()}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nHealthRisksCreatePageComponent.propTypes = {\n getHealthRisks: PropTypes.func,\n openModule: PropTypes.func,\n openCreation: PropTypes.func, //Added\n data: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n data: state.healthRisks.formData,\n contentLanguages: state.appData.contentLanguages,\n formError: state.healthRisks.formError,\n isSaving: state.healthRisks.formSaving,\n});\n\nconst mapDispatchToProps = {\n getList: healthRisksActions.getList.invoke,\n create: healthRisksActions.create.invoke,\n goToList: healthRisksActions.goToList,\n openCreation: healthRisksActions.openCreation.invoke, //Added\n openModule: appActions.openModule.invoke,\n};\n\nexport const HealthRisksCreatePage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(HealthRisksCreatePageComponent),\n);\n","import React, { useEffect, useState, Fragment } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as healthRisksActions from \"./logic/healthRisksActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { Typography, Grid, MenuItem } from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport SelectField from \"../forms/SelectField\";\nimport { healthRiskTypes } from \"./logic/healthRisksConstants\";\nimport { getSaveFormModel } from \"./logic/healthRisksService\";\nimport { strings, stringKeys, stringsFormat } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { MultiSelect } from \"../forms/MultiSelect\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst HealthRisksEditPageComponent = (props) => {\n const [suspectedDiseasesDataSource, setSuspectedDiseasesDataSource] =\n useState([]);\n const [selectedSuspectedDiseases, setSelectedSuspectedDiseases] = useState(\n [],\n );\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n const [form, setForm] = useState(null);\n const [selectedHealthRiskType, setHealthRiskType] = useState(null);\n const [reportCountThreshold, setReportCountThreshold] = useState(null);\n\n useMount(() => {\n props.openEdition(props.match);\n\n // Track page view\n trackPageView(\"HealthRisksEditPage\");\n });\n\n useEffect(() => {\n props.data &&\n setSuspectedDiseasesDataSource(\n props.data.suspectedDiseasesList.map((sd) => ({\n label: sd.suspectedDiseaseName,\n value: sd.suspectedDiseaseId,\n data: sd,\n })),\n );\n if (form && reportCountThreshold <= 1) {\n form.fields.alertRuleDaysThreshold.update(\"\");\n form.fields.alertRuleKilometersThreshold.update(\"\");\n }\n return;\n }, [form, reportCountThreshold]);\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n setReportCountThreshold(props.data.alertRuleCountThreshold);\n setHealthRiskType(props.data.healthRiskType);\n\n //Added to recall all suspected diseases link to selected health risk\n setSelectedSuspectedDiseases(props.data.healthRiskSuspectedDiseases);\n\n let fields = {\n healthRiskCode: props.data.healthRiskCode.toString(),\n healthRiskType: props.data.healthRiskType,\n alertRuleCountThreshold: props.data.alertRuleCountThreshold,\n alertRuleDaysThreshold: props.data.alertRuleDaysThreshold,\n alertRuleKilometersThreshold: props.data.alertRuleKilometersThreshold,\n };\n\n let validation = {\n healthRiskCode: [validators.required, validators.nonNegativeNumber],\n healthRiskType: [validators.required],\n alertRuleCountThreshold: [validators.nonNegativeNumber],\n alertRuleDaysThreshold: [\n validators.requiredWhen((f) => f.alertRuleCountThreshold > 1),\n validators.inRange(1, 365),\n ],\n alertRuleKilometersThreshold: [\n validators.requiredWhen((f) => f.alertRuleCountThreshold > 1),\n validators.inRange(1, 9999),\n ],\n };\n\n const finalFormData = props.contentLanguages\n .map((lang) => ({\n lang,\n content: props.data.languageContent.find(\n (lc) => lc.languageId === lang.id,\n ),\n }))\n .reduce(\n (result, { lang, content }) => ({\n fields: {\n ...result.fields,\n [`contentLanguage_${lang.id}_name`]: content && content.name,\n [`contentLanguage_${lang.id}_caseDefinition`]:\n content && content.caseDefinition,\n [`contentLanguage_${lang.id}_feedbackMessage`]:\n content && content.feedbackMessage,\n },\n validation: {\n ...result.validation,\n [`contentLanguage_${lang.id}_name`]: [\n validators.required,\n validators.maxLength(100),\n ],\n [`contentLanguage_${lang.id}_caseDefinition`]: [\n validators.required,\n validators.maxLength(500),\n ],\n [`contentLanguage_${lang.id}_feedbackMessage`]: [\n validators.required,\n validators.maxLength(160),\n ],\n },\n }),\n { fields, validation },\n );\n\n const newForm = createForm(finalFormData.fields, finalFormData.validation);\n newForm.fields.alertRuleCountThreshold.subscribe(({ newValue }) =>\n setReportCountThreshold(newValue),\n );\n newForm.fields.healthRiskType.subscribe(({ newValue }) =>\n setHealthRiskType(newValue),\n );\n setForm(newForm);\n }, [props.data, props.contentLanguages]);\n\n const [healthRiskTypesData] = useState(\n healthRiskTypes.map((t) => ({\n value: t,\n label: strings(\n stringKeys.healthRisk.constants.healthRiskType[t.toLowerCase()],\n ),\n })),\n );\n\n useCustomErrors(form, props.formError);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n props.edit(\n props.data.id,\n getSaveFormModel(\n form.getValues(),\n props.contentLanguages,\n selectedSuspectedDiseases,\n ),\n );\n };\n\n //Handling changing selected suspected disease for selected health risk\n const onSuspectedDiseaseChange = (value, eventData) => {\n if (eventData.action === \"select-option\") {\n setSelectedSuspectedDiseases([\n ...selectedSuspectedDiseases,\n eventData.option.data,\n ]);\n } else if (\n eventData.action === \"remove-value\" ||\n eventData.action === \"pop-value\"\n ) {\n setSelectedSuspectedDiseases(\n selectedSuspectedDiseases.filter(\n (sd) => sd.suspectedDiseaseId !== eventData.removedValue.value,\n ),\n );\n } else if (eventData.action === \"clear\") {\n suspectedDiseasesDataSource.sort();\n }\n };\n\n //Handling changing values in suspected disease list\n const getSelectedSuspectedDiseaseValue = () =>\n suspectedDiseasesDataSource.filter((sd) =>\n selectedSuspectedDiseases.some(\n (ssd) => ssd.suspectedDiseaseId === sd.value,\n ),\n );\n\n if (props.isFetching || !form) {\n return ;\n }\n\n return (\n \n {props.formError && (\n \n )}\n\n
\n \n \n \n \n \n \n {healthRiskTypesData.map(({ value, label }) => (\n \n {label}\n \n ))}\n \n \n\n \n \n {strings(stringKeys.healthRisk.form.suspectedDiseaseTitle)}\n \n form.fields.healthRiskSuspectedDiseases\n options={suspectedDiseasesDataSource}\n value={getSelectedSuspectedDiseaseValue()}\n onChange={onSuspectedDiseaseChange}\n rtl={useRtlDirection}\n />\n \n\n {props.contentLanguages.map((lang) => (\n \n \n \n {stringsFormat(\n stringKeys.healthRisk.form.translationsSection,\n { language: lang.name },\n )}\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n ))}\n\n {selectedHealthRiskType === \"Activity\" && (\n \n \n \n {strings(stringKeys.healthRisk.form.alertsSection)}\n \n \n {strings(stringKeys.healthRisk.form.noAlertRule)}\n \n \n \n )}\n\n {selectedHealthRiskType !== \"Activity\" && (\n \n \n \n {strings(stringKeys.healthRisk.form.alertsSection)}\n \n \n {strings(stringKeys.healthRisk.form.alertRuleDescription)}\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n )}\n \n\n \n props.goToList()}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nHealthRisksEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state) => ({\n contentLanguages: state.appData.contentLanguages,\n isFetching: state.healthRisks.formFetching,\n isSaving: state.healthRisks.formSaving,\n formError: state.healthRisks.formError,\n data: state.healthRisks.formData,\n});\n\nconst mapDispatchToProps = {\n openEdition: healthRisksActions.openEdition.invoke,\n goToList: healthRisksActions.goToList,\n edit: healthRisksActions.edit.invoke,\n};\n\nexport const HealthRisksEditPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(HealthRisksEditPageComponent),\n);\n","import styles from \"../common/table/Table.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer\n} from \"@material-ui/core\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\n\nexport const SuspectedDiseaseTable = ({\n isListFetching,\n isRemoving,\n goToEdition,\n remove,\n list,\n rtl,\n}) => {\n if (isListFetching) {\n return ;\n }\n\n return (\n \n \n \n \n \n {strings(stringKeys.suspectedDisease.list.suspectedDiseaseCode)}\n \n \n {strings(stringKeys.suspectedDisease.list.suspectedDiseaseName)}\n \n \n \n \n \n {list.map((row) => (\n goToEdition(row.suspectedDiseaseId)}\n className={styles.clickableRow}\n >\n {row.suspectedDiseaseCode}\n {row.suspectedDiseaseName}\n \n \n goToEdition(row.suspectedDiseaseId)}\n icon={}\n title={\"Edit\"}\n />\n remove(row.suspectedDiseaseId)}\n confirmationText={strings(\n stringKeys.suspectedDisease.list.removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.suspectedDiseaseId]}\n />\n \n \n \n ))}\n \n
\n
\n );\n};\n\nSuspectedDiseaseTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default SuspectedDiseaseTable;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as suspectedDiseaseActions from \"./logic/suspectedDiseaseActions\";\nimport * as appActions from \"../app/logic/appActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport SuspectedDiseaseTable from \"./SuspectedDiseaseTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst SuspectedDiseaseListPageComponent = (props) => {\n useMount(() => {\n props.openModule(props.match.path, props.match.params);\n props.getList();\n\n // Track page view\n trackPageView(\"SuspectedDiseaseListPage\");\n });\n\n const userLanguageCode = useSelector(\n (state) => state.appData.user.languageCode,\n );\n\n return (\n \n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n\n \n \n );\n};\n\nSuspectedDiseaseListPageComponent.propTypes = {\n getSuspectedDisease: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n list: state.suspectedDiseases.listData,\n isListFetching: state.suspectedDiseases.listFetching,\n isRemoving: state.suspectedDiseases.listRemoving,\n});\n\nconst mapDispatchToProps = {\n getList: suspectedDiseaseActions.getList.invoke,\n goToCreation: suspectedDiseaseActions.goToCreation,\n goToEdition: suspectedDiseaseActions.goToEdition,\n remove: suspectedDiseaseActions.remove.invoke,\n openModule: appActions.openModule.invoke,\n};\n\nexport const SuspectedDiseaseListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(SuspectedDiseaseListPageComponent),\n);\n","export const getSaveFormModel = (values, contentLanguages) => ({\n suspectedDiseaseCode: parseInt(values.suspectedDiseaseCode),\n languageContent: contentLanguages.map((lang) => ({\n languageId: lang.id,\n name: values[`contentLanguage_${lang.id}_name`],\n })),\n});\n","import React, { useState, Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as suspectedDiseaseActions from \"./logic/suspectedDiseaseActions\";\nimport * as appActions from \"../app/logic/appActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { Typography, Grid } from \"@material-ui/core\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { getSaveFormModel } from \"./logic/suspectedDiseaseService\";\nimport { strings, stringKeys, stringsFormat } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst SuspectedDiseaseCreatePageComponent = (props) => {\n const [form] = useState(() => {\n let fields = {\n suspectedDiseaseCode: \"\",\n };\n\n let validation = {\n suspectedDiseaseCode: [validators.required, validators.nonNegativeNumber],\n };\n\n const finalFormData = props.contentLanguages.reduce(\n (result, lang) => ({\n fields: {\n ...result.fields,\n [`contentLanguage_${lang.id}_name`]: \"\",\n },\n validation: {\n ...result.validation,\n [`contentLanguage_${lang.id}_name`]: [\n validators.required,\n validators.maxLength(100),\n ],\n },\n }),\n { fields, validation },\n );\n\n const newForm = createForm(finalFormData.fields, finalFormData.validation);\n return newForm;\n });\n\n useMount(() => {\n props.openModule(props.match.path, props.match.params);\n\n // Track page view\n trackPageView(\"SuspectedDiseaseCreatePage\");\n });\n\n useCustomErrors(form, props.formError);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n props.create(getSaveFormModel(form.getValues(), props.contentLanguages));\n };\n\n return (\n \n {props.formError && (\n \n )}\n\n
\n \n \n \n\n {props.contentLanguages.map((lang) => (\n \n \n \n {stringsFormat(stringKeys.healthRisk.form.translationsSection, {\n language: lang.name,\n })}\n \n\n \n \n \n \n \n \n \n ))}\n\n \n props.goToList()}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nSuspectedDiseaseCreatePageComponent.propTypes = {\n getSuspectedDisease: PropTypes.func,\n openModule: PropTypes.func,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n contentLanguages: state.appData.contentLanguages,\n formError: state.suspectedDiseases.formError,\n isSaving: state.suspectedDiseases.formSaving,\n});\n\nconst mapDispatchToProps = {\n getList: suspectedDiseaseActions.getList.invoke,\n create: suspectedDiseaseActions.create.invoke,\n goToList: suspectedDiseaseActions.goToList,\n openModule: appActions.openModule.invoke,\n};\n\nexport const SuspectedDiseaseCreatePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(SuspectedDiseaseCreatePageComponent),\n);\n","import React, { useEffect, useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as suspectedDiseaseActions from \"./logic/suspectedDiseaseActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { Typography, Grid } from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { getSaveFormModel } from \"./logic/suspectedDiseaseService\";\nimport { strings, stringKeys, stringsFormat } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst SuspectedDiseaseEditPageComponent = (props) => {\n const [form, setForm] = useState(null);\n\n useMount(() => {\n props.openEdition(props.match);\n\n // Track page view\n trackPageView(\"SuspectedDiseaseEditPage\");\n });\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n let fields = {\n suspectedDiseaseId: props.data.suspectedDiseaseId.toString(),\n suspectedDiseaseCode: props.data.suspectedDiseaseCode.toString(),\n };\n\n let validation = {\n suspectedDiseaseId: [validators.required, validators.nonNegativeNumber],\n suspectedDiseaseCode: [validators.required, validators.nonNegativeNumber],\n };\n\n const finalFormData = props.contentLanguages\n .map((lang) => ({\n lang,\n content: props.data.languageContent.find(\n (lc) => lc.languageId === lang.id,\n ),\n }))\n .reduce(\n (result, { lang, content }) => ({\n fields: {\n ...result.fields,\n [`contentLanguage_${lang.id}_name`]: content && content.name,\n },\n validation: {\n ...result.validation,\n [`contentLanguage_${lang.id}_name`]: [\n validators.required,\n validators.maxLength(100),\n ],\n },\n }),\n { fields, validation },\n );\n\n const newForm = createForm(finalFormData.fields, finalFormData.validation);\n setForm(newForm);\n }, [props.data, props.contentLanguages]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n props.edit(\n props.data.suspectedDiseaseId,\n getSaveFormModel(form.getValues(), props.contentLanguages),\n );\n };\n\n useCustomErrors(form, props.formError);\n\n if (props.isFetching || !form) {\n return ;\n }\n\n return (\n \n {props.formError && (\n \n )}\n\n
\n \n \n \n \n\n {props.contentLanguages.map((lang) => (\n \n \n \n {stringsFormat(\n stringKeys.healthRisk.form.translationsSection,\n { language: lang.name },\n )}\n \n\n \n \n \n \n \n \n \n ))}\n \n\n \n props.goToList()}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nSuspectedDiseaseEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state) => ({\n contentLanguages: state.appData.contentLanguages,\n isFetching: state.suspectedDiseases.formFetching,\n isSaving: state.suspectedDiseases.formSaving,\n formError: state.suspectedDiseases.formError,\n data: state.suspectedDiseases.formData,\n});\n\nconst mapDispatchToProps = {\n openEdition: suspectedDiseaseActions.openEdition.invoke,\n goToList: suspectedDiseaseActions.goToList,\n edit: suspectedDiseaseActions.edit.invoke,\n};\n\nexport const SuspectedDiseaseEditPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(SuspectedDiseaseEditPageComponent),\n);\n","import styles from \"../common/table/Table.module.scss\";\nimport { Fragment } from \"react\";\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n Tooltip,\n} from \"@material-ui/core\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport CheckIcon from \"@material-ui/icons/Check\";\nimport GlassHourIcon from \"@material-ui/icons/HourglassEmpty\";\nimport * as Roles from \"../../authentication/roles\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableRowMenu } from \"../common/tableRowAction/TableRowMenu\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\n\nexport const NationalSocietyUsersTable = ({\n isListFetching,\n isRemoving,\n goToEdition,\n remove,\n list,\n nationalSocietyId,\n setAsHeadManager,\n isSettingAsHead,\n user,\n rtl,\n}) => {\n if (isListFetching) {\n return ;\n }\n\n const headManagers = list.filter((u) => {\n return u.isHeadManager;\n });\n const hasSimilarAccess =\n user.roles.filter((r) => {\n return accessMap.nationalSocietyUsers.headManagerAccess.indexOf(r) !== -1;\n }).length > 0;\n const hasHeadManagerAccess =\n hasSimilarAccess ||\n user.email === (headManagers.length > 0 && headManagers[0].email);\n\n const canBeSetAsHeadManager = (row) => {\n return (\n (hasHeadManagerAccess &&\n !row.isHeadManager &&\n (Roles.TechnicalAdvisor.toLowerCase() === row.role.toLowerCase() ||\n Roles.Manager.toLowerCase() === row.role.toLowerCase())) ||\n false\n );\n };\n\n const getRowMenu = (row) => [\n {\n disabled: !canBeSetAsHeadManager(row),\n title: strings(stringKeys.nationalSocietyConsents.setAsHeadManager),\n action: () => setAsHeadManager(row.organizationId, row.id),\n },\n ];\n\n const canBeEdited = (row) => {\n const isGlobalCoordinator = user.roles.some(\n (r) => r === Roles.GlobalCoordinator,\n );\n const isCoordinator = user.roles.some((r) => r === Roles.Coordinator);\n\n const isEditingHeadManagerOrCoordinator =\n row.isHeadManager ||\n row.isPendingHeadManager ||\n row.role.toLowerCase() === Roles.Coordinator.toLowerCase();\n\n if (isGlobalCoordinator) {\n return isEditingHeadManagerOrCoordinator;\n }\n\n if (isCoordinator) {\n return (\n isEditingHeadManagerOrCoordinator ||\n row.role.toLowerCase() === Roles.DataConsumer.toLowerCase()\n );\n }\n\n return true;\n };\n\n return (\n \n \n \n \n {strings(stringKeys.common.name)}\n {strings(stringKeys.common.email)}\n \n {strings(stringKeys.nationalSocietyUser.list.phoneNumber)}\n \n \n {strings(stringKeys.nationalSocietyUser.list.role)}\n \n \n {strings(stringKeys.nationalSocietyUser.list.organization)}\n \n \n {strings(stringKeys.nationalSocietyUser.list.project)}\n \n \n {strings(stringKeys.nationalSocietyUser.list.headManager)}\n \n \n \n \n \n {list.map((row) => (\n \n canBeEdited(row) && goToEdition(nationalSocietyId, row.id)\n }\n hover\n className={(canBeEdited(row) && styles.clickableRow) || \"\"}\n >\n {row.name}\n \n {row.role !== Roles.DataConsumer || row.isVerified\n ? row.email\n : strings(stringKeys.nationalSocietyUser.list.notVerified)}\n \n \n {row.role !== Roles.DataConsumer || row.isVerified\n ? row.phoneNumber\n : strings(stringKeys.nationalSocietyUser.list.notVerified)}\n \n {strings(`role.${row.role.toLowerCase()}`)}\n {row.organizationName}\n {row.project}\n \n {(row.isHeadManager && ) ||\n (row.isPendingHeadManager && (\n \n \n \n ))}\n \n \n \n }\n isFetching={isSettingAsHead[row.id]}\n />\n {canBeEdited(row) && (\n \n goToEdition(nationalSocietyId, row.id)}\n icon={}\n title={\"Edit\"}\n />\n \n remove(row.id, row.role, nationalSocietyId)\n }\n confirmationText={strings(\n stringKeys.nationalSocietyUser.list\n .removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.id]}\n />\n \n )}\n \n \n \n ))}\n \n
\n
\n );\n};\n\nNationalSocietyUsersTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default NationalSocietyUsersTable;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as nationalSocietyUsersActions from \"./logic/nationalSocietyUsersActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport NationalSocietyUsersTable from \"./NationalSocietyUsersTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietyUsersListPageComponent = (props) => {\n useMount(() => {\n props.openNationalSocietyUsersList(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"NationalSocietyUsersListPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n return (\n \n {!props.nationalSocietyIsArchived && (\n \n props.goToAddExisting(props.nationalSocietyId)}\n add\n variant=\"outlined\"\n rtl={useRtlDirection}\n >\n {strings(stringKeys.nationalSocietyUser.addExisting)}\n \n props.goToCreation(props.nationalSocietyId)}\n add\n variant=\"contained\"\n rtl={useRtlDirection}\n >\n {strings(stringKeys.common.buttons.add)}\n \n \n )}\n\n \n \n );\n};\n\nNationalSocietyUsersListPageComponent.propTypes = {\n getNationalSocietyUsers: PropTypes.func,\n goToCreation: PropTypes.func,\n goToAddExisting: PropTypes.func,\n goToEdition: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n user: state.appData.user,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n list: state.nationalSocietyUsers.listData,\n isListFetching: state.nationalSocietyUsers.listFetching,\n isRemoving: state.nationalSocietyUsers.listRemoving,\n isSettingAsHead: state.nationalSocietyUsers.settingAsHead,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n});\n\nconst mapDispatchToProps = {\n openNationalSocietyUsersList: nationalSocietyUsersActions.openList.invoke,\n goToCreation: nationalSocietyUsersActions.goToCreation,\n goToAddExisting: nationalSocietyUsersActions.goToAddExisting,\n goToEdition: nationalSocietyUsersActions.goToEdition,\n remove: nationalSocietyUsersActions.remove.invoke,\n setAsHeadManager: nationalSocietyUsersActions.setAsHeadManager.invoke,\n};\n\nexport const NationalSocietyUsersListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietyUsersListPageComponent),\n);\n","export const parseBirthDecade = (decade) =>\n `${decade}-${decade.substring(0, 3)}9`;\n\nexport const getBirthDecades = () => {\n const yearMax = Math.floor(new Date().getFullYear() / 10) * 10;\n return Array.from({ length: 10 }, (_, i) => String(yearMax - 10 * i));\n};\n","import React, {\n useState,\n Fragment,\n useMemo,\n useCallback,\n useEffect,\n} from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as nationalSocietyUsersActions from \"./logic/nationalSocietyUsersActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport SelectInput from \"../forms/SelectField\";\nimport PhoneInputField from \"../forms/PhoneInputField\";\nimport { MenuItem, Grid } from \"@material-ui/core\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport {\n userRoles,\n globalCoordinatorUserRoles,\n coordinatorUserRoles,\n headManagerRoles,\n sexValues,\n} from \"./logic/nationalSocietyUsersConstants\";\nimport * as roles from \"../../authentication/roles\";\nimport SelectField from \"../forms/SelectField\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { ConfirmationDialog } from \"../common/confirmationDialog/ConfirmationDialog\";\nimport { getBirthDecades, parseBirthDecade } from \"../../utils/birthYear\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietyUsersCreatePageComponent = ({\n nationalSocietyId,\n data,\n isSaving,\n error,\n callingUserRoles,\n directionRtl,\n openCreation,\n create,\n goToList,\n}) => {\n const [birthDecades] = useState(getBirthDecades());\n const [selectedRole, setRole] = useState(null);\n const [projects, setProjects] = useState([]);\n const [confirmCoordinatorDialog, setConfirmCoordinatorDialog] = useState({\n isOpened: false,\n isConfirmed: false,\n });\n\n useMount(() => {\n openCreation(nationalSocietyId);\n\n // Track page view\n trackPageView(\"NationalSocietyUsersCreatePage\");\n });\n\n const hasAnyRole = useCallback(\n (...roles) =>\n callingUserRoles.some((userRole) =>\n roles.some((role) => role === userRole),\n ),\n [callingUserRoles],\n );\n\n const canChangeOrganization = useMemo(\n () =>\n (hasAnyRole(roles.Administrator, roles.Coordinator) &&\n selectedRole !== roles.DataConsumer) ||\n (hasAnyRole(roles.GlobalCoordinator) &&\n selectedRole === roles.Coordinator) ||\n (data &&\n data.isHeadManager &&\n !data.hasCoordinator &&\n selectedRole === roles.Coordinator),\n [hasAnyRole, selectedRole, data],\n );\n\n const canSelectModem = useMemo(\n () =>\n (selectedRole === roles.Manager ||\n selectedRole === roles.TechnicalAdvisor ||\n selectedRole === roles.HeadSupervisor ||\n selectedRole === roles.Supervisor) &&\n data &&\n data.modems.length > 0,\n [data, selectedRole],\n );\n\n const availableUserRoles = useMemo(() => {\n if (!data) {\n return [];\n }\n\n if (callingUserRoles.some((r) => r === roles.Administrator)) {\n return headManagerRoles;\n }\n\n if (hasAnyRole(roles.GlobalCoordinator)) {\n return globalCoordinatorUserRoles.filter(\n (r) => !data.hasCoordinator || r !== roles.Coordinator,\n );\n }\n\n if (hasAnyRole(roles.Coordinator)) {\n if (data.organizations.every((o) => o.hasHeadManager)) {\n return [roles.Coordinator];\n }\n\n return coordinatorUserRoles;\n }\n\n if (data.isHeadManager) {\n return headManagerRoles.filter(\n (r) => !data.hasCoordinator || r !== roles.Coordinator,\n );\n }\n\n return userRoles;\n }, [hasAnyRole, callingUserRoles, data]);\n\n const availableOrganizations = useMemo(() => {\n if (!data) {\n return [];\n }\n\n if (hasAnyRole(roles.Coordinator) && selectedRole === roles.Manager) {\n return data.organizations.filter((o) => !o.hasHeadManager);\n }\n\n return data.organizations;\n }, [hasAnyRole, data, selectedRole]);\n\n const form = useMemo(() => {\n const fields = {\n nationalSocietyId: parseInt(nationalSocietyId),\n role: \"\",\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n additionalPhoneNumber: \"\",\n organization: \"\",\n decadeOfBirth: \"\",\n projectId: \"\",\n sex: \"\",\n organizationId: \"\",\n headSupervisorId: \"\",\n modemId: \"\",\n };\n\n const validation = {\n role: [validators.required],\n name: [validators.required, validators.maxLength(100)],\n email: [validators.required, validators.email, validators.maxLength(100)],\n phoneNumber: [\n validators.required,\n validators.maxLength(20),\n validators.phoneNumber,\n ],\n additionalPhoneNumber: [validators.maxLength(20), validators.phoneNumber],\n organization: [\n validators.requiredWhen((f) => f.role === roles.DataConsumer),\n validators.maxLength(100),\n ],\n decadeOfBirth: [\n validators.requiredWhen(\n (f) => f.role === roles.Supervisor || f.role === roles.HeadSupervisor,\n ),\n ],\n sex: [\n validators.requiredWhen(\n (f) => f.role === roles.Supervisor || f.role === roles.HeadSupervisor,\n ),\n ],\n projectId: [\n validators.requiredWhen(\n (f) => f.role === roles.Supervisor || f.role === roles.HeadSupervisor,\n ),\n ],\n };\n\n const newForm = createForm(fields, validation);\n newForm.fields.role.subscribe(({ newValue }) => setRole(newValue));\n\n return newForm;\n }, [nationalSocietyId]);\n\n useEffect(() => {\n if (!form || selectedRole) {\n return;\n }\n\n const newRole = availableUserRoles.some((r) => r === roles.Manager)\n ? roles.Manager\n : availableUserRoles[0];\n setRole(newRole);\n form.fields.role.update(newRole);\n }, [availableUserRoles, selectedRole, form]);\n\n useEffect(() => {\n form &&\n form.fields.organizationId.setValidators([\n validators.requiredWhen((_) => canChangeOrganization),\n ]);\n }, [form, canChangeOrganization]);\n\n useEffect(() => {\n form &&\n form.fields.modemId.setValidators([\n validators.requiredWhen((_) => canSelectModem),\n ]);\n }, [form, canSelectModem]);\n\n useEffect(() => {\n if (data == null) {\n return;\n }\n if (data.projects.length > 0) {\n setProjects(data.projects);\n } else {\n setProjects([\n {\n id: 0,\n name: strings(stringKeys.nationalSocietyUser.form.projectIsMissing),\n },\n ]);\n }\n }, [data]);\n\n useEffect(() => {\n if (!form) {\n return;\n }\n\n const organizationId = availableOrganizations.some(\n (o) => o.isDefaultOrganization,\n )\n ? availableOrganizations\n .filter((o) => o.isDefaultOrganization)[0]\n .id.toString()\n : (availableOrganizations.length > 0 &&\n availableOrganizations[0].id.toString()) ||\n \"\";\n\n form.fields.organizationId.update(organizationId);\n }, [availableOrganizations, availableUserRoles, form]);\n\n useCustomErrors(form, error);\n\n const createUser = useCallback(() => {\n const values = form.getValues();\n create(nationalSocietyId, {\n ...values,\n organizationId:\n canChangeOrganization && values.organizationId\n ? parseInt(values.organizationId)\n : null,\n projectId: values.projectId ? parseInt(values.projectId) : null,\n decadeOfBirth: values.decadeOfBirth\n ? parseInt(values.decadeOfBirth)\n : null,\n setAsHeadManager: hasAnyRole(roles.Coordinator, roles.GlobalCoordinator)\n ? true\n : null,\n headSupervisorId: values.headSupervisorId\n ? parseInt(values.headSupervisorId)\n : null,\n modemId: !!values.modemId ? parseInt(values.modemId) : null,\n });\n }, [hasAnyRole, canChangeOrganization, form, create, nationalSocietyId]);\n\n const handleSubmit = useCallback(\n (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n if (\n selectedRole === roles.Coordinator &&\n !data.hasCoordinator &&\n confirmCoordinatorDialog.isConfirmed === false\n ) {\n setConfirmCoordinatorDialog({\n ...confirmCoordinatorDialog,\n isOpened: true,\n });\n return;\n }\n\n createUser();\n },\n [createUser, form, selectedRole, data, confirmCoordinatorDialog],\n );\n\n if (!data) {\n return null;\n }\n\n const confirmCoordinatorCreation = () => {\n setConfirmCoordinatorDialog({\n ...confirmCoordinatorDialog,\n isConfirmed: true,\n isOpened: false,\n });\n createUser();\n };\n\n return (\n \n {error && }\n\n
\n \n \n \n \n\n \n \n {availableUserRoles.map((role) => (\n \n {strings(\n `role.${(hasAnyRole(\n roles.Coordinator,\n roles.GlobalCoordinator,\n ) && role === roles.Manager\n ? \"headManager\"\n : role\n ).toLowerCase()}`,\n )}\n \n ))}\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n {canChangeOrganization && (\n \n \n {availableOrganizations.map((organization) => (\n \n {organization.name}\n \n ))}\n \n \n )}\n {selectedRole !== roles.Coordinator && (\n \n \n \n )}\n\n {(selectedRole === roles.Supervisor ||\n selectedRole === roles.HeadSupervisor) && (\n \n \n \n {birthDecades.map((decade) => (\n \n {parseBirthDecade(decade)}\n \n ))}\n \n \n \n \n {sexValues.map((type) => (\n \n {strings(\n stringKeys.dataCollectors.constants.sex[\n type.toLowerCase()\n ],\n )}\n \n ))}\n \n \n \n \n {projects.map((project) => (\n \n {project.name}\n \n ))}\n \n \n \n )}\n\n {selectedRole === roles.Supervisor &&\n data.headSupervisors.length > 0 && (\n \n \n {data.headSupervisors.map((headSupervisor) => (\n \n {headSupervisor.name}\n \n ))}\n \n \n )}\n\n {canSelectModem && (\n \n \n {data.modems.map((modem) => (\n \n {modem.name}\n \n ))}\n \n \n )}\n \n\n \n goToList(nationalSocietyId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n\n confirmCoordinatorCreation(handleSubmit)}\n close={() =>\n setConfirmCoordinatorDialog({\n ...confirmCoordinatorDialog,\n isOpened: false,\n })\n }\n contentText={strings(\n stringKeys.nationalSocietyUser.form.confirmCoordinatorCreationText,\n )}\n />\n
\n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n data: state.nationalSocietyUsers.formAdditionalData,\n isSaving: state.nationalSocietyUsers.formSaving,\n error: state.nationalSocietyUsers.formError,\n callingUserRoles: state.appData.user.roles,\n directionRtl: state.appData.user.languageCode === \"ar\",\n});\n\nconst mapDispatchToProps = {\n openCreation: nationalSocietyUsersActions.openCreation.invoke,\n create: nationalSocietyUsersActions.create.invoke,\n goToList: nationalSocietyUsersActions.goToList,\n};\n\nexport const NationalSocietyUsersCreatePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietyUsersCreatePageComponent),\n);\n","import { useState, Fragment, useMemo, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as nationalSocietyUsersActions from \"./logic/nationalSocietyUsersActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport SelectField from \"../forms/SelectField\";\nimport { MenuItem, Typography, Box, Grid } from \"@material-ui/core\";\nimport { Administrator } from \"../../authentication/roles\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietyUsersAddExistingPageComponent = (props) => {\n const [form] = useState(() => {\n const fields = {\n email: \"\",\n modemId: \"\",\n organizationId: \"\",\n };\n\n const validation = {\n email: [validators.required, validators.email, validators.maxLength(100)],\n modemId: [validators.requiredWhen((_) => canSelectModem)],\n organizationId: [validators.requiredWhen((_) => canSelectOrganization)],\n };\n\n return createForm(fields, validation);\n });\n\n const canSelectModem =\n props.formData?.modems && props.formData.modems.length > 0;\n const canSelectOrganization =\n props.formData?.organizations &&\n props.formData.organizations.length > 0 &&\n props.user.roles.some((r) => r === Administrator);\n\n useCustomErrors(form, props.error);\n\n useMount(() => {\n props.openAddExisting(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"NationalSocietyUsersAddExistingPage\");\n });\n\n const availableOrganizations = useMemo(() => {\n if (!props.formData) {\n return [];\n }\n\n return props.formData.organizations;\n }, [props.formData]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n props.addExisting({\n nationalSocietyId: parseInt(props.nationalSocietyId),\n email: values.email,\n modemId: !!values.modemId ? parseInt(values.modemId) : null,\n organizationId: !!values.organizationId\n ? parseInt(values.organizationId)\n : null,\n });\n };\n\n useEffect(() => {\n if (canSelectOrganization || !props.formData) return;\n\n const organizations = props.formData.organizations.filter(\n (o) => o.isDefaultOrganization,\n );\n const preSelected =\n organizations.length > 0\n ? organizations[0]\n : props.formData.organizations[0];\n\n form.fields.organizationId.update(preSelected.id);\n }, [props.formData, form, canSelectOrganization]);\n\n return (\n \n {props.error && }\n\n
\n \n \n {strings(\n stringKeys.nationalSocietyUser.form.addExistingDescription,\n )}\n \n \n\n \n \n \n \n\n {canSelectOrganization && (\n \n \n {availableOrganizations.map((organization) => (\n \n {organization.name}\n \n ))}\n \n \n )}\n\n {canSelectModem && (\n \n \n {props.formData.modems.map((modem) => (\n \n {modem.name}\n \n ))}\n \n \n )}\n \n\n \n props.goToList(props.nationalSocietyId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n user: state.appData.user,\n isSaving: state.nationalSocietyUsers.formSaving,\n error: state.nationalSocietyUsers.formError,\n formData: state.nationalSocietyUsers.addExistingFormData,\n});\n\nconst mapDispatchToProps = {\n openAddExisting: nationalSocietyUsersActions.openAddExisting.invoke,\n addExisting: nationalSocietyUsersActions.addExisting.invoke,\n goToList: nationalSocietyUsersActions.goToList,\n};\n\nexport const NationalSocietyUsersAddExistingPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietyUsersAddExistingPageComponent),\n);\n","import { useState, Fragment, useMemo, useCallback } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as nationalSocietyUsersActions from \"./logic/nationalSocietyUsersActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport PhoneInputField from \"../forms/PhoneInputField\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport SelectField from \"../forms/SelectField\";\nimport * as roles from \"../../authentication/roles\";\nimport { stringKeys, strings, stringsFormat } from \"../../strings\";\nimport { MenuItem, Grid } from \"@material-ui/core\";\nimport { sexValues } from \"./logic/nationalSocietyUsersConstants\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { getBirthDecades, parseBirthDecade } from \"../../utils/birthYear\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietyUsersEditPageComponent = ({\n nationalSocietyId,\n nationalSocietyUserId,\n data,\n organizations,\n isFetching,\n isSaving,\n error,\n callingUserRoles,\n modems,\n directionRtl,\n countryCode,\n openEdition,\n edit,\n goToList,\n}) => {\n const [birthDecades] = useState(getBirthDecades());\n const [selectedRole, setRole] = useState(null);\n\n useMount(() => {\n openEdition(nationalSocietyUserId);\n\n // Track page view\n trackPageView(\"NationalSocietyUsersEditPage\");\n });\n\n const hasAnyRole = useCallback(\n (...roles) =>\n callingUserRoles.some((userRole) =>\n roles.some((role) => role === userRole),\n ),\n [callingUserRoles],\n );\n\n const canSelectModem = useMemo(\n () =>\n (selectedRole === roles.Manager ||\n selectedRole === roles.TechnicalAdvisor ||\n selectedRole === roles.HeadSupervisor ||\n selectedRole === roles.Supervisor) &&\n modems.length > 0,\n [modems, selectedRole],\n );\n\n const form = useMemo(() => {\n if (!data) {\n return null;\n }\n\n const fields = {\n id: data.id,\n nationalSocietyId: parseInt(nationalSocietyId),\n role: data.role,\n email: data.email,\n name: data.name,\n phoneNumber: data.phoneNumber,\n additionalPhoneNumber: data.additionalPhoneNumber,\n organization: data.organization,\n decadeOfBirth: data.decadeOfBirth ? data.decadeOfBirth.toString() : \"\",\n projectId: data.projectId ? data.projectId.toString() : \"\",\n organizationId: data.organizationId ? data.organizationId.toString() : \"\",\n sex: data.sex ? data.sex : \"\",\n headSupervisorId: data.headSupervisorId\n ? data.headSupervisorId.toString()\n : \"\",\n modemId: data.modemId ? data.modemId.toString() : \"\",\n };\n\n const validation = {\n email: [validators.required, validators.email, validators.maxLength(100)],\n name: [validators.required, validators.maxLength(100)],\n phoneNumber: [\n validators.required,\n validators.maxLength(20),\n validators.phoneNumber,\n ],\n additionalPhoneNumber: [validators.maxLength(20), validators.phoneNumber],\n organization: [\n validators.requiredWhen((f) => f.role === roles.DataConsumer),\n validators.maxLength(100),\n ],\n decadeOfBirth: [\n validators.requiredWhen(\n (f) => f.role === roles.Supervisor || f.role === roles.HeadSupervisor,\n ),\n ],\n sex: [\n validators.requiredWhen(\n (f) => f.role === roles.Supervisor || f.role === roles.HeadSupervisor,\n ),\n ],\n projectId: [\n validators.requiredWhen(\n (f) => f.role === roles.Supervisor || f.role === roles.HeadSupervisor,\n ),\n ],\n organizationId: [\n validators.requiredWhen(\n (f) =>\n f.role === roles.Coordinator || f.role === roles.GlobalCoordinator,\n ),\n ],\n modemId: [validators.requiredWhen((_) => canSelectModem)],\n };\n\n setRole(data.role);\n\n return createForm(fields, validation);\n }, [data, nationalSocietyId, canSelectModem]);\n\n useCustomErrors(form, error);\n\n const canChangeOrganization = useMemo(\n () =>\n hasAnyRole(roles.Administrator) && selectedRole !== roles.DataConsumer,\n [hasAnyRole, selectedRole],\n );\n\n const handleSubmit = useCallback(\n (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n edit(nationalSocietyId, {\n ...values,\n organizationId: !!values.organizationId\n ? parseInt(values.organizationId)\n : null,\n projectId: !!values.projectId ? parseInt(values.projectId) : null,\n decadeOfBirth: !!values.decadeOfBirth\n ? parseInt(values.decadeOfBirth)\n : null,\n headSupervisorId: !!values.headSupervisorId\n ? parseInt(values.headSupervisorId)\n : null,\n modemId: !!values.modemId ? parseInt(values.modemId) : null,\n });\n },\n [form, nationalSocietyId, edit],\n );\n\n if (!data || !form || isFetching) {\n return ;\n }\n\n return (\n \n {error && }\n\n
\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n {canChangeOrganization && (\n \n \n {organizations.map((organization) => (\n \n {organization.name}\n \n ))}\n \n \n )}\n\n {selectedRole !== roles.Coordinator && (\n \n \n \n )}\n\n {(selectedRole === roles.Supervisor ||\n selectedRole === roles.HeadSupervisor) && (\n \n \n \n {birthDecades.map((decade) => (\n \n {parseBirthDecade(decade)}\n \n ))}\n \n \n\n \n \n {sexValues.map((type) => (\n \n {strings(\n stringKeys.dataCollectors.constants.sex[\n type.toLowerCase()\n ],\n )}\n \n ))}\n \n \n\n \n \n {data.editSupervisorFormData.availableProjects.map(\n (project) => (\n \n {project.isClosed\n ? stringsFormat(\n stringKeys.nationalSocietyUser.form\n .projectIsClosed,\n { projectName: project.name },\n )\n : project.name}\n \n ),\n )}\n \n \n \n )}\n\n {selectedRole === roles.Supervisor &&\n data.editSupervisorFormData.headSupervisors.length > 0 && (\n \n \n {!!data.headSupervisorId && (\n \n {strings(\n stringKeys.nationalSocietyUser.form\n .headSupervisorNotAssigned,\n )}\n \n )}\n {data.editSupervisorFormData.headSupervisors.map(\n (headSupervisor) => (\n \n {headSupervisor.name}\n \n ),\n )}\n \n \n )}\n\n {canSelectModem && (\n \n \n {modems.map((modem) => (\n \n {modem.name}\n \n ))}\n \n \n )}\n \n \n goToList(nationalSocietyId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nNationalSocietyUsersEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyUserId: ownProps.match.params.nationalSocietyUserId,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n organizations: state.nationalSocietyUsers.formOrganizations,\n isFetching: state.nationalSocietyUsers.formFetching,\n isSaving: state.nationalSocietyUsers.formSaving,\n data: state.nationalSocietyUsers.formData,\n callingUserRoles: state.appData.user.roles,\n error: state.nationalSocietyUsers.formError,\n modems: state.nationalSocietyUsers.formModems,\n countryCode: state.nationalSocietyUsers.countryCode,\n directionRtl: state.appData.user.languageCode === \"ar\",\n});\n\nconst mapDispatchToProps = {\n openEdition: nationalSocietyUsersActions.openEdition.invoke,\n edit: nationalSocietyUsersActions.edit.invoke,\n goToList: nationalSocietyUsersActions.goToList,\n};\n\nexport const NationalSocietyUsersEditPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietyUsersEditPageComponent),\n);\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport { withLayout } from \"../../utils/layout\";\nimport { connect } from \"react-redux\";\nimport { AnonymousLayout } from \"../layout/AnonymousLayout\";\nimport styles from \"./AgreementsPage.module.scss\";\nimport { strings, stringKeys } from \"../../strings\";\nimport * as agreementsActions from \"./logic/agreementsActions\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport {\n MenuItem,\n Grid,\n FormControl,\n InputLabel,\n Select,\n Snackbar,\n Button,\n Paper,\n Typography,\n Icon,\n Checkbox,\n FormControlLabel,\n CardMedia,\n} from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst AgreementsPageComponent = (props) => {\n const [hasConsented, setHasConsented] = useState(false);\n const [selectedLanguage, setSelectedLanguage] = useState(\"en\");\n const [validationMessage, setValidationMessage] = useState(null);\n\n useMount(() => {\n props.openAgreementPage();\n\n // Track page view\n trackPageView(\"AgreementsPage\");\n });\n\n const handleSubmit = (e) => {\n e.preventDefault();\n if (!hasConsented) {\n setValidationMessage(\n strings(stringKeys.nationalSocietyConsents.agreeToContinue),\n );\n return;\n }\n\n props.acceptAgreement(selectedLanguage);\n };\n\n const handleDocChange = (event) => {\n setSelectedLanguage(event.target.value);\n };\n\n const selectedDocumentUrl =\n props.agreementDocuments.length > 0 &&\n props.agreementDocuments.find((ad) => ad.languageCode === selectedLanguage)\n .agreementDocumentUrl;\n\n if (!props.pendingSocieties || !props.staleSocieties) {\n return ;\n }\n\n return (\n
\n \n
\n \n \n \n {strings(stringKeys.nationalSocietyConsents.title)}\n \n\n {props.pendingSocieties.length > 0 && (\n \n {props.pendingSocieties.length > 1\n ? strings(\n stringKeys.nationalSocietyConsents.nationalSocieties,\n )\n : strings(\n stringKeys.nationalSocietyConsents.nationalSociety,\n )}\n :{\" \"}\n {props.pendingSocieties\n .map((ns) => ns.nationalSocietyName)\n .join(\", \")}\n \n )}\n\n {props.staleSocieties.length > 0 && (\n \n {props.staleSocieties.length > 1\n ? strings(\n stringKeys.nationalSocietyConsents\n .nationalSocietiesWithUpdatedAgreement,\n )\n : strings(\n stringKeys.nationalSocietyConsents\n .nationalSocietyWithUpdatedAgreement,\n )}\n :{\" \"}\n {props.staleSocieties\n .map((ns) => ns.nationalSocietyName)\n .join(\", \")}\n \n )}\n\n \n {strings(stringKeys.nationalSocietyConsents.consentText)}\n \n \n\n {props.agreementDocuments.length > 1 && (\n \n \n \n {strings(stringKeys.nationalSocietyConsents.selectLanguage)}\n \n \n \n \n )}\n \n
\n
\n {props.agreementDocuments.length > 0 && (\n \n )}\n
\n
\n \n {selectedDocumentUrl && (\n \n \n {strings(stringKeys.nationalSocietyConsents.downloadDirectly)}\n \n \n )}\n \n {\n setHasConsented(!hasConsented);\n setValidationMessage(null);\n }}\n checked={hasConsented}\n color=\"primary\"\n />\n }\n label={strings(stringKeys.nationalSocietyConsents.iConsent)}\n />\n \n {strings(stringKeys.nationalSocietyConsents.submit)}\n \n\n {props.staleSocieties.length > 0 &&\n props.pendingSocieties.length === 0 && (\n \n )}\n \n \n
\n
\n\n close}\n open={validationMessage}\n message={validationMessage}\n onClose={() => setValidationMessage(null)}\n onClick={() => setValidationMessage(null)}\n autoHideDuration={6000}\n />\n
\n );\n};\n\nAgreementsPageComponent.propTypes = {\n acceptAgreement: PropTypes.func,\n};\n\nconst mapStateToProps = (state) => ({\n pendingSocieties: state.agreements.pendingSocieties,\n staleSocieties: state.agreements.staleSocieties,\n agreementDocuments: state.agreements.agreementDocuments,\n submitting: state.agreements.submitting,\n});\n\nconst mapDispatchToProps = {\n openAgreementPage: agreementsActions.openAgreementPage.invoke,\n acceptAgreement: agreementsActions.acceptAgreement.invoke,\n};\n\nexport const AgreementsPage = withLayout(\n AnonymousLayout,\n connect(mapStateToProps, mapDispatchToProps)(AgreementsPageComponent),\n);\n","import { makeStyles } from \"@material-ui/core/styles\";\nimport { SubMenuTitle } from \"../../layout/SubMenuTitle\";\n\nconst useStyles = makeStyles(() => ({\n tableHeader: {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n \"@media screen and (max-width: 500px)\": {\n flexDirection: \"column\",\n },\n },\n}));\n\nconst TableHeader = ({ children }) => {\n const classes = useStyles();\n\n return (\n
\n \n {children}\n
\n );\n};\n\nexport default TableHeader;\n","import styles from \"./TablePager.module.scss\";\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\nimport { Grid, IconButton, MenuItem, Select } from \"@material-ui/core\";\n\nexport const TablePager = ({\n page,\n rowsPerPage,\n totalRows,\n onChangePage,\n rtl,\n}) => {\n const numberOfPages = Math.ceil(totalRows / rowsPerPage);\n const pagesRange = [...Array(numberOfPages)].map((_, i) => i + 1);\n\n const handleBackButtonClick = (event) => {\n onChangePage(event, page - 1);\n };\n\n const handleNextButtonClick = (event) => {\n onChangePage(event, page + 1);\n };\n\n const handlePageSelect = (event) => {\n onChangePage(event, event.target.value);\n };\n\n if (numberOfPages < 2) {\n return null;\n }\n\n return (\n \n \n {rtl ? : }\n \n\n \n {pagesRange.map((page) => (\n \n {page}\n \n ))}\n \n\n = Math.ceil(totalRows / rowsPerPage)}\n aria-label=\"next page\"\n >\n {rtl ? : }\n \n \n );\n};\n\nexport default TablePager;\n","import styles from \"./DataCollectorsTable.module.scss\";\nimport tableStyles from \"../../common/table/Table.module.scss\";\nimport { useEffect, useState, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\nimport { TableRowAction } from \"../../common/tableRowAction/TableRowAction\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { TableRowMenu } from \"../../common/tableRowAction/TableRowMenu\";\nimport { TableRowActions } from \"../../common/tableRowAction/TableRowActions\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport {\n trainingStatusInTraining,\n trainingStatusTrained,\n} from \"../logic/dataCollectorsConstants\";\nimport {\n Checkbox,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n} from \"@material-ui/core\";\nimport TablePager from \"../../common/tablePagination/TablePager\";\nimport { Loading } from \"../../common/loading/Loading\";\n\nexport const DataCollectorsTable = ({\n isListFetching,\n listSelectedAll,\n isRemoving,\n goToEdition,\n remove,\n list,\n page,\n rowsPerPage,\n totalRows,\n projectId,\n setTrainingState,\n isUpdatingDataCollector,\n selectDataCollector,\n selectAllDataCollectors,\n replaceSupervisor,\n onChangePage,\n setDeployedState,\n rtl,\n}) => {\n const [isSelected, setIsSelected] = useState(false);\n useEffect(() => setIsSelected(list.some((i) => i.isSelected)), [list]);\n\n const getRowMenu = (row) => [\n {\n title: strings(stringKeys.dataCollectors.list.takeOutOfTraining),\n action: () => setTrainingState([row.id], false),\n disabled: !row.isInTrainingMode,\n roles: accessMap.dataCollectors.list,\n },\n {\n title: strings(stringKeys.dataCollectors.list.setToInTraining),\n action: () => setTrainingState([row.id], true),\n disabled: row.isInTrainingMode,\n roles: accessMap.dataCollectors.list,\n },\n {\n title: strings(stringKeys.dataCollectors.list.setToDeployed),\n action: () => setDeployedState([row.id], true),\n disabled: row.isDeployed,\n roles: accessMap.dataCollectors.list,\n },\n {\n title: strings(stringKeys.dataCollectors.list.setToNotDeployed),\n action: () => setDeployedState([row.id], false),\n disabled: !row.isDeployed,\n roles: accessMap.dataCollectors.list,\n },\n ];\n\n const getSelectedIds = useCallback(\n () => list.filter((i) => i.isSelected).map((i) => i.id),\n [list],\n );\n\n const getSelectedDataCollectors = useCallback(\n () =>\n list.filter((i) => i.isSelected).map((i) => ({ name: i.name, id: i.id })),\n [list],\n );\n\n const multipleSelectionMenu = useMemo(\n () => [\n {\n title: strings(stringKeys.dataCollectors.list.takeOutOfTraining),\n action: () => setTrainingState(getSelectedIds(), false),\n roles: accessMap.dataCollectors.list,\n },\n {\n title: strings(stringKeys.dataCollectors.list.setToInTraining),\n action: () => setTrainingState(getSelectedIds(), true),\n roles: accessMap.dataCollectors.list,\n },\n {\n title: strings(stringKeys.dataCollectors.list.replaceSupervisor),\n action: () => replaceSupervisor(getSelectedDataCollectors()),\n roles: accessMap.dataCollectors.replaceSupervisor,\n },\n {\n title: strings(stringKeys.dataCollectors.list.setToDeployed),\n action: () => setDeployedState(getSelectedIds(), true),\n roles: accessMap.dataCollectors.list,\n },\n {\n title: strings(stringKeys.dataCollectors.list.setToNotDeployed),\n action: () => setDeployedState(getSelectedIds(), false),\n roles: accessMap.dataCollectors.list,\n },\n ],\n [\n getSelectedIds,\n getSelectedDataCollectors,\n setTrainingState,\n replaceSupervisor,\n setDeployedState,\n ],\n );\n\n const handleSelect = (e, id, value) => {\n e.stopPropagation();\n selectDataCollector(id, value);\n };\n\n const handleSelectAll = (e) => {\n e.stopPropagation();\n selectAllDataCollectors(!listSelectedAll);\n };\n\n const renderLocation = (locations) => {\n const firstLocation = locations[0];\n if (locations.length > 1) {\n return `${firstLocation.region}, ${firstLocation.district}, ${\n firstLocation.village\n } (+ ${locations.length - 1})`;\n }\n\n return `${firstLocation.region}, ${firstLocation.district}, ${firstLocation.village}`;\n };\n\n if (isListFetching) {\n return ;\n }\n\n return (\n \n \n \n \n \n \n \n \n {strings(stringKeys.dataCollectors.list.dataCollectorType)}\n \n {strings(stringKeys.common.name)}\n \n {strings(stringKeys.dataCollectors.list.displayName)}\n \n \n {strings(stringKeys.dataCollectors.list.phoneNumber)}\n \n {strings(stringKeys.dataCollectors.list.sex)}\n {strings(stringKeys.common.location)}\n \n {strings(stringKeys.dataCollectors.list.trainingStatus)}\n \n \n {strings(stringKeys.dataCollectors.list.supervisor)}\n \n \n {isSelected && (\n \n }\n items={multipleSelectionMenu}\n alwaysHighlighted\n />\n \n )}\n \n \n \n \n {list.map((row) => (\n goToEdition(projectId, row.id)}\n className={tableStyles.clickableRow}\n >\n \n handleSelect(e, row.id, !row.isSelected)}\n color=\"primary\"\n />\n \n \n {strings(\n stringKeys.dataCollectors.constants.dataCollectorType[\n row.dataCollectorType\n ],\n )}\n \n {row.name}\n {row.displayName}\n \n {row.phoneNumber}\n \n {row.sex}\n {renderLocation(row.locations)}\n \n {row.isInTrainingMode\n ? strings(\n stringKeys.dataCollectors.constants.trainingStatus[\n trainingStatusInTraining\n ],\n )\n : strings(\n stringKeys.dataCollectors.constants.trainingStatus[\n trainingStatusTrained\n ],\n )}\n \n {row.supervisor.name}\n \n \n }\n isFetching={isUpdatingDataCollector[row.id]}\n />\n goToEdition(projectId, row.id)}\n icon={}\n title={\"Edit\"}\n />\n remove(row.id)}\n confirmationText={strings(\n stringKeys.dataCollectors.list.removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.id]}\n />\n \n \n \n ))}\n \n
\n {!!list.length && (\n \n )}\n
\n );\n};\n\nDataCollectorsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default DataCollectorsTable;\n","import { useEffect, useState } from \"react\";\n\nexport default function useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const handler = setTimeout(() => setDebouncedValue(value), delay);\n return () => clearTimeout(handler);\n }, [delay, value]);\n\n return debouncedValue;\n}\n","import { stringKeys, strings } from \"../../../../strings\";\n\n/* \n extracts location ids used in dto\n if multiple locations on different levels in the same hierarchy are selected, only the highest is returned\n*/\nexport const extractSelectedValues = (regions, includeUnknownLocation) => {\n const selectedRegions = regions\n .filter((r) => r.selected || r.districts.some((d) => d.selected))\n .map((r) => r.id);\n\n const selectedDistricts = regions\n .filter((r) => r.selected)\n .map((r) =>\n r.districts\n .filter((d) => d.selected || d.villages.some((v) => v.selected))\n .map((d) => d.id),\n )\n .flat();\n\n const selectedVillages = regions\n .filter((r) => r.selected)\n .map((r) =>\n r.districts\n .filter((d) => d.selected)\n .map((d) =>\n d.villages\n .filter((v) => v.selected || v.zones.some((z) => z.selected))\n .map((v) => v.id),\n ),\n )\n .flat(2);\n\n const selectedZones = regions\n .filter((r) => r.selected)\n .map((r) =>\n r.districts\n .filter((d) => d.selected)\n .map((d) =>\n d.villages\n .filter((v) => v.selected)\n .map((v) => v.zones.filter((z) => z.selected).map((z) => z.id)),\n ),\n )\n .flat(3);\n\n return {\n regionIds: selectedRegions,\n districtIds: selectedDistricts,\n villageIds: selectedVillages,\n zoneIds: selectedZones,\n includeUnknownLocation: includeUnknownLocation,\n };\n};\n\nexport const mapToSelectedLocations = (filterValue, regions) =>\n regions.map((region) => {\n const districts = mapSelectedDistricts(region.districts, filterValue);\n\n return {\n ...region,\n districts: districts,\n selected:\n !filterValue ||\n filterValue.regionIds.some((rId) => rId === region.id) ||\n districts.some((district) => district.selected),\n };\n });\n\nconst mapSelectedDistricts = (districts, filterValue) =>\n districts.map((district) => {\n const villages = mapSelectedVillages(district.villages, filterValue);\n\n return {\n ...district,\n villages: villages,\n selected:\n !filterValue ||\n filterValue.districtIds.some((dId) => dId === district.id) ||\n villages.some((village) => village.selected),\n };\n });\n\nconst mapSelectedVillages = (villages, filterValue) =>\n villages.map((village) => {\n const zones = mapSelectedZones(village.zones, filterValue);\n\n return {\n ...village,\n zones: zones,\n selected:\n !filterValue ||\n filterValue.villageIds.some((vId) => vId === village.id) ||\n zones.some((zone) => zone.selected),\n };\n });\n\nconst mapSelectedZones = (zones, filterValue) =>\n zones.map((zone) => {\n return {\n ...zone,\n selected:\n !filterValue || filterValue.zoneIds.some((zId) => zId === zone.id),\n };\n });\n\n/*\n selects/deselects all locations\n*/\nexport const toggleSelectedStatus = (regions, selected) =>\n regions.map((r) => ({\n ...r,\n selected: selected,\n districts: !!r.districts\n ? r.districts.map((d) => ({\n ...d,\n selected: selected,\n villages: !!d.villages\n ? d.villages.map((v) => ({\n ...v,\n selected: selected,\n zones: !!v.zones\n ? v.zones.map((z) => ({\n ...z,\n selected: selected,\n }))\n : [],\n }))\n : [],\n }))\n : [],\n }));\n\n/*\n if a region is selected, all locations below the region in the hierarchy are by definition also selected\n*/\nexport const cascadeSelectRegion = (region, selected) => {\n return {\n ...region,\n selected: selected,\n districts: !!region.districts\n ? region.districts.map((d) => ({\n ...d,\n selected: selected,\n villages: !!d.villages\n ? d.villages.map((v) => ({\n ...v,\n selected: selected,\n zones: !!v.zones\n ? v.zones.map((z) => ({\n ...z,\n selected: selected,\n }))\n : [],\n }))\n : [],\n }))\n : [],\n };\n};\n\n/*\n if a district is selected, all locations below the district in the hierarchy are by definition also selected\n additionally, if all districts in the region are selected after this, the corresponding region is also selected\n*/\nexport const cascadeSelectDistrict = (region, districtId, districtSelected) => {\n const districts = region.districts.map((d) =>\n setDistrict(d, districtId, districtSelected),\n );\n const hasSelectedDistricts = districts.some((d) => d.selected);\n\n return {\n ...region,\n selected: hasSelectedDistricts,\n districts: districts,\n };\n};\n\n/*\n if a village is selected, all locations below the village in the hierarchy are by definition also selected\n additionally, if all villages and districts in the region are selected after this, the region and district are also selected\n*/\nexport const cascadeSelectVillage = (\n region,\n districtId,\n villageId,\n villageSelected,\n) => {\n const villages = region.districts\n .filter((d) => d.id === districtId)\n .map((d) =>\n d.villages.map((v) => setVillage(v, villageId, villageSelected)),\n )\n .flat();\n const anySelectedVillages = villages.some((v) => v.selected);\n const districts = region.districts.map((d) => ({\n ...d,\n selected: d.id === districtId ? anySelectedVillages : d.selected,\n villages: d.id === districtId ? villages : d.villages,\n }));\n const anySelectedDistricts = districts.some((d) => d.selected);\n\n return {\n ...region,\n selected: anySelectedDistricts,\n districts: districts,\n };\n};\n\n/*\n if a zone is selected and that results in all the zones in the village being selected, the village is also selected\n this trickles upwards to the region level\n*/\nexport const cascadeSelectZone = (\n region,\n districtId,\n villageId,\n zoneId,\n zoneSelected,\n) => {\n const zones = region.districts\n .filter((d) => d.id === districtId)\n .map((d) =>\n d.villages\n .filter((v) => v.id === villageId)\n .map((v) => v.zones.map((z) => setZone(z, zoneId, zoneSelected))),\n )\n .flat(2);\n\n const anySelectedZones = zones.some((z) => z.selected);\n const villages = region.districts\n .filter((d) => d.id === districtId)\n .map((d) =>\n d.villages.map((v) => ({\n ...v,\n selected: v.id === villageId ? anySelectedZones : v.selected,\n zones: v.id === villageId ? zones : v.zones,\n })),\n )\n .flat();\n const anySelectedVillages = villages.some((v) => v.selected);\n const districts = region.districts.map((d) => ({\n ...d,\n selected: d.id === districtId ? anySelectedVillages : d.selected,\n villages: d.id === districtId ? villages : d.villages,\n }));\n const anySelectedDistricts = districts.some((d) => d.selected);\n\n return {\n ...region,\n selected: anySelectedDistricts,\n districts: [...districts],\n };\n};\n\n/*\n renders a concatenated label to display when the filter is closed\n*/\nexport const renderFilterLabel = (\n filterValue,\n regions,\n showUnknownLocation,\n) => {\n const compactNameDisplay = (locationNames, withUnknownLocation) => {\n if (withUnknownLocation){\n return locationNames.length >= 1\n ? `${locationNames[0]} (+${locationNames.length})`\n : locationNames[0]; \n }\n \n return locationNames.length > 1\n ? `${locationNames[0]} (+${locationNames.length - 1})`\n : locationNames[0];\n } \n\n if (\n !filterValue ||\n (showUnknownLocation &&\n filterValue.regionIds.length === regions.length &&\n filterValue.includeUnknownLocation) ||\n (!showUnknownLocation && filterValue.regionIds.length === regions.length)\n ) {\n return strings(stringKeys.filters.area.all);\n }\n\n // Checks if all location filter options are deselected or null and if unknownlocation is unchecked if shown.\n if (!filterValue.regionIds.length && !filterValue.districtIds.length && !filterValue.villageIds.length && !filterValue.zoneIds.length && (showUnknownLocation ? !filterValue.includeUnknownLocation : true)) {\n return strings(stringKeys.filters.area.all);\n }\n\n if (filterValue.regionIds.length > 0) {\n let filterRegions = regions.filter(region => filterValue.regionIds.some(filterRegionId => region.id == filterRegionId));\n let filteredRegionNames = filterRegions.map(reg => reg.name);\n return compactNameDisplay(filteredRegionNames, filterValue.includeUnknownLocation);\n }\n\n if (filterValue.districtIds.length > 0) {\n const districtNames = filterValue.districtIds\n .map((id) =>\n regions.map((r) =>\n r.districts.filter((d) => d.id === id).map((d) => d.name),\n ),\n )\n .flat(2);\n\n return compactNameDisplay(districtNames, filterValue.includeUnknownLocation)\n }\n\n if (filterValue.villageIds.length > 0) {\n const villageNames = filterValue.villageIds\n .map((id) =>\n regions.map((r) =>\n r.districts.map((d) =>\n d.villages.filter((v) => v.id === id).map((v) => v.name),\n ),\n ),\n )\n .flat(3);\n\n return compactNameDisplay(villageNames, filterValue.includeUnknownLocation)\n }\n\n if (filterValue.zoneIds.length > 0) {\n const zoneNames = filterValue.zoneIds\n .map((id) =>\n regions.map((r) =>\n r.districts.map((d) =>\n d.villages.map((v) =>\n v.zones.filter((z) => z.id === id).map((z) => z.name),\n ),\n ),\n ),\n )\n .flat(4);\n\n return compactNameDisplay(zoneNames, filterValue.includeUnknownLocation)\n }\n\n if (filterValue.includeUnknownLocation) {\n return strings(stringKeys.filters.area.unknown);\n }\n\n return \"\";\n};\n\nconst setDistrict = (district, districtToUpdateId, selected) => {\n if (district.id !== districtToUpdateId) {\n return district;\n }\n\n return {\n ...district,\n selected: selected,\n villages: !!district.villages\n ? district.villages.map((v) => ({\n ...v,\n selected: selected,\n zones: !!v.zones\n ? v.zones.map((z) => ({\n ...z,\n selected: selected,\n }))\n : [],\n }))\n : [],\n };\n};\n\nconst setVillage = (village, villageToUpdateId, selected) => {\n if (village.id !== villageToUpdateId) {\n return village;\n }\n\n return {\n ...village,\n selected: selected,\n zones: !!village.zones\n ? village.zones.map((z) => ({\n ...z,\n selected: selected,\n }))\n : [],\n };\n};\n\nconst setZone = (zone, zoneToUpdateId, selected) => {\n if (zone.id !== zoneToUpdateId) {\n return zone;\n }\n\n return {\n ...zone,\n selected: selected,\n };\n};\n","import styles from \"./LocationFilter.module.scss\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport ExpandLessIcon from \"@material-ui/icons/ExpandLess\";\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { Checkbox } from \"@material-ui/core\";\n\nconst LocationItem = ({ type, data, isVisible, onChange, rtl }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const [childData, setChildData] = useState(null);\n\n useEffect(() => {\n const getChildData = () => {\n switch (type) {\n case \"region\":\n return { type: \"district\", data: data.districts };\n case \"district\":\n return { type: \"village\", data: data.villages };\n case \"village\":\n return { type: \"zone\", data: data.zones };\n default:\n return { type: \"\", data: [] };\n }\n };\n\n setChildData(getChildData());\n }, [data, type]);\n\n const handleChange = (id) => {\n onChange({ type: type, id: id });\n };\n\n const renderIconContainer = () => {\n if (type === \"unknown\") {\n return (\n \n \n handleChange(data.id)}\n />\n \n );\n }\n\n if (!!childData && childData.data.length < 1) {\n return (\n \n handleChange(data.id)}\n />\n \n );\n }\n\n return (\n \n {isExpanded ? (\n setIsExpanded(false)}\n />\n ) : (\n setIsExpanded(true)}\n />\n )}\n handleChange(data.id)}\n />\n \n );\n };\n\n return (\n isVisible && (\n \n \n {renderIconContainer()}\n\n handleChange(data.id)}\n >\n {data.name}\n \n
\n\n {!!childData &&\n childData.data.map((d) => (\n \n ))}\n \n )\n );\n};\n\nexport default LocationItem;\n","import { stringKeys, strings } from \"../../../strings\";\nimport {\n Button,\n Checkbox,\n FormControlLabel,\n Grid,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport styles from \"../filters/LocationFilter.module.scss\";\n\nexport const SelectAll = ({\n isSelectAllEnabled,\n toggleSelectAll,\n showResults,\n}) => {\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down(\"sm\"));\n return (\n \n \n }\n label={strings(stringKeys.filters.area.selectAll)}\n />\n \n {isSmallScreen\n ? strings(stringKeys.common.buttons.update)\n : strings(stringKeys.filters.area.showResults)}\n \n
\n
\n );\n};\n","import styles from \"./LocationFilter.module.scss\";\n\nimport { Fragment, useState } from \"react\";\nimport { Popover, TextField, useMediaQuery } from \"@material-ui/core\";\nimport ArrowDropDown from \"@material-ui/icons/ArrowDropDown\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles({\n popoverPaper: {\n \"&.MuiPopover-paper\": {\n width: \"100%\",\n maxWidth: 400,\n },\n },\n});\n\nexport const DropdownPopover = ({\n children,\n label,\n filterLabel,\n showResults,\n rtl,\n dialogOpen,\n setDialogOpen,\n}) => {\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = useState(null);\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down(\"sm\"));\n\n const handleDropdownClick = (event) => {\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n setDialogOpen(true);\n };\n\n const handleKeyUp = (event) => {\n if (event.key === \"Enter\" || event.key === \" \") handleDropdownClick(event);\n };\n\n return (\n \n ,\n }}\n value={filterLabel}\n inputProps={{\n className: styles.clickable,\n }}\n onClick={handleDropdownClick}\n onKeyUp={handleKeyUp}\n />\n {\n setDialogOpen(false);\n showResults();\n }}\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: rtl ? \"right\" : \"left\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: rtl ? \"right\" : \"left\",\n }}\n PaperProps={{\n className: styles.filterContainer,\n }}\n classes={{ paper: classes.popoverPaper }}\n style={{ maxHeight: 400, maxWidth: \"90%\" }}\n >\n {children}\n \n \n );\n};\n","import { useEffect, useState } from \"react\";\nimport {\n cascadeSelectDistrict,\n cascadeSelectRegion,\n cascadeSelectVillage,\n cascadeSelectZone,\n extractSelectedValues,\n mapToSelectedLocations,\n toggleSelectedStatus,\n} from \"./logic/locationFilterService\";\nimport { stringKeys, strings } from \"../../../strings\";\nimport LocationItem from \"./LocationItem\";\nimport { SelectAll } from \"../../common/selectAll/SelectAll\";\nimport { DropdownPopover } from \"./DropdownPopover\";\nimport { useMount } from \"../../../utils/lifecycle\";\n\nconst LocationFilter = ({\n filteredLocations,\n filterLabel,\n allLocations,\n onChange,\n showUnknownLocation,\n rtl,\n}) => {\n const [selectedLocations, setSelectedLocations] = useState([]);\n const [includeUnknownLocation, setIncludeUnknownLocation] = useState(false);\n const [selectAll, setSelectAll] = useState(true);\n const [dialogOpen, setDialogOpen] = useState(false);\n \n useMount(() => {\n showUnknownLocation && setIncludeUnknownLocation(true);\n });\n\n useEffect(() => {\n if (!allLocations) return;\n setSelectedLocations(\n mapToSelectedLocations(filteredLocations, allLocations.regions),\n );\n }, [allLocations, filteredLocations, showUnknownLocation]);\n\n useEffect(() => {\n const anyUnselected = selectedLocations.some(\n (r) =>\n !r.selected ||\n r.districts.some(\n (d) =>\n !d.selected ||\n d.villages.some(\n (v) => !v.selected || v.zones.some((z) => !z.selected),\n ),\n ),\n );\n setSelectAll(\n !anyUnselected && (!showUnknownLocation || includeUnknownLocation)\n );\n }, [selectedLocations, includeUnknownLocation, showUnknownLocation]);\n\n const setSelectedStatusOfRegion = (id) => {\n const index = selectedLocations.findIndex((r) => r.id === id);\n const region = selectedLocations[index];\n const updatedSelectedLocations = [...selectedLocations];\n\n updatedSelectedLocations[index] = cascadeSelectRegion(\n region,\n !region.selected,\n );\n setSelectedLocations(updatedSelectedLocations);\n };\n\n const setSelectedStatusOfDistrict = (id) => {\n const regionIndex = selectedLocations.findIndex((r) =>\n r.districts.some((d) => d.id === id),\n );\n const region = selectedLocations[regionIndex];\n const districtIndex = region.districts.findIndex((d) => d.id === id);\n const district = region.districts[districtIndex];\n const updatedSelectedLocations = [...selectedLocations];\n\n updatedSelectedLocations[regionIndex] = cascadeSelectDistrict(\n region,\n district.id,\n !district.selected,\n );\n setSelectedLocations(updatedSelectedLocations);\n };\n\n const setSelectedStatusOfVillage = (id) => {\n const regionIndex = selectedLocations.findIndex((r) =>\n r.districts.some((d) => d.villages.some((v) => v.id === id)),\n );\n const region = selectedLocations[regionIndex];\n const districtIndex = region.districts.findIndex((d) =>\n d.villages.some((v) => v.id === id),\n );\n const district = region.districts[districtIndex];\n const villageIndex = district.villages.findIndex((v) => v.id === id);\n const village = district.villages[villageIndex];\n const updatedSelectedLocations = [...selectedLocations];\n\n updatedSelectedLocations[regionIndex] = cascadeSelectVillage(\n region,\n district.id,\n village.id,\n !village.selected,\n );\n setSelectedLocations(updatedSelectedLocations);\n };\n\n const setSelectedStatusOfZone = (id) => {\n const regionIndex = selectedLocations.findIndex((r) =>\n r.districts.some((d) =>\n d.villages.some((v) => v.zones.some((z) => z.id === id)),\n ),\n );\n const region = selectedLocations[regionIndex];\n const districtIndex = region.districts.findIndex((d) =>\n d.villages.some((v) => v.zones.some((z) => z.id === id)),\n );\n const district = region.districts[districtIndex];\n const villageIndex = district.villages.findIndex((v) =>\n v.zones.some((z) => z.id === id),\n );\n const village = district.villages[villageIndex];\n const zoneIndex = village.zones.findIndex((z) => z.id === id);\n const zone = village.zones[zoneIndex];\n const updatedSelectedLocations = [...selectedLocations];\n\n updatedSelectedLocations[regionIndex] = cascadeSelectZone(\n region,\n district.id,\n village.id,\n zone.id,\n !zone.selected,\n );\n setSelectedLocations(updatedSelectedLocations);\n };\n\n const handleChange = ({ type, id }) => {\n switch (type) {\n case \"region\":\n setSelectedStatusOfRegion(id);\n break;\n case \"district\":\n setSelectedStatusOfDistrict(id);\n break;\n case \"village\":\n setSelectedStatusOfVillage(id);\n break;\n case \"zone\":\n setSelectedStatusOfZone(id);\n break;\n case \"unknown\":\n setIncludeUnknownLocation(!includeUnknownLocation);\n break;\n default:\n break;\n }\n };\n\n const showResults = () => {\n setDialogOpen(false);\n const filterValue = extractSelectedValues(\n selectedLocations,\n includeUnknownLocation,\n );\n onChange(filterValue);\n };\n\n const toggleSelectAll = () => {\n setIncludeUnknownLocation(!selectAll);\n setSelectAll(!selectAll);\n setSelectedLocations(toggleSelectedStatus(selectedLocations, !selectAll));\n };\n\n return (\n \n \n {showUnknownLocation && (\n \n )}\n {selectedLocations.map((r) => (\n \n ))}\n \n );\n};\n\nexport default LocationFilter;\n","import { useState } from \"react\";\n\nconst useLocalFilters = (filters) => {\n const [filter, setFilter] = useState(filters);\n\n const updateFilter = (change) => {\n const newValue = {\n ...filter,\n ...change,\n };\n setFilter((prev) => ({ ...prev, ...change }));\n return newValue;\n };\n\n return [filter, updateFilter];\n};\n\nexport default useLocalFilters;\n","import { useEffect, useState } from \"react\";\nimport { renderFilterLabel } from \"../../common/filters/logic/locationFilterService\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nconst useLocationFilter = (locations, localFilters, updateLocalFilters, showUnknownLocation) => {\n const [locationsFilterLabel, setLocationsFilterLabel] = useState(\n strings(stringKeys.filters.area.all),\n );\n\n // Synchronize locations from redux store with filter state\n // useEffect which runs on mount and when locations are added, edited or removed. Updates locations in the filter state in order to avoid mismatch between locations and filtered locations\n useEffect(() => {\n if (!locations) return;\n\n const locationFilters = {\n regionIds: locations.regions.map((region) => region.id),\n districtIds: locations.regions\n .map((region) => region.districts.map((district) => district.id))\n .flat(),\n villageIds: locations.regions\n .map((region) =>\n region.districts.map((district) =>\n district.villages.map((village) => village.id),\n ),\n )\n .flat(2),\n zoneIds: locations.regions\n .map((region) =>\n region.districts.map((district) =>\n district.villages.map((village) =>\n village.zones.map((zone) => zone.id),\n ),\n ),\n )\n .flat(3),\n includeUnknownLocation: showUnknownLocation ? true : false,\n };\n\n updateLocalFilters({ locations: locationFilters });\n }, [locations]);\n\n // Sets label for location filter to 'All' or \"Region (+n)\"\n useEffect(() => {\n const label =\n !localFilters ||\n !locations ||\n !localFilters.locations ||\n localFilters.locations.regionIds.length === 0 && !showUnknownLocation\n ? strings(stringKeys.filters.area.all)\n : renderFilterLabel(localFilters.locations, locations.regions, showUnknownLocation);\n setLocationsFilterLabel(label);\n }, [localFilters.locations]);\n\n return [locationsFilterLabel];\n};\n\nexport default useLocationFilter;\n","import React, { useState, useRef } from \"react\";\nimport Drawer from \"@material-ui/core/Drawer\";\nimport Button from \"@material-ui/core/Button\";\nimport Backdrop from \"@material-ui/core/Backdrop\";\nimport { Typography, makeStyles, Grid } from \"@material-ui/core\";\nimport FilterListIcon from \"@material-ui/icons/FilterList\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nconst useStyles = makeStyles((theme) => ({\n pullTabContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n borderBottom: `1px solid ${theme.palette.grey[300]}`,\n boxShadow: `0px 4px 4px -6px ${theme.palette.grey[500]}`,\n borderRadius: theme.shape.borderRadius,\n },\n pullTab: {\n height: 5,\n borderRadius: 8,\n width: 50,\n backgroundColor: theme.palette.grey[400],\n margin: \"8px 0px\",\n },\n title: {\n marginBottom: 10,\n marginRight: 3,\n },\n contentContainer: {\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"30px 10px\",\n overflowX: \"hidden\",\n maxHeight: 350,\n overflowY: \"auto\",\n [theme.breakpoints.down(\"xs\")]: {\n padding: \"20px 10px\",\n },\n },\n resultsContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"center\",\n padding: 15,\n height: 40,\n borderRadius: theme.shape.borderRadius,\n borderTop: `1px solid ${theme.palette.grey[300]}`,\n boxShadow: `0px 4px 4px 2px ${theme.palette.grey[500]}`,\n },\n backdrop: {\n zIndex: theme.zIndex.drawer - 1,\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n },\n backdropClass: {\n backgroundColor: \"transparent\",\n },\n}));\n\nexport const DrawerFilter = ({ title, children, showResults }) => {\n const [isOpen, setIsOpen] = useState(false);\n const classes = useStyles();\n const [startY, setStartY] = useState(null);\n const drawerRef = useRef(null);\n\n const onShowResults = () => {\n setIsOpen(false);\n showResults();\n };\n\n const handleTouchStart = (event) => {\n setStartY(event.touches[0].clientY);\n };\n\n const handleTouchMove = (event) => {\n if (startY !== null) {\n const currentY = event.touches[0].clientY;\n const deltaY = currentY - startY;\n\n if (deltaY > 0 && drawerRef.current && drawerRef.current.style) {\n drawerRef.current.style.transform = `translateY(${deltaY}px)`;\n }\n }\n };\n const handleDrawerTransitionEnd = () => {\n if (!isOpen && drawerRef.current && drawerRef.current.style) {\n drawerRef.current.style.transition = \"\"; // Reset transition property\n drawerRef.current.style.transform = \"\"; // Reset transform property\n }\n };\n\n const handleTouchEnd = (event) => {\n if (startY !== null) {\n // You can adjust the threshold for closing the drawer as needed\n const threshold = 200;\n const currentY = event.changedTouches[0].clientY;\n const deltaY = currentY - startY;\n\n if (deltaY > threshold) {\n // Close the drawer when dragging down\n onShowResults();\n } else {\n // Reset styles if not closing\n if (drawerRef.current && drawerRef.current.style) {\n drawerRef.current.style.transform = \"\";\n }\n }\n setStartY(null);\n }\n };\n\n const toggleDrawer = (open) => {\n setIsOpen(open);\n };\n\n return (\n <>\n }\n color=\"primary\"\n variant=\"outlined\"\n onClick={() => toggleDrawer(true)}\n >\n {strings(stringKeys.common.filters)}\n \n \n \n
\n \n \n {strings(stringKeys.common.filter)}\n \n \n {title}\n \n \n
\n
\n {children}\n
\n
\n \n
\n \n \n \n );\n};\n","import { useEffect, useReducer } from \"react\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport {\n sexValues,\n trainingStatus,\n deployedMode,\n} from \"../logic/dataCollectorsConstants\";\nimport {\n InputLabel,\n RadioGroup,\n FormControlLabel,\n Radio,\n Grid,\n TextField,\n MenuItem,\n Card,\n CardContent,\n useTheme,\n useMediaQuery,\n makeStyles,\n} from \"@material-ui/core\";\nimport * as roles from \"../../../authentication/roles\";\nimport useDebounce from \"../../../utils/debounce\";\nimport LocationFilter from \"../../common/filters/LocationFilter\";\nimport useLocalFilters from \"../../common/filters/useLocalFilters\";\nimport useLocationFilter from \"../../common/filters/useLocationFilter\";\nimport { DrawerFilter } from \"../../common/filters/DrawerFilter\";\n\nconst useStyles = makeStyles((theme) => ({\n filterItem: {\n width: \"150px\",\n [theme.breakpoints.down(\"xs\")]: {\n width: \"100%\",\n maxWidth: \"220px\",\n },\n },\n filters: {\n boxShadow: \"#fff 0px 5px 5px 5px\",\n },\n filterRadioGroup: {\n paddingTop: \"5px\",\n },\n radio: {\n height: \"23px\",\n },\n filterLabel: {\n fontWeight: 400,\n },\n}));\n\nexport const DataCollectorsFilters = ({\n supervisors,\n locations,\n onChange,\n callingUserRoles,\n filters,\n rtl,\n}) => {\n //Reducer for local filters state\n const [localFilters, updateLocalFilters] = useLocalFilters(filters);\n\n const classes = useStyles();\n\n //Fetches new data based on changes in filters\n const handleFiltersChange = (filters) => {\n onChange(updateLocalFilters(filters));\n };\n\n //Syncs locations from redux store with filter state and sets label for location filter to 'All' or \"Region (+n)\"\n //Neccecary if locations are added, edited or removed, to make all filters checked\n const [locationsFilterLabel] = useLocationFilter(\n locations,\n localFilters,\n updateLocalFilters,\n );\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n const isMediumScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n const updateValue = (change) => {\n handleFiltersChange(change);\n };\n\n const handleLocationChange = (newValue) => {\n updateValue({ locations: newValue });\n };\n\n const handleSupervisorChange = (event) =>\n updateValue({\n supervisorId: event.target.value === 0 ? null : event.target.value,\n });\n\n const handleSexChange = (event) => updateValue({ sex: event.target.value });\n\n const handleTrainingStatusChange = (event) =>\n updateValue({ trainingStatus: event.target.value });\n\n const handleDeployedModeChange = (event) =>\n updateValue({ deployedMode: event.target.value });\n\n const Filter = () => {\n const [name, setName] = useReducer(\n (state, action) => {\n if (state.value !== action) {\n return { changed: true, value: action };\n } else {\n return state;\n }\n },\n { value: localFilters.name, changed: false },\n );\n\n const debouncedName = useDebounce(name, 500);\n\n const handleNameChange = (event) => setName(event.target.value);\n\n useEffect(() => {\n debouncedName.changed &&\n handleFiltersChange({ name: debouncedName.value });\n }, [debouncedName.value]);\n\n useEffect(() => {\n debouncedName.changed && updateValue({ name: debouncedName.value });\n }, [debouncedName]);\n\n return (\n \n \n \n \n \n \n \n\n {!callingUserRoles.some((r) => r === roles.Supervisor) && (\n \n \n \n {strings(stringKeys.dataCollectors.filters.supervisorsAll)}\n \n\n {supervisors.map((supervisor) => (\n \n {supervisor.name}\n \n ))}\n \n \n )}\n\n {/* DC sex filter */}\n \n \n \n {strings(stringKeys.dataCollectors.filters.sexAll)}\n \n\n {sexValues.map((sex) => (\n \n {strings(\n stringKeys.dataCollectors.constants.sex[sex.toLowerCase()],\n )}\n \n ))}\n \n \n\n {/* Training status filter */}\n \n \n {strings(stringKeys.dataCollectors.filters.trainingStatus)}\n \n \n {trainingStatus.map((status) => (\n }\n className={classes.radio}\n label={strings(\n stringKeys.dataCollectors.constants.trainingStatus[status],\n )}\n value={status}\n />\n ))}\n \n \n\n \n \n {strings(stringKeys.dataCollectors.filters.deployedMode)}\n \n \n {deployedMode.map((status) => (\n }\n className={classes.radio}\n label={strings(\n stringKeys.dataCollectors.constants.deployedMode[status],\n )}\n value={status}\n />\n ))}\n \n \n \n );\n };\n\n if (isMediumScreen) {\n return (\n !!localFilters && (\n \n }\n showResults={handleFiltersChange}\n />\n \n )\n );\n }\n\n return (\n !!localFilters && (\n \n \n \n \n \n )\n );\n};\n","import styles from \"./ReplaceSupervisorDialog.module.scss\";\nimport { useState } from \"react\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport FormActions from \"../../forms/formActions/FormActions\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../../common/buttons/cancelButton/CancelButton\";\nimport {\n useTheme,\n Grid,\n MenuItem,\n List,\n ListItem,\n Typography,\n Dialog,\n DialogContent,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport { validators, createForm } from \"../../../utils/forms\";\nimport Form from \"../../forms/form/Form\";\nimport SelectField from \"../../forms/SelectField\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\n\nexport const ReplaceSupervisorDialog = ({\n isOpened,\n close,\n dataCollectors,\n supervisors,\n replaceSupervisor,\n}) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n\n const [form] = useState(() => {\n const fields = {\n supervisorId: \"\",\n };\n\n const validation = {\n supervisorId: [validators.required],\n };\n return createForm(fields, validation);\n });\n\n const handleSubmit = (event) => {\n event.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const selectedSupervisor = supervisors.find(\n (s) => s.id === parseInt(form.fields.supervisorId.value),\n );\n replaceSupervisor(\n dataCollectors.map((dc) => dc.id),\n parseInt(form.fields.supervisorId.value),\n selectedSupervisor.role,\n );\n close();\n };\n\n return (\n \n \n
\n \n \n \n {supervisors.map((sup) => (\n \n {sup.name}\n \n ))}\n \n \n\n \n \n {strings(\n stringKeys.dataCollectors.form.replaceSupervisorWarning,\n )}\n \n \n \n \n \n\n \n \n {dataCollectors.map((dc) => (\n {dc.name}\n ))}\n \n \n \n\n \n \n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.dataCollectors.form.replaceSupervisor)}\n \n \n
\n
\n
\n );\n};\n","import React, { Fragment, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as dataCollectorsActions from \"./logic/dataCollectorsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport TableHeader from \"../common/tableHeader/TableHeader\";\nimport DataCollectorsTable from \"./components/DataCollectorsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { DataCollectorsFilters } from \"./components/DataCollectorsFilters\";\nimport { ReplaceSupervisorDialog } from \"./components/ReplaceSupervisorDialog\";\nimport { trackEvent, trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst DataCollectorsListPageComponent = ({\n getDataCollectorList,\n projectId,\n ...props\n}) => {\n useMount(() => {\n props.openDataCollectorsList(projectId, props.filters);\n\n // Track page view\n trackPageView(\"DataCollectorsListPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const [replaceSupervisorDialogOpened, setReplaceSupervisorDialogOpened] =\n useState(false);\n const [selectedDataCollectors, setSelectedDataCollectors] = useState([]);\n\n const handleFilterChange = (filters) =>\n getDataCollectorList(projectId, filters);\n\n const handleReplaceSupervisor = (dataCollectors) => {\n setSelectedDataCollectors(dataCollectors);\n setReplaceSupervisorDialogOpened(true);\n };\n\n const handleExportToCsv = () => {\n trackEvent(\"exportDataCollectorsCsv\", { exportFileType: \"Csv\" });\n\n props.exportToCsv(projectId, props.filters);\n };\n\n const handleExportToExcel = () => {\n trackEvent(\"exportDataCollectorsExcel\", { exportFileType: \"Excel\" });\n\n props.exportToExcel(projectId, props.filters);\n };\n\n const onChangePage = (e, page) => {\n getDataCollectorList(projectId, { ...props.filters, pageNumber: page });\n };\n\n return (\n \n \n {!props.isClosed && (\n \n \n {strings(stringKeys.dataCollectors.exportCsv)}\n \n \n {strings(stringKeys.dataCollectors.exportExcel)}\n \n props.goToCreation(projectId)}\n variant=\"contained\"\n add\n rtl={useRtlDirection}\n >\n {strings(stringKeys.common.buttons.add)}\n \n \n )}\n \n\n \n\n \n\n setReplaceSupervisorDialogOpened(false)}\n />\n \n );\n};\n\nDataCollectorsListPageComponent.propTypes = {\n getDataCollectors: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n listData: PropTypes.object,\n isClosed: PropTypes.bool,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n isClosed: state.appData.siteMap.parameters.projectIsClosed,\n listData: state.dataCollectors.listData,\n isListFetching: state.dataCollectors.listFetching,\n isRemoving: state.dataCollectors.listRemoving,\n isUpdatingDataCollector: state.dataCollectors.updatingDataCollector,\n listSelectedAll: state.dataCollectors.listSelectedAll,\n supervisors: state.dataCollectors.filtersData.supervisors,\n locations: state.dataCollectors.filtersData.locations,\n filters: state.dataCollectors.filters,\n callingUserRoles: state.appData.user.roles,\n isExportingToExcel: state.dataCollectors.isExportingToExcel,\n isExportingToCsv: state.dataCollectors.isExportingToCsv,\n});\n\nconst mapDispatchToProps = {\n openDataCollectorsList: dataCollectorsActions.openList.invoke,\n getDataCollectorList: dataCollectorsActions.getList.invoke,\n goToCreation: dataCollectorsActions.goToCreation,\n goToEdition: dataCollectorsActions.goToEdition,\n selectDataCollector: dataCollectorsActions.selectDataCollector,\n selectAllDataCollectors: dataCollectorsActions.selectAllDataCollectors,\n remove: dataCollectorsActions.remove.invoke,\n setTrainingState: dataCollectorsActions.setTrainingState.invoke,\n exportToExcel: dataCollectorsActions.exportToExcel.invoke,\n exportToCsv: dataCollectorsActions.exportToCsv.invoke,\n replaceSupervisor: dataCollectorsActions.replaceSupervisor.invoke,\n setDeployedState: dataCollectorsActions.setDeployedState.invoke,\n};\n\nexport const DataCollectorsListPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(DataCollectorsListPageComponent),\n);\n","export const calculateBounds = (data) => {\n function getMinLat(points) {\n return points.reduce(\n (min, p) => (p.lat < min ? p.lat : min),\n points[0].lat,\n );\n }\n function getMaxLat(points) {\n return points.reduce(\n (max, p) => (p.lat > max ? p.lat : max),\n points[0].lat,\n );\n }\n function getMinLng(points) {\n return points.reduce(\n (min, p) => (p.lng < min ? p.lng : min),\n points[0].lng,\n );\n }\n function getMaxLng(points) {\n return points.reduce(\n (max, p) => (p.lng > max ? p.lng : max),\n points[0].lng,\n );\n }\n\n let points = data.map((loc) => ({\n lat: loc.location.latitude,\n lng: loc.location.longitude,\n }));\n return [\n [getMinLat(points), getMinLng(points)],\n [getMaxLat(points), getMaxLng(points)],\n ];\n};\n\nexport const calculateCenter = (data) =>\n data\n .map((l) => [l.lat, l.lng])\n .reduce(\n (avg, value, _, { length }) => {\n return [avg[0] + value[0] / length, avg[1] + value[1] / length];\n },\n [0, 0],\n );\n\nexport const retrieveGpsLocation = (callback) => {\n if (!navigator.geolocation) {\n throw new Error(\"Geolocation is not supported by this browser\");\n }\n\n return navigator.geolocation.getCurrentPosition(callback, (e) => {\n callback(null);\n });\n};\n\nexport const calculateIconSize = (count, total) => {\n const minSize = 30,\n maxSize = 130;\n const size = Math.log10(count, total) * 40;\n\n if (size < minSize) {\n return minSize;\n } else if (size > maxSize) {\n return maxSize;\n } else {\n return size;\n }\n};\n","import styles from \"./MarkerIcon.module.scss\"\nimport L from 'leaflet'\n\nexport const SignIcon = ({ icon, className, size, multiple }) => L.divIcon({\n html: `${icon}`,\n className: `${className} ${styles.signMarker} ${multiple ? styles.multiple : null}`,\n iconSize: L.point(size, size, true),\n});\n\nexport const TextIcon = ({ text, size, multiple }) => L.divIcon({\n html: `${text}`,\n className: `${styles.text} ${styles.marker} ${multiple ? styles.multiple : null}`,\n iconSize: L.point(size, size, true),\n});","import {\n dataCollectorType,\n performanceStatus,\n} from \"./dataCollectorsConstants\";\nimport * as http from \"../../../utils/http\";\n\nexport const getIconFromStatus = (status) => {\n switch (status) {\n case performanceStatus.reportingCorrectly:\n return \"check\";\n case performanceStatus.reportingWithErrors:\n return \"close\";\n case performanceStatus.notReporting:\n return \"access_time\";\n default:\n return null;\n }\n};\n\nexport const getSaveFormModel = (projectId, values, type, locations) => ({\n projectId: projectId,\n id: values.id,\n dataCollectorType: type,\n name: values.name,\n displayName: values.displayName,\n sex: type === dataCollectorType.human ? values.sex : null,\n supervisorId: parseInt(values.supervisorId),\n birthGroupDecade:\n type === dataCollectorType.human ? parseInt(values.birthGroupDecade) : null,\n additionalPhoneNumber: values.additionalPhoneNumber,\n phoneNumber: values.phoneNumber,\n deployed: values.deployed,\n locations: locations.map((location) => ({\n id: location.id || null,\n latitude: parseFloat(values[`locations_${location.number}_latitude`]),\n longitude: parseFloat(values[`locations_${location.number}_longitude`]),\n regionId: parseInt(values[`locations_${location.number}_regionId`]),\n districtId: parseInt(values[`locations_${location.number}_districtId`]),\n villageId: parseInt(values[`locations_${location.number}_villageId`]),\n zoneId: values[`locations_${location.number}_zoneId`]\n ? parseInt(values[`locations_${location.number}_zoneId`])\n : null,\n })),\n linkedToHeadSupervisor: values.linkedToHeadSupervisor,\n});\n\nexport const getFormDistricts = (regionId, callback) =>\n http\n .get(`/api/nationalSocietyStructure/district/list?regionId=${regionId}`)\n .then((response) => callback(response.value));\n\nexport const getFormVillages = (districtId, callback) =>\n http\n .get(`/api/nationalSocietyStructure/village/list?districtId=${districtId}`)\n .then((response) => callback(response.value));\n\nexport const getFormZones = (villageId, callback) =>\n http\n .get(`/api/nationalSocietyStructure/zone/list?villageId=${villageId}`)\n .then((response) => callback(response.value));\n","import styles from \"./DataCollectorsPerformanceMap.module.scss\";\nimport { useState, useEffect } from \"react\";\nimport {\n MapContainer,\n TileLayer,\n Popup,\n Marker,\n ScaleControl,\n} from \"react-leaflet\";\nimport MarkerClusterGroup from \"react-leaflet-markercluster\";\nimport { Loading } from \"../../common/loading/Loading\";\nimport { Icon } from \"@material-ui/core\";\nimport { calculateBounds } from \"../../../utils/map\";\nimport { SignIcon } from \"../../common/map/MarkerIcon\";\nimport { getIconFromStatus } from \"../logic/dataCollectorsService\";\nimport { performanceStatus } from \"../logic/dataCollectorsConstants\";\n\nconst createClusterIcon = (cluster) => {\n const data = cluster\n .getAllChildMarkers()\n .map((m) => m.options.dataCollectorInfo);\n\n const aggregatedData = {\n countReportingCorrectly: data.some((d) => d.countReportingCorrectly),\n countReportingWithErrors: data.some((d) => d.countReportingWithErrors),\n countNotReporting: data.some((d) => d.countNotReporting),\n };\n\n const status = getAggregatedStatus(aggregatedData);\n\n return new SignIcon({\n icon: getIconFromStatus(status),\n className: styles[`marker_${status}`],\n size: 40,\n multiple: true,\n });\n};\n\nconst createIcon = (info) => {\n const status = getAggregatedStatus(info);\n\n return new SignIcon({\n icon: getIconFromStatus(status),\n className: styles[`marker_${status}`],\n size: 40,\n });\n};\n\nconst getAggregatedStatus = (info) => {\n if (info.countReportingWithErrors) {\n return performanceStatus.reportingWithErrors;\n }\n\n if (info.countNotReporting) {\n return performanceStatus.notReporting;\n }\n\n return performanceStatus.reportingCorrectly;\n};\n\nexport const DataCollectorsPerformanceMap = ({\n centerLocation,\n dataCollectorLocations,\n projectId,\n details,\n getMapDetails,\n detailsFetching,\n}) => {\n const [center, setCenter] = useState(null);\n const [bounds, setBounds] = useState(null);\n\n useEffect(() => {\n const hasLocations = dataCollectorLocations.length > 0;\n setCenter(\n hasLocations\n ? { lat: centerLocation.latitude, lng: centerLocation.longitude }\n : null,\n );\n setBounds(hasLocations ? calculateBounds(dataCollectorLocations) : null);\n }, [dataCollectorLocations, centerLocation]);\n\n const handleMarkerClick = (e) =>\n getMapDetails(projectId, e.latlng.lat, e.latlng.lng);\n\n const combineStatus = (dataCollectorList, dc) => {\n let current = dataCollectorList[0];\n current.countNotReporting += dc.countNotReporting;\n current.countReportingWithErrors += dc.countReportingWithErrors;\n current.countReportingCorrectly += dc.countReportingCorrectly;\n return [current];\n };\n\n const distinctLocations = (dataCollectors) =>\n dataCollectors.reduce(\n (a, c) =>\n a.some(\n (dc) =>\n dc.location.latitude === c.location.latitude &&\n dc.location.longitude === c.location.longitude,\n )\n ? combineStatus(a, c)\n : [...a, c],\n [],\n );\n\n return (\n (!!center || !!bounds) && (\n \n \n\n \n {distinctLocations(dataCollectorLocations).map((dc, i) => (\n \n \n
\n {!detailsFetching ? (\n
\n {details &&\n details.map((d) => (\n \n {getIconFromStatus(d.status)}\n {d.displayName}\n
\n ))}\n
\n ) : (\n \n )}\n \n
\n \n ))}\n \n \n \n )\n );\n};\n","import styles from \"./DatePicker.module.scss\";\nimport React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n KeyboardDatePicker,\n MuiPickersUtilsProvider,\n} from \"@material-ui/pickers\";\nimport format from \"date-fns/format\";\nimport frLocale from \"date-fns/locale/fr\";\nimport arLocale from \"date-fns/locale/ar\";\nimport esLocale from \"date-fns/locale/es\";\nimport enLocale from \"date-fns/locale/en-GB\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport { useSelector } from \"react-redux\";\n\nclass LocalizedUtils extends DateFnsUtils {\n getDatePickerHeaderText(date) {\n return format(date, \"yyyy-MM-dd\", { locale: this.locale });\n }\n}\n\nexport const DatePicker = ({\n label,\n value,\n onChange,\n className,\n fullWidth,\n}) => {\n const userLanguageCode = useSelector(\n (state) => state.appData.user.languageCode,\n );\n const [locale, setLocale] = useState(enLocale);\n\n useEffect(() => {\n switch (userLanguageCode) {\n case \"en\":\n setLocale(enLocale);\n break;\n case \"es\":\n setLocale(esLocale);\n break;\n case \"fr\":\n setLocale(frLocale);\n break;\n case \"ar\":\n setLocale(arLocale);\n break;\n default:\n setLocale(enLocale);\n }\n }, [userLanguageCode]);\n\n return (\n \n \n \n );\n};\n\nDatePicker.propTypes = {\n label: PropTypes.string,\n value: PropTypes.any,\n onChange: PropTypes.func,\n className: PropTypes.string,\n fullWidth: PropTypes.bool,\n};\n","import styles from \"./DataCollectorsPerformanceMapFilters.module.scss\";\nimport { Grid } from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { DatePicker } from \"../../forms/DatePicker\";\nimport { convertToLocalDate, convertToUtc } from \"../../../utils/date\";\nimport useLocalFilters from \"../../common/filters/useLocalFilters\";\nimport { useEffect } from \"react\";\n\nexport const DataCollectorsPerformanceMapFilters = ({ filters, onChange }) => {\n //Reducer for local filters state\n const [localFilters, updateLocalFilters] = useLocalFilters(filters);\n\n useEffect(() => { \n updateLocalFilters(filters);\n }, [filters]);\n\n\n //Fetches new data based on changes in filters\n const handleFiltersChange = (filters) =>\n onChange(updateLocalFilters(filters));\n\n const handleDateFromChange = (date) =>\n handleFiltersChange({ startDate: convertToUtc(date) });\n\n const handleDateToChange = (date) =>\n handleFiltersChange({ endDate: convertToUtc(date) });\n\n return (\n \n \n \n \n\n \n \n \n \n );\n};\n","import styles from \"./DataCollectorsPerformanceMapLegend.module.scss\";\nimport mapStyles from \"./DataCollectorsPerformanceMap.module.scss\";\nimport mapIconStyles from \"../../common/map/MarkerIcon.module.scss\";\nimport { Icon } from \"@material-ui/core\";\nimport { getIconFromStatus } from \"../logic/dataCollectorsService\";\nimport { performanceStatus } from \"../logic/dataCollectorsConstants\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const DataCollectorsPerformanceMapLegend = ({ rtl }) => {\n const renderItem = (status) => (\n
\n \n {getIconFromStatus(status)}\n
\n
\n {strings(stringKeys.dataCollectors.mapOverview.legend[status])}\n
\n \n );\n\n return (\n
\n {renderItem(performanceStatus.reportingCorrectly)}\n {renderItem(performanceStatus.reportingWithErrors)}\n {renderItem(performanceStatus.notReporting)}\n
\n );\n};\n","import React, { Fragment, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as dataCollectorsActions from \"./logic/dataCollectorsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { DataCollectorsPerformanceMap } from \"./components/DataCollectorsPerformanceMap\";\nimport { DataCollectorsPerformanceMapFilters } from \"./components/DataCollectorsPerformanceMapFilters\";\nimport { DataCollectorsPerformanceMapLegend } from \"./components/DataCollectorsPerformanceMapLegend\";\nimport * as tracking from \"../../utils/tracking\";\nimport TableHeader from \"../common/tableHeader/TableHeader\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst DataCollectorsMapOverviewPageComponent = (props) => {\n useMount(() => {\n props.openDataCollectorsMapOverview(props.projectId);\n\n // Track page view\n trackPageView(\"DataCollectorsMapOverviewPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const handleFiltersChange = (value) =>\n props.getDataCollectorsMapOverview(props.projectId, value);\n\n if (!props.filters) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n );\n};\n\nDataCollectorsMapOverviewPageComponent.propTypes = {\n getDataCollectorsMapOverview: PropTypes.func,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n dataCollectorLocations:\n state.dataCollectors.mapOverviewDataCollectorLocations,\n centerLocation: state.dataCollectors.mapOverviewCenterLocation,\n details: state.dataCollectors.mapOverviewDetails,\n detailsFetching: state.dataCollectors.mapOverviewDetailsFetching,\n filters: state.dataCollectors.mapOverviewFilters,\n});\n\nconst mapDispatchToProps = {\n openDataCollectorsMapOverview: dataCollectorsActions.openMapOverview.invoke,\n getDataCollectorsMapOverview: dataCollectorsActions.getMapOverview.invoke,\n getMapDetails: dataCollectorsActions.getMapDetails.invoke,\n trackPage: tracking.actions.pageView,\n};\n\nexport const DataCollectorsMapOverviewPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(DataCollectorsMapOverviewPageComponent),\n);","import styles from \"./RadioGroupField.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { RadioGroup, FormHelperText, InputLabel } from \"@material-ui/core\";\nimport { createFieldComponent } from \"./FieldBase\";\n\nconst RadioGroupInput = ({\n error,\n name,\n label,\n boldLabel,\n value,\n horizontal,\n children,\n controlProps,\n customProps,\n}) => {\n return (\n
\n {label && (\n \n {label}\n \n )}\n \n {children}\n \n {error && {error}}\n
\n );\n};\n\nRadioGroupInput.propTypes = {\n label: PropTypes.string,\n controlProps: PropTypes.object,\n value: PropTypes.string,\n horizontal: PropTypes.bool,\n name: PropTypes.string,\n error: PropTypes.string,\n};\n\nexport const RadioGroupField = createFieldComponent(RadioGroupInput);\nexport default RadioGroupField;\n","import styles from \"./DataCollectorMap.module.scss\";\nimport { useState, useEffect } from \"react\";\nimport {\n MapContainer,\n TileLayer,\n Marker,\n Popup,\n ScaleControl,\n useMapEvent,\n useMap,\n} from \"react-leaflet\";\nimport { retrieveGpsLocation } from \"../../../utils/map\";\nimport MyLocationIcon from \"@material-ui/icons/MyLocation\";\nimport { Tooltip } from \"@material-ui/core\";\nimport { Fragment } from \"react\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nconst MapEventHandler = ({ onMarkerClick, onChange, onZoomChange }) => {\n useMapEvent(\"click\", onMarkerClick);\n useMapEvent(\"click\", onChange);\n const map = useMapEvent(\"zoomend\", (e) => {\n const center = map.getCenter();\n onZoomChange(e, center);\n });\n return null;\n};\n\nconst ChangeCenterLocation = ({ center, zoom }) => {\n const map = useMap();\n map.setView(center, zoom);\n return null;\n};\n\nconst ZoomToCurrentLocation = ({ updateZoomLevel }) => {\n const map = useMap();\n const [isFetcingLocation, setIsFetchingLocation] = useState(false);\n\n const onRetrieveLocation = (event) => {\n setIsFetchingLocation(true);\n\n retrieveGpsLocation((location) => {\n if (location === null) {\n return;\n }\n\n const lat = location.coords.latitude;\n const lng = location.coords.longitude;\n map.setView({ lat: lat, lng: lng }, 11);\n setIsFetchingLocation(false);\n updateZoomLevel(11);\n });\n };\n\n return (\n
\n
\n
\n {!isFetcingLocation && (\n \n \n \n )}\n\n {isFetcingLocation && (\n \n \n\n
\n \n {strings(stringKeys.dataCollectors.form.retrievingLocation)}\n \n
\n
\n )}\n
\n
\n
\n );\n};\n\nexport const DataCollectorMap = ({\n onChange,\n location,\n zoom,\n initialCenterLocation,\n}) => {\n const [markerLocation, setMarkerLocation] = useState(null);\n const [centerLocation, setCenterLocation] = useState(null);\n const [zoomLevel, setZoomLevel] = useState(zoom || 13);\n\n useEffect(() => {\n if (!location || (!location.lat && !location.lng)) {\n setMarkerLocation(null);\n return;\n }\n\n setMarkerLocation(location);\n setCenterLocation(location);\n }, [location]);\n\n useEffect(() => {\n if (initialCenterLocation) {\n setCenterLocation(initialCenterLocation);\n }\n }, [initialCenterLocation]);\n\n const clickedMyLocationButton = (e) =>\n typeof e.originalEvent.target.className === \"object\" ||\n e.originalEvent.target.className.indexOf(\"leaflet-container\") === -1;\n\n const handleClick = (e) => !clickedMyLocationButton(e) && onChange(e.latlng);\n\n const handleLocationFound = (e) =>\n !clickedMyLocationButton(e) && setMarkerLocation(e.latlng);\n\n const handleZoomChange = (e, center) => {\n setZoomLevel(e.target._zoom);\n setCenterLocation(center);\n };\n\n return (\n !!centerLocation && (\n \n \n\n \n\n \n {markerLocation && (\n \n You are here\n \n )}\n \n \n \n )\n );\n};\n","import React, { Fragment } from \"react\";\nimport { Collapse } from \"@material-ui/core\";\n\nexport const ConditionalCollapse = ({ children, collapsible, expanded }) => (\n \n {collapsible && (\n \n {children}\n \n )}\n\n {!collapsible && children}\n \n);\n","import styles from \"./DataCollectorLocationItem.module.scss\";\nimport {\n Button,\n Card,\n CardContent,\n Grid,\n IconButton,\n InputLabel,\n MenuItem,\n Typography,\n} from \"@material-ui/core\";\nimport { Alert } from \"@material-ui/lab\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useState, useReducer, useEffect, useRef, useCallback } from \"react\";\nimport { stringKeys, strings } from \"../../../strings\";\nimport { useMount } from \"../../../utils/lifecycle\";\nimport TextInputField from \"../../forms/TextInputField\";\nimport { DataCollectorMap } from \"./DataCollectorMap\";\nimport { validators } from \"../../../utils/forms\";\nimport { ConditionalCollapse } from \"../../common/conditionalCollapse/ConditionalCollapse\";\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\nimport SelectField from \"../../forms/SelectField\";\nimport {\n getFormDistricts,\n getFormVillages,\n getFormZones,\n} from \"../logic/dataCollectorsService\";\nimport { set } from \"../../../utils/cache\";\n\nconst useStyles = makeStyles({\n alert: {\n width: \"26rem\",\n },\n});\n\nexport const DataCollectorLocationItem = ({\n form,\n location,\n locationNumber,\n isLastLocation,\n isOnlyLocation,\n regions,\n initialDistricts,\n initialVillages,\n initialZones,\n defaultLocation,\n isDefaultCollapsed,\n removeLocation,\n allLocations,\n rtl,\n}) => {\n const classes = useStyles();\n\n const [ready, setReady] = useState(false);\n const [mapCenterLocation, setMapCenterLocation] = useState(null);\n const [isExpanded, setIsExpanded] = useState(false);\n const [defaultCollapsed, setDefaultCollapsed] = useState(isDefaultCollapsed);\n const [districts, setDistricts] = useState(initialDistricts || null);\n const [villages, setVillages] = useState(initialVillages || null);\n const [zones, setZones] = useState(initialZones || null);\n\n const locationCardRef = useRef(null);\n const getLocationCardRef = useCallback((node) => locationCardRef, []);\n\n const [mapLocation, dispatch] = useReducer((state, action) => {\n switch (action.type) {\n case \"latitude\":\n return { ...state, lat: action.value };\n case \"longitude\":\n return { ...state, lng: action.value };\n case \"latlng\":\n return { lat: action.lat, lng: action.lng };\n default:\n return state;\n }\n }, null);\n\n useMount(() => {\n dispatch({\n type: \"latlng\",\n lat: location.latitude,\n lng: location.longitude,\n });\n setMapCenterLocation(\n !!defaultLocation\n ? {\n lat: defaultLocation.latitude,\n lng: defaultLocation.longitude,\n }\n : {\n lat: location.latitude,\n lng: location.longitude,\n },\n );\n\n if (!!location.districtId && !location.villageId) {\n getFormDistricts(location.regionId, setDistricts);\n getFormVillages(location.districtId, setVillages);\n }\n\n form.addField(\n `locations_${locationNumber}_latitude`,\n location.latitude,\n [validators.required, validators.integer, validators.inRange(-90, 90)],\n locationCardRef,\n );\n form.addField(\n `locations_${locationNumber}_longitude`,\n location.longitude,\n [validators.required, validators.integer, validators.inRange(-180, 180)],\n locationCardRef,\n );\n form.addField(\n `locations_${locationNumber}_regionId`,\n location.regionId.toString(),\n [validators.required],\n locationCardRef,\n );\n form.addField(\n `locations_${locationNumber}_districtId`,\n location.districtId.toString(),\n [validators.required],\n locationCardRef,\n );\n form.addField(\n `locations_${locationNumber}_villageId`,\n location.villageId.toString(),\n [\n validators.required,\n validators.uniqueLocation(\n (x) => x[`locations_${locationNumber}_zoneId`],\n allLocations,\n ),\n ],\n locationCardRef,\n );\n form.addField(\n `locations_${locationNumber}_zoneId`,\n !!location.zoneId ? location.zoneId.toString() : \"\",\n [],\n locationCardRef,\n );\n\n form.fields[`locations_${locationNumber}_latitude`].subscribe(\n ({ newValue }) => dispatch({ type: \"latitude\", value: newValue }),\n );\n form.fields[`locations_${locationNumber}_longitude`].subscribe(\n ({ newValue }) => dispatch({ type: \"longitude\", value: newValue }),\n );\n form.fields[`locations_${locationNumber}_zoneId`].subscribe(\n ({ newValue }) => (location.zoneId = newValue),\n );\n\n setReady(true);\n\n return () => {\n form.removeField(`locations_${locationNumber}_latitude`);\n form.removeField(`locations_${locationNumber}_longitude`);\n form.removeField(`locations_${locationNumber}_regionId`);\n form.removeField(`locations_${locationNumber}_districtId`);\n form.removeField(`locations_${locationNumber}_villageId`);\n form.removeField(`locations_${locationNumber}_zoneId`);\n };\n });\n\n useEffect(() => {\n allLocations.forEach((l) => {\n const field = form.fields[`locations_${l.number}_villageId`];\n if (!!field) {\n field.setValidators([\n validators.required,\n validators.uniqueLocation(\n (x) => x[`locations_${l.number}_zoneId`],\n allLocations,\n ),\n ]);\n }\n });\n }, [allLocations]);\n\n useEffect(\n () => setIsExpanded(!isDefaultCollapsed && isLastLocation),\n [isLastLocation, isDefaultCollapsed],\n );\n\n const onLocationChange = (e) => {\n form.fields[`locations_${locationNumber}_latitude`].update(e.lat);\n form.fields[`locations_${locationNumber}_longitude`].update(e.lng);\n };\n\n const onRegionChange = (event) => {\n const regionId = event.target.value;\n form.fields[`locations_${locationNumber}_districtId`].update(\"\", true);\n form.fields[`locations_${locationNumber}_villageId`].update(\"\", true);\n form.fields[`locations_${locationNumber}_zoneId`].update(\"\", true);\n\n setVillages(null);\n setZones(null);\n\n getFormDistricts(regionId, setDistricts);\n };\n\n const onDistrictChange = (event) => {\n const districtId = event.target.value;\n form.fields[`locations_${locationNumber}_villageId`].update(\"\", true);\n form.fields[`locations_${locationNumber}_zoneId`].update(\"\", true);\n\n setZones(null);\n\n getFormVillages(districtId, setVillages);\n };\n\n const onVillageChange = (event) => {\n const villageId = event.target.value;\n form.fields[`locations_${locationNumber}_zoneId`].update(\"\", true);\n location.villageId = villageId;\n\n getFormZones(villageId, setZones);\n };\n\n const renderCollapsedLocationData = () => {\n const region = regions?.find(\n (r) =>\n r.id ===\n parseInt(form.fields[`locations_${locationNumber}_regionId`].value),\n );\n const district = districts?.find(\n (d) =>\n d.id ===\n parseInt(form.fields[`locations_${locationNumber}_districtId`].value),\n );\n const village = villages?.find(\n (v) =>\n v.id ===\n parseInt(form.fields[`locations_${locationNumber}_villageId`].value),\n );\n const zone = zones?.find(\n (z) =>\n z.id ===\n parseInt(form.fields[`locations_${locationNumber}_zoneId`].value),\n );\n\n return `${!!region ? region.name : \"\"} ${\n !!district ? `> ${district.name}` : \"\"\n } ${!!village ? `> ${village.name}` : \"\"} ${\n !!zone ? `> ${zone.name}` : \"\"\n }`;\n };\n\n const onToggleExpand = () => {\n if (defaultCollapsed) {\n setDefaultCollapsed(false);\n }\n\n setIsExpanded(!isExpanded);\n };\n\n const onRemoveLocation = () => {\n removeLocation(location);\n };\n\n const hasError = () =>\n !!form.fields[`locations_${locationNumber}_latitude`].error ||\n !!form.fields[`locations_${locationNumber}_longitude`].error ||\n !!form.fields[`locations_${locationNumber}_regionId`].error ||\n !!form.fields[`locations_${locationNumber}_districtId`].error ||\n !!form.fields[`locations_${locationNumber}_villageId`].error ||\n !!form.fields[`locations_${locationNumber}_zoneId`].error;\n\n if (!ready) {\n return null;\n }\n\n return (\n \n \n \n \n \n {strings(stringKeys.common.location)}\n \n\n \n \n \n \n \n \n {!isExpanded && (\n \n \n {renderCollapsedLocationData()}\n \n \n )}\n\n \n \n \n \n \n {regions.map((region) => (\n \n {region.name}\n \n ))}\n \n \n\n {form.fields[`locations_${locationNumber}_regionId`] &&\n form.fields[`locations_${locationNumber}_regionId`].value && (\n \n {districts && districts.length > 0 ? (\n \n {districts.map((district) => (\n \n {district.name}\n \n ))}\n \n ) : (\n \n {strings(\n stringKeys.dataCollectors.form.alerts\n .noDistrictsAlert,\n )}\n \n )}\n \n )}\n\n {form.fields[`locations_${locationNumber}_districtId`] &&\n form.fields[`locations_${locationNumber}_districtId`].value && (\n \n {villages && villages.length > 0 ? (\n \n {villages.map((village) => (\n \n {village.name}\n \n ))}\n \n ) : (\n \n {strings(\n stringKeys.dataCollectors.form.alerts.noVillagesAlert,\n )}\n \n )}\n \n )}\n\n {zones && zones.length > 0 && (\n \n \n  \n\n {zones.map((zone) => (\n \n {zone.name}\n \n ))}\n \n \n )}\n \n \n \n \n {strings(stringKeys.dataCollectors.form.selectLocation)}\n \n \n \n \n \n \n \n \n \n \n {!isOnlyLocation && (\n \n {strings(stringKeys.dataCollectors.form.removeLocation)}\n \n )}\n \n \n \n \n \n \n
\n );\n};\n","import { useState, Fragment, useMemo, createRef } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport {\n Radio,\n FormControlLabel,\n MenuItem,\n makeStyles,\n Grid,\n Typography,\n IconButton,\n useTheme,\n} from \"@material-ui/core\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as dataCollectorsActions from \"./logic/dataCollectorsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport SelectField from \"../forms/SelectField\";\nimport RadioGroupField from \"../forms/RadioGroupField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { sexValues, dataCollectorType } from \"./logic/dataCollectorsConstants\";\nimport { getSaveFormModel } from \"./logic/dataCollectorsService\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { HeadSupervisor, Supervisor } from \"../../authentication/roles\";\nimport CheckboxField from \"../forms/CheckboxField\";\nimport PhoneInputField from \"../forms/PhoneInputField\";\nimport { DataCollectorLocationItem } from \"./components/DataCollectorLocationItem\";\nimport { getBirthDecades, parseBirthDecade } from \"../../utils/birthYear\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\nimport { SubMenuTitle } from \"../layout/SubMenuTitle\";\n\nconst useStyles = makeStyles((theme) => ({\n addLocationContainer: {\n marginTop: 20,\n width: \"fit-content\",\n \"&:hover\": {\n cursor: \"pointer\",\n }\n }\n}));\n\nconst DataCollectorsCreatePageComponent = (props) => {\n const currentUserRoles = useSelector((state) => state.appData.user.roles);\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n const [birthDecades] = useState(getBirthDecades());\n const [type, setType] = useState(dataCollectorType.human);\n const [centerLocation, setCenterLocation] = useState(null);\n const [locations, setLocations] = useState([\n {\n latitude: \"\",\n longitude: \"\",\n regionId: \"\",\n districtId: \"\",\n villageId: \"\",\n zoneId: \"\",\n number: 0,\n },\n ]);\n\n const theme = useTheme()\n const classes = useStyles()\n\n useMount(() => {\n props.openCreation(props.projectId);\n\n // Track page view\n trackPageView(\"DataCollectorsCreatePage\");\n });\n\n const form = useMemo(() => {\n if (!props.defaultLocation) {\n return null;\n }\n\n setCenterLocation({\n latitude: props.defaultLocation.latitude,\n longitude: props.defaultLocation.longitude,\n });\n\n const fields = {\n dataCollectorType: dataCollectorType.human,\n name: \"\",\n displayName: \"\",\n sex: \"\",\n supervisorId: props.defaultSupervisorId\n ? props.defaultSupervisorId.toString()\n : \"\",\n birthGroupDecade: \"\",\n phoneNumber: \"\",\n additionalPhoneNumber: \"\",\n deployed: true,\n linkedToHeadSupervisor: false,\n };\n\n const validation = {\n dataCollectorType: [validators.required],\n name: [validators.required, validators.maxLength(100)],\n displayName: [\n validators.requiredWhen(\n (x) => x.dataCollectorType === dataCollectorType.human,\n ),\n validators.maxLength(100),\n ],\n sex: [\n validators.requiredWhen(\n (x) => x.dataCollectorType === dataCollectorType.human,\n ),\n ],\n supervisorId: [validators.required],\n phoneNumber: [validators.phoneNumber, validators.maxLength(20)],\n additionalPhoneNumber: [validators.phoneNumber, validators.maxLength(20)],\n };\n\n const refs = {\n dataCollectorType: createRef(),\n name: createRef(),\n displayName: createRef(),\n sex: createRef(),\n supervisorId: createRef(),\n phoneNumber: createRef(),\n additionalPhoneNumber: createRef(),\n deployed: createRef(),\n linkedToHeadSupervisor: createRef(),\n };\n\n const newForm = createForm(fields, validation, refs);\n newForm.fields.dataCollectorType.subscribe(({ newValue }) =>\n setType(newValue),\n );\n newForm.fields.supervisorId.subscribe(\n ({ newValue }) =>\n !!newValue &&\n newForm.fields.linkedToHeadSupervisor.update(\n props.supervisors.filter((s) => s.id.toString() === newValue)[0]\n .role === HeadSupervisor,\n ),\n );\n return newForm;\n }, [props.defaultSupervisorId, props.defaultLocation, props.supervisors]);\n\n const addDataCollectorLocation = () => {\n const previousLocation = locations[locations.length - 1];\n\n setLocations([\n ...locations,\n {\n latitude: \"\",\n longitude: \"\",\n regionId: \"\",\n districtId: \"\",\n villageId: \"\",\n zoneId: \"\",\n number: previousLocation.number + 1,\n },\n ]);\n };\n\n const removeDataCollectorLocation = (location) => {\n setLocations(locations.filter((l) => l.number !== location.number));\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n if (!form.isValid()) {\n Object.values(form.fields)\n .filter((e) => e.error)[0]\n .scrollTo();\n return;\n }\n\n const values = form.getValues();\n\n props.create(\n getSaveFormModel(\n props.projectId,\n values,\n values.dataCollectorType,\n locations,\n ),\n );\n };\n\n useCustomErrors(form, props.error);\n\n if (props.isFetching) {\n return ;\n }\n\n if (!form) {\n return null;\n }\n\n return (\n \n \n {props.error && !props.error.data && (\n \n )}\n
\n \n \n \n {strings(stringKeys.dataCollectors.form.dataCollectorType)}\n \n \n {Object.keys(dataCollectorType).map((type) => (\n }\n label={strings(\n stringKeys.dataCollectors.constants.dataCollectorType[\n dataCollectorType[type]\n ],\n )}\n value={dataCollectorType[type]}\n />\n ))}\n \n \n\n \n \n {strings(stringKeys.dataCollectors.filters.deployedMode)}\n \n \n \n \n \n {strings(stringKeys.dataCollectors.form.personalia)}\n \n \n \n \n \n \n\n {type === dataCollectorType.human && (\n \n \n \n )}\n\n {type === dataCollectorType.human && (\n \n \n {sexValues.map((type) => (\n \n {strings(\n stringKeys.dataCollectors.constants.sex[\n type.toLowerCase()\n ],\n )}\n \n ))}\n \n \n )}\n \n \n \n \n \n {type === dataCollectorType.human && (\n \n \n \n )}\n \n {!currentUserRoles.some((r) => r === Supervisor) && (\n \n {strings(stringKeys.dataCollectors.form.responsibleSupervisor)}\n \n \n {props.supervisors.map((supervisor) => (\n \n {supervisor.name}\n \n ))}\n \n \n \n )}\n \n \n {strings(stringKeys.dataCollectors.form.locationsHeader)}\n \n \n {locations.map((location, i) => (\n \n ))}\n \n \n \n \n \n {strings(stringKeys.dataCollectors.form.addLocation)}\n \n \n props.goToList(props.projectId)}\n >\n {strings(stringKeys.form.cancel)}\n \n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n {strings(stringKeys.dataCollectors.constants.dataCollectorType[type])}\n \n \n \n
\n
\n );\n};\n\nDataCollectorsCreatePageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n countryName: state.appData.siteMap.parameters.nationalSocietyCountry,\n isFetching: state.dataCollectors.formFetching,\n isSaving: state.dataCollectors.formSaving,\n regions: state.dataCollectors.formRegions,\n defaultLocation: state.dataCollectors.formDefaultLocation,\n supervisors: state.dataCollectors.formSupervisors,\n defaultSupervisorId: state.dataCollectors.formDefaultSupervisorId,\n isGettingCountryLocation: state.dataCollectors.gettingLocation,\n country: state.dataCollectors.countryData,\n error: state.dataCollectors.formError,\n countryCode: state.dataCollectors.countryCode,\n});\n\nconst mapDispatchToProps = {\n openCreation: dataCollectorsActions.openCreation.invoke,\n create: dataCollectorsActions.create.invoke,\n goToList: dataCollectorsActions.goToList,\n};\n\nexport const DataCollectorsCreatePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(DataCollectorsCreatePageComponent),\n);\n","import React, { useEffect, useState, Fragment, createRef } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as dataCollectorsActions from \"./logic/dataCollectorsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport PhoneInputField from \"../forms/PhoneInputField\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { sexValues, dataCollectorType } from \"./logic/dataCollectorsConstants\";\nimport SelectField from \"../forms/SelectField\";\nimport { getSaveFormModel } from \"./logic/dataCollectorsService\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { MenuItem, makeStyles, Grid, Typography, useTheme, IconButton } from \"@material-ui/core\";\nimport { HeadSupervisor, Supervisor } from \"../../authentication/roles\";\nimport CheckboxField from \"../forms/CheckboxField\";\nimport { DataCollectorLocationItem } from \"./components/DataCollectorLocationItem\";\nimport { getBirthDecades } from \"../../utils/birthYear\";\nimport { SubMenuTitle } from \"../layout/SubMenuTitle\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline';\n\nconst useStyles = makeStyles((theme) => ({\n addLocationContainer: {\n marginTop: 20,\n width: \"fit-content\",\n \"&:hover\": {\n cursor: \"pointer\",\n }\n }\n}));\n\nconst DataCollectorsEditPageComponent = (props) => {\n const currentUserRoles = useSelector((state) => state.appData.user.roles);\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n const [birthDecades] = useState(getBirthDecades());\n const [form, setForm] = useState(null);\n const [locations, setLocations] = useState(null);\n const [centerLocation, setCenterLocation] = useState(null);\n const [allLocationsCollapsed, setAllLocationsCollapsed] = useState(true);\n const classes = useStyles();\n const theme = useTheme();\n\n useMount(() => {\n props.openEdition(props.dataCollectorId);\n // Track page view\n trackPageView(\"DataCollectorsEditPage\");\n });\n\n useEffect(() => {\n if (!props.data) {\n setForm(null);\n return;\n }\n\n setLocations(props.data.locations.map((l, i) => ({ ...l, number: i })));\n\n const fields = {\n id: props.data.id,\n name: props.data.name,\n displayName:\n props.data.dataCollectorType === dataCollectorType.human\n ? props.data.displayName\n : null,\n sex:\n props.data.dataCollectorType === dataCollectorType.human\n ? props.data.sex\n : null,\n supervisorId: props.data.supervisorId.toString(),\n phoneNumber: props.data.phoneNumber,\n additionalPhoneNumber: props.data.additionalPhoneNumber,\n deployed: props.data.deployed,\n linkedToHeadSupervisor:\n props.data.formData.supervisors.filter(\n (s) => s.id === props.data.supervisorId,\n )[0].role === HeadSupervisor,\n };\n\n const validation = {\n name: [validators.required, validators.maxLength(100)],\n displayName: [\n validators.requiredWhen(\n (x) => props.data.dataCollectorType === dataCollectorType.human,\n ),\n validators.maxLength(100),\n ],\n sex: [\n validators.requiredWhen(\n (x) => props.data.dataCollectorType === dataCollectorType.human,\n ),\n ],\n supervisorId: [validators.required],\n phoneNumber: [validators.phoneNumber, validators.maxLength(20)],\n additionalPhoneNumber: [validators.phoneNumber, validators.maxLength(20)],\n };\n\n const refs = {\n dataCollectorType: createRef(),\n name: createRef(),\n displayName: createRef(),\n sex: createRef(),\n supervisorId: createRef(),\n phoneNumber: createRef(),\n additionalPhoneNumber: createRef(),\n deployed: createRef(),\n linkedToHeadSupervisor: createRef(),\n };\n\n const newForm = createForm(fields, validation, refs);\n newForm.fields.supervisorId.subscribe(({ newValue }) =>\n newForm.fields.linkedToHeadSupervisor.update(\n props.data.formData.supervisors.filter(\n (s) => s.id.toString() === newValue,\n )[0].role === HeadSupervisor,\n ),\n );\n\n setForm(newForm);\n }, [props.data, props.match]);\n\n const addDataCollectorLocation = () => {\n const previousLocation = locations[locations.length - 1];\n setAllLocationsCollapsed(false);\n setLocations([\n ...locations,\n {\n latitude: \"\",\n longitude: \"\",\n regionId: \"\",\n districtId: \"\",\n villageId: \"\",\n zoneId: \"\",\n initialFormData: {\n districts: previousLocation.initialFormData.districts,\n villages: [],\n zones: [],\n },\n number: previousLocation.number + 1,\n },\n ]);\n };\n\n const removeDataCollectorLocation = (location) => {\n setLocations(locations.filter((l) => l.number !== location.number));\n };\n\n useEffect(() => {\n if (locations && locations.length > 0) {\n setCenterLocation({\n latitude: locations[0].latitude,\n longitude: locations[0].longitude,\n });\n }\n }, [locations]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n if (!form.isValid()) {\n Object.values(form.fields)\n .filter((e) => e.error)[0]\n .scrollTo();\n return;\n }\n\n const values = form.getValues();\n\n props.edit(\n getSaveFormModel(\n props.projectId,\n values,\n props.data.dataCollectorType,\n locations,\n ),\n );\n };\n\n useCustomErrors(form, props.error);\n\n if (props.isFetching) {\n return ;\n }\n\n if (!form || !props.data) {\n return null;\n }\n\n return (\n \n \n {props.error && !props.error.data && (\n \n )}\n
\n \n \n \n {strings(stringKeys.dataCollectors.filters.deployedMode)}\n \n \n \n \n \n \n \n {strings(stringKeys.dataCollectors.form.personalia)}\n \n\n \n \n \n \n \n {props.data.dataCollectorType === dataCollectorType.human && (\n \n \n \n )}\n\n {props.data.dataCollectorType === dataCollectorType.human && (\n \n \n {sexValues.map((type) => (\n \n {strings(\n stringKeys.dataCollectors.constants.sex[\n type.toLowerCase()\n ],\n )}\n \n ))}\n \n \n )}\n \n \n \n \n \n \n {props.data.dataCollectorType === dataCollectorType.human && (\n \n \n \n )}\n \n {!currentUserRoles.some((r) => r === Supervisor) && (\n \n {strings(stringKeys.dataCollectors.form.responsibleSupervisor)}\n \n \n {props.data.formData.supervisors.map((supervisor) => (\n \n {supervisor.name}\n \n ))}\n \n \n \n )}\n \n {strings(stringKeys.dataCollectors.form.locationsHeader)}\n \n \n {locations.map((location, i) => (\n \n ))}\n \n \n \n \n \n {strings(stringKeys.dataCollectors.form.addLocation)}\n \n \n props.goToList(props.projectId)}\n >\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nDataCollectorsEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n dataCollectorId: ownProps.match.params.dataCollectorId,\n projectId: ownProps.match.params.projectId,\n isFetching: state.dataCollectors.formFetching,\n isSaving: state.dataCollectors.formSaving,\n data: state.dataCollectors.formData,\n error: state.dataCollectors.formError,\n});\n\nconst mapDispatchToProps = {\n openEdition: dataCollectorsActions.openEdition.invoke,\n edit: dataCollectorsActions.edit.invoke,\n goToList: dataCollectorsActions.goToList,\n};\n\nexport const DataCollectorsEditPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(DataCollectorsEditPageComponent),\n);\n","import styles from \"./InlineTextEditor.module.scss\";\n\nimport React, { useState, useRef } from \"react\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { Button, TextField, InputAdornment } from \"@material-ui/core\";\n\nexport const InlineTextEditor = ({\n initialValue,\n onSave,\n onClose,\n placeholder,\n autoFocus,\n setIsModifying,\n}) => {\n const [value, setValue] = useState(initialValue || \"\");\n const [isFocused, setIsFocused] = useState(false);\n\n const stopPropagation = (e) => e.stopPropagation();\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!value) {\n return;\n }\n\n onSave(value);\n setValue(\"\");\n };\n\n const button = () => (\n \n event.preventDefault()}\n type=\"submit\"\n color=\"primary\"\n >\n {strings(stringKeys.common.buttons.update)}\n \n \n );\n\n const onBlur = (e) => {\n if (formRef.current.contains(e.relatedTarget)) {\n return;\n }\n\n setIsFocused(false);\n setValue(\"\");\n\n if (onClose) {\n onClose();\n }\n\n if (setIsModifying) {\n setIsModifying(false);\n }\n };\n\n const formRef = useRef(null);\n\n return (\n setIsFocused(true)}\n onBlur={onBlur}\n >\n setValue(e.target.value)}\n onClick={stopPropagation}\n InputProps={{\n endAdornment: isFocused ? button() : null,\n }}\n />\n \n );\n};\n","import React, { Fragment, useState } from \"react\";\n\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport Collapse from \"@material-ui/core/Collapse\";\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\nimport { NationalSocietyLocationList } from \"./NationalSocietyLocationList\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport { IconButton, useTheme } from \"@material-ui/core\";\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\nimport ConfirmationAction from \"../common/confirmationAction/ConfirmationAction\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { InlineTextEditor } from \"../common/InlineTextEditor/InlineTextEditor\";\n\nexport const NationalSocietyLocationListItem = (props) => {\n const [isEditing, setIsEditing] = useState(false);\n const isCurrentOpen =\n props.activeIndex === `${props.locationType}_${props.location.id}`;\n const isZone = props.locationType === \"zone\";\n const activeParentLocationId = props.location.id;\n const removeLocation = props.manageLocation[props.locationType].remove;\n const editLocation = props.manageLocation[props.locationType].edit;\n const nextLocationType =\n props.manageLocation[props.locationType].nextLocationType;\n const nextLocations = props.manageLocation[props.locationType].nextLocations(\n props.location,\n );\n\n const theme = useTheme()\n\n const useStyles = makeStyles((theme) => ({\n container: {\n maxHeight: 55,\n display: \"flex\",\n flexDirection: \"row\",\n width: \"100%\",\n },\n row: {\n maxHeight: \"100%\",\n borderBottom: \"1px solid black\",\n \"&:hover\": {\n backgroundColor: nextLocationType ? \"#FEF1F1\" : \"none\",\n },\n \"&:focus\": {\n backgroundColor: \"#FEF1F1\",\n },\n },\n expanded: {\n backgroundColor: \"#FEF1F1\",\n fontWeight: \"bold\",\n },\n iconExpanded: {\n transform: props.rtl ? \"rotate(90deg)\" : \"rotate(-90deg)\",\n },\n text: {\n fontSize: \"16px\",\n color: theme.palette.text.primary,\n maxWidth: \"70%\",\n whiteSpace: \"pre\",\n },\n icon: {\n fontSize: 36,\n color: theme.palette.primary.main,\n },\n editContainer: {\n display: \"flex\",\n right: props.rtl ? 180 : \"none\",\n },\n }));\n const classes = useStyles();\n\n const handleClick = () => {\n if (isCurrentOpen) {\n props.setActiveIndex(\"\");\n } else {\n props.setActiveIndex(`${props.locationType}_${props.location.id}`);\n }\n };\n\n const handleRemove = () => {\n removeLocation(props.location.id);\n props.setIsEditingLocations(false);\n };\n\n const handleEdit = (e) => {\n e.stopPropagation();\n setIsEditing(true);\n };\n\n const handleSave = (newName) => {\n editLocation(props.location.id, newName);\n setIsEditing(false);\n props.setIsEditingLocations(false);\n props.setActiveIndex(null);\n };\n\n return (\n \n
\n null}\n >\n {!isEditing && (\n <>\n \n {!isZone && !props.isEditingLocations && (\n \n )}\n {props.isEditingLocations &&\n (props.location.canModify ?? props.canModify) && (\n \n \n \n \n \n \n \n \n \n \n )}\n \n )}\n {isEditing && (\n setIsEditing(false)}\n />\n )}\n \n \n \n \n
\n
\n );\n};\n","import { useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport ListSubheader from \"@material-ui/core/ListSubheader\";\nimport List from \"@material-ui/core/List\";\nimport { NationalSocietyLocationListItem } from \"./NationalSocietyLocationListItem\";\nimport { Typography, Button, Grid } from \"@material-ui/core\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport { InlineTextEditor } from \"../common/InlineTextEditor/InlineTextEditor\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { strings, stringKeys } from \"../../strings\";\n\nexport const NationalSocietyLocationList = (props) => {\n const [activeIndex, setActiveIndex] = useState(\"\");\n const [isCreatingLocation, setIsCreatingLocation] = useState(false);\n const [isEditingLocations, setIsEditingLocations] = useState(false);\n\n const headerHeight = 48;\n const hasLocations = props.locations?.length > 0;\n const borderStyle = hasLocations ? \"1px solid black\" : \"1px dashed black\";\n\n const lowerCaseLocationType = props.locationType.toLowerCase();\n const createLocation = props.manageLocation[props.locationType].create;\n\n const useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n maxWidth: 250,\n marginBottom: 50,\n },\n nested: {\n width: \"100%\",\n position: \"absolute\",\n marginTop: -headerHeight - 1,\n },\n header: {\n height: headerHeight,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: \"18px\",\n color: theme.palette.text.primary,\n },\n background: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: theme.palette.background.default,\n width: \"100%\",\n borderRadius: 2,\n },\n listContainer: {\n borderLeft: borderStyle,\n borderRight: borderStyle,\n borderTop: borderStyle,\n },\n noLocationsTextContainer: {\n border: borderStyle,\n minHeight: 54,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n fontSize: \"16px\",\n },\n button: {\n marginTop: 10,\n },\n icon: {\n marginLeft: 8,\n marginRight: -8,\n },\n addLocationField: {\n marginTop: 10,\n marginRight: 5,\n marginLeft: 5,\n },\n }));\n\n const classes = useStyles();\n\n return (\n \n
\n {strings(\n stringKeys.nationalSociety.structure.locationHeader[\n props.locationType\n ],\n )}\n
\n \n }\n >\n {hasLocations && (\n
\n {props.locations.map((location) => (\n \n ))}\n
\n )}\n \n {!hasLocations && (\n
\n {`No ${lowerCaseLocationType} added`}\n
\n )}\n \n {props.canModify && !isEditingLocations && !isCreatingLocation && (\n <>\n {hasLocations && (\n \n \n }\n className={classes.button}\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => setIsEditingLocations(!isEditingLocations)}\n >\n {strings(stringKeys.common.buttons.edit)}\n \n \n )}\n \n \n }\n className={classes.button}\n variant=\"contained\"\n color=\"primary\"\n onClick={() => setIsCreatingLocation(!isCreatingLocation)}\n >\n {props.manageLocation[props.locationType].addLocationLabel}\n \n \n \n )}\n {props.canModify && isEditingLocations && (\n \n setIsEditingLocations(!isEditingLocations)}\n >\n {strings(stringKeys.form.cancel)}\n \n \n )}\n \n {isCreatingLocation && (\n
\n \n createLocation(props.activeParentLocationId, name)\n }\n autoFocus\n setIsModifying={setIsCreatingLocation}\n />\n
\n )}\n
\n \n );\n};\n","import React, { useEffect, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport * as nationalSocietyStructureActions from \"./logic/nationalSocietyStructureActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { Typography } from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { NationalSocietyLocationList } from \"./NationalSocietyLocationList\";\nimport * as roles from \"../../authentication/roles\";\nimport { useSelector } from \"react-redux\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport { useMount } from \"../../utils/lifecycle\";\n\nconst NationalSocietyStructurePageComponent = (props) => {\n const { openStructure, nationalSocietyId } = props;\n\n useMount(() => {\n // Track page view\n trackPageView(\"NationalSocietyStructurePage\");\n });\n\n useEffect(() => {\n openStructure(nationalSocietyId);\n }, [openStructure, nationalSocietyId]);\n\n const canModify =\n !props.nationalSocietyIsArchived &&\n (!props.nationalSocietyHasCoordinator ||\n props.callingUserRoles.some(\n (r) => r === roles.Coordinator || r === roles.Administrator,\n ));\n\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n if (!props.regions) return null;\n\n const manageLocation = {\n region: {\n create: props.createRegion,\n edit: props.editRegion,\n remove: props.removeRegion,\n nextLocationType: \"district\",\n nextLocations: (location) =>\n props.districts.filter((district) => district.regionId === location.id),\n addLocationLabel: strings(\n stringKeys.nationalSociety.structure.addRegion,\n true,\n ),\n },\n district: {\n create: props.createDistrict,\n edit: props.editDistrict,\n remove: props.removeDistrict,\n nextLocationType: \"village\",\n nextLocations: (location) =>\n props.villages.filter((village) => village.districtId === location.id),\n addLocationLabel: strings(\n stringKeys.nationalSociety.structure.addDistrict,\n true,\n ),\n },\n village: {\n create: props.createVillage,\n edit: props.editVillage,\n remove: props.removeVillage,\n nextLocationType: \"zone\",\n nextLocations: (location) =>\n props.zones.filter((zone) => zone.villageId === location.id),\n addLocationLabel: strings(\n stringKeys.nationalSociety.structure.addVillage,\n true,\n ),\n },\n zone: {\n create: props.createZone,\n edit: props.editZone,\n remove: props.removeZone,\n nextLocationType: null,\n nextLocations: () => null,\n addLocationLabel: strings(\n stringKeys.nationalSociety.structure.addZone,\n true,\n ),\n },\n };\n\n return (\n \n {!props.nationalSocietyIsArchived && (\n \n {strings(stringKeys.nationalSociety.structure.introduction)}\n \n )}\n \n \n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isFetching: state.nationalSocietyStructure.structureFetching,\n regions: state.nationalSocietyStructure.regions,\n districts: state.nationalSocietyStructure.districts,\n villages: state.nationalSocietyStructure.villages,\n zones: state.nationalSocietyStructure.zones,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n nationalSocietyHasCoordinator:\n state.appData.siteMap.parameters.nationalSocietyHasCoordinator,\n callingUserRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n openStructure: nationalSocietyStructureActions.openStructure.invoke,\n\n createRegion: nationalSocietyStructureActions.createRegion.invoke,\n editRegion: nationalSocietyStructureActions.editRegion.invoke,\n removeRegion: nationalSocietyStructureActions.removeRegion.invoke,\n\n createDistrict: nationalSocietyStructureActions.createDistrict.invoke,\n editDistrict: nationalSocietyStructureActions.editDistrict.invoke,\n removeDistrict: nationalSocietyStructureActions.removeDistrict.invoke,\n\n createVillage: nationalSocietyStructureActions.createVillage.invoke,\n editVillage: nationalSocietyStructureActions.editVillage.invoke,\n removeVillage: nationalSocietyStructureActions.removeVillage.invoke,\n\n createZone: nationalSocietyStructureActions.createZone.invoke,\n editZone: nationalSocietyStructureActions.editZone.invoke,\n removeZone: nationalSocietyStructureActions.removeZone.invoke,\n};\n\nexport const NationalSocietyStructurePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietyStructurePageComponent),\n);\n","import VisibilityOffOutlinedIcon from \"@material-ui/icons/VisibilityOffOutlined\";\n\nexport function renderDataCollectorDisplayName(row) {\n const dataRemoveText = \"--Data removed--\";\n\n if (\n row.dataCollectorDisplayName === dataRemoveText &&\n row.phoneNumber === dataRemoveText\n ) {\n return ;\n }\n\n return (\n <>\n {row.dataCollectorDisplayName}\n {!row.isAnonymized && row.dataCollectorDisplayName ?
: \"\"}\n {(!row.isAnonymized || !row.dataCollector) && row.phoneNumber}\n \n );\n}\n\nexport const renderReportValue = (value, displayZero = false) => {\n return value ? value : (displayZero ? 0 : \"\");\n};\n","const sortOrder = ['Pending', 'New', 'Accepted', 'Rejected', 'Closed'];\n\nexport const sortByReportStatus = (a, b) => {\n const statusA = a.status === 'New' ? 'Pending' : a.status;\n const statusB = b.status === 'New' ? 'Pending' : b.status;\n\n const timeA = new Date(a.dateTime || a.receivedAt).getTime();\n const timeB = new Date(b.dateTime || b.receivedAt).getTime();\n\n // If statuses are different, compare based on sortOrder\n if (statusA !== statusB) {\n return sortOrder.indexOf(statusA) - sortOrder.indexOf(statusB);\n }\n\n // If statuses are the same, compare based on time\n return timeB - timeA;\n}","import styles from \"../../alerts/components/AlertsAssessmentReport.module.scss\";\n\nimport {\n Grid,\n Chip,\n Icon,\n Typography,\n useTheme,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nconst getReportIcon = (status, rtl) => {\n switch (status) {\n case \"Pending\":\n return (\n \n hourglass_empty\n \n );\n case \"New\":\n return (\n \n hourglass_empty\n \n );\n case \"Accepted\":\n return (\n \n check\n \n );\n case \"Rejected\":\n return (\n \n clear\n \n );\n case \"Closed\":\n return (\n \n block\n \n );\n default:\n return (\n \n warning\n \n );\n }\n};\n\nconst useStyles = makeStyles(() => ({\n Pending: {\n backgroundColor: \"#FFE497\",\n },\n New: {\n backgroundColor: \"#FFE497\",\n },\n Accepted: {\n backgroundColor: \"#D6F9D5\",\n },\n Rejected: {\n backgroundColor: \"#E3E3E3\",\n },\n Closed: {\n backgroundColor: \"#E3E3E3\",\n },\n smallStatus: {\n fontSize: \"0.75rem\",\n whiteSpace: \"normal\",\n },\n}));\n\nexport const ReportStatusChip = ({ report, rtl }) => {\n const classes = useStyles();\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n return (\n \n \n {getReportIcon(report.status, rtl)}\n \n \n \n {strings(stringKeys.reports.status[report.status])}\n \n \n \n }\n className={`${classes[report.status]}`}\n />\n );\n};\n","import styles from \"./ReportsTable.module.scss\";\nimport { Fragment, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport dayjs from \"dayjs\";\nimport TablePager from \"../common/tablePagination/TablePager\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { TableRowMenu } from \"../common/tableRowAction/TableRowMenu\";\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\nimport { DataCollectorType } from \"../common/filters/logic/reportFilterConstsants\";\nimport {\n DateColumnName,\n reportStatus,\n ReportType,\n} from \"./logic/reportsConstants\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n TableContainer\n} from \"@material-ui/core\";\nimport { alertStatus } from \"../alerts/logic/alertsConstants\";\nimport {\n renderDataCollectorDisplayName,\n renderReportValue,\n} from \"./logic/reportsService\";\nimport { sortByReportStatus } from \"../../utils/sortReportByStatus\";\nimport { ReportStatusChip } from \"../common/chip/ReportStatusChip\";\nimport { trackEvent } from \"../../utils/appInsightsHelper\";\n\nexport const CorrectReportsTable = ({\n isListFetching,\n isMarkingAsError,\n goToEditing,\n projectId,\n list,\n page,\n onChangePage,\n rowsPerPage,\n totalRows,\n filters,\n sorting,\n onSort,\n projectIsClosed,\n goToAlert,\n acceptReport,\n dismissReport,\n rtl,\n}) => {\n const [value, setValue] = useState(sorting);\n const isDataCollectionPointTable = filters.dataCollectorType === DataCollectorType.collectionPoint;\n\n const updateValue = (change) => {\n const newValue = {\n ...value,\n ...change,\n };\n\n setValue(newValue);\n return newValue;\n };\n\n const dashIfEmpty = (text, ...args) => {\n return [text || \"-\", ...args].filter((x) => !!x).join(\", \");\n };\n\n const createSortHandler = (column) => (event) => {\n handleSortChange(event, column);\n };\n\n const handleSortChange = (event, column) => {\n const isAscending = sorting.orderBy === column && sorting.sortAscending;\n onSort(updateValue({ orderBy: column, sortAscending: !isAscending }));\n };\n\n const handlePageChange = (event, page) => {\n onChangePage(page);\n };\n\n const alertAllowsCrossCheckingOfReport = (alert) =>\n alert.status === alertStatus.open ||\n (alert.status === alertStatus.escalated &&\n !alert.reportWasCrossCheckedBeforeEscalation);\n\n const canCrossCheck = (report, reportStatus) =>\n !report.isAnonymized &&\n report.isValid &&\n !report.isMarkedAsError &&\n !report.isActivityReport &&\n report.reportType !== ReportType.dataCollectionPoint &&\n report.status !== reportStatus &&\n (!report.alert || alertAllowsCrossCheckingOfReport(report.alert)) &&\n !!report.village;\n\n const handleGoToAlert = (projectId, alertId) => {\n // Track go to alert event\n trackEvent(\"GoToAlert\", { projectId, alertId });\n goToAlert(projectId, alertId);\n };\n\n const handleAcceptReport = (reportId) => {\n // Track accept report event\n trackEvent(\"AcceptReport\", { reportId });\n acceptReport(reportId);\n };\n\n const handleDismissReport = (reportId) => {\n // Track dismiss report event\n trackEvent(\"DismissReport\", { reportId });\n dismissReport(reportId);\n };\n\n const getRowMenu = (row) => [\n {\n title: strings(stringKeys.reports.list.goToAlert),\n roles: accessMap.reports.goToAlert,\n disabled: !row.alert,\n action: () => handleGoToAlert(projectId, row.alert.id),\n },\n {\n title: strings(stringKeys.reports.list.acceptReport),\n roles: accessMap.reports.crossCheck,\n disabled: !canCrossCheck(row, reportStatus.accepted),\n action: () => handleAcceptReport(row.id),\n },\n {\n title: strings(stringKeys.reports.list.dismissReport),\n roles: accessMap.reports.crossCheck,\n disabled: !canCrossCheck(row, reportStatus.rejected),\n action: () => handleDismissReport(row.id),\n },\n ];\n\n const canEdit = (row) =>\n (!row.isActivityReport ||\n filters.dataCollectorType === DataCollectorType.unknownSender) &&\n row.status === reportStatus.new &&\n !projectIsClosed &&\n !row.dataCollectorIsDeleted;\n return (\n \n \n {isListFetching && }\n \n \n \n \n \n {strings(stringKeys.reports.list.date)}\n \n \n \n {strings(stringKeys.reports.list.status)}\n \n \n {strings(stringKeys.reports.list.dataCollectorDisplayName)}\n \n \n {strings(stringKeys.common.location)}\n \n \n {strings(stringKeys.reports.list.healthRisk)}\n \n \n {strings(stringKeys.reports.list.malesBelowFive)}\n \n \n {strings(stringKeys.reports.list.malesAtLeastFive)}\n \n \n {strings(stringKeys.reports.list.femalesBelowFive)}\n \n \n {strings(stringKeys.reports.list.femalesAtLeastFive)}\n \n {filters.dataCollectorType ===\n DataCollectorType.collectionPoint && (\n \n \n {strings(stringKeys.reports.list.referredCount)}\n \n \n \n )}\n \n \n \n \n {list.sort(sortByReportStatus).map((row) => (\n \n \n {dayjs(row.dateTime).format(\"YYYY-MM-DD HH:mm\")}\n \n \n {row.isActivityReport ? (\n \"-\"\n ) : (\n \n )}\n \n \n {renderDataCollectorDisplayName(row)}\n \n \n {dashIfEmpty(row.region, row.district, row.village, row.zone)}\n \n {dashIfEmpty(row.healthRiskName)}\n \n {renderReportValue(row.countMalesBelowFive, isDataCollectionPointTable)}\n \n \n {renderReportValue(row.countMalesAtLeastFive, isDataCollectionPointTable)}\n \n \n {renderReportValue(row.countFemalesBelowFive, isDataCollectionPointTable)}\n \n \n {renderReportValue(row.countFemalesAtLeastFive, isDataCollectionPointTable)}\n \n {isDataCollectionPointTable && (\n \n \n {renderReportValue(row.referredCount, true)}\n \n \n )}\n \n \n goToEditing(projectId, row.id)}\n icon={}\n title={strings(stringKeys.reports.list.editReport)}\n roles={accessMap.reports.edit}\n condition={canEdit(row)}\n directionRtl={rtl}\n />\n {!row.isActivityReport && (\n }\n isFetching={isMarkingAsError[row.id]}\n items={getRowMenu(row)}\n directionRtl={rtl}\n />\n )}\n \n \n \n ))}\n \n
\n \n
\n
\n );\n};\n\nCorrectReportsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default CorrectReportsTable;\n","import {\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n FormLabel,\n makeStyles,\n} from \"@material-ui/core\";\nimport { Fragment } from \"react\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nconst useStyles = makeStyles(() => ({\n checkbox: {\n height: \"23px \",\n \"& .MuiTypography-body1\": {\n lineHeight: \"0.8\",\n },\n },\n filterCheckboxGroup: {\n maxHeight: \"50px\",\n paddingTop: \"5px\",\n },\n noFlexWrap: {\n flexWrap: \"nowrap\",\n },\n}));\n\nexport const ReportStatusFilter = ({\n filter,\n onChange,\n correctReports,\n showDismissedFilter,\n doNotWrap,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n \n {strings(stringKeys.filters.report.status)}\n \n \n {correctReports && (\n \n \n }\n label={strings(stringKeys.filters.report.kept)}\n />\n \n }\n label={strings(stringKeys.filters.report.notCrossChecked)}\n />\n {showDismissedFilter && (\n \n }\n label={strings(stringKeys.filters.report.dismissed)}\n />\n )}\n \n )}\n {!correctReports && (\n \n \n }\n label={strings(stringKeys.filters.report.nonTrainingReports)}\n />\n \n }\n label={strings(stringKeys.filters.report.correctedReports)}\n />\n \n )}\n \n \n \n );\n};\n","import { useEffect, useState } from \"react\";\nimport { MenuItem, Checkbox, useMediaQuery } from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport styles from \"./HealthRiskFilter.module.scss\";\nimport { SelectAll } from \"../../common/selectAll/SelectAll\";\nimport { DropdownPopover } from \"./DropdownPopover\";\n\nexport const HealthRiskFilter = ({\n allHealthRisks,\n filteredHealthRisks,\n onChange,\n updateValue,\n rtl,\n}) => {\n const [dialogOpen, setDialogOpen] = useState(false);\n // Checks off all boxes on mount\n useEffect(() => {\n if(filteredHealthRisks.length === 0) {\n updateValue({ healthRisks: allHealthRisks.map((hr) => hr.id) });\n }\n }, [allHealthRisks]);\n\n // Handles when the checkbox is checked off or not checked on. Will only update filteredHealthRisks to not fetch from backend every time.\n const handleHealthRiskChange = (healthRiskId) => {\n const newHealthRisks = filteredHealthRisks.includes(healthRiskId)\n ? filteredHealthRisks.filter((hrId) => hrId !== healthRiskId)\n : [...filteredHealthRisks, healthRiskId]\n\n updateValue({\n healthRisks: newHealthRisks,\n });\n };\n\n // Handles when select all checkbox is toggled on or off. Same functionality as handleHealthRiskChange.\n const toggleSelectAll = () => {\n updateValue({\n healthRisks:\n filteredHealthRisks.length === allHealthRisks.length\n ? []\n : allHealthRisks.map((hr) => hr.id),\n });\n };\n\n // Displays the text of the dropdown i.e if all are selected, then \"All\" is displayed or if Acute malnutrition and Fever and rash are selected then \"Acute malnutrition (+1)\" is displayed.\n const renderHealthRiskValues = (selectedIds) =>\n selectedIds.length < 1 || selectedIds.length === allHealthRisks.length\n ? strings(stringKeys.dashboard.filters.healthRiskAll)\n : selectedIds.map(\n (id) => allHealthRisks?.find((hr) => hr.id === id)?.name,\n )[0] +\n `${selectedIds.length > 1 ? ` (+${selectedIds.length - 1})` : \"\"}`;\n\n const isSmallScreen = useMediaQuery(theme => theme.breakpoints.down(\"sm\"));\n\n // Uses the onChange function to fetch from backend\n const showResults = () => {\n onChange(filteredHealthRisks);\n setDialogOpen(false);\n };\n\n return (\n \n setDialogOpen(false) : showResults}\n />\n {allHealthRisks.map((hr) => (\n handleHealthRiskChange(hr.id)}\n >\n -1}\n />\n \n {hr.name}\n \n \n ))}\n \n );\n};\n","import {\n Grid,\n MenuItem,\n Card,\n CardContent,\n FormControl,\n InputLabel,\n Select,\n FormLabel,\n RadioGroup,\n FormControlLabel,\n Radio,\n useMediaQuery,\n LinearProgress,\n makeStyles,\n} from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport {\n reportErrorFilterTypes,\n DataCollectorType,\n correctedStateTypes,\n} from \"./logic/reportFilterConstsants\";\nimport { ReportStatusFilter } from \"./ReportStatusFilter\";\nimport LocationFilter from \"./LocationFilter\";\nimport { HealthRiskFilter } from \"../../common/filters/HealthRiskFilter\";\nimport useLocalFilters from \"../../common/filters/useLocalFilters\";\nimport useLocationFilter from \"../../common/filters/useLocationFilter\";\nimport { DrawerFilter } from \"./DrawerFilter\";\n\nconst useStyles = makeStyles((theme) => ({\n selectFilterItem: {\n width: \"150px\",\n [theme.breakpoints.down(\"xs\")]: {\n width: \"100%\",\n maxWidth: \"220px\",\n },\n },\n radio: {\n height: \"23px\",\n },\n radioGroup: {\n paddingTop: \"5px\",\n },\n}));\n\nconst Filter = ({\n localFilters,\n handleFiltersChange,\n updateLocalFilters,\n healthRisks,\n locations,\n locationsFilterLabel,\n showCorrectReportFilters,\n hideCorrectedFilter,\n hideTrainingStatusFilter,\n rtl,\n}) => {\n const classes = useStyles();\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down(\"xs\"));\n\n const handleLocationChange = (newValue) => {\n handleFiltersChange({\n locations: newValue,\n });\n };\n\n const handleHealthRiskChange = (filteredHealthRisks) =>\n handleFiltersChange({ healthRisks: filteredHealthRisks });\n\n const handleDataCollectorTypeChange = (event) =>\n handleFiltersChange({ dataCollectorType: event.target.value });\n\n const handleErrorTypeChange = (event) =>\n handleFiltersChange({ errorType: event.target.value });\n\n const handleCorrectedStateChange = (event) =>\n handleFiltersChange({ correctedState: event.target.value });\n\n const handleReportStatusChange = (event) =>\n handleFiltersChange({\n reportStatus: {\n ...localFilters.reportStatus,\n [event.target.name]: event.target.checked,\n },\n });\n\n const handleTrainingStatusChange = (event) =>\n handleFiltersChange({\n ...localFilters,\n trainingStatus: event.target.value,\n });\n\n return (\n \n {/* Material UI v4 lacks some key features for Grids and breakpoints, so the reordering of components in the grid must be done with css order properties and ternaries using isSmallScreen */}\n \n \n \n\n \n {/* Data Collector Type filter */}\n \n \n {strings(stringKeys.filters.report.selectReportListType)}\n \n \n \n {strings(stringKeys.filters.report.unknownSenderReportListType)}\n \n \n {strings(stringKeys.filters.report.mainReportsListType)}\n \n \n {strings(stringKeys.filters.report.dcpReportListType)}\n \n \n \n \n\n {showCorrectReportFilters && (\n \n \n \n )}\n\n {!showCorrectReportFilters && (\n \n {/* Error Type filter */}\n \n \n {strings(stringKeys.filters.report.selectErrorType)}\n \n \n {reportErrorFilterTypes.map((errorType) => (\n \n {strings(stringKeys.filters.report.errorTypes[errorType])}\n \n ))}\n \n \n \n )}\n\n {!showCorrectReportFilters && !hideCorrectedFilter && (\n \n {/* Is Corrected filter */}\n \n \n {strings(stringKeys.filters.report.isCorrected)}\n \n \n {correctedStateTypes.map((state) => (\n \n {strings(stringKeys.filters.report.correctedStates[state])}\n \n ))}\n \n \n \n )}\n\n {!hideTrainingStatusFilter && (\n \n {/* Training status filter */}\n \n \n {strings(stringKeys.dashboard.filters.trainingStatus)}\n \n \n }\n />\n }\n />\n \n \n \n )}\n\n {showCorrectReportFilters && (\n \n \n \n )}\n \n );\n};\n\nexport const ReportFilters = ({\n filters,\n healthRisks,\n locations,\n onChange,\n showCorrectReportFilters,\n hideTrainingStatusFilter,\n hideCorrectedFilter,\n rtl,\n isListFetching,\n}) => {\n //Reducer for local filters state\n const [localFilters, updateLocalFilters] = useLocalFilters(filters);\n const showUnknownLocation = true;\n\n //Fetches new data based on changes in filters\n const handleFiltersChange = (filters) => {\n onChange(updateLocalFilters(filters));\n };\n\n //Syncs locations from redux store with filter state and sets label for location filter to 'All' or \"Region (+n)\"\n //Neccecary if locations are added, edited or removed, to make all filters checked\n const [locationsFilterLabel] = useLocationFilter(\n locations,\n localFilters,\n updateLocalFilters,\n showUnknownLocation,\n );\n\n const isMediumScreen = useMediaQuery((theme) => theme.breakpoints.down(\"sm\"));\n\n if (!localFilters) {\n return null;\n }\n\n if (isMediumScreen) {\n if (isListFetching) {\n return ;\n }\n return (\n \n \n }\n showResults={handleFiltersChange}\n />\n \n );\n }\n\n return (\n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createFieldComponent } from \"./FieldBase\";\nimport { TextField } from \"@material-ui/core\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\nimport { stringKeys, strings } from \"../../strings\";\n\nconst filter = (options, params, allowAddingValue) => {\n if (params.inputValue !== \"\") {\n const filtered = options.filter(\n (o) =>\n o.title.toLowerCase().indexOf(params.inputValue.toLowerCase()) > -1,\n );\n\n allowAddingValue &&\n filtered.push({\n inputValue: params.inputValue,\n title: `Add \"${params.inputValue}\"`,\n });\n\n return filtered;\n }\n\n return options;\n};\n\nconst AutocompleteTextInput = ({\n error,\n name,\n label,\n value,\n options,\n freeSolo,\n autoSelect,\n controlProps,\n autoWidth,\n disabled,\n type,\n allowAddingValue,\n}) => {\n return (\n \n filter(options, params, allowAddingValue)\n }\n getOptionLabel={(option) => {\n // Value selected with enter, right from the input\n if (typeof option === \"string\") {\n return option;\n }\n // Add \"xxx\" option created dynamically\n if (option.inputValue) {\n return option.inputValue;\n }\n // Regular option\n return option.title;\n }}\n getOptionSelected={(option, value) => option.title === value}\n renderOption={(option) => option.title}\n {...controlProps}\n noOptionsText={strings(stringKeys.filters.autocomplete.noOptions)}\n renderInput={(params) => (\n \n )}\n />\n );\n};\n\nAutocompleteTextInput.propTypes = {\n controlProps: PropTypes.object,\n name: PropTypes.string,\n allowAddingValue: PropTypes.bool,\n};\n\nexport const AutocompleteTextInputField = createFieldComponent(\n AutocompleteTextInput,\n);\nexport default AutocompleteTextInputField;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { TextField } from \"@material-ui/core\";\n\nconst TimePicker = ({ name, label, value, error, onChange }) => {\n const handleChange = (e) => {\n onChange(e.target.value);\n };\n\n return (\n \n );\n};\n\nTimePicker.propTypes = {\n name: PropTypes.string,\n label: PropTypes.string,\n value: PropTypes.string,\n error: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport default TimePicker;\n","import styles from \"./ReportsEditPage.module.scss\";\n\nimport React, { useEffect, useState, useRef, Fragment } from \"react\";\nimport { validators, createForm } from \"../../utils/forms\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { useTheme, Grid, MenuItem, LinearProgress } from \"@material-ui/core\";\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport {\n Dialog,\n DialogContent,\n DialogTitle,\n Typography,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport { useSelector } from \"react-redux\";\nimport { DatePicker } from \"../forms/DatePicker\";\nimport AutocompleteTextInputField from \"../forms/AutocompleteTextInputField\";\nimport SelectField from \"../forms/SelectField\";\nimport { getUtcOffset } from \"../../utils/date\";\nimport * as http from \"../../utils/http\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport TimePicker from \"../forms/TimePicker\";\n\nexport const SendReportDialog = ({ close, showMessage }) => {\n const [form, setForm] = useState(null);\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n dayjs.extend(utc);\n const isFetching = useSelector((state) => state.reports.formFetching);\n const dataCollectors = useSelector(\n (state) => state.reports.sendReport.dataCollectors,\n );\n const formData = useSelector((state) => state.reports.sendReport.formData);\n const [date, setDate] = useState(dayjs());\n const [time, setTime] = useState(dayjs().format(\"HH:mm\"));\n const [timeError, setTimeError] = useState(null);\n const [isSending, setIsSending] = useState(false);\n const [gatewayModemsDisabled, setGatewayModemsDisabled] = useState(false);\n const abortController = useRef(new AbortController());\n const intervalHandler = useRef(0);\n const dcFieldSubscription = useRef(null);\n\n const canSelectModem = !!formData && formData.modems.length > 0;\n const dataCollectorsOptions = dataCollectors.map((dc) => ({\n title: `${dc.name} / ${dc.phoneNumber}`,\n id: dc.id,\n }));\n\n useEffect(() => {\n if (!formData) {\n return null;\n }\n\n const fields = {\n dataCollector: null,\n gatewayModemId: !!formData.currentUserModemId\n ? formData.currentUserModemId.toString()\n : \"\",\n message: \"\",\n };\n\n const validation = {\n dataCollector: [validators.required],\n gatewayModemId: [],\n message: [validators.required],\n };\n\n setForm(createForm(fields, validation));\n }, [canSelectModem, formData]);\n\n useEffect(() => {\n if (!form) return;\n\n dcFieldSubscription.current = form.fields.dataCollector.subscribe(\n onDataCollectorChange,\n );\n\n return () => {\n dcFieldSubscription.current?.unsubscribe();\n };\n }, [form]);\n\n function getReportStatus(timestamp, dataCollectorId) {\n return new Promise((resolve, reject) => {\n intervalHandler.current = setInterval(() => {\n http\n .get(\n `/api/report/status?timestamp=${timestamp}&dataCollectorId=${dataCollectorId}`,\n false,\n abortController.current.signal,\n )\n .then((status) => {\n if (!status) return;\n\n clearInterval(intervalHandler.current);\n resolve(status);\n })\n .catch((err) => {\n clearInterval(intervalHandler.current);\n reject(err);\n });\n }, 3000);\n });\n }\n\n async function handleSubmit(e) {\n e.preventDefault();\n\n if (!form.isValid() || !!timeError) {\n return;\n }\n\n const values = form.getValues();\n const dataCollector = dataCollectorsOptions.filter(\n (dc) => dc.title === values.dataCollector,\n )[0];\n const currentSeconds = dayjs().format(\"ss\");\n const timestamp = dayjs(\n `${date.format(\"YYYY-MM-DD\")} ${time}:${currentSeconds}`,\n )\n .utc()\n .format(\"YYYYMMDDHHmmss\");\n\n const data = {\n dataCollectorId: dataCollector.id,\n text: values.message,\n timestamp: timestamp,\n modemId: !!values.gatewayModemId ? parseInt(values.gatewayModemId) : null,\n utcOffset: getUtcOffset(),\n };\n\n try {\n setIsSending(true);\n await http.post(\n \"/api/report/sendReport\",\n data,\n false,\n abortController.current.signal,\n );\n const status = await getReportStatus(\n data.timestamp,\n data.dataCollectorId,\n );\n\n showMessage(\n status.feedbackMessage\n ? status.feedbackMessage\n : stringKeys.reports.sendReport.success,\n );\n\n setIsSending(false);\n close();\n } catch (error) {\n setIsSending(false);\n\n if (error.name === \"AbortError\") {\n close();\n return;\n }\n\n showMessage?.(error.message);\n }\n }\n\n function onClose() {\n if (isSending) {\n abortController.current.abort();\n\n if (intervalHandler.current > 0) {\n clearInterval(intervalHandler.current);\n close();\n }\n\n return;\n }\n\n close();\n }\n\n function onDataCollectorChange({ newValue }) {\n const dcOption = dataCollectorsOptions.find((dc) => dc.title === newValue);\n const dc = dataCollectors.find((dc) => dc.id === dcOption?.id);\n\n if (dc?.phoneNumber && canSelectModem) {\n setGatewayModemsDisabled(false);\n form.fields.gatewayModemId.setValidators([validators.required]);\n } else {\n form.fields.gatewayModemId.setValidators([]);\n form.fields.gatewayModemId.update(\"\");\n setGatewayModemsDisabled(true);\n }\n }\n\n const onDateChange = (date) => {\n const newDate = dayjs(date);\n setDate(newDate);\n setTimeError(validateTime(time, newDate));\n };\n\n const validateTime = (value, newDate = null) =>\n dayjs(`${(!!newDate ? newDate : date).format(\"YYYY-MM-DD\")} ${value}`) >\n dayjs()\n ? strings(stringKeys.validation.timeNotInFuture)\n : null;\n\n const onTimeChange = (time) => {\n setTimeError(validateTime(time));\n setTime(time);\n };\n\n return (\n !!form && (\n \n e.stopPropagation()}\n fullScreen={fullScreen}\n >\n {isFetching && }\n \n \n {strings(stringKeys.reports.sendReport.sendReport)}\n \n \n \n
\n \n \n \n \n\n {canSelectModem && (\n \n \n {formData.modems.map((modem) => (\n \n {modem.name}\n \n ))}\n \n \n )}\n\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.reports.sendReport.sendReport)}\n \n \n
\n
\n \n
\n )\n );\n};\n","import styles from \"./ReportsListPage.module.scss\";\n\nimport React, { Fragment, useCallback, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as reportsActions from \"./logic/reportsActions\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport CorrectReportsTable from \"./CorrectReportsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { ReportFilters } from \"../common/filters/ReportFilters\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { Hidden, Icon } from \"@material-ui/core\";\nimport * as roles from \"../../authentication/roles\";\nimport { SendReportDialog } from \"./SendReportDialog\";\nimport * as appActions from \"../app/logic/appActions\";\nimport TableHeader from \"../common/tableHeader/TableHeader\";\nimport { trackEvent, trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst Page = \"correct\";\n\nconst CorrectReportsListPageComponent = (props) => {\n const [open, setOpen] = useState(false);\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const canSendReport =\n props.user &&\n [\n roles.Administrator,\n roles.Manager,\n roles.TechnicalAdvisor,\n roles.Supervisor,\n roles.HeadSupervisor,\n ].some((neededRole) =>\n props.user.roles.some((userRole) => userRole === neededRole),\n );\n\n useMount(() => {\n props.openReportsList(props.projectId);\n\n // Track page view\n trackPageView(\"CorrectReportsListPage\");\n });\n\n const handleRefresh = () => props.getList(props.projectId, 1);\n\n //useCallback important to avoid infinite loop from useEffect in ReportFilters\n const handleFiltersChange = useCallback(\n (filters) => props.getList(props.projectId, 1, filters, props.sorting),\n [props.getList, props.projectId, props.sorting],\n );\n\n const handlePageChange = (page) =>\n props.getList(props.projectId, page, props.filters, props.sorting);\n\n const handleSortChange = (sorting) =>\n props.getList(props.projectId, props.page, props.filters, sorting);\n\n const handleSendReport = (e) => {\n e.stopPropagation();\n props.openSendReport(props.projectId);\n setOpen(true);\n };\n\n function handleExportToCsv() {\n trackEvent(\"exportCorrectReportsCsv\", { exportFileType: \"Csv\" });\n props.trackReportExport(Page, \"Csv\", props.projectId); //Uses old AppInsights tracking method (could be redundant, mabye remove)\n\n props.exportToCsv(props.projectId, props.filters, props.sorting);\n }\n\n function handleExportToExcel() {\n trackEvent(\"exportCorrectReportsExcel\", { exportFileType: \"Excel\" });\n props.trackReportExport(Page, \"Excel\", props.projectId); //Uses old AppInsights tracking method (could be redundant, mabye remove)\n\n props.exportToExcel(props.projectId, props.filters, props.sorting);\n }\n\n if (!props.data || !props.filters || !props.sorting) {\n return null;\n }\n\n return (\n \n \n \n \n \n refresh\n \n \n\n \n {strings(stringKeys.reports.list.exportToCsv)}\n \n\n \n {strings(stringKeys.reports.list.exportToExcel)}\n \n\n {canSendReport && (\n \n {strings(stringKeys.reports.list.sendReport)}\n \n )}\n \n \n\n {open && (\n setOpen(false)}\n projectId={props.projectId}\n openSendReport={props.openSendReport}\n showMessage={props.showMessage}\n />\n )}\n\n
\n \n
\n\n \n
\n );\n};\n\nCorrectReportsListPageComponent.propTypes = {\n getReports: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n nationalSocietyId: state.appData.siteMap.parameters.nationalSocietyId,\n data: state.reports.correctReportsPaginatedListData,\n isListFetching: state.reports.listFetching,\n isRemoving: state.reports.listRemoving,\n filters: state.reports.correctReportsFilters,\n sorting: state.reports.correctReportsSorting,\n healthRisks: state.reports.filtersData.healthRisks,\n locations: state.reports.filtersData.locations,\n user: state.appData.user,\n isMarkingAsError: state.reports.markingAsError,\n projectIsClosed: state.appData.siteMap.parameters.projectIsClosed,\n});\n\nconst mapDispatchToProps = {\n openReportsList: reportsActions.openCorrectReportsList.invoke,\n getList: reportsActions.getCorrectList.invoke,\n exportToExcel: reportsActions.exportToExcel.invoke,\n exportToCsv: reportsActions.exportToCsv.invoke,\n goToEditing: reportsActions.goToEditing,\n openSendReport: reportsActions.openSendReport.invoke,\n goToAlert: reportsActions.goToAlert,\n acceptReport: reportsActions.acceptReport.invoke,\n dismissReport: reportsActions.dismissReport.invoke,\n trackReportExport: reportsActions.trackReportExport,\n showMessage: appActions.showMessage,\n};\n\nexport const CorrectReportsListPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(CorrectReportsListPageComponent),\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createFieldComponent } from \"./FieldBase\";\nimport { DatePicker } from \"./DatePicker\";\n\nconst DateInput = ({ label, name, className, value, controlProps }) => {\n return (\n \n );\n};\n\nDateInput.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n value: PropTypes.object,\n controlProps: PropTypes.object,\n};\n\nexport const DateInputField = createFieldComponent(DateInput);\nexport default DateInputField;\n","import styles from \"./ReportsEditPage.module.scss\";\n\nimport { useEffect, useState, Fragment, useReducer } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm } from \"../../utils/forms\";\nimport * as reportsActions from \"./logic/reportsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport DateInputField from \"../forms/DateInputField\";\nimport SelectField from \"../forms/SelectField\";\nimport { MenuItem, Grid } from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport dayjs from \"dayjs\";\nimport {\n reportAges,\n reportCountToSexAge,\n reportSexes,\n reportStatus,\n ReportType,\n} from \"./logic/reportsConstants\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { SubMenuTitle } from \"../layout/SubMenuTitle\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ReportsEditPageComponent = (props) => {\n const [form, setForm] = useState(null);\n const [selectedDataCollector, setSelectedDataCollector] = useState(null);\n const [availableReportStatus, setAvailableReportStatus] = useState(null);\n const [reportSex, setReportSex] = useState(null);\n const [reportAge, setReportAge] = useState(null);\n\n const [selectedLocation, setLocation] = useReducer(\n (state, locationId) => {\n if (props.data !== null && state.id !== locationId) {\n return (\n props.dataCollectors\n .find((dc) => dc.id === selectedDataCollector.id)\n .locations.find((lc) => lc.id.toString() === locationId) || state\n );\n }\n\n return state;\n },\n { id: 0 },\n );\n\n useMount(() => {\n props.openEdition(props.projectId, props.reportId);\n\n // Track page view\n trackPageView(\"ReportsEditPage\");\n });\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n if (!!props.data.dataCollectorId && !!props.data.locationId) {\n setLocation(props.data.locationId.toString());\n }\n\n if (props.data.reportStatus === reportStatus.new) {\n setAvailableReportStatus([\n reportStatus.new,\n reportStatus.accepted,\n reportStatus.rejected,\n ]);\n }\n if (\n props.data.reportStatus !== reportStatus.new &&\n props.data.reportStatus !== reportStatus.closed\n ) {\n setAvailableReportStatus([\n reportStatus.pending,\n reportStatus.accepted,\n reportStatus.rejected,\n ]);\n }\n if (props.data.reportStatus === reportStatus.closed) {\n setAvailableReportStatus([reportStatus.closed]);\n }\n\n const fields = {\n id: props.data.id,\n date: dayjs(props.data.date),\n dataCollectorId: !!props.data.dataCollectorId\n ? props.data.dataCollectorId.toString()\n : \"\",\n reportStatus: props.data.reportStatus,\n healthRiskId: props.data.healthRiskId.toString(),\n locationId: !!props.data.locationId\n ? props.data.locationId.toString()\n : \"\",\n reportSex: findSexAgeHelper(props.data).sex,\n reportAge: findSexAgeHelper(props.data).age,\n countMalesBelowFive: !!props.data.countMalesBelowFive\n ? props.data.countMalesBelowFive.toString()\n : \"\",\n countMalesAtLeastFive: !!props.data.countMalesAtLeastFive\n ? props.data.countMalesAtLeastFive.toString()\n : \"\",\n countFemalesBelowFive: !!props.data.countFemalesBelowFive\n ? props.data.countFemalesBelowFive.toString()\n : \"\",\n countFemalesAtLeastFive: !!props.data.countFemalesAtLeastFive\n ? props.data.countFemalesAtLeastFive.toString()\n : \"\",\n countUnspecifiedSexAndAge: !!props.data.countUnspecifiedSexAndAge\n ? props.data.countUnspecifiedSexAndAge.toString()\n : \"\",\n referredCount: !!props.data.referredCount\n ? props.data.referredCount.toString()\n : \"\",\n \n };\n\n const validation = {\n date: [validators.required],\n dataCollectorId: [validators.required],\n reportStatus: [validators.required],\n locationId: [validators.required],\n reportSex: [\n validators.requiredWhen(\n () => props.data.reportType === ReportType.single,\n ),\n validators.sexAge((x) => x.reportAge),\n ],\n reportAge: [\n validators.requiredWhen(\n () => props.data.reportType === ReportType.single,\n ),\n validators.sexAge((x) => x.reportSex),\n ],\n healthRiskId: [validators.required],\n countMalesBelowFive: [validators.integer, validators.nonNegativeNumber],\n countMalesAtLeastFive: [validators.integer, validators.nonNegativeNumber],\n countFemalesBelowFive: [validators.integer, validators.nonNegativeNumber],\n countFemalesAtLeastFive: [\n validators.integer,\n validators.nonNegativeNumber,\n ],\n referredCount: [validators.integer, validators.nonNegativeNumber],\n };\n\n const newForm = createForm(fields, validation);\n\n setSelectedDataCollector(\n props.dataCollectors.find((dc) => dc.id === props.data.dataCollectorId),\n );\n setReportSex(fields.reportSex);\n setReportAge(fields.reportAge);\n\n newForm.fields.locationId.subscribe(({ newValue }) =>\n setLocation(newValue),\n );\n newForm.fields.reportSex.subscribe(({ newValue, form }) => {\n setReportSex(newValue);\n newForm.revalidateField(form.reportAge, form);\n });\n newForm.fields.reportAge.subscribe(({ newValue, form }) => {\n setReportAge(newValue);\n newForm.revalidateField(form.reportSex, form);\n });\n\n setForm(newForm);\n }, [props.data, props.dataCollectors]);\n\n const handleDataCollectorChange = (event) => {\n form.fields.locationId.update(\"\", true);\n\n const newDataCollector = props.dataCollectors.find(\n (dc) => dc.id.toString() === event.target.value,\n );\n setSelectedDataCollector(newDataCollector);\n if (newDataCollector?.locations.length === 1) {\n form.fields.locationId.update(\n newDataCollector.locations[0].id.toString(),\n );\n setLocation(newDataCollector.locations[0].id.toString());\n }\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n if (props.data.reportType === ReportType.single) {\n Object.keys(reportCountToSexAge).forEach((comb) => (values[comb] = \"0\"));\n values[findSexAgeCombinationHelper()] = \"1\";\n }\n\n props.edit(props.projectId, props.reportId, {\n date: values.date.format(\"YYYY-MM-DDTHH:mm:ss\"),\n dataCollectorId: parseInt(values.dataCollectorId),\n dataCollectorLocationId: parseInt(values.locationId),\n reportStatus: values.reportStatus,\n healthRiskId: parseInt(values.healthRiskId),\n countMalesBelowFive: parseInt(values.countMalesBelowFive),\n countMalesAtLeastFive: parseInt(values.countMalesAtLeastFive),\n countFemalesBelowFive: parseInt(values.countFemalesBelowFive),\n countFemalesAtLeastFive: parseInt(values.countFemalesAtLeastFive),\n countUnspecifiedSexAndAge: parseInt(values.countUnspecifiedSexAndAge),\n referredCount:\n values.referredCount === \"\" ? 0 : parseInt(values.referredCount),\n });\n };\n\n const findSexAgeCombinationHelper = () =>\n Object.keys(reportCountToSexAge).find(\n (key) =>\n reportCountToSexAge[key].sex === reportSex &&\n reportCountToSexAge[key].age === reportAge,\n );\n\n const findSexAgeHelper = (data) => {\n const key = Object.keys(reportCountToSexAge).find((key) => data[key] > 0);\n return key ? reportCountToSexAge[key] : { sex: \"\", age: \"\" };\n };\n\n const dataCollectorAndLocationSelected = () =>\n selectedDataCollector && selectedLocation.id !== 0;\n\n if (props.isFetching || !form || !props.data) {\n return ;\n }\n\n return (\n \n \n {props.error && }\n\n
\n \n
\n {strings(stringKeys.reports.form.senderSectionTitle)}\n
\n \n \n {props.dataCollectors.map((dataCollector) => (\n \n {dataCollector.name}\n \n ))}\n \n \n\n \n \n {selectedDataCollector &&\n selectedDataCollector.locations.map((location) => (\n \n {location.village +\n (location.zone ? \" > \" + location.zone : \"\")}\n \n ))}\n \n \n\n {props.data.reportType !== ReportType.dataCollectionPoint &&\n props.data.reportType !== ReportType.aggregate &&\n !props.data.isActivityReport && (\n \n
\n {strings(stringKeys.reports.form.statusSectionTitle)}\n
\n \n \n {availableReportStatus.map((status) => (\n \n {strings(stringKeys.reports.status[status])}\n \n ))}\n \n \n
\n )}\n\n {props.data.reportType !== ReportType.event && (\n
\n {strings(stringKeys.reports.form.contentSectionTitle)}\n
\n )}\n\n {props.data.reportType === ReportType.single && (\n \n \n \n {Object.keys(reportSexes).map((sex) => (\n \n {strings(\n stringKeys.reports.sexAgeConstants[reportSexes[sex]],\n )}\n \n ))}\n \n \n\n \n \n {Object.keys(reportAges).map((age) => (\n \n {strings(\n stringKeys.reports.sexAgeConstants[reportAges[age]],\n )}\n \n ))}\n \n \n \n )}\n\n {(props.data.reportType === ReportType.dataCollectionPoint ||\n props.data.reportType === ReportType.aggregate) && (\n \n \n \n \n\n \n \n {props.healthRisks.map((healthRisk) => (\n \n {healthRisk.name}\n \n ))}\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n )}\n\n {props.data.reportType === ReportType.dataCollectionPoint && (\n \n \n \n \n \n )}\n\n \n props.goToList(props.projectId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n \n \n
\n );\n};\n\nReportsEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n reportId: ownProps.match.params.reportId,\n projectId: ownProps.match.params.projectId,\n isFetching: state.reports.formFetching,\n isSaving: state.reports.formSaving,\n data: state.reports.formData,\n error: state.reports.formError,\n healthRisks: state.reports.editReport.formHealthRisks,\n dataCollectors: state.reports.editReport.formDataCollectors,\n});\n\nconst mapDispatchToProps = {\n openEdition: reportsActions.openEdition.invoke,\n edit: reportsActions.edit.invoke,\n goToList: reportsActions.goToList,\n};\n\nexport const ReportsEditPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(ReportsEditPageComponent),\n);\n","import { useEffect } from \"react\";\nimport { DatePicker } from \"../../forms/DatePicker\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { ConditionalCollapse } from \"../../common/conditionalCollapse/ConditionalCollapse\";\nimport { convertToLocalDate, convertToUtc } from \"../../../utils/date\";\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\nimport DateRange from \"@material-ui/icons/DateRange\";\nimport {\n LinearProgress,\n Chip,\n IconButton,\n Grid,\n TextField,\n MenuItem,\n Card,\n useMediaQuery,\n CardContent,\n CardHeader,\n FormControl,\n FormControlLabel,\n FormLabel,\n RadioGroup,\n Radio,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport { ReportStatusFilter } from \"../../common/filters/ReportStatusFilter\";\nimport { Fragment } from \"react\";\nimport { DataConsumer } from \"../../../authentication/roles\";\nimport LocationFilter from \"../../common/filters/LocationFilter\";\nimport { HealthRiskFilter } from \"../../common/filters/HealthRiskFilter\";\nimport useLocalFilters from \"../../common/filters/useLocalFilters\";\nimport useLocationFilter from \"../../common/filters/useLocationFilter\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\nimport { DrawerFilter } from \"../../common/filters/DrawerFilter\";\n\nconst useStyles = makeStyles((theme) => ({\n selectFilterItem: {\n width: \"150px\",\n [theme.breakpoints.down(\"xs\")]: {\n width: \"100%\",\n maxWidth: \"220px\",\n },\n },\n filterRadioGroup: {\n paddingTop: \"5px\",\n },\n radio: {\n height: \"23px\",\n },\n filters: {\n boxShadow: \"#fff 0px 5px 5px 5px\",\n },\n filterTitle: {\n paddingBottom: \"1px\",\n },\n collapsedFilterBar: {\n padding: \"0px 5px\",\n \"&:last-child\": {\n paddingBottom: \"0px\",\n },\n },\n expandFilterButton: {\n marginLeft: \"auto\",\n \"> button\": {\n transition: \"transform 150ms\",\n },\n },\n rtl: {\n marginLeft: 0,\n marginRight: \"auto\",\n },\n}));\n\nconst Filter = ({\n localFilters,\n handleFiltersChange,\n updateLocalFilters,\n healthRisks,\n locations,\n locationsFilterLabel,\n organizations,\n userRoles,\n rtl,\n collectionsTypes,\n}) => {\n const classes = useStyles();\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down(\"xs\"));\n\n const handleLocationChange = (newValue) => {\n handleFiltersChange({\n locations: newValue,\n });\n };\n\n const handleHealthRiskChange = (filteredHealthRisks) =>\n handleFiltersChange({ healthRisks: filteredHealthRisks });\n\n {\n /* See comment below, (organization filter comment), explaining commented out code */\n }\n // const handleOrganizationChange = (event) =>\n // handleFiltersChange({\n // organizationId: event.target.value === 0 ? null : event.target.value,\n // });\n\n const handleDateFromChange = (date) =>\n handleFiltersChange({ startDate: convertToUtc(date) });\n\n const handleDateToChange = (date) =>\n handleFiltersChange({ endDate: convertToUtc(date) });\n\n const handleGroupingTypeChange = (event) =>\n handleFiltersChange({ groupingType: event.target.value });\n\n const handleDataCollectorTypeChange = (event) =>\n handleFiltersChange({ dataCollectorType: event.target.value });\n\n const handleReportStatusChange = (event) =>\n handleFiltersChange({\n reportStatus: {\n ...localFilters.reportStatus,\n [event.target.name]: event.target.checked,\n },\n });\n\n const handleTrainingStatusChange = (event) =>\n handleFiltersChange({ trainingStatus: event.target.value });\n\n return (\n \n \n \n \n\n \n \n \n\n \n \n \n {strings(stringKeys.dashboard.filters.timeGrouping)}\n \n \n }\n />\n }\n />\n \n \n \n\n \n \n \n {strings(stringKeys.dashboard.filters.trainingStatus)}\n \n \n }\n />\n }\n />\n \n \n \n\n {!userRoles.some((r) => r === DataConsumer) && (\n \n \n \n )}\n\n \n \n \n \n \n \n\n \n \n {collectionsTypes[\"all\"]}\n \n {collectionsTypes[\"dataCollector\"]}\n \n \n {collectionsTypes[\"dataCollectionPoint\"]}\n \n \n \n\n {/* {organizations.length > 1 && (\n \n \n \n {strings(stringKeys.dashboard.filters.organizationsAll)}\n \n\n {organizations.map((organization) => (\n \n {organization.name}\n \n ))}\n \n \n )} */}\n \n );\n};\n\nexport const ProjectsDashboardFilters = ({\n filters,\n healthRisks,\n locations,\n organizations,\n onChange,\n isFetching,\n isGeneratingPdf,\n isFilterExpanded,\n setIsFilterExpanded,\n userRoles,\n rtl,\n}) => {\n //Reducer for local filters state\n const [localFilters, updateLocalFilters] = useLocalFilters(filters);\n\n useEffect(() => {\n updateLocalFilters(filters);\n }, [filters]);\n\n const classes = useStyles();\n const isMediumScreen = useMediaQuery((theme) => theme.breakpoints.down(\"sm\"));\n\n //Syncs locations from redux store with filter state and sets label for location filter to 'All' or \"Region (+n)\"\n //Neccecary if locations are added, edited or removed, to make all filters checked\n const [locationsFilterLabel] = useLocationFilter(\n locations,\n localFilters,\n updateLocalFilters,\n );\n\n const collectionsTypes = {\n all: strings(stringKeys.dashboard.filters.allReportsType),\n dataCollector: strings(\n stringKeys.dashboard.filters.dataCollectorReportsType,\n ),\n dataCollectionPoint: strings(\n stringKeys.dashboard.filters.dataCollectionPointReportsType,\n ),\n };\n\n //Fetches new data based on changes in filters\n const handleFiltersChange = (filters) => {\n trackEvent(\"ProjectDashboardFilterChange\", { filters });\n if (isMediumScreen) {\n updateLocalFilters(filters);\n } else {\n onChange(updateLocalFilters(filters));\n }\n };\n\n const showResults = () => {\n onChange(updateLocalFilters(localFilters));\n };\n\n const allLocationsSelected = () =>\n !localFilters.locations ||\n localFilters.locations.regionIds.length === locations.regions.length;\n\n if (!localFilters) {\n return null;\n }\n\n if (isMediumScreen) {\n if (isFetching) {\n return ;\n }\n return (\n \n \n }\n showResults={showResults}\n />\n \n );\n }\n\n return (\n \n {isFetching && }\n \n \n \n \n {strings(stringKeys.dashboard.filters.title)}\n \n }\n className={isFilterExpanded ? classes.filterTitle : null}\n />\n \n {!isGeneratingPdf && !isFilterExpanded && (\n \n \n }\n label={`${convertToLocalDate(localFilters.startDate).format(\n \"YYYY-MM-DD\",\n )} - ${convertToLocalDate(localFilters.endDate).format(\n \"YYYY-MM-DD\",\n )}`}\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n \n setIsFilterExpanded(!isFilterExpanded)}\n label={\n localFilters.groupingType === \"Day\"\n ? strings(stringKeys.dashboard.filters.timeGroupingDay)\n : strings(stringKeys.dashboard.filters.timeGroupingWeek)\n }\n />\n \n \n )}\n {!isGeneratingPdf && !isFilterExpanded && !allLocationsSelected() && (\n \n setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n localFilters.healthRiskId && (\n \n hr.id === localFilters.healthRiskId,\n )[0].name\n }\n onDelete={() => handleFiltersChange({ healthRiskId: null })}\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n localFilters.dataCollectorType !== \"all\" && (\n \n \n handleFiltersChange({ dataCollectorType: \"all\" })\n }\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n\n {/* See comment below, (organization filter comment), explaining commented out code */}\n {/* {!isFilterExpanded && localFilters.organizationId && (\n \n o.id === localFilters.organizationId,\n )[0].name\n }\n onDelete={() => handleFiltersChange({ organizationId: null })}\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )} */}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n !userRoles.some((r) => r === DataConsumer) &&\n localFilters.reportStatus.kept && (\n \n \n handleFiltersChange({\n reportStatus: {\n ...localFilters.reportStatus,\n kept: false,\n },\n })\n }\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n !userRoles.some((r) => r === DataConsumer) &&\n localFilters.reportStatus.dismissed && (\n \n \n handleFiltersChange({\n reportStatus: {\n ...localFilters.reportStatus,\n dismissed: false,\n },\n })\n }\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n !userRoles.some((r) => r === DataConsumer) &&\n localFilters.reportStatus.notCrossChecked && (\n \n \n handleFiltersChange({\n reportStatus: {\n ...localFilters.reportStatus,\n notCrossChecked: false,\n },\n })\n }\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n !userRoles.some((r) => r === DataConsumer) &&\n localFilters.trainingStatus !== \"Trained\" && (\n \n \n handleFiltersChange({\n ...localFilters,\n trainingStatus: \"Trained\",\n })\n }\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n \n setIsFilterExpanded(!isFilterExpanded)}\n >\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import styles from \"./ProjectsDashboardNumbers.module.scss\";\n\nimport React from \"react\";\nimport { Grid, Card, CardContent, CardHeader, Typography, useMediaQuery } from \"@material-ui/core\";\nimport { Loading } from \"../../common/loading/Loading\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nexport const ProjectsDashboardNumbers = ({\n isFetching,\n projectSummary,\n reportsType,\n isMapExpanded\n}) => {\n const isSmallScreen = useMediaQuery(theme => theme.breakpoints.down(\"sm\"));\n\n if (isFetching || !projectSummary) {\n return ;\n }\n\n const cardSizes = {\n xs: isSmallScreen || isMapExpanded ? 12 : 6,\n }\n\n const renderNumber = (label, value, minimalSpacing) => (\n \n \n {label}\n \n \n {value}\n \n \n );\n\n return (\n \n \n \n {strings(stringKeys.dashboard.numbers.reportCountTitle)}}\n />\n \n {renderNumber(\n strings(stringKeys.dashboard.numbers.totalReportCount),\n projectSummary.totalReportCount,\n true\n )}\n \n \n \n\n \n \n {strings(stringKeys.dashboard.dataCollectors)}} />\n \n {renderNumber(\n strings(stringKeys.dashboard.activeDataCollectorCount),\n projectSummary.activeDataCollectorCount,\n true\n )}\n \n \n \n\n {reportsType === \"dataCollectionPoint\" && (\n \n \n {strings(stringKeys.dashboard.dataCollectionPoints)}}\n />\n \n {renderNumber(\n strings(stringKeys.dashboard.referredToHospitalCount),\n projectSummary.dataCollectionPointSummary\n .referredToHospitalCount,\n )}\n \n \n \n )}\n\n {reportsType !== \"dataCollectionPoint\" && (\n \n \n {strings(stringKeys.dashboard.alertsSummary)}} />\n \n {renderNumber(\n strings(stringKeys.dashboard.numbers.openAlerts),\n projectSummary.alertsSummary.open,\n )}\n {renderNumber(\n strings(stringKeys.dashboard.numbers.escalatedAlerts),\n projectSummary.alertsSummary.escalated,\n )}\n {renderNumber(\n strings(stringKeys.dashboard.numbers.closedAlerts),\n projectSummary.alertsSummary.closed,\n )}\n {renderNumber(\n strings(stringKeys.dashboard.numbers.dismissedAlerts),\n projectSummary.alertsSummary.dismissed,\n )}\n \n \n \n )}\n\n \n \n {strings(stringKeys.dashboard.geographicalCoverageSummary)}}\n />\n \n {renderNumber(\n strings(stringKeys.dashboard.numbers.numberOfVillages),\n projectSummary.numberOfVillages,\n )}\n {renderNumber(\n strings(stringKeys.dashboard.numbers.numberOfDistricts),\n projectSummary.numberOfDistricts,\n )}\n \n \n \n \n );\n};\n","import styles from './MarkerClusterComponent.module.scss';\nimport { Marker, Popup } from \"react-leaflet\";\nimport MarkerClusterGroup from 'react-leaflet-markercluster';\nimport { stringKeys, strings } from '../../strings';\nimport { Loading } from '../common/loading/Loading';\n\nexport const MarkerClusterComponent = ({ data, details, detailsFetching, createIcon, createClusterIcon, handleMarkerClick }) => {\n\n return (\n \n {data.filter(d => d.reportsCount > 0).map(point =>\n \n \n
\n {!detailsFetching\n ? (\n
\n {details && details.map(h => (\n
\n
{h.name}:
\n
{h.value} {strings(h.value === 1 ? stringKeys.reportsMap.report : stringKeys.reportsMap.reports)}
\n
\n ))}\n
\n )\n : ()\n }\n
\n
\n \n )}\n \n );\n}","import React, { useEffect, useState, useRef } from 'react';\nimport { MapContainer, TileLayer, ScaleControl, useMap } from 'react-leaflet';\nimport { calculateBounds, calculateCenter, calculateIconSize } from '../../utils/map';\nimport { TextIcon } from \"../common/map/MarkerIcon\";\nimport { MarkerClusterComponent } from \"./MarkerClusterComponent\";\n\nexport const ReportsMap = ({ data, details, detailsFetching, onMarkerClick }) => {\n const [bounds, setBounds] = useState(null);\n const [center, setCenter] = useState(null);\n const [zoom, setZoom] = useState(2);\n const [totalReports, setTotalReports] = useState(null);\n const [hasInteractedWithMap, setHasInteractedWithMap] = useState(false);\n\n useEffect(() => {\n if (!data) {\n return;\n }\n setHasInteractedWithMap(false);\n const totalReportCount = data.reduce((a, d) => a + d.reportsCount, 0);\n setTotalReports(totalReportCount);\n\n // If there are no reports zoom is decreased creating a more generic map.\n setZoom(totalReportCount >= 1 ? 5 : 2);\n setBounds(data.length > 1 ? calculateBounds(data) : null); \n setCenter(data.length > 1 ? null : calculateCenter(data.map(l => ({ lat: l.location.latitude, lng: l.location.longitude }))));\n }, [data]);\n\n // Re-center / update map bounds when the center, bounds or map change.\n const MapViewController = (center) => {\n const map = useMap();\n \n // Avoid updates when user is interacting with the map. \n useEffect(() => {\n if(!hasInteractedWithMap) {\n if (center.center) {\n // If there are no reports, use [0,0] as a default value for a more generic world map.\n const centerLatLong = totalReports > 0 ? center.center : [20,0];\n map.setView(centerLatLong, zoom);\n }\n if (bounds) {\n map.fitBounds(bounds);\n }\n }\n }, [center, map, bounds]);\n\n // Returns null such that it can be rendered as a react component.\n return null;\n }\n\n const createClusterIcon = (cluster) => {\n const count = cluster.getAllChildMarkers().reduce((sum, item) => item.options.reportsCount + sum, 0);\n return new TextIcon({\n size: calculateIconSize(count, totalReports),\n text: count\n });\n }\n\n const createIcon = (count) => {\n return new TextIcon({\n size: calculateIconSize(count, totalReports),\n text: count\n });\n }\n\n const handleMarkerClick = e => {\n setHasInteractedWithMap(true);\n onMarkerClick(e.latlng.lat, e.latlng.lng);\n }\n\n let resizeObserver = useRef(null);\n\n const setMap = map => {\n resizeObserver.current = new ResizeObserver(() => {\n map.invalidateSize();\n });\n const container = document.getElementById(\"map-container\");\n resizeObserver.current.observe(container);\n };\n\n return (!!center || !!bounds) && (\n \n \n\n \n\n \n {/* CenterMapController must be added as a component since the useMap hook must be initialized inside a MapContainer.*/}\n \n \n );\n}\n","import { useState } from \"react\";\nimport { trackEvent } from \"./appInsightsHelper\";\n\nconst useHoverChartTracking = () => {\n const [hasHoveredChart, setHasHoveredChart] = useState(false);\n const trackHoveredChart = (chartName) => {\n if (!hasHoveredChart){\n trackEvent(chartName);\n setHasHoveredChart(true)};\n };\n\n return trackHoveredChart;\n};\n\nexport default useHoverChartTracking;\n","import React from \"react\";\nimport { ReportsMap } from \"../maps/ReportsMap\";\nimport useHoverChartTracking from \"../../utils/useHoverChartTracking\";\n\nexport const DashboardReportsMap = ({\n data,\n details,\n detailsFetching,\n getReportHealthRisks,\n}) => {\n const trackHoveredChart = useHoverChartTracking();\n return (\n
trackHoveredChart(\"hoveredReportsMap\")} onTouchStart={() => trackHoveredChart(\"hoveredReportsMap\")}>\n \n
\n );\n};\n","import React from \"react\";\nimport { Card, CardContent, CardHeader, Typography } from \"@material-ui/core\";\nimport Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport { strings, stringKeys } from \"../../strings\";\nimport useHoverChartTracking from \"../../utils/useHoverChartTracking\";\n\nconst getOptions = (valuesLabel, series, categories, groupingType) => ({\n chart: {\n type: \"column\",\n backgroundColor: \"transparent\",\n style: {\n fontFamily: \"Arial\",\n },\n },\n title: {\n text: \"\",\n },\n xAxis: {\n categories: categories,\n labels: {\n formatter: function () {\n // Display only week, input data format \"yyyy/MM\", output format \"MM\"\n if (groupingType === \"Week\") {\n let weekWithoutYear = this.value.split(\"/\")[1]\n return weekWithoutYear;\n }\n return this.value;\n },\n },\n },\n yAxis: {\n title: {\n text: valuesLabel,\n },\n allowDecimals: false,\n },\n legend: {\n enabled: true,\n itemStyle: { fontWeight: \"regular\" },\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n column: {\n stacking: \"normal\",\n },\n },\n tooltip: {\n headerFormat: \"\",\n pointFormat: \"{series.name}: {point.y}\",\n },\n colors: [\n \"#00a0dc\",\n \"#a175ca\",\n \"#47c79a\",\n \"#72d5fb\",\n \"#c37f8d\",\n \"#c3bb7f\",\n \"#e4d144\",\n \"#078e5e\",\n \"#ceb5ba\",\n \"#c2b5ce\",\n \"#e0c8af\",\n ],\n series,\n});\n\nexport const DashboardReportChart = ({ data, groupingType }) => {\n const trackHoveredChart = useHoverChartTracking();\n const resizeChart = (element) => {\n element && element.chart.reflow();\n };\n\n const categories = data.allPeriods;\n const healthRisks = data.healthRisks.length\n ? data.healthRisks\n : [{ healthRiskName: \"\", periods: [] }];\n\n const series = healthRisks.map((healthRisk) => ({\n name:\n healthRisk.healthRiskName === \"(rest)\"\n ? strings(stringKeys.dashboard.reportsPerHealthRisk.rest, true)\n : healthRisk.healthRiskName,\n data: data.allPeriods.map(\n (period) =>\n healthRisk.periods\n .filter((p) => p.period === period)\n .map((p) => p.count)\n .find((_) => true) || 0,\n ),\n }));\n\n const chartData = getOptions(\n strings(stringKeys.dashboard.reportsPerHealthRisk.numberOfReports, true),\n series,\n categories,\n groupingType,\n );\n\n return (\n trackHoveredChart(\"hoveredReportChart\")} onTouchStart={trackHoveredChart(\"hoveredReportChart\")}>\n {strings(stringKeys.dashboard.reportsPerHealthRisk.title)}}/>\n \n \n \n \n );\n};\n","import React from \"react\";\nimport { Card, CardContent, CardHeader, Typography } from \"@material-ui/core\";\nimport Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport { strings, stringKeys } from \"../../strings\";\nimport useHoverChartTracking from \"../../utils/useHoverChartTracking\";\n\nconst getOptions = (valuesLabel, series, categories, groupingType) => ({\n chart: {\n type: \"column\",\n backgroundColor: \"transparent\",\n style: {\n fontFamily: \"Arial\",\n },\n },\n title: {\n text: \"\",\n },\n xAxis: {\n categories: categories,\n labels: {\n formatter: function () {\n // Display only week, input data format \"yyyy/MM\", output format \"MM\"\n if (groupingType === \"Week\") {\n let weekWithoutYear = this.value.split(\"/\")[1]\n return weekWithoutYear;\n }\n return this.value;\n },\n },\n },\n yAxis: {\n title: {\n text: valuesLabel,\n },\n allowDecimals: false,\n },\n legend: {\n enabled: true,\n itemStyle: { fontWeight: \"regular\" },\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n column: {\n stacking: \"normal\",\n },\n },\n tooltip: {\n headerFormat: \"\",\n pointFormat: \"{series.name}: {point.y}\",\n },\n series,\n});\n\nexport const DashboardReportSexAgeChart = ({ data, groupingType }) => {\n const trackHoveredChart = useHoverChartTracking();\n const categories = data.map((d) => d.period);\n\n const series = [\n {\n name: strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.femalesAbove5,\n true,\n ),\n data: data.map((d) => d.countFemalesAtLeastFive),\n color: \"#078e5e\",\n },\n {\n name: strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.femalesBelow5,\n true,\n ),\n data: data.map((d) => d.countFemalesBelowFive),\n color: \"#47c79a\",\n },\n {\n name: strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.malesAbove5,\n true,\n ),\n data: data.map((d) => d.countMalesAtLeastFive),\n color: \"#00a0dc\",\n },\n {\n name: strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.malesBelow5,\n true,\n ),\n data: data.map((d) => d.countMalesBelowFive),\n color: \"#72d5fb\",\n },\n {\n name: strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.unspecifiedSexAndAge,\n true,\n ),\n data: data.map((d) => d.countUnspecifiedSexAndAge),\n color: \"#c2b5ce\",\n },\n ];\n\n const chartData = getOptions(\n strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.numberOfReports,\n true,\n ),\n series,\n categories,\n groupingType,\n );\n return (\n trackHoveredChart(\"hoveredReportSexAgeChart\")} onTouchStart={() => trackHoveredChart(\"hoveredReportSexAgeChart\")}>\n {strings(stringKeys.dashboard.reportsPerFeatureAndDate.title)}}/>\n \n element && element.chart.reflow()}\n options={chartData}\n />\n \n \n );\n};\n","import styles from \"./DashboardReportSexAgeTable.module.scss\";\n\nimport React from \"react\";\nimport {\n Card,\n CardContent,\n CardHeader,\n Table,\n TableBody,\n TableCell,\n TableRow,\n Typography,\n TableContainer,\n} from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../strings\";\nimport useHoverChartTracking from \"../../utils/useHoverChartTracking\";\n\nexport const DashboardReportSexAgeTable = ({ data }) => {\n const trackHoveredChart = useHoverChartTracking();\n\n return (\n trackHoveredChart(\"hoveredReportSexAgeTable\")}\n onTouchStart={() => trackHoveredChart(\"hoveredReportSexAgeTable\")}\n >\n \n {strings(stringKeys.dashboard.reportsPerFeature.title)}\n \n }\n />\n \n \n \n \n \n \n \n {strings(stringKeys.dashboard.reportsPerFeature.female)}\n \n \n {strings(stringKeys.dashboard.reportsPerFeature.male)}\n \n \n {strings(\n stringKeys.dashboard.reportsPerFeature.unspecifiedSex,\n )}\n \n \n {strings(stringKeys.dashboard.reportsPerFeature.total)}\n \n \n \n \n {strings(stringKeys.dashboard.reportsPerFeature.below5)}\n \n {data.countFemalesBelowFive}\n {data.countMalesBelowFive}\n -\n \n {data.countFemalesBelowFive + data.countMalesBelowFive}\n \n \n \n \n {strings(stringKeys.dashboard.reportsPerFeature.above5)}\n \n {data.countFemalesAtLeastFive}\n {data.countMalesAtLeastFive}\n -\n \n {data.countFemalesAtLeastFive + data.countMalesAtLeastFive}\n \n \n \n \n {strings(\n stringKeys.dashboard.reportsPerFeature.unspecifiedAge,\n )}\n \n -\n -\n {data.countUnspecifiedSexAndAge}\n {data.countUnspecifiedSexAndAge}\n \n \n \n {strings(stringKeys.dashboard.reportsPerFeature.total)}\n \n \n {data.countFemalesBelowFive + data.countFemalesAtLeastFive}\n \n \n {data.countMalesBelowFive + data.countMalesAtLeastFive}\n \n {data.countUnspecifiedSexAndAge}\n \n {data.countFemalesBelowFive +\n data.countFemalesAtLeastFive +\n data.countMalesBelowFive +\n data.countMalesAtLeastFive +\n data.countUnspecifiedSexAndAge}\n \n \n \n
\n
\n
\n \n );\n};\n","import React from \"react\";\nimport { CardContent, Card, CardHeader } from \"@material-ui/core\";\nimport Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport { strings, stringKeys } from \"../../strings\";\n\nconst getOptions = (valuesLabel, series, categories) => ({\n chart: {\n type: \"column\",\n backgroundColor: \"transparent\",\n style: {\n fontFamily: \"Arial\",\n },\n },\n title: {\n text: \"\",\n },\n xAxis: {\n categories: categories,\n },\n yAxis: {\n title: {\n text: valuesLabel,\n },\n allowDecimals: false,\n },\n legend: {\n enabled: true,\n itemStyle: { fontWeight: \"regular\" },\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n column: {\n stacking: \"normal\",\n },\n },\n tooltip: {\n headerFormat: \"\",\n pointFormat: \"{series.name}: {point.y}\",\n },\n series,\n});\n\nexport const DashboardDataCollectionPointChart = ({ data }) => {\n const categories = data.map((d) => d.period);\n\n const series = [\n {\n name: strings(\n stringKeys.dashboard.dataCollectionPointReportsByDate\n .referredToHospitalCount,\n true,\n ),\n data: data.map((d) => d.referredCount),\n color: \"#078e5e\",\n },\n \n ];\n\n const chartData = getOptions(\n strings(\n stringKeys.dashboard.dataCollectionPointReportsByDate.numberOfReports,\n true,\n ),\n series,\n categories,\n );\n\n return (\n \n \n \n element && element.chart.reflow()}\n options={chartData}\n />\n \n \n );\n};\n","import React from \"react\";\nimport { Card, CardContent, CardHeader, Typography } from \"@material-ui/core\";\nimport Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport { strings, stringKeys } from \"../../strings\";\nimport useHoverChartTracking from \"../../utils/useHoverChartTracking\";\n\nconst getOptions = (valuesLabel, series, categories, groupingType) => ({\n chart: {\n type: \"column\",\n backgroundColor: \"transparent\",\n style: {\n fontFamily: \"Arial\",\n },\n },\n title: {\n text: \"\",\n },\n xAxis: {\n categories: categories,\n labels: {\n formatter: function () {\n // Display only week, input data format \"yyyy/MM\", output format \"MM\"\n if (groupingType === \"Week\") {\n let weekWithoutYear = this.value.split(\"/\")[1]\n return weekWithoutYear;\n }\n return this.value;\n },\n },\n },\n yAxis: {\n title: {\n text: valuesLabel,\n },\n allowDecimals: false,\n },\n legend: {\n enabled: true,\n itemStyle: { fontWeight: \"regular\" },\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n column: {\n stacking: \"normal\",\n },\n },\n tooltip: {\n headerFormat: \"\",\n pointFormat: \"{series.name}: {point.y}\",\n },\n colors: [\n \"#00a0dc\",\n \"#a175ca\",\n \"#47c79a\",\n \"#72d5fb\",\n \"#c37f8d\",\n \"#c3bb7f\",\n \"#e4d144\",\n \"#078e5e\",\n \"#ceb5ba\",\n \"#c2b5ce\",\n \"#e0c8af\",\n ],\n series,\n});\n\nexport const DashboardReportVillageChart = ({ data, groupingType }) => {\n const trackHoveredChart = useHoverChartTracking();\n const categories = data.allPeriods;\n const villages = data.villages.length\n ? data.villages\n : [{ name: \"\", periods: [] }];\n\n const series = villages.map((village) => ({\n name:\n village.name === \"(rest)\"\n ? strings(stringKeys.dashboard.reportsPerVillageAndDate.rest, true)\n : village.name,\n data: data.allPeriods.map(\n (period) =>\n village.periods\n .filter((p) => p.period === period)\n .map((p) => p.count)\n .find((_) => true) || 0,\n ),\n }));\n\n const chartData = getOptions(\n strings(\n stringKeys.dashboard.reportsPerVillageAndDate.numberOfReports,\n true,\n ),\n series,\n categories,\n groupingType,\n );\n return (\n trackHoveredChart(\"hoveredReportVillageChart\")} onTouchStart={() => trackHoveredChart(\"hoveredReportVillageChart\")}>\n {strings(stringKeys.dashboard.reportsPerVillageAndDate.title)}}/>\n \n element && element.chart.reflow()}\n options={chartData}\n />\n \n \n );\n};\n","import { Grid, Typography, makeStyles, useMediaQuery } from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { RcIcon } from \"../icons/RcIcon\";\n\nconst useStyles = makeStyles((theme) => ({\n mapExpanded: {\n transition: \"0.3s\",\n },\n mapCollapsed: {\n transition: \"0.3s\",\n },\n mapButton: {\n fontSize: \"2rem\",\n position: \"absolute\",\n zIndex: 1000,\n right: \"4%\",\n top: -15,\n \"&:hover\": {\n cursor: \"pointer\",\n },\n },\n}));\n\nexport const MapAndDashboardNumbers = ({\n DashboardNumbers,\n DashboardReportsMap,\n isMapExpanded,\n setIsMapExpanded,\n}) => {\n const classes = useStyles();\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down(\"sm\"));\n\n if (isSmallScreen) {\n return (\n <>\n \n {DashboardNumbers}\n \n \n \n {strings(stringKeys.dashboard.map.title)}\n \n \n \n \n {DashboardReportsMap}\n \n \n \n );\n }\n return (\n <>\n \n \n {strings(stringKeys.dashboard.map.title)}\n \n \n \n \n setIsMapExpanded((prev) => !prev)}\n icon={isMapExpanded ? \"Collapse\" : \"Expand\"}\n />\n \n {DashboardReportsMap}\n \n \n \n {DashboardNumbers}\n \n \n \n );\n};\n","import React from \"react\";\nimport { Card, CardContent, CardHeader, Typography } from \"@material-ui/core\";\nimport Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport { strings, stringKeys } from \"../../strings\";\nimport useHoverChartTracking from \"../../utils/useHoverChartTracking\";\n\nconst getOptions = (valuesLabel, series, categories) => {\n // Calculate maximum absolute value in the series data\n const maxAbsValue = Math.max(\n ...series.flatMap((s) => s.data.map((d) => Math.abs(d))),\n );\n return {\n chart: {\n type: \"bar\",\n },\n title: {\n text: \"\",\n },\n xAxis: {\n categories: categories,\n },\n yAxis: {\n title: {\n text: valuesLabel,\n },\n labels: {\n formatter: function () {\n // Display positive values on the x-axis\n return Math.abs(this.value) + \"%\";\n },\n },\n allowDecimals: false,\n min: -maxAbsValue,\n max: maxAbsValue,\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n series: {\n stacking: \"normal\", // Set to 'normal' for side-by-side bars\n },\n },\n tooltip: {\n formatter: function () {\n // Customize tooltip to display positive values\n return (\n \"\" +\n this.x +\n \"
\" +\n this.series.name +\n \": \" +\n Math.abs(this.y).toFixed(1) +\n \"%\"\n );\n },\n },\n series: series,\n };\n};\n\nexport const DashboardReportSexAgePyramidChart = ({ data }) => {\n const trackHoveredChart = useHoverChartTracking();\n const categories = [\n strings(stringKeys.dashboard.reportsPerFeature.above5, true),\n strings(stringKeys.dashboard.reportsPerFeature.below5, true),\n `${strings(\n stringKeys.dashboard.reportsPerFeature.unspecifiedAge,\n true,\n )} + ${strings(\n stringKeys.dashboard.reportsPerFeature.unspecifiedSex,\n true,\n )}`,\n ];\n const totalNumbers = data.reduce(\n (acc, obj) => {\n acc.countFemalesAtLeastFive += obj.countFemalesAtLeastFive;\n acc.countFemalesBelowFive += obj.countFemalesBelowFive;\n acc.countMalesAtLeastFive += obj.countMalesAtLeastFive;\n acc.countMalesBelowFive += obj.countMalesBelowFive;\n acc.countUnspecifiedSexAndAge += obj.countUnspecifiedSexAndAge;\n return acc;\n },\n {\n countFemalesAtLeastFive: 0,\n countFemalesBelowFive: 0,\n countMalesAtLeastFive: 0,\n countMalesBelowFive: 0,\n countUnspecifiedSexAndAge: 0,\n },\n );\n\n // Calculate total count\n const totalCount =\n totalNumbers.countFemalesAtLeastFive +\n totalNumbers.countFemalesBelowFive +\n totalNumbers.countMalesAtLeastFive +\n totalNumbers.countMalesBelowFive +\n totalNumbers.countUnspecifiedSexAndAge;\n\n // Calculate percentages if there is data\n const femaleAtLeastFivePercentage = totalCount\n ? (totalNumbers.countFemalesAtLeastFive / totalCount) * 100\n : 0;\n const femaleBelowFivePercentage = totalCount\n ? (totalNumbers.countFemalesBelowFive / totalCount) * 100\n : 0;\n const maleAtLeastFivePercentage = totalCount\n ? (totalNumbers.countMalesAtLeastFive / totalCount) * 100\n : 0;\n const maleBelowFivePercentage = totalCount\n ? (totalNumbers.countMalesBelowFive / totalCount) * 100\n : 0;\n const unspecifiedPercentage = totalCount\n ? (totalNumbers.countUnspecifiedSexAndAge / totalCount) * 100\n : 0;\n\n const series = [\n {\n name: strings(stringKeys.reports.sexAgeConstants.female, true),\n stack: \"stack\",\n data: [-femaleAtLeastFivePercentage, -femaleBelowFivePercentage],\n color: \"#078e5e\",\n },\n {\n name: strings(stringKeys.reports.sexAgeConstants.male, true),\n stack: \"stack\",\n data: [maleAtLeastFivePercentage, maleBelowFivePercentage],\n color: \"#72d5fb\",\n },\n ];\n\n const chartData = getOptions(\n strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.percentageOfReportedPeople,\n true,\n ),\n series,\n categories,\n );\n\n return (\n trackHoveredChart(\"hoveredReportSexAgeChart\")}\n onTouchStart={() => trackHoveredChart(\"hoveredReportSexAgeChart\")}\n >\n \n {strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.titlePercentage,\n )}\n \n }\n />\n \n element && element.chart.reflow()}\n options={chartData}\n />\n \n {strings(\n stringKeys.dashboard.reportsPerFeatureAndDate.unspecifiedSexAndAge,\n )}\n : {unspecifiedPercentage.toFixed(1)}%\n \n \n \n );\n};\n","import React, { useState } from \"react\";\nimport {\n Card,\n CardContent,\n CardHeader,\n Typography,\n Chip,\n Box,\n useTheme,\n} from \"@material-ui/core\";\nimport Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\nimport { strings, stringKeys } from \"../../strings\";\nimport useHoverChartTracking from \"../../utils/useHoverChartTracking\";\nimport {\n getDateStringInterval,\n getEpiWeekStringInterval,\n} from \"../../utils/dateStrings\";\nimport { format, parseISO } from \"date-fns\";\n\nconst getOptions = (series, categories, groupingType, theme, yMax = null) => ({\n chart: {\n type: \"column\",\n },\n title: {\n text: \"\",\n },\n xAxis: {\n categories: categories,\n labels: {\n formatter: function () {\n switch (groupingType) {\n case \"Day\":\n const date = parseISO(this.value);\n return `${format(date, \"dd/MM/yy\")}`;\n case \"Week\":\n const yearandWeek = this.value.split(\"/\");\n return categories.length > 25\n ? `W${yearandWeek[1]} Y${yearandWeek[0].slice(-2)}`\n : `W${yearandWeek[1]}
Y${yearandWeek[0].slice(-2)}`;\n }\n },\n },\n tickmarkPlacement: \"on\",\n tickInterval: 1,\n tickWidth: 1,\n lineColor: theme.palette.text.secondary,\n lineWidth: 2,\n tickColor: theme.palette.text.secondary,\n },\n yAxis: {\n title: {\n text: strings(\n stringKeys.dashboard.keptReportsInEscalatedAlerts.yLabel,\n true,\n ),\n },\n allowDecimals: false,\n min: 0,\n max: yMax,\n tickInterval: 1,\n gridLineColor: \"white\",\n lineWidth: 2,\n gridZIndex: 6,\n stackLabels: {\n enabled: true,\n formatter: function () {\n return this.total > 0 ? this.total : null;\n },\n },\n },\n colors: [\n \"#058DC7\",\n \"#50B432\",\n \"#ED561B\",\n \"#DDDF00\",\n \"#24CBE5\",\n \"#64E572\",\n \"#FF9655\",\n \"#FFF263\",\n \"#6AF9C4\",\n ],\n legend: {\n enabled: true,\n itemStyle: { fontWeight: \"regular\" },\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n column: {\n pointPadding: 0,\n borderWidth: 1,\n groupPadding: 0,\n shadow: false,\n stacking: \"normal\",\n animation: false,\n },\n },\n tooltip: {\n headerFormat: \"\",\n useHTML: true,\n formatter: function () {\n switch (groupingType) {\n case \"Day\":\n const date = parseISO(this.x);\n return `
\n ${this.series.name}: ${\n this.y\n }
\n ${format(date, \"d LLL yyyy\")}
`;\n case \"Week\":\n const yearandWeek = this.x.split(\"/\");\n return `
\n ${this.series.name}: ${\n this.y\n }
\n Epi Week ${yearandWeek[1]} Year ${yearandWeek[0].slice(\n -2,\n )}
`;\n }\n },\n style: {\n textAlign: \"center\",\n },\n },\n series,\n});\n\n// Function to parse input data and generate categories and series data for charting.\n// The function takes a data object containing startDateString, endDateString, and groupedReports.\nconst getCategoryAndSeriesData = (data) => {\n // Generate categories as an array of date strings for each day in the interval between startDate and endDate.\n let categories;\n switch (data.dateGroupingType) {\n case \"Week\":\n categories = getEpiWeekStringInterval(\n data.chartStartDateEpiWeekString,\n data.chartEndDateEpiWeekString,\n );\n break;\n case \"Day\":\n categories = getDateStringInterval(\n data.chartStartDateString,\n data.chartEndDateString,\n );\n break;\n default:\n throw new Error(`Invalid date grouping type: ${data.dateGroupingType}`);\n }\n\n // Helper function to aggregate series data based on the categories and input data.\n const getAggregatedSeriesData = (categories, data) => {\n let aggregatedSeries = [];\n // Iterate over each category (date) to find matching data and accumulate counts.\n for (let dateString of categories) {\n const period = data.find((d) => d.period === dateString);\n const count = period ? period.count : 0;\n aggregatedSeries.push(count);\n }\n return aggregatedSeries;\n };\n\n const series = data.groupedReports.map((healthRiskReports) => ({\n healthRiskId: healthRiskReports.healthRiskId,\n name: healthRiskReports.healthRiskName,\n data: getAggregatedSeriesData(categories, healthRiskReports.data),\n }));\n\n return [categories, series];\n};\n\nexport const DashboardKeptReportByHealthRiskChart = ({ data }) => {\n let [categories, series] = getCategoryAndSeriesData(data);\n\n const trackHoveredChart = useHoverChartTracking();\n const resizeChart = (element) => {\n element && element.chart.reflow();\n };\n const [selectedHealthRisk, setSelectedHealthRisk] = useState(null);\n\n const toggleHealthRisk = (healthRiskId = null) => {\n if (healthRiskId === null) {\n setSelectedHealthRisk(null); // Show all health risks\n } else if (selectedHealthRisk !== healthRiskId) {\n setSelectedHealthRisk(healthRiskId); // Toggle a specific health risk\n }\n };\n\n // Find the highest value for y by summing series\n let yMax;\n if (series.length > 0) {\n let maxColumnValues = series.reduce((prev, curr) => {\n const columnValues = prev.data.map((val, idx) => val + curr.data[idx]);\n return { data: columnValues };\n }).data;\n yMax = Math.max(Math.ceil(Math.max(...maxColumnValues) / 5) * 5, 10); // Round Max y up to the closest multiple of 5 (10 minimum)\n }\n\n series =\n selectedHealthRisk != null\n ? series.filter((s) => s.healthRiskId === selectedHealthRisk)\n : series;\n\n const theme = useTheme();\n\n const chartData = getOptions(\n series,\n categories,\n data.dateGroupingType,\n theme,\n yMax,\n );\n\n return (\n trackHoveredChart(\"hoveredKeptReportsHistogramChart\")}\n onTouchStart={trackHoveredChart(\"hoveredKeptReportsHistogramChart\")}\n >\n \n {strings(stringKeys.dashboard.keptReportsInEscalatedAlerts.title)}\n \n }\n subheader={\n \n {`${strings(\n stringKeys.dashboard.keptReportsInEscalatedAlerts\n .timeRangeDescription,\n )} ${format(\n parseISO(data.chartStartDateString),\n \"dd LLL yyyy\",\n )} - ${format(parseISO(data.chartEndDateString), \"dd LLL yyyy\")}`}\n \n }\n />\n \n \n toggleHealthRisk()}\n />\n {data.groupedReports.map((healthRiskReports) => (\n toggleHealthRisk(healthRiskReports.healthRiskId)}\n />\n ))}\n \n \n \n \n );\n};\n","import { eachDayOfInterval, parseISO, format } from \"date-fns\";\n\n// Expects ISO dateStrings with the format \"yyyy-MM-dd\"\n// Example: \"2024-01-01\"\nexport const getDateStringInterval = (startDateString, endDateString) => {\n const startDate = parseISO(startDateString);\n const endDate = parseISO(endDateString);\n\n return eachDayOfInterval({\n start: startDate,\n end: endDate,\n }).map((day) => format(day, \"yyyy-MM-dd\"));\n};\n\n// Expects epiWeekStrings with the format \"YYYY/W\"\n// Example: \"2024/28\"\nexport const getEpiWeekStringInterval = (\n startEpiWeekString,\n endEpiWeekString,\n) => {\n const [startYear, startWeek] = startEpiWeekString\n .split(\"/\")\n .map((x) => parseInt(x));\n const [endYear, endWeek] = endEpiWeekString\n .split(\"/\")\n .map((x) => parseInt(x));\n\n const yearDiff = endYear - startYear;\n const weekDiff = endWeek - startWeek;\n const totalWeekDiff = yearDiff * 52 + weekDiff;\n\n let epiWeekStringInterval = [];\n for (let i = 0; i <= totalWeekDiff; i++) {\n const epiWeek = ((startWeek + i - 1) % 52) + 1;\n const epiYear = startYear + Math.floor((startWeek + i - 1) / 52);\n epiWeekStringInterval.push(`${epiYear}/${epiWeek}`);\n }\n\n return epiWeekStringInterval;\n};\n","import styles from \"./ProjectsDashboardPage.module.scss\";\nimport React, { Fragment, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as projectDashboardActions from \"./logic/projectDashboardActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { ProjectsDashboardFilters } from \"./components/ProjectsDashboardFilters\";\nimport { ProjectsDashboardNumbers } from \"./components/ProjectsDashboardNumbers\";\nimport { DashboardReportsMap } from \"../dashboardCharts/DashboardReportsMap\";\nimport { DashboardReportChart } from \"../dashboardCharts/DashboardReportChart\";\nimport { DashboardReportSexAgeChart } from \"../dashboardCharts/DashboardReportSexAgeChart\";\nimport { DashboardReportSexAgeTable } from \"../dashboardTables/DashboardReportSexAgeTable\";\nimport { DashboardDataCollectionPointChart } from \"../dashboardCharts/DashboardDataCollectionPointChart\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { DashboardReportVillageChart } from \"../dashboardCharts/DashboardReportVillageChart\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport { trackEvent, trackPageView } from \"../../utils/appInsightsHelper\";\nimport { MapAndDashboardNumbers } from \"../dashboard/MapAndDashboardNumbers\";\nimport { DashboardReportSexAgePyramidChart } from \"../dashboardCharts/DashboardReportsSexAgePyramidChart\";\nimport { DashboardKeptReportByHealthRiskChart } from \"../dashboardCharts/DashboardKeptReportByHealthRiskChart\";\n\nconst ProjectDashboardPageComponent = ({\n openDashboard,\n getDashboardData,\n generatePdf,\n isGeneratingPdf,\n projectId,\n isFetching,\n userRoles,\n ...props\n}) => {\n useMount(() => {\n openDashboard(props.match.params.projectId);\n\n // Track page view\n trackPageView(\"ProjectDashboardPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const dashboardElement = useRef(null);\n const [isFilterExpanded, setIsFilterExpanded] = useState(false);\n const [isMapExpanded, setIsMapExpanded] = useState(false);\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down(\"sm\"));\n\n const handleFiltersChange = (filters) => getDashboardData(projectId, filters);\n\n if (!props.filters) {\n return ;\n }\n\n const handleGeneratePdf = () => {\n trackEvent(\"exportProjectDashboardPdf\", { exportFileType: \"Pdf\" });\n\n const initialState = isFilterExpanded;\n setIsFilterExpanded(true);\n const timer = setTimeout(() => {\n generatePdf(dashboardElement.current);\n setIsFilterExpanded(initialState);\n }, 200);\n return () => clearTimeout(timer);\n };\n\n return (\n \n \n \n \n\n {!props.projectSummary ? (\n \n ) : (\n \n \n }\n DashboardReportsMap={\n \n props.getReportHealthRisks(projectId, lat, long)\n }\n />\n }\n isMapExpanded={isMapExpanded}\n setIsMapExpanded={setIsMapExpanded}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {props.filters.reportsType === \"dataCollectionPoint\" && (\n \n \n \n )}\n \n )}\n\n \n \n {strings(stringKeys.dashboard.generatePdf)}\n \n \n \n );\n};\n\nProjectDashboardPageComponent.propTypes = {\n openDashboard: PropTypes.func,\n};\n\nconst mapStateToProps = (state) => ({\n projectId: state.appData.route.params.projectId,\n nationalSocietyId: state.appData.route.params.nationalSocietyId,\n healthRisks: state.projectDashboard.filtersData.healthRisks,\n organizations: state.projectDashboard.filtersData.organizations,\n locations: state.projectDashboard.filtersData.locations,\n projectSummary: state.projectDashboard.projectSummary,\n filters: state.projectDashboard.filters,\n reportsGroupedByHealthRiskAndDate:\n state.projectDashboard.reportsGroupedByHealthRiskAndDate,\n reportsGroupedByFeaturesAndDate:\n state.projectDashboard.reportsGroupedByFeaturesAndDate,\n reportsGroupedByVillageAndDate:\n state.projectDashboard.reportsGroupedByVillageAndDate,\n reportsGroupedByFeatures: state.projectDashboard.reportsGroupedByFeatures,\n reportsGroupedByLocation: state.projectDashboard.reportsGroupedByLocation,\n reportsGroupedByLocationDetails:\n state.projectDashboard.reportsGroupedByLocationDetails,\n reportsGroupedByLocationDetailsFetching:\n state.projectDashboard.reportsGroupedByLocationDetailsFetching,\n dataCollectionPointsReportData:\n state.projectDashboard.dataCollectionPointsReportData,\n keptReportsInEscalatedAlertsHistogramData:\n state.projectDashboard.keptReportsInEscalatedAlertsHistogramData,\n isGeneratingPdf: state.projectDashboard.isGeneratingPdf,\n isFetching: state.projectDashboard.isFetching,\n userRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n openDashboard: projectDashboardActions.openDashboard.invoke,\n getReportHealthRisks: projectDashboardActions.getReportHealthRisks.invoke,\n getDashboardData: projectDashboardActions.getDashboardData.invoke,\n generatePdf: projectDashboardActions.generatePdf.invoke,\n};\n\nexport const ProjectDashboardPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(ProjectDashboardPageComponent),\n);\n","import styles from \"./Table.module.scss\";\nimport React from \"react\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const TableNoData = ({ message }) => (\n
\n {message || strings(stringKeys.table.noData)}\n
\n);\n","import { Chip, Typography } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nconst useStyles = makeStyles(() => ({\n Escalated: {\n backgroundColor: \"#CDDDE7\",\n },\n Closed: {\n backgroundColor: \"#E3E3CF\",\n },\n Dismissed: {\n backgroundColor: \"#E3E3CF\",\n },\n Open: {\n backgroundColor: \"#FFE497\",\n },\n ToEscalate: {\n backgroundColor: \"#FFE497\",\n },\n ToDismiss: {\n backgroundColor: \"#FFE497\",\n },\n}));\n\nexport const AlertStatusChip = ({ status }) => {\n const classes = useStyles();\n return (\n \n {strings(stringKeys.alerts.assess.status[status])}\n \n }\n className={`${classes[status]}`}\n />\n );\n};\n","import styles from \"../../common/table/Table.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport dayjs from \"dayjs\";\nimport TablePager from \"../../common/tablePagination/TablePager\";\nimport { TableNoData } from \"../../common/table/TableNoData\";\nimport { statusColumn, timeTriggeredColumn } from \"../logic/alertsConstants\";\nimport {\n TableSortLabel,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n} from \"@material-ui/core\";\nimport { useSelector } from \"react-redux\";\nimport { AlertStatusChip } from \"../../common/chip/AlertStatusChip\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\nimport { Loading } from \"../../common/loading/Loading\";\n\nexport const AlertsTable = ({\n isListFetching,\n list,\n projectId,\n goToAssessment,\n onChangePage,\n onSort,\n page,\n rowsPerPage,\n totalRows,\n rtl,\n}) => {\n const filters = useSelector((state) => state.alerts.filters);\n\n const handlePageChange = (event, page) => {\n onChangePage(page);\n };\n\n const createSortHandler = (column) => (event) => {\n handleSortChange(event, column);\n };\n\n const handleSortChange = (event, column) => {\n const isAscending = filters.orderBy === column && filters.sortAscending;\n onSort({ ...filters, orderBy: column, sortAscending: !isAscending });\n };\n\n const handleGoToAssessment = (projectId, AlertId) => {\n // Track goToAlertAssessment event\n trackEvent(\"goToAlertAssessment\", { projectId, AlertId });\n goToAssessment(projectId, AlertId);\n };\n\n if (isListFetching) {\n return ;\n }\n\n if (!list.length) {\n return ;\n }\n\n return (\n !!filters && (\n \n \n \n \n \n \n {strings(stringKeys.alerts.list.dateTime)}\n \n \n \n {strings(stringKeys.alerts.list.healthRisk)}\n \n \n {strings(stringKeys.alerts.list.reportCount)}\n \n \n {strings(stringKeys.alerts.list.village)}\n \n \n \n {strings(stringKeys.alerts.list.status)}\n \n \n \n {strings(stringKeys.alerts.list.id)}\n \n \n \n \n {list.map((row) => (\n handleGoToAssessment(projectId, row.id)}\n className={styles.clickableRow}\n >\n \n {dayjs(row.createdAt).format(\"YYYY-MM-DD HH:mm\")}\n \n {row.healthRisk}\n {row.reportCount}\n \n {[\n row.lastReportRegion,\n row.lastReportDistrict,\n row.lastReportVillage,\n row.lastReportZone,\n ]\n .filter((l) => l)\n .join(\", \")}\n \n \n \n \n {row.id}\n \n ))}\n \n
\n \n
\n )\n );\n};\n\nAlertsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default AlertsTable;\n","import {\n Grid,\n TextField,\n MenuItem,\n Card,\n CardContent,\n useMediaQuery,\n useTheme,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport LocationFilter from \"../../common/filters/LocationFilter\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { alertStatusFilters } from \"../logic/alertsConstants\";\nimport { DatePicker } from \"../../forms/DatePicker\";\nimport { convertToLocalDate, convertToUtc } from \"../../../utils/date\";\nimport useLocalFilters from \"../../common/filters/useLocalFilters\";\nimport useLocationFilter from \"../../common/filters/useLocationFilter\";\nimport { DrawerFilter } from \"../../common/filters/DrawerFilter\";\nimport { useEffect } from \"react\";\n\nconst useStyles = makeStyles((theme) => ({\n selectFilterItem: {\n width: \"150px\",\n [theme.breakpoints.down(\"xs\")]: {\n width: \"100%\",\n maxWidth: \"220px\",\n },\n },\n filters: {\n boxShadow: \"#fff 0px 5px 5px 5px\",\n },\n}));\n\nexport const AlertsFilters = ({\n filters,\n locations,\n healthRisks,\n onChange,\n rtl,\n}) => {\n const theme = useTheme();\n const classes = useStyles();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n const isMediumScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n //Reducer for local filters state\n const [localFilters, updateLocalFilters] = useLocalFilters(filters);\n\n //Fetches new data based on changes in filters\n const handleFiltersChange = (filters) => {\n onChange(updateLocalFilters(filters));\n };\n\n useEffect(() => {\n updateLocalFilters(filters);\n }, [filters]);\n\n //Syncs locations from redux store with filter state and sets label for location filter to 'All' or \"Region (+n)\"\n //Neccecary if locations are added, edited or removed, to make all filters checked\n const [locationsFilterLabel] = useLocationFilter(\n locations,\n localFilters,\n updateLocalFilters,\n );\n\n const handleLocationChange = (newValue) => {\n handleFiltersChange({ locations: newValue });\n };\n\n const handleHealthRiskChange = (event) => {\n handleFiltersChange({\n healthRiskId: event.target.value > 0 ? event.target.value : null,\n });\n };\n\n const handleStatusChange = (event) => {\n handleFiltersChange({ status: event.target.value });\n };\n\n const handleDateFromChange = (date) =>\n handleFiltersChange({ startDate: convertToUtc(date) });\n\n const handleDateToChange = (date) =>\n handleFiltersChange({ endDate: convertToUtc(date) });\n\n if (!localFilters || !healthRisks) {\n return null;\n }\n\n const Filter = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n {strings(stringKeys.alerts.filters.healthRisksAll)}\n \n\n {healthRisks.map((hr) => (\n \n \n {hr.name}\n \n \n ))}\n \n \n\n \n \n {Object.values(alertStatusFilters).map((status) => (\n \n {strings(stringKeys.alerts.constants.alertStatus[status])}\n \n ))}\n \n \n \n );\n };\n\n if (isMediumScreen) {\n return (\n \n }\n showResults={handleFiltersChange}\n />\n \n );\n }\n\n return (\n \n \n \n \n \n );\n};\n","import React, { Fragment, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as alertsActions from \"./logic/alertsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport AlertsTable from \"./components/AlertsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { AlertsFilters } from \"./components/AlertsFilters\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { Loading } from \"../common/loading/Loading\";\nimport TableHeader from \"../common/tableHeader/TableHeader\";\nimport { trackEvent, trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst AlertsListPageComponent = ({ openAlertsList, ...props }) => {\n useMount(() => {\n openAlertsList(props.projectId);\n\n // Track page view\n trackPageView(\"AlertsListPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n //useCallback important to avoid infinite loop from useEffect in AlertsFilters\n const handleFilterChange = useCallback(\n (filters) => {\n props.getAlerts(props.projectId, 1, filters); // 1 is the default page number\n },\n [props.getAlerts, props.projectId],\n );\n\n const handleExportToExcel = () => {\n trackEvent(\"exportAlertsExcel\", { exportFileType: \"Excel\" });\n\n props.export(props.projectId, props.filters);\n };\n\n const handlePageChange = (page) => {\n props.getAlerts(props.projectId, page, props.filters);\n };\n\n if (!props.filters) {\n return ;\n }\n\n return (\n \n \n \n \n {strings(stringKeys.alerts.list.export)}\n \n \n \n\n \n\n \n \n );\n};\n\nAlertsListPageComponent.propTypes = {\n getAlerts: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n data: state.alerts.listData,\n isListFetching: state.alerts.listFetching,\n isRemoving: state.alerts.listRemoving,\n filters: state.alerts.filters,\n locations: state.alerts.filtersData.locations,\n healthRisks: state.alerts.filtersData.healthRisks,\n});\n\nconst mapDispatchToProps = {\n openAlertsList: alertsActions.openList.invoke,\n goToAssessment: alertsActions.goToAssessment,\n getAlerts: alertsActions.getAlerts.invoke,\n export: alertsActions.exportAlerts.invoke,\n};\n\nexport const AlertsListPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(AlertsListPageComponent),\n);\n","import styles from \"./DisplayField.module.scss\";\nimport React from \"react\";\n\nexport const DisplayField = ({ label, value, children }) => {\n return (\n
\n
{label}
\n
{value || children}
\n
\n );\n};\n\nexport default DisplayField;\n","import styles from \"./AlertsAssessmentReport.module.scss\";\n\nimport { Fragment } from \"react\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport { stringKeys, strings } from \"../../../strings\";\nimport dayjs from \"dayjs\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport { assessmentStatus } from \"../logic/alertsConstants\";\nimport {\n Button,\n CircularProgress,\n Grid,\n Accordion,\n AccordionDetails,\n AccordionSummary,\n AccordionActions,\n Divider,\n Typography,\n useMediaQuery,\n} from \"@material-ui/core\";\nimport { useSelector } from \"react-redux\";\nimport { Manager, TechnicalAdvisor } from \"../../../authentication/roles\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport LocationOnIcon from \"@material-ui/icons/LocationOn\";\nimport { ReportStatusChip } from \"../../common/chip/ReportStatusChip\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\n\nvar relativeTime = require(\"dayjs/plugin/relativeTime\");\ndayjs.extend(relativeTime);\n\nconst ReportFormLabel = ({ label, value }) => (\n \n {label}\n \n {value}\n \n \n);\n\nexport const AlertsAssessmentReport = ({\n alertId,\n escalatedAt,\n report,\n acceptReport,\n dismissReport,\n resetReport,\n status,\n projectIsClosed,\n rtl,\n}) => {\n const currentUserRoles = useSelector((state) => state.appData.user.roles);\n const showActions =\n status !== assessmentStatus.closed &&\n status !== assessmentStatus.dismissed &&\n report.status === \"Pending\" &&\n !report.isAnonymized;\n const showResetOption =\n status !== assessmentStatus.closed &&\n status !== assessmentStatus.dismissed &&\n (report.status === \"Accepted\" || report.status === \"Rejected\") &&\n (escalatedAt\n ? dayjs(report.acceptedAt || report.rejectedAt).isAfter(\n dayjs(escalatedAt),\n )\n : true) &&\n !report.isAnonymized;\n\n const fromOtherOrg = report.dataCollector == null;\n\n const showSupervisorDetails = currentUserRoles.some(\n (r) => r === Manager || r === TechnicalAdvisor,\n );\n\n const handleAcceptReport = (alertId, reportId) => {\n // track acceptAlertReport event\n trackEvent(\"acceptAlertReport\", { alertId, reportId });\n acceptReport(alertId, reportId);\n };\n\n const handleDismissReport = (alertId, reportId) => {\n // track dismissAlertReport event\n trackEvent(\"dismissAlertReport\", { alertId, reportId });\n dismissReport(alertId, reportId);\n };\n\n const handleResetReport = (alertId, reportId) => {\n // track resetAlertReport event\n trackEvent(\"resetAlertReport\", { alertId, reportId });\n resetReport(alertId, reportId);\n };\n\n const useStyles = makeStyles(() => ({\n accordion: {\n border: \"1px solid #E3E3E3\",\n },\n summary: {\n height: \"60px !important\",\n minHeight: \"60px !important\",\n },\n summarySmallScreen: {\n height: \"80px !important\",\n minHeight: \"80px !important\",\n },\n report: {\n fontWeight: 700,\n },\n chip: {\n padding: rtl ? \"0 0 0 20px\" : \"0 20px 0 0\",\n },\n time: {\n color: \"#4F4F4F\",\n },\n }));\n const theme = useTheme();\n const classes = useStyles();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n return (\n \n }\n >\n \n \n \n {strings(stringKeys.alerts.assess.report.sent)}{\" \"}\n {dayjs(\n dayjs(report.receivedAt).format(\"YYYY-MM-DD HH:mm\"),\n ).fromNow()}\n \n \n \n \n {strings(stringKeys.alerts.assess.report.reportId)} #{report.id}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {report.sex && (\n \n )}\n {report.age && (\n \n )}\n {showSupervisorDetails && (\n \n )}\n \n \n \n \n \n \n \n {`${\n report.district ? report.region + \", \" : report.region\n } ${report.village ? report.district + \", \" : report.district} ${\n report.zone ? report.village + \", \" : report.village\n } ${report.zone ? report.zone : \"\"}`}\n \n \n \n {!projectIsClosed && (\n \n {showActions && (\n \n handleDismissReport(alertId, report.id)}\n isFetching={report.isDismissing}\n regular\n underline\n >\n {strings(stringKeys.alerts.assess.report.dismiss)}\n \n\n handleAcceptReport(alertId, report.id)}\n isFetching={report.isAccepting}\n >\n {strings(stringKeys.alerts.assess.report.accept)}\n \n \n )}\n {showResetOption && (\n \n handleResetReport(alertId, report.id)}\n disabled={report.isResetting}\n >\n {report.isResetting && (\n \n )}\n {strings(stringKeys.alerts.assess.report.reset)}\n \n \n )}\n \n )}\n \n \n \n );\n};\n","import React from \"react\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport DisplayField from \"../../forms/DisplayField\";\nimport FormActions from \"../../forms/formActions/FormActions\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../../common/buttons/cancelButton/CancelButton\";\nimport {\n useTheme,\n DialogTitle,\n Dialog,\n DialogContent,\n useMediaQuery,\n Typography,\n} from \"@material-ui/core\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\n\nexport const AlertsEscalationDialog = ({\n isOpened,\n close,\n alertId,\n isEscalating,\n isFetchingRecipients,\n escalateAlert,\n notificationEmails,\n notificationPhoneNumbers,\n}) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n\n const handleEscalateAlert = (alertId, sendNotification) => {\n // track escalateAlert event\n trackEvent(\"escalateAlert\", {\n alertId: alertId,\n sendNotification: sendNotification,\n });\n\n escalateAlert(alertId, sendNotification);\n };\n\n return (\n \n \n {strings(stringKeys.alerts.assess.alert.escalateConfirmation)}\n \n \n {notificationEmails.length > 0 && (\n \n {notificationEmails.map((email) => (\n
{email}
\n ))}\n \n )}\n\n {notificationPhoneNumbers.length > 0 && (\n \n {notificationPhoneNumbers.map((phoneNumber) => (\n
{phoneNumber}
\n ))}\n \n )}\n\n \n {strings(\n stringKeys.alerts.assess.alert\n .escalateConfirmationInformDataCollectors,\n )}\n \n\n \n \n {strings(stringKeys.form.cancel)}\n \n handleEscalateAlert(alertId, true)}\n >\n {strings(stringKeys.alerts.assess.alert.escalate)}\n \n \n
\n
\n );\n};\n","import React from \"react\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../../common/buttons/cancelButton/CancelButton\";\nimport {\n useTheme,\n DialogTitle,\n Dialog,\n DialogContent,\n useMediaQuery,\n Typography,\n} from \"@material-ui/core\";\nimport FormActions from \"../../forms/formActions/FormActions\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\n\nexport const AlertsCloseDialog = ({\n isOpened,\n close,\n alertId,\n isClosing,\n closeAlert,\n}) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n\n const handleCloseAlert = (alertId) => {\n // Track closeAlert event\n trackEvent(\"closeAlert\", {\n alertId,\n });\n\n closeAlert(alertId);\n };\n\n return (\n \n \n {strings(stringKeys.alerts.assess.alert.closeConfirmation)}\n \n \n \n {strings(stringKeys.alerts.assess.alert.closeDescription)}\n \n \n \n {strings(stringKeys.form.cancel)}\n \n handleCloseAlert(alertId)}\n >\n {strings(stringKeys.alerts.assess.alert.close)}\n \n \n \n \n );\n};\n","import React from \"react\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport FormActions from \"../../forms/formActions/FormActions\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport {\n useTheme,\n Grid,\n DialogTitle,\n Dialog,\n DialogContent,\n useMediaQuery,\n Typography,\n} from \"@material-ui/core\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport CancelButton from \"../../common/buttons/cancelButton/CancelButton\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\n\nexport const AlertsEscalationWithoutNotificationDialog = ({\n isOpened,\n close,\n alertId,\n isEscalating,\n escalateAlert,\n}) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n\n const handleEscalateAlert = (alertId, sendNotification) => {\n // Track escalateAlert event\n trackEvent(\"escalateAlert\", {\n alertId: alertId,\n sendNotification: sendNotification,\n });\n\n escalateAlert(alertId, sendNotification);\n };\n\n return (\n \n \n {strings(\n stringKeys.alerts.assess.alert.escalateWithoutNotificationDialogTitle,\n )}\n \n \n \n \n \n \n \n \n {strings(\n stringKeys.alerts.assess.alert\n .escalateWithoutNotificationConfirmation,\n )}\n \n \n \n\n \n \n {strings(stringKeys.form.cancel)}\n \n handleEscalateAlert(alertId, false)}\n >\n {strings(stringKeys.alerts.assess.alert.escalate)}\n \n \n \n \n );\n};\n","import React from \"react\";\nimport { Button, makeStyles } from \"@material-ui/core\";\nimport ArrowBackIcon from \"@material-ui/icons/ArrowBack\";\nimport ArrowForwardIcon from \"@material-ui/icons/ArrowForward\";\nimport { useSelector } from \"react-redux\";\n\nexport const GoBackToButton = ({ onClick, variant, children, size }) => {\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n const useStyles = makeStyles(() => ({\n icon: {\n marginLeft: useRtlDirection ? 8 : \"initial\",\n marginRight: useRtlDirection ? -4 : \"initial\",\n },\n }));\n const classes = useStyles();\n\n return (\n : }\n classes={{\n startIcon: useRtlDirection && classes.icon,\n }}\n variant={variant}\n color=\"primary\"\n size={size}\n >\n {children}\n \n );\n};\n\nexport default GoBackToButton;\n","import React, { Fragment, useState, useEffect } from \"react\";\nimport { stringKeys, strings } from \"../../../strings\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport { AlertsEscalationDialog } from \"./AlertsEscalationDialog\";\nimport { assessmentStatus } from \"../logic/alertsConstants\";\nimport { AlertsCloseDialog } from \"./AlertsCloseDialog\";\nimport { AlertsEscalationWithoutNotificationDialog } from \"./AlertsEscalationWithoutNotificationDialog\";\nimport CheckboxField from \"../../forms/CheckboxField\";\nimport { validators, createForm } from \"../../../utils/forms\";\nimport { Button, CircularProgress, Grid, Snackbar, useMediaQuery} from \"@material-ui/core\";\nimport { Alert, AlertTitle } from \"@material-ui/lab\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\nimport GoBackToButton from \"../../common/buttons/goBackToButton/GoBackToButton\";\n\nexport const AlertsAssessmentActions = ({\n projectId,\n alertId,\n alertAssessmentStatus,\n isNationalSocietyEidsrEnabled,\n validateEidsrResult,\n hasAccess,\n ...props\n}) => {\n const [escalationDialogOpened, setEscalationDialogOpened] = useState(false);\n const [\n escalationWithoutNotificationDialogOpened,\n setEscalationWithoutNotificationDialogOpened,\n ] = useState(false);\n const [closeDialogOpened, setCloseDialogOpened] = useState(false);\n\n const [openValidationSnackbar, setOpenValidationSnackbar] =\n React.useState(false);\n\n const isSmallScreen = useMediaQuery(theme => theme.breakpoints.down(\"sm\"));\n\n useEffect(() => {\n if (validateEidsrResult) {\n setOpenValidationSnackbar(true);\n }\n }, [validateEidsrResult]);\n\n const handleCloseValidationSnackbar = (event, reason) => {\n if (reason === \"clickaway\") {\n return;\n }\n\n setOpenValidationSnackbar(false);\n };\n\n const [form] = useState(() => {\n const fields = {\n comments: \"\",\n escalateWithoutNotification: false,\n };\n const validation = { comments: [validators.maxLength(500)] };\n return createForm(fields, validation);\n });\n\n const handleEscalateAlert = () => {\n if (form.fields.escalateWithoutNotification.value) {\n setEscalationWithoutNotificationDialogOpened(true);\n } else {\n props.fetchRecipients(alertId);\n setEscalationDialogOpened(true);\n }\n };\n\n const handleDismissAlert = (alertId) => {\n // Track dismissAlert event\n trackEvent(\"dismissAlert\", { alertId: alertId });\n\n props.dismissAlert(alertId);\n };\n\n return (\n \n \n {isNationalSocietyEidsrEnabled && (\n <>\n \n {props.isLoadingValidateEidsr && }\n \n \n \n {strings(\n stringKeys.alerts.assess.alert.eidsrValidation.title,\n )}\n \n
    \n
  • \n {strings(\n stringKeys.alerts.assess.alert.eidsrValidation\n .connection,\n )}\n :{\" \"}\n {validateEidsrResult?.isEidsrApiConnectionRunning\n ? strings(stringKeys.common.boolean.true)\n : strings(stringKeys.common.boolean.false)}\n
  • \n
  • \n {strings(\n stringKeys.alerts.assess.alert.eidsrValidation\n .integrationValid,\n )}\n :{\" \"}\n {validateEidsrResult?.isIntegrationConfigValid\n ? strings(stringKeys.common.boolean.true)\n : strings(stringKeys.common.boolean.false)}{\" \"}\n
  • \n
  • \n {strings(\n stringKeys.alerts.assess.alert.eidsrValidation\n .validReportsCount,\n )}\n :{\" \"}\n {validateEidsrResult?.areReportsValidCount\n ? validateEidsrResult?.areReportsValidCount\n : 0}\n
  • \n
\n

\n {strings(\n stringKeys.alerts.assess.alert.eidsrValidation.tip,\n )}\n

\n \n
\n \n )}\n
\n \n \n props.goToList(projectId)} >\n {strings(stringKeys.alerts.assess.goBack)}\n \n \n {!props.isPendingAlertState && (\n \n {alertAssessmentStatus === assessmentStatus.toEscalate &&\n hasAccess && (\n \n setEscalationDialogOpened(false)}\n />\n\n \n setEscalationWithoutNotificationDialogOpened(false)\n }\n />\n \n \n \n \n \n \n {strings(stringKeys.alerts.assess.alert.escalate)}\n \n \n \n \n )}\n\n {(alertAssessmentStatus === assessmentStatus.toDismiss ||\n alertAssessmentStatus === assessmentStatus.rejected) &&\n hasAccess && (\n handleDismissAlert(alertId)}\n >\n {strings(stringKeys.alerts.assess.alert.dismiss)}\n \n )}\n {alertAssessmentStatus === assessmentStatus.escalated &&\n hasAccess && (\n \n setCloseDialogOpened(false)}\n />\n \n setCloseDialogOpened(true)}>\n {strings(stringKeys.alerts.assess.alert.close)}\n \n \n \n )}\n \n )}\n \n
\n );\n};\n","import React from \"react\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer\n} from \"@material-ui/core\";\nimport { stringKeys, strings } from \"../../../strings\";\nimport styles from \"./AlertNotificationRecipients.module.scss\";\n\nconst AlertNotificationRecipients = ({ recipients }) => {\n return (\n \n \n \n \n \n {strings(stringKeys.alerts.assess.escalatedTo.role)}\n \n \n {strings(stringKeys.alerts.assess.escalatedTo.organization)}\n \n \n {strings(stringKeys.alerts.assess.escalatedTo.phoneNumber)}\n \n {strings(stringKeys.common.email)}\n \n \n \n {recipients.map((recipient, i) => (\n \n {recipient.role}\n {recipient.organization}\n {recipient.phoneNumber}\n {recipient.email}\n \n ))}\n \n
\n
\n );\n};\n\nexport default AlertNotificationRecipients;\n","import styles from \"./AlertsAssessment.module.scss\";\nimport React, { useEffect, useMemo, Fragment } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport * as alertsActions from \"./logic/alertsActions\";\nimport Layout from \"../layout/Layout\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { stringKeys, strings } from \"../../strings\";\nimport DisplayField from \"../forms/DisplayField\";\nimport { AlertsAssessmentReport } from \"./components/AlertsAssessmentReport\";\nimport { assessmentStatus } from \"./logic/alertsConstants\";\nimport { AlertsAssessmentActions } from \"./components/AlertsAssessmentActions\";\nimport AlertNotificationRecipients from \"./components/AlertNotificationRecipients\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { sortByReportStatus } from \"../../utils/sortReportByStatus\";\nimport { AlertStatusChip } from \"../common/chip/AlertStatusChip\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport { TabMenu } from \"../layout/TabMenu\";\n\nconst useStyles = makeStyles((theme) => ({\n infoBox: {\n padding: 10,\n backgroundColor: theme.palette.backgroundDark.main,\n border: \"1px solid #E3E3E3\",\n borderRadius: 5,\n margin: \"20px 0 20px 0\",\n width: \"fit-content\",\n maxWidth: 350,\n },\n}));\n\nconst isLargerThanOne = (number) => number > 1;\n\nconst AlertsAssessmentPageComponent = ({\n alertId,\n projectId,\n data,\n ...props\n}) => {\n useMount(() => {\n props.openAssessment(projectId, alertId);\n\n // Track page view\n trackPageView(\"AlertsAssessmentPage\");\n });\n\n const classes = useStyles();\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const handleReset = (alertId, reportId) => {\n props.resetReport(alertId, reportId);\n };\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n }, [props.data, props.match]);\n\n const hasAccessToActions = useMemo(\n () => !!data && data.reports.filter((r) => !r.isAnonymized).length > 0,\n [data],\n );\n\n if (props.isFetching || !data) {\n return ;\n }\n\n return (\n \n \n \n {props.title}\n \n {`#${alertId}`}\n \n \n \n {props.subTitle}\n \n \n
\n {data.assessmentStatus === assessmentStatus.closed && data.comments && (\n \n )}\n\n \n {data.caseDefinition}\n \n \n \n <>\n \n {strings(stringKeys.alerts.assess.thresholdInfo.threshold)}:\n \n \n {data.healthRiskCountThreshold}{\" \"}\n {isLargerThanOne(data.healthRiskCountThreshold)\n ? strings(stringKeys.alerts.assess.thresholdInfo.reports)\n : strings(stringKeys.alerts.assess.thresholdInfo.report)}\n \n \n {data.healthRiskDaysThreshold && (\n <>\n \n {strings(stringKeys.alerts.assess.thresholdInfo.in)}\n \n \n {data.healthRiskDaysThreshold}{\" \"}\n {isLargerThanOne(data.healthRiskDaysThreshold)\n ? strings(stringKeys.alerts.assess.thresholdInfo.days)\n : strings(stringKeys.alerts.assess.thresholdInfo.day)}\n \n \n )}\n {data.healthRiskKilometersThreshold && (\n <>\n \n {strings(stringKeys.alerts.assess.thresholdInfo.within)}\n \n \n {data.healthRiskKilometersThreshold}{\" \"}\n {strings(stringKeys.alerts.assess.thresholdInfo.kilometers)}\n \n \n )}\n \n \n\n {data.recipientsNotified && data.escalatedTo.length > 0 && (\n <>\n \n \n \n )}\n\n \n {strings(stringKeys.alerts.assess.reports)}\n \n\n \n {data.reports.sort(sortByReportStatus).map((report) => (\n \n \n \n ))}\n \n\n \n
\n
\n );\n};\n\nAlertsAssessmentPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n alertId: ownProps.match.params.alertId,\n isFetching: state.alerts.formFetching,\n isSaving: state.alerts.formSaving,\n isEscalating: state.alerts.formEscalating,\n isClosing: state.alerts.formClosing,\n isDismissing: state.alerts.formDismissing,\n isFetchingRecipients: state.alerts.isFetchingRecipients,\n data: state.alerts.formData,\n notificationEmails: state.alerts.notificationEmails,\n notificationPhoneNumbers: state.alerts.notificationPhoneNumbers,\n projectIsClosed: state.appData.siteMap.parameters.projectIsClosed,\n isPendingAlertState: state.alerts.isPendingAlertState,\n validateEidsrResult: state.alerts.formData?.validateEidsrResult,\n isLoadingValidateEidsr: state.alerts.isLoadingValidateEidsr,\n title: state.appData.siteMap.parameters.title,\n subTitle: state.appData.siteMap.parameters.subTitle,\n});\n\nconst mapDispatchToProps = {\n goToList: alertsActions.goToList,\n openAssessment: alertsActions.openAssessment.invoke,\n acceptReport: alertsActions.acceptReport.invoke,\n dismissReport: alertsActions.dismissReport.invoke,\n resetReport: alertsActions.resetReport.invoke,\n escalateAlert: alertsActions.escalateAlert.invoke,\n closeAlert: alertsActions.closeAlert.invoke,\n dismissAlert: alertsActions.dismissAlert.invoke,\n fetchRecipients: alertsActions.fetchRecipients.invoke,\n validateEidsr: alertsActions.validateEidsr.invoke,\n};\n\nexport const AlertsAssessmentPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(AlertsAssessmentPageComponent),\n);\n","import React, { Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { withLayout } from \"../../utils/layout\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { Loading } from \"../common/loading/Loading\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport Layout from \"../layout/Layout\";\nimport * as projectsActions from \"./logic/projectsActions\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { Grid, Typography, makeStyles } from \"@material-ui/core\";\nimport { SubMenuTitle } from \"../layout/SubMenuTitle\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst useStyles = makeStyles({\n bodyText: {\n fontSize: 16,\n },\n formActions: {\n marginTop: 0,\n },\n});\n\nconst ProjectsOverviewPageComponent = (props) => {\n const classes = useStyles();\n\n useMount(() => {\n props.openOverview(props.nationalSocietyId, props.projectId);\n\n // Track page view\n trackPageView(\"ProjectsOverviewPage\");\n });\n\n if (props.isFetching || !props.data) {\n return ;\n }\n\n return (\n \n \n \n \n \n {!props.isClosed && (\n \n }\n onClick={() =>\n props.openEdition(props.nationalSocietyId, props.projectId)\n }\n roles={accessMap.projects.edit}\n variant={\"contained\"}\n >\n {strings(stringKeys.common.buttons.edit)}\n \n \n )}\n \n \n {strings(stringKeys.project.form.name)}\n \n \n {props.data.name}\n \n\n \n {strings(stringKeys.project.form.allowMultipleOrganizations)}\n \n \n {strings(\n stringKeys.common.boolean[\n String(props.data.allowMultipleOrganizations)\n ],\n )}\n \n \n \n \n );\n};\n\nProjectsOverviewPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isFetching: state.projects.formFetching,\n data: state.projects.overviewData,\n isClosed: state.appData.siteMap.parameters.projectIsClosed,\n callingUserRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n openOverview: projectsActions.openOverview.invoke,\n openEdition: projectsActions.goToEdition,\n goToList: projectsActions.goToList,\n};\n\nexport const ProjectsOverviewPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(ProjectsOverviewPageComponent),\n);\n","import styles from \"./ProjectsOverviewHealthRiskItem.module.scss\";\nimport React, { Fragment } from \"react\";\nimport { stringKeys, strings } from \"../../strings\";\nimport {\n Card,\n CardContent,\n Grid,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\n\nconst useStyles = makeStyles({\n cardBodyText: {\n fontSize: 16,\n },\n cardInfoText: {\n color: \"#a0a0a0\",\n },\n});\n\nexport const ProjectsOverviewHealthRiskItem = ({ projectHealthRisk, rtl }) => {\n const classes = useStyles();\n return (\n \n \n \n {projectHealthRisk.healthRiskCode}\n \n \n {\" \"}\n {projectHealthRisk.healthRiskName}\n \n \n \n \n {strings(stringKeys.project.form.caseDefinition)}\n \n \n {projectHealthRisk.caseDefinition}\n \n \n\n \n \n {strings(stringKeys.project.form.feedbackMessage)}\n \n \n {projectHealthRisk.feedbackMessage}\n \n \n \n \n {strings(stringKeys.project.form.alertsSection)}\n \n\n {(projectHealthRisk.healthRiskCode === 98 ||\n projectHealthRisk.healthRiskCode === 99) && (\n \n {strings(stringKeys.healthRisk.form.noAlertRule)}\n \n )}\n\n {projectHealthRisk.healthRiskCode !== 99 &&\n projectHealthRisk.healthRiskCode !== 98 && (\n \n {projectHealthRisk.alertRuleCountThreshold === 0 && (\n \n {strings(stringKeys.common.boolean.false)}\n \n )}\n\n {projectHealthRisk.alertRuleCountThreshold > 0 && (\n \n \n \n \n \n {strings(\n stringKeys.project.form.alertRuleCountThreshold,\n )}\n :\n \n \n {projectHealthRisk.alertRuleCountThreshold}\n \n \n \n\n {projectHealthRisk.alertRuleCountThreshold > 1 && (\n \n \n \n \n {strings(\n stringKeys.project.form.alertRuleDaysThreshold,\n )}\n :\n \n \n {projectHealthRisk.alertRuleDaysThreshold}\n \n \n {projectHealthRisk.alertRuleDaysThreshold == 1\n ? strings(stringKeys.project.form.alertRuleDay)\n : strings(\n stringKeys.project.form.alertRuleDays,\n )}\n \n \n \n\n \n \n \n {strings(\n stringKeys.project.form\n .alertRuleKilometersThreshold,\n )}\n :\n \n \n {projectHealthRisk.alertRuleKilometersThreshold}\n \n \n {strings(\n stringKeys.project.form.alertRuleKilometer,\n )}\n \n \n \n \n )}\n \n \n )}\n \n )}\n \n \n );\n};\n","import styles from \"./ProjectsOverviewPage.module.scss\";\nimport React, { Fragment } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { withLayout } from \"../../utils/layout\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { Loading } from \"../common/loading/Loading\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport Layout from \"../layout/Layout\";\nimport * as projectsActions from \"./logic/projectsActions\";\nimport { ProjectsOverviewHealthRiskItem } from \"./ProjectsOverviewHealthRiskItem\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { Chip, Grid, Typography, makeStyles } from \"@material-ui/core\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { SubMenuTitle } from \"../layout/SubMenuTitle\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst useStyles = makeStyles({\n formActions: {\n marginTop: 0,\n },\n});\n\nconst ProjectHealthRisksPageComponent = (props) => {\n const classes = useStyles();\n\n useMount(() => {\n props.openHealthRisksOverview(props.nationalSocietyId, props.projectId);\n \n // Track page view\n trackPageView(\"ProjectHealthRisksPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n if (props.isFetching || !props.data) {\n return ;\n }\n\n return (\n \n \n \n \n \n {!props.isClosed && (\n \n }\n onClick={() =>\n props.openHealthRisksEdition(\n props.nationalSocietyId,\n props.projectId,\n )\n }\n roles={accessMap.projects.edit}\n variant={\"contained\"}\n >\n {strings(stringKeys.common.buttons.edit)}\n \n \n )}\n \n {props.data.projectHealthRisks.map((hr) => (\n \n ))}\n \n\n \n \n {strings(stringKeys.project.form.overviewHealthRisksSection)}\n \n \n {props.data.projectHealthRisks.map((hr) => (\n \n \n \n ))}\n \n \n \n \n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isFetching: state.projects.formFetching,\n data: state.projects.overviewData,\n isClosed: state.appData.siteMap.parameters.projectIsClosed,\n callingUserRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n openHealthRisksOverview: projectsActions.openHealthRisksOverview.invoke,\n goToList: projectsActions.goToList,\n openHealthRisksEdition: projectsActions.goToHealthRisksEdition,\n};\n\nexport const ProjectHealthRisksPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(ProjectHealthRisksPageComponent),\n);\n","import React, { useState, Fragment, useEffect, createRef } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as projectsActions from \"./logic/projectsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { MultiSelect } from \"../forms/MultiSelect\";\nimport { ProjectsHealthRiskItem } from \"./ProjectHealthRiskItem\";\nimport { getSaveFormModel } from \"./logic/projectsService\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport { SubMenuTitle } from \"../layout/SubMenuTitle\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectHealthRisksEditPageComponent = (props) => {\n const [healthRiskDataSource, setHealthRiskDataSource] = useState([]);\n const [selectedHealthRisks, setSelectedHealthRisks] = useState([]);\n const [healthRisksFieldTouched, setHealthRisksFieldTouched] = useState(false);\n\n useMount(() => {\n props.openHealthRisksEdition(props.nationalSocietyId, props.projectId);\n \n // Track page view\n trackPageView(\"ProjectHealthRisksEditPage\");\n });\n\n useEffect(() => {\n setHealthRiskDataSource(\n props.healthRisks.map((hr) => ({\n label: hr.healthRiskName,\n value: hr.healthRiskId,\n data: hr,\n })),\n );\n }, [props.healthRisks]);\n\n const [form, setForm] = useState(null);\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n let validation = {\n name: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n };\n\n const refs = {\n name: createRef(),\n };\n\n setForm(createForm(null, validation, refs));\n setSelectedHealthRisks(props.data.projectHealthRisks);\n return () => setForm(null);\n }, [props.data]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const preventSubmit = selectedHealthRisks.length === 1;\n\n if (preventSubmit) {\n setHealthRisksFieldTouched(true);\n }\n\n if (!form.isValid()) {\n Object.values(form.fields)\n .filter((e) => e.error)[0]\n .scrollTo();\n return;\n }\n\n !preventSubmit &&\n props.editHealthRisk(\n props.nationalSocietyId,\n props.projectId,\n getSaveFormModel(form.getValues(), selectedHealthRisks),\n );\n };\n\n const onHealthRiskChange = (value, eventData) => {\n if (eventData.action === \"select-option\") {\n setSelectedHealthRisks([...selectedHealthRisks, eventData.option.data]);\n } else if (\n (eventData.action === \"remove-value\" ||\n eventData.action === \"pop-value\") &&\n eventData.removedValue.data.healthRiskType !== \"Activity\"\n ) {\n setSelectedHealthRisks(\n selectedHealthRisks.filter(\n (hr) => hr.healthRiskId !== eventData.removedValue.value,\n ),\n );\n } else if (eventData.action === \"clear\") {\n setSelectedHealthRisks(\n selectedHealthRisks.filter((hr) => hr.healthRiskType === \"Activity\"),\n );\n }\n };\n\n const getSelectedHealthRiskValue = () =>\n healthRiskDataSource\n .filter((hr) =>\n selectedHealthRisks.some((shr) => shr.healthRiskId === hr.value),\n )\n .sort((a, b) => (a.data.healthRiskType === \"Activity\" ? -1 : 1));\n\n useCustomErrors(form, props.error);\n\n if (props.isFetching || !form) {\n return ;\n }\n\n return (\n \n \n {props.error && }\n
\n \n \n \n \n\n {selectedHealthRisks.length > 0 && (\n \n \n {strings(stringKeys.project.form.healthRisksSection)}\n \n \n )}\n\n {selectedHealthRisks\n .sort((a, b) => a.healthRiskCode - b.healthRiskCode)\n .map((selectedHealthRisk) => (\n \n \n \n ))}\n \n\n \n \n props.goToHealthRisks(props.nationalSocietyId, props.projectId)\n }\n >\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nProjectHealthRisksEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n healthRisks: state.projects.formHealthRisks,\n projectId: ownProps.match.params.projectId,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isFetching: state.projects.formFetching,\n isSaving: state.projects.formSaving,\n data: state.projects.formData,\n error: state.projects.formError,\n});\n\nconst mapDispatchToProps = {\n openHealthRisksEdition: projectsActions.openHealthRisksEdition.invoke,\n editHealthRisk: projectsActions.editHealthRisks.invoke,\n goToHealthRisks: projectsActions.goToHealthRisks,\n};\n\nexport const ProjectHealthRisksEditPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ProjectHealthRisksEditPageComponent),\n);\n","import React from \"react\";\nimport styles from \"./DataCollectorStatusIcon.module.scss\";\nimport { Icon } from \"@material-ui/core\";\n\nexport const DataCollectorStatusIcon = ({ status, icon, rtl }) => (\n \n {icon}\n \n);\n","import styles from \"./DataCollectorsPerformanceTable.module.scss\";\nimport PropTypes from \"prop-types\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { getIconFromStatus } from \"../logic/dataCollectorsService\";\nimport { DataCollectorStatusIcon } from \"../../common/icon/DataCollectorStatusIcon\";\nimport TablePager from \"../../common/tablePagination/TablePager\";\nimport {\n Tooltip,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n} from \"@material-ui/core\";\nimport InfoIcon from \"@material-ui/icons/InfoOutlined\";\nimport { Loading } from \"../../common/loading/Loading\";\n\nexport const DataCollectorsPerformanceTable = ({\n list,\n completeness,\n epiDateRange,\n page,\n rowsPerPage,\n totalRows,\n isListFetching,\n filters,\n onChange,\n rtl,\n}) => {\n const onChangePage = (e, page) => {\n onChange({ type: \"changePage\", pageNumber: page });\n };\n\n const handleTooltipClick = (e) => e.stopPropagation();\n\n const renderTooltipText = (completeness) => {\n let text = strings(\n stringKeys.dataCollectors.performanceList.completenessValueDescription,\n );\n\n if (typeof text === \"string\") {\n // only replace values when not in \"strings editing\" mode\n text = text.replace(\"{{active}}\", completeness.activeDataCollectors);\n text = text.replace(\"{{total}}\", completeness.totalDataCollectors);\n }\n\n return text;\n };\n\n const roundToFixed = (value, decimals) => {\n const multiplier = Math.pow(10, decimals);\n return Math.round(value * multiplier) / multiplier;\n };\n\n const renderPercentage = (active, total) => {\n const percentage = (active * 100) / total;\n return roundToFixed(percentage, 1);\n };\n\n if (isListFetching || !filters || !epiDateRange) {\n return ;\n }\n\n return (\n \n \n \n \n \n {strings(stringKeys.dataCollectors.performanceList.name)}\n \n \n {strings(stringKeys.dataCollectors.performanceList.villageName)}\n \n \n {strings(\n stringKeys.dataCollectors.performanceList.daysSinceLastReport,\n )}\n \n\n {epiDateRange.map((week) => (\n \n
\n {`${strings(\n stringKeys.dataCollectors.performanceList.epiWeek,\n )} ${week.epiWeek}`}\n
\n \n ))}\n
\n
\n \n {!isListFetching &&\n completeness.length > 0 &&\n filters.trainingStatus === \"Trained\" && (\n \n \n \n {strings(\n stringKeys.dataCollectors.performanceList\n .completenessTitle,\n )}\n \n \n \n \n \n \n -\n \n \n -\n \n\n {completeness.map((week) => (\n \n \n {`${renderPercentage(\n week.activeDataCollectors,\n week.totalDataCollectors,\n )} %`}\n \n \n ))}\n \n )}\n {!isListFetching &&\n list.map((row, index) => (\n \n \n {row.name}\n
\n {row.phoneNumber}\n
\n {row.villageName}\n \n {row.daysSinceLastReport > -1 ? row.daysSinceLastReport : \"-\"}\n \n {row.performanceInEpiWeeks.map((week) => (\n \n \n \n ))}\n
\n ))}\n
\n
\n {!!list.length && (\n \n )}\n
\n );\n};\n\nDataCollectorsPerformanceTable.propTypes = {\n isListFetching: PropTypes.bool,\n list: PropTypes.array,\n filters: PropTypes.object,\n getDataCollectorPerformanceList: PropTypes.func,\n};\n\nexport default DataCollectorsPerformanceTable;\n","import { useEffect, useReducer } from \"react\";\nimport {\n Card,\n CardContent,\n TextField,\n MenuItem,\n Grid,\n Radio,\n RadioGroup,\n FormControlLabel,\n InputLabel,\n useTheme,\n useMediaQuery,\n makeStyles,\n} from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport useDebounce from \"../../../utils/debounce\";\nimport * as roles from \"../../../authentication/roles\";\nimport { trainingStatus } from \"../logic/dataCollectorsConstants\";\nimport LocationFilter from \"../../common/filters/LocationFilter\";\nimport useLocalFilters from \"../../common/filters/useLocalFilters\";\nimport useLocationFilter from \"../../common/filters/useLocationFilter\";\nimport { DrawerFilter } from \"../../common/filters/DrawerFilter\";\n\nconst useStyles = makeStyles((theme) => ({\n selectFilterItem: {\n width: \"150px\",\n [theme.breakpoints.down(\"xs\")]: {\n width: \"100%\",\n maxWidth: \"220px\",\n },\n },\n filterRadioGroup: {\n paddingTop: \"5px\",\n },\n radio: {\n height: \"23px\",\n },\n}));\n\nexport const DataCollectorsPerformanceFilters = ({\n onChange,\n filters,\n rtl,\n locations,\n supervisors,\n userRoles,\n}) => {\n //Reducer for local filters state\n const [localFilters, updateLocalFilters] = useLocalFilters(filters);\n\n //Fetches new data based on changes in filters\n const handleFiltersChange = (filters) =>\n onChange(updateLocalFilters(filters));\n\n //Syncs locations from redux store with filter state and sets label for location filter to 'All' or \"Region (+n)\"\n //Neccecary if locations are added, edited or removed, to make all filters checked\n const [locationsFilterLabel] = useLocationFilter(\n locations,\n localFilters,\n updateLocalFilters,\n );\n\n const theme = useTheme();\n const classes = useStyles();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n const isMediumScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n const handleAreaChange = (newValue) =>\n handleFiltersChange({ locations: newValue, pageNumber: 1 });\n\n const handleSupervisorChange = (event) =>\n handleFiltersChange({\n supervisorId: event.target.value === 0 ? null : event.target.value,\n });\n\n const handleTrainingStatusChange = (event) =>\n handleFiltersChange({ trainingStatus: event.target.value });\n\n if (!filters) {\n return null;\n }\n\n const Filter = () => {\n const [name, setName] = useReducer(\n (state, action) => {\n if (state.value !== action) {\n return { changed: true, value: action };\n } else {\n return state;\n }\n },\n { value: localFilters.name, changed: false },\n );\n\n const debouncedName = useDebounce(name, 500);\n\n const handleNameChange = (event) => setName(event.target.value);\n\n useEffect(() => {\n debouncedName.changed &&\n handleFiltersChange({ name: debouncedName.value });\n }, [debouncedName.value]);\n\n return (\n \n \n \n \n \n \n \n\n {!userRoles.some((r) => r === roles.Supervisor) && (\n \n \n \n {strings(stringKeys.dataCollectors.filters.supervisorsAll)}\n \n\n {supervisors.map((supervisor) => (\n \n {supervisor.name}\n \n ))}\n \n \n )}\n\n \n \n {strings(stringKeys.dataCollectors.filters.trainingStatus)}\n \n \n {trainingStatus.map((status) => (\n }\n className={classes.radio}\n label={strings(\n stringKeys.dataCollectors.constants.trainingStatus[status],\n )}\n value={status}\n />\n ))}\n \n \n \n );\n };\n\n if (isMediumScreen) {\n return (\n \n }\n showResults={handleFiltersChange}\n />\n \n );\n }\n\n return (\n \n \n \n \n \n );\n};\n","import styles from \"./DataCollectorsPerformanceTableLegend.module.scss\";\nimport { getIconFromStatus } from \"../logic/dataCollectorsService\";\nimport { performanceStatus } from \"../logic/dataCollectorsConstants\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport { DataCollectorStatusIcon } from \"../../common/icon/DataCollectorStatusIcon\";\n\nexport const DataCollectorsPerformanceTableLegend = ({ rtl }) => (\n
\n \n \n {strings(\n stringKeys.dataCollectors.performanceList.legend.ReportingCorrectly,\n )}\n \n \n \n {strings(\n stringKeys.dataCollectors.performanceList.legend.ReportingWithErrors,\n )}\n \n \n \n {strings(stringKeys.dataCollectors.performanceList.legend.NotReporting)}\n \n
\n);\n","import { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport DataCollectorsPerformanceTable from \"./components/DataCollectorsPerformanceTable\";\nimport * as dataCollectorActions from \"./logic/dataCollectorsActions\";\nimport { DataCollectorsPerformanceFilters } from \"./components/DataCollectorsPerformanceFilters\";\nimport { DataCollectorsPerformanceTableLegend } from \"./components/DataCollectorsPerformanceTableLegend\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport TableHeader from \"../common/tableHeader/TableHeader\";\nimport { trackEvent, trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst DataCollectorsPerformancePageComponent = ({\n projectId,\n getDataCollectorPerformanceList,\n ...props\n}) => {\n useMount(() => {\n props.openDataCollectorsPerformanceList(projectId, props.filters);\n\n // Track page view\n trackPageView(\"DataCollectorsPerformancePage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const handleFilterChange = (filters) =>\n getDataCollectorPerformanceList(projectId, filters);\n\n const handleExportToExcel = () => {\n trackEvent(\"exportDataCollectorsPerformanceExcel\", {\n exportFileType: \"Excel\",\n });\n\n props.exportPerformance(projectId, props.filters);\n };\n\n return (\n \n \n \n \n {strings(stringKeys.dataCollectors.exportExcel)}\n \n \n \n\n \n \n \n \n );\n};\n\nDataCollectorsPerformancePageComponent.propTypes = {\n openDataCollectorsPerformanceList: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n nationalSocietyId: state.dataCollectors.filtersData.nationalSocietyId,\n filters: state.dataCollectors.performanceListFilters,\n listData: state.dataCollectors.performanceListData,\n completeness: state.dataCollectors.completeness,\n isListFetching: state.dataCollectors.performanceListFetching,\n epiDateRange: state.dataCollectors.epiDateRange,\n isExporting: state.dataCollectors.isExporting,\n locations: state.dataCollectors.filtersData.locations,\n supervisors: state.dataCollectors.filtersData.supervisors,\n userRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n openDataCollectorsPerformanceList:\n dataCollectorActions.openDataCollectorsPerformanceList.invoke,\n getDataCollectorPerformanceList:\n dataCollectorActions.getDataCollectorsPerformanceList.invoke,\n exportPerformance: dataCollectorActions.exportDataCollectorPerformance.invoke,\n};\n\nexport const DataCollectorsPerformancePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(DataCollectorsPerformancePageComponent),\n);\n","import React from \"react\";\nimport { DatePicker } from \"../../forms/DatePicker\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport {\n useMediaQuery,\n LinearProgress,\n Chip,\n IconButton,\n Grid,\n TextField,\n MenuItem,\n Card,\n CardContent,\n CardHeader,\n FormControl,\n FormLabel,\n RadioGroup,\n FormControlLabel,\n Radio,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport DateRange from \"@material-ui/icons/DateRange\";\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\nimport { ConditionalCollapse } from \"../../common/conditionalCollapse/ConditionalCollapse\";\nimport { convertToLocalDate, convertToUtc } from \"../../../utils/date\";\nimport { Fragment } from \"react\";\nimport { ReportStatusFilter } from \"../../common/filters/ReportStatusFilter\";\nimport { DataConsumer } from \"../../../authentication/roles\";\nimport LocationFilter from \"../../common/filters/LocationFilter\";\nimport { HealthRiskFilter } from \"../../common/filters/HealthRiskFilter\";\nimport useLocalFilters from \"../../common/filters/useLocalFilters\";\nimport useLocationFilter from \"../../common/filters/useLocationFilter\";\nimport { useEffect } from \"react\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\nimport { DrawerFilter } from \"../../common/filters/DrawerFilter\";\n\nconst useStyles = makeStyles((theme) => ({\n selectFilterItem: {\n width: \"150px\",\n [theme.breakpoints.down(\"xs\")]: {\n width: \"100%\",\n maxWidth: \"220px\",\n },\n },\n filterRadioGroup: {\n paddingTop: \"5px\",\n },\n radio: {\n height: \"23px\",\n },\n filters: {\n boxShadow: \"#fff 0px 5px 5px 5px\",\n padding: \"0px\",\n paddingBottom: \"0px\",\n },\n filterTitle: {\n paddingBottom: \"1px\",\n },\n collapsedFilterBar: {\n padding: \"0px 5px\",\n \"&:last-child\": {\n paddingBottom: \"0px\",\n },\n },\n expandFilterButton: {\n marginLeft: \"auto\",\n \"> button\": {\n transition: \"transform 150ms\",\n },\n },\n rtl: {\n marginLeft: 0,\n marginRight: \"auto\",\n },\n}));\n\nconst Filter = ({\n localFilters,\n handleFiltersChange,\n updateLocalFilters,\n healthRisks,\n locations,\n locationsFilterLabel,\n organizations,\n userRoles,\n rtl,\n collectionsTypes,\n}) => {\n const classes = useStyles();\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down(\"xs\"));\n\n const handleLocationChange = (locations) => {\n handleFiltersChange({ locations: locations });\n };\n const handleHealthRiskChange = (filteredHealthRisks) =>\n handleFiltersChange({ healthRisks: filteredHealthRisks });\n\n {\n /* See comment below, (organization filter comment), explaining commented out code */\n }\n // const handleOrganizationChange = (event) =>\n // handleFiltersChange({\n // organizationId: event.target.value === 0 ? null : event.target.value,\n // });\n\n const handleDateFromChange = (date) =>\n handleFiltersChange({ startDate: convertToUtc(date) });\n\n const handleDateToChange = (date) =>\n handleFiltersChange({ endDate: convertToUtc(date) });\n\n const handleGroupingTypeChange = (event) =>\n handleFiltersChange({ groupingType: event.target.value });\n\n const handleDataCollectorTypeChange = (event) =>\n handleFiltersChange({ dataCollectorType: event.target.value });\n\n const handleReportStatusChange = (event) =>\n handleFiltersChange({\n reportStatus: {\n ...localFilters.reportStatus,\n [event.target.name]: event.target.checked,\n },\n });\n\n return (\n \n \n \n \n\n \n \n \n\n \n \n \n {strings(stringKeys.dashboard.filters.timeGrouping)}\n \n \n }\n />\n }\n />\n \n \n \n\n {!userRoles.some((r) => r === DataConsumer) && (\n \n \n \n )}\n\n \n \n \n\n \n \n \n\n {/* Data collector type filter */}\n \n \n {collectionsTypes[\"all\"]}\n \n {collectionsTypes[\"dataCollector\"]}\n \n \n {collectionsTypes[\"dataCollectionPoint\"]}\n \n \n \n\n {/* NOTE: The organization filter is commented out since the overall multiple organization implementation in Nyss is currently deprecated/unclear of how it should be used. Don't delete commented code before clarification. Commented code causes an error. */}\n {/* {organizations.length > 1 && (\n \n \n \n {strings(stringKeys.dashboard.filters.organizationsAll)}\n \n\n {organizations.map((organization) => (\n \n {organization.name}\n \n ))}\n \n \n )} */}\n \n );\n};\n\n//Filters components should probably fetch data from redux store themselves\nexport const NationalSocietyDashboardFilters = ({\n filters,\n healthRisks,\n organizations,\n locations,\n onChange,\n isFetching,\n userRoles,\n isFilterExpanded,\n setIsFilterExpanded,\n rtl,\n isGeneratingPdf,\n}) => {\n //Reducer for local filters state\n const [localFilters, updateLocalFilters] = useLocalFilters(filters);\n\n useEffect(() => {\n updateLocalFilters(filters);\n }, [filters]);\n\n //Fetches new data based on changes in filters\n const handleFiltersChange = (filters) => {\n trackEvent(\"NsDashboardFilterChange\", { filters });\n if (isMediumScreen) {\n updateLocalFilters(filters);\n } else {\n onChange(updateLocalFilters(filters));\n }\n };\n\n const showResults = () => {\n onChange(updateLocalFilters(localFilters));\n };\n\n //Syncs locations from redux store with filter state and sets label for location filter to 'All' or \"Region (+n)\"\n //Neccecary if locations are added, edited or removed, to make all filters checked\n const [locationsFilterLabel] = useLocationFilter(\n locations,\n localFilters,\n updateLocalFilters,\n );\n\n const classes = useStyles();\n const isMediumScreen = useMediaQuery((theme) => theme.breakpoints.down(\"sm\"));\n\n const collectionsTypes = {\n all: strings(stringKeys.dashboard.filters.allReportsType),\n dataCollector: strings(\n stringKeys.dashboard.filters.dataCollectorReportsType,\n ),\n dataCollectionPoint: strings(\n stringKeys.dashboard.filters.dataCollectionPointReportsType,\n ),\n };\n\n const allLocationsSelected = () =>\n !localFilters.locations ||\n localFilters.locations.regionIds.length === locations.regions.length;\n\n if (!localFilters) {\n return null;\n }\n\n if (isMediumScreen) {\n if (isFetching) {\n return ;\n }\n return (\n \n \n }\n showResults={showResults}\n />\n \n );\n }\n\n return (\n \n {isFetching && }\n \n \n \n \n {strings(stringKeys.dashboard.filters.title)}\n \n }\n className={isFilterExpanded ? classes.filterTitle : null}\n />\n \n {!isGeneratingPdf && !isFilterExpanded && (\n \n \n }\n label={`${convertToLocalDate(localFilters.startDate).format(\n \"YYYY-MM-DD\",\n )} - ${convertToLocalDate(localFilters.endDate).format(\n \"YYYY-MM-DD\",\n )}`}\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n \n setIsFilterExpanded(!isFilterExpanded)}\n />\n \n \n )}\n {!isGeneratingPdf && !isFilterExpanded && !allLocationsSelected() && (\n \n setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n localFilters.healthRiskId && (\n \n hr.id === localFilters.healthRiskId,\n )[0].name\n }\n onDelete={() => handleFiltersChange({ healthRiskId: null })}\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n localFilters.dataCollectorType !== \"all\" && (\n \n \n handleFiltersChange({ dataCollectorType: \"all\" })\n }\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n\n {/* See comment below, (organization filter comment), explaining commented out code */}\n {/* {!isFilterExpanded && localFilters.organizationId && (\n \n o.id === localFilters.organizationId,\n )[0].name\n }\n onDelete={() => handleFiltersChange({ organizationId: null })}\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )} */}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n !userRoles.some((r) => r === DataConsumer) &&\n localFilters.reportStatus.kept && (\n \n \n handleFiltersChange({\n reportStatus: {\n ...localFilters.reportStatus,\n kept: false,\n },\n })\n }\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n {!isGeneratingPdf &&\n !isFilterExpanded &&\n !userRoles.some((r) => r === DataConsumer) &&\n localFilters.reportStatus.notCrossChecked && (\n \n \n handleFiltersChange({\n reportStatus: {\n ...localFilters.reportStatus,\n notCrossChecked: false,\n },\n })\n }\n onClick={() => setIsFilterExpanded(!isFilterExpanded)}\n />\n \n )}\n \n setIsFilterExpanded(!isFilterExpanded)}\n >\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import styles from \"./NationalSocietyDashboardNumbers.module.scss\";\n\nimport React from \"react\";\nimport { Grid, Card, CardContent, CardHeader, Typography, useMediaQuery } from \"@material-ui/core\";\nimport { Loading } from \"../../common/loading/Loading\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nexport const NationalSocietyDashboardNumbers = ({\n isFetching,\n summary,\n reportsType,\n isMapExpanded,\n}) => {\n const isSmallScreen = useMediaQuery(theme => theme.breakpoints.down(\"sm\"));\n\n if (isFetching || !summary) {\n return ;\n }\n\n\n const cardSizes = {\n xs: isSmallScreen || isMapExpanded ? 12 : 6,\n }\n\n const renderNumber = (label, value, minimalSpacing) => (\n \n \n {label}\n \n \n {value}\n \n \n );\n\n return (\n \n \n \n {strings(stringKeys.dashboard.numbers.reportCountTitle)}}\n />\n \n {renderNumber(\n strings(stringKeys.dashboard.numbers.totalReportCount),\n summary.totalReportCount,\n true\n )}\n \n \n \n\n \n \n {strings(stringKeys.dashboard.dataCollectors)}} />\n \n {renderNumber(\n strings(stringKeys.dashboard.activeDataCollectorCount),\n summary.activeDataCollectorCount,\n true\n )}\n \n \n \n\n {reportsType === \"dataCollectionPoint\" && (\n \n \n {strings(stringKeys.dashboard.dataCollectionPoints)}}\n />\n \n {renderNumber(\n strings(stringKeys.dashboard.referredToHospitalCount),\n summary.dataCollectionPointSummary.referredToHospitalCount,\n )}\n \n \n \n )}\n\n {reportsType !== \"dataCollectionPoint\" && (\n \n \n {strings(stringKeys.dashboard.alertsSummary)}} />\n \n {renderNumber(\n strings(stringKeys.dashboard.numbers.openAlerts),\n summary.alertsSummary.open,\n )}\n {renderNumber(\n strings(stringKeys.dashboard.numbers.escalatedAlerts),\n summary.alertsSummary.escalated,\n )}\n {renderNumber(\n strings(stringKeys.dashboard.numbers.closedAlerts),\n summary.alertsSummary.closed,\n )}\n {renderNumber(\n strings(stringKeys.dashboard.numbers.dismissedAlerts),\n summary.alertsSummary.dismissed,\n )}\n \n \n \n )}\n\n \n \n {strings(stringKeys.dashboard.geographicalCoverageSummary)}}\n />\n \n {renderNumber(\n strings(stringKeys.dashboard.numbers.numberOfVillages),\n summary.numberOfVillages,\n )}\n {renderNumber(\n strings(stringKeys.dashboard.numbers.numberOfDistricts),\n summary.numberOfDistricts,\n )}\n \n \n \n \n );\n};\n","import styles from \"./NationalSocietyDashboardPage.module.scss\";\nimport React, { Fragment, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as nationalSocietyDashboardActions from \"./logic/nationalSocietyDashboardActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { NationalSocietyDashboardFilters } from \"./components/NationalSocietyDashboardFilters\";\nimport { NationalSocietyDashboardNumbers } from \"./components/NationalSocietyDashboardNumbers\";\nimport { strings, stringKeys } from \"../../strings\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport { DashboardReportsMap } from \"../dashboardCharts/DashboardReportsMap\";\nimport { DashboardReportVillageChart } from \"../dashboardCharts/DashboardReportVillageChart\";\nimport { DashboardReportChart } from \"../dashboardCharts/DashboardReportChart\";\nimport { DashboardReportSexAgeChart } from \"../dashboardCharts/DashboardReportSexAgeChart\";\nimport { DashboardReportSexAgeTable } from \"../dashboardTables/DashboardReportSexAgeTable\";\nimport { trackEvent, trackPageView } from \"../../utils/appInsightsHelper\";\nimport { MapAndDashboardNumbers } from \"../dashboard/MapAndDashboardNumbers\";\nimport { DashboardReportSexAgePyramidChart } from \"../dashboardCharts/DashboardReportsSexAgePyramidChart\";\nimport { DashboardKeptReportByHealthRiskChart } from \"../dashboardCharts/DashboardKeptReportByHealthRiskChart\";\n\nconst NationalSocietyDashboardPageComponent = ({\n nationalSocietyId,\n openDashboard,\n getDashboardData,\n isGeneratingPdf,\n isFetching,\n userRoles,\n generateNationalSocietyPdf,\n ...props\n}) => {\n useMount(() => {\n openDashboard(props.match.params.nationalSocietyId);\n\n // Track page view\n trackPageView(\"NationalSocietyDashboardPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const dashboardElement = useRef(null);\n const [isFilterExpanded, setIsFilterExpanded] = useState(false);\n const [isMapExpanded, setIsMapExpanded] = useState(false);\n\n const isSmallScreen = useMediaQuery((theme) => theme.breakpoints.down(\"sm\"));\n\n const handleFiltersChange = (filters) =>\n getDashboardData(nationalSocietyId, filters);\n\n if (!props.filters) {\n return ;\n }\n\n const handleGeneratePdf = () => {\n trackEvent(\"exportNationalSocietyDashboardPdf\", { exportFileType: \"Pdf\" });\n\n const initialState = isFilterExpanded;\n setIsFilterExpanded(true);\n const timer = setTimeout(() => {\n generateNationalSocietyPdf(dashboardElement.current);\n setIsFilterExpanded(initialState);\n }, 200);\n return () => clearTimeout(timer);\n };\n\n return (\n \n \n \n \n\n {!props.summary ? (\n \n ) : (\n \n \n }\n DashboardReportsMap={\n \n props.getReportHealthRisks(nationalSocietyId, lat, long)\n }\n />\n }\n isMapExpanded={isMapExpanded}\n setIsMapExpanded={setIsMapExpanded}\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 {strings(stringKeys.dashboard.generatePdf)}\n \n \n \n );\n};\n\nNationalSocietyDashboardPageComponent.propTypes = {\n openDashboard: PropTypes.func,\n};\n\n// Map redux state to component props\nconst mapStateToProps = (state) => ({\n nationalSocietyId: state.appData.route.params.nationalSocietyId,\n healthRisks: state.nationalSocietyDashboard.filtersData.healthRisks,\n organizations: state.nationalSocietyDashboard.filtersData.organizations,\n locations: state.nationalSocietyDashboard.filtersData.locations,\n summary: state.nationalSocietyDashboard.summary,\n filters: state.nationalSocietyDashboard.filters,\n reportsGroupedByLocation:\n state.nationalSocietyDashboard.reportsGroupedByLocation,\n reportsGroupedByLocationDetails:\n state.nationalSocietyDashboard.reportsGroupedByLocationDetails,\n reportsGroupedByVillageAndDate:\n state.nationalSocietyDashboard.reportsGroupedByVillageAndDate,\n reportsGroupedByLocationDetailsFetching:\n state.nationalSocietyDashboard.reportsGroupedByLocationDetailsFetching,\n isGeneratingPdf: state.nationalSocietyDashboard.isGeneratingPdf,\n isFetching: state.nationalSocietyDashboard.isFetching,\n userRoles: state.appData.user.roles,\n reportsGroupedByHealthRiskAndDate:\n state.nationalSocietyDashboard.reportsGroupedByHealthRiskAndDate,\n reportsGroupedByFeaturesAndDate:\n state.nationalSocietyDashboard.reportsGroupedByFeaturesAndDate,\n reportsGroupedByFeatures:\n state.nationalSocietyDashboard.reportsGroupedByFeatures,\n keptReportsInEscalatedAlertsHistogramData:\n state.nationalSocietyDashboard.keptReportsInEscalatedAlertsHistogramData,\n});\n\nconst mapDispatchToProps = {\n openDashboard: nationalSocietyDashboardActions.openDashboard.invoke,\n getReportHealthRisks:\n nationalSocietyDashboardActions.getReportHealthRisks.invoke,\n getDashboardData: nationalSocietyDashboardActions.getDashboardData.invoke,\n generateNationalSocietyPdf:\n nationalSocietyDashboardActions.generateNationalSocietyPdf.invoke,\n};\n\nexport const NationalSocietyDashboardPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietyDashboardPageComponent),\n);\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { StringsEditor } from \"../common/stringsEditor/StringsEditor\";\nimport {\n TableSortLabel,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer\n} from \"@material-ui/core\";\n\nexport const TranslationsTable = ({\n isListFetching,\n languages,\n translations,\n type,\n}) => {\n const [sorting, setSorting] = useState({ orderBy: \"key\" });\n\n if (isListFetching) {\n return ;\n }\n\n const createSortHandler = (column) => (event) => {\n handleSortChange(event, column);\n };\n\n const handleSortChange = (event, column) => {\n const isAscending = sorting.orderBy === column && sorting.sortAscending;\n setSorting({ orderBy: column, sortAscending: !isAscending });\n };\n\n const sortedTranslations = () => {\n const sorted = [...translations].sort((a, b) =>\n sorting.orderBy === \"key\"\n ? a.key > b.key\n ? 1\n : -1\n : a.translations[sorting.orderBy] > b.translations[sorting.orderBy]\n ? 1\n : -1,\n );\n\n return sorting.sortAscending ? sorted : [...sorted].reverse();\n };\n\n return (\n \n \n \n \n \n \n {strings(stringKeys.translations.list.key)}\n \n \n {languages.map((language) => (\n \n \n {language.displayName}\n \n \n ))}\n \n \n \n {sortedTranslations().map((translation) => (\n \n \n \n \n {languages.map((language) => (\n \n {translation.translations[language.languageCode]}\n \n ))}\n \n ))}\n \n
\n
\n );\n};\n\nTranslationsTable.propTypes = {\n isFetching: PropTypes.bool,\n languages: PropTypes.array,\n translation: PropTypes.array,\n type: PropTypes.string,\n};\n\nexport default TranslationsTable;\n","import styles from \"./TranslationsFilters.module.scss\";\nimport React, { useState } from \"react\";\nimport {\n Card,\n CardContent,\n Grid,\n FormControlLabel,\n Checkbox,\n} from \"@material-ui/core\";\n\nexport const TranslationsFilters = ({ onChange }) => {\n const [needsImprovementOnly, setNeedsImprovementOnly] = useState(false);\n\n const handleChange = (e) => {\n setNeedsImprovementOnly(e.target.checked);\n onChange(e.target.checked);\n };\n\n return (\n \n \n \n \n }\n name={\"needsImprovementOnly\"}\n label={\"Only strings that need improvement\"}\n />\n \n \n \n );\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport * as translationsActions from \"./logic/translationsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TranslationsTable from \"./TranslationsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { Fragment } from \"react\";\nimport { TranslationsFilters } from \"./TranslationsFilters\";\nimport { LinearProgress } from \"@material-ui/core\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst TranslationsListPageComponent = (props) => {\n useMount(() => {\n props.openTranslationsList(props.match.path, props.match.params);\n\n // Track page view\n trackPageView(\"TranslationsListPage\");\n });\n\n return (\n \n \n {props.isListFetching && }\n \n \n );\n};\n\nTranslationsListPageComponent.propTypes = {\n isFetching: PropTypes.bool,\n languages: PropTypes.array,\n translations: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n isListFetching: state.translations.listFetching,\n translations: state.translations.listTranslations,\n languages: state.translations.listLanguages,\n});\n\nconst mapDispatchToProps = {\n openTranslationsList: translationsActions.openTranslationsList.invoke,\n getTranslations: translationsActions.getTranslationsList.invoke,\n};\n\nexport const TranslationsListPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(TranslationsListPageComponent),\n);\n","import React, { useState } from \"react\";\nimport { useHistory } from \"react-router\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { stringKeys } from \"../../strings\";\nimport { BaseLayout } from \"./BaseLayout\";\nimport { ROUTE_CHANGED } from \"../app/logic/appConstans\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport { useMount } from \"../../utils/lifecycle\";\n\nexport const NotFoundPage = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n const [error, setError] = useState(stringKeys.error.errorPage.notFound);\n const user = useSelector((state) => state.appData.user);\n\n useMount(() => {\n // Track page view\n trackPageView(\"NotFoundPage\");\n });\n\n const returnHome = () => {\n setError(null);\n if(!user){\n history.push(\"/login\");\n dispatch({ type: ROUTE_CHANGED, url: \"/login\", path: \"/login\", params: {} });\n } \n else {\n history.push(\"/\");\n dispatch({ type: ROUTE_CHANGED, url: \"/\", path: \"/\", params: {} });\n }\n };\n\n return ;\n};\n","import styles from \"../common/table/Table.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer\n} from \"@material-ui/core\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\n\nexport const OrganizationsTable = ({\n isListFetching,\n isRemoving,\n goToEdition,\n remove,\n list,\n nationalSocietyId,\n canModify,\n rtl,\n}) => {\n if (isListFetching) {\n return ;\n }\n\n const showDefaultFlag = (row) =>\n list.length > 1 && row.isDefaultOrganization === true;\n\n return (\n \n \n \n \n {strings(stringKeys.common.name)}\n \n {strings(stringKeys.organization.list.projects)}\n \n \n {strings(stringKeys.organization.list.headManager)}\n \n {canModify && }\n \n \n \n {list.map((row) => (\n \n canModify && goToEdition(nationalSocietyId, row.id)\n }\n className={canModify ? styles.clickableRow : null}\n >\n \n {row.name}{\" \"}\n {showDefaultFlag(row) &&\n strings(stringKeys.organization.list.isDefaultOrganization)}\n \n {row.projects}\n {row.headManager}\n {canModify && (\n \n \n goToEdition(nationalSocietyId, row.id)}\n icon={}\n title={\"Edit\"}\n />\n remove(nationalSocietyId, row.id)}\n confirmationText={strings(\n stringKeys.organization.list.removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.id]}\n />\n \n \n )}\n \n ))}\n \n
\n
\n );\n};\n\nOrganizationsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default OrganizationsTable;\n","import React, { Fragment, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as organizationsActions from \"./logic/organizationsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport OrganizationsTable from \"./OrganizationsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { useCallback } from \"react\";\nimport * as roles from \"../../authentication/roles\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst OrganizationsListPageComponent = (props) => {\n useMount(() => {\n props.openOrganizationsList(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"OrganizationsListPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n const hasAnyRole = useCallback(\n (...roles) =>\n props.callingUserRoles.some((userRole) =>\n roles.some((role) => role === userRole),\n ),\n [props.callingUserRoles],\n );\n\n const canModify = useMemo(\n () =>\n !props.nationalSocietyIsArchived &&\n (hasAnyRole(roles.Administrator, roles.Coordinator) ||\n (!props.nationalSocietyHasCoordinator &&\n props.isCurrentUserHeadManager)),\n [\n props.nationalSocietyHasCoordinator,\n props.isCurrentUserHeadManager,\n props.nationalSocietyIsArchived,\n hasAnyRole,\n ],\n );\n\n return (\n \n {canModify && (\n \n props.goToCreation(props.nationalSocietyId)}\n variant=\"contained\"\n add\n rtl={useRtlDirection}\n >\n {strings(stringKeys.common.buttons.add)}\n \n \n )}\n\n \n \n );\n};\n\nOrganizationsListPageComponent.propTypes = {\n getOrganizations: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n list: state.organizations.listData,\n isListFetching: state.organizations.listFetching,\n isRemoving: state.organizations.listRemoving,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n nationalSocietyHasCoordinator:\n state.appData.siteMap.parameters.nationalSocietyHasCoordinator,\n isCurrentUserHeadManager:\n state.appData.siteMap.parameters.isCurrentUserHeadManager,\n callingUserRoles: state.appData.user.roles,\n});\n\nconst mapDispatchToProps = {\n openOrganizationsList: organizationsActions.openList.invoke,\n goToCreation: organizationsActions.goToCreation,\n goToEdition: organizationsActions.goToEdition,\n remove: organizationsActions.remove.invoke,\n};\n\nexport const OrganizationsListPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(OrganizationsListPageComponent),\n);\n","import React, { useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as organizationsActions from \"./logic/organizationsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { Grid } from \"@material-ui/core\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst OrganizationsCreatePageComponent = (props) => {\n const [form] = useState(() => {\n const fields = {\n name: \"\",\n };\n\n const validation = {\n name: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n };\n\n return createForm(fields, validation);\n });\n\n useCustomErrors(form, props.error);\n\n useMount(() => {\n props.openCreation(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"OrganizationsCreatePage\");\n });\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n props.create(props.nationalSocietyId, {\n name: values.name,\n nationalSocietyId: parseInt(props.nationalSocietyId),\n });\n };\n\n return (\n \n {props.error && !props.error.data && (\n \n )}\n\n
\n \n \n \n \n \n \n props.goToList(props.nationalSocietyId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nOrganizationsCreatePageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isSaving: state.organizations.formSaving,\n error: state.organizations.formError,\n});\n\nconst mapDispatchToProps = {\n openCreation: organizationsActions.openCreation.invoke,\n create: organizationsActions.create.invoke,\n goToList: organizationsActions.goToList,\n};\n\nexport const OrganizationsCreatePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(OrganizationsCreatePageComponent),\n);\n","import React, { useEffect, useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as organizationsActions from \"./logic/organizationsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { Grid } from \"@material-ui/core\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst OrganizationsEditPageComponent = (props) => {\n const [form, setForm] = useState(null);\n\n useMount(() => {\n props.openEdition(props.nationalSocietyId, props.organizationId);\n\n // Track page view\n trackPageView(\"OrganizationsEditPage\");\n });\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n const fields = {\n id: props.data.id,\n name: props.data.name,\n };\n\n const validation = {\n name: [\n validators.required,\n validators.minLength(1),\n validators.maxLength(100),\n ],\n };\n\n setForm(createForm(fields, validation));\n }, [props.data, props.match]);\n\n useCustomErrors(form, props.error);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n props.edit(props.nationalSocietyId, {\n id: values.id,\n name: values.name,\n nationalSocietyId: parseInt(props.nationalSocietyId),\n });\n };\n\n if (props.isFetching || !form) {\n return ;\n }\n\n return (\n \n {props.error && !props.error.data && (\n \n )}\n\n
\n \n \n \n \n \n\n \n props.goToList(props.nationalSocietyId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n organizationId: ownProps.match.params.organizationId,\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isFetching: state.organizations.formFetching,\n isSaving: state.organizations.formSaving,\n data: state.organizations.formData,\n error: state.organizations.formError,\n});\n\nconst mapDispatchToProps = {\n openEdition: organizationsActions.openEdition.invoke,\n edit: organizationsActions.edit.invoke,\n goToList: organizationsActions.goToList,\n};\n\nexport const OrganizationsEditPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(OrganizationsEditPageComponent),\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer\n} from \"@material-ui/core\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\nimport { accessMap } from \"../../authentication/accessMap\";\n\nexport const ProjectOrganizationsTable = ({\n isListFetching,\n isRemoving,\n remove,\n list,\n projectId,\n isClosed,\n rtl,\n}) => {\n if (isListFetching) {\n return ;\n }\n\n const showDefaultFlag = (row) =>\n list.length > 1 && row.isDefaultOrganization === true;\n\n return (\n \n \n \n \n \n {strings(stringKeys.projectOrganization.list.name)}\n \n \n \n \n \n {list.map((row) => (\n \n \n {row.name}{\" \"}\n {showDefaultFlag(row) &&\n strings(stringKeys.organization.list.isDefaultOrganization)}\n \n \n {!isClosed && (\n \n remove(projectId, row.id)}\n confirmationText={strings(\n stringKeys.projectOrganization.list.removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.id]}\n directionRtl={rtl}\n />\n \n )}\n \n \n ))}\n \n
\n
\n );\n};\n\nProjectOrganizationsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default ProjectOrganizationsTable;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as projectOrganizationsActions from \"./logic/projectOrganizationsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport ProjectOrganizationsTable from \"./ProjectOrganizationsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectOrganizationsListPageComponent = (props) => {\n useMount(() => {\n props.openProjectOrganizationsList(props.projectId);\n\n // Track page view\n trackPageView(\"ProjectOrganizationsListPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n\n return (\n \n {!props.nationalSocietyIsArchived && !props.projectIsClosed && (\n \n props.goToCreation(props.projectId)}\n add\n roles={accessMap.projectOrganizations.add}\n variant=\"contained\"\n rtl={useRtlDirection}\n >\n {strings(stringKeys.common.buttons.add)}\n \n \n )}\n\n \n \n );\n};\n\nProjectOrganizationsListPageComponent.propTypes = {\n getProjectOrganizations: PropTypes.func,\n goToCreation: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n list: state.projectOrganizations.listData,\n isListFetching: state.projectOrganizations.listFetching,\n isRemoving: state.projectOrganizations.listRemoving,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n projectIsClosed: state.appData.siteMap.parameters.projectIsClosed,\n});\n\nconst mapDispatchToProps = {\n openProjectOrganizationsList: projectOrganizationsActions.openList.invoke,\n goToCreation: projectOrganizationsActions.goToCreation,\n remove: projectOrganizationsActions.remove.invoke,\n};\n\nexport const ProjectOrganizationsListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ProjectOrganizationsListPageComponent),\n);\n","import React, { useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm, useCustomErrors } from \"../../utils/forms\";\nimport * as projectOrganizationsActions from \"./logic/projectOrganizationsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport SelectField from \"../forms/SelectField\";\nimport { MenuItem, Grid } from \"@material-ui/core\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectOrganizationsCreatePageComponent = (props) => {\n const [form] = useState(() => {\n const fields = {\n organizationId: \"\",\n };\n\n const validation = {\n organizationId: [validators.required],\n };\n\n return createForm(fields, validation);\n });\n\n useMount(() => {\n props.openCreation(props.projectId);\n\n // Track page view\n trackPageView(\"ProjectOrganizationsCreatePage\");\n });\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n props.create(props.projectId, {\n organizationId: parseInt(values.organizationId),\n projectId: parseInt(props.projectId),\n });\n };\n\n useCustomErrors(form, props.error);\n\n if (!props.data) {\n return null;\n }\n\n return (\n \n {props.error && !props.error.data && (\n \n )}\n\n
\n \n \n \n {props.data.organizations.map((organization) => (\n \n {organization.name}\n \n ))}\n \n \n \n \n props.goToList(props.projectId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nProjectOrganizationsCreatePageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n data: state.projectOrganizations.formData,\n isSaving: state.projectOrganizations.formSaving,\n error: state.projectOrganizations.formError,\n});\n\nconst mapDispatchToProps = {\n openCreation: projectOrganizationsActions.openCreation.invoke,\n create: projectOrganizationsActions.create.invoke,\n goToList: projectOrganizationsActions.goToList,\n};\n\nexport const ProjectOrganizationsCreatePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ProjectOrganizationsCreatePageComponent),\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport * as translationsActions from \"./logic/translationsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TranslationsTable from \"./TranslationsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { Fragment } from \"react\";\nimport { TranslationsFilters } from \"./TranslationsFilters\";\nimport { LinearProgress } from \"@material-ui/core\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst EmailTranslationsListPageComponent = (props) => {\n useMount(() => {\n props.openTranslationsList(props.match.path, props.match.params);\n\n // Track page view\n trackPageView(\"EmailTranslationsListPage\");\n });\n\n return (\n \n \n {props.isListFetching && }\n \n \n );\n};\n\nEmailTranslationsListPageComponent.propTypes = {\n isFetching: PropTypes.bool,\n languages: PropTypes.array,\n translations: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n isListFetching: state.translations.listFetching,\n translations: state.translations.emailTranslations,\n languages: state.translations.emailLanguages,\n});\n\nconst mapDispatchToProps = {\n openTranslationsList: translationsActions.openEmailTranslationsList.invoke,\n getEmailTranslations: translationsActions.getEmailTranslationsList.invoke,\n};\n\nexport const EmailTranslationsListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(EmailTranslationsListPageComponent),\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport * as translationsActions from \"./logic/translationsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport TranslationsTable from \"./TranslationsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { Fragment } from \"react\";\nimport { TranslationsFilters } from \"./TranslationsFilters\";\nimport { LinearProgress } from \"@material-ui/core\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst SmsTranslationsListPageComponent = (props) => {\n useMount(() => {\n props.openTranslationsList(props.match.path, props.match.params);\n\n // Track page view\n trackPageView(\"SmsTranslationsListPage\");\n });\n\n return (\n \n \n {props.isListFetching && }\n \n \n );\n};\n\nSmsTranslationsListPageComponent.propTypes = {\n isFetching: PropTypes.bool,\n languages: PropTypes.array,\n translations: PropTypes.array,\n};\n\nconst mapStateToProps = (state) => ({\n isListFetching: state.translations.listFetching,\n translations: state.translations.smsTranslations,\n languages: state.translations.smsLanguages,\n});\n\nconst mapDispatchToProps = {\n openTranslationsList: translationsActions.openSmsTranslationsList.invoke,\n getSmsTranslations: translationsActions.getSmsTranslationsList.invoke,\n};\n\nexport const SmsTranslationsListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(SmsTranslationsListPageComponent),\n);\n","import { useState, Fragment, useEffect } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm } from \"../../utils/forms\";\nimport * as projectAlertRecipientsActions from \"./logic/projectAlertRecipientsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport PhoneInputField from \"../forms/PhoneInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport AutocompleteTextInputField from \"../forms/AutocompleteTextInputField\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { Administrator } from \"../../authentication/roles\";\nimport SelectField from \"../forms/SelectField\";\nimport {\n MenuItem,\n Checkbox,\n FormControlLabel,\n Typography,\n Card,\n CardContent,\n Grid,\n} from \"@material-ui/core\";\nimport { MultiSelect } from \"../forms/MultiSelect\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectAlertRecipientsCreatePageComponent = ({\n formData,\n listData,\n projectId,\n isSaving,\n error,\n directionRtl,\n openCreation,\n create,\n goToList,\n}) => {\n const [freeTextOrganizations, setFreeTextOrganizations] = useState([]);\n const [supervisorsDataSource, setSupervisorsDataSource] = useState([]);\n const [selectedSupervisors, setSelectedSupervisors] = useState([]);\n const [selectedHealthRisks, setSelectedHealthRisks] = useState([]);\n const [selectedOrganizationId, setSelectedOrganizationId] = useState(null);\n const [acceptAnySupervisor, setAcceptAnySupervisor] = useState(true);\n const [acceptAnyHealthRisk, setAcceptAnyHealthRisk] = useState(true);\n const userRoles = useSelector((state) => state.appData.user.roles);\n const canSelectModem = formData != null && formData.modems.length > 0;\n\n const [form] = useState(() => {\n const fields = {\n role: \"\",\n organization: \"\",\n email: \"\",\n phoneNumber: \"\",\n organizationId: \"\",\n modemId: \"\",\n };\n\n const validation = {\n role: [validators.required],\n organization: [validators.required],\n email: [validators.emailWhen((x) => x.phoneNumber === \"\")],\n phoneNumber: [\n validators.phoneNumber,\n validators.requiredWhen((x) => x.email === \"\"),\n ],\n modemId: [validators.requiredWhen((_) => canSelectModem)],\n };\n\n const newForm = createForm(fields, validation);\n newForm.fields.organizationId.subscribe(({ newValue }) =>\n setSelectedOrganizationId(newValue),\n );\n return newForm;\n });\n\n useMount(() => {\n openCreation(projectId);\n\n // Track page view\n trackPageView(\"ProjectAlertRecipientsCreatePage\");\n });\n\n useEffect(() => {\n const uniqueOrganizations = [\n ...new Set(listData.map((ar) => ar.organization)),\n ];\n setFreeTextOrganizations(uniqueOrganizations.map((o) => ({ title: o })));\n }, [listData]);\n\n useEffect(() => {\n setSelectedSupervisors([]);\n setSupervisorsDataSource(\n (formData &&\n formData.supervisors.filter(\n (s) => s.organizationId === parseInt(selectedOrganizationId),\n )) ||\n [],\n );\n if (formData && !userRoles.some((r) => r === Administrator)) {\n setSelectedOrganizationId(formData.projectOrganizations[0].id);\n }\n }, [formData, selectedOrganizationId, userRoles]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n create(projectId, {\n role: values.role,\n organization: values.organization,\n email: values.email,\n phoneNumber: values.phoneNumber,\n organizationId: parseInt(values.organizationId),\n supervisors: acceptAnySupervisor\n ? []\n : selectedSupervisors.map((s) => s.value),\n healthRisks: acceptAnyHealthRisk\n ? []\n : selectedHealthRisks.map((hr) => hr.value),\n headSupervisors: [],\n modemId: !!values.modemId ? parseInt(values.modemId) : null,\n });\n };\n\n const onSupervisorChange = (value, eventData) => {\n if (eventData.action === \"select-option\") {\n setSelectedSupervisors([...selectedSupervisors, eventData.option]);\n } else if (\n eventData.action === \"remove-value\" ||\n eventData.action === \"pop-value\"\n ) {\n setSelectedSupervisors(\n selectedSupervisors.filter(\n (hr) => hr.value !== eventData.removedValue.value,\n ),\n );\n } else if (eventData.action === \"clear\") {\n setSelectedSupervisors([]);\n }\n };\n\n const onHealthRiskChange = (value, eventData) => {\n if (eventData.action === \"select-option\") {\n setSelectedHealthRisks([...selectedHealthRisks, eventData.option]);\n } else if (\n eventData.action === \"remove-value\" ||\n eventData.action === \"pop-value\"\n ) {\n setSelectedHealthRisks(\n selectedHealthRisks.filter(\n (hr) => hr.value !== eventData.removedValue.value,\n ),\n );\n } else if (eventData.action === \"clear\") {\n setSelectedHealthRisks([]);\n }\n };\n\n if (!formData) {\n return null;\n }\n\n return (\n \n {error && }\n\n
\n \n \n \n \n \n \n \n {strings(\n stringKeys.projectAlertRecipient.form.receiverDetails,\n )}\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n {canSelectModem && (\n \n \n {formData.modems.map((modem) => (\n \n {modem.name}\n \n ))}\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n {strings(\n stringKeys.projectAlertRecipient.form.triggerDetails,\n )}\n \n \n\n {userRoles.some((r) => r === Administrator) && (\n \n \n {formData.projectOrganizations.map((org) => (\n \n {org.name}\n \n ))}\n \n \n )}\n\n \n \n setAcceptAnySupervisor(!acceptAnySupervisor)\n }\n color=\"primary\"\n />\n }\n label={strings(\n stringKeys.projectAlertRecipient.form.anySupervisor,\n )}\n />\n \n\n {!acceptAnySupervisor && (\n \n {\n return { label: s.name, value: s };\n })}\n value={selectedSupervisors}\n onChange={onSupervisorChange}\n />\n \n )}\n \n \n setAcceptAnyHealthRisk(!acceptAnyHealthRisk)\n }\n color=\"primary\"\n />\n }\n label={strings(\n stringKeys.projectAlertRecipient.form.anyHealthRisk,\n )}\n />\n \n {!acceptAnyHealthRisk && (\n \n {\n return { label: s.healthRiskName, value: s.id };\n })}\n value={selectedHealthRisks}\n onChange={onHealthRiskChange}\n />\n \n )}\n \n \n \n \n \n \n goToList(projectId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n );\n};\n\nProjectAlertRecipientsCreatePageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n listData: state.projectAlertRecipients.listData,\n formData: state.projectAlertRecipients.formData,\n isSaving: state.projectAlertRecipients.formSaving,\n error: state.projectAlertRecipients.formError,\n directionRtl: state.appData.user.languageCode === \"ar\",\n});\n\nconst mapDispatchToProps = {\n openCreation: projectAlertRecipientsActions.openCreation.invoke,\n create: projectAlertRecipientsActions.create.invoke,\n goToList: projectAlertRecipientsActions.goToList,\n};\n\nexport const ProjectAlertRecipientsCreatePage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ProjectAlertRecipientsCreatePageComponent),\n);\n","import { useState, Fragment, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport { validators, createForm } from \"../../utils/forms\";\nimport * as projectAlertRecipientsActions from \"./logic/projectAlertRecipientsActions\";\nimport Layout from \"../layout/Layout\";\nimport Form from \"../forms/form/Form\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport PhoneInputField from \"../forms/PhoneInputField\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport AutocompleteTextInputField from \"../forms/AutocompleteTextInputField\";\nimport TextInputField from \"../forms/TextInputField\";\nimport {\n CardContent,\n Card,\n Typography,\n FormControlLabel,\n Checkbox,\n MenuItem,\n Grid,\n} from \"@material-ui/core\";\nimport { MultiSelect } from \"../forms/MultiSelect\";\nimport SelectField from \"../forms/SelectField\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport { SubMenuTitle } from \"../layout/SubMenuTitle\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectAlertRecipientsEditPageComponent = ({\n formData,\n listData,\n alertRecipient,\n projectId,\n alertRecipientId,\n isSaving,\n error,\n directionRtl,\n openEdition,\n edit,\n goToList,\n}) => {\n const [freeTextOrganizations, setFreeTextOrganizations] = useState([]);\n const [selectedSupervisors, setSelectedSupervisors] = useState([]);\n const [selectedHealthRisks, setSelectedHealthRisks] = useState([]);\n const [acceptAnySupervisor, setAcceptAnySupervisor] = useState(false);\n const [acceptAnyHealthRisk, setAcceptAnyHealthRisk] = useState(false);\n const canSelectModem = formData != null && formData.modems.length > 0;\n\n const [form, setForm] = useState(null);\n\n useMount(() => {\n openEdition(projectId, alertRecipientId);\n\n // Track page view\n trackPageView(\"ProjectAlertRecipientsEditPage\");\n });\n\n useEffect(() => {\n if (alertRecipient === null || formData === null) {\n return;\n }\n\n const uniqueOrganizations = [\n ...new Set(listData.map((ar) => ar.organization)),\n ];\n setFreeTextOrganizations(uniqueOrganizations.map((o) => ({ title: o })));\n setSelectedSupervisors(\n [...alertRecipient.supervisors, ...alertRecipient.headSupervisors].map(\n (s) => {\n return { label: s.name, value: s };\n },\n ),\n );\n setSelectedHealthRisks(\n alertRecipient.healthRisks.map((hr) => {\n return { label: hr.healthRiskName, value: hr.id };\n }),\n );\n setAcceptAnySupervisor(alertRecipient.supervisors.length === 0);\n setAcceptAnyHealthRisk(alertRecipient.healthRisks.length === 0);\n\n const fields = {\n role: alertRecipient.role,\n organization: alertRecipient.organization,\n email: alertRecipient.email || \"\",\n phoneNumber: alertRecipient.phoneNumber || \"\",\n modemId: alertRecipient.modemId || \"\",\n };\n\n const validation = {\n role: [validators.required],\n organization: [validators.required],\n email: [validators.emailWhen((x) => x.phoneNumber === \"\")],\n phoneNumber: [\n validators.phoneNumber,\n validators.requiredWhen((x) => x.email === \"\"),\n ],\n modemId: [validators.requiredWhen((_) => canSelectModem)],\n };\n\n setForm(createForm(fields, validation));\n }, [listData, alertRecipient, formData, canSelectModem]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n edit(projectId, {\n id: alertRecipient.id,\n role: values.role,\n organization: values.organization,\n email: values.email,\n phoneNumber: values.phoneNumber,\n supervisors: acceptAnySupervisor\n ? []\n : selectedSupervisors.map((s) => s.value),\n healthRisks: acceptAnyHealthRisk\n ? []\n : selectedHealthRisks.map((hr) => hr.value),\n headSupervisors: [],\n modemId: !!values.modemId ? parseInt(values.modemId) : null,\n });\n };\n\n const onSupervisorChange = (value, eventData) => {\n if (eventData.action === \"select-option\") {\n setSelectedSupervisors([...selectedSupervisors, eventData.option]);\n } else if (\n eventData.action === \"remove-value\" ||\n eventData.action === \"pop-value\"\n ) {\n setSelectedSupervisors(\n selectedSupervisors.filter(\n (hr) => hr.value !== eventData.removedValue.value,\n ),\n );\n } else if (eventData.action === \"clear\") {\n setSelectedSupervisors([]);\n }\n };\n\n const onHealthRiskChange = (value, eventData) => {\n if (eventData.action === \"select-option\") {\n setSelectedHealthRisks([...selectedHealthRisks, eventData.option]);\n } else if (\n eventData.action === \"remove-value\" ||\n eventData.action === \"pop-value\"\n ) {\n setSelectedHealthRisks(\n selectedHealthRisks.filter(\n (hr) => hr.value !== eventData.removedValue.value,\n ),\n );\n } else if (eventData.action === \"clear\") {\n setSelectedHealthRisks([]);\n }\n };\n\n if (!formData || !form) {\n return null;\n }\n\n return (\n \n \n {error && }\n\n
\n \n \n \n \n \n \n \n {strings(\n stringKeys.projectAlertRecipient.form.receiverDetails,\n )}\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n {canSelectModem && (\n \n \n {formData.modems.map((modem) => (\n \n {modem.name}\n \n ))}\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n {strings(\n stringKeys.projectAlertRecipient.form.triggerDetails,\n )}\n \n \n\n \n \n setAcceptAnySupervisor(!acceptAnySupervisor)\n }\n color=\"primary\"\n />\n }\n label={strings(\n stringKeys.projectAlertRecipient.form.anySupervisor,\n )}\n />\n \n\n {!acceptAnySupervisor && (\n \n \n !selectedSupervisors.some(\n (ss) => ss.id === s.id,\n ) &&\n s.organizationId ===\n alertRecipient.organizationId,\n )\n .map((s) => {\n return { label: s.name, value: s };\n })}\n value={selectedSupervisors}\n onChange={onSupervisorChange}\n />\n \n )}\n \n \n setAcceptAnyHealthRisk(!acceptAnyHealthRisk)\n }\n color=\"primary\"\n />\n }\n label={strings(\n stringKeys.projectAlertRecipient.form.anyHealthRisk,\n )}\n />\n \n {!acceptAnyHealthRisk && (\n \n \n !selectedHealthRisks.some(\n (shr) => shr.id === hr.id,\n ),\n )\n .map((s) => {\n return { label: s.healthRiskName, value: s.id };\n })}\n value={selectedHealthRisks}\n onChange={onHealthRiskChange}\n />\n \n )}\n \n \n \n \n \n \n goToList(projectId)}>\n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n
\n
\n );\n};\n\nProjectAlertRecipientsEditPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n alertRecipientId: ownProps.match.params.alertRecipientId,\n listData: state.projectAlertRecipients.listData,\n alertRecipient: state.projectAlertRecipients.recipient,\n formData: state.projectAlertRecipients.formData,\n isSaving: state.projectAlertRecipients.formSaving,\n error: state.projectAlertRecipients.formError,\n directionRtl: state.appData.user.languageCode === \"ar\",\n});\n\nconst mapDispatchToProps = {\n openEdition: projectAlertRecipientsActions.openEdition.invoke,\n edit: projectAlertRecipientsActions.edit.invoke,\n goToList: projectAlertRecipientsActions.goToList,\n};\n\nexport const ProjectAlertRecipientsEditPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ProjectAlertRecipientsEditPageComponent),\n);\n","import { IconButton } from \"@material-ui/core\";\nimport CheckBox from \"@material-ui/icons/CheckBox\";\nimport CheckBoxOutlineBlank from \"@material-ui/icons/CheckBoxOutlineBlank\";\nimport { strings, stringKeys } from \"../../strings\";\n\nconst CorrectedButton = ({ isCorrected, onClick }) => {\n const title = isCorrected\n ? strings(stringKeys.reports.list.corrected)\n : strings(stringKeys.reports.list.markAsCorrected);\n\n return (\n \n {isCorrected && }\n {!isCorrected && }\n \n );\n};\n\nexport default CorrectedButton;\n","import styles from \"./ReportsTable.module.scss\";\nimport reportsTableStyles from \"./ReportsTable.module.scss\";\nimport { Fragment, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport dayjs from \"dayjs\";\nimport TablePager from \"../common/tablePagination/TablePager\";\nimport {\n DateColumnName,\n ReportErrorType,\n reportDetailedFormatErrors,\n} from \"./logic/reportsConstants\";\nimport {\n Typography,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n TableContainer\n} from \"@material-ui/core\";\nimport CorrectedButton from \"./CorrectedButton\";\nimport { renderDataCollectorDisplayName } from \"./logic/reportsService\";\n\nexport const IncorrectReportsTable = ({\n isListFetching,\n list,\n page,\n onChangePage,\n rowsPerPage,\n totalRows,\n filters,\n sorting,\n onSort,\n onCorrectToggle,\n rtl,\n}) => {\n const [value, setValue] = useState(sorting);\n\n const updateValue = (change) => {\n const newValue = {\n ...value,\n ...change,\n };\n\n setValue(newValue);\n return newValue;\n };\n\n const dashIfEmpty = (text, ...args) => {\n return [text || \"-\", ...args].filter((x) => !!x).join(\", \");\n };\n\n const createSortHandler = (column) => (event) => {\n handleSortChange(event, column);\n };\n\n const handleSortChange = (event, column) => {\n const isAscending = sorting.orderBy === column && sorting.sortAscending;\n onSort(updateValue({ orderBy: column, sortAscending: !isAscending }));\n };\n\n const handlePageChange = (event, page) => {\n onChangePage(page);\n };\n\n const errorTypeString = (errorType) => {\n const errorTypeTranslation = strings(\n stringKeys.reports.errorTypes[errorType],\n );\n\n if (reportDetailedFormatErrors.some((e) => e === errorType)) {\n return (\n \n {strings(stringKeys.reports.errorTypes[ReportErrorType.formatError])}\n
\n {errorTypeTranslation}\n
\n );\n } else {\n return errorTypeTranslation;\n }\n };\n\n return (\n \n \n {isListFetching && }\n \n \n \n \n \n {strings(stringKeys.reports.list.date)}\n \n \n \n {strings(stringKeys.reports.list.errorType)}\n \n \n {strings(stringKeys.reports.list.message)}\n \n \n {strings(stringKeys.reports.list.dataCollectorDisplayName)}\n \n \n {strings(stringKeys.common.location)}\n \n \n {strings(stringKeys.reports.list.corrected)}\n \n \n \n \n {list.map((row) => (\n \n \n {dayjs(row.dateTime).format(\"YYYY-MM-DD HH:mm\")}\n \n {errorTypeString(row.reportErrorType)}\n \n \n {dashIfEmpty(row.message)}\n \n \n \n {renderDataCollectorDisplayName(row)}\n \n \n {dashIfEmpty(row.region, row.district, row.village, row.zone)}\n \n \n onCorrectToggle(row)}\n />\n \n \n ))}\n \n
\n \n
\n
\n );\n};\n\nIncorrectReportsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default IncorrectReportsTable;\n","import styles from \"./ReportsListPage.module.scss\";\n\nimport React, { useState, Fragment, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as reportsActions from \"./logic/reportsActions\";\nimport TableActions from \"../common/tableActions/TableActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport IncorrectReportsTable from \"./IncorrectReportsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { ReportFilters } from \"../common/filters/ReportFilters\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { Hidden, Icon } from \"@material-ui/core\";\nimport * as roles from \"../../authentication/roles\";\nimport { SendReportDialog } from \"./SendReportDialog\";\nimport * as appActions from \"../app/logic/appActions\";\nimport TableHeader from \"../common/tableHeader/TableHeader\";\nimport { trackEvent, trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst Page = \"incorrect\";\n\nconst IncorrectReportsListPageComponent = (props) => {\n const [open, setOpen] = useState(false);\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n const canSendReport =\n props.user &&\n [\n roles.Administrator,\n roles.Manager,\n roles.TechnicalAdvisor,\n roles.Supervisor,\n roles.HeadSupervisor,\n ].some((neededRole) =>\n props.user.roles.some((userRole) => userRole === neededRole),\n );\n\n useMount(() => {\n props.openReportsList(props.projectId);\n\n // Track page view\n trackPageView(\"IncorrectReportsListPage\");\n });\n\n const handleRefresh = () => props.getList(props.projectId, 1);\n\n //useCallback important to avoid infinite loop from useEffect in ReportFilters\n const handleFiltersChange = useCallback(\n (filters) => props.getList(props.projectId, 1, filters, props.sorting),\n [props.getList, props.projectId, props.sorting],\n );\n\n const handlePageChange = (page) =>\n props.getList(props.projectId, page, props.filters, props.sorting);\n\n const handleSortChange = (sorting) =>\n props.getList(props.projectId, props.page, props.filters, sorting);\n\n const handleSendReport = (e) => {\n e.stopPropagation();\n props.openSendReport(props.projectId);\n setOpen(true);\n };\n\n function handleExportToCsv() {\n trackEvent(\"exportIncorrectReportsCsv\", { exportFileType: \"Csv\" });\n props.trackReportExport(Page, \"Csv\", props.projectId); //Uses old AppInsights tracking method (could be redundant, mabye remove)\n\n props.exportToCsv(props.projectId, props.filters, props.sorting);\n }\n\n function handleExportToExcel() {\n trackEvent(\"exportIncorrectReportsExcel\", { exportFileType: \"Excel\" });\n props.trackReportExport(Page, \"Excel\", props.projectId); //Uses old AppInsights tracking method (could be redundant, mabye remove)\n\n props.exportToExcel(props.projectId, props.filters, props.sorting);\n }\n\n function onCorrectToggle(row) {\n if (row.isCorrected) {\n props.markAsNotCorrected(row.id);\n } else {\n props.markAsCorrected(row.id);\n }\n }\n\n if (!props.data || !props.filters || !props.sorting) {\n return null;\n }\n\n return (\n \n \n \n \n \n refresh\n \n \n\n \n {strings(stringKeys.reports.list.exportToCsv)}\n \n\n \n {strings(stringKeys.reports.list.exportToExcel)}\n \n\n {canSendReport && (\n \n {strings(stringKeys.reports.list.sendReport)}\n \n )}\n \n \n\n {open && (\n setOpen(false)}\n projectId={props.projectId}\n openSendReport={props.openSendReport}\n showMessage={props.showMessage}\n />\n )}\n\n
\n \n
\n\n \n
\n );\n};\n\nIncorrectReportsListPageComponent.propTypes = {\n getReports: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n data: state.reports.incorrectReportsPaginatedListData,\n isListFetching: state.reports.listFetching,\n isRemoving: state.reports.listRemoving,\n filters: state.reports.incorrectReportsFilters,\n sorting: state.reports.incorrectReportsSorting,\n user: state.appData.user,\n locations: state.reports.filtersData.locations,\n});\n\nconst mapDispatchToProps = {\n openReportsList: reportsActions.openIncorrectReportsList.invoke,\n getList: reportsActions.getIncorrectList.invoke,\n exportToExcel: reportsActions.exportToExcel.invoke,\n exportToCsv: reportsActions.exportToCsv.invoke,\n openSendReport: reportsActions.openSendReport.invoke,\n trackReportExport: reportsActions.trackReportExport,\n markAsCorrected: reportsActions.markAsCorrected.invoke,\n markAsNotCorrected: reportsActions.markAsNotCorrected.invoke,\n showMessage: appActions.showMessage,\n};\n\nexport const IncorrectReportsListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(IncorrectReportsListPageComponent),\n);\n","import styles from \"./NationalSocietyReportsTable.module.scss\";\n\nimport { Fragment, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport dayjs from \"dayjs\";\nimport TablePager from \"../common/tablePagination/TablePager\";\nimport { DataCollectorType } from \"../common/filters/logic/reportFilterConstsants\";\nimport { DateColumnName } from \"./logic/nationalSocietyReportsConstants\";\nimport {\n Typography,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n TableContainer\n} from \"@material-ui/core\";\nimport {\n renderDataCollectorDisplayName,\n renderReportValue,\n} from \"../reports/logic/reportsService\";\nimport { ReportStatusChip } from \"../common/chip/ReportStatusChip\";\nimport { sortByReportStatus } from \"../../utils/sortReportByStatus\";\n\nexport const NationalSocietyCorrectReportsTable = ({\n isListFetching,\n list,\n page,\n onChangePage,\n rowsPerPage,\n totalRows,\n reportsType,\n filters,\n sorting,\n onSort,\n rtl,\n}) => {\n const [value, setValue] = useState(sorting);\n const isDataCollectionPointTable = filters.dataCollectorType === DataCollectorType.collectionPoint;\n\n const updateValue = (change) => {\n const newValue = {\n ...value,\n ...change,\n };\n\n setValue(newValue);\n return newValue;\n };\n\n const dashIfEmpty = (text, ...args) => {\n return [text || \"-\", ...args].filter((x) => !!x).join(\", \");\n };\n\n const createSortHandler = (column) => (event) => {\n handleSortChange(event, column);\n };\n\n const handleSortChange = (event, column) => {\n const isAscending = sorting.orderBy === column && sorting.sortAscending;\n onSort(updateValue({ orderBy: column, sortAscending: !isAscending }));\n };\n\n const handlePageChange = (event, page) => {\n onChangePage(page);\n };\n\n return (\n \n {isListFetching && }\n \n \n \n \n \n {strings(stringKeys.reports.list.date)}\n \n \n \n {strings(stringKeys.reports.list.status)}\n \n \n {strings(stringKeys.reports.list.project)}\n \n \n {strings(stringKeys.reports.list.dataCollectorDisplayName)}\n \n \n {strings(stringKeys.common.location)}\n \n \n {strings(stringKeys.reports.list.healthRisk)}\n \n {!filters.status && (\n \n {strings(stringKeys.reports.list.message)}\n \n )}\n \n {strings(stringKeys.reports.list.malesBelowFive)}\n \n \n {strings(stringKeys.reports.list.malesAtLeastFive)}\n \n \n {strings(stringKeys.reports.list.femalesBelowFive)}\n \n \n {strings(stringKeys.reports.list.femalesAtLeastFive)}\n \n {isDataCollectionPointTable && (\n \n \n {strings(stringKeys.reports.list.referredCount)}\n \n \n )}\n \n \n \n {list.sort(sortByReportStatus).map((row) => (\n \n \n {dayjs(row.dateTime).format(\"YYYY-MM-DD HH:mm\")}\n \n \n \n \n {dashIfEmpty(row.projectName)}\n \n {renderDataCollectorDisplayName(row)}\n \n \n {dashIfEmpty(row.region, row.district, row.village, row.zone)}\n \n {dashIfEmpty(row.healthRiskName)}\n {!filters.status && (\n \n \n {dashIfEmpty(row.message)}\n \n \n )}\n \n {renderReportValue(row.countMalesBelowFive, isDataCollectionPointTable)}\n \n \n {renderReportValue(row.countMalesAtLeastFive, isDataCollectionPointTable)}\n \n \n {renderReportValue(row.countFemalesBelowFive, isDataCollectionPointTable)}\n \n \n {renderReportValue(row.countFemalesAtLeastFive, isDataCollectionPointTable)}\n \n {isDataCollectionPointTable && (\n \n {renderReportValue(row.referredCount, true)}\n \n )}\n \n ))}\n \n
\n \n
\n );\n};\n\nNationalSocietyCorrectReportsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default NationalSocietyCorrectReportsTable;\n","import styles from \"./NationalSocietyReportsListPage.module.scss\";\n\nimport React, { Fragment, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as nationalSocietyReportsActions from \"./logic/nationalSocietyReportsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport NationalSocietyCorrectReportsTable from \"./NationalSocietyCorrectReportsTable\";\nimport { ReportFilters } from \"../common/filters/ReportFilters\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietyCorrectReportsListPageComponent = (props) => {\n useMount(() => {\n props.openNationalSocietyReportsList(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"NationalSocietyCorrectReportsListPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n //useCallback important to avoid infinite loop from useEffect in ReportFilters\n const handleFiltersChange = useCallback(\n (filters) =>\n props.getList(\n props.nationalSocietyId,\n props.page,\n filters,\n props.sorting,\n ),\n [props.getList, props.nationalSocietyId, props.page, props.sorting],\n );\n\n const handlePageChange = (page) =>\n props.getList(props.nationalSocietyId, page, props.filters, props.sorting);\n\n const handleSortChange = (sorting) =>\n props.getList(props.nationalSocietyId, props.page, props.filters, sorting);\n\n if (!props.data || !props.filters || !props.sorting) {\n return null;\n }\n return (\n \n
\n \n
\n\n \n
\n );\n};\n\nNationalSocietyCorrectReportsListPageComponent.propTypes = {\n getNationalSocietyReports: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n data: state.nationalSocietyReports.correctReportsPaginatedListData,\n isListFetching: state.nationalSocietyReports.listFetching,\n isRemoving: state.nationalSocietyReports.listRemoving,\n filters: state.nationalSocietyReports.correctReportsFilters,\n sorting: state.nationalSocietyReports.correctReportsSorting,\n healthRisks: state.nationalSocietyReports.filtersData.healthRisks,\n locations: state.nationalSocietyReports.filtersData.locations,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n});\n\nconst mapDispatchToProps = {\n openNationalSocietyReportsList:\n nationalSocietyReportsActions.openCorrectList.invoke,\n getList: nationalSocietyReportsActions.getCorrectList.invoke,\n};\n\nexport const NationalSocietyCorrectReportsListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietyCorrectReportsListPageComponent),\n);\n","import styles from \"./NationalSocietyReportsTable.module.scss\";\n\nimport { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport dayjs from \"dayjs\";\nimport TablePager from \"../common/tablePagination/TablePager\";\nimport { DateColumnName } from \"./logic/nationalSocietyReportsConstants\";\nimport {\n Typography,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n TableContainer\n} from \"@material-ui/core\";\nimport { renderDataCollectorDisplayName } from \"../reports/logic/reportsService\";\n\nexport const NationalSocietyIncorrectReportsTable = ({\n isListFetching,\n list,\n page,\n onChangePage,\n rowsPerPage,\n totalRows,\n sorting,\n onSort,\n rtl,\n}) => {\n const [value, setValue] = useState(sorting);\n\n const updateValue = (change) => {\n const newValue = {\n ...value,\n ...change,\n };\n\n setValue(newValue);\n return newValue;\n };\n\n const dashIfEmpty = (text, ...args) => {\n return [text || \"-\", ...args].filter((x) => !!x).join(\", \");\n };\n\n const createSortHandler = (column) => (event) => {\n handleSortChange(event, column);\n };\n\n const handleSortChange = (event, column) => {\n const isAscending = sorting.orderBy === column && sorting.sortAscending;\n onSort(updateValue({ orderBy: column, sortAscending: !isAscending }));\n };\n\n const handlePageChange = (event, page) => {\n onChangePage(page);\n };\n\n return (\n \n {isListFetching && }\n \n \n \n \n \n {strings(stringKeys.reports.list.date)}\n \n \n \n {strings(stringKeys.reports.list.errorType)}\n \n \n {strings(stringKeys.reports.list.message)}\n \n \n {strings(stringKeys.reports.list.project)}\n \n \n {strings(stringKeys.reports.list.dataCollectorDisplayName)}\n \n \n {strings(stringKeys.common.location)}\n \n \n \n \n {list.map((row) => (\n \n \n {dayjs(row.dateTime).format(\"YYYY-MM-DD HH:mm\")}\n \n \n {strings(stringKeys.reports.errorTypes[row.errorType])}\n \n \n \n {dashIfEmpty(row.message)}\n \n \n {dashIfEmpty(row.projectName)}\n \n {renderDataCollectorDisplayName(row)}\n \n \n {dashIfEmpty(row.region, row.district, row.village, row.zone)}\n \n \n ))}\n \n
\n \n
\n );\n};\n\nNationalSocietyIncorrectReportsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default NationalSocietyIncorrectReportsTable;\n","import styles from \"./NationalSocietyReportsListPage.module.scss\";\n\nimport { Fragment, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as nationalSocietyReportsActions from \"./logic/nationalSocietyReportsActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { ReportFilters } from \"../common/filters/ReportFilters\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport NationalSocietyIncorrectReportsTable from \"./NationalSocietyIncorrectReportsTable\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst NationalSocietyIncorrectReportsListPageComponent = (props) => {\n useMount(() => {\n props.openNationalSocietyReportsList(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"NationalSocietyIncorrectReportsListPage\");\n });\n\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n //useCallback important to avoid infinite loop from useEffect in ReportFilters\n const handleFiltersChange = useCallback(\n (filters) =>\n props.getList(\n props.nationalSocietyId,\n props.page,\n filters,\n props.sorting,\n ),\n [props.getList, props.nationalSocietyId, props.page, props.sorting],\n );\n\n const handlePageChange = (page) =>\n props.getList(props.nationalSocietyId, page, props.filters, props.sorting);\n\n const handleSortChange = (sorting) =>\n props.getList(props.nationalSocietyId, props.page, props.filters, sorting);\n\n if (!props.data || !props.filters || !props.sorting) {\n return null;\n }\n\n return (\n \n
\n \n
\n\n \n
\n );\n};\n\nNationalSocietyIncorrectReportsListPageComponent.propTypes = {\n getNationalSocietyReports: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n data: state.nationalSocietyReports.incorrectReportsPaginatedListData,\n isListFetching: state.nationalSocietyReports.listFetching,\n isRemoving: state.nationalSocietyReports.listRemoving,\n filters: state.nationalSocietyReports.incorrectReportsFilters,\n sorting: state.nationalSocietyReports.incorrectReportsSorting,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n locations: state.nationalSocietyReports.filtersData.locations,\n});\n\nconst mapDispatchToProps = {\n openNationalSocietyReportsList:\n nationalSocietyReportsActions.openIncorrectList.invoke,\n getList: nationalSocietyReportsActions.getIncorrectList.invoke,\n};\n\nexport const NationalSocietyIncorrectReportsListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(NationalSocietyIncorrectReportsListPageComponent),\n);\n","import React, { useState } from \"react\";\nimport styles from \"./AlertEventExpandableText.module.scss\";\nimport KeyboardArrowDownIcon from \"@material-ui/icons/KeyboardArrowDown\";\nimport KeyboardArrowUpIcon from \"@material-ui/icons/KeyboardArrowUp\";\nimport { TableRowAction } from \"../../common/tableRowAction/TableRowAction\";\nimport { TableRowActions } from \"../../common/tableRowAction/TableRowActions\";\nimport { IconButton } from \"@material-ui/core\";\n\nexport const AlertEventExpandableText = ({ text, maxLength }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n\n const isTooLong = text && text.length > maxLength;\n\n const getTruncatedText = () => {\n return text.substring(0, maxLength - 3) + \"...\";\n };\n\n const renderShortText = () => {\n return {text};\n };\n\n const getText = () => {\n if (!isExpanded) {\n return getTruncatedText();\n }\n return text;\n };\n\n const renderExpandableText = () => {\n return (\n
\n
{getText()}
\n \n setIsExpanded(true)}\n icon={}\n >\n \n
\n );\n };\n\n const renderShrinkableText = () => {\n return (\n
\n
{getText()}
\n \n setIsExpanded(false)}\n >\n \n \n \n
\n );\n };\n\n if (!isTooLong) {\n return renderShortText();\n }\n\n if (!isExpanded) {\n return renderExpandableText();\n } else {\n return renderShrinkableText();\n }\n};\n","import React, { useEffect, useState, Fragment } from \"react\";\nimport styles from \"./CreateAlertEventDialog.module.scss\";\nimport {\n Dialog,\n DialogContent,\n Grid,\n useMediaQuery,\n useTheme,\n} from \"@material-ui/core\";\nimport { useSelector } from \"react-redux\";\nimport { createForm, validators } from \"../../../utils/forms\";\nimport { Loading } from \"../../common/loading/Loading\";\nimport { stringKeys, strings } from \"../../../strings\";\nimport Form from \"../../forms/form/Form\";\nimport TextInputField from \"../../forms/TextInputField\";\nimport FormActions from \"../../forms/formActions/FormActions\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport CancelButton from \"../../common/buttons/cancelButton/CancelButton\";\nimport * as dayjs from \"dayjs\";\nimport Typography from \"@material-ui/core/Typography\";\n\nexport const EditAlertEventDialog = ({\n open,\n close,\n edit,\n alertId,\n eventLogItem,\n formattedEventType,\n formattedEventSubtype,\n ...props\n}) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n const isSaving = useSelector((state) => state.alertEvents.formSaving);\n const [form, setForm] = useState(null);\n\n useEffect(() => {\n if (!eventLogItem) return;\n\n const fields = {\n text: eventLogItem.text,\n };\n\n const validation = {\n text: [validators.maxLength(4000)],\n };\n\n setForm(createForm(fields, validation));\n }, [eventLogItem]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n edit(alertId, eventLogItem.alertEventLogId, form.fields.text.value);\n close();\n };\n\n if (props.isFetching) {\n return ;\n }\n\n return (\n !!form && (\n \n \n
\n \n \n \n {strings(stringKeys.alerts.eventLog.form.dateOfEvent)}\n \n \n {dayjs(eventLogItem.date).format(\"YYYY-MM-DD HH:mm\")}\n \n\n \n {strings(stringKeys.alerts.eventLog.list.type)}\n \n {formattedEventType}\n\n {!!formattedEventSubtype && (\n \n \n {strings(stringKeys.alerts.eventLog.list.subtype)}\n \n \n {formattedEventSubtype}\n \n \n )}\n \n\n \n \n \n \n\n \n \n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.alerts.eventLog.edit)}\n \n \n
\n
\n
\n )\n );\n};\n","import React, { Fragment, useState } from \"react\";\nimport { stringKeys, strings, stringsFormat } from \"../../../strings\";\nimport {\n TableContainer,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from \"@material-ui/core\";\nimport * as dayjs from \"dayjs\";\nimport { logType } from \"../logic/alertEventsConstants\";\nimport { escalatedOutcomes } from \"../../alerts/logic/alertsConstants\";\nimport { AlertEventExpandableText } from \"./AlertEventExpandableText\";\nimport { EditAlertEventDialog } from \"./EditAlertEventDialog\";\nimport { TableRowActions } from \"../../common/tableRowAction/TableRowActions\";\nimport { TableRowAction } from \"../../common/tableRowAction/TableRowAction\";\nimport { accessMap } from \"../../../authentication/accessMap\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\n\nexport const AlertEventsTable = ({\n alertId,\n list,\n edit,\n remove,\n isRemoving,\n}) => {\n const [editDialogOpened, setEditDialogOpened] = useState(false);\n const [selectedEvent, setSelectedEvent] = useState(null);\n\n const selectTypeAndFormat = (row) => {\n if (row.logType != null) {\n if (\n row.logType === logType.closedAlert &&\n !!row.metadata.escalatedOutcome &&\n row.metadata.escalatedOutcome !== escalatedOutcomes.other\n ) {\n return `${stringsFormat(\n stringKeys.alerts.constants.logType[row.logType],\n row.metadata,\n )} - ${strings(\n stringKeys.alerts.constants.escalatedOutcomes[\n row.metadata.escalatedOutcome\n ],\n )}`;\n } else {\n return stringsFormat(\n stringKeys.alerts.constants.logType[row.logType],\n row.metadata,\n );\n }\n } else {\n return strings(\n stringKeys.alerts.constants.eventTypes[row.alertEventType],\n );\n }\n };\n\n const formatEventType = (row) => {\n if (row.alertEventType !== null) {\n return strings(\n stringKeys.alerts.constants.eventTypes[row.alertEventType],\n );\n }\n };\n\n const formatEventSubtype = (row) => {\n if (row.alertEventSubtype !== null) {\n return strings(\n stringKeys.alerts.constants.eventSubtypes[row.alertEventSubtype],\n );\n }\n };\n\n const dashIfEmpty = (text, ...args) => {\n return [text || \"-\", ...args].filter((x) => !!x).join(\", \");\n };\n\n const showEditDialog = (eventLogItem) => {\n setSelectedEvent(eventLogItem);\n setEditDialogOpened(true);\n };\n\n return (\n \n \n \n \n \n \n {strings(stringKeys.alerts.eventLog.list.date)}\n \n \n {strings(stringKeys.alerts.eventLog.list.type)}\n \n \n {strings(stringKeys.alerts.eventLog.list.subtype)}\n \n \n {strings(stringKeys.alerts.eventLog.list.userName)}\n \n \n {strings(stringKeys.alerts.eventLog.list.comment)}\n \n \n \n \n\n \n {!!list &&\n list.map((row, index) => (\n \n \n {dayjs(row.date).format(\"YYYY-MM-DD HH:mm\")}\n \n {selectTypeAndFormat(row)}\n {formatEventSubtype(row)}\n {dashIfEmpty(row.loggedBy)}\n \n \n \n\n \n {row.alertEventType && (\n \n \n showEditDialog(\n row,\n formatEventType(row),\n formatEventSubtype(row),\n )\n }\n roles={accessMap.alertEvents.edit}\n icon={}\n title={\"Edit\"}\n />\n remove(alertId, row.alertEventLogId)}\n roles={accessMap.alertEvents.delete}\n confirmationText={strings(\n stringKeys.alerts.eventLog.list.removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.alertEventLogId]}\n />\n \n )}\n \n \n ))}\n \n
\n
\n\n setEditDialogOpened(false)}\n edit={edit}\n alertId={alertId}\n eventLogItem={selectedEvent}\n formattedEventType={selectedEvent && formatEventType(selectedEvent)}\n formattedEventSubtype={\n selectedEvent && formatEventSubtype(selectedEvent)\n }\n />\n
\n );\n};\n","import React, { useEffect, useState } from \"react\";\n\nimport styles from \"./CreateAlertEventDialog.module.scss\";\nimport { stringKeys, strings } from \"../../../strings\";\nimport {\n Dialog,\n DialogContent,\n DialogTitle,\n Grid,\n MenuItem,\n Typography,\n useMediaQuery,\n useTheme,\n} from \"@material-ui/core\";\nimport SelectField from \"../../forms/SelectField\";\nimport { useMount } from \"../../../utils/lifecycle\";\nimport { createForm, validators } from \"../../../utils/forms\";\nimport SubmitButton from \"../../common/buttons/submitButton/SubmitButton\";\nimport { useSelector } from \"react-redux\";\nimport Form from \"../../forms/form/Form\";\nimport { DatePicker } from \"../../forms/DatePicker\";\nimport TextInputField from \"../../forms/TextInputField\";\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport FormActions from \"../../forms/formActions/FormActions\";\nimport { getUtcOffset } from \"../../../utils/date\";\nimport CancelButton from \"../../common/buttons/cancelButton/CancelButton\";\nimport { trackEvent } from \"../../../utils/appInsightsHelper\";\n\nexport const CreateAlertEventDialog = ({\n close,\n alertId,\n openCreation,\n create,\n}) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n dayjs.extend(utc);\n const eventTypes = useSelector((state) => state.alertEvents.eventTypes);\n const eventSubtypes = useSelector((state) => state.alertEvents.eventSubtypes);\n const [filteredSubtypes, setFilteredSubtypes] = useState([]);\n const [date, setDate] = useState(dayjs().format(\"YYYY-MM-DD\"));\n const [form, setForm] = useState(null);\n const isSaving = useSelector((state) => state.alertEvents.formSaving);\n\n useMount(() => {\n openCreation();\n });\n\n useEffect(() => {\n if (!eventTypes.length || !eventSubtypes.length) {\n return null;\n }\n\n const fields = {\n eventTypeId: \"\",\n eventSubtypeId: \"\",\n time: dayjs().hour(0).minute(0).format(\"HH:mm\"),\n text: \"\",\n };\n\n const validation = {\n eventTypeId: [validators.required],\n eventSubtypeId: [\n validators.requiredWhen((x) =>\n eventSubtypes.some(\n (subtype) => subtype.typeId === parseInt(x.eventTypeId),\n ),\n ),\n ],\n date: [validators.required],\n text: [validators.maxLength(4000)],\n };\n setForm(createForm(fields, validation));\n }, [eventTypes, eventSubtypes]);\n\n const onEventTypeChange = (event) => {\n const eventTypeId = event.target.value;\n setFilteredSubtypes(\n eventSubtypes.filter(\n (subtype) => subtype.typeId.toString() === eventTypeId,\n ),\n );\n\n form.fields.eventSubtypeId.update(\"\");\n };\n\n const handleDateChange = (date) => {\n setDate(dayjs(date).format(\"YYYY-MM-DD\"));\n };\n\n const handleSubmit = (event) => {\n event.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n create(alertId, {\n eventTypeId: parseInt(values.eventTypeId),\n eventSubtypeId: parseInt(values.eventSubtypeId),\n timestamp: dayjs(`${date} ${values.time}`).utc(),\n text: values.text,\n utcOffset: getUtcOffset(),\n });\n\n trackEvent(\"createAlertEvent\", {\n alertId: alertId,\n eventTypeId: values.eventTypeId,\n eventSubtypeId: values.eventSubtypeId,\n });\n\n close();\n };\n\n return (\n !!form && (\n e.stopPropagation()}\n fullScreen={fullScreen}\n >\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n\n \n
\n \n \n \n {eventTypes.map((type) => (\n \n {strings(\n stringKeys.alerts.constants.eventTypes[type.name],\n )}\n \n ))}\n \n \n\n {filteredSubtypes.length > 0 && (\n \n \n {filteredSubtypes.map((type) => (\n \n {strings(\n stringKeys.alerts.constants.eventSubtypes[type.name],\n )}\n \n ))}\n \n \n )}\n\n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.add)}\n \n \n
\n
\n \n )\n );\n};\n","import React, { useEffect, Fragment, useState } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport * as alertEventsActions from \"./logic/alertEventsActions\";\nimport { AlertEventsTable } from \"./components/AlertEventsTable\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { CreateAlertEventDialog } from \"./components/CreateAlertEventDialog\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { AlertStatusChip } from \"../common/chip/AlertStatusChip\";\nimport * as alertsActions from \"../alerts/logic/alertsActions\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport { TabMenu } from \"../layout/TabMenu\";\n\nconst AlertEventsLogPageComponent = ({\n alertId,\n projectId,\n data,\n alert,\n ...props\n}) => {\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n const [createDialogOpened, setCreateDialogOpened] = useState(false);\n\n useMount(() => {\n props.openEventLog(projectId, alertId);\n props.openAssessment(projectId, alertId);\n\n // Track page view\n trackPageView(\"AlertEventsLogPage\");\n });\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n }, [props.data, props.match]);\n\n if (props.isFetching || !data || !alert) {\n return ;\n }\n return (\n \n \n \n \n \n {props.title}\n \n {`#${alertId}`}\n \n \n \n {props.subTitle}\n \n \n \n \n \n setCreateDialogOpened(true)}\n variant=\"contained\"\n roles={accessMap.alertEvents.add}\n add\n rtl={useRtlDirection}\n >\n {strings(stringKeys.common.buttons.add)}\n \n \n \n\n {createDialogOpened && (\n setCreateDialogOpened(false)}\n openCreation={props.openCreation}\n create={props.create}\n alertId={alertId}\n />\n )}\n \n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n alertId: ownProps.match.params.alertId,\n isFetching: state.alertEvents.logFetching,\n isSaving: state.alertEvents.formSaving,\n isRemoving: state.alertEvents.logRemoving,\n data: state.alertEvents.logItems,\n alert: state.alerts.formData,\n title: state.appData.siteMap.parameters.title,\n subTitle: state.appData.siteMap.parameters.subTitle,\n});\n\nconst mapDispatchToProps = {\n openAssessment: alertsActions.openAssessment.invoke,\n openEventLog: alertEventsActions.openEventLog.invoke,\n openCreation: alertEventsActions.openCreation.invoke,\n create: alertEventsActions.create.invoke,\n remove: alertEventsActions.remove.invoke,\n edit: alertEventsActions.edit.invoke,\n};\n\nexport const AlertEventsLogPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(AlertEventsLogPageComponent),\n);\n","import { makeStyles } from \"@material-ui/core/styles\";\nimport { SubMenuTitle } from \"../../layout/SubMenuTitle\";\n\nconst useStyles = makeStyles(() => ({\n settingsHeader: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n}));\n\nconst SettingsTableHeader = ({ children }) => {\n const classes = useStyles();\n\n return (\n
\n \n {children}\n
\n );\n};\n\nexport default SettingsTableHeader;\n","import React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Grid, Typography, Card, CardContent } from \"@material-ui/core\";\nimport { stringKeys, strings } from \"../../strings\";\nimport Form from \"../forms/form/Form\";\nimport { validators, createForm } from \"../../utils/forms\";\nimport Layout from \"../layout/Layout\";\nimport { withLayout } from \"../../utils/layout\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport TextInputField from \"../forms/TextInputField\";\nimport * as http from \"../../utils/http\";\nimport { openErrorMessages } from \"./logic/projectsActions\";\nimport styles from \"./ProjectErrorMessagesPage.module.scss\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport SettingsTableHeader from \"../common/settingsTableHeader/SettingsTableHeader\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport { useMount } from \"../../utils/lifecycle\";\n\nconst MESSAGE_MAX_LEN = 320;\nconst MESSAGE_WARNING_LEN = 160;\n\nconst ProjectErrorMessagesPageComponent = (props) => {\n const [errorMessages, setErrorMessages] = useState([]);\n const [isSaving, setIsSaving] = useState(false);\n\n useMount(() => {\n // Track page view\n trackPageView(\"ProjectErrorMessagesPage\");\n });\n\n const [form, setForm] = useState(null);\n\n async function fetchData() {\n props.openErrorMessages(props.projectId);\n setErrorMessages(\n await http.get(`/api/project/${props.projectId}/errorMessages`),\n );\n }\n\n function edit() {\n const fields = {};\n const validation = {};\n\n errorMessages.forEach((itm) => {\n fields[itm.key] = itm.message;\n validation[itm.key] = [\n validators.required,\n validators.maxLength(MESSAGE_MAX_LEN),\n ];\n });\n\n setForm(createForm(fields, validation));\n }\n\n function cancelEdit() {\n setForm(null);\n }\n\n async function onSubmit(e) {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const url = `/api/project/${props.projectId}/errorMessages`;\n const data = {};\n\n errorMessages.forEach((itm) => {\n data[itm.key] = form.fields[itm.key].value;\n });\n\n try {\n setErrorMessages(await http.put(url, data));\n setForm(null);\n } catch (error) {\n console.error(error);\n } finally {\n setIsSaving(false);\n }\n }\n\n useEffect(() => {\n fetchData();\n }, []);\n\n if (errorMessages.length === 0) {\n return ;\n }\n\n return (\n \n \n \n {form && (\n <>\n \n {strings(stringKeys.form.cancel)}\n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n )}\n {!form && (\n }\n variant={\"contained\"}\n onClick={edit}\n roles={accessMap.projectErrorMessages.edit}\n >\n {strings(stringKeys.common.buttons.edit)}\n \n )}\n \n \n
\n \n {errorMessages.map((itm) => (\n \n \n \n \n {strings(`${itm.key}.title`)}\n \n {!form && (\n \n {itm.message}\n \n )}\n {form && (\n <>\n \n \n \n )}\n \n \n \n ))}\n \n
\n
\n );\n};\n\nconst InputWarningMessage = ({ formField }) => {\n const [message, setMessage] = useState(\"\");\n\n function validate(value) {\n const message =\n value.length > MESSAGE_WARNING_LEN\n ? strings(stringKeys.project.errorMessages.tooLongWarning)\n : \"\";\n\n setMessage(message);\n }\n\n useEffect(() => {\n formField.subscribe(({ newValue }) => {\n validate(newValue);\n });\n\n validate(formField.value);\n }, []);\n\n return

{message}

;\n};\n\nconst mapStateToProps = (_, ownProps) => ({\n projectId: ownProps.match.params.projectId,\n});\n\nconst mapDispatchToProps = {\n openErrorMessages: openErrorMessages,\n};\n\nexport const ProjectErrorMessagesPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ProjectErrorMessagesPageComponent),\n);\n","import React from \"react\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nexport class EidsrIntegrationNotEnabled extends React.Component {\n render() {\n return (\n \n \n \n \n \n \n \n \n {strings(stringKeys.eidsrIntegration.disabled)}\n \n \n \n \n \n );\n }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { IconButton, Typography } from \"@material-ui/core\";\nimport Visibility from \"@material-ui/icons/Visibility\";\nimport VisibilityOff from \"@material-ui/icons/VisibilityOff\";\n\nexport const PasswordDisplayField = ({ label, value }) => {\n const [showPassword, setShowPassword] = React.useState(false);\n\n const togglePassword = () => {\n setShowPassword(!showPassword);\n };\n\n const getAsterisk = (value) => {\n return Array(value.length).join(\"*\");\n };\n\n return (\n <>\n {label}\n \n {showPassword ? value : getAsterisk(value)}\n event.preventDefault()}\n >\n {showPassword ? : }\n \n \n \n );\n};\n\nPasswordDisplayField.propTypes = {\n onClick: PropTypes.func,\n label: PropTypes.string,\n};\n\nexport default PasswordDisplayField;\n","import React, { Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport * as eidsrIntegrationActions from \"./logic/eidsrIntegrationActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { stringKeys, strings } from \"../../strings\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport Form from \"../forms/form/Form\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport styles from \"./EidsrIntegration.module.scss\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { EidsrIntegrationNotEnabled } from \"./components/EidsrIntegrationNotEnabled\";\nimport PasswordDisplayField from \"../forms/PasswordDisplayField\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst EidsrIntegrationPageComponent = (props) => {\n useMount(() => {\n props.getEidsrIntegration(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"EidsrIntegrationPage\");\n });\n\n if (props.isFetching || !props.data) {\n return ;\n }\n\n if (!props.isEnabled) {\n return ;\n }\n\n return (\n \n
\n \n \n \n {strings(stringKeys.eidsrIntegration.form.userName)}\n \n \n {props.data.username ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n\n \n {props.data.password ? (\n \n ) : (\n <>\n \n {strings(stringKeys.eidsrIntegration.form.password)}\n \n \n {props.data.password ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n )}\n \n\n \n \n {strings(stringKeys.eidsrIntegration.form.apiBaseUrl)}\n \n \n {props.data.apiBaseUrl ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n\n \n \n {strings(stringKeys.eidsrIntegration.form.trackerProgramId)}\n \n \n {props.data.trackerProgramId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n\n \n
\n
\n {strings(stringKeys.eidsrIntegration.form.dataElements)}\n
\n
\n\n \n \n {strings(stringKeys.eidsrIntegration.form.locationDataElementId)}\n \n \n {props.data.locationDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n\n \n \n {strings(\n stringKeys.eidsrIntegration.form.dateOfOnsetDataElementId,\n )}\n \n \n {props.data.dateOfOnsetDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n\n \n\n \n \n {strings(\n stringKeys.eidsrIntegration.form.suspectedDiseaseDataElementId,\n )}\n \n \n {props.data.suspectedDiseaseDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n\n \n\n \n \n {strings(stringKeys.eidsrIntegration.form.genderDataElementId)}\n \n \n {props.data.genderDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n\n \n
\n
\n {strings(\"Data Elements for Reports\")}\n
\n
\n \n {strings(\"Report Location\")}\n \n {props.data.reportLocationDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n {strings(\"Report Geo Location\")}\n \n {props.data.reportGeoLocationDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Health Risk\")}\n \n \n {props.data.reportHealthRiskDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Suspected Disease\")}\n \n \n {props.data.reportSuspectedDiseaseDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n {strings(\"Report Status\")}\n \n {props.data.reportStatusDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n {strings(\"Report Gender\")}\n \n {props.data.reportGenderDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n {strings(\"Report AgeGroup\")}\n \n {props.data.reportAgeGroupDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Case Count Female Age At Least 5\")}\n \n \n {props.data.reportCaseCountFemaleAgeAtLeastFiveDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Case Count Male Age At Least 5\")}\n \n \n {props.data.reportCaseCountMaleAgeAtLeastFiveDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Case Count Female Age Below 5\")}\n \n \n {props.data.reportCaseCountFemaleAgeBelowFiveDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Case Count Male Age Below 5\")}\n \n \n {props.data.reportCaseCountMaleAgeBelowFiveDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Date\")}\n \n \n {props.data.reportDateDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Time\")}\n \n \n {props.data.reportTimeDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n \n {strings(\"Report Data Collector ID\")}\n \n \n {props.data.reportDataCollectorIdDataElementId ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n\n \n
\n
\n {strings(stringKeys.eidsrIntegration.form.districts)}\n
\n
\n\n \n {props.data.districtsWithOrganizationUnits?.map((item, index) => (\n \n \n District\n {item.districtName}\n \n \n Organisation Unit\n \n {item.organisationUnitName ??\n strings(stringKeys.eidsrIntegration.form.dataNotSet)}\n \n \n \n ))}\n {props.data.districtsWithOrganizationUnits.length === 0 && (\n

{strings(stringKeys.eidsrIntegration.form.noDistricts)}

\n )}\n
\n
\n\n \n \n props.goToEidsrIntegrationEdition(props.nationalSocietyId)\n }\n roles={accessMap.eidsrIntegration.edit}\n variant={\"contained\"}\n >\n {strings(stringKeys.common.buttons.edit)}\n \n \n
\n
\n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n\n data: state.eidsrIntegration.data,\n isFetching: state.eidsrIntegration.isFetching,\n\n isEnabled:\n state.appData.siteMap.parameters.nationalSocietyEnableEidsrIntegration,\n callingUserRoles: state.appData.user.roles,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n nationalSocietyHasCoordinator:\n state.appData.siteMap.parameters.nationalSocietyHasCoordinator,\n});\n\nconst mapDispatchToProps = {\n getEidsrIntegration: eidsrIntegrationActions.get.invoke,\n goToEidsrIntegrationEdition:\n eidsrIntegrationActions.goToEidsrIntegrationEdition,\n};\n\nexport const EidsrIntegrationPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(EidsrIntegrationPageComponent),\n);\n","import React from \"react\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport MuiAccordion from \"@material-ui/core/Accordion\";\nimport MuiAccordionSummary from \"@material-ui/core/AccordionSummary\";\nimport MuiAccordionDetails from \"@material-ui/core/AccordionDetails\";\n\nexport const DistrictAccordion = withStyles({\n root: {\n border: \"1px solid rgba(0, 0, 0, .125)\",\n boxShadow: \"none\",\n \"&:not(:last-child)\": {\n borderBottom: 0,\n },\n \"&:before\": {\n display: \"none\",\n },\n \"&$expanded\": {\n margin: \"auto\",\n },\n },\n expanded: {},\n})(MuiAccordion);\n\nexport const DistrictAccordionSummary = withStyles({\n root: {\n backgroundColor: \"rgba(0, 0, 0, .005)\",\n borderBottom: \"1px solid rgba(0, 0, 0, .125)\",\n marginBottom: -1,\n minHeight: 56,\n \"&$expanded\": {\n minHeight: 56,\n },\n },\n content: {\n \"&$expanded\": {\n margin: \"12px 0\",\n },\n },\n expanded: {},\n})(MuiAccordionSummary);\n\nexport const DistrictAccordionDetails = withStyles((theme) => ({\n root: {\n padding: theme.spacing(2),\n },\n}))(MuiAccordionDetails);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\nimport ListSubheader from \"@material-ui/core/ListSubheader\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport { VariableSizeList } from \"react-window\";\nimport { CircularProgress, Typography } from \"@material-ui/core\";\nimport styles from \"./VirtualizedAutocomplete.module.scss\";\n\nconst LISTBOX_PADDING = 8; // px\n\nfunction renderRow(props) {\n const { data, index, style } = props;\n return React.cloneElement(data[index], {\n style: {\n ...style,\n top: style.top + LISTBOX_PADDING,\n },\n });\n}\n\nconst OuterElementContext = React.createContext({});\n\nconst OuterElementType = React.forwardRef((props, ref) => {\n const outerProps = React.useContext(OuterElementContext);\n return
;\n});\n\nfunction useResetCache(data) {\n const ref = React.useRef(null);\n React.useEffect(() => {\n if (ref.current != null) {\n ref.current.resetAfterIndex(0, true);\n }\n }, [data]);\n return ref;\n}\n\n// Adapter for react-window\nconst ListboxComponent = React.forwardRef(\n function ListboxComponent(props, ref) {\n const { children, ...other } = props;\n const itemData = React.Children.toArray(children);\n const theme = useTheme();\n const smUp = useMediaQuery(theme.breakpoints.up(\"sm\"), { noSsr: true });\n const itemCount = itemData.length;\n const itemSize = smUp ? 36 : 48;\n\n const getChildSize = (child) => {\n if (React.isValidElement(child) && child.type === ListSubheader) {\n return 48;\n }\n\n return itemSize;\n };\n\n const getHeight = () => {\n if (itemCount > 8) {\n return 8 * itemSize;\n }\n return itemData.map(getChildSize).reduce((a, b) => a + b, 0);\n };\n\n const gridRef = useResetCache(itemCount);\n\n return (\n
\n \n getChildSize(itemData[index])}\n overscanCount={5}\n itemCount={itemCount}\n >\n {renderRow}\n \n \n
\n );\n },\n);\n\nListboxComponent.propTypes = {\n children: PropTypes.node,\n};\n\nconst renderGroup = (params) => [\n \n {params.group}\n ,\n params.children,\n];\n\nconst cleanUpOptions = (array) => {\n // trim whitespaces\n for (let i = 0; i < array.length; i++) {\n array[i].display = array[i].display.trim();\n }\n\n // sort by first character\n array.sort(function (a, b) {\n let textA = a.display.toUpperCase();\n let textB = b.display.toUpperCase();\n return textA < textB ? -1 : textA > textB ? 1 : 0;\n });\n};\n\n// options prop is an array of objects {id, display}\nexport const VirtualizedAutocomplete = ({\n id,\n label,\n options,\n optionsLoading,\n loadingText,\n noOptionsText,\n handleChangeValue,\n}) => {\n let value = \"\";\n\n cleanUpOptions(options);\n\n return (\n `${option.display} (${option.id})`}\n groupBy={(option) => option.display[0].toUpperCase()}\n size=\"small\"\n renderInput={(params) => (\n \n {optionsLoading ? (\n \n ) : null}\n {params.InputProps.endAdornment}\n \n ),\n }}\n />\n )}\n onChange={(event, value) => handleChangeValue(value)}\n renderOption={(option) => (\n \n \n {option.display} ({option.id}){\" \"}\n \n \n )}\n />\n );\n};\n","import * as http from \"../../../utils/http\";\nimport * as appActions from \"./appActions\";\n\nexport const runApplication = (dispatch) =>\n http\n .get(\"/api/authentication/status\")\n .then((status) => {\n const user = status.value.isAuthenticated ? status.value.userData : null;\n\n dispatch(appActions.getUser.success(status.value.isAuthenticated, user));\n dispatch(appActions.initApplication.invoke());\n })\n .catch(() => {\n dispatch(appActions.initApplication.invoke());\n });\n","import React, { useEffect } from \"react\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport Typography from \"@material-ui/core/Typography\";\nimport {\n DistrictAccordion,\n DistrictAccordionDetails,\n DistrictAccordionSummary,\n} from \"./DistrictAccordion\";\nimport { Button, Grid } from \"@material-ui/core\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\nimport { VirtualizedAutocomplete } from \"../../forms/VirtualizedAutocomplete\";\nimport { stringKeys, strings } from \"../../../strings\";\n\nexport const EidsrIntegrationEditPageDistrictsComponent = ({\n districtsWithOrganizationUnits,\n integrationEditingDisabled,\n organisationUnits,\n organisationUnitsIsFetching,\n onChange,\n}) => {\n const [districtAccordionExpanded, setDistrictAccordionExpanded] =\n React.useState(\"\");\n const [districtDropdownsValues, setDistrictDropdownsValues] = React.useState(\n {},\n );\n const [\n districtsWithOrganizationUnitsState,\n setDistrictsWithOrganizationUnitsState,\n ] = React.useState(districtsWithOrganizationUnits);\n\n const districtAccordionChange = (panel) => (event, newExpanded) => {\n setDistrictAccordionExpanded(newExpanded ? panel : false);\n };\n\n const updateDistrictDropdownsValues = (index, value) => {\n let newTab = districtDropdownsValues;\n newTab[index] = value;\n setDistrictDropdownsValues(newTab);\n };\n\n useEffect(() => {\n onChange(districtsWithOrganizationUnitsState);\n }, [JSON.stringify(districtsWithOrganizationUnitsState)]);\n\n const applyOrganisationUnit = (index) => {\n let newState = districtsWithOrganizationUnitsState;\n\n const newValue = districtDropdownsValues[index];\n const idx = newState.findIndex((x) => x.districtId === index);\n\n newState[idx] = {\n ...newState[idx],\n organisationUnitId: newValue?.id,\n organisationUnitName: newValue?.display,\n };\n\n setDistrictsWithOrganizationUnitsState(newState);\n setDistrictAccordionExpanded(\"\");\n };\n\n const organisationUnitsOptions = organisationUnits.map((option) => {\n return {\n id: option.id,\n display: option.displayName,\n };\n });\n\n return (\n <>\n {districtsWithOrganizationUnitsState?.map((item, index) => (\n \n }\n aria-controls={`panel${item.districtId}-content`}\n id={`panel${item.districtId}-header`}\n >\n \n \n \n {\" \"}\n {strings(stringKeys.eidsrIntegration.form.districts)}{\" \"}\n \n {item.districtName}\n \n \n \n {\" \"}\n {strings(\n stringKeys.eidsrIntegration.form.organisationUnits,\n )}{\" \"}\n \n {item.organisationUnitId ? (\n \n {item.organisationUnitName}{\" \"}\n \n \n ) : (\n \n {\" \"}\n \n \n )}\n \n \n \n {!integrationEditingDisabled && (\n \n \n \n \n updateDistrictDropdownsValues(item.districtId, value)\n }\n optionsLoading={organisationUnitsIsFetching}\n loadingText={strings(\n stringKeys.eidsrIntegration.form.loading,\n )}\n noOptionsText={strings(\n stringKeys.eidsrIntegration.form.noOptions,\n )}\n />\n \n \n {\n applyOrganisationUnit(item.districtId);\n }}\n >\n Save\n \n \n \n \n )}\n \n ))}\n {districtsWithOrganizationUnitsState.length === 0 && (\n

{strings(stringKeys.eidsrIntegration.form.noDistricts)}

\n )}\n \n );\n};\n","import { stringKeys, strings, stringsFormat } from \"../../../strings\";\n\nexport const districtValidator = {\n allOrganisationUnits: [\n () => strings(stringKeys.eidsrIntegration.form.allDistrictsShouldOrgUnit),\n (value) => {\n if (value && value.length > 0) {\n for (let i = 0; i < value.length; i++) {\n let districtItem = value[i];\n\n if (\n districtItem.organisationUnitId == null ||\n districtItem.organisationUnitId.trim() === \"\"\n ) {\n return false;\n }\n\n if (\n districtItem.organisationUnitName == null ||\n districtItem.organisationUnitName.trim() === \"\"\n ) {\n return false;\n }\n }\n }\n\n return true;\n },\n ],\n};\n","import React, { Fragment, useEffect, useState } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as eidsrIntegrationActions from \"./logic/eidsrIntegrationActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport FormActions from \"../forms/formActions/FormActions\";\nimport CancelButton from \"../common/buttons/cancelButton/CancelButton\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport Form from \"../forms/form/Form\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { createForm, validators } from \"../../utils/forms\";\nimport { ValidationMessage } from \"../forms/ValidationMessage\";\nimport {\n Button,\n CircularProgress,\n Grid,\n MenuItem,\n Tooltip,\n Typography,\n} from \"@material-ui/core\";\nimport TextInputField from \"../forms/TextInputField\";\nimport styles from \"./EidsrIntegration.module.scss\";\nimport { EidsrIntegrationNotEnabled } from \"./components/EidsrIntegrationNotEnabled\";\nimport PasswordInputField from \"../forms/PasswordInputField\";\nimport { EidsrIntegrationEditPageDistrictsComponent } from \"./components/EidsrIntegratonEditPageDistricts\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport LiveHelpIcon from \"@material-ui/icons/LiveHelp\";\nimport { districtValidator } from \"./components/districtValidator\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst EidsrIntegrationEditPageComponent = (props) => {\n const [form, setForm] = useState(null);\n const [integrationEditingDisabled, setIntegrationEditingDisabled] =\n useState(true);\n\n useMount(() => {\n props.getEidsrIntegration(props.nationalSocietyId);\n\n // Track page view\n trackPageView(\"EidsrIntegrationEditPage\");\n });\n\n useEffect(() => {\n if (!props.data) {\n return;\n }\n\n const fields = {\n username: props.data.username ?? \"\",\n password: props.data.password ?? \"\",\n apiBaseUrl: props.data.apiBaseUrl ?? \"\",\n trackerProgramId: props.data.trackerProgramId ?? \"\",\n locationDataElementId: props.data.locationDataElementId ?? \"\",\n dateOfOnsetDataElementId: props.data.dateOfOnsetDataElementId ?? \"\",\n phoneNumberDataElementId: props.data.phoneNumberDataElementId ?? \"\",\n suspectedDiseaseDataElementId:\n props.data.suspectedDiseaseDataElementId ?? \"\",\n eventTypeDataElementId: props.data.eventTypeDataElementId ?? \"\",\n genderDataElementId: props.data.genderDataElementId ?? \"\",\n districtsWithOrganizationUnits:\n props.data.districtsWithOrganizationUnits ?? [],\n\n reportLocationDataElementId: props.data.reportLocationDataElementId ?? \"\",\n reportGeoLocationDataElementId: props.data.reportGeoLocationDataElementId ?? \"\",\n reportHealthRiskDataElementId: props.data.reportHealthRiskDataElementId ?? \"\",\n reportSuspectedDiseaseDataElementId: props.data.reportSuspectedDiseaseDataElementId ?? \"\",\n reportStatusDataElementId: props.data.reportStatusDataElementId ?? \"\",\n reportGenderDataElementId: props.data.reportGenderDataElementId ?? \"\",\n reportAgeGroupDataElementId: props.data.reportAgeGroupDataElementId ?? \"\",\n reportCaseCountFemaleAgeAtLeastFiveDataElementId: props.data.reportCaseCountFemaleAgeAtLeastFiveDataElementId ?? \"\",\n reportCaseCountMaleAgeAtLeastFiveDataElementId: props.data.reportCaseCountMaleAgeAtLeastFiveDataElementId ?? \"\",\n reportCaseCountFemaleAgeBelowFiveDataElementId: props.data.reportCaseCountFemaleAgeBelowFiveDataElementId ?? \"\",\n reportCaseCountMaleAgeBelowFiveDataElementId: props.data.reportCaseCountMaleAgeBelowFiveDataElementId ?? \"\",\n reportDateDataElementId: props.data.reportDateDataElementId ?? \"\",\n reportTimeDataElementId: props.data.reportTimeDataElementId ?? \"\",\n reportDataCollectorIdDataElementId: props.data.reportDataCollectorIdDataElementId ?? \"\"\n };\n\n const validation = {\n username: [validators.required],\n password: [validators.required],\n apiBaseUrl: [validators.required],\n trackerProgramId: [validators.required],\n districtsWithOrganizationUnits: [districtValidator.allOrganisationUnits],\n };\n\n setForm(createForm(fields, validation));\n }, [props.data]);\n\n useEffect(() => {\n enableIntegrationEditing();\n }, [props.program]);\n\n const enableIntegrationEditing = () => {\n if (\n form != null &&\n props?.program?.name != null &&\n props?.program?.name !== \"\"\n ) {\n setIntegrationEditingDisabled(false);\n let formApiProperties = getFormApiProperties();\n props.getOrganisationUnits(\n formApiProperties,\n formApiProperties.ProgramId,\n );\n } else {\n setIntegrationEditingDisabled(true);\n }\n };\n\n const testConnection = () => {\n let formApiProperties = getFormApiProperties();\n props.getProgram(formApiProperties, formApiProperties.ProgramId);\n };\n\n const updateDistrictsField = (newValue) => {\n if (form == null) return;\n\n form.fields.districtsWithOrganizationUnits.value = newValue;\n };\n\n const getFormApiProperties = () => {\n const values = form.getValues();\n\n return {\n Url: values?.apiBaseUrl,\n UserName: values?.username,\n Password: values?.password,\n ProgramId: values?.trackerProgramId,\n };\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n const values = form.getValues();\n\n props.editEidsrIntegration(props.nationalSocietyId, {\n username: values.username,\n password: values.password,\n apiBaseUrl: values.apiBaseUrl,\n trackerProgramId: values.trackerProgramId,\n locationDataElementId: values.locationDataElementId,\n dateOfOnsetDataElementId: values.dateOfOnsetDataElementId,\n phoneNumberDataElementId: values.phoneNumberDataElementId,\n suspectedDiseaseDataElementId: values.suspectedDiseaseDataElementId,\n eventTypeDataElementId: values.eventTypeDataElementId,\n genderDataElementId: values.genderDataElementId,\n districtsWithOrganizationUnits: values.districtsWithOrganizationUnits,\n\n reportLocationDataElementId: values.reportLocationDataElementId,\n reportGeoLocationDataElementId: values.reportGeoLocationDataElementId,\n reportHealthRiskDataElementId: values.reportHealthRiskDataElementId,\n reportSuspectedDiseaseDataElementId:\n values.reportSuspectedDiseaseDataElementId,\n reportStatusDataElementId: values.reportStatusDataElementId,\n reportGenderDataElementId: values.reportGenderDataElementId,\n reportAgeGroupDataElementId: values.reportAgeGroupDataElementId,\n reportCaseCountFemaleAgeAtLeastFiveDataElementId: values.reportCaseCountFemaleAgeAtLeastFiveDataElementId,\n reportCaseCountMaleAgeAtLeastFiveDataElementId: values.reportCaseCountMaleAgeAtLeastFiveDataElementId,\n reportCaseCountFemaleAgeBelowFiveDataElementId: values.reportCaseCountFemaleAgeBelowFiveDataElementId,\n reportCaseCountMaleAgeBelowFiveDataElementId: values.reportCaseCountMaleAgeBelowFiveDataElementId,\n reportDateDataElementId: values.reportDateDataElementId,\n reportTimeDataElementId: values.reportTimeDataElementId,\n reportDataCollectorIdDataElementId: values.reportDataCollectorIdDataElementId\n });\n };\n\n if (props.isFetching || !form) {\n return ;\n }\n\n if (!props.isEnabled) {\n return ;\n }\n\n return (\n \n {props.formError && !props.formError.data && (\n \n )}\n\n
\n \n \n \n setIntegrationEditingDisabled(true)\n }\n />\n \n \n \n setIntegrationEditingDisabled(true)\n }\n />\n \n \n \n setIntegrationEditingDisabled(true)\n }\n />\n \n \n \n setIntegrationEditingDisabled(true)\n }\n />\n \n\n \n \n testConnection()}\n >\n {strings(stringKeys.eidsrIntegration.form.testConn)}\n \n \n \n {props.programIsFetching && (\n \n )}\n {!props.programIsFetching && integrationEditingDisabled && (\n \n {\" \"}\n {strings(stringKeys.eidsrIntegration.form.connNotTested)}{\" \"}\n \n \n )}\n {!props.programIsFetching && !integrationEditingDisabled && (\n \n {props?.program?.name}{\" \"}\n \n \n )}\n \n \n \n
\n
\n {strings(stringKeys.eidsrIntegration.form.dataElements)}\n {integrationEditingDisabled && (\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 {strings(\"Data Elements for Reports\")}\n {integrationEditingDisabled && (\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 {strings(stringKeys.eidsrIntegration.form.districts)}\n {integrationEditingDisabled && (\n \n \n \n )}\n
\n
\n\n \n
\n {\n updateDistrictsField(newValue);\n }}\n />\n
\n
\n \n
\n
\n
\n\n \n props.goToEidsrIntegration(props.nationalSocietyId)}\n >\n {strings(stringKeys.form.cancel)}\n \n \n {\" \"}\n {strings(stringKeys.common.buttons.update)}{\" \"}\n \n {integrationEditingDisabled && (\n \n \n \n )}\n \n
\n
\n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n\n data: state.eidsrIntegration.data,\n isFetching: state.eidsrIntegration.isFetching,\n formError: state.eidsrIntegration.formError,\n formSaving: state.eidsrIntegration.formSaving,\n\n isEnabled:\n state.appData.siteMap.parameters.nationalSocietyEnableEidsrIntegration,\n callingUserRoles: state.appData.user.roles,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n nationalSocietyHasCoordinator:\n state.appData.siteMap.parameters.nationalSocietyHasCoordinator,\n\n organisationUnits: state.eidsrIntegration.organisationUnits,\n organisationUnitsIsFetching:\n state.eidsrIntegration.organisationUnitsIsFetching,\n\n program: state.eidsrIntegration.program,\n programIsFetching: state.eidsrIntegration.programIsFetching,\n});\n\nconst mapDispatchToProps = {\n getEidsrIntegration: eidsrIntegrationActions.get.invoke,\n goToEidsrIntegration: eidsrIntegrationActions.goToEidsrIntegration,\n editEidsrIntegration: eidsrIntegrationActions.edit.invoke,\n\n getOrganisationUnits: eidsrIntegrationActions.getOrganisationUnits.invoke,\n getProgram: eidsrIntegrationActions.getProgram.invoke,\n};\n\nexport const EidsrIntegrationEditPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(EidsrIntegrationEditPageComponent),\n);\n","import React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport * as appActions from \"../app/logic/appActions\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { connect } from \"react-redux\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { createForm, validators } from \"../../utils/forms\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport TextInputField from \"../forms/TextInputField\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { sendFeedback } from \"../app/logic/appActions\";\nimport GoBackToButton from \"../common/buttons/goBackToButton/GoBackToButton\";\nimport { goBack } from \"connected-react-router\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst useStyles = makeStyles({\n input: {\n height: 200,\n },\n label: {\n textAlign: \"center\",\n position: \"relative\",\n },\n title: {\n color: \"black\",\n fontSize: 24,\n textAlign: \"center\",\n },\n container: {\n height: \"100%\",\n },\n});\n\nconst Feedback = ({ openModule, match, goBack }) => {\n const isSendingFeedback = useSelector(\n (state) => state.appData.feedback.isSending,\n );\n const sendFeedbackResult = useSelector(\n (state) => state.appData.feedback.result,\n );\n\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const [hasSent, setHasSent] = useState(false);\n const [form, setForm] = useState(() => {\n const fields = { message: \"\" };\n const validation = {\n message: [validators.maxLength(1000), validators.required],\n };\n return createForm(fields, validation);\n });\n\n useMount(() => {\n openModule(match.path, match.params);\n setHasSent(false);\n \n // Track page view\n trackPageView(\"FeedbackPage\");\n });\n\n const handleSubmit = (e) => {\n e.preventDefault();\n if (!form.isValid()) {\n return;\n }\n\n dispatch(\n sendFeedback.invoke({\n message: form.fields.message.value,\n }),\n );\n\n setHasSent(true);\n };\n\n const resetForm = () => {\n setForm(() => {\n const fields = { message: \"\" };\n const validation = {\n message: [validators.maxLength(1000), validators.required],\n };\n return createForm(fields, validation);\n });\n };\n\n const handleGoBack = () => {\n resetForm();\n goBack();\n };\n\n const handleSendNewFeedback = () => {\n resetForm();\n setHasSent(false);\n };\n\n return (\n <>\n {(!hasSent || isSendingFeedback) && (\n \n \n {strings(stringKeys.common.buttons.goBack)}\n \n \n )}\n \n <>\n {(!hasSent || isSendingFeedback) && (\n \n \n \n {strings(stringKeys.feedback.title)}\n \n \n \n \n \n {strings(stringKeys.feedback.submit)}\n \n \n \n )}\n {hasSent && sendFeedbackResult === \"ok\" && (\n \n \n \n {strings(stringKeys.feedback.thankYouTitle)}\n \n \n {strings(stringKeys.feedback.thankYouDescription)}\n \n \n \n {strings(stringKeys.common.buttons.goBack)}\n \n \n \n \n )}\n\n {hasSent && sendFeedbackResult === \"error\" && (\n \n \n {strings(stringKeys.feedback.errorTitle)}\n \n \n {strings(stringKeys.feedback.errorDescription)}\n \n \n {strings(stringKeys.common.buttons.tryAgain)}\n \n \n )}\n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n openModule: appActions.openModule.invoke,\n goBack: goBack,\n};\n\nexport const FeedbackPage = withLayout(\n Layout,\n connect(null, mapDispatchToProps)(Feedback),\n { fillPage: true },\n);\n","import styles from \"./ProjectAlertNotHandledRecipientItem.module.scss\";\nimport React, { useEffect, useState } from \"react\";\nimport { Select, MenuItem, Grid, Typography, IconButton } from \"@material-ui/core\";\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { useSelector } from \"react-redux\";\nimport { strings, stringKeys } from \"../../../strings\";\n\nexport const ProjectAlertNotHandledRecipientItem = ({\n isAdministrator,\n getFormData,\n projectId,\n rtl,\n unhandledRecipient,\n unhandledRecipients,\n setUnhandledRecipients,\n setNewRecipient,\n isCreating,\n isEditing,\n error,\n setError,\n remove,\n hideDelete,\n}) => {\n const [user, setUser] = useState(unhandledRecipient);\n const users = useSelector(\n (state) => state.projectAlertNotHandledRecipients.users,\n );\n\n useEffect(() => {\n getFormData(projectId);\n }, [projectId, getFormData]);\n\n const handleRecipientChange = (change) => {\n const user = users.filter((u) => u.userId === change.target.value)[0];\n setUser(user);\n setError(false);\n if (setNewRecipient) {\n setNewRecipient(user);\n } else {\n const removedRecipientIndex = unhandledRecipients.findIndex(\n (rec) => rec.userId === unhandledRecipient.userId,\n );\n let newRecipientList = [...unhandledRecipients];\n newRecipientList[removedRecipientIndex] = user;\n setUnhandledRecipients(newRecipientList);\n }\n };\n\n const handleRecipientDelete = () => {\n remove(projectId, user);\n }\n\n const recipientIds = unhandledRecipients?.map(\n (recipient) => recipient.userId,\n );\n const editRecipients = [\n ...users.filter((user) => !recipientIds.includes(user.userId)),\n user,\n ];\n const addRecipients = users.filter(\n (user) => !recipientIds.includes(user.userId),\n );\n const userList = setNewRecipient ? addRecipients : editRecipients;\n\n return (\n \n {(isEditing || isCreating) && (\n \n \n {userList.map((u) => (\n \n {u.name}\n \n ))}\n \n {error && (\n \n {strings(stringKeys.projectAlertNotHandledRecipient.error)}\n \n )}\n \n )}\n {!isEditing && !isCreating && (\n \n {user.name}\n \n )}\n {isAdministrator && (\n \n {user?.organizationName}\n \n )}\n {(!isEditing && !isCreating && !hideDelete && unhandledRecipients.length > 1) && (\n \n )}\n \n );\n};\n","import React, { useEffect } from \"react\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { connect, useSelector } from \"react-redux\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport * as projectAlertNotHandledRecipientsActions from \"./logic/projectAlertNotHandledRecipientsActions\";\nimport { useState } from \"react\";\nimport { Administrator } from \"../../authentication/roles\";\nimport { ProjectAlertNotHandledRecipientItem } from \"./components/ProjectAlertNotHandledRecipientItem\";\nimport { Button, CircularProgress, Grid, Typography } from \"@material-ui/core\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { CancelButton } from \"../common/buttons/cancelButton/CancelButton\";\nimport SubmitButton from \"../common/buttons/submitButton/SubmitButton\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport TableHeader from \"../common/tableHeader/TableHeader\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nexport const ProjectAlertNotHandledRecipientsComponent = ({\n openRecipients,\n projectId,\n organizations,\n getFormData,\n edit,\n create,\n remove\n}) => {\n useMount(() => {\n openRecipients(projectId);\n\n // Track page view\n trackPageView(\"ProjectAlertNotHandledRecipientsPage\");\n });\n\n useEffect(() => {\n const recipients = organizations\n ?.map((org) =>\n org.users.map((user) => ({\n ...user,\n organizationName: org.organizationName,\n organizationId: org.organizationId,\n })),\n )\n .flat(1);\n setUnhandledRecipients(recipients);\n }, [organizations]);\n\n const currentUserRoles = useSelector((state) => state.appData.user.roles);\n const isAdministrator =\n currentUserRoles.filter((r) => r === Administrator).length > 0;\n const isFetchingFormData = useSelector(\n (state) => state.projectAlertNotHandledRecipients.formDataFetching,\n );\n const isFetchingList = useSelector(\n (state) => state.projectAlertNotHandledRecipients.listFetching,\n );\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n const isSaving = useSelector(\n (state) => state.projectAlertNotHandledRecipients.saving,\n );\n\n const [isEditing, setIsEditing] = useState(false);\n const [isCreating, setIsCreating] = useState(false);\n const [unhandledRecipients, setUnhandledRecipients] = useState(null);\n const [newRecipient, setNewRecipient] = useState({\n userId: \"\",\n name: \"\",\n });\n const [error, setError] = useState(false);\n const [hideDelete, setHideDelete] = useState(false);\n\n const onEdit = () => {\n setIsEditing(false);\n setHideDelete(false);\n let editedRecipientIds = unhandledRecipients.map(recipient => recipient.userId);\n let oldRecipientIds = organizations.flatMap(org => org.users.map(user => user.userId));\n\n // Checks that the edited list isn't identical to the original list\n if(!oldRecipientIds.every((oldRecipientId) => editedRecipientIds.includes(oldRecipientId))){\n edit(\n projectId,\n unhandledRecipients.map((recipient) => ({\n organizationId: recipient.organizationId,\n userId: recipient.userId,\n })),\n );\n }\n };\n\n const cancel = () => {\n const recipients = organizations\n ?.map((org) =>\n org.users.map((user) => ({\n ...user,\n organizationName: org.organizationName,\n organizationId: org.organizationId,\n })),\n )\n .flat(1);\n setUnhandledRecipients(recipients);\n setIsEditing(false);\n setIsCreating(false);\n setHideDelete(false);\n setError(false);\n };\n\n const onCreate = () => {\n if (newRecipient.userId === \"\") {\n setError(true);\n return;\n }\n create(projectId, {\n userId: newRecipient.userId,\n organizationId: newRecipient.organizationId,\n });\n setIsCreating(false);\n setHideDelete(false);\n setNewRecipient({\n userId: \"\",\n name: \"\",\n });\n };\n\n const onAddClick = () => {\n setHideDelete(true);\n setIsCreating(true);\n };\n const onEditClick = () => {\n setHideDelete(true);\n setIsEditing(true);\n };\n\n if (isFetchingFormData && isFetchingList) return ;\n\n return (\n <>\n \n {!!unhandledRecipients && (\n <>\n \n {strings(stringKeys.projectAlertNotHandledRecipient.description)}\n \n \n {unhandledRecipients?.map((recipient) => (\n \n ))}\n {isCreating && (\n \n )}\n \n {!isCreating && !isEditing && (\n \n }\n color=\"primary\"\n variant=\"outlined\"\n style={{ marginRight: 10 }}\n onClick={onEditClick}\n >\n {strings(stringKeys.common.buttons.edit)}\n \n }\n color=\"primary\"\n variant=\"contained\"\n onClick={onAddClick}\n >\n {strings(stringKeys.projectAlertNotHandledRecipient.add)}\n \n \n )}\n {(isCreating || isEditing) && (\n \n \n {strings(stringKeys.form.cancel)}\n \n {isEditing && (\n \n {strings(stringKeys.form.confirm)}\n \n )}\n {isCreating && newRecipient && (\n \n {strings(stringKeys.common.buttons.add)}\n \n )}\n \n )}\n \n )}\n \n );\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n organizations: state.projectAlertNotHandledRecipients.listData,\n isListFetching: state.projectAlertNotHandledRecipients.listFetching,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n projectIsClosed: state.appData.siteMap.parameters.projectIsClosed,\n projectId: ownProps.match.params.projectId,\n});\n\nconst mapDispatchToProps = {\n openRecipients: projectAlertNotHandledRecipientsActions.openRecipients.invoke,\n create: projectAlertNotHandledRecipientsActions.create.invoke,\n edit: projectAlertNotHandledRecipientsActions.edit.invoke,\n remove: projectAlertNotHandledRecipientsActions.remove.invoke,\n getFormData: projectAlertNotHandledRecipientsActions.getFormData.invoke,\n};\n\nexport const ProjectAlertNotHandledRecipientsPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ProjectAlertNotHandledRecipientsComponent),\n);\n","import tableStyles from \"../common/table/Table.module.scss\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer\n} from \"@material-ui/core\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport { TableRowAction } from \"../common/tableRowAction/TableRowAction\";\nimport { Loading } from \"../common/loading/Loading\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableRowActions } from \"../common/tableRowAction/TableRowActions\";\n\nexport const ProjectAlertRecipientsTable = ({\n isListFetching,\n isRemoving,\n goToEdition,\n remove,\n list,\n projectId,\n isClosed,\n rtl,\n}) => {\n if (isListFetching) {\n return ;\n }\n\n const renderHealthRisks = (healthRisks) => {\n if (healthRisks.length > 0) {\n return healthRisks.length > 1\n ? `${healthRisks[0].healthRiskName} (+ ${healthRisks.length - 1})`\n : `${healthRisks[0].healthRiskName}`;\n }\n\n return \"Any\";\n };\n\n const renderSupervisors = (supervisors) => {\n if (supervisors.length > 0) {\n return supervisors.length > 1\n ? `${supervisors[0].name} (+ ${supervisors.length - 1})`\n : `${supervisors[0].name}`;\n }\n\n return \"Any\";\n };\n\n return (\n \n \n \n \n \n {strings(stringKeys.projectAlertRecipient.list.role)}\n \n \n {strings(stringKeys.projectAlertRecipient.list.organization)}\n \n {strings(stringKeys.common.email)}\n \n {strings(stringKeys.projectAlertRecipient.list.phoneNumber)}\n \n \n {strings(stringKeys.projectAlertRecipient.list.healthRisks)}\n \n \n {strings(stringKeys.projectAlertRecipient.list.supervisors)}\n \n \n \n \n \n {list.map((row) => (\n !isClosed && goToEdition(projectId, row.id)}\n hover={!isClosed}\n className={!isClosed ? tableStyles.clickableRow : null}\n >\n {row.role}\n {row.organization}\n {row.email}\n \n {row.phoneNumber}\n \n {renderHealthRisks(row.healthRisks)}\n \n {renderSupervisors([\n ...row.supervisors,\n ...row.headSupervisors,\n ])}\n \n \n {!isClosed && (\n \n goToEdition(projectId, row.id)}\n icon={}\n title={\"Edit\"}\n />\n remove(projectId, row.id)}\n confirmationText={strings(\n stringKeys.projectAlertRecipient.list\n .removalConfirmation,\n )}\n icon={}\n title={\"Delete\"}\n isFetching={isRemoving[row.id]}\n />\n \n )}\n \n \n ))}\n \n
\n
\n );\n};\n\nProjectAlertRecipientsTable.propTypes = {\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nexport default ProjectAlertRecipientsTable;\n","import React, { Fragment } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as projectAlertRecipientsActions from \"./logic/projectAlertRecipientsActions\";\nimport ProjectAlertRecipientsTable from \"./ProjectAlertRecipientsTable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { TableActionsButton } from \"../common/buttons/tableActionsButton/TableActionsButton\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { Typography } from \"@material-ui/core\";\nimport SettingsTableHeader from \"../common/settingsTableHeader/SettingsTableHeader\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport AddIcon from \"@material-ui/icons/Add\";\n\nconst useStyles = makeStyles(() => ({\n buttonContainer: {\n width:\"100%\",\n display:\"flex\", \n justifyContent:\"end\",\n marginTop: 8,\n marginBottom: 4\n }\n}));\n\nconst ProjectAlertRecipientsListPageComponent = (props) => {\n useMount(() => {\n props.openProjectAlertRecipientsList(props.projectId);\n\n // Track page view\n trackPageView(\"ProjectAlertRecipientsListPage\");\n });\n\n const classes = useStyles();\n const useRtlDirection = useSelector(\n (state) => state.appData.direction === \"rtl\",\n );\n\n return (\n \n \n \n {strings(stringKeys.projectAlertRecipient.description)}\n \n {!props.nationalSocietyIsArchived && !props.projectIsClosed && (\n
\n props.goToCreation(props.projectId)}\n add\n variant=\"contained\"\n rtl={useRtlDirection}\n startIcon={}\n >\n {strings(stringKeys.common.buttons.add)}\n \n
\n )}\n \n
\n );\n};\n\nProjectAlertRecipientsListPageComponent.propTypes = {\n getProjectAlertRecipients: PropTypes.func,\n goToCreation: PropTypes.func,\n goToEdition: PropTypes.func,\n remove: PropTypes.func,\n isFetching: PropTypes.bool,\n list: PropTypes.array,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n list: state.projectAlertRecipients.listData,\n isListFetching: state.projectAlertRecipients.listFetching,\n isRemoving: state.projectAlertRecipients.listRemoving,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n projectIsClosed: state.appData.siteMap.parameters.projectIsClosed,\n projectId: ownProps.match.params.projectId,\n});\n\nconst mapDispatchToProps = {\n openProjectAlertRecipientsList: projectAlertRecipientsActions.openList.invoke,\n goToCreation: projectAlertRecipientsActions.goToCreation,\n goToEdition: projectAlertRecipientsActions.goToEdition,\n remove: projectAlertRecipientsActions.remove.invoke,\n};\n\nexport const ProjectAlertRecipientsListPage = withLayout(\n Layout,\n connect(\n mapStateToProps,\n mapDispatchToProps,\n )(ProjectAlertRecipientsListPageComponent),\n);\n","import React, { useState } from \"react\";\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\nimport {\n Grid,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n useTheme,\n} from \"@material-ui/core\";\nimport Stepper from \"@material-ui/core/Stepper\";\nimport Step from \"@material-ui/core/Step\";\nimport StepLabel from \"@material-ui/core/StepLabel\";\nimport Button from \"@material-ui/core/Button\";\nimport Typography from \"@material-ui/core/Typography\";\nimport StepConnector from \"@material-ui/core/StepConnector\";\nimport CheckIcon from \"@material-ui/icons/Check\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport SubmitButton from \"../buttons/submitButton/SubmitButton\";\n\nconst useStyles = makeStyles((theme) => ({\n stepper: {\n backgroundColor: \"inherit\",\n },\n step: {\n cursor: \"pointer\",\n },\n backButton: {\n marginRight: theme.spacing(1),\n },\n dialogTitle: {\n fontSize: 240,\n },\n}));\n\nconst useColorlibStepIconStyles = makeStyles((theme) => ({\n root: {\n border: \"1px solid #E3E3E3\",\n zIndex: 1,\n width: 40,\n height: 40,\n display: \"flex\",\n borderRadius: \"50%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n active: {\n border: `1px solid ${theme.palette.primary.main}`,\n color: theme.palette.primary.main,\n },\n activeText: {\n color: theme.palette.primary.main,\n fontWeight: 700,\n },\n notCompletedText: {\n color: \"#B4B4B4\",\n fontWeight: 700,\n },\n completed: {\n backgroundColor: theme.palette.primary.main,\n border: `1px solid ${theme.palette.primary.main}`,\n color: theme.palette.primary.main,\n },\n}));\n\nconst Connector = withStyles((theme) => ({\n alternativeLabel: {\n top: 22,\n },\n active: {\n \"& $line\": {\n backgroundColor: theme.palette.primary.main,\n },\n },\n completed: {\n \"& $line\": {\n backgroundColor: theme.palette.primary.main,\n },\n },\n line: {\n margin: \"0 10px 0 10px\",\n height: 3,\n border: 0,\n backgroundColor: \"#eaeaf0\",\n borderRadius: 1,\n },\n}))(StepConnector);\n\nconst getStepContent = (steps, stepIndex) => {\n return steps.find((step) => step.stepNumber === stepIndex).content;\n};\nconst getStep = (steps, stepIndex) => {\n return steps.find((step) => step.stepNumber === stepIndex);\n};\n\nexport const SetupStepper = ({\n steps,\n error,\n setError,\n isNextStepInvalid,\n setIsNextStepInvalid,\n goToList,\n nationalSocietyId,\n}) => {\n const theme = useTheme();\n const classes = useStyles();\n const [activeStep, setActiveStep] = useState(0);\n const sortedSteps = steps.sort(\n (stepA, stepB) => stepA.stepNumber - stepB.stepNumber,\n );\n const [open, setOpen] = useState(false);\n\n const handleNext = () => {\n if (\n getStep(steps, activeStep).isOptional ||\n (!error && !isNextStepInvalid)\n ) {\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\n setIsNextStepInvalid(true);\n } else {\n setError(true);\n }\n };\n\n const handleBack = () => {\n setError(false);\n setIsNextStepInvalid(false);\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\n };\n\n const handleReset = () => {\n setOpen(true);\n };\n\n const handleFinish = () => {\n // Add api request here to create project\n };\n const handleClose = () => {\n setOpen(false);\n };\n\n const handleCancel = () => {\n goToList(nationalSocietyId);\n };\n\n const StepIcon = (props) => {\n const classes = useColorlibStepIconStyles();\n const { active, completed, icon } = props;\n\n return (\n \n \n {completed || activeStep === steps.length - 1 ? (\n \n ) : (\n icon\n )}\n \n
\n );\n };\n\n const onStepClick = (stepNumber) => {\n if (stepNumber > activeStep) return;\n setActiveStep(stepNumber);\n };\n\n return (\n <>\n }\n >\n {sortedSteps.map((step) => (\n onStepClick(step.stepNumber)}\n >\n \n = activeStep\n ? \"#7C7C7C\"\n : theme.palette.primary.main,\n }}\n >\n {step.name}\n \n \n \n ))}\n \n \n \n {getStepContent(steps, activeStep)}\n \n \n \n {activeStep !== 0 && (\n \n {strings(stringKeys.common.buttons.previous)}\n \n )}\n \n {activeStep === steps.length - 1\n ? strings(stringKeys.common.buttons.finish)\n : strings(stringKeys.common.buttons.next)}\n \n \n \n \n \n \n \n \n {strings(stringKeys.projectSetup.cancelDialog.title)}\n \n \n \n \n {strings(stringKeys.projectSetup.cancelDialog.description)}\n \n \n \n \n \n {strings(stringKeys.common.buttons.denyCancelation)}\n \n \n \n \n \n \n );\n};\n","import { InputLabel, TextField } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport * as projectSetupActions from \"./logic/projectSetupActions\";\nimport { connect } from \"react-redux\";\nimport { strings, stringKeys } from \"../../strings\";\n\nconst useStyles = makeStyles(() => ({\n input: {\n width: 270,\n \"& .MuiInput-formControl\": {\n marginTop: \"0px !important\",\n },\n },\n inputLabel: {\n fontSize: \"16px\",\n fontWeight: 700,\n marginBottom: 8,\n },\n}));\n\nconst ProjectSetupNameComponent = ({\n projectName,\n setProjectName,\n error,\n setError,\n setIsNextStepInvalid,\n}) => {\n const classes = useStyles();\n\n const handleChange = (event) => {\n setError(event.target.value === \"\");\n setIsNextStepInvalid(event.target.value === \"\");\n setProjectName(event.target.value);\n };\n\n return (\n <>\n \n {strings(stringKeys.projectSetup.projectName.title)}\n \n \n \n );\n};\n\nconst mapStateToProps = (state) => ({\n projectName: state.projectSetup.projectName,\n});\n\nconst mapDispatchToProps = {\n setProjectName: projectSetupActions.setProjectName,\n};\n\nexport const ProjectSetupName = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(ProjectSetupNameComponent);\n","import {\n Select,\n MenuItem,\n InputLabel,\n Typography,\n FormHelperText,\n Checkbox,\n FormControlLabel\n} from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { connect } from \"react-redux\";\nimport * as projectSetupActions from \"./logic/projectSetupActions\";\nimport { useState } from \"react\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from \"../../strings\";\n\nconst useStyles = makeStyles((theme) => ({\n inputText: {\n fontSize: \"16px\",\n fontWeight: 700,\n marginBottom: 8,\n },\n inputField: {\n width: 270,\n },\n errorMessage: {\n color: theme.palette.error.main,\n textAlign: \"left\",\n width: 270,\n },\n}));\n\nexport const ProjectSetupOrganizationComponent = ({\n organizations,\n rtl,\n setOrganizationId,\n selectedOrganizationId,\n error,\n setError,\n setIsNextStepInvalid,\n allowMultipleOrganizations,\n setAllowMultipleOrganizations\n}) => {\n const classes = useStyles();\n const [selectedOrganization, setSelectedOrganization] = useState(undefined);\n const errorMessage = strings(\n stringKeys.projectSetup.projectOrganization.error,\n );\n\n useMount(() => {\n if (selectedOrganizationId) {\n setSelectedOrganization(\n organizations.find((org) => org.id === selectedOrganizationId),\n );\n setIsNextStepInvalid(false);\n }\n });\n\n const handleChange = (event) => {\n const eventOrganization = organizations.find(\n (org) => org.id === event.target.value,\n );\n if (eventOrganization) {\n setOrganizationId(event.target.value);\n setIsNextStepInvalid(false);\n setSelectedOrganization(eventOrganization);\n setError(false);\n }\n };\n\n return (\n <>\n \n {strings(stringKeys.projectSetup.projectOrganization.title)}\n \n {\n if (selectedId === \"\") {\n return (\n \n {strings(\n stringKeys.projectSetup.projectOrganization.placeholder,\n )}\n \n );\n }\n\n return selectedOrganization ? selectedOrganization.name : \"\";\n }}\n >\n {organizations?.map((organization) => (\n \n {organization.name}\n \n ))}\n \n {error && (\n \n {errorMessage}\n \n )}\n setAllowMultipleOrganizations(e.target.checked)}\n name=\"allowMultipleOrganizations\"\n color=\"primary\"\n />\n }\n label={strings(\n stringKeys.project.form.allowMultipleOrganizations,\n )}\n />\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n organizations: state.projectSetup.formData?.organizations,\n selectedOrganizationId: state.projectSetup.organizationId,\n allowMultipleOrganizations: state.projectSetup.allowMultipleOrganizations,\n});\n\nconst mapDispatchToProps = {\n setOrganizationId: projectSetupActions.setOrganizationId,\n setAllowMultipleOrganizations: projectSetupActions.setAllowMultipleOrganizations\n};\n\nexport const ProjectSetupOrganization = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(ProjectSetupOrganizationComponent);\n","import { Select, MenuItem, InputLabel, Typography, FormHelperText, Box, Chip, Grid } from \"@material-ui/core\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport { connect } from \"react-redux\";\nimport * as projectSetupActions from './logic/projectSetupActions';\nimport { useEffect, useState } from \"react\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { strings, stringKeys } from '../../strings';\n\nconst useStyles = makeStyles((theme) => ({\n inputText: {\n fontSize: \"16px\",\n fontWeight: 700,\n marginBottom: 8,\n },\n inputField: {\n width: 270,\n },\n errorMessage: {\n color: theme.palette.error.main,\n textAlign: \"left\",\n width: 270\n },\n chip: {\n margin: '5px 2px',\n backgroundColor: '#CDDDE7',\n '&:focus': {\n backgroundColor: '#CDDDE7',\n },\n },\n chipContainer: {\n justifyContent: \"center\",\n maxWidth: '50rem',\n marginTop: 30,\n },\n}));\n\nconst ProjectSetupRecipientsComponent = ({alertRecipients, alertNotHandledNotificationRecipientIds, setAlertNotHandledNotificationRecipientIds, error, setError, setIsNextStepInvalid, selectedOrganizationId }) => {\n const classes = useStyles();\n const errorMessage = strings(stringKeys.projectSetup.projectRecipients.error);\n const [availableRecipients, setAvailableRecipients] = useState([]);\n const [selectedRecipients, setSelectedRecipients] = useState([]);\n \n useMount(() => { \n if(alertRecipients){\n const recipientsWithinSelectedOrganization = alertRecipients.filter(recipient => recipient.organizationId === selectedOrganizationId);\n \n setAvailableRecipients(recipientsWithinSelectedOrganization.filter(recipient => !alertNotHandledNotificationRecipientIds.includes(recipient.id)));\n setSelectedRecipients(recipientsWithinSelectedOrganization.filter(recipient => alertNotHandledNotificationRecipientIds.includes(recipient.id)));\n }\n });\n\n const handleChange = (event) => {\n const eventRecipient = availableRecipients.find(recipient => recipient.id === event.target.value);\n\n if (eventRecipient){\n setSelectedRecipients(selectedRecipients => [...selectedRecipients, eventRecipient]);\n setAvailableRecipients(availableRecipients.filter(recipient => recipient.id !== eventRecipient.id));\n setError(false);\n }\n };\n\n const handleDelete = (deselectedRecipientId) => {\n setSelectedRecipients(selectedRecipients.filter(recipient => recipient.id !== deselectedRecipientId));\n \n const deselectedRecipient = alertRecipients?.find(recipient => recipient.id === deselectedRecipientId);\n setAvailableRecipients(availableRecipients => [...availableRecipients, deselectedRecipient]);\n }\n\n useEffect(() => {\n setAlertNotHandledNotificationRecipientIds(selectedRecipients.map(recipient => recipient.id));\n }, [selectedRecipients]);\n\n useEffect(() => {\n alertNotHandledNotificationRecipientIds.length > 0 ? setIsNextStepInvalid(false) : setIsNextStepInvalid(true);\n }, [alertNotHandledNotificationRecipientIds]);\n\n return (\n <>\n {strings(stringKeys.projectSetup.projectRecipients.title)}\n \n {error && {errorMessage}}\n \n {selectedRecipients.map(recipient => (\n \n handleDelete(recipient.id)}/> \n \n ))}\n \n \n )\n}\n\nconst mapStateToProps = (state) => ({\n alertRecipients: state.projectSetup.formData?.alertNotHandledRecipients,\n alertNotHandledNotificationRecipientIds: state.projectSetup.alertNotHandledNotificationRecipientIds,\n selectedOrganizationId: state.projectSetup.organizationId\n});\n\nconst mapDispatchToProps = {\n setAlertNotHandledNotificationRecipientIds: projectSetupActions.setAlertNotHandledNotificationRecipientIds,\n};\n\nexport const ProjectSetupRecipients = connect(mapStateToProps, mapDispatchToProps)(ProjectSetupRecipientsComponent);\n","import {\n Button,\n Card,\n CardContent,\n Grid,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport { Fragment, createRef, useMemo, useState } from \"react\";\nimport { createForm, validators } from \"../../../utils/forms\";\nimport TextInputField from \"../../forms/TextInputField\";\nimport { strings, stringKeys } from \"../../../strings\";\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport Form from \"../../forms/form/Form\";\n\nconst useStyle = makeStyles((theme) => ({\n card: {\n maxWidth: \"900px\",\n width: \"100%\",\n },\n alertRuleData: {\n fontSize: \"16px\",\n fontWeight: 600,\n },\n cardBodyText: {\n fontSize: 16,\n overflowWrap: \"break-word\",\n },\n healthRiskCode: {\n fontSize: 16,\n fontWeight: 700,\n },\n textInputLabel: {\n top: -10,\n },\n content: {\n margin: \"20px -8px\",\n },\n cardInfoTextTitle: {\n marginBottom: \"4px\",\n },\n cardInfoText: {\n fontWeight: 400,\n color: \"#a0a0a0\",\n },\n}));\n\nexport const HealthRiskCardEditable = ({\n healthRisk,\n setHealthRisk,\n disabled = false,\n rtl = false,\n ...cardProps\n}) => {\n const [editing, setEditing] = useState(false);\n\n const classes = useStyle();\n\n return (\n \n \n {editing ? (\n \n ) : (\n \n )}\n \n \n );\n};\n\n// Title for the healthRisk card\nconst HealthRiskCardTitle = ({ healthRisk, rtl }) => {\n return (\n \n {rtl ? (\n <>\n \n {healthRisk.healthRiskName}\n \n {healthRisk.healthRiskCode}\n \n ) : (\n <>\n {healthRisk.healthRiskCode}\n \n {healthRisk.healthRiskName}\n \n \n )}\n \n );\n};\n\n// Component for displaying a section containing healthRisk information\nconst HealthRiskCardView = ({ healthRisk, setEditing, disabled, rtl }) => {\n const classes = useStyle();\n\n return (\n <>\n {/* Header */}\n \n \n \n \n {!disabled && (\n \n \n }\n className={classes.button}\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => setEditing(true)}\n >\n {strings(stringKeys.common.buttons.edit)}\n \n \n \n )}\n \n {/* Content */}\n \n \n \n \n {strings(stringKeys.project.form.caseDefinition)}\n \n \n {healthRisk.caseDefinition}\n \n \n\n \n \n {strings(stringKeys.project.form.feedbackMessage)}\n \n \n {healthRisk.feedbackMessage}\n \n \n \n\n \n {strings(stringKeys.project.form.alertsSection)}\n \n\n {healthRisk.healthRiskType === \"Activity\" ? (\n \n {strings(stringKeys.healthRisk.form.noAlertRule)}\n \n ) : (\n \n {(!healthRisk.alertRuleCountThreshold ||\n healthRisk.alertRuleCountThreshold === 0) && (\n \n {strings(stringKeys.common.boolean.false)}\n \n )}\n\n {/* Alert rules */}\n {healthRisk.alertRuleCountThreshold > 0 && (\n \n \n {strings(stringKeys.project.form.alertRuleCountThreshold)}\n : {healthRisk.alertRuleCountThreshold}\n \n\n {healthRisk.alertRuleCountThreshold > 1 && (\n <>\n \n {strings(\n stringKeys.project.form.alertRuleDaysThreshold,\n )}\n : {healthRisk.alertRuleDaysThreshold} {healthRisk.alertRuleDaysThreshold === 1\n ? strings(stringKeys.project.form.alertRuleDay)\n : strings(stringKeys.project.form.alertRuleDays)} \n \n\n \n {strings(\n stringKeys.project.form\n .alertRuleKilometersThreshold,\n )}\n : {healthRisk.alertRuleKilometersThreshold} {strings(\n stringKeys.project.form.alertRuleKilometer,\n )} \n \n \n )}\n \n )}\n \n )}\n \n \n );\n};\n\n// Component for displaying a section with an editable healthRisk form\nconst HealthRiskCardForm = ({\n healthRisk,\n setHealthRisk,\n setEditing,\n rtl = false,\n}) => {\n const classes = useStyle();\n\n const [alertThreshold, setAlertThreshold] = useState(\n healthRisk.alertRuleCountThreshold,\n );\n\n const form = useMemo(() => {\n const fields = {\n caseDefinition: healthRisk.caseDefinition || \"\",\n feedbackMessage: healthRisk.feedbackMessage || \"\",\n alertRuleCountThreshold: healthRisk.alertRuleCountThreshold || undefined,\n alertRuleDaysThreshold: healthRisk.alertRuleDaysThreshold || undefined,\n alertRuleKilometersThreshold:\n healthRisk.alertRuleKilometersThreshold || undefined,\n };\n\n const validation = {\n caseDefinition: [validators.required, validators.maxLength(500)],\n feedbackMessage: [validators.required, validators.maxLength(160)],\n alertRuleCountThreshold: [\n validators.nonNegativeNumber,\n validators.inRange(0, 99),\n ],\n alertRuleDaysThreshold: [\n validators.requiredWhen((form) => form.alertRuleCountThreshold > 1),\n validators.inRange(1, 365),\n ],\n alertRuleKilometersThreshold: [\n validators.requiredWhen((form) => form.alertRuleCountThreshold > 1),\n validators.inRange(1, 9999),\n ],\n };\n\n const refs = {\n caseDefinition: createRef(),\n feedbackMessage: createRef(),\n alertRuleCountThreshold: createRef(),\n alertRuleDaysThreshold: createRef(),\n alertRuleKilometersThreshold: createRef(),\n };\n\n return createForm(fields, validation, refs);\n }, []);\n\n //Subscribe to changes in alertRuleCountThreshold to show/remove days and kilometers thresholds fields\n form.fields.alertRuleCountThreshold.subscribe((update) => {\n setAlertThreshold(update.newValue);\n if (Number(update.newValue) <= 1) {\n form.fields.alertRuleDaysThreshold.update(undefined);\n form.fields.alertRuleKilometersThreshold.update(undefined);\n }\n });\n\n const handleFormSubmit = (e) => {\n e.preventDefault();\n\n if (!form.isValid()) {\n return;\n }\n\n // setHealthRisk function should set a new value for the given healthRisk, so we must include fields such as healthRiskId\n // from the original healthRisk in order to not lose important values when submitting the form\n setHealthRisk({\n ...healthRisk,\n caseDefinition: form.fields.caseDefinition.value,\n feedbackMessage: form.fields.feedbackMessage.value,\n alertRuleCountThreshold: Number(\n form.fields.alertRuleCountThreshold.value,\n ),\n alertRuleDaysThreshold: Number(form.fields.alertRuleDaysThreshold.value),\n alertRuleKilometersThreshold: Number(\n form.fields.alertRuleKilometersThreshold.value,\n ),\n });\n setEditing(false);\n };\n\n return (\n
\n {/* Header */}\n \n \n \n \n \n setEditing(false)}\n >\n {strings(stringKeys.form.cancel)}\n \n \n \n \n {strings(stringKeys.common.buttons.update)}\n \n \n \n \n \n\n {/* Content */}\n \n \n \n \n {strings(stringKeys.project.form.caseDefinition)}\n \n }\n classNameLabel={classes.textInputLabel}\n name={`healthRisk.${healthRisk.healthRiskId}.caseDefinition`}\n field={form.fields.caseDefinition}\n multiline\n rows={4}\n fieldRef={form.fields.caseDefinition.ref}\n />\n \n \n \n {strings(stringKeys.project.form.feedbackMessage)}\n \n }\n classNameLabel={classes.textInputLabel}\n name={`healthRisk.${healthRisk.healthRiskId}.feedbackMessage`}\n field={form.fields.feedbackMessage}\n multiline\n rows={4}\n fieldRef={form.fields.feedbackMessage.ref}\n />\n \n \n\n \n {strings(stringKeys.project.form.alertsSection)}\n \n\n {healthRisk.healthRiskType === \"Activity\" ? (\n \n {strings(stringKeys.healthRisk.form.noAlertRule)}\n \n ) : (\n \n \n \n \n {strings(stringKeys.project.form.alertRuleCountThreshold)}\n \n }\n name={`healthRisk.${healthRisk.healthRiskId}.alertRuleCountThreshold`}\n field={form.fields.alertRuleCountThreshold}\n inputMode={\"numeric\"}\n fieldRef={form.fields.alertRuleCountThreshold.ref}\n />\n \n\n {/* Display DaysThreshold field if CountThreshold has been set to higher than 1 */}\n {!!(alertThreshold && alertThreshold > 1) && (\n \n \n {strings(\n stringKeys.project.form.alertRuleDaysThresholdEdit,\n )}\n \n }\n name={`healthRisk.${healthRisk.healthRiskId}.alertRuleDaysThreshold`}\n field={form.fields.alertRuleDaysThreshold}\n inputMode={\"numeric\"}\n fieldRef={form.fields.alertRuleDaysThreshold.ref}\n />\n \n )}\n\n {/* Display KilometersThreshold field if CountThreshold has been set to higher than 1 */}\n {!!(alertThreshold && alertThreshold > 1) && (\n \n \n {strings(\n stringKeys.project.form\n .alertRuleKilometersThresholdEdit,\n )}\n \n }\n name={`healthRisk.${healthRisk.healthRiskId}.alertRuleKilometersThreshold`}\n field={form.fields.alertRuleKilometersThreshold}\n inputMode={\"numeric\"}\n fieldRef={form.fields.alertRuleKilometersThreshold.ref}\n />\n \n )}\n \n \n )}\n \n \n );\n};\n","import {\n Box,\n Chip,\n FormControl,\n Grid,\n MenuItem,\n Select,\n FormHelperText,\n Typography,\n makeStyles,\n} from \"@material-ui/core\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { connect } from \"react-redux\";\nimport * as projectSetupActions from \"./logic/projectSetupActions\";\nimport { HealthRiskCardEditable } from \"../common/healthRisk/HealthRiskCardEditable\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { useEffect } from \"react\";\n\nconst useStyle = makeStyles((theme) => ({\n container: {\n width: \"90%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n chipContainer: {\n justifyContent: \"center\",\n width: \"70%\",\n },\n select: {\n width: \"300px\",\n minWidth: \"200px\",\n textOverflow: \"ellipsis\",\n marginTop: \"0px\",\n },\n input: {\n marginTop: \"0px\",\n backgroundColor: \"blue\",\n },\n header: {\n display: \"inline\",\n \"&.healthRiskName\": {\n marginLeft: \"10px\",\n },\n \"&.healthRiskNameRtl\": {\n marginRight: \"10px\",\n },\n },\n chip: {\n margin: \"5px 5px\",\n backgroundColor: \"#CDDDE7\",\n \"&:focus\": {\n backgroundColor: \"#CDDDE7\",\n },\n },\n chipDisabled: {\n margin: \"5px 5px\",\n backgroundColor: \"#E3E3E3\",\n \"&:focus\": {\n backgroundColor: \"#E3E3E3\",\n },\n },\n label: {\n top: -15,\n },\n errorMessage: {\n color: theme.palette.error.main,\n textAlign: \"center\",\n width: \"100%\",\n },\n}));\n\nexport const ProjectSetupHealthRiskComponent = ({\n formHealthRisks,\n projectHealthRisks,\n setProjectHealthRisks,\n requiredHealthRisks,\n error,\n setError,\n setIsNextStepInvalid,\n}) => {\n useMount(() => {\n setIsNextStepInvalid(false);\n }, []);\n\n useEffect(() => {\n setIsNextStepInvalid(projectHealthRisks.length === 0);\n }, [projectHealthRisks, error, setIsNextStepInvalid]);\n\n const classes = useStyle();\n\n const handleSelect = (e) => {\n setProjectHealthRisks(\n e.target.value.sort((a, b) => a.healthRiskId - b.healthRiskId),\n );\n\n if (e.target.value.length > 0) {\n setError(false);\n }\n };\n\n const handleDelete = (healthRiskId) => {\n setProjectHealthRisks(\n projectHealthRisks.filter(\n (healthRisk) => healthRisk.healthRiskId !== healthRiskId,\n ),\n );\n };\n\n const updateHealthRisk = (healthRiskId, newValue) => {\n if (projectHealthRisks.find((i) => i.healthRiskId === healthRiskId)) {\n setProjectHealthRisks(\n projectHealthRisks.map((healthRisk) =>\n healthRisk.healthRiskId === healthRiskId ? newValue : healthRisk,\n ),\n );\n } else {\n throw new Error(`HealthRiskId ${healthRiskId} not found`);\n }\n };\n\n //Filter out health risks that are already selected or required\n const selectFieldOptions = formHealthRisks.filter(\n (healthRisk) =>\n !projectHealthRisks.find(\n (i) => i.healthRiskId === healthRisk.healthRiskId,\n ) &&\n !requiredHealthRisks.find(\n (i) => i.healthRiskId === healthRisk.healthRiskId,\n ),\n );\n\n return (\n \n \n \n {strings(stringKeys.projectSetup.projectHealthRisks.title)}\n \n \n\n \n \n {strings(stringKeys.projectSetup.projectHealthRisks.description)}\n \n \n\n {/* Select field to add new health risks to project */}\n \n \n (\n \n {strings(\n stringKeys.projectSetup.projectHealthRisks.placeholder,\n )}\n \n )}\n >\n \n Choose Health risks below\n \n {selectFieldOptions.map((healthRisk) => (\n \n {healthRisk.healthRiskName}\n \n ))}\n \n {error && (\n \n {strings(stringKeys.projectSetup.projectHealthRisks.error)}\n \n )}\n \n \n\n {/* Display selected Health risks as chips */}\n \n {projectHealthRisks.map((healthRisk) => (\n \n handleDelete(healthRisk.healthRiskId)}\n />\n \n ))}\n {requiredHealthRisks.map((healthRisk) => (\n \n \n \n ))}\n \n\n {/* Display selected health risk cards */}\n \n {projectHealthRisks.map((healthRisk) => (\n \n updateHealthRisk(healthRisk.healthRiskId, newValue)\n }\n />\n ))}\n {requiredHealthRisks.map((healthRisk) => (\n \n ))}\n \n \n );\n};\n\nconst mapStateToProps = (state) => ({\n formHealthRisks: state.projectSetup.formData.healthRisks,\n projectHealthRisks: state.projectSetup.healthRisks,\n requiredHealthRisks: state.projectSetup.requiredHealthRisks,\n});\n\nconst mapDispatchToProps = {\n setProjectHealthRisks: projectSetupActions.setHealthRisks,\n};\n\nexport const ProjectSetupHealthRisk = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(ProjectSetupHealthRiskComponent);\n","import React, { useEffect, useState } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport * as nationalSocietyStructureActions from \"../nationalSocietyStructure/logic/nationalSocietyStructureActions\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport * as roles from \"../../authentication/roles\";\nimport { strings, stringKeys } from \"../../strings\";\nimport { NationalSocietyLocationList } from \"../nationalSocietyStructure/NationalSocietyLocationList\";\nimport * as projectSetupActions from \"./logic/projectSetupActions\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nexport const ProjectSetupGeographicalStructureComponent = (props) => {\n const {\n openStructure,\n nationalSocietyId,\n regions,\n districts,\n villages,\n zones,\n tempRegions,\n tempDistricts,\n tempVillages,\n tempZones,\n setRegions,\n setDistricts,\n setVillages,\n setZones,\n } = props;\n\n useEffect(() => {\n openStructure(nationalSocietyId);\n }, [openStructure, nationalSocietyId]);\n\n const canModify =\n !props.nationalSocietyIsArchived &&\n (!props.nationalSocietyHasCoordinator ||\n props.callingUserRoles.some(\n (r) => r === roles.Coordinator || r === roles.Administrator,\n ));\n\n const useRtlDirection = useSelector(\n (state) => state.appData.user.languageCode === \"ar\",\n );\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const handleClose = (_, reason) => {\n if (reason === \"clickaway\") {\n return;\n }\n setOpenSnackbar(false);\n };\n\n useEffect(() => {\n if (tempRegions.length === 0) {\n regions?.length > 0 &&\n setRegions(regions.map((region) => ({ ...region, canModify: false })));\n districts?.length > 0 &&\n setDistricts(\n districts.map((district) => ({ ...district, canModify: false })),\n );\n villages?.length > 0 &&\n setVillages(\n villages.map((village) => ({ ...village, canModify: false })),\n );\n zones?.length > 0 &&\n setZones(zones.map((zone) => ({ ...zone, canModify: false })));\n }\n }, [\n tempRegions,\n regions,\n districts,\n villages,\n zones,\n setRegions,\n setDistricts,\n setVillages,\n setZones,\n ]);\n\n const locationExists = (name, locations) => {\n return locations.some(\n (location) => location.name.toLowerCase() === name.toLowerCase(),\n );\n };\n\n const createRegion = (activeParentLocationId, name) => {\n if (locationExists(name, tempRegions)) {\n setOpenSnackbar(true);\n return;\n }\n setRegions([\n ...tempRegions,\n {\n id: `new_region_${name}`,\n nationalSocietyId: activeParentLocationId,\n name: name,\n canModify: true,\n },\n ]);\n };\n const createDistrict = (activeParentLocationId, name) => {\n if (locationExists(name, tempDistricts)) {\n setOpenSnackbar(true);\n return;\n }\n setDistricts([\n ...tempDistricts,\n {\n id: `new_district_${name}`,\n regionId: activeParentLocationId,\n name: name,\n canModify: true,\n },\n ]);\n };\n const createVillage = (activeParentLocationId, name) => {\n if (locationExists(name, tempVillages)) {\n setOpenSnackbar(true);\n return;\n }\n setVillages([\n ...tempVillages,\n {\n id: `new_village_${name}`,\n districtId: activeParentLocationId,\n name: name,\n canModify: true,\n },\n ]);\n };\n const createZone = (activeParentLocationId, name) => {\n if (locationExists(name, tempZones)) {\n setOpenSnackbar(true);\n return;\n }\n setZones([\n ...tempZones,\n {\n id: `new_zone_${name}`,\n villageId: activeParentLocationId,\n name: name,\n canModify: true,\n },\n ]);\n };\n\n const editRegion = (id, newName) => {\n if (locationExists(newName, tempRegions)) {\n setOpenSnackbar(true);\n return;\n }\n const temp = tempRegions.map((region) => {\n if (region.id === id) {\n region.name = newName;\n region.id = `new_region_${newName}`;\n }\n return region;\n });\n setRegions(temp);\n };\n\n const editDistrict = (id, newName) => {\n if (locationExists(newName, tempDistricts)) {\n setOpenSnackbar(true);\n return;\n }\n const temp = tempDistricts.map((district) => {\n if (district.id === id) {\n district.name = newName;\n district.id = `new_district_${newName}`;\n }\n return district;\n });\n setDistricts(temp);\n };\n\n const editVillage = (id, newName) => {\n if (locationExists(newName, tempVillages)) {\n setOpenSnackbar(true);\n return;\n }\n const temp = tempVillages.map((village) => {\n if (village.id === id) {\n village.name = newName;\n village.id = `new_village_${newName}`;\n }\n return village;\n });\n setVillages(temp);\n };\n\n const editZone = (id, newName) => {\n if (locationExists(newName, tempZones)) {\n setOpenSnackbar(true);\n return;\n }\n const temp = tempZones.map((zone) => {\n if (zone.id === id) {\n zone.name = newName;\n zone.id = `new_zone_${newName}`;\n }\n return zone;\n });\n setZones(temp);\n };\n\n const removeRegion = (id) => {\n setRegions([...tempRegions.filter((region) => region.id !== id)]);\n };\n const removeDistrict = (id) => {\n setDistricts([...tempDistricts.filter((district) => district.id !== id)]);\n };\n const removeVillage = (id) => {\n setVillages([...tempVillages.filter((village) => village.id !== id)]);\n };\n const removeZone = (id) => {\n setZones([...tempZones.filter((zone) => zone.id !== id)]);\n };\n\n const manageLocation = {\n region: {\n create: createRegion,\n edit: editRegion,\n remove: removeRegion,\n nextLocationType: \"district\",\n nextLocations: (location) =>\n tempDistricts.filter((district) => district.regionId === location.id),\n addLocationLabel: strings(\n stringKeys.nationalSociety.structure.addRegion,\n true,\n ),\n },\n district: {\n create: createDistrict,\n edit: editDistrict,\n remove: removeDistrict,\n nextLocationType: \"village\",\n nextLocations: (location) =>\n tempVillages.filter((village) => village.districtId === location.id),\n addLocationLabel: strings(\n stringKeys.nationalSociety.structure.addDistrict,\n true,\n ),\n },\n village: {\n create: createVillage,\n edit: editVillage,\n remove: removeVillage,\n nextLocationType: \"zone\",\n nextLocations: (location) =>\n tempZones.filter((zone) => zone.villageId === location.id),\n addLocationLabel: strings(\n stringKeys.nationalSociety.structure.addVillage,\n true,\n ),\n },\n zone: {\n create: createZone,\n edit: editZone,\n remove: removeZone,\n nextLocationType: null,\n nextLocations: () => null,\n addLocationLabel: strings(\n stringKeys.nationalSociety.structure.addZone,\n true,\n ),\n },\n };\n\n return (\n \n {!props.nationalSocietyIsArchived && (\n <>\n \n {strings(stringKeys.projectSetup.geographicalStructure.title)}\n \n \n {strings(stringKeys.projectSetup.geographicalStructure.description)}\n \n \n )}\n \n \n \n \n \n \n \n \n }\n />\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n nationalSocietyId: state.appData.route.params.nationalSocietyId,\n isFetching: state.nationalSocietyStructure.structureFetching,\n regions: state.nationalSocietyStructure.regions,\n districts: state.nationalSocietyStructure.districts,\n villages: state.nationalSocietyStructure.villages,\n zones: state.nationalSocietyStructure.zones,\n nationalSocietyIsArchived:\n state.appData.siteMap.parameters.nationalSocietyIsArchived,\n nationalSocietyHasCoordinator:\n state.appData.siteMap.parameters.nationalSocietyHasCoordinator,\n callingUserRoles: state.appData.user.roles,\n tempRegions: state.projectSetup.regions,\n tempDistricts: state.projectSetup.districts,\n tempVillages: state.projectSetup.villages,\n tempZones: state.projectSetup.zones,\n});\n\nconst mapDispatchToProps = {\n openStructure: nationalSocietyStructureActions.openStructure.invoke,\n\n createRegion: nationalSocietyStructureActions.createRegion.invoke,\n editRegion: nationalSocietyStructureActions.editRegion.invoke,\n removeRegion: nationalSocietyStructureActions.removeRegion.invoke,\n\n createDistrict: nationalSocietyStructureActions.createDistrict.invoke,\n editDistrict: nationalSocietyStructureActions.editDistrict.invoke,\n removeDistrict: nationalSocietyStructureActions.removeDistrict.invoke,\n\n createVillage: nationalSocietyStructureActions.createVillage.invoke,\n editVillage: nationalSocietyStructureActions.editVillage.invoke,\n removeVillage: nationalSocietyStructureActions.removeVillage.invoke,\n\n createZone: nationalSocietyStructureActions.createZone.invoke,\n editZone: nationalSocietyStructureActions.editZone.invoke,\n removeZone: nationalSocietyStructureActions.removeZone.invoke,\n\n setRegions: projectSetupActions.setRegions,\n setDistricts: projectSetupActions.setDistricts,\n setVillages: projectSetupActions.setVillages,\n setZones: projectSetupActions.setZones,\n};\n\nexport const ProjectSetupGeographicalStructure = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(ProjectSetupGeographicalStructureComponent);\n","import { InputLabel, Grid, Divider, Chip } from \"@material-ui/core\"\nimport { makeStyles } from '@material-ui/core/styles';\nimport { connect } from \"react-redux\";\nimport { strings, stringKeys } from '../../strings';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Typography from '@material-ui/core/Typography'\nimport TrendingFlatIcon from '@material-ui/icons/TrendingFlat';\n\nconst useStyles = makeStyles((theme) => ({\n inputLabel: {\n fontSize: 24,\n fontWeight: 700,\n marginBottom: 50,\n },\n card: {\n width: \"80%\",\n border: \"none\",\n boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.25)\"\n },\n cardContent: {\n padding: 50,\n },\n divider: {\n margin: \"30px 0 30px 0\",\n },\n healthRisk: {\n margin: \"4px 4px 4px 0\"\n },\n healthRiskBackground: {\n backgroundColor: \"#CDDDE7\",\n },\n newLocation: {\n fontWeight: 700,\n color: theme.palette.primary.main\n },\n arrow: {\n margin: \"0 8px 0 8px\"\n }\n}));\n\nconst SummaryRow = ({ name, value }) => {\n const classes = useStyles()\n return (\n <>\n \n \n \n {name}\n \n \n \n \n {value}\n \n \n \n \n \n )\n}\nconst SummaryHealthRisksRow = ({ name, healthRisks }) => {\n const classes = useStyles()\n return (\n <>\n \n \n \n {name}\n \n \n \n {healthRisks.map(hr => (\n \n ))}\n \n \n \n \n )\n}\n\nconst SummaryGeographicalStructureRow = ({ name, rows }) => {\n const classes = useStyles()\n return (\n <>\n \n \n \n {name}\n \n \n \n {rows.length > 0 ? (\n rows.map((row, index) => {\n return (\n \n \n {row.region.name}\n \n {row.district && }\n {row.district && (\n <>\n \n {row.district.name}\n \n {row.village && }\n \n )}\n {row.village && (\n <>\n \n {row.village.name}\n \n {row.zone && }\n \n )}\n {row.zone && (\n <>\n \n {row.zone.name}\n \n \n )}\n \n )\n })\n )\n :\n {strings(stringKeys.projectSetup.summary.notUpdated)}\n }\n \n \n \n )\n}\n\nconst ProjectSetupSummaryComponent = (props) => {\n let { projectName, organizations, organizationId, recipients, recipientIds, healthRisks, requiredHealthRisks, regions, districts, villages, zones } = props;\n const classes = useStyles();\n const organizationName = organizations?.find(org => org.id === organizationId).name;\n const selectedRecipients = recipients?.filter(recipient => recipientIds.includes(recipient.id)).map(recipient => recipient.name);\n\n let allLocationRows = []\n regions.forEach(region => allLocationRows.push({ region: region, districts: [], villages: [], zones: [] }))\n\n districts.forEach(district => {\n allLocationRows.forEach(row => {\n if (district.regionId === row.region?.id) {\n row.districts = [...row.districts, district];\n }\n })\n })\n villages.forEach(village => {\n allLocationRows.forEach(row => {\n const district = row.districts.find(district => district.id === village.districtId);\n if (district) {\n row.villages = [...row.villages, village];\n }\n })\n })\n zones.forEach(zone => {\n allLocationRows.forEach(row => {\n const village = row.villages.find(village => village.id === zone.villageId);\n if (village) {\n row.zones = [...row.zones, zone];\n }\n })\n })\n\n const newLocationRows = []\n allLocationRows.forEach(row => {\n const newZones = row.zones.filter(district => district.canModify)\n if(newZones.length > 0) {\n newZones.forEach(zone => {\n const village = row.villages.find(village => village.id === zone.villageId);\n const district = row.districts.find(district => district.id === village.districtId);\n newLocationRows.push({\n region: row.region,\n district: district,\n village: village,\n zone: zone\n })\n })\n }\n const newVillages = row.villages.filter(village => village.canModify)\n if(newVillages.length > 0) {\n newVillages.forEach(village => {\n if(!newLocationRows.some(location => location.village?.id === village.id)) {\n const district = row.districts.find(district => district.id === village.districtId);\n newLocationRows.push({\n region: row.region,\n district: district,\n village: village,\n zone: null\n })\n }\n })\n }\n const newDistricts = row.districts.filter(district => district.canModify)\n if(newDistricts.length > 0) {\n newDistricts.forEach(district => {\n if(!newLocationRows.some(location => location.district?.id === district.id)) {\n newLocationRows.push({\n region: row.region,\n district: district,\n village: null,\n zone: null\n })\n }\n })\n }\n })\n const newRegions = allLocationRows.filter(row => row.region.canModify).map(row => row.region);\n if(newRegions.length > 0) {\n newRegions.forEach(region => {\n if(newLocationRows.every(location => location.region.id !== region.id)) {\n newLocationRows.push({\n region: region,\n district: null,\n village: null,\n zone: null\n })\n }\n })\n }\n\n return (\n <>\n {strings(stringKeys.projectSetup.summary.title)}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst mapStateToProps = (state) => ({\n projectName: state.projectSetup.projectName,\n organizationId: state.projectSetup.organizationId,\n recipients: state.projectSetup.formData?.alertNotHandledRecipients,\n organizations: state.projectSetup.formData?.organizations,\n recipientIds: state.projectSetup.alertNotHandledNotificationRecipientIds,\n healthRisks: state.projectSetup.healthRisks,\n requiredHealthRisks: state.projectSetup.requiredHealthRisks,\n regions: state.projectSetup.regions,\n districts: state.projectSetup.districts,\n villages: state.projectSetup.villages,\n zones: state.projectSetup.zones,\n});\n\nconst mapDispatchToProps = {\n};\n\nexport const ProjectSetupSummary = connect(mapStateToProps, mapDispatchToProps)(ProjectSetupSummaryComponent);\n","import React, { useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withLayout } from \"../../utils/layout\";\nimport Layout from \"../layout/Layout\";\nimport { Loading } from \"../common/loading/Loading\";\nimport * as projectSetupActions from \"./logic/projectSetupActions\";\nimport * as projectActions from \"../projects/logic/projectsActions\";\nimport { useMount } from \"../../utils/lifecycle\";\nimport { SetupStepper } from \"../common/stepper/SetupStepper\";\nimport { ProjectSetupName } from \"./ProjectSetupName\";\nimport { ProjectSetupOrganization } from \"./ProjectSetupOrganization\";\nimport { ProjectSetupRecipients } from \"./ProjectSetupRecipients\";\nimport { ProjectSetupHealthRisk } from \"./ProjectSetupHealthRisk\";\nimport { ProjectSetupGeographicalStructure } from \"./ProjectSetupGeographicalStructure\";\nimport { ProjectSetupSummary } from './ProjectSetupSummary'\nimport { strings, stringKeys } from \"../../strings\";\nimport { trackPageView } from \"../../utils/appInsightsHelper\";\n\nconst ProjectSetupPageComponent = ({\n nationalSocietyId,\n isFetching,\n formData,\n openProjectSetup,\n goToList,\n ...props\n}) => {\n useMount(() => {\n openProjectSetup(nationalSocietyId);\n\n // Track page view\n trackPageView(\"ProjectSetupPage\");\n });\n\n const [error, setError] = useState(false);\n const [isNextStepInvalid, setIsNextStepInvalid] = useState(true);\n\n if (isFetching || !formData) {\n return ;\n }\n\n const projectSetupSteps = [\n {\n name: strings(stringKeys.projectSetup.projectName.name),\n content: (\n \n ),\n stepNumber: 0,\n },\n {\n name: strings(stringKeys.projectSetup.projectOrganization.name),\n content: (\n \n ),\n stepNumber: 1,\n },\n {\n name: strings(stringKeys.projectSetup.projectRecipients.name),\n content: (\n \n ),\n stepNumber: 2,\n },\n {\n name: strings(stringKeys.projectSetup.projectHealthRisks.name),\n content: (\n \n ),\n stepNumber: 3,\n },\n {\n name: strings(stringKeys.projectSetup.geographicalStructure.name),\n content: ,\n stepNumber: 4,\n isOptional: true,\n },\n {\n name: strings(stringKeys.projectSetup.summary.name),\n content: ,\n stepNumber: 5\n },\n ];\n\n return (\n
\n \n
\n );\n};\n\nProjectSetupPageComponent.propTypes = {};\n\nconst mapStateToProps = (state, ownProps) => ({\n nationalSocietyId: ownProps.match.params.nationalSocietyId,\n isFetching: state.projectSetup.formFetching,\n formData: state.projectSetup.formData,\n});\n\nconst mapDispatchToProps = {\n openProjectSetup: projectSetupActions.openSetup.invoke,\n goToList: projectActions.goToList,\n};\n\nexport const ProjectSetupPage = withLayout(\n Layout,\n connect(mapStateToProps, mapDispatchToProps)(ProjectSetupPageComponent),\n);\n","import \"./App.scss\";\n\nimport React from \"react\";\nimport { Route, Switch, Redirect } from \"react-router\";\nimport { ThemeProvider } from \"@material-ui/styles\";\nimport { theme } from \"./theme\";\nimport { Home } from \"../homePage/Home\";\nimport { LoginPage } from \"../loginPage/LoginPage\";\nimport { AuthRoute } from \"./AuthRoute\";\nimport { ConnectedRouter } from \"connected-react-router\";\nimport { accessMap } from \"../../authentication/accessMap\";\nimport { NationalSocietiesListPage } from \"../nationalSocieties/NationalSocietiesListPage\";\nimport { NationalSocietiesCreatePage } from \"../nationalSocieties/NationalSocietiesCreatePage\";\nimport { NationalSocietiesEditPage } from \"../nationalSocieties/NationalSocietiesEditPage\";\nimport { NationalSocietiesOverviewPage } from \"../nationalSocieties/NationalSocietiesOverviewPage\";\nimport { SmsGatewaysListPage } from \"../smsGateways/SmsGatewaysListPage\";\nimport { SmsGatewaysCreatePage } from \"../smsGateways/SmsGatewaysCreatePage\";\nimport { SmsGatewaysEditPage } from \"../smsGateways/SmsGatewaysEditPage\";\nimport { ProjectsListPage } from \"../projects/ProjectsListPage\";\nimport { ProjectsCreatePage } from \"../projects/ProjectsCreatePage\";\nimport { ProjectsEditPage } from \"../projects/ProjectsEditPage\";\nimport { VerifyEmailPage } from \"../verifyEmailPage/VerifyEmailPage\";\nimport { GlobalCoordinatorsListPage } from \"../globalCoordinators/GlobalCoordinatorsListPage\";\nimport { GlobalCoordinatorsCreatePage } from \"../globalCoordinators/GlobalCoordinatorsCreatePage\";\nimport { GlobalCoordinatorsEditPage } from \"../globalCoordinators/GlobalCoordinatorsEditPage\";\nimport { ResetPasswordPage } from \"../resetPasswordPage/ResetPasswordPage\";\nimport { ResetPasswordCallbackPage } from \"../resetPasswordCallbackPage/ResetPasswordCallbackPage\";\nimport { HealthRisksListPage } from \"../healthRisks/HealthRisksListPage\";\nimport { HealthRisksCreatePage } from \"../healthRisks/HealthRisksCreatePage\";\nimport { HealthRisksEditPage } from \"../healthRisks/HealthRisksEditPage\";\nimport { SuspectedDiseaseListPage } from \"../suspectedDiseases/SuspectedDiseaseListPage\";\nimport { SuspectedDiseaseCreatePage } from \"../suspectedDiseases/SuspectedDiseaseCreatePage\";\nimport { SuspectedDiseaseEditPage } from \"../suspectedDiseases/SuspectedDiseaseEditPage\";\nimport { NationalSocietyUsersListPage } from \"../nationalSocietyUsers/NationalSocietyUsersListPage\";\nimport { NationalSocietyUsersCreatePage } from \"../nationalSocietyUsers/NationalSocietyUsersCreatePage\";\nimport { NationalSocietyUsersAddExistingPage } from \"../nationalSocietyUsers/NationalSocietyUsersAddExistingPage\";\nimport { NationalSocietyUsersEditPage } from \"../nationalSocietyUsers/NationalSocietyUsersEditPage\";\nimport { AgreementsPage } from \"../agreements/AgreementsPage\";\nimport { DataCollectorsListPage } from \"../dataCollectors/DataCollectorsListPage\";\nimport { DataCollectorsMapOverviewPage } from \"../dataCollectors/DataCollectorsMapOverviewPage\";\nimport { DataCollectorsCreatePage } from \"../dataCollectors/DataCollectorsCreatePage\";\nimport { DataCollectorsEditPage } from \"../dataCollectors/DataCollectorsEditPage\";\nimport { NationalSocietyStructurePage } from \"../nationalSocietyStructure/NationalSocietyStructurePage\";\nimport { CorrectReportsListPage } from \"../reports/CorrectReportsListPage\";\nimport { ReportsEditPage } from \"../reports/ReportsEditPage\";\nimport { ProjectDashboardPage } from \"../projectDashboard/ProjectsDashboardPage\";\nimport { MuiPickersUtilsProvider } from \"@material-ui/pickers\";\nimport DayJsUtils from \"@date-io/dayjs\";\nimport { AlertsListPage } from \"../alerts/AlertsListPage\";\nimport { AlertsAssessmentPage } from \"../alerts/AlertsAssessmentPage\";\nimport { ProjectsOverviewPage } from \"../projects/ProjectsOverviewPage\";\nimport { ProjectHealthRisksPage } from \"../projects/ProjectHealthRisksPage\";\nimport { ProjectHealthRisksEditPage } from \"../projects/ProjectHealthRisksEditPage\";\nimport { DataCollectorsPerformancePage } from \"../dataCollectors/DataCollectorsPerformancePage\";\nimport { NationalSocietyDashboardPage } from \"../nationalSocietyDashboard/NationalSocietyDashboardPage\";\nimport { TranslationsListPage } from \"../translations/TranslationsListPage\";\nimport { NotFoundPage } from \"../layout/NotFoundPage\";\nimport { OrganizationsListPage } from \"../organizations/OrganizationsListPage\";\nimport { OrganizationsCreatePage } from \"../organizations/OrganizationsCreatePage\";\nimport { OrganizationsEditPage } from \"../organizations/OrganizationsEditPage\";\nimport { ProjectOrganizationsListPage } from \"../projectOrganizations/ProjectOrganizationsListPage\";\nimport { ProjectOrganizationsCreatePage } from \"../projectOrganizations/ProjectOrganizationsCreatePage\";\nimport { EmailTranslationsListPage } from \"../translations/EmailTranslationsListPage\";\nimport { SmsTranslationsListPage } from \"../translations/SmsTranslationsListPage\";\nimport { ProjectAlertRecipientsCreatePage } from \"../projectAlertRecipients/ProjectAlertRecipientsCreatePage\";\nimport { ProjectAlertRecipientsEditPage } from \"../projectAlertRecipients/ProjectAlertRecipientsEditPage\";\nimport { IncorrectReportsListPage } from \"../reports/IncorrectReportsListPage\";\nimport { NationalSocietyCorrectReportsListPage } from \"../nationalSocietyReports/NationalSocietyCorrectReportsListPage\";\nimport { NationalSocietyIncorrectReportsListPage } from \"../nationalSocietyReports/NationalSocietyIncorrectReportsListPage\";\nimport { AlertEventsLogPage } from \"../alertEvents/AlertEventsLogPage\";\nimport { ProjectErrorMessagesPage } from \"../projects/ProjectErrorMessagesPage\";\nimport { useSelector } from \"react-redux\";\nimport { useEffect } from \"react\";\nimport { EidsrIntegrationPage } from \"../eidsrIntegration/EidsrIntegrationPage\";\nimport { EidsrIntegrationEditPage } from \"../eidsrIntegration/EidsrIntegrationEditPage\";\nimport { FeedbackPage } from \"../feedback/FeedbackPage\";\nimport { ProjectAlertNotHandledRecipientsPage } from \"../projectAlertNotHandledRecipient/ProjectAlertNotHandledRecipientsPage\";\nimport { ProjectAlertRecipientsListPage } from \"../projectAlertRecipients/ProjectAlertRecipientsListPage\";\nimport { ProjectSetupPage } from \"../projectSetup/ProjectSetupPage\";\nimport { Administrator } from \"../../authentication/roles\";\nimport { ApplicationInsightsProvider } from \"./ApplicationInsightsProvider\";\n\nexport const App = ({ history }) => {\n const direction = useSelector((state) => state.appData.direction);\n\n useEffect(() => (document.body.dir = direction), [direction]);\n\n const AIConnectionString = useSelector(\n (state) => state.appData.applicationInsightsConnectionString,\n );\n\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 {/* Project Setup route is limited to administrators only while under development */}\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 App;\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./components/app/App\";\nimport { Provider } from \"react-redux\";\nimport { runApplication } from \"./components/app/logic/appService\";\nimport history from \"./history\";\nimport store from \"./store\";\n\nconst render = () => {\n return ReactDOM.render(\n \n \n ,\n document.getElementById(\"root\"),\n );\n};\n\nrunApplication(store.dispatch).finally(render);\n\nif (module.hot) {\n module.hot.accept(\"./components/app/App\", () => render());\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"requiredMapLocation\":\"DataCollectorLocationItem_requiredMapLocation__1kxWV\",\"collapsibleContent\":\"DataCollectorLocationItem_collapsibleContent__3I8uq\",\"latLngInput\":\"DataCollectorLocationItem_latLngInput__3olI5\",\"geoStructureSelectShrinked\":\"DataCollectorLocationItem_geoStructureSelectShrinked__VVP29\",\"mapLabel\":\"DataCollectorLocationItem_mapLabel__1sgcQ\",\"coordinateFieldsContainer\":\"DataCollectorLocationItem_coordinateFieldsContainer__3XCKs\",\"collapsibleContainer\":\"DataCollectorLocationItem_collapsibleContainer__3YQWy\",\"locationHeader\":\"DataCollectorLocationItem_locationHeader__JrKva\",\"expandFilterButton\":\"DataCollectorLocationItem_expandFilterButton__3VvqS\",\"rtl\":\"DataCollectorLocationItem_rtl__2DDvO\",\"removeLocationButton\":\"DataCollectorLocationItem_removeLocationButton__xUm-y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AlertsAssessmentReport_container__3aGFl\",\"key\":\"AlertsAssessmentReport_key__2zXA4\",\"value\":\"AlertsAssessmentReport_value__1NU31\",\"form\":\"AlertsAssessmentReport_form__3JhJA\",\"time\":\"AlertsAssessmentReport_time__2zmB5\",\"senderContainer\":\"AlertsAssessmentReport_senderContainer__3uZOo\",\"senderLabel\":\"AlertsAssessmentReport_senderLabel__3o1vm\",\"sender\":\"AlertsAssessmentReport_sender__3VqC4\",\"indicator\":\"AlertsAssessmentReport_indicator__111Tv\",\"rtl\":\"AlertsAssessmentReport_rtl__1Hh5d\",\"reportStatus\":\"AlertsAssessmentReport_reportStatus__1G7ve\",\"progressIcon\":\"AlertsAssessmentReport_progressIcon__2ysEo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"divider\":\"EidsrIntegration_divider__2Fv44\",\"header\":\"EidsrIntegration_header__j9FL7\",\"districtInput\":\"EidsrIntegration_districtInput__1IO-G\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userStatusContainer\":\"UserStatus_userStatusContainer__13B5k\",\"userStatus\":\"UserStatus_userStatus__2p4dz\",\"userName\":\"UserStatus_userName__17cLU\",\"arrow\":\"UserStatus_arrow__3rwuT\",\"rtl\":\"UserStatus_rtl__2hWXX\",\"popover\":\"UserStatus_popover__3lURF\",\"authCaption\":\"UserStatus_authCaption__1I6pQ\",\"fontIcon\":\"UserStatus_fontIcon__vEMkS\"};"],"sourceRoot":""}