{"version":3,"sources":["pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/ClassTreesControl/ClassTreesControl.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/SignUpForm/SignUpForm.module.scss","pages/MapBiomasLandingPage/layout/Header/components/GeospatialObjects/GeospatialObjects.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/MapList/MapList.module.scss","utils/auth.js","core/apollo-client/local-resolvers/query.js","core/Routes/queries.js","data/initialBaseParams.js","data/mapActiveModuleToDefaultParams.js","data/mapModuleToPathname.js","helpers/parseQueryParamsToState.js","core/apollo-client/apollo-client.js","core/apollo-client/local-resolvers/mutation.js","core/context/app-context.js","utils/api.js","pages/MapBiomasLandingPage/query.js","pages/MapBiomasLandingPage/components/TabList/TabList.js","pages/MapBiomasLandingPage/layout/Header/components/ActiveOptionsList/ActiveOptionsList.js","pages/MapBiomasLandingPage/components/CustomSelect/CustomSelect.js","utils/toast.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/components/CARBox/CARBox.js","hooks/useFormatMessage.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/components/GeometryControl/GeometryControl.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/components/TerritoryAutocomplete/query.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/components/TerritoryAutocomplete/index.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/components/TerritoryAutocomplete/TerritoryAutocomplete.js","hooks/usePrevious.js","data/mapGroupTypeToTerritoryCategoryKey.js","utils/locale.js","data/constants.js","core/custom-apollo-client/custom-apollo-client.js","core/custom-apollo-client-secondary/custom-apollo-client-secondary.js","lib/getCustomClient.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/query.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/BaseForm.js","components/InfoTooltip/InfoTooltip.js","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/BaseClassTreeNodesControl/BaseClassTreeNodesControl.js","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/DegradationIsolationClassTreeNodesControl/DegradationIsolationClassTreeNodesControl.js","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/ClassTreesControl/ClassTreesControl.js","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/ClassLegendList/ClassLegendList.js","utils/apollo.js","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/query.js","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/GenericClasses.js","pages/MapBiomasLandingPage/layout/Header/components/GeospatialObjects/query.js","pages/MapBiomasLandingPage/layout/Header/components/GeospatialObjects/GeospatialObjects.js","pages/MapBiomasLandingPage/layout/Header/components/TransitionClasses/query.js","pages/MapBiomasLandingPage/layout/Header/components/TransitionClasses/TransitionClasses.js","pages/MapBiomasLandingPage/layout/Header/components/QualityClasses/QualityClasses.js","pages/MapBiomasLandingPage/layout/Header/components/TranslateOptionsBox/TranslateOptionsBox.js","hooks/useWindowSize.js","pages/MapBiomasLandingPage/layout/Header/components/InstitutionalMenu/InstitutionalMenu.js","helpers/parseToken.js","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/LoginForm/LoginForm.js","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/SignUpForm/SignUpForm.js","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/MapForm/MapForm.js","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/MapList/MapList.js","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/MapEditDialog/MapEditDialog.js","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/PasswordRecoveryForm/PasswordRecoveryForm.js","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/query.js","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/AccountMenu.js","helpers/resetToken.js","pages/MapBiomasLandingPage/layout/Header/components/DegradationViewModeControl/query.js","pages/MapBiomasLandingPage/layout/Header/components/DegradationViewModeControl/DegradationViewModeControl.js","pages/MapBiomasLandingPage/layout/Header/components/DegradationVectorControl/query.js","pages/MapBiomasLandingPage/layout/Header/components/DegradationVectorControl/DegradationVectorControl.js","pages/MapBiomasLandingPage/layout/Header/query.js","graphql/queries/general.js","data/mapClassTreeToAPIParams.js","hooks/useCustomMapLayer.js","data/customClientModules.js","pages/MapBiomasLandingPage/layout/Header/ModuleIconComponent.js","pages/MapBiomasLandingPage/layout/Header/Header.js","pages/MapBiomasLandingPage/layout/Footer/Footer.js","components/WarningNoteDialog/query.js","components/WarningNoteDialog/WarningNoteDialog.js","helpers/parseStateToQueryParams.js","pages/MapBiomasLandingPage/layout/BasePage/query.js","pages/MapBiomasLandingPage/layout/BasePage/BasePage.js","pages/MapBiomasLandingPage/views/Map/components/CARBox/query.js","pages/MapBiomasLandingPage/views/Map/components/CARBox/CARBox.js","pages/MapBiomasLandingPage/views/Map/components/ClassLegendDialog/query.js","pages/MapBiomasLandingPage/views/Map/components/ClassLegendDialog/ClassLegendDialog.js","pages/MapBiomasLandingPage/views/Map/components/CoordinatesBox/CoordinatesBox.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/components/PieChart/PieChart.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/components/LineChart/LineChart.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/components/StickyTable/StickyTable.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogCoverageClassesContent/query.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogCoverageClassesContent/DashboardDialogCoverageClassesContent.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogCoverageNaturalOrAnthropicContent/query.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogCoverageNaturalOrAnthropicContent/DashboardDialogCoverageNaturalOrAnthropicContent.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogQualityContent/query.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogQualityContent/DashboardDialogQualityContent.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogTransitionContent/TransitionMatrixTable.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/components/SankeyChart/SankeyChart.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogTransitionContent/components/SankeyChartControl/SankeyChartControl.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogTransitionContent/query.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogTransitionContent/DashboardDialogTransitionContent.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/components/BarChart/BarChart.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogPastureQualityContent/query.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogPastureQualityContent/DashboardDialogPastureQualityContent.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/components/ClassificationsChart/ClassificationsChart.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogGenericClassesContent/query.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogGenericClassesContent/DashboardDialogGenericClassesContent.js","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/DashboardDialog.js","data/baseLayers.js","data/baseMaps.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/components/CoordinatesInfo/CoordinatesInfo.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/components/MapCustomEvents/MapCustomEvents.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/components/DegradationLayer/DegradationLayer.js","hooks/useGenericBaseLayer.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/components/GenericBaseLayer/GenericBaseLayer.js","hooks/useGenericMapLayer.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/components/GenericLayer/GenericLayer.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/components/LeafletDrawWrapper/LeafletDrawWrapper.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/leaflet-side-by-side/leaflet-side-by-side.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/MapCanvas.js","pages/MapBiomasLandingPage/views/Map/components/MapboxCanvas/MapboxCoverageLayer.js","pages/MapBiomasLandingPage/views/Map/components/MapboxCanvas/MapboxCanvas.js","pages/MapBiomasLandingPage/views/Map/components/MapboxControl/MapboxControl.js","pages/MapBiomasLandingPage/views/Map/components/MapControls/MapControls.js","pages/MapBiomasLandingPage/views/Map/components/MapPointDialog/components/PointHistoryChart/PointHistoryChart.js","pages/MapBiomasLandingPage/views/Map/components/MapPointDialog/query.js","pages/MapBiomasLandingPage/views/Map/components/MapPointDialog/MapPointDialog.js","pages/MapBiomasLandingPage/views/Map/components/YearTimeline/query.js","pages/MapBiomasLandingPage/views/Map/components/YearTimeline/YearTimeline.js","pages/MapBiomasLandingPage/views/Map/components/YearTimelineMultiple/query.js","pages/MapBiomasLandingPage/views/Map/components/YearTimelineMultiple/YearTimelineMultiple.js","pages/MapBiomasLandingPage/components/ShareBox/ShareBox.js","pages/MapBiomasLandingPage/views/Map/components/ShareControl/ShareControl.js","helpers/positionTooltipInsideDocument.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/components/BarChart/BarChart.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/components/MinimalBarData/MinimalBarData.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/components/BaseValuesChart/BaseValuesChart.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/AnnualStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/AnnualStatisticsContent/AnnualStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/components/LineChart/LineChart.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/AccumulatedStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/AccumulatedStatisticsContent/AccumulatedStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/components/PieChart/PieChart.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/AccumulatedDistributedStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/AccumulatedDistributedStatisticsContent/AccumulatedDistributedStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/CoverageMainStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/CoverageMainStatisticsContent/CoverageMainStatisticsContent.js","hooks/useGenericMapStatistics.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/CoverageMainStatisticsContentCustom/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/CoverageMainStatisticsContentCustom/CoverageMainStatisticsContentCustom.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FireAnnualTotalBurnedStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FireAnnualTotalBurnedStatisticsContent/FireAnnualTotalBurnedStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/components/BurnedAreaCustomChart/BurnedAreaCustomChart.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FireMonthlyStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FireMonthlyStatisticsContent/FireMonthlyStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FireAccumulatedStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FireAccumulatedStatisticsContent/FireAccumulatedStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FrequencyStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FrequencyStatisticsContent/FrequencyStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FrequencyByYearStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/FrequencyByYearStatisticsContent/FrequencyByYearStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/NumberOfClassesStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/NumberOfClassesStatisticsContent/NumberOfClassesStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/DegradationFragmentationEdgeArea/DegradationFragmentationEdgeArea.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/components/DegradationMultipleBarChart/DegradationMultipleBarChart.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/DegradationMultipleContent/DegradationMultipleContent.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/StatisticsBox.js","pages/MapBiomasLandingPage/views/Map/components/InfrastructureStatisticsBox/content/InfrastructureMainStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/InfrastructureStatisticsBox/content/InfrastructureMainStatisticsContent/InfrastructureMainStatisticsContent.js","pages/MapBiomasLandingPage/views/Map/components/InfrastructureStatisticsBox/InfrastructureStatisticsBox.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsDataTableBox/StatisticsDataTableBox.js","components/tutorial/TutorialTour.js","pages/MapBiomasLandingPage/views/Map/query.js","pages/MapBiomasLandingPage/views/Map/Map.js","pages/MapBiomasLandingPage/LandingPage.js","pages/MapBiomasLogin/components/FormFooter.js","pages/MapBiomasLogin/components/PageFooter/PageFooter.js","pages/MapBiomasLogin/MapBiomasLogin.js","pages/MapBiomasPasswordRecovery/MapBiomasPasswordRecovery.js","pages/MapbiomasCreateAccount/MapbiomasCreateAccount.js","pages/LoginToForum/index.js","pages/TerritoryDashboard/content/CoverageMainStatisticsContent/query.js","pages/TerritoryDashboard/content/CoverageMainStatisticsContent/CoverageMainStatisticsContent.js","pages/TerritoryDashboard/content/CoveragePieChartContent/query.js","pages/TerritoryDashboard/content/CoveragePieChartContent/CoveragePieChartContent.js","pages/TerritoryDashboard/content/AnnualStatisticsContent/query.js","pages/TerritoryDashboard/content/AnnualStatisticsContent/AnnualStatisticsContent.js","pages/TerritoryDashboard/TerritoryDashboard.js","pages/Accuracy/query.js","pages/Accuracy/LineChart.js","pages/Accuracy/BarChart.js","core/Routes/Routes.js","pages/FireHotsitePage/FireHotsitePage.js","pages/MapBiomasCreatePassword/MapBiomasCreatePassword.js","helpers/validatePassword.js","pages/ConfirmationPage/ConfirmationPage.js","pages/Accuracy/Accuracy.js","core/Routes/redirect.js","core/themes/main/variables.js","core/themes/main/index.js","components/ToastContainer/query.js","components/ToastContainer/ToastContainer.js","core/Root/index.js","index.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/StatisticsBox.module.scss","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/components/GeometryControl/GeometryControl.module.scss","pages/MapBiomasLandingPage/views/Map/components/CoordinatesBox/CoordinatesBox.module.scss","pages/MapBiomasLandingPage/views/Map/components/StatisticsDataTableBox/StatisticsDataTableBox.module.scss","pages/MapBiomasLandingPage/layout/Header/Header.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/DashboardDialog.module.scss","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/ClassLegendList/ClassLegendList.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/AccountMenu.module.scss","pages/MapBiomasLandingPage/views/Map/components/ClassLegendDialog/ClassLegendDialog.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogQualityContent/DashboardDialogQualityContent.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogGenericClassesContent/DashboardDialogGenericClassesContent.module.scss","pages/MapBiomasLandingPage/components/TabList/TabList.module.scss","pages/MapBiomasLandingPage/layout/Header/components/TransitionClasses/TransitionClasses.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/MapForm/MapForm.module.scss","pages/MapBiomasLandingPage/layout/Header/components/DegradationViewModeControl/DegradationViewModeControl.module.scss","components/WarningNoteDialog/WarningNoteDialog.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogCoverageClassesContent/DashboardDialogCoverageClassesContent.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogCoverageNaturalOrAnthropicContent/DashboardDialogCoverageNaturalOrAnthropicContent.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogPastureQualityContent/DashboardDialogPastureQualityContent.module.scss","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/MapCanvas.module.scss","pages/MapBiomasLandingPage/views/Map/components/YearTimelineMultiple/YearTimelineMultiple.module.scss","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/components/MinimalBarData/MinimalBarData.module.scss","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/components/CARBox/CARBox.module.scss","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/DegradationIsolationClassTreeNodesControl/DegradationIsolationClassTreeNodesControl.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/PasswordRecoveryForm/PasswordRecoveryForm.module.scss","pages/MapBiomasLandingPage/components/ShareBox/ShareBox.module.scss","pages/TerritoryDashboard/TerritoryDashboard.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/LoginForm/LoginForm.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/MapEditDialog/MapEditDialog.module.scss","pages/MapBiomasLandingPage/layout/Footer/Footer.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/components/StickyTable/StickyTable.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogTransitionContent/components/SankeyChartControl/SankeyChartControl.module.scss","pages/MapBiomasLandingPage/views/Map/components/MapboxControl/MapboxControl.module.scss","pages/MapBiomasLandingPage/views/Map/components/YearTimeline/YearTimeline.module.scss","pages/MapBiomasLandingPage/views/Map/components/ShareControl/ShareControl.module.scss","pages/MapBiomasLogin/components/PageFooter/PageFooter.module.scss","pages/MapBiomasLandingPage/layout/Header/components/ActiveOptionsList/ActiveOptionsList.module.scss","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/components/CoordinatesInfo/CoordinatesInfo.module.scss","pages/MapBiomasLogin/logo.svg","pages/MapBiomasLandingPage/layout/Header/components/QualityClasses/QualityClasses.module.scss","pages/MapBiomasLandingPage/layout/Header/components/TranslateOptionsBox/TranslateOptionsBox.module.scss","pages/MapBiomasLandingPage/layout/Header/components/InstitutionalMenu/InstitutionalMenu.module.scss","pages/MapBiomasLandingPage/views/Map/components/MapControls/MapControls.module.scss","pages/Accuracy/Accuracy.module.scss","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/BaseClassTreeNodesControl/BaseClassTreeNodesControl.module.scss","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/GenericClasses.module.scss","pages/MapBiomasLandingPage/layout/Header/components/DegradationVectorControl/DegradationVectorControl.module.scss","pages/MapBiomasLandingPage/layout/BasePage/BasePage.module.scss","pages/MapBiomasLogin/components/FormFooter.module.scss","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/BaseForm.module.scss","pages/MapbiomasCreateAccount/MapbiomasCreateAccount.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogTransitionContent/DashboardDialogTransitionContent.module.scss","pages/MapBiomasLandingPage/components/CustomSelect/CustomSelect.module.scss","components/InfoTooltip/InfoTooltip.module.scss","pages/MapBiomasLandingPage/layout/Header/logo.svg","pages/MapBiomasLandingPage/layout/Header/logo-mapbiomas-fogo.png","pages/MapBiomasLandingPage/layout/Header/10-metros-pt-br-horizontal.svg","pages/MapBiomasLandingPage/layout/Header/10-metros-en-horizontal.svg","pages/MapBiomasLandingPage/layout/Header/logo-mapbiomas-degradation.svg","pages/MapBiomasLandingPage/layout/Footer/logo-ecostage.svg","pages/MapBiomasLandingPage/views/Map/components/MapboxCanvas/MapboxCanvas.module.scss","pages/MapBiomasLandingPage/LandingPage.module.scss","pages/MapBiomasCreatePassword/logo.svg","pages/MapBiomasLogin/components/PageFooter/logo-ecostage.svg","pages/MapBiomasPasswordRecovery/logo.svg","pages/TerritoryDashboard/logo.svg","pages/MapBiomasLandingPage/views/Map/components/MapPointDialog/MapPointDialog.module.scss","pages/MapBiomasLandingPage/views/Map/components/InfrastructureStatisticsBox/InfrastructureStatisticsBox.module.scss","pages/MapBiomasLandingPage/views/Map/components/CARBox/CARBox.module.scss","pages/MapBiomasLogin/MapBiomasLogin.module.scss","pages/MapBiomasCreatePassword/MapBiomasCreatePassword.module.scss","pages/MapBiomasPasswordRecovery/MapBiomasPasswordRecovery.module.scss"],"names":["module","exports","wrapper","title","info","label","toggleButtons","toggleButtons2Items","toggleButtons3Items","toggleButtonsDegradationFragmentation","levelControls","checkboxRoot","checkboxLabel","actionButton","descriptionText","formControlSelectInput","formWrapper","textInfo","formControl","actionsWrapper","helperLink","successText","classListItemBase","classListItemHeader","classListItemCheckControl","classListItemTitle","classListItemContentControl","classListItemInfoControl","classNode","classChildNode","actionBoxControlButton","mapList","mapItem","mapItemImage","mapItemTextContent","mapItemTitle","mapItemDescription","mapItemActionsContent","mapItemViewButton","mapItemViewButtonSecondary","getCurrentTimeFromWorldClock","_getCurrentTimeFromWorldClock","apply","this","arguments","_callee","currentTime","response","json","regenerator_default","a","wrap","_context","prev","next","fetch","sent","currentDateTime","Error","Date","t0","console","warn","abrupt","stop","getUserIdFromToken","length","undefined","claims","token","base64","split","replace","jsonPayload","decodeURIComponent","atob","map","c","charCodeAt","toString","slice","join","JSON","parse","parseJwt","localStorage","getItem","expirationDate","exp","getTime","removeItem","sub","e","local_resolvers_query","currentUserId","_currentUserId","Object","asyncToGenerator","mark","_object","_args","_info","userId","_context2","_x","_x2","_x3","_x4","GET_USER_ID","kind","definitions","operation","name","value","variableDefinitions","directives","selectionSet","selections","loc","start","end","source","body","locationOffset","line","column","GET_USER","variable","type","initialBaseParams","groupType","degradationType","degradationFragmentationIsolationValue","degradationCrossingValues","__typename","degradation_fragmentation_edge_area","degradation_fragmentation_fragment_size","degradation_fragmentation_isolation_medium_size","degradation_fragmentation_isolation_distance","degradation_fragmentation_isolation_big_size","degradation_fire_frequency","degradation_fire_time","degradation_secondary_vegetation_age","parsedParams","territoryType","territorySubtype","territoryValueType","crossingEnabled","crossingTerritoryType","crossingTerritories","territory","territories","crossing","classesViewMode","activeClassTreeOptionValue","activeClassTreeNodeIds","activeBaseClassTreeNodeIds","activeObjectTreeNodeIds","activeSubmodule","activeClassesLevelsListItems","activeTransitionsClassesListItems","activePastureQualityQualityClassesListItems","yearRange","buffer","mapActiveModuleToDefaultParams","coverage","activeModule","activeModuleContent","activeYear","timelineSpecificValues","timelineLimitsRange","mapboxMode","temporal_analysis","coverage_quality","quality_of_pasture_data","irrigation","deforestation","regeneration","infrastructure","fire","mining","soil","sentinel","degradation","mapModuleToPathname","/cobertura","/analises-temporais","/desmatamento","/regeneracao","/irrigacao","/infraestrutura","/pastagem","/fogo","/mineracao","/qualidade","/solo","/cobertura_10m","/degradacao","parseTerritories","_","territoryCode","_$split","_$split2","slicedToArray","id","territoryTypeId","territoryTypeLabel","bboxV1","bboxV2","bboxV3","bboxV4","parsedBBox","Number","territoryBBox","parseQueryParamsToState","queryParams","activeBaseMap","activeLayers","layersOpacity","showBeforeAndAfterMosaic","baseParams","state","cloneDeep","omit","parsedActiveBaseMap","parsedActiveYear","includes","parsedLayersOpacity","isNaN","set","ids","isArray","parsedTimelineLimitsRange","_ref","parsedTerritories","cache","InMemoryCache","urlQueryParams","window","location","search","queryString","queryObject","qs","comma","get","pathname","moduleKey","initialModulePathnameParams","writeData","data","app","objectSpread","headerIsVisible","mapFlyTo","mapPointInfo","mapPosition","showClassInfo","showDashboardInfo","ruralPropertyCode","isLoadingBaseData","notifyUserNewTermOfUseVersion","transitionClassTreeNodeId","activeNoteKey","carFeature","geometry","geometryMode","toast","content","severity","visible","onError","graphQLErrors","networkError","forEach","_ref2","message","locations","path","log","concat","createUploadLink","uri","setContext","previousContext","headers","authorization","_ref3","some","extensions","forbidden","operationName","client","resetStore","link","HttpLink","ApolloClient","resolvers","Query","QueryResolver","Mutation","React","createContext","API_URL","process","request","endpoint","originConfig","customHeaders","Content-Type","config","extend","url","Authorization","then","ok","contentType","blob","text","Promise","reject","status","statusText","catch","error","stringify","GET_BASE_DATA","useStyles","makeStyles","theme","item","&:hover","color","palette","primary","main","activeItem","boxShadow","backgroundColor","CustomTooltip","withStyles","tooltip","padding","fontSize","Tooltip","TabList","_classnames","_this","_ref$size","size","_ref$hasCustomItemSiz","hasCustomItemSize","_ref$fullWidth","fullWidth","_ref$itemSizes","itemSizes","xs","_ref$items","items","_ref$onChange","onChange","classes","customItemSizes","clone","react_default","createElement","Grid","container","spacing","className","classnames","styles","navList","defineProperty","navListSmall","navListFullWidth","index","_classnames2","_classnames3","assign","key","navListItem","disabledItem","disabled","elementId","onClick","bind","ActiveOptionsList","categoryKey","options","_ref$customIdParam","customIdParam","_ref$onClear","onClear","isEmpty","list","option","categoryText","listItem","listItemText","IconButton","listItemRemoveButton","Clear_default","CustomSelect","disableClearable","_ref$displayEmpty","displayEmpty","_ref$isMultiple","isMultiple","_ref$isLoading","isLoading","_ref$options","_ref$defaultOrder","defaultOrder","_ref$value","dataKey","placeholder","isMobile","useMediaQuery","_useState","useState","_useState2","inputValue","setInputValue","getSelectedOption","find","react","InputLabel","inputLabel","Select","labelId","isNil","sortBy","MenuItem","extraProps","onInputChange","event","target","Autocomplete","blurOnSelect","loading","loadingText","noOptionsText","getOptionLabel","_event","reason","renderInput","params","TextField","variant","initialState","code","CARForm","isVisible","_ref$onFlyTo","onFlyTo","_ref$onSearchPoint","onSearchPoint","_ref$onRuralPropertyC","onRuralPropertyCodeChange","_ref$updateClientAppS","updateClientAppState","setState","_useState3","_useState4","isSearching","setIsSearching","useEffect","handleStateChange","paramKey","paramValue","carCode","method","feature","bbox","turf","center","coordinates","point","lat","first","lng","last","onSubmit","preventDefault","FormControl","required","actionWrapper","Button","removeButton","Close_default","loadingProgressWrapper","CircularProgress","searchButton","Search_default","CARBox","_ref2$onFlyTo","_ref2$onFeatureChange","onFeatureChange","_ref2$updateClientApp","baseData","useQuery","useFormatMessage","formatMessage","useIntl","values","GeometryControl","mode","_ref$onShapefileChang","onShapefileChange","_ref$onDrawModeChange","onDrawModeChange","setError","handleShapefileChange","file","formData","result","geoJson","errorKey","parsedData","errorMessage","files","FormData","append","infoText","buttonsWrapper","classNames","actionButtonActive","infoTextSecondary","uniqueId","kebabCase","infoTextError","GET_TERRITORIES_AUTOCOMPLETE","TerritoryAutocomplete","activeTerritories","categoryId","territoryLabelFilter","locale","useApolloClient","currentValue","setCurrentValue","setOptions","_useState5","_useState6","setLoading","setDataFromExternalTerritories","boundingBox","searchOptions","query","_yield$client$query","newOptions","parsedOptions","variables","stringList","selectedString","language","toConsumableArray","filter","debouncedSearchOptions","useMemo","debounce","filterOptions","x","autoComplete","includeInputInList","filterSelectedOptions","newValue","newInputValue","usePrevious","ref","useRef","current","mapGroupTypeToTerritoryCategoryKey","default","territorial","land","simplified","onLocaleFunctionsCustom","mapValues","localeMessages","_messages","flow","property","partial","onCurrentLocaleCustom","multiLanguageStringObject","API_URLS","mapVersionToClient","7.1","8.0","customClient","getCustomClient","version","GET_BASE_CLIENT_DATA","GET_TERRITORIES_LIST","GET_TERRITORY_BOUNDING_BOX","GET_TRANSITION_PERIOD_OPTIONS_DATA","TERRITORY_CATEGORIES_WITH_SIMPLE_SELECT","BaseForm","clientType","_ref$territoryCategor","territoryCategoriesGroup","_ref$isTransition","isTransition","_ref$hideGroupType","hideGroupType","_ref$showBufferField","showBufferField","_ref$showMultipleTerr","showMultipleTerritories","_ref$showCrossing","showCrossing","_ref$hasGeometryOptio","hasGeometryOptions","inline","intl","clientBaseData","_useQuery2","loadingBaseData","_useQuery3","skip","transitionBaseData","loadingTransitionBaseData","_useLazyQuery","useLazyQuery","_useLazyQuery2","loadTerritoriesListData","_useLazyQuery2$","territoriesListData","loadingTerritoriesListData","loadTerritoryBoundingBox","territoriesIds","territoryCategoriesList","geometryBuffers","coverageTransitionPeriodOptionsList","territoriesList","territoryIsMultiple","prevGroupType","parsedTerritoryTypeOptions","parentId","territoryCategoryGroups","mapModuleToTerritoryCategoryGroups","territoryKeysByGroupType","filteredTerritoryTypeOptions","findIndex","baseTerritoryKey","territoryTypeOption","hasTerritorySimpleSelect","crossingTerritoryTypeOptions","crossingInputIsDisabled","parsedTerritoryOptions","xMin","xMax","yMin","yMax","parsedCoverageTransitionPeriodOptionsList","fromYear","toYear","groupBy","orderAmongSiblings","parsedFromYear","parsedToYear","group","orderBy","updateClientAppBaseParamsState","initialTerritoryType","isNumber","firstTerritory","firstTerritoryId","territoryOption","activeTerritoryIds","newTerritoryItem","handleInputChange","field","isObject","handleTerritoryChange","_field","baseOption","nextTerritories","handleCrossingTerritoryChange","handleRemoveTerritory","territoriesClone","handleFlyToPointSubmit","handleCARFeatureSubmit","toggleTerritoryValueType","toggleCrossing","toggleBeforeAndAfterMosaic","handleGeometryModeChange","wrapperInline","RadioGroup","radioGroup","FormControlLabel","radioLabel","control","Radio","radioInput","Fragment","components_TerritoryAutocomplete","root","Checkbox","checked","tooltipWrapper","BaseForm_CustomTooltip","Info_default","gb","yearRangeFormControl","ListSubheader","groupList","checkboxControl","InfoTooltip","_ref$placement","placement","InfoTooltip_CustomTooltip","dangerouslySetInnerHTML","__html","icon","BaseClassTreeNodesControl","baseClassInfo","initialValues","mediumSize","distance","bigSize","mediumSizeOptions","distanceOptions","bigSizeOptions","DegradationIsolationClassTreeNodesControl","setParams","canSubmit","compact","handleChange","param","prevParams","arrayFormat","baseClassInfoSecondary","activeButton","borderColor","mapSubmoduleKeyToTooltip","fire_annual","fire_monthly","fire_accumulated","fire_frequency","ClassTreesControl","classTreeOptions","activeTreeOption","_ref$levels","levels","_ref$activeLevels","activeLevels","submoduleKey","_ref$hideLevelsContro","hideLevelsControl","onActiveTreeOptionChange","_ref$onLevelToggle","onLevelToggle","hasBaseMode","baseNodesOptions","activeBaseClassTreeNodeId","onBaseNodeOptionChange","legendTooltip","isOnDegradationFragmentationIsolation","handleOptionChange","href","classTreeOption","renderOptions","levelId","isChecked","ClassLegendList","hideParentToggle","hideLegendIndex","classTreeNodes","onClassTreeNodeToggle","onClassTreeNodeShowTooltip","expandedNodeIds","setExpandedNodeIds","rootLevel","min","toggleTreeNode","node","without","renderClassTreeBranch","_ref2$parentId","parentNode","branchNodes","currentLevelShiftedToZeroBased","prettyIndexOfNodeInTree","positionInTree","indexText","childrenIds","toggled","style","CheckBox_default","CheckBoxOutlineBlank_default","renderCheckbox","i18nStrings","ExpandLess_default","ExpandMore_default","renderExpandIcon","tooltips","renderTooltipIcon","Collapse","in","updateStateCache","basePath","_len","keyValuePairs","Array","_key","object","pathToWalkAddingTypenames","_$zip","zip","_$zip2","keys","zipObjectPaths","k","zipObjectDeep","reduce","toPath","partialPath","pathComponent","typename","upperFirst","camelCase","GET_CLASSES_LEVELS_LIST","GET_CLASS_TREE_DATA","mapClassTreeKeyToDefaultLevels","deforestation_annual_data","regeneration_annual_data","regeneration_accumulated_data","mining_annual","degrationPixelValues","GenericClasses","moduleId","secondaryClassTreeKey","baseClassTreeNodes","setBaseClassTreeNodes","uncurriedUpdateStateCache","classesTreesData","isOnDegradationModule","prevDegradationFragmentationIsolationValue","isOnDegradationCrossingMode","isOnInitialRenderingWithQueryParams","isUndefined","classTrees","classTreeKey","classTreeData","loadingClassTreeData","refetchClassTreeData","refetch","classTreeLevelsList","chain","flatten","uniqBy","activeTreeIsInCurrentSubmoduleTrees","classTree","firstTree","firstTreeKey","nodeIds","defaultLevels","nodesOfActiveClassTree","uniq","idsByLevel","level","idsByLevelActive","classesControlTreeOptions","idsClone","nextIds","_dataKey","loadingWrapper","classTreeNode","nodeId","GET_COMPONENT_INITIALIZATION_DATA","MAP_POSITION_IN_TREE_TO_DOWNLOAD_URL","1.1.1","1.1.2","1.1.3","1.2.1","1.2.2","1.2.3","1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.3.1","1.3.2.1","1.3.2.2","1.3.2.3","1.3.3","1.3.4","1.3.5","1.3.6","1.4","1.5.1","1.5.2","1.5.3","2.1.1.1.1","2.1.1.1.2","2.1.1.2.1","2.1.1.2.2","2.1.1.2.3","2.1.1.2.4","2.1.2.1","2.1.2.2","2.1.2.3","2.1.3.1","2.1.3.2","2.2.1.1","2.2.1.2","2.2.2.1.1","2.2.2.1.2","2.2.2.1.3","2.2.2.1.4","2.2.2.1.5","2.2.2.1.6","2.2.2.2.1","2.2.2.2.2","3.1","3.2","3.3","3.4","4.1","4.2","5.1","GeospatialObjects","_ref$objectTree","objectTree","apolloClient","_useQuery","appState","updateState","nodes","handleObjectTreeNodeToggle","objectTreeNode","downloadUrl","CloudDownload_default","transitionClassesData","pixelValue","TransitionClasses","_ref$onItemsChange","onItemsChange","activeItems","allClassesActive","handleItemsChange","itemIsActive","toggleActiveItem","itemsClone","itemId","classList","QualityClasses","legendGradient","TranslateOptionsBox","anchorEl","_ref$onClose","onClose","open","Boolean","handleLocaleChange","setItem","Popper","transition","zIndex","TransitionProps","Fade","timeout","ClickAwayListener","onClickAway","Paper","boxWrapper","button","useWindowSize","width","height","windowSize","setWindowSize","handleResize","innerWidth","innerHeight","addEventListener","removeEventListener","LOGO_HEIGHT","TITLE_HEIGHT","FOOTER_HEIGHT","InstitutionalMenu","iframeMode","contentHeight","navListWrapper","rel","parseToken","apiToken","parsedToken","email","login","password","LoginForm","_ref$onRecoveryPasswo","onRecoveryPassword","handleTextChange","payload","organization","motivation","SignUpForm","_ref$onCancel","onCancel","showInfo","setShowInfo","handleSubmit","user","filterFormInput","multiline","rows","description","updateSnapshot","MapForm","_ref$editMode","editMode","_ref$onSubmit","baseTranslationKey","MapList","_ref$data","_ref$onViewMap","onViewMap","_ref$onEditMap","onEditMap","_ref$onDeleteMap","onDeleteMap","handleDelete","confirm","CheckCircleOutline_default","Edit_default","Delete_default","MapEditDialog","isOpen","Dialog","paper","dialogWrapper","header","closeButton","PasswordRecoveryForm","AccountMenu","myMapsMode","newMapMode","_ref$onHideMenu","onHideMenu","showForm","setShowForm","showSignUp","setShowSignUp","currentMapData","setCurrentMapData","_useState7","_useState8","showPasswordRecovery","setShowPasswordRecovery","_useState9","_useState10","maps","setMaps","toggleMapForm","toggleSignUpForm","togglePasswordRecoveryForm","titleWrapper","hideMenuButton","ChevronLeft_default","userInfo","Person_default","ExitToApp_default","myMapsContentWrapper","startIcon","Add_default","addButton","appData","snapshot","mapsClone","flyTo","territoryPoints","mapData","mapId","DegradationViewModeControl","mapDataKeyToQuery","fragmentation","alias","block","secondaryVegetation","DegradationVectorControl","classTreeKeys","classTreesData","groupLabel","groupKey","flattenOptions","activeOptions","classTreeKeyValue","isActive","_$split3","GET_MODULE_DATA","mapClassTreeToAPIParams","degradation_fragmentation_isolation","customClientModules","ModuleIconComponent","moduleIcon","xmlns","viewBox","fill","d","preserveAspectRatio","moduleIconDegradation","NEW_MODULE_KEYS","BETA_MODULE_KEYS","mapNewModuleListKeyToOldKey","getModuleItemClassName","scenarios","coral_reef","mapLocaleKeyToAbbreviation","pt-BR","en","es","fontWeight","arrow","TOP_PADDING","TOP_PADDING_LARGE","BOTTOM_PADDING","withRouter","_classnames6","_classnames7","history","navIsVisible","setNavIsVisible","menuIsVisible","setMenuIsVisible","accountMenuIsVisible","setAccountMenuIsVisible","translateBoxAnchorEl","setTranslateBoxAnchorEl","showFireModeContent","setShowFireModeContent","_useState11","_useState12","showInfrastructureModeContent","setShowInfrastructureModeContent","_useState13","_useState14","showIrrigationModeContent","setShowIrrigationModeContent","_useState15","_useState16","showDeforestationModeContent","setShowDeforestationModeContent","modulesData","primaryCustomModulesData","secondaryCustomModulesData","prevActiveModule","isWaterIframe","isCoralReefIframe","isFireIframe","isInfrastructureIframe","isIrrigationIframe","modulesList","primaryCustomModulesList","secondaryCustomModulesList","activeModuleData","landUseAndCover","pastureQuality","submodulesList","mapModuleKeyToCustomModulesList","handleActiveModuleChange","push","defaultParams","toggleNav","handleShowDashboardInfo","handleTabChange","handleMapFlyToChange","handleAddNewMap","handleShowMyMaps","handleUpdateDegradationCrossingValues","queryParsed","crossingParams","parseCrossingParams","handleWaterClick","hasStatisticsButton","parsedTabList","mapSubmoduleIdToTooltip","fire_last","fire_size","totalTabList","handleCustomModeClick","showFireIframeMode","showInfrastructureIframeMode","showIrrigationIframeMode","wrapperHidden","wrapperIframeMode","headerWrapper","headerWrapperHidden","menuBar","menuBarList","rgbColor","hex","m","r","g","b","exec","parseInt","hexToRgb","primaryColor","Header_CustomTooltip","menuBarListItem","menuBarListItemWater","menuBarListItemLine","menuBarListItemNewTag","menuBarListItemBetaTag","menuBarBottomContent","menuButton","AccountCircle_default","Menu_default","translateButton","currentTarget","Translate_default","menuContent","topContent","contentWrapper","tabContent","degradationControls","degradationControlsAction","hasBaseValueSelected","fireModeContentBoxExtra","fireModeContentBoxTitle","fireModeContentBoxTextWrapper","renderTabContent","statisticsButtonWrapper","BarChart_default","bottomContent","Bookmark_default","ViewList_default","fireModeContentWrapper","fireModeContent","fireModeContentBox","fireModeContentBoxActions","fireModeContentBoxButton","component","Link","to","infrastructureModeContentBoxButton","irrigationModeContentBoxButton","deforestationModeContentBoxButton","linksContent","linksContentIsVisible","linksContentIframeMode","logoBox","logoBoxCollapsed","mainLogo","logoImage","logo","logoFire","logoSentinelPT","logoSentinelEN","logoDegradation","src","alt","headerImageLogoSentinel","headerImageLogoDegradation","renderLogo","versionTag","betaTag","toggleButton","toggleButtonExpand","Footer","copyText","versionText","ecostageImage","availableLocaleNoteKeys","WarningNoteDialog","readNoteKeys","setReadNoteKeys","closeNoteDialog","isNull","contentDescription","actions","HEADER_HEIGHT","HEADER_SIMPLE_HEIGHT","BasePage","children","_ref$simple","simple","shouldNotifyUserNewTermOfUseVersion","headerHeight","windowHeight","setWindowHeight","setContentHeight","isFrameMode","debouncedUpdateHeight","parsedQueryParams","parseStateToQueryParams","encodedQueryParams","encodeValuesOnly","customPathname","invert","pageWrapper","locale-en","Header_Header","minHeight","frameBorder","scrolling","marginHeight","marginWidth","GET_POINT_DATA","searchButtonActive","& svg","searchIconButton","CARInfo","_ref2$onClose","handleClose","carInfoWrapper","carInfoWrapperWithoutHeader","carInfoWrapperWithBeforeAndAfterMosaic","dataList","dataListItem","dataListItemLabel","dataListItemValue","_ref3$onFlyTo","_ref3$onFeatureChange","_ref3$updateClientApp","showPointForm","setShowPointForm","CARData","setCARData","loadPointData","pointData","loadingPointData","getTerritoriesOnList","filteredTerritoryCategoriesList","_ref4","category","territoryData","categoryStringList","categorySelectedString","territoryStringList","territorySelectedString","category_key","wrapperWithoutHeader","wrapperWithBeforeAndAfterMosaic","CARBox_CARForm","_ref5","defaultValue","DEFAULT_PADDING","ClassLegendDialog","classId","currentTab","setCurrentTab","tabItems","setTabItems","classesTooltipsList","parsedTabItems","labelStringList","labelSelectedString","titleStringList","titleSelectedString","wrapperWithHeader","selectedData","bodyStringList","bodySelectedString","imageList","image","imageStringList","imageSelectedString","renderContent","& a","& ul","paddingLeft","& ul li","listStyleType","CustomTooltipSimple","PointForm","parsedLat","parsedLng","CoordinatesBox_CustomTooltip","interactive","infoIcon","InputProps","inputComponent","Cleave","inputProps","numeral","MyLocation_default","CoordinatesBox","_ref2$onSubmit","controlWrapper","CoordinatesBox_CustomTooltipSimple","tooltipFormatter","str","seriesName","valueLabel","numbro","format","thousandSeparated","mantissa","percentageFormatted","percent","output","PieChart","colors","serie","echarts_for_react_lib_default","grid","left","top","right","bottom","confine","trigger","textStyle","align","borderWidth","extraCssText","formatter","legend","show","series","animation","radius","toolbox","saveAsImage","axisValue","LineChart","_ref$categories","categories","_ref$series","containLabel","xAxis","axisPointer","axisLabel","axisLine","boundaryGap","yAxis","axisTick","splitLine","lineStyle","smooth","notMerge","formatNumber","StickyTable","columns","tableWrapper","categoriesTitle","tableCategoriesList","row","TableContainer","Table","table","TableHead","TableRow","TableCell","categoryCell","TableBody","yearValue","printButton","dark","DashboardDialogCoverageClassesContent","classTreeId","territoryIds","classTreesList","classesLevelsList","classesLevelsListByLevel1","filteredClassesLevelsListByLevel1","filteredClassesLevelsListByLevel1Ids","activeClassesLevelsList","coverageClassificationDataList","aggregatedCoverageClassificationDataList","obj","year","classTreeNodeId","nextValue","areaInHa","classData","years","parsedClassesLevelsList","coverageClassificationData","pieChartData","itemStyle","lineChartSeriesData","chartsWrapper","dataTableWrapper","tableHeader","tableTitle","each","rowData","class","react_csv","csvDownloadLink","filename","renderDownloadTableLink","DashboardDialogCoverageNaturalOrAnthropicContent","filteredCoverageClassificationDataList","parsedClassesLevelsByLevel1Data","filteredCoverageClassificationData","sumBy","parsedClassesLevelsByLevel1PieData","filteredData","sampleData","areaStyle","DashboardDialogQualityContent","territoryId","area","scope","cellIndex","formatValue","& thead td","borderBottom","& th","TransitionMatrixTable","links","sourceCategories","targetCategories","tableContainer","maxHeight","targetCategory","categoryData","sourceCategory","rowTotal","fromCategory","linkData","totalRow","toCategoryTotal","columnTotal","tableLeftTag","tableTopTag","tableLeftCategoriesWrapper","matrixTable","rowTotalByCategory","baseParentId","substring","startsWith","columnTotalByCategory","valueFormatted","MyResponsiveSankey","_ref$onClick","nivo_sankey_esm","margin","nodeOpacity","nodeInnerPadding","nodeSpacing","nodeBorderWidth","nodeBorderColor","from","modifiers","linkOpacity","linkHoverOpacity","linkHoverOthersOpacity","enableLinkGradient","labelPosition","labelPadding","labelTextColor","animate","motionStiffness","motionDamping","tooltipFormat","SankeyChart","_ref2$onClick","SankeyChart_MyResponsiveSankey","CUSTOM_PADDING","exportAsImage","element","imageFileName","canvas","html2canvas","toDataURL","downloadImage","fileName","fakeLink","document","download","appendChild","click","removeChild","remove","SankeyChartControl","activeLevel","chartRef","activeLinks","setActiveLinks","activeSourceClasses","setActiveSourceClasses","activeTargetClasses","setActiveTargetClasses","hasClassesControl","PADDING","validSourceIds","validTargetIds","nextLinks","originOptions","destinationOptions","handleAutocompleteChange","renderClassesAutocomplete","autocompleteFormControl","multiple","filteredNodes","_ref6","filteredLinks","_ref7","sankeyYears","downloadButton","Image_default","sankeyWrapper","levelIds","DashboardDialogTransitionContent","_ref$onLinkClick","onLinkClick","setActiveLevel","activeTab","setActiveTab","defaultClassTreeData","loadingClassesData","defaultClassTreeLevelsList","defaultClassTreeId","range","handleLevelChange","handleSankeyClick","sourceTreeNodeId","targetTreeNodeId","radioGroupInput","tabListWrapper","dataWrapper","coverageClassificationChangesDataByTreesList","uniqData","fromTreeNodeId","toTreeNodeId","aggregatedData","fromClassData","toClassData","fromPositionLevelLabel","fromNodeId","fromStringList","fromSelectedString","fromNode","treeNodeId","toPositionLevelLabel","toNodeId","toStringList","toSelectedString","toNode","BarChart","_ref$vertical","vertical","tempValue","DashboardDialogPastureQualityContent","parsedActiveClassesLevelsListItems","barChartSeriesData","stack","BarChart_BarChart","getClassAreaForYear","memoize","sum","getPositionsToOffsetForIndex","numberOfCharts","y","div","divide","floor","positions","0","1","ClassificationsChart","_ref$allClassTreeLeve","allClassTreeLevels","_ref$activeClassTreeL","activeClassTreeLevels","_ref$classTreeCharts","classTreeCharts","_ref$years","generateBaseSerieForAnyChart","chart","levelsToShowOnPieChart","optionTransforms","hideAxis","axis","swapAxis","oldXAxis","oldYAxis","oldXAxisId","tempEncodeX","encode","parseStackedBar","chartTypeTransformationMappings","sunburst","pie","bar","stacked_bar","stacked_area","stacked_column","colorSpan","indexOf","dataset","sourceHeader","treeNodeNames","zipObject","n","over","singleYear","gridIndex","flatMap","cond","matches","chartType","dataIndex","itemName","constant","chartIndex","treeNode","xAxisIndex","yAxisIndex","transformation","GET_CATEGORIES_OF_OBJECT_TREE_NODES","getYearRangeFromClassTreeNodes","DashboardDialogGenericClassesContent","_ref$hasObjectFilter","hasObjectFilter","bufferId","objectTreeNodesData","objectTreeNodeIds","activeObjectCategoryIds","classTreeLevels","ctl","tableRows","mapKeys","coverageClassificationDataByTreeList","_value","trimStart","hasDataByTree","t","hasDataByTreeIntersectedByObject","parsedClassTreeCharts","marginTop","display","justifyContent","alignItems","DashboardDialog","_ref$onUpdateClientAp","onUpdateClientAppState","isExpanded","setIsExpanded","titleId","handleTransitionLinkClick","contentKey","snakeCase","wrapperIsCollapsed","alertInfo","toggleButtonIsCollapsed","baseLayers","labelKey","descriptionData","baseMaps","layerParams","noWrap","attribution","props","tileType","layers","transparent","CoordinatesInfo","mouseCoordinates","mouseCoordinatesInfo","MapCustomEvents","_ref$onZoomStart","onZoomStart","_ref$onMoveStart","onMoveStart","_ref$onEsc","onEsc","useLeaflet","handleKeyDown","originalEvent","keyCode","on","off","DegradationLayer","degradationLayerData","urlParams","isOnCrossingMode","degradationCrossingParsedParams","defaultClassTreeNodes","setUrl","initiative","pixelValues","mapUrl","layerURL","useCustomMapLayer","TileLayer","customSubmoduleProps","coverage_rgb","GenericBaseLayer","pathKey","layerKey","_ref$zIndex","layerData","layer","customProps","parsedCustomParams","paramFormatter","isFunction","isString","useGenericBaseLayer","coverage_main","coverage_changes","regeneration_age","regeneration_annual","deforestation_annual","deforestation_accumulated","deforestation_frequency","_ref8","_ref9","temporal_analysis_number_of_classes","_ref10","_ref11","_ref12","temporal_analysis_stable_areas","_ref13","_ref14","_ref15","temporal_analysis_number_of_changes","_ref16","_ref17","_ref18","mining_main","_ref19","irrigation_main","_ref20","quality_of_pasture_data_main","_ref21","environmental_analysis","environmentalAnalysis","_ref22","environmentalAnalysisValue","_ref23","coverage_quality_main","coverage_3d","mapCustomModulePathname","useGenericMapLayer","submoduleContentKey","zoom","crossingTerritoriesIds","nodePixelValue","GenericLayer","_ref$opacity","opacity","LeafDrawWrapper","onCreate","controlRef","leafletElement","_toolbars","draw","_modes","rectangle","handler","disable","polygon","enable","FeatureGroup","esm","position","onDrawStart","onEdited","numEdited","eachLayer","onCreated","layerType","toGeoJSON","circle","circlemarker","marker","polyline","edit","replacePolylines","separateBuffer","drawLocales","mapWasDragEnabled","mapWasTapEnabled","el","types","fn","context","L","DomEvent","getRangeEvent","rangeInput","cancelMapDrag","_map","dragging","enabled","tap","uncancelMapDrag","_refocusOnMap","asArray","arg","Control","SideBySide","thumbSize","initialize","leftLayers","rightLayers","setLeftLayers","setRightLayers","getPosition","rangeValue","_range","offset","getSize","setPosition","Evented","prototype","Mixin","Events","addTo","_container","DomUtil","create","_controlContainer","_divider","max","step","paddingRight","_addEvents","_updateLayers","_updateLabels","_leftLayer","getContainer","clip","_rightLayer","_removeEvents","getLeftLayer","getRightLayer","_leftLayers","_rightLayers","_updateClip","nw","containerPointToLayerPoint","se","clipX","dividerX","clipLeft","clipRight","prevLeft","prevRight","hasLayer","setAttribute","Browser","touch","sideBySide","Icon","Default","_getIconUrl","mergeOptions","iconRetinaUrl","require","iconUrl","shadowUrl","mapButtonActive","EXTERNAL_ELEMENTS_HEIGHT","CONFIG_DEFAULT","minZoom","maxZoom","CUSTOM_MAP_URL","MapCanvas","leftSideMosaicLayer","rightSideMosaicLayer","sideBySideControl","countryTerritoryId","_ref$configOptions","configOptions","_ref$isOnFreezeMode","isOnFreezeMode","_ref$onSearchPointCli","onSearchPointClick","onMoveEnd","setCoverageTutorial","_ref$onFlyToReset","onFlyToReset","_ref$onCreateGeometry","onCreateGeometry","MAP_URL","mapRef","zoomControlRef","setMouseCoordinates","isOnBoxZoomMode","setIsOnBoxZoomMode","isOnPointSearchMode","setIsOnPointSearchMode","mapZoom","setMapZoom","leftMapUrl","setLeftMapUrl","rightMapUrl","setRightMapUrl","_useState17","_useState18","currentTerritories","setCurrentTerritories","activeBaseMapData","baseMapsData","_useState19","_useState20","currentRangeYears","setCurrentRangeYears","mapboxModePrev","geometryBBox","geometryBBoxFlyTo","invalidateSize","handleBoxZoomClick","setTimeout","boxZoomButton","getElementById","fitBounds","panTo","layerName","firstYear","lastYear","isEqual","parsedLeftParams","parsedRightParams","mapUrlLeft","indices","mapUrlRight","_$split4","classTreeLevelsListIds","tileLayer","class_tree_node_ids","territory_ids","removeLayer","parsedFlyTo","renderInfrastructureCoverageLayer","_ref2$opacityDenomina","opacityDenominator","_ref2$objectsMask","objectsMask","WMSTileLayer","buffer_id","object_tree_node_ids","renderObjectLayer","stopZoomControl","Map","mapWrapper","mapWrapperWithHeader","mapWrapperOnPointSearchMode","zoomControl","_event$latlng","latlng","_event$layerPoint","layerPoint","point1","point2","parsedPoint1","layerPointToLatLng","parsedPoint2","onmousemove","_event$latlng2","formattedValue","onmoveend","getCenter","getZoom","combinedValue","toFixed","onzoomend","ZoomControl","ScaleControl","imperial","index_es","sticky","border","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","outline","cursor","borderRadius","activeStyle","MapCanvas_CustomTooltip","mapActionButton","mapSearchButton","stopPropagation","NotListedLocation_default","renderBaseMap","mapPathname","yearParams","from_year","to_year","renderGenericLayer","baseLayersData","GeoJSON","weight","Marker","MapboxCoverageLayer","dist_esm","tiles","tileSize","sourceLayer","paint","raster-opacity","mapboxgl","workerClass","MAPBOX_TOKEN","bearing","pitch","exaggeration","MapboxCanvas","CONFIG","reverse","initialViewState","longitude","latitude","maxPitch","mapStyle","mapboxAccessToken","terrain","fog","high-color","horizon-blend","space-color","star-intensity","_event$lngLat","lngLat","_event$point","onMouseMove","_event$lngLat2","viewState","MapboxControl","_ref$onToggle","onToggle","wrapperHeader","MapboxControl_CustomTooltip","CustomSwitch","switchBase","&$checked","customColor","&$checked + $track","track","Switch","MapControls","activeBox","setActiveBox","opacityValue","setOpacityValue","activeLegendItem","setActiveLegendItem","activeBaseMapLegendItem","setActiveBaseMapLegendItem","isLayerActive","handleLayersChange","nextActiveItems","handleBaseMapChange","getFormattedLabel","baseKey","handleToggleLegend","handleToggleBaseMapLegend","actionBox","MapControls_CustomTooltip","Opacity_default","actionBoxContent","actionBoxContentOpacity","Slider","orientation","valueLabelDisplay","onChangeCommitted","actionButtonOpacity","Layers_default","actionBoxContentScrollWrapper","actionBoxItemWrapper","actionBoxItemHeader","switchControl","switchLabel","actionBoxItemControl","actionBoxControlButtonToggle","actionBoxItemLegend","actionButtonBaseMap","Map_default","baseMapsContentWrapper","baseMap","isDisabled","baseMapsItemWrapper","radioGroupControl","radioGroupLabel","PointHistoryChart","yAxisNames","resp","MapPointDialog","pointInfo","chartData","setChartData","bboxString","parsePointData","classItemData","classification","linguage","generareSeriesItem","categoryIndex","round","urls","all","coverageData","fireData","sentinelData","parsedCoverageData","coverageItem","fireItem","sentinelItem","coverageItemParsed","chartWrapper","headerInfoValue","popper","YearTimeline","_ref$firstYearFixed","firstYearFixed","initialValue","rangeLimits","rangeSpecificValues","updateKey","setUpdateKey","isRange","sliderItemsProps","marks","rsv","timelineInfo","DateRange_default","sliderWrapper","ValueLabelComponent","YearTimeline_CustomTooltip","timelineMark","intervalsByModule","YearTimelineMultiple","intervals","yearList","startYearsList","startValue","setStartValue","endValue","setEndValue","filteredIntervals","endYearsList","handleChangeComitted","YearTimelineMultiple_CustomTooltip","valueText","ShareBox","_ref$pageLink","pageLink","handleCopy","copy","socialList","socialItem","FacebookShareButton","quote","FacebookIcon","TwitterShareButton","TwitterIcon","WhatsappShareButton","WhatsappIcon","ShareControl","shareAnchorEl","setShareAnchorEl","ShareControl_CustomTooltip","Share_default","positionTooltipInsideDocument","canvasMousePos","tooltipDom","rect","sizes","canvasRect","parentElement","getElementsByTagName","getBoundingClientRect","mouseX","mouseY","tooltipWidth","contentSize","tooltipHeight","xPos","yPos","documentElement","clientWidth","clientHeight","unit","yAxisMillionLabelFormatter","yAxisLabelPercentageFormatter","parsedValue","_ref$height","isPercentage","_ref$hideXAxisLabel","hideXAxisLabel","_ref$hasAvgMarkLine","hasAvgMarkLine","_ref$mantissa","hasMillionValue","sampleItem","yAxisName","nameGap","gridLeft","markLine","nameLocation","nameRotate","nameTextStyle","symbol","appendToBody","mainBar","MinimalBarData","percentage","customMainBarStyles","backgroundBar","infoLabel","infoValue","BaseValuesChart","_ref$title","total","totalTitle","totalTitleTooltipKey","maxValue","maxValueTooltipKey","averageValue","maxYear","averageValueTooltipKey","averagePercentage","minValue","minValueTooltipKey","minPercentage","minYear","section","secondaryTitle","infoList","infoListItem","infoListItemValue","infoListItemLabel","AnnualStatisticsContent","statisticsDataIsVisible","onShowData","mainYear","chartsData","setChartsData","emptyData","setEmptyData","filteredActiveClassTreeNodeIds","nodeData","activeParentClassTreeNodeIds","getParentIds","classTreeNodeIds","errorBaseData","getTotalAreaByClassesData","classTreeNodeData","yearData","nodeValues","parsedSeries","parsedNodeId","sortedSeries","filteredSeries","getPercentageAreaByClasses","totalAreaByClasses","percentageAreaByClasses","handleShowData","totalAreaByClassesChartData","totalAreaByClassesChartDataCategories","totalAreaByClassesChartDataSeries","totalAreaByClassesChart","percentageAreaByClassesChartData","percentageAreaByClassesChartDataCategories","percentageAreaByClassesChartDataSeries","percentageAreaByClassesChart","progressWrapper","LinearProgress","infoBox","distByYears","customTotal","isCustom","areaByPeriod","BarChart_BarChart_BarChart","TableChart_default","_ref$chartType","seriesOptions","hideDelay","AccumulatedStatisticsContent","useTheme","getAccumulatedAreaFromAllPeriodData","accumulatedAreaFromAllPeriod","LineChart_LineChart","AccumulatedDistributedStatisticsContent","getTotalAreaByClassesOnFirstLevelData","totalValue","childrenId","totalAreaByClassesOnFirstLevel","classViewChartData","classViewChart","PieChart_PieChart","CoverageMainStatisticsContent","hasSingleHistoricalData","hasCustomCOSValues","_ref$valueMantissa","valueMantissa","currentYear","parseChartsData","classViewChartDataUnit","historicalSeriesChartDataUnit","findFurthestChildrenIds","flattenDeep","furthestParent","findFurthestParent","currentData","furthestParentId","classViewChartDataMinValue","minBy","classViewChartDataValues","factor","historicalSeriesChartData","totalData","itemData","historicalSeriesChartDataMinValue","historicalSeriesChartDataValues","itemValue","historicalSeriesChart","renderClassViewChart","renderHistoricalSeriesChart","CoverageMainStatisticsContentCustom","statisticsData","setData","statisticsParams","crossedTerritoryIds","urlPath","propertyCode","geometryCoordinates","statisticsUrl","useGenericMapStatistics","activeYearIndex","pixelArea","pixelId","FireAnnualTotalBurnedStatisticsContent","getTotalBurnedAreaByYearData","sortedValues","totalBurnedAreaByYear","totalBurnedAreaByYearChartData","totalBurnedAreaByYearChart","burnedAreaByPeriod","mapMonthToIndex","Janeiro","January","Fevereiro","February","Março","March","Abril","April","Maio","May","Junho","June","Julho","July","Agosto","August","Setembro","September","Outubro","October","Novembro","November","Dezembro","December","yAxisLabelFormatter","BurnedAreaCustomChart","_ref$customYAxisLabel","customYAxisLabelFormatter","itemWidth","itemHeight","FireMonthlyStatisticsContent","getCustomBurnedAreaByMonthData","getAnnualAreaByMonthData","nodeItem","customBurnedAreaByMonth","annualAreaByMonth","customBurnedAreaByMonthChartData","customBurnedAreaByMonthChartDataCategories","customBurnedAreaByMonthChartDataData","customBurnedAreaByMonthChart","annualAreaByMonthChartData","annualAreaByMonthChartDataCategories","annualAreaByMonthChartDataSeries","annualAreaByMonthChart","secondaryTitleExtraInfo","maximum","average","minimum","FireAccumulatedStatisticsContent","_ref$localeKey","localeKey","lastValue","sectionSmall","totalSummary","FrequencyStatisticsContent","_ref$ageMode","ageMode","_ref$fireMode","fireMode","_ref$deforestationMod","deforestationMode","frequencyByAreaData","parsedValues","getTotalBurnedAreaByFrequencyAndClassData","newData","areas","frequencyByArea","frequencyByAreaAndClass","frequencyByAreaChartData","frequencyByAreaChart","frequencyByAreaAndClassChartData","frequencyByAreaAndClassChartDataCategories","frequencyByAreaAndClassChartDataSeries","frequencyByAreaAndClassChart","dataAggregated","isMining","frequencyPieChart","FrequencyByYearStatisticsContent","CLASS_NAME_SUMMARY_MAPPER","2","3","4","5","> 5","> 6","NumberOfClassesStatisticsContent","_ref$orderByLabelName","orderByLabelName","match","parsedRows","numberOfClassesChart","numberOfClasses","sample","areaByNumberOfClasses","CLASS_TREE_KEYS_STACKED","DegradationFragmentationEdgeArea","isStacked","statisticsParamKey","ChartComponent","getChartData","valueKey","nodeValue","parsedIsolationParams","areaChartData","percentageChartData","filterActiveSeries","DegradationMultipleContent","bigNumber","bigNumberInfo","totalChart","areaHa","referenceAreaHa","realValue","decal","dashArrayX","dashArrayY","symbolSize","rotation","Math","PI","DegradationMultipleBarChart_BarChart","areaByClasses","StatisticsBox","_ref$onShowData","mapClassTreeKeyToTooltip","fire_annual_total_burned","defaultContentParams","titleTooltip","setIsVisible","CoverageMainStatisticsComponent","wrapperIsHidden","closeButtonCollapse","collapseWrapper","InfrastructureMainStatisticsContent","activeClassTreeLevelsList","classTreeLevelsListOnLevel1","valueItems","filteredValueItems","InfrastructureStatisticsBox","DataTableBox","StatisticsDataTableBox","TutorialTour","steps","disableBeacon","disableScrolling","_this2","callback","action","closeTutorial","run","coverageTutorial","showSkipButton","floaterProps","disableAnimation","close","back","buttonClose","buttonBack","marginRight","Component","injectIntl","GET_TERRITORIES_CATEGORIES_LIST","MODULES_WITH_INITIAL_YEAR_FIXED","setStatisticsData","territoriesCategoriesListData","loadCountryTerritoryData","countryTerritoryListData","prevLoadingBaseData","prevActiveModuleContent","mapConfigOptions","confirmation","URL","searchParams","passwordUpdate","checkModuleKeyCondition","parsedModuleContentKey","toggleMapbox","countryTerritoryCategory","handleMapPointSearchClick","handleControlsChange","handleMoveEnd","handleStatisticsShowData","TimelineComponent","onControlsChange","CARBox_CARBox","tempDialog","mapThemePaletteByProduct","light","contrastText","defaultThemeColor","LandingPage","ThemeProvider","outerTheme","BasePage_BasePage","Map_Map","FormFooter","Box","PageFooter","footer","privacyCheck","LoginToForum","res","_ref$statisticsDataIs","CoveragePieChartContent","_ref$classTreeKey","_ref$selectedClassTre","selectedClassTreeIds","themeColor","COVERAGE_TREE_NODE_IDS","COVERAGE_NATURAL_OR_ANTHROPIC_TREE_NODE_IDS","DEFORESTATION_TREE_NODE_IDS","QUALITY_OF_PASTURE_TREE_NODE_IDS","REGENERATION_TREE_NODE_IDS","IRRIGATION_TREE_NODE_IDS","MINING_TREE_NODE_IDS","FIRE_TREE_NODE_IDS","Triangle","subtitle","sectionTitleBox","triangleArrow","borderLeftColor","sectionTitleBoxTitleWrapper","sectionTitleBoxTitle","sectionTitleBoxSubtitle","MODULES","GET_ACCURACIES","GET_BIOMES","GET_LEVELS","GET_YEARS","modulesRoutes","MapBiomasLandingPage","routes","urlToken","passwordConfirmation","paramsToJSON","paramsToJSONCopy","decodeURI","isCreatePasswordButtonDisabled","box","Typography","validatePassword","request_params","URLSearchParams","errors","createAcountLegend","isCreatedPassword","callbackUrl","success","paramsToUrl","encodeURI","emailField","accessAccountLegend","mb","textArea","setTerritory","territoryBoundingBox","renderTerritoryImage","imageBox","renderSectionTitle","formBox","contentBox","contentTitleWrapper","contentTitle","modulesBlock","moduleBlock","moduleBlockIcon","moduleBlockTitle","sectionTitleGrid","sectionTitleBoxInfo","moduleContentWrapper","CoverageMainStatisticsContent_CoverageMainStatisticsContent","yearBlockImage","yearTitle","AnnualStatisticsContent_AnnualStatisticsContent","biome","biomes","getAccuracies","accuracies","loadingAccuracies","_event$target","keyBy","overallAccuracy","userAccuracy","producerAccuracy","confusionProdLeft","countProdLeftSeries","confusionProdRight","confusionUserLeft","countUserLeftSeries","confusionUserRight","omissionCategories","insertionCategories","omissionSeries","_loop","i","idClassMap","insertionSeries","_loop2","overallYears","overallData","userYears","userData","statistics","producerYears","producerData","loadingContainer","searchContainer","for","select","buttonContainer","cards","card","cardData","lineCharts","Accuracy_LineChart_LineChart","barChart","Accuracy_BarChart_BarChart","unauthenticated","authenticated","renderRoutes","_loading","routesToRender","BrowserRouter","app_context","Provider","route","routeProps","defaults","exact","redirect","generateExtraProps","_props","redirectPath","Redirect","Route","Routes","react_components_esm","greys","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","createMuiTheme","MuiButtonBase","disableRipple","MuiFormControl","MuiInputLabel","shrink","MuiInput","disableUnderline","MuiSelect","overrides","MuiOutlinedInput","input","notchedOutline","MuiAutocomplete","&.autocomplete-light","& .MuiOutlinedInput-notchedOutline","& .MuiAutocomplete-inputRoot .MuiAutocomplete-input","& .MuiInputLabel-shrink","& .MuiIconButton-root","inputRoot","noOptions","MuiButton","contained","paddingBottom","paddingTop","&:focus","containedSizeLarge","containedSizeSmall","MuiDialog","MuiPopover","MuiFab","&.input-label-gray","outlined","transform","background","label + &","MuiInputBase","MuiMenuItem","MuiTooltip","tooltipArrow","MuiFormLabel","MuiExpansionPanel","&:before","&.Mui-expanded","MuiExpansionPanelSummary","expandIcon","MuiPaper","elevation1","MuiSnackbar","MuiFormControlLabel","grey","secondary","typography","fontFamily","ToastContainer","_baseData$toast","Snackbar","anchorOrigin","horizontal","autoHideDuration","TransitionComponent","Alert","elevation","registerLanguage","languageTag","delimiters","thousands","decimal","abbreviations","thousand","million","billion","trillion","ordinal","currency","setLanguage","setDefaults","zeroFormat","Root","react_common_esm","StylesProvider","injectFirst","useUtils_cfb96ac9","utils","MomentUtils","provider","messages","core_Routes_Routes","ReactDOM","render","core_Root","newTag","menuBarListItemOldTag","navOpenButton","toggleButtonAlone","navItemButtonBeta","navItemButtonBetaAddon","activeBlockIconBetaAddon","infrastructureClasses","menuBarListItemButtonIcon","menuBarListItemCoverage","menuBarListItemCoverageIsActive","menuBarListItemCoverageQuality","menuBarListItemCoverageQualityIsActive","menuBarListItemTrajectories","menuBarListItemTrajectoriesIsActive","menuBarListItemQualityOfPastureData","menuBarListItemQualityOfPastureDataIsActive","menuBarListItemDeforestation","menuBarListItemDeforestationIsActive","menuBarListItemRegeneration","menuBarListItemRegenerationIsActive","menuBarListItemInfrastructure","menuBarListItemInfrastructureIsActive","menuBarListItemIrrigation","menuBarListItemIrrigationIsActive","menuBarListItemFire","menuBarListItemFireIsActive","menuBarListItemMining","menuBarListItemMiningIsActive","menuBarListItemWaterIsActive","menuBarListItemSentinel","menuBarListItemSentinelIsActive","menuBarListItemSoil","menuBarListItemSoilIsActive","menuBarListItemDegradation","menuBarListItemDegradationIsActive","menuBarListItemCoralReef","menuBarListItemCoralReefIsActive","customModeContentBoxButton","smallText","translation","classListLevel2","classListLevel3","classListLevel4","tutorialButton","mapGeographicalReliefButton","opacityBox","headerInfo","headerInfoLabel","headerInfoToggleButton","alertText","__webpack_require__","p","actionButtonDisabled","form","MuiInputBase-root","privacyLink","privacyLabel","titleCar","dataListCar","dataListItemFull","dataListCarItemFull"],"mappings":"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","file":"static/js/main.efd65a2d.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"ClassTreesControl_wrapper__DoynA\",\"title\":\"ClassTreesControl_title__2n1vX\",\"info\":\"ClassTreesControl_info__3rLpq\",\"label\":\"ClassTreesControl_label__1FfuQ\",\"toggleButtons\":\"ClassTreesControl_toggleButtons__b9g6M\",\"toggleButtons2Items\":\"ClassTreesControl_toggleButtons2Items__guL13\",\"toggleButtons3Items\":\"ClassTreesControl_toggleButtons3Items__19WZA\",\"toggleButtonsDegradationFragmentation\":\"ClassTreesControl_toggleButtonsDegradationFragmentation__J0q9X\",\"levelControls\":\"ClassTreesControl_levelControls__3nxFg\",\"checkboxRoot\":\"ClassTreesControl_checkboxRoot__2BmrX\",\"checkboxLabel\":\"ClassTreesControl_checkboxLabel__8_VZ0\",\"actionButton\":\"ClassTreesControl_actionButton__3LmhK\",\"descriptionText\":\"ClassTreesControl_descriptionText__Pfyop\",\"formControlSelectInput\":\"ClassTreesControl_formControlSelectInput__16wNN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formWrapper\":\"SignUpForm_formWrapper__IlxrJ\",\"title\":\"SignUpForm_title__RSGy4\",\"textInfo\":\"SignUpForm_textInfo__3CFgE\",\"formControl\":\"SignUpForm_formControl__3khwG\",\"actionsWrapper\":\"SignUpForm_actionsWrapper__za6ZS\",\"helperLink\":\"SignUpForm_helperLink__2JlbV\",\"successText\":\"SignUpForm_successText__37mab\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"GeospatialObjects_wrapper__Bpqne\",\"classListItemBase\":\"GeospatialObjects_classListItemBase__23xqx\",\"classListItemHeader\":\"GeospatialObjects_classListItemHeader__25OKP\",\"classListItemCheckControl\":\"GeospatialObjects_classListItemCheckControl__20ntZ\",\"classListItemTitle\":\"GeospatialObjects_classListItemTitle__311u3\",\"classListItemContentControl\":\"GeospatialObjects_classListItemContentControl__6r9AE\",\"classListItemInfoControl\":\"GeospatialObjects_classListItemInfoControl__6hsee\",\"classNode\":\"GeospatialObjects_classNode__2P2_x\",\"classChildNode\":\"GeospatialObjects_classChildNode__3uSC5\",\"title\":\"GeospatialObjects_title__18c80\",\"info\":\"GeospatialObjects_info__3FX4x\",\"label\":\"GeospatialObjects_label__XEYCt\",\"toggleButtons\":\"GeospatialObjects_toggleButtons__2yl4O\",\"levelControls\":\"GeospatialObjects_levelControls__3Zx1s\",\"checkboxRoot\":\"GeospatialObjects_checkboxRoot__31Z35\",\"checkboxLabel\":\"GeospatialObjects_checkboxLabel__2eh1h\",\"actionButton\":\"GeospatialObjects_actionButton__NgFXk\",\"descriptionText\":\"GeospatialObjects_descriptionText__1yjcJ\",\"actionBoxControlButton\":\"GeospatialObjects_actionBoxControlButton__3ZCYn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mapList\":\"MapList_mapList__3q6EI\",\"mapItem\":\"MapList_mapItem__2Z7ny\",\"mapItemImage\":\"MapList_mapItemImage__2qUx0\",\"mapItemTextContent\":\"MapList_mapItemTextContent__p8Th4\",\"mapItemTitle\":\"MapList_mapItemTitle__F4Kup\",\"mapItemDescription\":\"MapList_mapItemDescription__2hvM8\",\"mapItemActionsContent\":\"MapList_mapItemActionsContent__3RUBw\",\"mapItemViewButton\":\"MapList_mapItemViewButton__2KPAd\",\"mapItemViewButtonSecondary\":\"MapList_mapItemViewButtonSecondary__1Klu3\"};","export function namespacedTokenKey() {\n let splitLocation = window.location.pathname.split('/')\n\n return `${splitLocation[1]}/token`\n}\n\nexport async function getCurrentTimeFromWorldClock() {\n let currentTime = null\n try {\n let response = await fetch('http://worldclockapi.com/api/json/utc/now')\n let json = await response.json()\n\n if (!json.currentDateTime) {\n throw Error('World clock API has returned a valid json but with an unexpected format')\n }\n\n currentTime = new Date(json.currentDateTime)\n } catch (e) {\n console.warn(e)\n currentTime = new Date()\n }\n\n return currentTime\n}\n\nfunction parseJwt(token) {\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n\n return JSON.parse(jsonPayload);\n}\n\nexport function getUserIdFromToken(currentTime = new Date()) {\n try {\n let token = localStorage.getItem('token')\n let claims = parseJwt(token)\n\n let expirationDate = new Date(claims.exp * 1000)\n\n if (currentTime.getTime() > expirationDate.getTime()) {\n localStorage.removeItem('token')\n return null\n }\n\n return claims.sub\n } catch (e) {\n localStorage.removeItem('token')\n return null\n }\n}\n","import {\n getCurrentTimeFromWorldClock,\n getUserIdFromToken,\n} from '../../../utils/auth'\n\nexport default {\n currentUserId: async (_object, _args, _context, _info) => {\n if (localStorage.getItem('token')) {\n let currentTime = await getCurrentTimeFromWorldClock()\n let userId = getUserIdFromToken(currentTime)\n return userId\n }\n\n return undefined\n }\n}\n","import { gql } from 'graphql.macro'\n\nexport const GET_USER_ID = gql`\n query GetUserID {\n currentUserId @client\n }\n`\n\nexport const GET_USER = gql`\n query GetUser($id: Int!) {\n user(id: $id) {\n id\n name\n profile\n }\n }\n`\n","export default {\n groupType: 'territorial',\n degradationType: 'vector',\n degradationFragmentationIsolationValue: null,\n degradationCrossingValues: {\n __typename: 'AppBaseParamsStateDegradationCrossingValues',\n degradation_fragmentation_edge_area: null,\n degradation_fragmentation_fragment_size: null,\n degradation_fragmentation_isolation_medium_size: null,\n degradation_fragmentation_isolation_distance: null,\n degradation_fragmentation_isolation_big_size: null,\n degradation_fire_frequency: null,\n degradation_fire_time: null,\n degradation_secondary_vegetation_age: null,\n parsedParams: null,\n },\n territoryType: null,\n territorySubtype: null,\n territoryValueType: 'single',\n crossingEnabled: false,\n crossingTerritoryType: null,\n crossingTerritories: null,\n territory: null,\n territories: null,\n crossing: 'none',\n classesViewMode: 'class',\n activeClassTreeOptionValue: null,\n activeClassTreeNodeIds: [],\n activeBaseClassTreeNodeIds: [],\n activeObjectTreeNodeIds: [],\n activeSubmodule: null,\n activeClassesLevelsListItems: null,\n activeTransitionsClassesListItems: null,\n activePastureQualityQualityClassesListItems: null,\n yearRange: '1985-2023',\n buffer: 0,\n};\n","export default {\n coverage: {\n activeModule: 'coverage',\n activeModuleContent: 'coverage:coverage_main',\n activeYear: 2023,\n timelineSpecificValues: null,\n timelineLimitsRange: [1985, 2023],\n mapboxMode: false,\n },\n temporal_analysis: {\n activeModule: 'temporal_analysis',\n activeModuleContent:\n 'temporal_analysis:temporal_analysis_number_of_classes',\n activeYear: [1985, 2023],\n timelineSpecificValues: null,\n timelineLimitsRange: [1985, 2023],\n mapboxMode: false,\n },\n coverage_quality: {\n activeModule: 'coverage_quality',\n activeModuleContent: 'coverage_quality:coverage_quality_main',\n activeYear: 2023,\n timelineSpecificValues: null,\n timelineLimitsRange: [1985, 2023],\n mapboxMode: false,\n },\n quality_of_pasture_data: {\n activeModule: 'quality_of_pasture_data',\n activeModuleContent: 'quality_of_pasture_data:quality_of_pasture_data_main',\n activeYear: [2000, 2023],\n timelineSpecificValues: null,\n timelineLimitsRange: [2000, 2023],\n mapboxMode: false,\n },\n irrigation: {\n activeModule: 'irrigation',\n activeModuleContent: 'irrigation:irrigation_main',\n activeYear: [1985, 2022],\n timelineSpecificValues: null,\n timelineLimitsRange: [1985, 2022],\n mapboxMode: false,\n },\n deforestation: {\n activeModule: 'deforestation',\n activeModuleContent: 'deforestation:deforestation_annual',\n activeYear: [1986, 2023],\n timelineSpecificValues: null,\n timelineLimitsRange: [1986, 2023],\n mapboxMode: false,\n },\n regeneration: {\n activeModule: 'regeneration',\n activeModuleContent: 'regeneration:regeneration_annual',\n activeYear: [1986, 2023],\n timelineSpecificValues: null,\n timelineLimitsRange: [1986, 2023],\n mapboxMode: false,\n },\n infrastructure: {\n activeModule: 'infrastructure',\n activeModuleContent: 'infrastructure:infrastructure_main',\n activeYear: 2020,\n timelineSpecificValues: null,\n timelineLimitsRange: [1985, 2020],\n mapboxMode: false,\n },\n fire: {\n activeModule: 'fire',\n activeModuleContent: 'fire:fire_accumulated',\n activeYear: [1985, 2022],\n timelineSpecificValues: null,\n timelineLimitsRange: [1985, 2022],\n mapboxMode: false,\n },\n mining: {\n activeModule: 'mining',\n activeModuleContent: 'mining:mining_main',\n activeYear: [1985, 2023],\n timelineSpecificValues: null,\n timelineLimitsRange: [1985, 2023],\n mapboxMode: false,\n },\n soil: {\n activeModule: 'soil',\n activeModuleContent: 'soil:soil_main',\n activeYear: 2021,\n timelineSpecificValues: null,\n timelineLimitsRange: [1985, 2021],\n mapboxMode: false,\n },\n sentinel: {\n activeModule: 'sentinel',\n activeModuleContent: 'sentinel:sentinel_coverage',\n activeYear: 2022,\n timelineSpecificValues: null,\n timelineLimitsRange: [2016, 2022],\n mapboxMode: false,\n },\n degradation: {\n activeModule: 'degradation',\n activeModuleContent: 'degradation:degradation_fragmentation',\n activeYear: 2021,\n timelineSpecificValues: null,\n timelineLimitsRange: [1986, 2021],\n mapboxMode: false,\n },\n};\n","export default {\n '/cobertura': 'coverage',\n '/analises-temporais': 'temporal_analysis',\n '/desmatamento': 'deforestation',\n '/regeneracao': 'regeneration',\n '/irrigacao': 'irrigation',\n '/infraestrutura': 'infrastructure',\n '/pastagem': 'quality_of_pasture_data',\n '/fogo': 'fire',\n '/mineracao': 'mining',\n '/qualidade': 'coverage_quality',\n '/solo': 'soil',\n '/cobertura_10m': 'sentinel',\n '/degradacao': 'degradation',\n};\n","import _ from 'lodash';\n\nfunction parseTerritories(territories) {\n return _.map(_.split(territories, ','), (territoryCode) => {\n const [\n id,\n label,\n territoryTypeId,\n territoryTypeLabel,\n bboxV1,\n bboxV2,\n bboxV3,\n bboxV4,\n ] = _.split(territoryCode, ';');\n const parsedBBox = [\n [Number(bboxV1), Number(bboxV2)],\n [Number(bboxV3), Number(bboxV4)],\n ];\n\n return {\n __typename: 'AppBaseParamsActiveTerritoryItemState',\n id: Number(id),\n label,\n territoryTypeId: Number(territoryTypeId),\n territoryTypeLabel,\n territoryBBox: parsedBBox,\n };\n });\n}\n\nexport default function parseQueryParamsToState(queryParams) {\n const {\n activeBaseMap,\n activeLayers,\n activeYear,\n layersOpacity,\n showBeforeAndAfterMosaic,\n timelineLimitsRange,\n baseParams,\n } = queryParams;\n let state = _.cloneDeep(queryParams);\n state = _.omit(state, 'baseParams');\n\n const parsedActiveBaseMap = Number(activeBaseMap);\n const parsedActiveYear = _.includes(activeYear, ',') ? _.map(_.split(activeYear, ','), Number) : Number(activeYear);\n const parsedLayersOpacity = Number(layersOpacity);\n\n if (activeBaseMap && !_.isNaN(parsedActiveBaseMap)) {\n _.set(state, 'activeBaseMap', parsedActiveBaseMap);\n }\n\n if (activeLayers) {\n const ids = _.map(_.split(activeLayers, ','));\n _.set(state, 'activeLayers', ids);\n }\n\n if (activeYear && (!_.isNaN(parsedActiveYear) || _.isArray(parsedActiveYear))) {\n _.set(state, 'activeYear', parsedActiveYear);\n }\n\n if (layersOpacity && !_.isNaN(parsedLayersOpacity)) {\n _.set(state, 'layersOpacity', parsedLayersOpacity);\n }\n\n if (showBeforeAndAfterMosaic) {\n _.set(state, 'showBeforeAndAfterMosaic', showBeforeAndAfterMosaic === 'true');\n }\n\n if (timelineLimitsRange) {\n const parsedTimelineLimitsRange = _.map(_.split(timelineLimitsRange, ','), Number);\n _.set(state, 'timelineLimitsRange', parsedTimelineLimitsRange);\n }\n\n if (baseParams) {\n const {\n groupType,\n territoryType,\n territorySubtype,\n territoryValueType,\n crossingEnabled,\n crossingTerritoryType,\n crossingTerritories,\n territory,\n territories,\n crossing,\n classesViewMode,\n activeClassTreeOptionValue,\n activeClassTreeNodeIds,\n activeObjectTreeNodeIds,\n activeSubmodule,\n activeClassesLevelsListItems,\n activeTransitionsClassesListItems,\n activePastureQualityQualityClassesListItems,\n yearRange,\n buffer,\n } = baseParams || {};\n\n if (groupType) {\n _.set(state, 'baseParams.groupType', groupType);\n }\n\n if (territoryType) {\n _.set(state, 'baseParams.territoryType', Number(territoryType));\n }\n\n if (crossingTerritoryType) {\n _.set(state, 'baseParams.crossingTerritoryType', Number(crossingTerritoryType));\n }\n\n if (territorySubtype) {}\n\n if (territoryValueType) {\n _.set(state, 'baseParams.territoryValueType', territoryValueType);\n }\n\n if (crossingEnabled) {\n _.set(state, 'baseParams.crossingEnabled', crossingEnabled);\n }\n\n if (territory) {}\n\n if (territories) {\n const parsedTerritories = parseTerritories(territories);\n\n _.set(state, 'baseParams.territories', parsedTerritories);\n }\n\n if (crossingTerritories) {\n const parsedTerritories = parseTerritories(crossingTerritories);\n\n _.set(state, 'baseParams.crossingTerritories', parsedTerritories);\n }\n\n if (crossing) {}\n\n if (classesViewMode) {\n _.set(state, 'baseParams.classesViewMode', classesViewMode);\n }\n\n if (activeClassTreeOptionValue) {\n _.set(state, 'baseParams.activeClassTreeOptionValue', activeClassTreeOptionValue);\n }\n\n if (activeClassTreeNodeIds) {\n const ids = _.map(_.split(activeClassTreeNodeIds, ','), Number);\n _.set(state, 'baseParams.activeClassTreeNodeIds', ids);\n }\n\n if (activeObjectTreeNodeIds) {\n const ids = _.map(_.split(activeObjectTreeNodeIds, ','), Number);\n _.set(state, 'baseParams.activeObjectTreeNodeIds', ids);\n }\n\n if (activeSubmodule) {\n _.set(state, 'baseParams.activeSubmodule', activeSubmodule);\n }\n\n if (activeClassesLevelsListItems) {\n const ids = _.map(_.split(activeClassesLevelsListItems, ','), Number);\n _.set(state, 'baseParams.activeClassesLevelsListItems', ids);\n }\n\n if (activeTransitionsClassesListItems) {\n const ids = _.map(_.split(activeTransitionsClassesListItems, ','));\n _.set(state, 'baseParams.activeTransitionsClassesListItems', ids);\n }\n\n if (activePastureQualityQualityClassesListItems) {\n const ids = _.map(_.split(activePastureQualityQualityClassesListItems, ','), Number);\n _.set(state, 'baseParams.activePastureQualityQualityClassesListItems', ids);\n }\n\n if (yearRange) {\n _.set(state, 'baseParams.yearRange', yearRange);\n }\n\n if (buffer) {\n _.set(state, 'baseParams.buffer', Number(buffer));\n }\n }\n\n return state;\n}\n","import {\n ApolloClient\n} from 'apollo-client';\nimport {\n InMemoryCache\n} from 'apollo-cache-inmemory';\nimport {\n createUploadLink\n} from 'apollo-upload-client';\nimport {\n onError\n} from 'apollo-link-error';\nimport {\n setContext\n} from 'apollo-link-context';\nimport {\n ApolloLink\n} from 'apollo-link';\nimport { HttpLink } from 'apollo-link-http';\nimport _ from 'lodash';\nimport qs from 'qs';\n\nimport {\n MutationResolver,\n QueryResolver\n} from './local-resolvers';\nimport {\n GET_USER\n} from '../Routes/queries';\n\nimport initialBaseParams from '../../data/initialBaseParams';\nimport mapActiveModuleToDefaultParams from '../../data/mapActiveModuleToDefaultParams';\nimport mapModuleToPathname from '../../data/mapModuleToPathname';\n\nimport parseQueryParamsToState from '../../helpers/parseQueryParamsToState';\n\nconst cache = new InMemoryCache();\n\nlet urlQueryParams = {};\n\nif (window.location.search) {\n const queryString = window.location.search.replace('?', '');\n const queryObject = qs.parse(queryString, { comma: true });\n\n if (queryObject) {\n urlQueryParams = parseQueryParamsToState(queryObject);\n }\n}\n\nconst baseParams = _.get(urlQueryParams, 'baseParams');\nurlQueryParams = _.omit(urlQueryParams, 'baseParams');\n\nconst pathname = window.location.pathname;\nconst moduleKey = mapModuleToPathname[pathname];\nconst initialModulePathnameParams = mapActiveModuleToDefaultParams[moduleKey] || {};\n\ncache.writeData({\n data: {\n app: {\n __typename: 'AppState',\n activeBaseMap: 9,\n activeLayers: [],\n layersOpacity: 70,\n activeModule: 'coverage',\n activeModuleContent: 'coverage:coverage_main',\n activeYear: 2023,\n headerIsVisible: true,\n mapFlyTo: null,\n mapPointInfo: null,\n mapPosition: '-14.392118,-56.250000,4',\n mapboxMode: false,\n showClassInfo: null,\n showDashboardInfo: null,\n showBeforeAndAfterMosaic: false,\n timelineLimitsRange: [1985, 2023],\n ruralPropertyCode: null,\n timelineSpecificValues: null,\n baseParams: {\n __typename: 'AppBaseParamsState',\n ...initialBaseParams,\n ...(baseParams || {})\n },\n ...urlQueryParams,\n isLoadingBaseData: false,\n notifyUserNewTermOfUseVersion: false,\n transitionClassTreeNodeId: null,\n activeNoteKey: null,\n ...initialModulePathnameParams,\n carFeature: null,\n geometry: null,\n geometryMode: null,\n },\n toast: {\n __typename: 'ToastState',\n content: null,\n severity: null,\n visible: false\n }\n }\n});\n\nconst logErrors = onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors) {\n graphQLErrors.forEach(({ message, locations, path }) =>\n console.log(\n '[GraphQL error]: Message: ',\n message,\n ', Location: ',\n locations,\n ', Path: ',\n path\n )\n );\n }\n\n if (networkError) {\n console.log(`[Network error]: ${networkError}`);\n }\n});\n\nconst uploadLink = createUploadLink({\n uri: '/app/graphql'\n});\n\nconst withToken = setContext((_, previousContext) => {\n let token = localStorage.getItem('token');\n if (token === null) {\n return previousContext;\n }\n\n return {\n ...previousContext,\n headers: {\n ...(previousContext && previousContext.headers),\n authorization: token ? `Bearer ${token}` : ''\n }\n }\n})\n\nconst resetTokenOnUnauthorized = onError(({ graphQLErrors, operation }) => {\n if (graphQLErrors && _.some(graphQLErrors, (e) => e.extensions && e.extensions.forbidden)) {\n if (operation.operationName !== _.get(GET_USER, 'definitions[0].name.value')) {\n // So we don't reset the store when it's not necessary\n if (localStorage.getItem('token')) {\n client.resetStore();\n }\n }\n localStorage.removeItem('token');\n }\n});\n\nconst link = new HttpLink({\n uri: '/api/graphql',\n});\n\nconst client = new ApolloClient({\n cache,\n link,\n // link: ApolloLink.from(_.compact([\n // withToken,\n // resetTokenOnUnauthorized,\n // process.env.NODE_ENV === 'development' ? logErrors : null,\n // uploadLink\n // ])),\n resolvers: { Query: QueryResolver, Mutation: MutationResolver }\n})\n\nexport default client;\n","export default {\n}\n","import React from 'react'\nexport default React.createContext({})\n","import _ from 'lodash';\n\nconst API_URL = process.env.REACT_APP_MAPBIOMAS_LOGIN_API_BASE_URL;\n\nexport function request(\n endpoint,\n originConfig,\n customHeaders = { 'Content-Type': 'application/json' }\n) {\n const token = localStorage.getItem('token');\n let config = _.extend({}, originConfig);\n let url = API_URL;\n\n if (token) {\n config.headers = _.extend(\n { 'Authorization': `Bearer ${ token }` },\n customHeaders\n );\n } else {\n config.headers = customHeaders;\n }\n\n return fetch(url + endpoint, config)\n .then(response => {\n if (response.ok) {\n const contentType = response.headers.get('content-type');\n\n if (_.includes(contentType, 'xls') || _.includes(contentType, 'pdf')) {\n return response.blob();\n } else if (_.includes(contentType, 'json')) {\n return response.json();\n } else if (_.includes(contentType, 'text')) {\n return response.text();\n }\n\n return response;\n } else {\n return Promise.reject({\n status: response.status,\n statusText: response.statusText\n });\n }\n })\n .then(json => json)\n .catch(error => {\n /* eslint-disable */\n console.log(JSON.stringify(error, undefined, 2));\n /* eslint-disable */\n\n return Promise.reject(error);\n });\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n app @client {\n ruralPropertyCode\n activeBaseMap\n activeLayers\n layersOpacity\n activeModule\n activeModuleContent\n }\n }\n`;\n","import React from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport styles from './TabList.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n item: {\n '&:hover': {\n color: `${ theme.palette.primary.main } !important`,\n }\n },\n activeItem: {\n color: `${ theme.palette.primary.main } !important`,\n boxShadow: '0 1px 2px rgba(180, 180, 180, 0.12), 0 1px 1px rgba(200, 200, 200, 0.24)',\n backgroundColor: 'white !important',\n '&:hover': {\n color: `${ theme.palette.primary.main } !important`,\n }\n },\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 14,\n color: 'white',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n}))(Tooltip);\n\nexport default function TabList({\n size = 'default',\n hasCustomItemSize = false,\n fullWidth = false,\n itemSizes = { xs: 6 },\n value,\n items = [],\n onChange = () => {}\n}) {\n const classes = useStyles();\n let customItemSizes = _.clone(itemSizes);\n\n return (\n <Grid container spacing={ 1 } className={ classnames(styles.navList, {\n [styles.navListSmall]: size === 'small',\n [styles.navListFullWidth]: fullWidth,\n }) }>\n { _.map(items, (item, index) => {\n const { tooltip } = item;\n\n if (hasCustomItemSize && _.size(items) === 3 && index === 2) {\n customItemSizes = { xs: 12 };\n }\n\n if (tooltip) {\n return (\n <Grid\n item\n { ...customItemSizes }\n key={ `tab-item-${ item.id }` }\n >\n <CustomTooltip title={ tooltip }>\n <li\n className={ classnames(styles.navListItem, classes.item, {\n [classes.activeItem]: item.id === value,\n [styles.disabledItem]: item.disabled,\n }) }\n id={ item.elementId }\n onClick={ onChange.bind(this, item.id) }\n >\n { item.label }\n </li>\n </CustomTooltip>\n </Grid>\n );\n } else {\n return (\n <Grid\n item\n { ...customItemSizes }\n key={ `tab-item-${ item.id }` }\n >\n <li\n className={ classnames(styles.navListItem, classes.item, {\n [classes.activeItem]: item.id === value,\n [styles.disabledItem]: item.disabled,\n }) }\n id={item.elementId}\n onClick={ onChange.bind(this, item.id) }\n >\n { item.label }\n </li>\n </Grid>\n );\n }\n }) }\n </Grid>\n );\n}\n","import React from 'react';\nimport _ from 'lodash';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport ClearIcon from '@material-ui/icons/Clear';\n\nimport styles from './ActiveOptionsList.module.scss';\n\nexport default function ActiveOptionsList({\n categoryKey,\n options,\n customIdParam = () => {},\n onClear = () => {},\n}) {\n if (_.isEmpty(options)) {\n return null;\n }\n\n return (\n <ul className={ styles.list }>\n { _.map(options, (option) => {\n const categoryText = categoryKey ? `${ _.get(option, categoryKey) } - ` : '';\n\n return (\n <li key={ `territory-item-${ option.id }` } className={ styles.listItem }>\n <span className={ styles.listItemText }>{ categoryText }{ option.label }</span>\n <IconButton\n className={ styles.listItemRemoveButton }\n onClick={ onClear.bind(this, customIdParam ? customIdParam(option) : option.id) }\n >\n <ClearIcon />\n </IconButton>\n </li>\n );\n }) }\n </ul>\n );\n}\n","import React, { Fragment, useState } from 'react';\nimport _ from 'lodash';\n\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport TextField from '@material-ui/core/TextField';\n\nimport styles from './CustomSelect.module.scss';\n\nexport default function CustomSelect({\n disableClearable = true,\n displayEmpty = false,\n isMultiple = false,\n isLoading = false,\n options = [],\n defaultOrder = false,\n value = '',\n dataKey,\n label,\n placeholder,\n onChange = () => {},\n}) {\n const isMobile = useMediaQuery('(max-width: 1024px)');\n const [inputValue, setInputValue] = useState('');\n\n const handleInputChange = (event) => {\n if (event) {\n setInputValue(event.target.value);\n }\n };\n\n const handleAutocompleteChange = (_event, option, reason) => {\n if (reason === 'select-option') {\n setInputValue('');\n onChange(dataKey, option.id);\n } else if (reason === 'clear') {\n setInputValue('');\n onChange(dataKey, null);\n }\n };\n\n const getSelectedOption = (options, value) => {\n return _.find(options, { id: value }) || '';\n };\n\n const getSelectedOptionLabel = (options, value) => {\n return _.get(getSelectedOption(options, value), 'label') || '';\n };\n\n if (!isMobile) {\n let extraProps = {};\n\n if (isMultiple) {\n extraProps = {\n onInputChange: handleInputChange,\n inputValue: inputValue,\n };\n }\n\n return (\n <Autocomplete\n id={ `select-${ dataKey }` }\n blurOnSelect={ true }\n // disableClearable={ true }\n loading={ isLoading }\n loadingText=\"Carregando...\"\n noOptionsText=\"Nenhuma opção disponÃvel\"\n options={ defaultOrder ? options : _.sortBy(options, 'label') }\n getOptionLabel={ (option) => option.label || '' }\n value={ getSelectedOption(options, value) }\n onChange={ handleAutocompleteChange.bind(this) }\n renderInput={ (params) => (\n <TextField\n { ...params }\n label={ label }\n size=\"small\"\n variant=\"outlined\"\n placeholder={ placeholder }\n />\n ) }\n { ...extraProps }\n />\n );\n } else {\n return (\n <Fragment>\n <InputLabel id={ `select-${ dataKey }` } className={ styles.inputLabel }>{ label }</InputLabel>\n <Select\n displayEmpty={ displayEmpty }\n labelId={ `select-${ dataKey }-label` }\n id={ `select-${ dataKey }` }\n value={ !_.isNil(value) ? value : '' }\n onChange={ onChange.bind(this, dataKey) }\n disabled={ isLoading }\n placeholder=\"Selecione uma opção\"\n >\n { _.map(_.sortBy(options, 'label'), (option) => {\n return (\n <MenuItem key={ `${ dataKey }-option-${ option.id }` } value={ option.id }>{ option.label }</MenuItem>\n );\n }) }\n </Select>\n </Fragment>\n );\n }\n}\n","import client from '../core/apollo-client';\n\nexport default function toast(content, severity = 'success') {\n client.writeData({\n data: {\n toast: {\n __typename: 'ToastState',\n content,\n severity,\n visible: true\n }\n }\n });\n}\n","import React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\nimport * as turf from '@turf/turf';\n\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CloseIcon from '@material-ui/icons/Close';\nimport FormControl from '@material-ui/core/FormControl';\nimport SearchIcon from '@material-ui/icons/Search';\nimport TextField from '@material-ui/core/TextField';\n\nimport { GET_BASE_DATA } from '../../../../../../query';\nimport toast from '../../../../../../../../utils/toast';\n\nimport styles from './CARBox.module.scss';\n\nconst API_URL =\n process.env.REACT_APP_GEE_API_URL ||\n 'https://staging.api.mapbiomas.org/api/v1/brazil';\n\nfunction fetchCARCodeLayerData(carCode) {\n return fetch(`${ API_URL }/maps/property/${ carCode }`, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.json());\n}\n\nconst initialState = {\n code: '',\n};\n\nfunction CARForm({\n isVisible,\n ruralPropertyCode,\n onFlyTo = () => { },\n onSearchPoint = () => { },\n onRuralPropertyCodeChange = () => { },\n updateClientAppState = () => { },\n}) {\n\n const [state, setState] = useState(initialState);\n const [isSearching, setIsSearching] = useState(false);\n\n useEffect(() => {\n setState(initialState);\n }, [isVisible]);\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n useEffect(() => {\n if (ruralPropertyCode) {\n setIsSearching(true);\n \n fetchCARCodeLayerData(ruralPropertyCode)\n .then((data) => {\n setIsSearching(false);\n\n const feature = _.get(data, '[0]');\n\n if (feature) {\n const bbox = turf.bbox(feature);\n const parsedBBox = [\n [bbox[1], bbox[0]],\n [bbox[3], bbox[2]],\n ];\n\n onFlyTo(parsedBBox);\n\n const line = turf.lineString(parsedBBox);\n const center = turf.center(line);\n const coordinates = _.get(center, 'geometry.coordinates');\n const point = {\n lat: _.first(coordinates),\n lng: _.last(coordinates),\n };\n\n onSearchPoint({\n feature,\n point\n });\n } else {\n toast('Não foi possÃvel localizar o CAR informado.', 'error');\n }\n });\n }\n }, [ruralPropertyCode]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const code = state.code;\n updateClientAppState({\n ruralPropertyCode: code\n });\n onRuralPropertyCodeChange(code);\n };\n\n const handleRemove = () => {\n handleStateChange('code', '');\n updateClientAppState({\n carFeature: null,\n ruralPropertyCode: null\n });\n onRuralPropertyCodeChange(null);\n };\n\n return (\n <form className={ styles.formWrapper } onSubmit={ handleSubmit }>\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n required\n id=\"code-field\"\n label=\"Código do CAR\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.code }\n onChange={ handleTextChange.bind(this, 'code') }\n />\n </FormControl>\n <div className={ styles.actionWrapper }>\n { ruralPropertyCode &&\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n className={ styles.removeButton }\n onClick={ handleRemove }\n >\n <CloseIcon />\n <span>Limpar</span>\n </Button>\n }\n { isSearching &&\n <span className={ styles.loadingProgressWrapper }>\n <CircularProgress size= { 20 } color=\"secondary\" />\n </span>\n }\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n className={ styles.searchButton }\n disabled={ isSearching }\n >\n <SearchIcon />\n <span>Localizar</span>\n </Button>\n </div>\n </form>\n );\n}\n\nexport default function CARBox({\n onFlyTo = () => { },\n onFeatureChange = () => { },\n updateClientAppState = () => { }\n}) {\n const { data: baseData } = useQuery(GET_BASE_DATA);\n const ruralPropertyCode = _.get(baseData, 'app.ruralPropertyCode');\n\n const handleSearchPoint = ({ feature, point }) => {\n if (point) {\n onFeatureChange(feature);\n }\n };\n\n return (\n <CARForm\n isVisible={ true }\n ruralPropertyCode={ ruralPropertyCode }\n onFlyTo={ onFlyTo }\n onSearchPoint={ handleSearchPoint }\n onRuralPropertyCodeChange={(code) => {\n updateClientAppState({\n ruralPropertyCode: code\n });\n }}\n updateClientAppState={ updateClientAppState }\n />\n );\n}\n","import { useIntl } from 'react-intl';\n\nexport default function useFormatMessage() {\n const { formatMessage } = useIntl();\n const format = (id, values = {}) => formatMessage({ id }, values);\n\n return format;\n}\n","import React, { useState } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\n\nimport toast from '../../../../../../../../utils/toast';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport styles from './GeometryControl.module.scss';\n\nconst API_URL =\n process.env.REACT_APP_GEE_API_URL ||\n 'https://staging.api.mapbiomas.org/api/v1/brazil';\n\nexport default function GeometryControl({\n mode,\n onShapefileChange = () => {},\n onDrawModeChange = () => {},\n}) {\n const formatMessage = useFormatMessage();\n\n const [error, setError] = useState(null);\n\n const handleShapefileChange = async (event) => {\n if (event.target.files) {\n const file = event.target.files[0];\n\n const formData = new FormData();\n formData.append('file', file);\n const result = await fetch(`${ API_URL }/maps/upload_shapefile`, {\n method: 'POST',\n body: formData,\n });\n\n const data = await result.json();\n const geoJson = _.get(data, 'geoJson');\n let errorKey = null;\n\n if (geoJson) {\n const parsedData = JSON.stringify(geoJson);\n onShapefileChange(parsedData);\n setError(null);\n } else if (_.get(data, 'error') && _.get(data, 'message') === 'Max shapefile area: 100000 ha.') {\n errorKey = 'area';\n } else if (_.get(data, 'error') && _.get(data, 'message') === 'Shapefile projection must be EPSG:4674.') {\n errorKey = 'projection';\n } else if (_.get(data, 'error') && _.get(data, 'message') === 'Shapefile must have only one polygon.') {\n errorKey = 'polygons';\n } else if (_.get(data, 'error')) {\n errorKey = 'general';\n }\n\n if (errorKey) {\n const errorMessage = formatMessage('mapbiomas.header.base_form.geometry_type.errors.' + errorKey);\n setError(errorMessage);\n toast(errorMessage, 'error');\n }\n }\n };\n\n return (\n <div className={ styles.wrapper }>\n <p className={ styles.infoText }><FormattedMessage id=\"mapbiomas.header.base_form.geometry_type.info\" /></p>\n <div className={ styles.buttonsWrapper }>\n <Button\n variant=\"contained\"\n size=\"small\"\n className={ classNames(styles.actionButton, {\n [styles.actionButtonActive]: mode === 'polygon'\n }) }\n onClick={ onDrawModeChange.bind(this, 'polygon') }\n >\n <FormattedMessage id=\"mapbiomas.header.base_form.geometry_type.options.polygon\" />\n </Button>\n <Button\n variant=\"contained\"\n size=\"small\"\n className={ classNames(styles.actionButton, {\n [styles.actionButtonActive]: mode === 'rectangle'\n }) }\n onClick={ onDrawModeChange.bind(this, 'rectangle') }\n >\n <FormattedMessage id=\"mapbiomas.header.base_form.geometry_type.options.rectangle\" />\n </Button>\n </div>\n { mode &&\n <p className={ styles.infoTextSecondary }><FormattedMessage id=\"mapbiomas.header.base_form.geometry_type.info_active\" /></p>\n }\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n key={ `${ _.uniqueId() }-${ _.kebabCase(error) }` }\n label=\"Shapefile\"\n type=\"file\"\n variant=\"outlined\"\n size=\"small\"\n onChange={ handleShapefileChange }\n />\n </FormControl>\n { error &&\n <p className={ styles.infoTextError }>{ error }</p>\n }\n </div>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_TERRITORIES_AUTOCOMPLETE = gql`\n query TerritoriesAutocomplete(\n $categoryId: Int!,\n $text: String!,\n ) {\n territoriesAutocomplete(\n categoryId: $categoryId,\n text: $text\n ) {\n id\n i18nStrings {\n language\n stringValue\n }\n territoryGeometry {\n boundingBox\n }\n }\n }\n`;\n","import TerritoryAutocomplete from './TerritoryAutocomplete';\n\nexport default TerritoryAutocomplete;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { useApolloClient } from '@apollo/react-hooks';\nimport _ from 'lodash';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\n\nimport {\n GET_TERRITORIES_AUTOCOMPLETE,\n} from './query';\n\nexport default function TerritoryAutocomplete({\n activeTerritories,\n categoryId,\n label,\n placeholder,\n territoryLabelFilter,\n onChange,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const client = useApolloClient();\n const [currentValue, setCurrentValue] = useState(null);\n const [options, setOptions] = useState([]);\n const [loading, setLoading] = useState(false);\n\n const setDataFromExternalTerritories = () => {\n const territory = _.first(activeTerritories);\n\n const option = {\n id: _.get(territory, 'id'),\n label: _.get(territory, 'label'),\n boundingBox: _.get(territory, 'territoryBBox'),\n };\n\n setCurrentValue(option);\n setOptions([option]);\n };\n\n useEffect(() => {\n if (_.size(activeTerritories) === 1 && _.isEmpty(options)) {\n setDataFromExternalTerritories();\n }\n }, []);\n\n useEffect(() => {\n if (_.isEmpty(activeTerritories)) {\n setOptions([]);\n setCurrentValue(null);\n } else if (!_.isEmpty(activeTerritories) && !currentValue) {\n setDataFromExternalTerritories();\n }\n }, [activeTerritories]);\n\n const searchOptions = async (query) => {\n setLoading(true);\n const { data } = await client.query({\n query: GET_TERRITORIES_AUTOCOMPLETE,\n variables: {\n categoryId,\n text: query\n }\n });\n setLoading(false);\n\n let newOptions = [];\n\n if (currentValue) {\n newOptions = [currentValue];\n }\n\n if (data) {\n const parsedOptions = _.map(_.get(data, 'territoriesAutocomplete'), (item) => {\n const id = _.get(item, 'id');\n const boundingBox = _.get(item, 'territoryGeometry.boundingBox');\n const stringList = _.get(item, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n\n return {\n id,\n label,\n boundingBox: [\n [_.get(boundingBox, 'yMin'), _.get(boundingBox, 'xMin')],\n [_.get(boundingBox, 'yMax'), _.get(boundingBox, 'xMax')],\n ]\n };\n });\n\n newOptions = [...newOptions, ...parsedOptions];\n }\n\n if (territoryLabelFilter) {\n newOptions = _.filter(newOptions, (option) => {\n return _.includes(_.kebabCase(option.label), _.kebabCase(territoryLabelFilter));\n });\n }\n\n setOptions(newOptions);\n };\n\n const debouncedSearchOptions = useMemo(\n () => _.debounce(searchOptions, 300),\n [currentValue, options, categoryId]\n );\n\n const handleChange = (_event, newValue) => {\n if (newValue) {\n setOptions(newValue ? [newValue, ...options] : options);\n setCurrentValue(newValue);\n onChange(newValue);\n } else {\n setOptions([]);\n setCurrentValue(null);\n }\n };\n\n const handleInputChange = (_event, newInputValue) => {\n if (newInputValue === '') {\n setOptions(currentValue ? [currentValue] : []);\n } else {\n debouncedSearchOptions(newInputValue);\n }\n };\n\n return (\n <Autocomplete\n filterOptions={ (x) => x }\n getOptionLabel={ (option) => option.label }\n options={ options }\n autoComplete\n loading={ loading }\n loadingText=\"Carregando...\"\n includeInputInList\n filterSelectedOptions\n value={ currentValue }\n noOptionsText=\"Pesquise...\"\n onChange={ handleChange }\n onInputChange={ handleInputChange }\n renderInput={ (params) => (\n <TextField\n { ...params }\n label={ label }\n size=\"small\"\n variant=\"outlined\"\n placeholder={ placeholder }\n />\n ) }\n />\n );\n}\n","import { useEffect, useRef } from 'react'\n\nexport default function usePrevious(value) {\n const ref = useRef()\n useEffect(() => {\n ref.current = value\n })\n return ref.current\n}\n","export default {\n 'default': {\n 'territorial': [\n 'country',\n 'biome',\n 'state',\n 'municipality',\n 'watershed',\n ],\n 'land': [\n 'protected_areas',\n 'indigenous_territories',\n 'physiographic_regions',\n ]\n },\n 'simplified': {\n 'territorial': [\n 'country',\n 'biome',\n 'state',\n 'city',\n 'pnrh_level_1_basin',\n 'pnrh_level_2_basin',\n 'special_territories',\n 'biosphere_reserves',\n 'geoparks',\n ]\n },\n 'infrastructure': {\n 'territorial': [\n 'country',\n 'biome',\n 'state',\n 'city',\n 'pnrh_level_1_basin',\n 'pnrh_level_2_basin',\n ]\n },\n 'fire': {\n 'territorial': [\n 'country',\n 'biome',\n 'state',\n 'city',\n 'special_territories',\n 'biosphere_reserves',\n 'geoparks',\n ],\n 'land': [\n 'settlements',\n 'quilombos',\n 'indigenous_territories',\n 'federal_protected_area_integral_protection',\n 'federal_protected_area_sustainable_use',\n 'state_protected_area_integral_protection',\n 'state_protected_area_sustainable_use',\n 'municipality_protected_area_integral_protection',\n 'municipality_protected_area_sustainable_use',\n ]\n },\n 'soil': {\n 'territorial': [\n 'country',\n 'biome',\n 'state',\n 'city',\n 'level_1_basin_pnhr',\n 'level_2_basin_pnhr',\n ]\n },\n 'sentinel': {\n 'territorial': [\n 'country',\n 'biome',\n 'state',\n 'city',\n 'pnrh_level_1_basin',\n 'pnrh_level_2_basin',\n 'special_territories',\n ],\n 'land': [\n 'settlements',\n 'quilombos',\n 'indigenous_territories',\n 'federal_protected_area_integral_protection',\n 'federal_protected_area_sustainable_use',\n 'state_protected_area_integral_protection',\n 'state_protected_area_sustainable_use',\n ]\n },\n 'degradation': {\n 'territorial': [\n 'country',\n 'biome',\n 'state',\n 'city',\n 'pnrh_level_1_basin',\n 'pnrh_level_2_basin',\n ],\n 'land': [\n 'indigenous_territories',\n 'municipality_protected_area_integral_protection',\n 'municipality_protected_area_sustainable_use',\n 'state_protected_area_integral_protection',\n 'state_protected_area_sustainable_use',\n 'federal_protected_area_integral_protection',\n 'federal_protected_area_sustainable_use',\n ]\n },\n};\n","import _ from 'lodash'\nimport localeMessages from '../locale_messages.yml'\n\nconst onLocaleFunctions = _.mapValues(localeMessages, (_messages, locale) => _.flow(\n _.property('i18NStringsByStringIdList'),\n _.partial(_.find, _, { language: locale }),\n _.property('stringValue')\n))\n\nconst onLocaleFunctionsCustom = _.mapValues(localeMessages, (_messages, locale) => _.flow(\n _.partial(_.find, _, { language: locale }),\n _.property('stringValue')\n))\n\nexport function onCurrentLocale(multiLanguageStringObject) {\n const locale = localStorage.getItem('locale') || 'es'\n return onLocaleFunctions[locale](multiLanguageStringObject)\n}\n\nexport function onCurrentLocaleCustom(multiLanguageStringObject) {\n const locale = localStorage.getItem('locale') || 'es'\n return onLocaleFunctionsCustom[locale](multiLanguageStringObject)\n}\n","export const API_URLS = {\n '7.1': 'https://v71.plataforma.brasil.mapbiomas.org/api/graphql',\n '8.0': 'https://v8.plataforma.brasil.mapbiomas.org/api/graphql'\n};\n","import { ApolloClient } from 'apollo-client';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { HttpLink } from 'apollo-link-http';\n\nimport { API_URLS } from '../../data/constants';\n\nconst cache = new InMemoryCache();\n\nconst link = new HttpLink({\n uri: API_URLS['8.0']\n});\n\nconst client = new ApolloClient({\n cache,\n link,\n});\n\nexport default client;\n","import { ApolloClient } from 'apollo-client';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { HttpLink } from 'apollo-link-http';\n\nimport { API_URLS } from '../../data/constants';\n\nconst cache = new InMemoryCache();\n\nconst link = new HttpLink({\n uri: API_URLS['7.1']\n});\n\nconst client = new ApolloClient({\n cache,\n link,\n});\n\nexport default client;\n","import customClient from '../core/custom-apollo-client/custom-apollo-client';\nimport customClientSecondary from '../core/custom-apollo-client-secondary/custom-apollo-client-secondary';\n\nconst mapVersionToClient = {\n '7.1': customClientSecondary,\n '8.0': customClient,\n};\n\nexport default function getCustomClient(version) {\n return mapVersionToClient[version] || undefined;\n};\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_CLIENT_DATA = gql`\n query {\n app @client {\n activeModule\n activeModuleContent\n showBeforeAndAfterMosaic\n geometryMode\n baseParams {\n groupType\n degradationType\n degradationFragmentationIsolationValue\n degradationCrossingValues {\n degradation_fragmentation_edge_area\n degradation_fragmentation_fragment_size\n degradation_fragmentation_isolation_medium_size\n degradation_fragmentation_isolation_distance\n degradation_fragmentation_isolation_big_size\n degradation_fire_frequency\n degradation_fire_time\n degradation_secondary_vegetation_age\n }\n territoryType\n territorySubtype\n territoryValueType\n crossingEnabled\n crossingTerritoryType\n territory\n territories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n crossingTerritories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n crossing\n buffer\n yearRange\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query {\n geometryBuffersList {\n id\n bufferSizeInMeters\n\t\t\ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n\t\t\t}\n }\n\n territoryCategoriesList {\n id\n key\n parentId\n\t\t territoryLayerStyle\n i18nStrings {\n\t\t\t language\n\t\t\t stringValue\n }\n }\n }\n`;\n\nexport const GET_TERRITORIES_LIST = gql`\n query TerritoriesList($categoryId: Int!) {\n territoriesList(categoryId: $categoryId) {\n id\n i18nStrings {\n language\n stringValue\n }\n }\n }\n`;\n\nexport const GET_TERRITORY_BOUNDING_BOX = gql`\n query TerritoriesByIds($territoriesIds: [Int!]) {\n territoriesByIds(territoriesIds: $territoriesIds) {\n id\n territoryGeometry {\n boundingBox\n }\n }\n }\n`;\n\nexport const GET_TRANSITION_PERIOD_OPTIONS_DATA = gql`\n query {\n coverageTransitionPeriodOptionsList {\n id\n fromYear\n toYear\n groupBy\n orderAmongSiblings\n }\n }\n`;\n","import React, { Fragment, useEffect } from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport { useApolloClient, useLazyQuery, useQuery } from '@apollo/react-hooks';\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport InfoIcon from '@material-ui/icons/Info';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport ListSubheader from '@material-ui/core/ListSubheader';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport Select from '@material-ui/core/Select';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport ActiveOptionsList from '../ActiveOptionsList';\nimport CustomSelect from '../../../../components/CustomSelect';\n\nimport CARBox from './components/CARBox';\nimport GeometryControl from './components/GeometryControl';\nimport TerritoryAutocomplete from './components/TerritoryAutocomplete';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\nimport usePrevious from '../../../../../../hooks/usePrevious';\n\nimport mapModuleToTerritoryCategoryGroups from '../../../../../../data/mapGroupTypeToTerritoryCategoryKey';\n\nimport { onCurrentLocaleCustom } from '../../../../../../utils/locale';\nimport toast from '../../../../../../utils/toast';\n\nimport getCustomClient from '../../../../../../lib/getCustomClient';\n\nimport styles from './BaseForm.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_BASE_CLIENT_DATA,\n GET_TERRITORIES_LIST,\n GET_TERRITORY_BOUNDING_BOX,\n GET_TRANSITION_PERIOD_OPTIONS_DATA,\n} from './query';\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 14,\n color: 'white',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n}))(Tooltip);\n\nconst TERRITORY_CATEGORIES_WITH_SIMPLE_SELECT = [\n 'country',\n 'biome',\n 'state',\n 'special_territories',\n 'biosphere_reserves',\n 'geoparks',\n];\n\nexport default function BaseForm({\n clientType,\n territoryCategoriesGroup = 'default',\n isTransition = false,\n hideGroupType = false,\n showBufferField = false,\n showMultipleTerritories = true,\n showCrossing = false,\n hasGeometryOptions = false,\n inline,\n onFlyTo = () => {},\n}) {\n const intl = useIntl()\n const locale = localStorage.getItem('locale') || 'es';\n const client = useApolloClient();\n const formatMessage = useFormatMessage();\n const { data: clientBaseData } = useQuery(GET_BASE_CLIENT_DATA);\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n client: getCustomClient(clientType)\n });\n const { data: transitionBaseData, loading: loadingTransitionBaseData } = useQuery(GET_TRANSITION_PERIOD_OPTIONS_DATA, {\n skip: !isTransition,\n client: getCustomClient(clientType)\n });\n const [\n loadTerritoriesListData,\n {\n data: territoriesListData,\n loading: loadingTerritoriesListData\n }\n ] = useLazyQuery(GET_TERRITORIES_LIST, {\n client: getCustomClient(clientType)\n });\n\n const loadTerritoryBoundingBox = (id) => {\n client.query({\n query: GET_TERRITORY_BOUNDING_BOX,\n variables: { territoriesIds: [id] }\n })\n .then((response) => {\n const bbox = _.get(response, 'data.territoriesByIds[0].territoryGeometry.boundingBox');\n\n if (bbox) {\n const parsedBBox = [\n [_.get(bbox, 'yMin'), _.get(bbox, 'xMin')],\n [_.get(bbox, 'yMax'), _.get(bbox, 'xMax')],\n ];\n\n onFlyTo(parsedBBox);\n }\n });\n };\n\n const territoryCategoriesList = _.get(baseData, 'territoryCategoriesList');\n const geometryBuffers = _.get(baseData, 'geometryBuffersList');\n const coverageTransitionPeriodOptionsList = _.get(transitionBaseData, 'coverageTransitionPeriodOptionsList');\n\n const territoriesList = _.get(territoriesListData, 'territoriesList');\n\n const activeModule = _.get(clientBaseData, 'app.activeModule');\n const activeModuleContent = _.get(clientBaseData, 'app.activeModuleContent');\n const baseParams = _.get(clientBaseData, 'app.baseParams');\n const geometryMode = _.get(clientBaseData, 'app.geometryMode');\n const showBeforeAndAfterMosaic = _.get(clientBaseData, 'app.showBeforeAndAfterMosaic');\n const groupType = _.get(baseParams, 'groupType') || 'territorial';\n const territoryType = _.get(baseParams, 'territoryType');\n const territoryValueType = _.get(baseParams, 'territoryValueType');\n const territoryIsMultiple = territoryValueType === 'multiple';\n const crossingEnabled = _.get(baseParams, 'crossingEnabled');\n const crossingTerritoryType = _.get(baseParams, 'crossingTerritoryType');\n const crossingTerritories = _.get(baseParams, 'crossingTerritories');\n const territories = _.get(baseParams, 'territories');\n const buffer = _.get(baseParams, 'buffer');\n const yearRange = _.get(baseParams, 'yearRange');\n\n const prevGroupType = usePrevious(groupType);\n\n const parsedTerritoryTypeOptions = _.map(territoryCategoriesList, (territoryType) => {\n const stringList = _.get(territoryType, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n\n return {\n id: territoryType.id,\n key: territoryType.key,\n label: _.get(selectedString, 'stringValue'),\n parentId: territoryType.parentId,\n };\n });\n const territoryCategoryGroups = mapModuleToTerritoryCategoryGroups[territoryCategoriesGroup];\n const territoryKeysByGroupType = _.get(territoryCategoryGroups, groupType);\n const filteredTerritoryTypeOptions = _(parsedTerritoryTypeOptions)\n .filter(({ key }) => _.includes(territoryKeysByGroupType, key))\n .sortBy(({ key }) => _.findIndex(territoryKeysByGroupType, (baseTerritoryKey) => baseTerritoryKey === key))\n .value();\n\n const territoryTypeOption = _.find(parsedTerritoryTypeOptions, { id: territoryType });\n const hasTerritorySimpleSelect = _.includes(TERRITORY_CATEGORIES_WITH_SIMPLE_SELECT, _.get(territoryTypeOption, 'key'));\n const crossingTerritoryTypeOptions = _.filter(parsedTerritoryTypeOptions, (option) => {\n return _.includes(option.key, 'crossing') && _.includes(option.key, _.get(territoryTypeOption, 'key'));\n });\n const crossingInputIsDisabled = _.isEmpty(crossingTerritoryTypeOptions) || territoryIsMultiple || _.isEmpty(territories);\n\n const parsedTerritoryOptions = _.map(territoriesList, (territory) => {\n const stringList = _.get(territory, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n // TODO: Remove bounding box property from territory data, since it is loaded and use only on map flyTo\n const boundingBox = {\n xMin: 0,\n xMax: 0,\n yMin: 0,\n yMax: 0,\n };\n // const boundingBox = _.get(territory, 'territoryGeometry.boundingBox');\n\n return {\n id: territory.id,\n label: _.get(selectedString, 'stringValue'),\n boundingBox: [\n [_.get(boundingBox, 'yMin'), _.get(boundingBox, 'xMin')],\n [_.get(boundingBox, 'yMax'), _.get(boundingBox, 'xMax')],\n ]\n };\n });\n\n const parsedCoverageTransitionPeriodOptionsList = _(coverageTransitionPeriodOptionsList)\n .map((item) => {\n const { fromYear, toYear, groupBy, orderAmongSiblings } = item;\n const parsedFromYear = Number(_.replace(fromYear, '_', ''));\n const parsedToYear = Number(_.replace(toYear, '_', ''));\n\n return {\n id: `${ parsedFromYear }-${ parsedToYear }`,\n label: `${ parsedFromYear } ${ formatMessage(`mapbiomas.header.base_form.year_range.separator`) } ${ parsedToYear }`,\n group: groupBy,\n orderAmongSiblings\n };\n })\n .orderBy(['group', 'orderAmongSiblings', 'id'])\n .groupBy('group')\n .value();\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params\n }\n }\n });\n };\n\n const updateClientAppBaseParamsState = (params) => {\n updateClientAppState({\n baseParams: {\n __typename: 'AppBaseParamsState',\n ...params\n }\n });\n };\n\n useEffect(() => {\n if (hideGroupType && groupType !== 'territorial') {\n updateClientAppBaseParamsState({\n groupType: 'territorial',\n territoryType: null,\n territorySubtype: null,\n territoryValueType: 'single',\n territory: null,\n territories: null,\n });\n }\n\n if (prevGroupType !== groupType) {\n if (groupType !== 'geometry') {\n updateClientAppState({\n geometry: null,\n geometryMode: null,\n });\n } else if (groupType !== 'car') {\n updateClientAppState({\n carFeature: null,\n ruralPropertyCode: null,\n });\n }\n }\n }, [hideGroupType, prevGroupType, groupType]);\n\n useEffect(() => {\n if (territoryType) {\n loadTerritoriesListData({\n variables: {\n categoryId: territoryType\n }\n });\n }\n }, [territoryType]);\n\n // useEffect(() => {\n // if (!hasGeometryOptions) {\n // updateClientAppBaseParamsState({\n // groupType: 'territorial',\n // territoryType: null,\n // territorySubtype: null,\n // territoryValueType: 'single',\n // territory: null,\n // territories: null,\n // });\n // }\n // }, [hasGeometryOptions]);\n\n useEffect(() => {\n if (territoryCategoriesList && !territoryType && groupType === 'territorial') {\n const initialTerritoryType = _.find(territoryCategoriesList, { key: 'country' });\n const territoryTypeId = _.get(initialTerritoryType, 'id');\n const params = {\n territoryType: territoryTypeId,\n };\n\n if (_.isNumber(territoryTypeId)) {\n // TODO: Replace this query to another that loads only active territories data\n loadTerritoriesListData({\n variables: {\n categoryId: territoryTypeId\n }\n });\n\n updateClientAppBaseParamsState(params);\n }\n }\n }, [territoryCategoriesList, territoryType]);\n\n useEffect(() => {\n if (_.isEmpty(territories) && territoriesList && _.size(territoriesList) === 1) {\n const territoryTypeOption = _.find(filteredTerritoryTypeOptions, { id: territoryType });\n\n const firstTerritory = _.first(territoriesList);\n const firstTerritoryId = _.get(firstTerritory, 'id');\n const territoryOption = _.find(parsedTerritoryOptions, { id: firstTerritoryId });\n\n const activeTerritoryIds = _.map(territories, 'id');\n\n if (!_.includes(activeTerritoryIds, firstTerritoryId)) {\n const newTerritoryItem = {\n __typename: 'AppBaseParamsActiveTerritoryItemState',\n id: firstTerritoryId,\n label: _.get(territoryOption, 'label'),\n territoryTypeId: _.get(territoryTypeOption, 'id'),\n territoryTypeLabel: _.get(territoryTypeOption, 'label'),\n territoryBBox: _.get(territoryOption, 'boundingBox'),\n };\n\n updateClientAppBaseParamsState({\n territories: _.concat(_.isNil(territories) ? [] : territories, newTerritoryItem)\n });\n\n loadTerritoryBoundingBox(firstTerritoryId);\n }\n }\n }, [activeModule, territoriesList]);\n\n useEffect(() => {\n if (territoryType && !_.isEmpty(filteredTerritoryTypeOptions) && prevGroupType === groupType) {\n const hasTerritoryTypeData = !!_.find(filteredTerritoryTypeOptions, { id: territoryType });\n\n if (!hasTerritoryTypeData) {\n updateClientAppBaseParamsState({\n territoryType: null,\n territories: []\n });\n toast(formatMessage('mapbiomas.toast.unavailable_territory'), 'info');\n }\n }\n }, [filteredTerritoryTypeOptions, territoryType, prevGroupType, groupType]);\n\n useEffect(() => {\n updateClientAppBaseParamsState({\n crossingTerritoryType: null,\n crossingTerritories: null,\n });\n }, [territoryType, territories, crossingEnabled, crossingInputIsDisabled]);\n\n useEffect(() => {\n updateClientAppBaseParamsState({\n crossingTerritories: null,\n });\n }, [crossingTerritoryType]);\n\n useEffect(() => {\n if (crossingEnabled && territoryIsMultiple) {\n updateClientAppBaseParamsState({\n crossingEnabled: false,\n crossingTerritoryType: null,\n crossingTerritories: null,\n });\n }\n }, [territoryIsMultiple, crossingEnabled]);\n\n useEffect(() => {\n updateClientAppBaseParamsState({\n crossingEnabled: false,\n crossingTerritoryType: null,\n crossingTerritories: null,\n });\n }, [activeModuleContent]);\n\n const handleInputChange = (field, inputValue) => {\n const value = _.isObject(inputValue) ? inputValue.target.value : inputValue;\n let params = { [field]: value };\n\n if (field === 'territoryType' && !territoryIsMultiple) {\n params.territories = [];\n }\n\n // if (field === 'yearRange') {\n // const [minYear, maxYear] = _.split(inputValue, '-');\n\n // updateClientAppState({\n // timelineLimitsRange: [Number(minYear), Number(maxYear)]\n // });\n // }\n\n updateClientAppBaseParamsState(params);\n };\n\n const handleGroupTypeChange = (event) => {\n let params = {\n groupType: event.target.value,\n territoryType: null,\n };\n\n if (!territoryIsMultiple) {\n params.territories = [];\n }\n\n updateClientAppBaseParamsState(params);\n };\n\n const handleTerritoryChange = (_field, value) => {\n let baseOption = value;\n\n if (!_.get(baseOption, 'id')) {\n baseOption = _.find(parsedTerritoryOptions, { id: value });\n }\n\n const territoryTypeOption = _.find(filteredTerritoryTypeOptions, { id: territoryType });\n const activeTerritoryIds = _.map(territories, 'id');\n\n if (!_.includes(activeTerritoryIds, _.get(baseOption, 'id'))) {\n const newTerritoryItem = {\n __typename: 'AppBaseParamsActiveTerritoryItemState',\n id: _.get(baseOption, 'id'),\n label: _.get(baseOption, 'label'),\n territoryTypeId: _.get(territoryTypeOption, 'id'),\n territoryTypeLabel: _.get(territoryTypeOption, 'label'),\n territoryBBox: _.get(baseOption, 'boundingBox'),\n };\n\n let nextTerritories = _.concat(_.isNil(territories) ? [] : territories, newTerritoryItem);\n\n if (!territoryIsMultiple) {\n nextTerritories = [newTerritoryItem];\n }\n\n updateClientAppBaseParamsState({\n territories: nextTerritories\n });\n }\n\n if (baseOption) {\n loadTerritoryBoundingBox(_.get(baseOption, 'id'));\n }\n\n handleInputChange('territory', _.get(baseOption, 'id'));\n };\n\n const handleCrossingTerritoryChange = (data) => {\n const territoryTypeOption = _.find(filteredTerritoryTypeOptions, { id: crossingTerritoryType });\n const activeTerritoryIds = _.map(crossingTerritories, 'id');\n\n if (!_.includes(activeTerritoryIds, _.get(data, 'id'))) {\n const newTerritoryItem = {\n __typename: 'AppBaseParamsActiveTerritoryItemState',\n id: _.get(data, 'id'),\n label: _.get(data, 'label'),\n territoryTypeId: _.get(territoryTypeOption, 'id'),\n territoryTypeLabel: _.get(territoryTypeOption, 'label'),\n territoryBBox: _.get(data, 'boundingBox'),\n };\n\n updateClientAppBaseParamsState({\n crossingTerritories: [newTerritoryItem]\n });\n }\n\n if (data) {\n loadTerritoryBoundingBox(_.get(data, 'id'));\n }\n\n handleInputChange('territory', _.get(data, 'id'));\n };\n\n const handleRemoveTerritory = (id) => {\n let territoriesClone = _.cloneDeep(territories);\n territoriesClone = _.filter(territoriesClone, (territory) => territory.id !== id);\n\n updateClientAppBaseParamsState({ territories: territoriesClone });\n };\n\n const handleFlyToPointSubmit = (coordinates) => {\n updateClientAppState({ mapFlyTo: coordinates });\n };\n\n const handleCARFeatureSubmit = (data) => {\n updateClientAppState({ carFeature: JSON.stringify(data) });\n };\n\n const toggleTerritoryValueType = () => {\n if (territoryIsMultiple) {\n updateClientAppBaseParamsState({\n territoryValueType: 'single',\n territories: [],\n });\n } else {\n updateClientAppBaseParamsState({ territoryValueType: 'multiple' });\n }\n };\n\n const toggleCrossing = () => {\n updateClientAppBaseParamsState({\n crossingEnabled: !crossingEnabled,\n });\n };\n\n const toggleBeforeAndAfterMosaic = () => {\n updateClientAppState({\n showBeforeAndAfterMosaic: !showBeforeAndAfterMosaic,\n });\n };\n\n const handleGeometryModeChange = (value) => {\n updateClientAppState({\n geometryMode: value,\n });\n };\n\n const handleShapefileChange = (value) => {\n updateClientAppState({\n geometry: value,\n });\n };\n\n const renderDefaultInputs = () => {\n return (\n <>\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n { !hasTerritorySimpleSelect &&\n <TerritoryAutocomplete\n activeTerritories={ territories }\n categoryId={ territoryType }\n label={ formatMessage(`mapbiomas.header.base_form.territory.title.${ groupType }`) }\n placeholder={ formatMessage(`mapbiomas.header.base_form.territory.placeholder`) }\n onChange={ handleTerritoryChange.bind(this, 'territory') }\n />\n }\n { hasTerritorySimpleSelect &&\n <CustomSelect\n isMultiple={ territoryIsMultiple }\n isLoading={ loadingBaseData || loadingTerritoriesListData }\n options={ parsedTerritoryOptions }\n value={ territoryIsMultiple ? null : _.get(_.first(territories), 'id') }\n dataKey=\"territory\"\n label={ formatMessage(`mapbiomas.header.base_form.territory.title.${ groupType }`) }\n placeholder={ formatMessage(`mapbiomas.header.base_form.territory.placeholder`) }\n onChange={ handleTerritoryChange }\n />\n }\n { territoryIsMultiple &&\n <ActiveOptionsList\n categoryKey=\"territoryTypeLabel\"\n options={ territories }\n onClear={ handleRemoveTerritory }\n />\n }\n </FormControl>\n { showMultipleTerritories &&\n <FormControlLabel\n id=\"multiple-territory-checkbox\"\n classes={ {\n root: styles.checkboxRoot,\n label: styles.checkboxLabel,\n } }\n control={\n <Checkbox\n checked={ territoryIsMultiple }\n onChange={ toggleTerritoryValueType }\n name=\"territoryValueType\"\n color=\"primary\"\n size=\"small\"\n />\n }\n label={ (\n <span className={ styles.tooltipWrapper }>\n <span><FormattedMessage id=\"mapbiomas.header.base_form.territory_value_type.title\" /></span>\n <CustomTooltip title={ formatMessage('mapbiomas.header.base_form.territory_value_type.tooltip') }>\n <InfoIcon />\n </CustomTooltip>\n </span>\n ) }\n />\n }\n { showCrossing &&\n <FormControlLabel\n id=\"crossing-territory-checkbox\"\n classes={ {\n root: styles.checkboxRoot,\n label: styles.checkboxLabel,\n } }\n // disabled={ _.isEmpty(crossingTerritoryTypeOptions) || territoryIsMultiple || _.isEmpty(territories) }\n control={\n <Checkbox\n checked={ crossingEnabled }\n onChange={ toggleCrossing }\n name=\"territoryValueType\"\n color=\"primary\"\n size=\"small\"\n />\n }\n label={ (\n <span className={ styles.tooltipWrapper }>\n <span>Habilitar cruzamentos</span>\n {/* <span><FormattedMessage id=\"mapbiomas.header.base_form.territory_value_type.title\" /></span> */}\n {/* <CustomTooltip title=\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\">\n <CustomTooltip title={ formatMessage('mapbiomas.header.base_form.territory_value_type.tooltip') }>\n <InfoIcon />\n </CustomTooltip> */}\n </span>\n ) }\n />\n }\n { crossingEnabled &&\n <Fragment>\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n <CustomSelect\n defaultOrder\n options={ filteredTerritoryTypeOptions }\n value={ crossingTerritoryType }\n dataKey=\"crossingTerritoryType\"\n label=\"Tipo de cruzamento\"\n // label={ formatMessage(`mapbiomas.header.base_form.territory_type.title.${ groupType }`) }\n onChange={ handleInputChange }\n placeholder={ formatMessage(`mapbiomas.header.base_form.territory.placeholder`) }\n />\n </FormControl>\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n <TerritoryAutocomplete\n activeTerritories={ crossingTerritories }\n categoryId={ crossingTerritoryType }\n label=\"Território de cruzamento\"\n // label={ formatMessage(`mapbiomas.header.base_form.territory.title.${ groupType }`) }\n placeholder={ formatMessage(`mapbiomas.header.base_form.territory.placeholder`) }\n // territoryLabelFilter={ _.get(_.first(territories), 'label') }\n onChange={ handleCrossingTerritoryChange }\n />\n </FormControl>\n </Fragment>\n }\n { showBufferField &&\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n <CustomSelect\n defaultOrder\n displayEmpty\n options={ _.concat([{\n id: 0,\n label: intl.formatMessage({id: 'mapbiomas.header.base_form.select_label.none'}),\n }], _.map(geometryBuffers, (gb) => ({\n id: _.get(gb, 'id'),\n label: onCurrentLocaleCustom(_.get(gb, 'i18nStrings'))\n }))) }\n value={ buffer }\n dataKey=\"buffer\"\n label=\"Buffer\"\n onChange={ handleInputChange }\n />\n </FormControl>\n }\n { isTransition &&\n <Fragment>\n <FormControl\n variant=\"outlined\"\n className={ styles.yearRangeFormControl }\n >\n <InputLabel id=\"select-yearRange\"><FormattedMessage id=\"mapbiomas.header.base_form.year_range.title\" /></InputLabel>\n <Select\n labelId=\"select-yearRange-label\"\n id=\"select-yearRange\"\n value={ !_.isNil(yearRange) ? yearRange : '' }\n onChange={ handleInputChange.bind(this, 'yearRange') }\n disabled={ loadingBaseData || loadingTransitionBaseData }\n placeholder={ formatMessage(`mapbiomas.header.base_form.year_range.placeholder`) }\n >\n { _.map(parsedCoverageTransitionPeriodOptionsList, (data, group) => {\n return [\n <ListSubheader className={ styles.groupList }>{ group }</ListSubheader>,\n _.map(data, (option) => {\n return (\n <MenuItem key={ `yearRange-option-${ option.id }` } value={ option.id }>{ option.label }</MenuItem>\n );\n })\n ];\n }) }\n </Select>\n </FormControl>\n <FormControlLabel\n classes={ {\n root: styles.checkboxControl,\n label: styles.checkboxLabel,\n } }\n control={\n <Checkbox\n checked={ !!showBeforeAndAfterMosaic }\n onChange={ toggleBeforeAndAfterMosaic }\n name=\"allClasses\"\n color=\"primary\"\n size=\"small\"\n />\n }\n label={ formatMessage(`mapbiomas.header.base_form.show_before_and_after.title`) }\n />\n </Fragment>\n }\n </>\n );\n };\n\n const renderCARInput = () => {\n return (\n <div>\n <CARBox\n onFlyTo={ handleFlyToPointSubmit }\n onFeatureChange={ handleCARFeatureSubmit }\n updateClientAppState={ updateClientAppState }\n />\n </div>\n );\n };\n\n const renderGeometryInput = () => {\n return (\n <GeometryControl\n mode={ geometryMode }\n onDrawModeChange={ handleGeometryModeChange }\n onShapefileChange={ handleShapefileChange }\n />\n );\n };\n\n return (\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperInline]: inline\n }) }>\n <div id=\"land-cutouts\">\n { !hideGroupType && (\n <RadioGroup\n name=\"groupType\"\n value={ groupType || null }\n onChange={ handleGroupTypeChange }\n className={ styles.radioGroup }\n >\n <FormControlLabel\n classes={{\n label: styles.radioLabel\n }}\n value=\"territorial\"\n control={ <Radio className={ styles.radioInput } size=\"small\" color=\"primary\" /> }\n label={ formatMessage('mapbiomas.header.base_form.group_type.options.territorial') }\n id=\"territorial-cut\"\n />\n <FormControlLabel\n classes={{\n label: styles.radioLabel\n }}\n value=\"land\"\n control={ <Radio className={ styles.radioInput } size=\"small\" color=\"primary\" /> }\n label={ formatMessage('mapbiomas.header.base_form.group_type.options.land') }\n id=\"landowner-cut\"\n />\n { hasGeometryOptions &&\n <>\n {/* <FormControlLabel\n classes={{\n label: styles.radioLabel\n }}\n value=\"car\"\n control={ <Radio className={ styles.radioInput } size=\"small\" color=\"primary\" /> }\n label={ formatMessage('mapbiomas.header.base_form.group_type.options.car') }\n id=\"car-cut\"\n /> */}\n <FormControlLabel\n classes={{\n label: styles.radioLabel\n }}\n value=\"geometry\"\n control={ <Radio className={ styles.radioInput } size=\"small\" color=\"primary\" /> }\n label={ formatMessage('mapbiomas.header.base_form.group_type.options.geometry') }\n id=\"geometry-cut\"\n />\n </>\n }\n </RadioGroup>\n ) }\n { groupType !== 'car' && groupType !== 'geometry' &&\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n <CustomSelect\n defaultOrder\n options={ filteredTerritoryTypeOptions }\n value={ territoryType }\n dataKey=\"territoryType\"\n label={ formatMessage(`mapbiomas.header.base_form.territory_type.title.${ groupType }`) }\n onChange={ handleInputChange }\n placeholder={ formatMessage(`mapbiomas.header.base_form.territory.placeholder`) }\n />\n </FormControl>\n }\n </div>\n { groupType !== 'car' && groupType !== 'geometry' && renderDefaultInputs() }\n { groupType === 'car' && hasGeometryOptions && renderCARInput() }\n { groupType === 'geometry' && hasGeometryOptions && renderGeometryInput() }\n </div>\n );\n}\n","import React from 'react';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport InfoIcon from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport styles from './InfoTooltip.module.scss';\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 14,\n color: 'white',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n}))(Tooltip);\n\nexport default function InfoTooltip({ text, placement = 'bottom' }) {\n return (\n <CustomTooltip\n title={ <div dangerouslySetInnerHTML={{ __html: text }} /> }\n placement={ placement }\n >\n <InfoIcon className={ styles.icon } />\n </CustomTooltip>\n );\n}\n","import React from 'react';\n\nimport FormControl from '@material-ui/core/FormControl';\n\nimport CustomSelect from '../../../../../../components/CustomSelect';\n\nimport styles from './BaseClassTreeNodesControl.module.scss';\n\nexport default function BaseClassTreeNodesControl({\n options,\n value,\n onChange,\n}) {\n return (\n <>\n <p className={ styles.baseClassInfo }>Selecione uma classe abaixo para visualizar o resultado aplicado em Uso e Cobertura</p>\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n <CustomSelect\n defaultOrder\n disableClearable={ false }\n options={ options }\n value={ value }\n dataKey=\"activeBaseClassTreeNodeId\"\n label=\"Filtro\"\n onChange={ onChange }\n placeholder=\"Selecione uma classe\"\n />\n </FormControl>\n </>\n );\n}\n","import React, { useState } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\nimport { useApolloClient } from '@apollo/react-hooks';\nimport qs from 'qs';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\n\nimport CustomSelect from '../../../../../../components/CustomSelect';\n\nimport styles from './DegradationIsolationClassTreeNodesControl.module.scss';\n\nconst initialValues = {\n mediumSize: null,\n distance: null,\n bigSize: null,\n};\n\nconst mediumSizeOptions = [\n { id: 25, label: 'maior ou igual a 25ha' },\n { id: 50, label: 'maior ou igual a 50ha' },\n { id: 100, label: 'maior ou igual a 100ha' },\n];\n\nconst distanceOptions = [\n { id: 5, label: 'maior ou igual a 5km' },\n { id: 10, label: 'maior ou igual a 10km' },\n { id: 20, label: 'maior ou igual a 20km' },\n];\n\nconst bigSizeOptions = [\n { id: 100, label: 'maior ou igual a 100ha' },\n { id: 500, label: 'maior ou igual a 500ha' },\n { id: 1000, label: 'maior ou igual a 1000ha' },\n];\n\nexport default function DegradationIsolationClassTreeNodesControl({\n options,\n value,\n onChange,\n}) {\n const client = useApolloClient();\n const [params, setParams] = useState(initialValues);\n const canSubmit = _.size(_.compact(_.values(params))) === 3;\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params\n }\n }\n });\n };\n\n const updateClientAppBaseParamsState = (params) => {\n updateClientAppState({\n baseParams: {\n __typename: 'AppBaseParamsState',\n ...params\n }\n });\n };\n\n const handleChange = (param, value) => {\n setParams((prevParams) => ({\n ...prevParams,\n [param]: value\n }));\n };\n\n const handleSubmit = () => {\n const parsedParams = qs.stringify(params, { arrayFormat: 'repeat' });\n\n updateClientAppBaseParamsState({\n degradationFragmentationIsolationValue: parsedParams\n });\n };\n\n const handleReset = () => {\n setParams(initialValues);\n updateClientAppBaseParamsState({\n degradationFragmentationIsolationValue: null\n });\n };\n\n return (\n <>\n <p className={ styles.baseClassInfo }>Selecione abaixo os 3 parâmetros para ativar a opção de visualizar os dados.</p>\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n <CustomSelect\n defaultOrder\n disableClearable={ false }\n options={ bigSizeOptions }\n value={ _.get(params, 'bigSize') }\n dataKey=\"bigSize\"\n label=\"Fonte\"\n onChange={ handleChange }\n placeholder=\"Selecione uma opção\"\n />\n </FormControl>\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n <CustomSelect\n defaultOrder\n disableClearable={ false }\n options={ distanceOptions }\n value={ _.get(params, 'distance') }\n dataKey=\"distance\"\n label=\"Distância\"\n onChange={ handleChange }\n placeholder=\"Selecione uma opção\"\n />\n </FormControl>\n <FormControl\n variant=\"outlined\"\n className={ styles.formControl }\n >\n <CustomSelect\n defaultOrder\n disableClearable={ false }\n options={ mediumSizeOptions }\n value={ _.get(params, 'mediumSize') }\n dataKey=\"mediumSize\"\n label=\"Alvo\"\n onChange={ handleChange }\n placeholder=\"Selecione uma opção\"\n />\n </FormControl>\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={ handleReset }\n >\n Resetar\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n disabled={ !canSubmit }\n onClick={ handleSubmit }\n >\n <FormattedMessage id=\"mapbiomas.user.my_maps.list.actions.show\" />\n </Button>\n </div>\n <p className={ styles.baseClassInfoSecondary }>Caso os parâmetros acima não estejam selecionados, por padrão é considerado o alvo 25 e fonte 500.</p>\n </>\n );\n}\n","import React, { Fragment } from 'react'\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport {useIntl, FormattedMessage } from 'react-intl';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\n\nimport InfoTooltip from '../../../../../../../../components/InfoTooltip';\n\nimport BaseClassTreeNodesControl from '../BaseClassTreeNodesControl';\n\nimport DegradationIsolationClassTreeNodesControl from '../DegradationIsolationClassTreeNodesControl';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport styles from './ClassTreesControl.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n activeButton: {\n color: `${ theme.palette.primary.main } !important`,\n borderColor: `${ theme.palette.primary.main } !important`\n },\n link: {\n color: '#16a085 !important',\n },\n}));\n\nconst mapSubmoduleKeyToTooltip = {\n 'fire_annual': '<b>Total Queimado</b> - toda a área queimada sobre ambiente antrópico ou natural, para o ano selecionado.<br/><br/><b>Classe</b> - área queimada com a cor da classe de cobertura e uso do solo que foi queimada.',\n 'fire_monthly': 'Ãrea queimada com a cor da classe de cada um dos 12 meses do ano selecionado.',\n 'fire_accumulated': 'Toda a área queimada acumulada sobre ambiente antrópico ou natural, para o perÃodo selecionado.',\n 'fire_frequency': 'Ãrea queimada com a cor da classe de frequência de ocorrência de fogo, sendo 1 as áreas que queimaram uma única vez, 2 as classes que queimaram duas vezes, etc.',\n};\n\nexport default function ClassTreesControl({\n classTreeOptions,\n activeTreeOption,\n levels = [],\n activeLevels = [],\n submoduleKey,\n hideLevelsControl = false,\n onActiveTreeOptionChange,\n onLevelToggle = () => {},\n hasBaseMode,\n baseNodesOptions,\n activeBaseClassTreeNodeId,\n onBaseNodeOptionChange,\n}) {\n const classes = useStyles()\n const formatMessage = useFormatMessage()\n const legendTooltip = mapSubmoduleKeyToTooltip[submoduleKey];\n const isOnDegradationFragmentationIsolation = _.get(activeTreeOption, 'value') === 'degradation_fragmentation_isolation';\n\n const intl = useIntl()\n\n if (!activeTreeOption || !classTreeOptions) {\n return null\n }\n\n const handleOptionChange = (event) => {\n const value = _.get(event, 'target.value');\n const option = _.find(classTreeOptions, { value });\n onActiveTreeOptionChange(option);\n };\n\n const renderDefaultClassesPdfTable = () => (\n <p className={ styles.descriptionText }>\n <FormattedMessage id=\"mapbiomas.header.classes_control.description.click\" />\n {' '}\n <a href={intl.formatMessage({id: 'mapbiomas.header.classes_control.description.url'})} target=\"noopener noreferrer _blank\" className={ classes.link }>\n <FormattedMessage id=\"mapbiomas.header.classes_control.description.here\" />\n </a>\n {' '}\n <FormattedMessage id=\"mapbiomas.header.classes_control.description.content\" />\n </p>\n );\n\n const renderOptions = () => {\n if (_.size(classTreeOptions) <= 3) {\n return (\n <div className={ classnames(styles.toggleButtons, {\n [styles.toggleButtons2Items]: _.size(classTreeOptions) === 2,\n [styles.toggleButtons3Items]: _.size(classTreeOptions) === 3,\n [styles.toggleButtonsDegradationFragmentation]: submoduleKey === 'degradation_fragmentation',\n }) }>\n { _.map(classTreeOptions, (classTreeOption) => {\n return (\n <button\n className={ classnames(styles.actionButton, {\n [classes.activeButton]: activeTreeOption.value === classTreeOption.value\n }) }\n key={ `view-mode-${ classTreeOption.value }` }\n onClick={ _.partial(onActiveTreeOptionChange, classTreeOption) }\n >\n { classTreeOption.label }\n </button>\n )\n }) }\n </div>\n );\n } else {\n return (\n <FormControl variant=\"outlined\" className={ styles.formControlSelectInput }>\n <Select\n value={ activeTreeOption.value }\n onChange={ handleOptionChange.bind(this) }\n >\n { _.map(_.orderBy(classTreeOptions, 'label', 'asc'), (classTreeOption) => {\n return (\n <MenuItem value={ classTreeOption.value }>{ classTreeOption.label }</MenuItem>\n )\n }) }\n </Select>\n </FormControl>\n );\n }\n };\n\n const renderLevelsControl = () => {\n return _.map(levels, (levelId) => {\n const isChecked = _.includes(activeLevels, levelId);\n\n return (\n <FormControlLabel\n key={ `level-control-${ levelId }` }\n classes={{\n root: styles.checkboxRoot,\n label: styles.checkboxLabel,\n }}\n control={\n <Checkbox\n checked={ isChecked }\n onChange={ onLevelToggle.bind(this, levelId) }\n name={ `level-${ levelId }` }\n color=\"primary\"\n size=\"small\"\n />\n }\n label={ `${ formatMessage('mapbiomas.header.classes_control.level.title') } ${ levelId }` }\n />\n );\n });\n };\n\n return (\n <div className={ styles.wrapper }>\n <h2 className={ styles.title }>\n <FormattedMessage id=\"mapbiomas.header.classes_control.title\" />\n { legendTooltip && <InfoTooltip text={ legendTooltip } placement=\"right-end\" /> }\n </h2>\n { activeTreeOption.value === 'default' && renderDefaultClassesPdfTable() }\n { classTreeOptions.length > 1 &&\n <Fragment>\n <span className={ styles.label }>\n <FormattedMessage id=\"mapbiomas.header.classes_control.view_mode.title\" />\n </span>\n { renderOptions() }\n </Fragment>\n }\n { hasBaseMode && !isOnDegradationFragmentationIsolation &&\n <BaseClassTreeNodesControl\n options={ baseNodesOptions }\n value={ activeBaseClassTreeNodeId }\n onChange={ onBaseNodeOptionChange }\n />\n }\n { isOnDegradationFragmentationIsolation &&\n <DegradationIsolationClassTreeNodesControl />\n }\n { !_.isEmpty(levels) && _.size(levels) > 1 && !hideLevelsControl && renderLevelsControl() }\n </div>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport classnames from 'classnames'\n\nimport CheckBoxIcon from '@material-ui/icons/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'\nimport Collapse from '@material-ui/core/Collapse'\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport IconButton from '@material-ui/core/IconButton'\nimport InfoIcon from '@material-ui/icons/Info'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport _ from 'lodash'\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage'\nimport { onCurrentLocaleCustom } from '../../../../../../../../utils/locale'\n\nimport styles from './ClassLegendList.module.scss'\n\nexport default function ClassLegendList({\n hideParentToggle,\n hideLegendIndex,\n classTreeNodes,\n activeClassTreeNodeIds,\n onClassTreeNodeToggle,\n onClassTreeNodeShowTooltip\n}) {\n const formatMessage = useFormatMessage()\n const [expandedNodeIds, setExpandedNodeIds] = useState([])\n const rootLevel = _.min(_.map(classTreeNodes, 'level'))\n\n useEffect(() => {\n if (hideParentToggle) {\n setExpandedNodeIds(_.map(classTreeNodes, 'id'));\n }\n }, [hideParentToggle, classTreeNodes]);\n\n const toggleTreeNode = (node) => {\n if (_.includes(expandedNodeIds, node.id)) {\n setExpandedNodeIds(_.without(expandedNodeIds, node.id))\n } else {\n setExpandedNodeIds([ ...expandedNodeIds, node.id ])\n }\n }\n\n const renderCheckbox = (node) => {\n if (hideParentToggle && !_.isEmpty(node.childrenIds)) {\n return null;\n }\n\n const toggled = _.includes(activeClassTreeNodeIds, node.id)\n\n return (\n <IconButton\n className={ styles.classListItemCheckControl }\n style={{ color: node.color }}\n onClick={ _.partial(onClassTreeNodeToggle, node) }\n >\n { toggled ? <CheckBoxIcon /> : <CheckBoxOutlineBlankIcon /> }\n </IconButton>\n )\n }\n\n const renderExpandIcon = (node) => {\n const expanded = _.includes(expandedNodeIds, node.id)\n const icon = expanded ? <ExpandLessIcon /> : <ExpandMoreIcon />\n\n if (!_.isEmpty(_.get(node, 'childrenIds'))) {\n return (\n <IconButton\n className={ styles.classListItemContentControl }\n onClick={ _.partial(toggleTreeNode, node) }\n >\n { icon }\n </IconButton>\n )\n }\n }\n\n const renderTooltipIcon = (node) => {\n const tooltips = _.get(node, 'classTreeNode.classe.classesTooltips')\n if (!_.isEmpty(tooltips)) {\n return (\n <Tooltip title={ formatMessage('mapbiomas.header.classes_control.tooltip.info') }>\n <IconButton\n className={ styles.classListItemInfoControl }\n onClick={ _.partial(onClassTreeNodeShowTooltip, node) }\n >\n <InfoIcon />\n </IconButton>\n </Tooltip>\n )\n }\n }\n\n const renderClassTreeBranch = ({ parentId = null }) => {\n const parentNode = _.find(classTreeNodes, { id: parentId })\n const branchNodes = _.filter(classTreeNodes, { parentId })\n const currentLevelShiftedToZeroBased = (\n 0 - (rootLevel) + (_.get(parentNode, 'level', rootLevel))\n )\n\n return (\n <ul\n className={ classnames(styles.classNode, {\n [styles.classChildNode]: !_.isNil(parentId)\n }) }\n >\n { _.map(_.sortBy(branchNodes, _.flow(_.property('positionInTree'), _.last)), (node) => {\n const prettyIndexOfNodeInTree = _.join(node.positionInTree, '.')\n const indexText = hideLegendIndex ? '' : `${ prettyIndexOfNodeInTree }.`;\n\n return (\n <li\n key={ `class-item-level-${ node.id }` }\n className={ styles.classListItemBase }\n >\n <div className={ styles.classListItemHeader }>\n { renderCheckbox(node) }\n <span\n style={{ fontSize: 13 - currentLevelShiftedToZeroBased }}\n className={ styles.classListItemTitle }\n >\n {indexText} {onCurrentLocaleCustom(node.i18nStrings) }\n </span>\n { renderExpandIcon(node) }\n { renderTooltipIcon(node) }\n </div>\n <Collapse in={ _.includes(expandedNodeIds, node.id) }>\n <div>\n { renderClassTreeBranch({ parentId: node.id }) }\n </div>\n </Collapse>\n </li>\n )\n }) }\n </ul>\n )\n }\n\n return (\n <div>\n { renderClassTreeBranch({ parentId: null }) }\n </div>\n )\n}\n","import _ from 'lodash'\n\nfunction addStateTypenamesToObject(object, pathToWalkAddingTypenames) {\n _.reduce(\n _.toPath(pathToWalkAddingTypenames),\n (partialPath, pathComponent) => {\n partialPath += `.${pathComponent}`\n const typename = _.upperFirst(_.camelCase(partialPath))\n _.set(object, `${partialPath.slice(1)}.__typename`, `${typename}State`)\n return partialPath\n },\n ''\n )\n}\n\nexport function updateStateCache(client, basePath, ...keyValuePairs) {\n const [keys, values] = _.zip(...keyValuePairs)\n const zipObjectPaths = _.map(keys, (k) => `${basePath}.${k}`)\n let data = _.zipObjectDeep(zipObjectPaths, values)\n addStateTypenamesToObject(data, basePath)\n client.writeData({ data })\n}\n","import { gql } from 'graphql.macro'\n\nexport const GET_BASE_DATA = gql`\n query {\n app @client {\n baseParams {\n activeClassTreeOptionValue\n activeClassTreeNodeIds\n activeBaseClassTreeNodeIds\n degradationType\n degradationFragmentationIsolationValue\n }\n }\n }\n`;\n\nexport const GET_CLASSES_LEVELS_LIST = gql`\n query GetModuleClasses($moduleId: Int, $submoduleKey: String!) {\n submoduleByModuleIdAndKey(moduleId: $moduleId, key: $submoduleKey) {\n id\n key\n submoduleTrees {\n classTree {\n hasTogglesPerLevel\n key\n i18nStrings {\n\t\t\t\t\t\tlanguage\n\t\t\t\t\t\tstringValue\n }\n }\n }\n }\n }\n`;\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n classTreeNode {\n classe {\n classesTooltips {\n id\n }\n }\n }\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport { useApolloClient, useQuery } from '@apollo/react-hooks';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport ClassTreesControl from './components/ClassTreesControl';\nimport ClassLegendList from './components/ClassLegendList';\nimport { updateStateCache as uncurriedUpdateStateCache } from '../../../../../../utils/apollo';\n\nimport usePrevious from '../../../../../../hooks/usePrevious';\n\nimport getCustomClient from '../../../../../../lib/getCustomClient';\n\nimport {\n GET_BASE_DATA,\n GET_CLASSES_LEVELS_LIST,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nimport styles from './GenericClasses.module.scss';\n\nconst mapClassTreeKeyToDefaultLevels = {\n 'deforestation_annual_data': [1, 2],\n 'regeneration_annual_data': [1, 2],\n 'regeneration_accumulated_data': [1, 2],\n 'mining_annual': [1],\n};\n\nconst degrationPixelValues = [\n // Floresta\n 3, // Formação Florestal\n 4, // Formação Savânica\n 5, // Mangue\n 6, // Floresta Alagável\n 49, // Restinga Arbórea\n // Formação Natural não Florestal\n 11, // Campo Alagado e Ãrea Pantanosa\n 12, // Formação Campestre\n 50, // Restinga Herbácea\"\n];\n\nexport default function GenericClasses({\n clientType,\n hideLegendIndex,\n hideParentToggle,\n moduleId,\n submoduleKey,\n hideLevelsControl,\n secondaryClassTreeKey,\n}) {\n const isMobile = useMediaQuery('(max-width: 768px)');\n const locale = localStorage.getItem('locale') || 'es';\n const client = useApolloClient();\n const hasBaseMode = !!secondaryClassTreeKey;\n const [baseClassTreeNodes, setBaseClassTreeNodes] = useState(null);\n const updateStateCache = _.partial(uncurriedUpdateStateCache, client);\n const { data: baseData } = useQuery(GET_BASE_DATA);\n const { data: classesTreesData } = useQuery(GET_CLASSES_LEVELS_LIST, {\n variables: {\n moduleId,\n submoduleKey\n },\n client: getCustomClient(clientType)\n });\n\n const activeClassTreeNodeIds = _.get(baseData, 'app.baseParams.activeClassTreeNodeIds');\n const isOnDegradationModule = _.includes(submoduleKey, 'degradation');\n const degradationType = _.get(baseData, 'app.baseParams.degradationType');\n const degradationFragmentationIsolationValue = _.get(baseData, 'app.baseParams.degradationFragmentationIsolationValue');\n const prevDegradationFragmentationIsolationValue = usePrevious(degradationFragmentationIsolationValue);\n const isOnDegradationCrossingMode = hasBaseMode && degradationType === 'crossing';\n\n const isOnInitialRenderingWithQueryParams = !_.isEmpty(activeClassTreeNodeIds) &&\n _.isUndefined(classesTreesData);\n\n const classTrees = _.get(classesTreesData, 'submoduleByModuleIdAndKey[0].submoduleTrees');\n const activeClassTreeOptionValue = _.get(baseData, 'app.baseParams.activeClassTreeOptionValue');\n const activeBaseClassTreeNodeIds = _.get(baseData, 'app.baseParams.activeBaseClassTreeNodeIds');\n const activeBaseClassTreeNodeId = _.first(activeBaseClassTreeNodeIds);\n\n const { data: classTreeData, loading: loadingClassTreeData, refetch: refetchClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: activeClassTreeOptionValue\n },\n skip: !activeClassTreeOptionValue,\n client: getCustomClient(clientType)\n });\n let classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi') || [];\n\n // Filter class tree nodes only when module is degradation\n if (hasBaseMode && isOnDegradationModule && _.get(classTreeData, 'classTreeByKey[0].key') === 'default') {\n classTreeLevelsList = _.chain(classTreeLevelsList)\n .filter((node) => _.includes(degrationPixelValues, _.get(node, 'pixelValue')))\n .map((node) => {\n const parentNode = _.find(classTreeLevelsList, { id: node.parentId });\n\n return [parentNode, node];\n })\n .flatten()\n .orderBy('id', 'asc')\n .uniqBy('id')\n .value();\n }\n\n useEffect(() => {\n setBaseClassTreeNodes(null);\n }, [submoduleKey]);\n\n useEffect(() => {\n if (!prevDegradationFragmentationIsolationValue && degradationFragmentationIsolationValue) {\n refetchClassTreeData({\n classTreeKey: secondaryClassTreeKey\n });\n } else if (prevDegradationFragmentationIsolationValue && !degradationFragmentationIsolationValue) {\n refetchClassTreeData({\n classTreeKey: activeClassTreeOptionValue\n });\n }\n }, [prevDegradationFragmentationIsolationValue, degradationFragmentationIsolationValue]);\n\n useEffect(() => {\n if (isOnInitialRenderingWithQueryParams) {\n return;\n }\n\n const activeTreeIsInCurrentSubmoduleTrees = _.some(\n classTrees,\n { classTree: { key: activeClassTreeOptionValue }}\n );\n\n if (baseData && classesTreesData && (!activeClassTreeOptionValue || !activeTreeIsInCurrentSubmoduleTrees)) {\n const firstTree = _.get(classTrees, '[0].classTree');\n const firstTreeKey = _.get(firstTree, 'key');\n\n updateStateCache('app.baseParams',\n [ 'activeClassTreeOptionValue', firstTreeKey ],\n [ 'activeSubmodule', submoduleKey ]\n );\n }\n }, [baseData, classesTreesData, activeClassTreeOptionValue, submoduleKey]);\n\n useEffect(() => {\n if (isOnInitialRenderingWithQueryParams) {\n return;\n }\n\n if (baseData && classTreeData && activeClassTreeOptionValue) {\n let nodeIds = _.map(classTreeLevelsList, 'id');\n\n if (mapClassTreeKeyToDefaultLevels[activeClassTreeOptionValue] || submoduleKey === 'infrastructure_main') {\n let defaultLevels = mapClassTreeKeyToDefaultLevels[activeClassTreeOptionValue];\n\n if (submoduleKey === 'infrastructure_main') {\n defaultLevels = [1, 2];\n }\n\n nodeIds = _.chain(classTreeLevelsList)\n .filter((node) => _.includes(defaultLevels, _.get(node, 'level')))\n .map('id')\n .value();\n } else if (submoduleKey === 'regeneration_annual') {\n nodeIds = _.chain(classTreeLevelsList)\n .filter(({ positionInTree }) => _.first(positionInTree) !== 1)\n .map('id')\n .value();\n }\n\n updateStateCache('app.baseParams',\n [ 'activeClassTreeNodeIds', nodeIds ]\n );\n }\n }, [classTreeData, activeClassTreeOptionValue]);\n\n if (!baseData || !classesTreesData) {\n return null;\n }\n\n if (!activeClassTreeOptionValue) {\n return null;\n }\n\n const activeClassTree = _.find(\n classTrees, { classTree: { key: activeClassTreeOptionValue } }\n )\n const nodesOfActiveClassTree = classTreeLevelsList;\n\n const levels = _.sortBy(_.uniq(_.map(nodesOfActiveClassTree, 'level')))\n const activeLevels = _.filter(levels, (levelId) => {\n const idsByLevel = _.map(_.filter(nodesOfActiveClassTree, { level: levelId }), 'id')\n const idsByLevelActive = _(idsByLevel)\n .filter((id) => _.includes(activeClassTreeNodeIds, id))\n .compact()\n .value();\n\n return _.size(idsByLevelActive) === _.size(idsByLevel);\n })\n\n const handleActiveTreeOptionChange = (classTreeOption) => {\n const classTreeKey = classTreeOption.value\n const activeClassTree = _.find(\n classTrees, { classTree: { key: classTreeKey } }\n )\n const nodesOfActiveClassTree = classTreeLevelsList;\n let nodeIds = _.map(nodesOfActiveClassTree, 'id')\n\n if (mapClassTreeKeyToDefaultLevels[classTreeKey]) {\n const defaultLevels = mapClassTreeKeyToDefaultLevels[classTreeKey]\n nodeIds = _.chain(nodesOfActiveClassTree)\n .filter((node) => _.includes(defaultLevels, _.get(node, 'level')))\n .map('id')\n .value()\n }\n\n setBaseClassTreeNodes(null);\n updateStateCache(\n 'app.baseParams',\n [ 'activeClassTreeOptionValue', classTreeKey ],\n [ 'activeClassTreeNodeIds', nodeIds ],\n [ 'activeBaseClassTreeNodeIds', [] ]\n );\n };\n\n const handleClassTreeNodeToggle = (classTreeNode) => {\n const nodeId = _.get(classTreeNode, 'id')\n\n if (_.includes(activeClassTreeNodeIds, nodeId)) {\n updateStateCache('app.baseParams', [\n 'activeClassTreeNodeIds',\n _.without(activeClassTreeNodeIds, nodeId)\n ]);\n } else {\n updateStateCache('app.baseParams', [\n 'activeClassTreeNodeIds',\n [ ...activeClassTreeNodeIds, nodeId ]\n ]);\n }\n };\n\n const handleLevelToggle = (levelId) => {\n const idsByLevel = _.map(_.filter(nodesOfActiveClassTree, { level: levelId }), 'id')\n\n if (_.includes(activeLevels, levelId)) {\n let idsClone = _.clone(activeClassTreeNodeIds);\n idsClone = _.filter(idsClone, (id) => !_.includes(idsByLevel, id))\n\n updateStateCache('app.baseParams', [\n 'activeClassTreeNodeIds',\n idsClone\n ]);\n } else {\n const nextIds = _.uniq(_.concat(activeClassTreeNodeIds, idsByLevel))\n\n updateStateCache('app.baseParams', [\n 'activeClassTreeNodeIds',\n nextIds\n ]);\n }\n };\n\n const handleClassTreeNodeShowTooltip = (classTreeNode) => {\n if (isMobile) {\n updateStateCache('app',\n [ 'headerIsVisible', false ],\n [ 'showClassInfo', classTreeNode.id ]\n );\n } else {\n updateStateCache('app',\n [ 'showClassInfo', classTreeNode.id ]\n );\n }\n };\n\n const handleClassLegendListSelectChange = (_dataKey, id) => {\n if (id) {\n refetchClassTreeData({\n classTreeKey: secondaryClassTreeKey\n });\n updateStateCache('app.baseParams', [\n 'activeBaseClassTreeNodeIds',\n [id]\n ]);\n } else {\n refetchClassTreeData({\n classTreeKey: activeClassTreeOptionValue\n });\n updateStateCache('app.baseParams', [\n 'activeBaseClassTreeNodeIds',\n []\n ]);\n }\n\n setBaseClassTreeNodes(baseClassTreeNodes || classTreeLevelsList);\n };\n\n const classesControlTreeOptions = _.map(classTrees, (classTree) => ({\n label: _.chain(classTree)\n .get('classTree.i18nStrings')\n .find({ language: locale })\n .get('stringValue')\n .value(),\n value: _.get(classTree, 'classTree.key')\n }));\n\n const baseNodesOptions = _.map((baseClassTreeNodes || classTreeLevelsList), (node) => ({\n label: _.chain(node)\n .get('i18nStrings')\n .find({ language: locale })\n .get('stringValue')\n .value(),\n id: _.get(node, 'id')\n }));\n\n return (\n <div className={ styles.wrapper }>\n { !isOnDegradationCrossingMode &&\n <ClassTreesControl\n classTreeOptions={ classesControlTreeOptions }\n activeTreeOption={\n _.find(\n classesControlTreeOptions,\n { value: activeClassTreeOptionValue }\n )\n }\n levels={ levels }\n activeLevels={ activeLevels }\n submoduleKey={ submoduleKey }\n onActiveTreeOptionChange={ handleActiveTreeOptionChange }\n onLevelToggle={ handleLevelToggle }\n hideLevelsControl={ hideLevelsControl }\n hasBaseMode={ hasBaseMode }\n baseNodesOptions={ baseNodesOptions }\n activeBaseClassTreeNodeId={ activeBaseClassTreeNodeId }\n onBaseNodeOptionChange={ handleClassLegendListSelectChange }\n />\n }\n { loadingClassTreeData &&\n <div className={ styles.loadingWrapper }>\n <CircularProgress size={ 20 } />\n </div>\n }\n { !loadingClassTreeData &&\n <ClassLegendList\n hideLegendIndex={ hideLegendIndex }\n hideParentToggle={ hideParentToggle }\n classTreeNodes={ nodesOfActiveClassTree }\n activeClassTreeNodeIds={ activeClassTreeNodeIds }\n onClassTreeNodeToggle={ handleClassTreeNodeToggle }\n onClassTreeNodeShowTooltip={ handleClassTreeNodeShowTooltip }\n />\n }\n </div>\n )\n}\n","import { gql } from 'graphql.macro'\n\nexport const GET_COMPONENT_INITIALIZATION_DATA = gql`\n query {\n app @client {\n baseParams {\n activeObjectTreeNodeIds\n }\n }\n }\n`\n\nexport const GET_CLASSES_LEVELS_LIST = gql`\n query GetModuleClasses($moduleId: Int, $submoduleKey: String!) {\n submoduleByModuleIdAndKey(moduleId: $moduleId, key: $submoduleKey) {\n id\n key\n submoduleTrees {\n classTree {\n key\n i18nStrings {\n\t\t\t\t\t\tlanguage\n\t\t\t\t\t\tstringValue\n }\n mvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n i18nStrings {\n\t\t\t\t\t\t\tlanguage\n\t\t\t\t\t\t\tstringValue\n }\n classTreeNode {\n classe {\n classesTooltips {\n id\n }\n }\n }\n }\n }\n }\n }\n }\n`\n","import React, { useState } from 'react'\nimport classnames from 'classnames'\nimport _ from 'lodash'\nimport { useApolloClient, useQuery } from '@apollo/react-hooks'\nimport CheckBoxIcon from '@material-ui/icons/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'\nimport Collapse from '@material-ui/core/Collapse'\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport IconButton from '@material-ui/core/IconButton'\nimport { makeStyles } from '@material-ui/core/styles'\nimport { FormattedMessage } from 'react-intl'\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\n\nimport { updateStateCache } from '../../../../../../utils/apollo'\nimport { onCurrentLocaleCustom } from '../../../../../../utils/locale'\n\nimport { GET_COMPONENT_INITIALIZATION_DATA } from './query'\n\nimport styles from './GeospatialObjects.module.scss'\n\nconst useStyles = makeStyles((theme) => ({\n link: {\n color: `#16a085 !important`,\n },\n}))\n\nconst MAP_POSITION_IN_TREE_TO_DOWNLOAD_URL = {\n'1.1.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_public_airfield.zip',\n'1.1.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_private_airfield.zip',\n'1.1.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_helipad.zip', \n'1.2.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_lock.zip',\n'1.2.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_transshipment_station.zip',\n'1.2.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_waterway.zip',\n'1.2.4': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_port_facility_for_tourism.zip',\n'1.2.5': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_registered_port_facility.zip',\n'1.2.6': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_organized_port.zip',\n'1.2.7': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_private_use_terminal.zip',\n'1.2.8': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_other_port_facilities.zip',\n'1.3.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_aqueduct.zip',\n'1.3.2.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_transportation_gas_pipeline.zip',\n'1.3.2.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_distribution_gas_pipeline.zip',\n'1.3.2.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_outflow_gas_pipeline.zip', \n'1.3.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_mining_pipeline.zip',\n'1.3.4': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_oil_pipeline.zip',\n'1.3.5': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_polyduct.zip',\n'1.3.6': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_pipeline_not_identified.zip',\n'1.4': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_railroad.zip',\n'1.5.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_state_highway.zip',\n'1.5.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_federal_highway.zip',\n'1.5.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_other_road_sections.zip',\n'2.1.1.1.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_oil_refineries_and_other_processing_facilities.zip', \n'2.1.1.1.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_oil_and_oil_products_storage_and_distribution_terminal.zip', \n'2.1.1.2.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_compression_station.zip', \n'2.1.1.2.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_gas_delivery_point.zip', \n'2.1.1.2.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_natural_gas_processing_unit.zip', \n'2.1.1.2.4': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_liquefied_natural_gas_terminals.zip',\n'2.1.2.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_biodiesel_plant.zip',\n'2.1.2.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_biogas_plant.zip',\n'2.1.2.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_ethanol_plant.zip',\n'2.1.3.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_liquefied_petroleum_gas_base.zip',\n'2.1.3.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_liquid_fuel_base.zip',\n'2.2.1.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_substation.zip',\n'2.2.1.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_transmission_line.zip',\n'2.2.2.1.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_wind_power_plant.zip',\n'2.2.2.1.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_photovoltaic_solar_power_plant.zip',\n'2.2.2.1.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_biomass_thermal_power_plant.zip',\n'2.2.2.1.4': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_hydroelectric_power_plant.zip',\n'2.2.2.1.5': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_small_hydropower_plant.zip',\n'2.2.2.1.6': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_hydroelectric_generating_centers.zip',\n'2.2.2.2.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_fossil_fuel_thermal_power_plant.zip',\n'2.2.2.2.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_thermonuclear_power_plant.zip',\n'3.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_energetic_product_mine.zip', \n'3.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_metallic_product_mine.zip', \n'3.3': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_other_products_mine.zip', \n'3.4': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_mining_dam.zip',\n'4.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_warehouses.zip', \n'4.2': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_slaughterhouse.zip', \n'5.1': 'https://storage.googleapis.com/mapbiomas-public/initiatives/brasil/collection_8/downloads/infrastructure/structure_base_radio_station.zip' \n};\n\nexport default function GeospatialObjects({\n objectTree = []\n}) {\n const classes = useStyles()\n const apolloClient = useApolloClient()\n const { data, loading } = useQuery(GET_COMPONENT_INITIALIZATION_DATA)\n if (loading || !data) {\n return null\n }\n\n const appState = data.app\n const updateState = _.partial(updateStateCache, apolloClient)\n\n const [expandedNodeIds, setExpandedNodeIds] = useState([])\n const nodes = _.get(objectTree, 'geospatialObjectCategoryTreeLevels')\n\n const toggleTreeNode = (node) => {\n if (_.includes(expandedNodeIds, node.id)) {\n setExpandedNodeIds(_.without(expandedNodeIds, node.id))\n } else {\n setExpandedNodeIds([ ...expandedNodeIds, node.id ])\n }\n }\n\n const handleObjectTreeNodeToggle = (objectTreeNode) => {\n const nodeId = _.get(objectTreeNode, 'id')\n\n if (_.includes(appState.baseParams.activeObjectTreeNodeIds, nodeId)) {\n updateState('app.baseParams', [\n 'activeObjectTreeNodeIds',\n _.without(appState.baseParams.activeObjectTreeNodeIds, nodeId)\n ])\n } else {\n updateState('app.baseParams', [\n 'activeObjectTreeNodeIds',\n [ ...appState.baseParams.activeObjectTreeNodeIds, nodeId ]\n ])\n }\n }\n\n const renderExpandIcon = (node) => {\n const expanded = _.includes(expandedNodeIds, node.id)\n const icon = expanded ? <ExpandLessIcon /> : <ExpandMoreIcon />\n\n if (!_.isEmpty(_.get(node, 'childrenIds'))) {\n return (\n <IconButton\n className={ styles.classListItemContentControl }\n onClick={ _.partial(toggleTreeNode, node) }\n >\n { icon }\n </IconButton>\n )\n }\n }\n\n const renderCheckbox = (node) => {\n const toggled = _.includes(appState.baseParams.activeObjectTreeNodeIds, node.id)\n\n return (\n <IconButton\n className={ styles.classListItemCheckControl }\n style={{ color: node.color }}\n onClick={ _.partial(handleObjectTreeNodeToggle, node) }\n >\n { toggled ? <CheckBoxIcon /> : <CheckBoxOutlineBlankIcon /> }\n </IconButton>\n )\n }\n\n const renderClassTreeBranch = ({ parentId = null }) => {\n const branchNodes = _.filter(nodes, { parentId })\n\n return (\n <ul\n className={ classnames(styles.classNode, {\n [styles.classChildNode]: !_.isNil(parentId)\n }) }\n >\n { _.map(_.sortBy(branchNodes, _.flow(_.property('positionInTree'), _.last)), (node) => {\n const prettyIndexOfNodeInTree = _.join(node.positionInTree, '.');\n const downloadUrl = MAP_POSITION_IN_TREE_TO_DOWNLOAD_URL[prettyIndexOfNodeInTree];\n\n return (\n <li\n key={ `class-item-level-${ node.id }` }\n className={ styles.classListItemBase }\n >\n <div className={ styles.classListItemHeader }>\n { _.isEmpty(node.childrenIds) && renderCheckbox(node) }\n <span\n style={{ fontSize: 12 }}\n className={ styles.classListItemTitle }\n >\n <span>{ prettyIndexOfNodeInTree }. { onCurrentLocaleCustom(node.i18nStrings) }</span>\n { downloadUrl &&\n <IconButton\n className={ styles.actionBoxControlButton }\n href={ downloadUrl }\n target=\"_blank\"\n >\n <CloudDownloadIcon />\n </IconButton>\n }\n </span>\n { renderExpandIcon(node) }\n </div>\n <Collapse in={ _.includes(expandedNodeIds, node.id) }>\n <div>\n { renderClassTreeBranch({ parentId: node.id }) }\n </div>\n </Collapse>\n </li>\n )\n }) }\n </ul>\n )\n }\n\n return (\n <div className={ styles.wrapper }>\n <h2 className={ styles.title }>\n Categorias\n </h2>\n <p className={ styles.descriptionText }><FormattedMessage id=\"mapbiomas.header.infrastructure.description.click\" /> <a href=\"https://mapbiomas-br-site.s3.amazonaws.com/Gloss%C3%A1rio_-_Camadas_de_Infraestrutura_2020_-_PORT___ENG.xlsx\" target=\"_blank\" className={ classes.link }><FormattedMessage id=\"mapbiomas.header.infrastructure.description.here\" /></a> <FormattedMessage id=\"mapbiomas.header.infrastructure.description.content\" /></p>\n { renderClassTreeBranch({ parentId: null }) }\n </div>\n )\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n query {\n app @client {\n baseParams {\n activeClassTreeNodeIds\n }\n }\n }\n`;\n","import React, { useEffect } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\nimport { FormattedMessage } from 'react-intl';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport IconButton from '@material-ui/core/IconButton';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport styles from './TransitionClasses.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_TERRITORIES_LIST,\n} from './query';\n\n// non_vegetated_areas_to_vegetated,\n// increase_of_water_surface,\n// reduction_of_water_surface,\n// gain_of_forest_plantations,\n// vegetated_areas_to_non_vegetated\n\nconst transitionClassesData = [\n {\n id: 'non_vegetated_areas_to_vegetated',\n pixelValue: 1,\n label: 'Transições de classes de agropecuária ou áreas não vegetadas para cobertura florestal ou áreas naturais não florestais.',\n color: '#06FF03'\n },\n {\n id: 'increase_of_water_surface',\n pixelValue: 2,\n label: 'Transições que acrescem superfÃcie de água',\n color: '#3FACFF'\n },\n {\n id: 'reduction_of_water_surface',\n pixelValue: 3,\n label: 'Transições que reduzem superfÃcie de água',\n color: '#FFA505'\n },\n {\n id: 'gain_of_forest_plantations',\n pixelValue: 4,\n label: 'Transições com ganho de áreas de silvicultura.',\n color: '#8A2BE2'\n },\n {\n id: 'vegetated_areas_to_non_vegetated',\n pixelValue: 5,\n label: 'Transições de cobertura florestal ou áreas naturais não florestais para agropecuária ou áreas não vegetadas.',\n color: '#FF0004'\n },\n {\n id: 'areas_without_transitions_or_unobserved',\n pixelValue: 6,\n label: 'Ãreas sem transição ou transições que envolvem áreas não observadas ou transições entre classes dentro do nivel 1 de legenda.',\n color: '#AAA9A9'\n },\n];\n\nexport default function TransitionClasses({\n onItemsChange = () => {},\n}) {\n const formatMessage = useFormatMessage();\n const { data: baseData } = useQuery(GET_BASE_DATA);\n const activeItems = _.get(baseData, 'app.baseParams.activeClassTreeNodeIds') || [];\n const allClassesActive = _.size(activeItems) === _.size(transitionClassesData);\n\n const handleItemsChange = (ids) => {\n onItemsChange({ activeClassTreeNodeIds: ids });\n };\n\n useEffect(() => {\n handleItemsChange(_.map(transitionClassesData, 'pixelValue'));\n }, []);\n\n const itemIsActive = (id) => {\n return _.includes(activeItems, id);\n };\n\n const toggleActiveItem = (id) => {\n if (itemIsActive(id)) {\n let itemsClone = _.clone(activeItems);\n itemsClone = _.filter(itemsClone, (itemId) => itemId !== id);\n\n handleItemsChange(itemsClone);\n } else {\n handleItemsChange([\n ...activeItems,\n id\n ]);\n }\n };\n\n const toggleAllItems = () => {\n if (allClassesActive) {\n handleItemsChange([]);\n } else {\n handleItemsChange(_.map(transitionClassesData, 'pixelValue'));\n }\n };\n\n return (\n <div>\n <h2 className={ styles.title }><FormattedMessage id={ `mapbiomas.header.classes_control.title` } /></h2>\n <FormControlLabel\n classes={{\n label: styles.checkboxLabel\n }}\n control={\n <Checkbox\n checked={ allClassesActive }\n onChange={ toggleAllItems }\n name=\"allClasses\"\n color=\"primary\"\n size=\"small\"\n />\n }\n label={ formatMessage('mapbiomas.header.classes_control.toggle_all') }\n />\n <ul className={ styles.classList }>\n { _.map(transitionClassesData, (item) => {\n return (\n <li\n key={ `class-item-level-${ item.pixelValue }` }\n className={ styles.classListItemBase } \n >\n <div className={ styles.classListItemHeader }>\n <IconButton\n className={ styles.classListItemCheckControl }\n style={{ color: item.color }}\n onClick={ toggleActiveItem.bind(this, item.pixelValue) }\n >\n { itemIsActive(item.pixelValue) ? <CheckBoxIcon /> : <CheckBoxOutlineBlankIcon /> }\n </IconButton>\n <span className={ styles.classListItemTitle }>\n <FormattedMessage id={ `mapbiomas.header.transition_classes.${ item.id }` } />\n </span>\n </div>\n </li>\n );\n }) }\n </ul>\n </div>\n );\n}\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport styles from './QualityClasses.module.scss';\n\nexport default function QualityClasses() {\n return (\n <div>\n <h2 className={ styles.title }><FormattedMessage id={ `mapbiomas.header.classes_control.title` } /></h2>\n <p className={ styles.text }><FormattedMessage id={ `mapbiomas.header.quality_classes.description` } /></p>\n <div className={ styles.legendGradient } />\n </div>\n );\n}\n","import React from 'react';\n\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\nimport Fade from '@material-ui/core/Fade';\nimport Popper from '@material-ui/core/Popper';\nimport Paper from '@material-ui/core/Paper';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport styles from './TranslateOptionsBox.module.scss';\n\nexport default function TranslateOptionsBox({\n anchorEl,\n onClose = () => {},\n}) {\n const formatMessage = useFormatMessage()\n const open = Boolean(anchorEl);\n\n const handleLocaleChange = (locale) => {\n localStorage.setItem('locale', locale);\n window.location.href = '/';\n };\n\n return (\n <Popper open={ open } anchorEl={ anchorEl } placement=\"right-end\" transition style={{ zIndex: 9999 }}>\n { ({ TransitionProps }) => (\n <Fade { ...TransitionProps } timeout={ 350 }>\n <ClickAwayListener onClickAway={ onClose }>\n <Paper className={ styles.boxWrapper }>\n <button className={ styles.button } onClick={ handleLocaleChange.bind(this, 'es') }>ES - { formatMessage('mapbiomas.header.locale_control.options.es') }</button>\n <button className={ styles.button } onClick={ handleLocaleChange.bind(this, 'en') }>EN - { formatMessage('mapbiomas.header.locale_control.options.en') }</button>\n </Paper>\n </ClickAwayListener>\n </Fade>\n ) }\n </Popper>\n );\n}\n","// Source:\n// https://usehooks.com/useWindowSize/\n\nimport { useState, useEffect } from 'react';\n\n// Hook\nexport default function useWindowSize() {\n // Initialize state with undefined width/height so server and client renders match\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\n const [windowSize, setWindowSize] = useState({\n width: undefined,\n height: undefined,\n });\n useEffect(() => {\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n // Add event listener\n window.addEventListener('resize', handleResize);\n // Call handler right away so state gets updated with initial window size\n handleResize();\n // Remove event listener on cleanup\n return () => window.removeEventListener('resize', handleResize);\n }, []); // Empty array ensures that effect is only run on mount\n return windowSize;\n}\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport useWindowSize from '../../../../../../hooks/useWindowSize';\n\nimport styles from './InstitutionalMenu.module.scss';\n\nconst LOGO_HEIGHT = 70;\nconst TITLE_HEIGHT = 50;\nconst FOOTER_HEIGHT = 30;\n\nexport default function InstitutionalMenu({\n iframeMode,\n}) {\n const windowSize = useWindowSize();\n const contentHeight = windowSize.height - (!iframeMode ? LOGO_HEIGHT : 0) - TITLE_HEIGHT - FOOTER_HEIGHT;\n\n return (\n <div>\n <h2 className={ styles.title }><FormattedMessage id=\"mapbiomas.sidebar.institutional.title\" /></h2>\n <div className={ styles.navListWrapper } style={{ height: contentHeight }}>\n <ul className={ styles.navList }>\n <li>\n <span><FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.about_mapbiomas.title\" /></span>\n <ul>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/proyecto/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.about_mapbiomas.links.project\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/productos/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.about_mapbiomas.links.products\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/quienes-somos/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.about_mapbiomas.links.about\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/equipo/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.about_mapbiomas.links.team\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/otras-iniciativas/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.about_mapbiomas.links.other_initiatives\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/terminos-de-uso/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.about_mapbiomas.links.terms_of_use\" />\n </a>\n </li>\n </ul>\n </li>\n <li>\n <span><FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.maps_and_data.title\" /></span>\n <ul>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/descargas/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.maps_and_data.links.downloads\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/terminos-de-uso/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.maps_and_data.links.terms_of_use\" />\n </a>\n </li>\n </ul>\n </li>\n <li>\n <span><FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.title\" /></span>\n <ul>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/descripcion-general-de-la-metodologia/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.methodology_overview\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/atbd-entienda-cada-etapa/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.atdb\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/herramientas/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.tools\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/glosario/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.glossary\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/terminos-de-uso/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.terms_of_use\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/preguntas-frecuentes/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.qa\" />\n </a>\n </li>\n </ul>\n </li>\n <li>\n <span><FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.title\" /></span>\n <ul>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/lanzamientos/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.releases\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/noticias/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.news\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/videos/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.videos\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/terminos-de-uso/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.terms_of_use\" />\n </a>\n </li>\n <li>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://venezuela.mapbiomas.org/contacto/\">\n <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.contact\" />\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n );\n}\n","export function parseJwt(token) {\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n\n return JSON.parse(jsonPayload);\n}\n\nexport default function parseToken(token, apiToken) {\n const parsedToken = parseJwt(token);\n\n localStorage.setItem('token', token);\n localStorage.setItem('tokenAPI', apiToken);\n localStorage.setItem('sub', parsedToken.sub);\n localStorage.setItem('name', parsedToken.name);\n localStorage.setItem('email', parsedToken.email);\n}\n","import React, { useState } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\n\nimport parseToken from '../../../../../../../../helpers/parseToken';\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport toast from '../../../../../../../../utils/toast';\n\nimport styles from './LoginForm.module.scss';\n\nconst API_URL = process.env.REACT_APP_MAPBIOMAS_LOGIN_API_BASE_URL;\n\nconst initialState = {\n login: '',\n password: '',\n};\n\nexport default function LoginForm({\n onRecoveryPassword = () => {}\n}) {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const { login, password } = state;\n\n const payload = { email: login, password };\n\n fetch(`${ API_URL }/v1/tokens`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload)\n })\n .then((response) => response.json())\n .then((data) => {\n if (_.get(data, 'success')) {\n const id = _.get(data, 'id');\n const token = _.get(data, 'token');\n\n if (token) {\n localStorage.setItem('tokenId', id);\n parseToken(token);\n window.location.href = '/?login=true';\n }\n } else {\n toast(_.get(data, 'message') || formatMessage('mapbiomas.toast.error'), 'error');\n }\n })\n .catch((error) => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n return (\n <form className={ styles.formWrapper } onSubmit={ handleSubmit }>\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n required\n id=\"login-field\"\n label={ formatMessage('mapbiomas.user.login.fields.email') }\n type=\"text\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.login }\n onChange={ handleTextChange.bind(this, 'login') }\n />\n </FormControl>\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n required\n id=\"password-field\"\n label={ formatMessage('mapbiomas.user.login.fields.password') }\n type=\"password\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.password }\n onChange={ handleTextChange.bind(this, 'password') }\n />\n </FormControl>\n <div className={ styles.actionsWrapper }>\n <a className={ styles.helperLink } onClick={ onRecoveryPassword }><FormattedMessage id=\"mapbiomas.user.login.forgot_password\" /></a>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n >\n <FormattedMessage id=\"mapbiomas.user.login.buttons.login\" />\n </Button>\n </div>\n </form>\n )\n}\n","import React, { useState } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport toast from '../../../../../../../../utils/toast';\n\nimport styles from './SignUpForm.module.scss';\n\nconst initialState = {\n name: '',\n email: '',\n organization: '',\n motivation: '',\n};\n\nconst API_URL = process.env.REACT_APP_MAPBIOMAS_LOGIN_API_BASE_URL;\n\nexport default function SignUpForm({\n onCancel = () => {},\n}) {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n const [showInfo, setShowInfo] = useState(false);\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const {\n name,\n email,\n organization,\n motivation,\n } = state;\n\n const payload = {\n user: {\n email,\n name,\n organization,\n motivation,\n }\n };\n\n fetch(`${ API_URL }/v1/users`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload)\n })\n .then((response) => response.json())\n .then((data) => {\n if (_.get(data, 'user')) {\n setState(initialState);\n setShowInfo(true);\n toast(formatMessage('mapbiomas.toast.confirm_account'), 'success');\n } else {\n toast(_.get(data, 'email[0]') || formatMessage('mapbiomas.toast.error'), 'error');\n }\n })\n .catch((error) => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const renderInfo = () => {\n return (\n <p className={ styles.successText }><FormattedMessage id=\"sign_up_page.form.success\" /></p>\n );\n }\n\n const renderForm = () => {\n return (\n <form onSubmit={ handleSubmit }>\n <FormControl className={ styles.formControl }>\n <TextField\n id=\"name-field\"\n label={ formatMessage('sign_up_page.form.fields.name') }\n variant=\"outlined\"\n type=\"text\"\n className={ styles.filterFormInput }\n value={ state.name }\n onChange={ handleTextChange.bind(this, 'name') }\n required\n />\n </FormControl>\n <FormControl className={ styles.formControl }>\n <TextField\n id=\"organization-field\"\n label={ formatMessage('sign_up_page.form.fields.organization') }\n variant=\"outlined\"\n type=\"text\"\n className={ styles.filterFormInput }\n value={ state.organization }\n onChange={ handleTextChange.bind(this, 'organization') }\n required\n />\n </FormControl>\n <FormControl className={ styles.formControl }>\n <TextField\n multiline\n rows={ 3 }\n id=\"motivation-field\"\n label={ formatMessage('sign_up_page.form.fields.motivation') }\n variant=\"outlined\"\n type=\"text\"\n className={ styles.filterFormInput }\n value={ state.motivation }\n onChange={ handleTextChange.bind(this, 'motivation') }\n required\n />\n </FormControl>\n <FormControl className={ styles.formControl }>\n <TextField\n id=\"email-field\"\n label={ formatMessage('sign_up_page.form.fields.email') }\n variant=\"outlined\"\n type=\"email\"\n className={ styles.filterFormInput }\n value={ state.email }\n onChange={ handleTextChange.bind(this, 'email') }\n required\n />\n </FormControl>\n <div className={ styles.actionsWrapper }>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={ onCancel }\n >\n Cancelar\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n >\n <FormattedMessage id=\"sign_up_page.form.buttons.register\" />\n </Button>\n </div>\n </form>\n );\n }\n\n return (\n <div className={ styles.formWrapper }>\n <h3 className={ styles.title }><FormattedMessage id=\"sign_up_page.title\" /></h3>\n { showInfo && renderInfo() }\n { !showInfo && renderForm() }\n </div>\n )\n}\n","import React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport TextField from '@material-ui/core/TextField';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport styles from './MapForm.module.scss';\n\nconst initialState = {\n title: '',\n description: '',\n updateSnapshot: false,\n};\n\nexport default function MapForm({\n editMode = false,\n data,\n onCancel = () => {},\n onSubmit = () => {},\n}) {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n\n useEffect(() => {\n if (data) {\n setState({\n title: _.get(data, 'name'),\n description: _.get(data, 'description'),\n });\n }\n }, [data])\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleUpdateSnapshotToggle = () => {\n handleStateChange('updateSnapshot', !state.updateSnapshot);\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n setState(initialState);\n onSubmit(state);\n };\n\n const baseTranslationKey = !editMode ? 'new_map' : 'edit_map';\n\n return (\n <form className={ styles.formWrapper } onSubmit={ handleSubmit }>\n { !editMode && <h3 className={ styles.title }><FormattedMessage id=\"mapbiomas.user.my_maps.forms.new_map.title\" /></h3> }\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n required\n id=\"title-field\"\n label={ formatMessage('mapbiomas.user.my_maps.forms.new_map.fields.title') }\n type=\"text\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.title }\n onChange={ handleTextChange.bind(this, 'title') }\n />\n </FormControl>\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n id=\"description-field\"\n label={ formatMessage('mapbiomas.user.my_maps.forms.new_map.fields.description') }\n variant=\"outlined\"\n size=\"small\"\n multiline\n rows={ 2 }\n value={ state.description }\n onChange={ handleTextChange.bind(this, 'description') }\n />\n </FormControl>\n { editMode &&\n <FormControlLabel\n classes={ {\n root: styles.checkboxRoot,\n label: styles.checkboxLabel,\n } }\n control={\n <Checkbox\n checked={ state.updateSnapshot }\n onChange={ handleUpdateSnapshotToggle }\n name=\"updateSnapshot\"\n color=\"primary\"\n size=\"small\"\n />\n }\n label={ formatMessage('mapbiomas.user.my_maps.forms.edit_map.fields.update_snapshot') }\n />\n }\n <div className={ styles.actionsWrapper }>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={ onCancel }\n >\n <FormattedMessage id=\"mapbiomas.user.my_maps.forms.new_map.buttons.cancel\" />\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n >\n <FormattedMessage id={ `mapbiomas.user.my_maps.forms.${ baseTranslationKey }.buttons.confirm` } />\n </Button>\n </div>\n </form>\n )\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteIcon from '@material-ui/icons/Delete';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport styles from './MapList.module.scss';\n\nexport default function MapList({\n data = [],\n onViewMap = () => {},\n onEditMap = () => {},\n onDeleteMap = () => {},\n}) {\n const formatMessage = useFormatMessage();\n\n const handleDelete = (id) => {\n if (confirm(formatMessage('mapbiomas.user.my_maps.list.actions.delete_confirmation'))) {\n onDeleteMap(id);\n }\n };\n\n if (_.isEmpty(data)) {\n return null;\n }\n\n return (\n <ul className={ styles.mapList }>\n { _.map(data, (item) => {\n return (\n <li key={ `map-item-${ item.id }` } className={ styles.mapItem }>\n <div className={ styles.mapItemTextContent }>\n <h4 className={ styles.mapItemTitle }>{ item.name }</h4>\n { item.description && <p className={ styles.mapItemDescription }>{ item.description }</p> }\n </div>\n <div className={ styles.mapItemActionsContent }>\n <Tooltip title={ formatMessage('mapbiomas.user.my_maps.list.actions.show') }>\n <IconButton\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n className={ styles.mapItemViewButton }\n onClick={ onViewMap.bind(this, item.id) }\n >\n <CheckCircleOutlineIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title={ formatMessage('mapbiomas.user.my_maps.list.actions.edit') }>\n <IconButton\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n className={ classnames(styles.mapItemViewButton, styles.mapItemViewButtonSecondary) }\n onClick={ onEditMap.bind(this, item.id) }\n >\n <EditIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title={ formatMessage('mapbiomas.user.my_maps.list.actions.delete') }>\n <IconButton\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n className={ classnames(styles.mapItemViewButton, styles.mapItemViewButtonSecondary) }\n onClick={ handleDelete.bind(this, item.id) }\n >\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </div>\n </li>\n );\n }) }\n </ul>\n );\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport IconButton from '@material-ui/core/IconButton';\n\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport MapForm from '../MapForm';\n\nimport styles from './MapEditDialog.module.scss';\n\nexport default function MapEditDialog({\n isOpen,\n data,\n onClose = () => {},\n onSubmit = () => {},\n}) {\n return (\n <Dialog\n open={ isOpen }\n onClose={ onClose }\n classes={ {\n paper: styles.dialogWrapper\n } }\n >\n <header className={ styles.header }>\n <h2 className={ styles.title }>\n <FormattedMessage id=\"mapbiomas.user.my_maps.forms.edit_map.title\" />\n </h2>\n <IconButton className={ styles.closeButton } onClick={ onClose }>\n <CloseIcon />\n </IconButton>\n </header>\n <div className={ styles.content }>\n <MapForm\n editMode\n data={ data }\n onCancel={ onClose }\n onSubmit={ onSubmit }\n />\n </div>\n </Dialog>\n );\n}\n","import React, { useState } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport toast from '../../../../../../../../utils/toast';\n\nimport styles from './PasswordRecoveryForm.module.scss';\n\nconst API_URL = process.env.REACT_APP_MAPBIOMAS_LOGIN_API_BASE_URL;\n\nconst initialState = {\n email: '',\n};\n\nexport default function PasswordRecoveryForm({\n onCancel = () => {},\n}) {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n const [showInfo, setShowInfo] = useState(false);\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const {\n email,\n } = state;\n\n const payload = { email };\n\n fetch(`${ API_URL }/v1/users/send_recovery_instructions`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload)\n })\n .then((response) => response.json())\n .then((data) => {\n if (_.get(data, 'success')) {\n handleStateChange('email', '');\n toast(formatMessage('mapbiomas.toast.email_sent'), 'success');\n } else {\n toast(_.get(data, 'errors[0]') || formatMessage('mapbiomas.toast.error'), 'error');\n }\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const renderInfo = () => {\n return (\n <p className={ styles.successText }><FormattedMessage id=\"mapbiomas.user.password_recovery.instructions\" /></p>\n );\n }\n\n const renderForm = () => {\n return (\n <form onSubmit={ handleSubmit }>\n <FormControl className={ styles.formControl }>\n <TextField\n id=\"email-field\"\n label={ formatMessage('mapbiomas.user.password_recovery.fields.email') }\n variant=\"outlined\"\n type=\"email\"\n className={ styles.filterFormInput }\n value={ state.email }\n onChange={ handleTextChange.bind(this, 'email') }\n required\n />\n </FormControl>\n <div className={ styles.actionsWrapper }>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n onClick={ onCancel }\n >\n <FormattedMessage id=\"mapbiomas.user.password_recovery.buttons.cancel\" />\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n >\n <FormattedMessage id=\"mapbiomas.user.password_recovery.buttons.confirm\" />\n </Button>\n </div>\n </form>\n );\n }\n\n return (\n <div className={ styles.formWrapper }>\n <h3 className={ styles.title }>\n <FormattedMessage id=\"mapbiomas.user.password_recovery.title\" />\n </h3>\n { showInfo && renderInfo() }\n { !showInfo && renderForm() }\n </div>\n )\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n app @client {\n activeBaseMap\n activeLayers\n layersOpacity\n activeModule\n activeModuleContent\n activeYear\n headerIsVisible\n mapFlyTo\n mapPointInfo {\n latlng\n parsedBBox\n }\n showClassInfo\n showDashboardInfo\n showBeforeAndAfterMosaic\n baseParams {\n groupType\n degradationType\n degradationFragmentationIsolationValue\n degradationCrossingValues {\n degradation_fragmentation_edge_area\n degradation_fragmentation_fragment_size\n degradation_fragmentation_isolation_medium_size\n degradation_fragmentation_isolation_distance\n degradation_fragmentation_isolation_big_size\n degradation_fire_frequency\n degradation_fire_time\n degradation_secondary_vegetation_age\n parsedParams\n }\n territoryType\n territorySubtype\n territory\n territories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n crossing\n classesViewMode\n activeClassesLevelsListItems\n activeTransitionsClassesListItems\n activePastureQualityQualityClassesListItems\n yearRange\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { useApolloClient, useQuery } from '@apollo/react-hooks';\nimport classnames from 'classnames';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\nimport * as turf from '@turf/turf';\n\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport AddIcon from '@material-ui/icons/Add';\nimport Button from '@material-ui/core/Button';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\nimport IconButton from '@material-ui/core/IconButton';\nimport PersonIcon from '@material-ui/icons/Person';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport LoginForm from './components/LoginForm';\nimport SignUpForm from './components/SignUpForm';\nimport MapForm from './components/MapForm';\nimport MapList from './components/MapList';\nimport MapEditDialog from './components/MapEditDialog';\nimport PasswordRecoveryForm from './components/PasswordRecoveryForm';\n\nimport { request } from '../../../../../../utils/api';\nimport toast from '../../../../../../utils/toast';\n\nimport resetToken from '../../../../../../helpers/resetToken';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\nimport useWindowSize from '../../../../../../hooks/useWindowSize';\n\nimport { GET_BASE_DATA } from './query';\n\nimport styles from './AccountMenu.module.scss';\n\nconst LOGO_HEIGHT = 70;\nconst TITLE_HEIGHT = 50;\nconst FOOTER_HEIGHT = 30;\n\nexport default function AccountMenu({\n iframeMode,\n myMapsMode,\n newMapMode,\n onHideMenu = () => {}\n}) {\n const windowSize = useWindowSize();\n const contentHeight = windowSize.height - (!iframeMode ? LOGO_HEIGHT : 0) - TITLE_HEIGHT - FOOTER_HEIGHT;\n\n const token = localStorage.getItem('token');\n const client = useApolloClient();\n const isMobile = useMediaQuery('(max-width: 768px)');\n const formatMessage = useFormatMessage();\n const [showForm, setShowForm] = useState(false);\n const [showSignUp, setShowSignUp] = useState(false);\n const [currentMapData, setCurrentMapData] = useState(null);\n const [showPasswordRecovery, setShowPasswordRecovery] = useState(false);\n const [maps, setMaps] = useState([]);\n const { data: baseData } = useQuery(GET_BASE_DATA);\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params\n }\n }\n });\n };\n\n useEffect(() => {\n if (token) {\n request('/v1/my_maps')\n .then((data) => {\n setMaps(data);\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n }\n }, []);\n\n useEffect(() => {\n if (newMapMode) {\n setShowForm(true);\n }\n }, [newMapMode]);\n\n const toggleMapForm = () => {\n setShowForm(!showForm);\n };\n\n const toggleSignUpForm = () => {\n setShowSignUp(!showSignUp);\n };\n\n const togglePasswordRecoveryForm = () => {\n setShowPasswordRecovery(!showPasswordRecovery);\n };\n\n const handleExit = () => {\n const id = localStorage.getItem('tokenId');\n\n request(`/v1/tokens/${ id }`, {\n method: 'DELETE'\n })\n .then((data) => {\n if (_.get(data, 'success')) {\n resetToken();\n window.location.href = '/';\n }\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const handleMapSubmit = (params) => {\n const appData = _.get(baseData, 'app');\n\n let payload = {\n name: params.title,\n description: params.description,\n snapshot: JSON.stringify(appData)\n };\n\n request('/v1/my_maps', {\n method: 'POST',\n body: JSON.stringify(payload)\n })\n .then((data) => {\n if (_.get(data, 'id')) {\n let mapsClone = _.cloneDeep(maps);\n mapsClone = _.concat(mapsClone, data);\n setMaps(mapsClone);\n setShowForm(false);\n toast(formatMessage('mapbiomas.toast.map_added'));\n }\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const handleMapUpdate = (params) => {\n const appData = _.get(baseData, 'app');\n const mapId = _.get(currentMapData, 'id');\n let payload = {\n name: params.title,\n description: params.description,\n };\n\n if (params.updateSnapshot) {\n payload.snapshot = JSON.stringify(appData);\n }\n\n request(`/v1/my_maps/${ mapId }`, {\n method: 'PATCH',\n body: JSON.stringify(payload)\n })\n .then((data) => {\n if (_.get(data, 'id')) {\n let mapsClone = _.cloneDeep(maps);\n mapsClone = _.map(mapsClone, (item) => {\n if (item.id === mapId) {\n return data;\n }\n\n return item;\n });\n setMaps(mapsClone);\n setCurrentMapData(null);\n toast(formatMessage('mapbiomas.toast.map_updated'));\n }\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const handleViewMap = (id) => {\n request(`/v1/my_maps/${ id }`)\n .then((data) => {\n if (_.get(data, 'id')) {\n let snapshot = JSON.parse(_.get(data, 'snapshot'));\n let flyTo = _.get(snapshot, 'mapFlyTo');\n let territoryPoints = [];\n\n // TODO: Format current user maps to add new 'territoryBBox' prop on territories\n const parsedTerritories = _.map(_.get(snapshot, 'baseParams.territories'), (territory) => {\n const territoryBBox = _.get(territory, 'territoryBBox');\n\n if (territoryBBox) {\n territoryPoints = _.concat(territoryPoints, territoryBBox);\n }\n\n return {\n ...territory,\n territoryBBox: territoryBBox || null\n };\n });\n\n if (!_.isEmpty(territoryPoints)) {\n const line = turf.lineString(territoryPoints);\n const bbox = turf.bbox(line);\n\n flyTo = [\n [bbox[0], bbox[1]],\n [bbox[2], bbox[3]],\n ];\n }\n\n _.set(snapshot, 'baseParams.territories', parsedTerritories);\n _.set(snapshot, 'mapFlyTo', flyTo);\n\n if (isMobile) {\n _.set(snapshot, 'headerIsVisible', false);\n }\n\n updateClientAppState(snapshot);\n onHideMenu();\n }\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const handleDeleteMap = (id) => {\n request(`/v1/my_maps/${ id }`, {\n method: 'DELETE'\n })\n .then(() => {\n let mapsClone = _.cloneDeep(maps);\n mapsClone = _.filter(mapsClone, (item) => item.id !== id);\n setMaps(mapsClone);\n toast(formatMessage('mapbiomas.user.my_maps.list.toast.delete_success'));\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const handleEditMap = (id) => {\n const mapData = _.cloneDeep(_.find(maps, { id }));\n setCurrentMapData(mapData);\n };\n\n const handleMapEditClose = () => {\n setCurrentMapData(null);\n };\n\n const renderLogin = () => {\n return (\n <div>\n <p className={ styles.infoText }>\n <FormattedMessage id=\"mapbiomas.user.login.description.text_intro\" />\n <a onClick={ toggleSignUpForm }><FormattedMessage id=\"mapbiomas.user.login.description.sign_up_label\" /></a>\n <FormattedMessage id=\"mapbiomas.user.login.description.text_final\" />\n </p>\n <LoginForm onRecoveryPassword={ togglePasswordRecoveryForm } />\n </div>\n );\n };\n\n return (\n <div>\n <div className={ styles.titleWrapper }>\n <h2 className={ styles.title }>\n { (!myMapsMode && !newMapMode) ?\n <FormattedMessage id=\"mapbiomas.sidebar.account.title\" /> :\n <FormattedMessage id=\"mapbiomas.sidebar.my_maps.title\" />\n }\n </h2>\n <Tooltip title=\"Esconder\" onClick={ onHideMenu }>\n <IconButton className={ styles.hideMenuButton }>\n <ChevronLeftIcon />\n </IconButton>\n </Tooltip>\n </div>\n <div className={ styles.navListWrapper } style={{ height: contentHeight }}>\n { token &&\n <div className={ styles.userInfo }>\n <span>\n <PersonIcon />\n <span>{ localStorage.getItem('name') }</span>\n </span>\n <Tooltip title=\"Sair\" onClick={ handleExit }>\n <IconButton>\n <ExitToAppIcon />\n </IconButton>\n </Tooltip>\n </div>\n }\n <div className={ styles.myMapsContentWrapper }>\n { !showSignUp && !showPasswordRecovery && !token && renderLogin() }\n { showPasswordRecovery &&\n <PasswordRecoveryForm onCancel={ togglePasswordRecoveryForm } />\n }\n { showSignUp &&\n <SignUpForm onCancel={ toggleSignUpForm } />\n }\n { token &&\n <div>\n { !showForm &&\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n startIcon={ <AddIcon /> }\n className={ styles.addButton }\n onClick={ toggleMapForm }\n >\n <FormattedMessage id=\"mapbiomas.user.my_maps.buttons.new_map\" />\n </Button>\n }\n { showForm &&\n <MapForm\n onCancel={ toggleMapForm }\n onSubmit={ handleMapSubmit }\n />\n }\n <MapList\n data={ maps }\n onViewMap={ handleViewMap }\n onEditMap={ handleEditMap }\n onDeleteMap={ handleDeleteMap }\n />\n </div>\n }\n </div>\n </div>\n <MapEditDialog\n isOpen={ !!currentMapData }\n data={ currentMapData }\n onClose={ handleMapEditClose }\n onSubmit={ handleMapUpdate }\n />\n </div>\n );\n}\n","export default function resetToken() {\n localStorage.removeItem('tokenId');\n localStorage.removeItem('token');\n localStorage.removeItem('name');\n localStorage.removeItem('email');\n localStorage.removeItem('profile');\n localStorage.removeItem('institutionId');\n localStorage.removeItem('institutionName');\n localStorage.removeItem('notify_user_new_term_of_use_version');\n localStorage.removeItem('unseen_alerts');\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_CLIENT_DATA = gql`\n query {\n app @client {\n activeModule\n activeModuleContent\n showBeforeAndAfterMosaic\n baseParams {\n groupType\n degradationType\n degradationFragmentationIsolationValue\n degradationCrossingValues {\n degradation_fragmentation_edge_area\n degradation_fragmentation_fragment_size\n degradation_fragmentation_isolation_medium_size\n degradation_fragmentation_isolation_distance\n degradation_fragmentation_isolation_big_size\n degradation_fire_frequency\n degradation_fire_time\n degradation_secondary_vegetation_age\n parsedParams\n }\n territoryType\n territorySubtype\n territoryValueType\n crossingEnabled\n crossingTerritoryType\n territory\n territories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n crossingTerritories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n crossing\n buffer\n yearRange\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query {\n geometryBuffersList {\n id\n bufferSizeInMeters\n\t\t\ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n\t\t\t}\n }\n\n territoryCategoriesList {\n id\n key\n parentId\n\t\t territoryLayerStyle\n i18nStrings {\n\t\t\t language\n\t\t\t stringValue\n }\n }\n }\n`;\n\nexport const GET_TERRITORIES_LIST = gql`\n query TerritoriesList($categoryId: Int!) {\n territoriesList(categoryId: $categoryId) {\n id\n i18nStrings {\n language\n stringValue\n }\n }\n }\n`;\n\nexport const GET_TERRITORY_BOUNDING_BOX = gql`\n query TerritoriesByIds($territoriesIds: [Int!]) {\n territoriesByIds(territoriesIds: $territoriesIds) {\n id\n territoryGeometry {\n boundingBox\n }\n }\n }\n`;\n\nexport const GET_TRANSITION_PERIOD_OPTIONS_DATA = gql`\n query {\n coverageTransitionPeriodOptionsList {\n id\n fromYear\n toYear\n groupBy\n orderAmongSiblings\n }\n }\n`;\n","import React, { Fragment, useEffect } from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport { useApolloClient, useLazyQuery, useQuery } from '@apollo/react-hooks';\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport InfoIcon from '@material-ui/icons/Info';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport ListSubheader from '@material-ui/core/ListSubheader';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport Select from '@material-ui/core/Select';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport ActiveOptionsList from '../ActiveOptionsList';\nimport CustomSelect from '../../../../components/CustomSelect';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\nimport usePrevious from '../../../../../../hooks/usePrevious';\n\nimport mapModuleToTerritoryCategoryGroups from '../../../../../../data/mapGroupTypeToTerritoryCategoryKey';\n\nimport { onCurrentLocaleCustom } from '../../../../../../utils/locale';\nimport toast from '../../../../../../utils/toast';\n\nimport getCustomClient from '../../../../../../lib/getCustomClient';\n\nimport styles from './DegradationViewModeControl.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_BASE_CLIENT_DATA,\n GET_TERRITORIES_LIST,\n GET_TERRITORY_BOUNDING_BOX,\n GET_TRANSITION_PERIOD_OPTIONS_DATA,\n} from './query';\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 14,\n color: 'white',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n}))(Tooltip);\n\nconst TERRITORY_CATEGORIES_WITH_SIMPLE_SELECT = [\n 'country',\n 'biome',\n 'state',\n 'special_territories',\n 'biosphere_reserves',\n 'geoparks',\n];\n\nexport default function DegradationViewModeControl({\n clientType,\n territoryCategoriesGroup = 'default',\n isTransition = false,\n hideGroupType = false,\n showBufferField = false,\n showMultipleTerritories = true,\n showCrossing = false,\n inline,\n onFlyTo = () => {},\n}) {\n const intl = useIntl()\n const locale = localStorage.getItem('locale') || 'es';\n const client = useApolloClient();\n const formatMessage = useFormatMessage();\n const { data: clientBaseData } = useQuery(GET_BASE_CLIENT_DATA);\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n client: getCustomClient(clientType)\n });\n const { data: transitionBaseData, loading: loadingTransitionBaseData } = useQuery(GET_TRANSITION_PERIOD_OPTIONS_DATA, {\n skip: !isTransition,\n client: getCustomClient(clientType)\n });\n const [\n loadTerritoriesListData,\n {\n data: territoriesListData,\n loading: loadingTerritoriesListData\n }\n ] = useLazyQuery(GET_TERRITORIES_LIST, {\n client: getCustomClient(clientType)\n });\n\n const loadTerritoryBoundingBox = (id) => {\n client.query({\n query: GET_TERRITORY_BOUNDING_BOX,\n variables: { territoriesIds: [id] }\n })\n .then((response) => {\n const bbox = _.get(response, 'data.territoriesByIds[0].territoryGeometry.boundingBox');\n\n if (bbox) {\n const parsedBBox = [\n [_.get(bbox, 'yMin'), _.get(bbox, 'xMin')],\n [_.get(bbox, 'yMax'), _.get(bbox, 'xMax')],\n ];\n\n onFlyTo(parsedBBox);\n }\n });\n };\n\n const territoryCategoriesList = _.get(baseData, 'territoryCategoriesList');\n const geometryBuffers = _.get(baseData, 'geometryBuffersList');\n const coverageTransitionPeriodOptionsList = _.get(transitionBaseData, 'coverageTransitionPeriodOptionsList');\n\n const territoriesList = _.get(territoriesListData, 'territoriesList');\n\n const activeModule = _.get(clientBaseData, 'app.activeModule');\n const activeModuleContent = _.get(clientBaseData, 'app.activeModuleContent');\n const baseParams = _.get(clientBaseData, 'app.baseParams');\n const showBeforeAndAfterMosaic = _.get(clientBaseData, 'app.showBeforeAndAfterMosaic');\n const groupType = _.get(baseParams, 'groupType') || 'territorial';\n const degradationType = _.get(baseParams, 'degradationType') || 'vector';\n const territoryType = _.get(baseParams, 'territoryType');\n const territoryValueType = _.get(baseParams, 'territoryValueType');\n const territoryIsMultiple = territoryValueType === 'multiple';\n const crossingEnabled = _.get(baseParams, 'crossingEnabled');\n const crossingTerritoryType = _.get(baseParams, 'crossingTerritoryType');\n const crossingTerritories = _.get(baseParams, 'crossingTerritories');\n const territories = _.get(baseParams, 'territories');\n const buffer = _.get(baseParams, 'buffer');\n const yearRange = _.get(baseParams, 'yearRange');\n\n const prevGroupType = usePrevious(groupType);\n\n const parsedTerritoryTypeOptions = _.map(territoryCategoriesList, (territoryType) => {\n const stringList = _.get(territoryType, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n\n return {\n id: territoryType.id,\n key: territoryType.key,\n label: _.get(selectedString, 'stringValue'),\n parentId: territoryType.parentId,\n };\n });\n const territoryCategoryGroups = mapModuleToTerritoryCategoryGroups[territoryCategoriesGroup];\n const territoryKeysByGroupType = _.get(territoryCategoryGroups, groupType);\n const filteredTerritoryTypeOptions = _(parsedTerritoryTypeOptions)\n .filter(({ key }) => _.includes(territoryKeysByGroupType, key))\n .sortBy(({ key }) => _.findIndex(territoryKeysByGroupType, (baseTerritoryKey) => baseTerritoryKey === key))\n .value();\n\n const territoryTypeOption = _.find(parsedTerritoryTypeOptions, { id: territoryType });\n const hasTerritorySimpleSelect = _.includes(TERRITORY_CATEGORIES_WITH_SIMPLE_SELECT, _.get(territoryTypeOption, 'key'));\n const crossingTerritoryTypeOptions = _.filter(parsedTerritoryTypeOptions, (option) => {\n return _.includes(option.key, 'crossing') && _.includes(option.key, _.get(territoryTypeOption, 'key'));\n });\n const crossingInputIsDisabled = _.isEmpty(crossingTerritoryTypeOptions) || territoryIsMultiple || _.isEmpty(territories);\n\n const parsedTerritoryOptions = _.map(territoriesList, (territory) => {\n const stringList = _.get(territory, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n // TODO: Remove bounding box property from territory data, since it is loaded and use only on map flyTo\n const boundingBox = {\n xMin: 0,\n xMax: 0,\n yMin: 0,\n yMax: 0,\n };\n // const boundingBox = _.get(territory, 'territoryGeometry.boundingBox');\n\n return {\n id: territory.id,\n label: _.get(selectedString, 'stringValue'),\n boundingBox: [\n [_.get(boundingBox, 'yMin'), _.get(boundingBox, 'xMin')],\n [_.get(boundingBox, 'yMax'), _.get(boundingBox, 'xMax')],\n ]\n };\n });\n\n const parsedCoverageTransitionPeriodOptionsList = _(coverageTransitionPeriodOptionsList)\n .map((item) => {\n const { fromYear, toYear, groupBy, orderAmongSiblings } = item;\n const parsedFromYear = Number(_.replace(fromYear, '_', ''));\n const parsedToYear = Number(_.replace(toYear, '_', ''));\n\n return {\n id: `${ parsedFromYear }-${ parsedToYear }`,\n label: `${ parsedFromYear } ${ formatMessage(`mapbiomas.header.base_form.year_range.separator`) } ${ parsedToYear }`,\n group: groupBy,\n orderAmongSiblings\n };\n })\n .orderBy(['group', 'orderAmongSiblings', 'id'])\n .groupBy('group')\n .value();\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params\n }\n }\n });\n };\n\n const updateClientAppBaseParamsState = (params) => {\n updateClientAppState({\n baseParams: {\n __typename: 'AppBaseParamsState',\n ...params\n }\n });\n };\n\n useEffect(() => {\n if (hideGroupType && groupType !== 'territorial') {\n updateClientAppBaseParamsState({\n groupType: 'territorial',\n territoryType: null,\n territorySubtype: null,\n territoryValueType: 'single',\n territory: null,\n territories: null,\n });\n }\n }, [hideGroupType, groupType]);\n\n useEffect(() => {\n if (territoryType) {\n loadTerritoriesListData({\n variables: {\n categoryId: territoryType\n }\n });\n }\n }, [territoryType]);\n\n useEffect(() => {\n if (territoryCategoriesList && !territoryType && groupType === 'territorial') {\n const initialTerritoryType = _.find(territoryCategoriesList, { key: 'country' });\n const territoryTypeId = _.get(initialTerritoryType, 'id');\n const params = {\n territoryType: territoryTypeId,\n };\n\n if (_.isNumber(territoryTypeId)) {\n // TODO: Replace this query to another that loads only active territories data\n loadTerritoriesListData({\n variables: {\n categoryId: territoryTypeId\n }\n });\n\n updateClientAppBaseParamsState(params);\n }\n }\n }, [territoryCategoriesList, territoryType]);\n\n useEffect(() => {\n if (_.isEmpty(territories) && territoriesList && _.size(territoriesList) === 1) {\n const territoryTypeOption = _.find(filteredTerritoryTypeOptions, { id: territoryType });\n\n const firstTerritory = _.first(territoriesList);\n const firstTerritoryId = _.get(firstTerritory, 'id');\n const territoryOption = _.find(parsedTerritoryOptions, { id: firstTerritoryId });\n\n const activeTerritoryIds = _.map(territories, 'id');\n\n if (!_.includes(activeTerritoryIds, firstTerritoryId)) {\n const newTerritoryItem = {\n __typename: 'AppBaseParamsActiveTerritoryItemState',\n id: firstTerritoryId,\n label: _.get(territoryOption, 'label'),\n territoryTypeId: _.get(territoryTypeOption, 'id'),\n territoryTypeLabel: _.get(territoryTypeOption, 'label'),\n territoryBBox: _.get(territoryOption, 'boundingBox'),\n };\n\n updateClientAppBaseParamsState({\n territories: _.concat(_.isNil(territories) ? [] : territories, newTerritoryItem)\n });\n\n loadTerritoryBoundingBox(firstTerritoryId);\n }\n }\n }, [activeModule, territoriesList]);\n\n useEffect(() => {\n if (territoryType && !_.isEmpty(filteredTerritoryTypeOptions) && prevGroupType === groupType) {\n const hasTerritoryTypeData = !!_.find(filteredTerritoryTypeOptions, { id: territoryType });\n\n if (!hasTerritoryTypeData) {\n updateClientAppBaseParamsState({\n territoryType: null,\n territories: []\n });\n toast(formatMessage('mapbiomas.toast.unavailable_territory'), 'info');\n }\n }\n }, [filteredTerritoryTypeOptions, territoryType, prevGroupType, groupType]);\n\n useEffect(() => {\n updateClientAppBaseParamsState({\n crossingTerritoryType: null,\n crossingTerritories: null,\n });\n }, [territoryType, territories, crossingEnabled, crossingInputIsDisabled]);\n\n useEffect(() => {\n updateClientAppBaseParamsState({\n crossingTerritories: null,\n });\n }, [crossingTerritoryType]);\n\n useEffect(() => {\n if (crossingEnabled && territoryIsMultiple) {\n updateClientAppBaseParamsState({\n crossingEnabled: false,\n crossingTerritoryType: null,\n crossingTerritories: null,\n });\n }\n }, [territoryIsMultiple, crossingEnabled]);\n\n useEffect(() => {\n updateClientAppBaseParamsState({\n crossingEnabled: false,\n crossingTerritoryType: null,\n crossingTerritories: null,\n });\n }, [activeModuleContent]);\n\n const handleInputChange = (field, inputValue) => {\n const value = _.isObject(inputValue) ? inputValue.target.value : inputValue;\n let params = { [field]: value };\n\n if (field === 'territoryType' && !territoryIsMultiple) {\n params.territories = [];\n }\n\n // if (field === 'yearRange') {\n // const [minYear, maxYear] = _.split(inputValue, '-');\n\n // updateClientAppState({\n // timelineLimitsRange: [Number(minYear), Number(maxYear)]\n // });\n // }\n\n updateClientAppBaseParamsState(params);\n };\n\n const handleGroupTypeChange = (event) => {\n updateClientAppBaseParamsState({ degradationType: event.target.value });\n };\n\n const handleTerritoryChange = (_field, value) => {\n let baseOption = value;\n\n if (!_.get(baseOption, 'id')) {\n baseOption = _.find(parsedTerritoryOptions, { id: value });\n }\n\n const territoryTypeOption = _.find(filteredTerritoryTypeOptions, { id: territoryType });\n const activeTerritoryIds = _.map(territories, 'id');\n\n if (!_.includes(activeTerritoryIds, _.get(baseOption, 'id'))) {\n const newTerritoryItem = {\n __typename: 'AppBaseParamsActiveTerritoryItemState',\n id: _.get(baseOption, 'id'),\n label: _.get(baseOption, 'label'),\n territoryTypeId: _.get(territoryTypeOption, 'id'),\n territoryTypeLabel: _.get(territoryTypeOption, 'label'),\n territoryBBox: _.get(baseOption, 'boundingBox'),\n };\n\n let nextTerritories = _.concat(_.isNil(territories) ? [] : territories, newTerritoryItem);\n\n if (!territoryIsMultiple) {\n nextTerritories = [newTerritoryItem];\n }\n\n updateClientAppBaseParamsState({\n territories: nextTerritories\n });\n }\n\n if (baseOption) {\n loadTerritoryBoundingBox(_.get(baseOption, 'id'));\n }\n\n handleInputChange('territory', _.get(baseOption, 'id'));\n };\n\n const handleCrossingTerritoryChange = (data) => {\n const territoryTypeOption = _.find(crossingTerritoryTypeOptions, { id: crossingTerritoryType });\n const activeTerritoryIds = _.map(crossingTerritories, 'id');\n\n if (!_.includes(activeTerritoryIds, _.get(data, 'id'))) {\n const newTerritoryItem = {\n __typename: 'AppBaseParamsActiveTerritoryItemState',\n id: _.get(data, 'id'),\n label: _.get(data, 'label'),\n territoryTypeId: _.get(territoryTypeOption, 'id'),\n territoryTypeLabel: _.get(territoryTypeOption, 'label'),\n territoryBBox: _.get(data, 'boundingBox'),\n };\n\n updateClientAppBaseParamsState({\n crossingTerritories: [newTerritoryItem]\n });\n }\n\n if (data) {\n loadTerritoryBoundingBox(_.get(data, 'id'));\n }\n\n handleInputChange('territory', _.get(data, 'id'));\n };\n\n const handleRemoveTerritory = (id) => {\n let territoriesClone = _.cloneDeep(territories);\n territoriesClone = _.filter(territoriesClone, (territory) => territory.id !== id);\n\n updateClientAppBaseParamsState({ territories: territoriesClone });\n };\n\n const toggleTerritoryValueType = () => {\n if (territoryIsMultiple) {\n updateClientAppBaseParamsState({\n territoryValueType: 'single',\n territories: [],\n });\n } else {\n updateClientAppBaseParamsState({ territoryValueType: 'multiple' });\n }\n };\n\n const toggleCrossing = () => {\n updateClientAppBaseParamsState({\n crossingEnabled: !crossingEnabled,\n });\n };\n\n const toggleBeforeAndAfterMosaic = () => {\n updateClientAppState({\n showBeforeAndAfterMosaic: !showBeforeAndAfterMosaic,\n });\n };\n\n return (\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperInline]: inline\n }) }>\n <RadioGroup\n name=\"degradationType\"\n value={ degradationType || null }\n onChange={ handleGroupTypeChange }\n className={ styles.radioGroup }\n >\n <FormControlLabel\n classes={{\n label: styles.radioLabel\n }}\n value=\"vector\"\n control={ <Radio className={ styles.radioInput } size=\"small\" color=\"primary\" /> }\n label={ formatMessage('mapbiomas.header.base_form.degradation_type.options.vector') }\n id=\"territorial-vector\"\n />\n <FormControlLabel\n classes={{\n label: styles.radioLabel\n }}\n value=\"crossing\"\n control={ <Radio className={ styles.radioInput } size=\"small\" color=\"primary\" /> }\n label={ formatMessage('mapbiomas.header.base_form.degradation_type.options.crossing') }\n id=\"landowner-crossing\"\n />\n </RadioGroup>\n </div>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_CLIENT_DATA = gql`\n query {\n app @client {\n activeModule\n activeModuleContent\n showBeforeAndAfterMosaic\n baseParams {\n groupType\n degradationType\n degradationFragmentationIsolationValue\n degradationCrossingValues {\n degradation_fragmentation_edge_area\n degradation_fragmentation_fragment_size\n degradation_fragmentation_isolation_medium_size\n degradation_fragmentation_isolation_distance\n degradation_fragmentation_isolation_big_size\n degradation_fire_frequency\n degradation_fire_time\n degradation_secondary_vegetation_age\n parsedParams\n }\n territoryType\n territorySubtype\n territoryValueType\n crossingEnabled\n crossingTerritoryType\n territory\n territories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n crossingTerritories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n crossing\n buffer\n yearRange\n }\n }\n }\n`;\n\nexport const GET_FRAGMENTATION_CLASS_TREES_DATA = gql`\n query GetFragmentationClassTreesData {\n degradation_fragmentation_edge_area: classTreeByKey(key: \"degradation_fragmentation_edge_area\") {\n id\n key\n i18nStrings {\n language\n stringValue\n __typename\n }\n mvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n i18nStrings {\n language\n stringValue\n __typename\n }\n classTreeNode {\n classe {\n classesTooltips {\n id\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n degradation_fragmentation_fragment_size: classTreeByKey(key: \"degradation_fragmentation_fragment_size\") {\n id\n key\n i18nStrings {\n language\n stringValue\n __typename\n }\n mvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n i18nStrings {\n language\n stringValue\n __typename\n }\n classTreeNode {\n classe {\n classesTooltips {\n id\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n }\n`;\n\n\nexport const GET_FIRE_CLASS_TREES_DATA = gql`\n query GetFireClassTreesData {\n degradation_fire_frequency: classTreeByKey(key: \"degradation_fire_frequency\") {\n id\n key\n i18nStrings {\n language\n stringValue\n __typename\n }\n mvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n i18nStrings {\n language\n stringValue\n __typename\n }\n classTreeNode {\n classe {\n classesTooltips {\n id\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n degradation_fire_time: classTreeByKey(key: \"degradation_fire_time\") {\n id\n key\n i18nStrings {\n language\n stringValue\n __typename\n }\n mvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n i18nStrings {\n language\n stringValue\n __typename\n }\n classTreeNode {\n classe {\n classesTooltips {\n id\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n }\n`;\n\nexport const GET_SECONDARY_VEGETATION_CLASS_TREES_DATA = gql`\n query GetSecondaryVegetationClassTreesData {\n degradation_secondary_vegetation_age: classTreeByKey(key: \"degradation_secondary_vegetation_age\") {\n id\n key\n i18nStrings {\n language\n stringValue\n __typename\n }\n mvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n i18nStrings {\n language\n stringValue\n __typename\n }\n classTreeNode {\n classe {\n classesTooltips {\n id\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n }\n`;\n","import React from 'react';\nimport _ from 'lodash';\nimport { useApolloClient, useQuery } from '@apollo/react-hooks';\n\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport ListSubheader from '@material-ui/core/ListSubheader';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport ActiveOptionsList from '../ActiveOptionsList';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport getCustomClient from '../../../../../../lib/getCustomClient';\n\nimport styles from './DegradationVectorControl.module.scss';\n\nimport {\n GET_BASE_CLIENT_DATA,\n GET_FRAGMENTATION_CLASS_TREES_DATA,\n GET_FIRE_CLASS_TREES_DATA,\n GET_SECONDARY_VEGETATION_CLASS_TREES_DATA,\n} from './query';\n\nconst mapDataKeyToQuery = {\n fragmentation: GET_FRAGMENTATION_CLASS_TREES_DATA,\n fire: GET_FIRE_CLASS_TREES_DATA,\n secondaryVegetation: GET_SECONDARY_VEGETATION_CLASS_TREES_DATA,\n};\n\nconst mediumSizeOptions = [\n { groupLabel: 'Isolamento - Alvo', groupKey: 'degradation_fragmentation_isolation_medium_size', id: 25, label: 'maior ou igual a 25ha' },\n { groupLabel: 'Isolamento - Alvo', groupKey: 'degradation_fragmentation_isolation_medium_size', id: 50, label: 'maior ou igual a 50ha' },\n { groupLabel: 'Isolamento - Alvo', groupKey: 'degradation_fragmentation_isolation_medium_size', id: 100, label: 'maior ou igual a 100ha' },\n];\n\nconst distanceOptions = [\n { groupLabel: 'Isolamento - Distância', groupKey: 'degradation_fragmentation_isolation_distance', id: 5, label: 'maior ou igual a 5km' },\n { groupLabel: 'Isolamento - Distância', groupKey: 'degradation_fragmentation_isolation_distance', id: 10, label: 'maior ou igual a 10km' },\n { groupLabel: 'Isolamento - Distância', groupKey: 'degradation_fragmentation_isolation_distance', id: 20, label: 'maior ou igual a 20km' },\n];\n\nconst bigSizeOptions = [\n { groupLabel: 'Isolamento - Fonte', groupKey: 'degradation_fragmentation_isolation_big_size', id: 100, label: 'maior ou igual a 100ha' },\n { groupLabel: 'Isolamento - Fonte', groupKey: 'degradation_fragmentation_isolation_big_size', id: 500, label: 'maior ou igual a 500ha' },\n { groupLabel: 'Isolamento - Fonte', groupKey: 'degradation_fragmentation_isolation_big_size', id: 1000, label: 'maior ou igual a 1000ha' },\n];\n\nexport default function DegradationVectorControl({\n label,\n dataKey,\n classTreeKeys,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const client = useApolloClient();\n const formatMessage = useFormatMessage();\n const { data: clientBaseData } = useQuery(GET_BASE_CLIENT_DATA);\n const { data: classTreesData, loading } = useQuery(mapDataKeyToQuery[dataKey], {\n client: getCustomClient('8.0')\n });\n const isFragmentation = dataKey === 'fragmentation';\n\n const baseParams = _.get(clientBaseData, 'app.baseParams');\n const degradationCrossingValues = _.get(baseParams, 'degradationCrossingValues');\n\n let parsedOptions = _(classTreeKeys)\n .map((classTreeKey) => {\n const classTreeData = _.get(classTreesData, `${ classTreeKey }[0]`);\n const nodes = _.get(classTreeData, 'mvClassTreeLevelsUi');\n const groupLabel = _.chain(classTreeData)\n .get('i18nStrings')\n .find({ language: locale })\n .get('stringValue')\n .value();\n \n return _.map(nodes, (node) => {\n return {\n groupLabel,\n groupKey: classTreeData.key,\n id: node.pixelValue,\n label: _.chain(node)\n .get('i18nStrings')\n .find({ language: locale })\n .get('stringValue')\n .value()\n };\n });\n })\n .flatten()\n .value();\n\n // TODO: Temp\n // if (isFragmentation) {\n // parsedOptions = [\n // ...parsedOptions,\n // ...mediumSizeOptions,\n // ...distanceOptions,\n // ...bigSizeOptions,\n // ];\n // }\n\n parsedOptions = _.groupBy(parsedOptions, 'groupLabel');\n\n const flattenOptions = _.flatten(_.values(parsedOptions));\n const activeOptions = _.compact(_.map(classTreeKeys, (classTreeKey) => {\n const classTreeKeyValue = Number(_.get(degradationCrossingValues, classTreeKey));\n \n if (classTreeKeyValue) {\n return _.find(flattenOptions, (option) => option.groupKey === classTreeKey && option.id === classTreeKeyValue);\n } else {\n return null;\n }\n }));\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params\n }\n }\n });\n };\n\n const updateClientAppBaseParamsState = (params) => {\n updateClientAppState({\n baseParams: {\n __typename: 'AppBaseParamsState',\n ...params\n }\n });\n };\n\n const handleSelectChange = (event) => {\n const newValue = event.target.value;\n const [classTreeKey, pixelValue] = _.split(newValue, '-');\n\n updateClientAppBaseParamsState({\n degradationCrossingValues: {\n ...degradationCrossingValues,\n [classTreeKey]: Number(pixelValue)\n }\n });\n };\n\n const handleRemove = (value) => {\n const [classTreeKey] = _.split(value, '-');\n updateClientAppBaseParamsState({\n degradationCrossingValues: {\n ...degradationCrossingValues,\n [classTreeKey]: null\n }\n });\n };\n\n return (\n <FormControl\n variant=\"outlined\"\n className={ styles.control }\n >\n <InputLabel id={ `select-${ dataKey }` }>{ label }</InputLabel>\n <Select\n labelId={ `select-${ dataKey }-label` }\n id={ `select-${ dataKey }` }\n value={ '' }\n onChange={ handleSelectChange }\n disabled={ loading }\n placeholder={ formatMessage('mapbiomas.header.base_form.year_range.placeholder') }\n >\n <MenuItem value=\"\" disabled>\n <em>Selecione as opções</em>\n </MenuItem>\n { _.map(parsedOptions, (data, group) => {\n return [\n <ListSubheader className={ styles.groupList }>{ group }</ListSubheader>,\n _.map(data, (option) => {\n const isActive = _.get(degradationCrossingValues, option.groupKey) === option.id;\n\n return (\n <MenuItem\n key={ `${ dataKey }-option-${ option.id }` }\n value={ `${ option.groupKey }-${ option.id }` }\n disabled={ isActive }\n >\n { option.label }\n </MenuItem>\n );\n })\n ];\n }) }\n </Select>\n { !_.isEmpty(activeOptions) &&\n <ActiveOptionsList\n categoryKey=\"groupLabel\"\n options={ activeOptions }\n customIdParam={ (option) => `${ option.groupKey }-${ option.id }` }\n onClear={ handleRemove }\n />\n }\n </FormControl>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n app @client {\n activeModule\n activeModuleContent\n headerIsVisible\n mapboxMode\n baseParams {\n classesViewMode\n activeClassTreeNodeIds\n activeObjectTreeNodeIds\n activeClassesLevelsListItems\n activeClassTreeOptionValue\n buffer\n degradationType\n degradationFragmentationIsolationValue\n degradationCrossingValues {\n degradation_fragmentation_edge_area\n degradation_fragmentation_fragment_size\n degradation_fragmentation_isolation_medium_size\n degradation_fragmentation_isolation_distance\n degradation_fragmentation_isolation_big_size\n degradation_fire_frequency\n degradation_fire_time\n degradation_secondary_vegetation_age\n }\n }\n }\n }\n`;\n\nexport const GET_MODULE_DATA = gql`\n query GetModulesData {\n modulesList {\n id\n key\n enabled\n isInBeta\n primaryColor\n secondaryColor\n iconUrl\n displayOrder\n\t\t\ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tsubmodules {\n id\n displayOrder\n key\n\t\t\t\tgeospatialObjectCategoryTree {\n id\n key\n geospatialObjectCategoryTreeLevels {\n id\n color\n positionInTree\n level\n parentId\n childrenIds\n i18nStrings {\n\t\t\t\t\t\t\tstringValue\n\t\t\t\t\t\t\tlanguage\n }\n\t\t\t\t\t\tgeometryCategory {\n\t\t\t\t\t\t\ti18nStrings {\n\t\t\t\t\t\t\t\tstringValue\n\t\t\t\t\t\t\t\tlanguage\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t}\n }\n i18nStrings {\n\t\t\t\t\t\tstringValue\n\t\t\t\t\t\tlanguage\n }\n }\n i18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n }\n }\n }\n }\n`;\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n i18nStrings {\n language\n stringValue\n }\n mvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n i18nStrings {\n language\n stringValue\n }\n classTreeNode {\n classe {\n classesTooltips {\n id\n }\n }\n }\n }\n }\n }\n`;\n","export default {\n 'degradation_fragmentation_edge_area': {\n path: 'edgeArea',\n paramKey: 'edgeSize'\n },\n 'degradation_fragmentation_fragment_size': {\n path: 'patchSize',\n paramKey: 'patchSize'\n },\n 'degradation_fragmentation_isolation': {\n path: 'isolation',\n paramKey: 'distance',\n },\n 'degradation_fragmentation_isolation_medium_size': {\n paramKey: 'mediumSize'\n },\n 'degradation_fragmentation_isolation_distance': {\n paramKey: 'distance'\n },\n 'degradation_fragmentation_isolation_big_size': {\n paramKey: 'bigSize'\n },\n 'degradation_fire_frequency': {\n path: 'fireFrequency',\n paramKey: 'fireFrequency'\n },\n 'degradation_fire_time': {\n path: 'fireAge',\n paramKey: 'fireAge'\n },\n 'degradation_secondary_vegetation_age': {\n path: 'secondaryVegetationAge',\n paramKey: 'secondaryVegetationAge'\n },\n};\n","import _ from 'lodash';\nimport qs from 'qs';\nimport { useEffect, useState } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport { GET_CLASS_TREE_DATA } from '../graphql/queries/general';\n\nimport getCustomClient from '../lib/getCustomClient';\n\nimport mapClassTreeToAPIParams from '../data/mapClassTreeToAPIParams';\n\nconst API_URL = 'https://dev-degradacao.geodatin.com/api/v1/degradation/brazil/maps/';\n\nexport function parseCrossingParams(values) {\n const crossingParams = _.reduce(_.omit(values, ['__typename', 'parsedParams']), (result, value, key) => {\n if (value) {\n result[_.get(mapClassTreeToAPIParams[key], 'paramKey')] = value;\n }\n\n return result;\n }, {});\n\n return qs.stringify(crossingParams, { arrayFormat: 'repeat' });\n}\n\nexport default function useCustomMapLayer(params) {\n const {\n activeYear,\n activeBaseClassTreeNodeIds,\n activeClassTreeNodeIds,\n activeClassTreeOptionValue,\n degradationType,\n degradationCrossingValues,\n degradationFragmentationIsolationValue,\n territories,\n } = params;\n const urlParams = mapClassTreeToAPIParams[activeClassTreeOptionValue];\n const isOnCrossingMode = degradationType === 'crossing';\n const degradationCrossingParsedParams = _.get(degradationCrossingValues, 'parsedParams');\n const hasBaseValueSelected = !_.isEmpty(activeBaseClassTreeNodeIds) || isOnCrossingMode;\n const { data: defaultClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'default'\n },\n client: getCustomClient('8.0'),\n });\n const { data: classTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: activeClassTreeOptionValue\n },\n client: getCustomClient('8.0'),\n skip: !activeClassTreeOptionValue,\n });\n const defaultClassTreeNodes = _.get(defaultClassTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const classTreeNodes = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const [url, setUrl] = useState(null);\n const [loading, setLoading] = useState(false);\n\n let parsedParams = {\n initiative: 'brazil',\n year: activeYear,\n pixelValues: _.map(activeClassTreeNodeIds, (nodeId) => (\n _.get(_.find(classTreeNodes, { id: nodeId }), 'pixelValue')\n )),\n colors: _.map(activeClassTreeNodeIds, (nodeId) => (\n _.get(_.find(classTreeNodes, { id: nodeId }), 'color')\n )),\n territoryIds: _.map(territories, 'id')\n };\n\n if (hasBaseValueSelected || degradationFragmentationIsolationValue) {\n const pixelValues = _.compact(_.map(activeClassTreeNodeIds, (nodeId) => (\n _.get(_.find(defaultClassTreeNodes, { id: nodeId }), 'pixelValue')\n )));\n const colors = _.map(pixelValues, (value) => (\n _.get(_.find(defaultClassTreeNodes, { pixelValue: value }), 'color')\n ));\n\n parsedParams = {\n ...parsedParams,\n pixelValues,\n colors,\n };\n }\n\n if (hasBaseValueSelected && !isOnCrossingMode) {\n parsedParams = {\n ...parsedParams,\n [_.get(urlParams, 'paramKey')]: _.map(activeBaseClassTreeNodeIds, (nodeId) => (\n _.get(_.find(classTreeNodes, { id: nodeId }), 'pixelValue')\n ))\n };\n }\n\n let mapUrl = `${ API_URL }${ _.get(urlParams, 'path') }?${ qs.stringify(parsedParams, { arrayFormat: 'repeat' }) }`;\n\n\n if (isOnCrossingMode && degradationCrossingParsedParams) {\n mapUrl = `${ API_URL }multiple?${ qs.stringify(parsedParams, { arrayFormat: 'repeat' }) }&${ degradationCrossingParsedParams }`;\n } else if (degradationFragmentationIsolationValue) {\n mapUrl = `${ API_URL }isolation?${ qs.stringify(parsedParams, { arrayFormat: 'repeat' }) }&${ degradationFragmentationIsolationValue }`;\n }\n\n useEffect(() => {\n if (_.includes(mapUrl, 'pixelValues')) {\n setLoading(true);\n fetch(mapUrl, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.json())\n .then((data) => {\n const layerURL = _.get(data, 'url');\n setUrl(layerURL);\n setLoading(false);\n });\n }\n }, [mapUrl]);\n\n return {\n loading,\n url\n };\n}\n","export default [\n 'soil',\n 'degradation',\n 'sentinel',\n 'fire',\n];\n","import React from 'react';\n\nimport styles from './Header.module.scss';\n\nexport default function ModuleIconComponent({\n moduleKey,\n}) {\n switch(moduleKey) {\n case 'coverage': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" height=\"512\" width=\"512\" fill=\"#555\"><path d=\"M75.511 308.515v-44.886c14.123-3.615 26.26-12.221 34.444-23.809v58.686c16.705-3.54 33.928-5.37 51.407-5.37 52.367 0 104.637 16.614 146.541 48.633 20.881-4.717 42.641-7.239 64.804-7.456V193.039L235.48 125.371 120.5 187.719c-2.455-42.223-13.65-95.769-35.323-133.698l-13.32-23.309H49.166L35.846 54.02C11.084 97.355 0 161.075 0 205.001c0 28.19 19.377 51.937 45.511 58.627v58.441c9.653-5.19 19.678-9.714 30-13.554zm138.154-59.304h-30v-30h30zm85.334 0h-30v-30h30zm158.129 95.868v-46.464c20.006-6.37 34.54-25.123 34.54-47.212 0-33.815-8.559-82.915-27.681-116.377l-11.149-19.512h-21.419l-11.15 19.512c-19.122 33.463-27.681 82.562-27.681 116.377 0 22.089 14.534 40.841 34.54 47.212v39.867c10.2 1.694 20.216 3.894 30 6.597zM512 401.321l-5.346-3.152c-37.594-22.164-82.833-33.879-130.827-33.879-13.434 0-26.695.937-39.659 2.771 24.599 25.959 40.33 55.182 52.506 90.975 3.914 11.506 6.701 23.251 6.701 23.251H512zm-224.935-37.673c-36.274-26.503-79.741-40.512-125.702-40.512C99.907 323.136 39.25 348.25 0 396.895v82.233c9.937-27.996 27.513-53.164 50.992-72.538 30.614-25.262 69.585-39.174 109.732-39.174s79.119 13.912 109.733 39.174c24.081 19.871 41.95 45.838 51.739 74.698h41.958l-4.307-14.943c-11.658-40.451-37.506-76.923-72.782-102.697zm-126.34 33.767c-33.197 0-65.386 11.476-90.639 32.314-17.038 14.059-30.281 31.806-38.74 51.559h258.758c-8.459-19.753-21.702-37.5-38.74-51.559-25.253-20.838-57.443-32.314-90.639-32.314z\"/></svg>\n );\n }\n case 'coverage_quality': {\n return (\n <svg className={ styles.moduleIcon } width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#555\"><path d=\"M6.5 10.5a4.5 4.5 0 0 1 3.597 7.205l-.147.184 2.83 2.83a.75.75 0 0 1-.976 1.134l-.084-.073-2.915-2.914A4.5 4.5 0 1 1 6.5 10.5ZM17.75 3a3.25 3.25 0 0 1 3.245 3.066L21 6.25v11.5a3.25 3.25 0 0 1-3.066 3.245L17.75 21h-3.768a1.74 1.74 0 0 0-.382-.864l-.113-.123-.512-.513h4.775c.153 0 .3-.02.442-.056l.139-.043-5.806-5.686a.75.75 0 0 0-.724-.188 5.471 5.471 0 0 0-.598-1.38 2.253 2.253 0 0 1 2.092.263l.15.117.13.116 5.821 5.702c.05-.14.084-.287.097-.44l.007-.155V6.25a1.75 1.75 0 0 0-1.606-1.744L17.75 4.5H6.25a1.75 1.75 0 0 0-1.744 1.606L4.5 6.25v3.625a5.488 5.488 0 0 0-1.272.704L3 10.757V6.25a3.25 3.25 0 0 1 3.066-3.245L6.25 3h11.5ZM6.5 12a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm8.752-5.5a2.252 2.252 0 1 1 0 4.504 2.252 2.252 0 0 1 0-4.504Zm0 1.5a.752.752 0 1 0 0 1.504.752.752 0 0 0 0-1.504Z\"/></svg>\n );\n }\n case 'temporal_analysis': {\n return (\n <svg className={ styles.moduleIcon } width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#555\"><path d=\"m28 2-.044 4.839c-1.963.197-6.885 1.458-11.133 6.502-.198-.276.215.244.025-.06C11.974 5.482 6.319 4.276 4 4.042V2H2v28h2v-3.954a14.886 14.886 0 0 0 9.933-3.948c4.551 5.374 11.303 5.94 14.001 5.94l.066-.001V30h2V2h-2Zm.015 8.384L28 20.045c-3.527-.049-6.605-1.005-9.001-3.595 3.779-4.645 7.308-5.861 9.016-6.066ZM3.958 22.711 4 10.141c1.325.464 4.207 1.951 8.13 9.011.189.342-.24-.289-.036.025-2.349 2.26-4.877 3.482-8.136 3.534Z\"/><path style={ { fill: 'none' } } d=\"M0 0h32v32H0z\"/></svg>\n );\n }\n case 'quality_of_pasture_data': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 556.012 556.012\" width=\"556.012\" height=\"556.012\" fill=\"#555\"><path d=\"M9.469 226.129c.992 5.573 2.358 11.102 2.999 16.712 1.428 12.501 3.949 25.108 3.362 37.543-.75 15.896-4.121 31.665-6.361 47.487l2.501-1.045 10.127 15.415-5.104 16.409 4.811-3.848 4.215 24.599 3.949-3.26 2.028 10.759 1.334-.073 2.093-8.45 1.995.074c10.18 30.791 22.595 59.535 25.063 90.584 0 0-1.787 5.594 2.191 8.127s44.847 2.893 48.462 0-8.604-17.14-17.683-21.049c-2.848-11.803-6.185-22.097-8.054-34.063-1.897-12.143-2.746-24.509-3.166-36.806-.424-12.379 4.063-23.301 10.897-33.758 5.161-7.899 8.886-16.883 12.273-25.757 3.566-9.344 5.479-19.319 9.041-28.662 3.007-7.887 6.846-8.025 13.472-2.596 6.756 5.541 13.337 12.146 21.196 15.271 9.649 3.84 20.518 4.688 30.906 6.577 6.075 1.106 12.26 2.57 18.356 2.407 18.601-.497 37.173-1.941 55.773-2.542 8.364-.269 14.093 4.194 15.602 12.433 2.272 12.402 2.848 25.141 5.528 37.438 2.677 12.272 2.203 24.99 8.417 36.903 6.691 12.828 9.295 27.394 4.762 41.951-1.049 3.37-3.721 6.772-6.605 8.771 0 0-3.383 16.961.478 20.82s24.112 2.411 35.202 1.448c0 0 27.968 5.786 39.058 2.412s5.304-10.127 4.341-13.982-8.494-4.794-8.494-4.794c-1.469-2.856-6.59-4.125-7.169-7.152-2.692-14.125-1.832-28.091 1.832-42.085 4.554-17.381 7.85-35.101 12.677-52.4 1.673-6.001 5.585-11.799 9.739-16.593 7.747-8.939 21.399-10.972 27.242-22.452.085-.167.412-.225.636-.302 11.29-3.986 16.124-13.081 19.295-23.771 1.656-5.585 4.06-10.959 6.287-16.36 6.585-15.981 19.185-27.262 31.31-38.695 3.664-3.452 10.024-6.748 14.55-6.079 13.929 2.057 27.564 5.569 41.302-.518.637-.281 1.444-.767 1.991-.591 9.837 3.174 18.339-.192 26.487-5.3 2.366-1.485 6.638-3.162 6.605-4.675-.147-6.752-.204-14.056-2.791-20.082-3.803-8.845-10.245-16.52-14.586-25.182-2.982-5.949-3.064-12.709-.6-19.56l4.757 1.648c9.172 3.301 15.745-1.979 14.827-11.473-.245-2.534.607-5.757 2.13-7.785 8.282-11.012 6.564-17.997-6.422-23.105-2.546-1-5.61-1.167-8.385-.975-5.198.359-10.354 1.261-14.586 1.812-2.791-3.929-4.325-8.278-7.303-9.796-4.99-2.538-8.075-5.112-6.517-10.2l-25.561-9.494 4.076-2.138-.734-2.008-22.697 6.908c.171 4.602-.094 9.298-7.308 8.817-1.15-.078-2.611 1.212-3.574 2.211-4.182 4.333-8.404 6.609-14.517 3.043-1.828-1.065-5.287-.245-7.638.657-7.144 2.742-13.293 7.165-22.064 6.096-6.116-.743-12.705 2.844-19.144 4.186-14.822 3.093-29.376 3.623-42.979-4.818-1.963-1.22-4.524-1.995-6.83-2.052-9.649-.229-19.318.171-28.964-.2-6.487-.249-12.938-1.383-19.4-2.154-3.239-.388-6.454-1.012-9.702-1.253-7.74-.571-15.888.327-23.113-1.86-5.985-1.812-12.228-1.318-16.634.11-10.016 3.248-19.56 2.468-28.69-.286-29.192-8.809-59.185-13.072-89.254-16.797-6.348-.759-11.358-3.089-16.369-6.181-3.75-2.318-7.177-5.235-11.383-2.126-4.851-1.249-10.392-2.974-14.521-1.273-5.757 2.371-13.386-.779-17.572 5.908-.171.269-1.347-.008-2.032-.151-7.928-1.648-14.305 2.656-19.854 6.769-6.393 4.741-12.632 7.229-20.126 5.5-3.321 4.133-2.644 11.122-9.861 11.42-.604.024-1.428 1.367-1.677 2.232-1.856 6.387-3.048 13.021-5.488 19.165-4.757 11.991-2.607 24.57-3.941 36.834-.4 3.664-.139 7.507.473 11.159l8.805 49.992zm308.183 185.289l1.926-.094c1.028 7.426 2.627 14.831 2.93 22.285.306 7.613 1.767 15.626-2.689 23.896-5.194-16.111-7.512-31.011-2.167-46.087z\"/></svg>\n );\n }\n case 'deforestation': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" height=\"512\" viewBox=\"0 0 510 510\" width=\"512\" fill=\"#555\"><path d=\"M454.6 354.76v-82.394H360v50.231c0 31.925 10.983 63.236 30.927 88.167l5.351 6.603h76.966c-12.365-19.716-18.644-40.721-18.644-62.607zM169.862 171.469l22.576-10.739 5.651 11.879 11.043 54.756h100.22l42.331-20.867-63.289-76.844-5.629-11.834 173.633-81.888-12.796-27.133-173.724 81.93-6.465-13.591-90.305 42.956 6.444 13.545-22.576 10.739zm-55.858 245.896l8.405-10.773A126.37 126.37 0 0 0 150 327.937v-55.571H65.4v82.394c0 21.886-6.28 42.891-18.644 62.606h67.248zm253.556 12.212c-24.241-30.303-37.56-68.27-37.56-106.98v-65.231H180v70.571c0 35.235-12.109 69.792-34.103 97.318l-37.668 48.282 36.886 27.664L205.8 454.52l25.707 42.845h46.986L304.2 454.52l60.685 46.681 37.764-28.323zm53.028 17.788l24.311 30H510v-30zm-329.989 0H0v30h67.193z\"/></svg>\n );\n }\n case 'regeneration': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" height=\"512\" viewBox=\"0 0 512.064 512.064\" width=\"512\" fill=\"#555\"><path d=\"M88.078 461.594v-78.096c0-55.851 18.314-108.449 52.962-152.106 33.609-42.349 80.867-72.763 133.07-85.64 18.372-4.532 36.413-9.309 53.839-14.246-13.8-37.668-34.814-75.291-62.634-112.047L250.586 0C209.763 44.617 163.82 87.948 110.19 132.418c-36.304 30.104-62.012 72.187-72.387 118.497-10.689 47.711-5.061 96.251 16.276 140.373zm382.735-317.338c-23.79 47.656-53.42 94.853-88.439 140.803-36.165 47.454-78.129 93.705-124.727 137.467-42.171 39.605-80.147 69.739-106.884 89.539h14.95c60.109 0 112.89-9.061 156.878-26.93 40.327-16.382 73.564-40.291 98.789-71.063 53.044-64.705 70.547-160.418 49.433-269.816zM358.774 266.532c35.514-46.642 65.26-94.538 88.715-142.803-30.479 11.572-62.678 22.378-96.007 32.206v.001l-.3.088-13.803 4.07-.023-.074a1661.52 1661.52 0 0 1-56.06 14.859c-45.789 11.295-87.254 37.988-116.757 75.163-30.395 38.299-46.46 84.447-46.46 133.457v115.253c28.719-20.464 73.161-54.962 119.546-98.576 45.301-42.596 86.061-87.56 121.149-133.644z\"/></svg>\n );\n }\n case 'infrastructure': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 490.003 490.003\" fill=\"#555\"><path d=\"M154.232 395.955V242.162h11.929c5.091 0 9.212-4.361 9.212-9.74v-5.682c0-5.38-4.121-9.738-9.212-9.738H86.15c-5.089 0-9.213 4.358-9.213 9.738v5.682c0 5.379 4.124 9.74 9.213 9.74h11.929v153.794h56.153zM273.078 395.955V242.162h11.929c5.09 0 9.212-4.361 9.212-9.74v-5.682c0-5.38-4.122-9.738-9.212-9.738h-80.011c-5.089 0-9.213 4.358-9.213 9.738v5.682c0 5.379 4.124 9.74 9.213 9.74h11.929v153.794h56.153zM391.925 395.955V242.162h11.929c5.09 0 9.212-4.361 9.212-9.74v-5.682c0-5.38-4.122-9.738-9.212-9.738h-80.011c-5.089 0-9.213 4.358-9.213 9.738v5.682c0 5.379 4.124 9.74 9.213 9.74h11.929v153.794h56.153zM473.206 450.001h-6.205v-20.016c0-9.383-7.521-16.984-16.795-16.984H39.794c-9.276 0-16.793 7.602-16.793 16.984v20.016h-6.207c-9.276 0-16.793 7.602-16.793 16.984v23.016h490v-23.016c0-9.382-7.52-16.984-16.795-16.984zM20.001 201.001h450a19.999 19.999 0 0 0 19.043-13.889 20 20 0 0 0-7.404-22.376l-225-161A19.98 19.98 0 0 0 245.001.001a19.98 19.98 0 0 0-11.639 3.735l-225 161a19.997 19.997 0 0 0-7.404 22.376 20 20 0 0 0 19.043 13.889z\"/></svg>\n );\n }\n case 'irrigation': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" width=\"682.667\" height=\"682.667\" viewBox=\"0 0 512 512\" preserveAspectRatio=\"xMidYMid meet\"><path d=\"M248.8 19.1c-2.3 1.2-4.6 3.5-5.8 5.9-1.9 3.8-2 5.8-2 75 0 69.3.1 71.2 2 75 2.3 4.5 8 8 13 8s10.7-3.5 13-8c1.9-3.8 2-5.7 2-75s-.1-71.2-2-75c-3.7-7.3-12.7-9.9-20.2-5.9zM82.2 87.7c-1.3.3-4.1 2.2-6.2 4.3-4.7 4.7-5.9 9.9-3.5 15.6 1.1 2.8 15.3 17.7 49.3 51.8l51.6 50.7c7.1 5.3 16.9 3.6 21.7-3.7 3-4.6 2.6-12.2-1-17-1.6-2.1-24.6-25.6-51.2-52.1C90 84.7 91.5 85.9 82.2 87.7zm337.3 1.2c-2.6 1.2-20.7 18.7-52.6 50.7L316.6 191c-2.2 3.4-2.1 11.7.3 15.4 4.8 7.3 14.6 9 21.7 3.7 2.1-1.6 25.6-24.6 52.1-51.2C433 116.3 439 110 440 106.3c3.2-12.4-9.1-22.9-20.5-17.4zM7.8 259.1C3.5 261.3 0 267.2 0 272c0 5 3.5 10.7 8 13 3.8 1.9 5.7 2 75.5 2s71.7-.1 75.5-2c4.5-2.3 8-8 8-13s-3.5-10.7-8-13c-3.8-2-5.7-2-75.7-2-69.5.1-71.9.2-75.5 2.1zm203 0c-4.3 2.2-7.8 8.1-7.8 12.9 0 7.4 7.4 15 14.6 15h2.7l-.5 13-.5 13h36.9H293v-13c0-12.4.1-13 2-13 6.7 0 14-7.9 14-15 0-5-3.5-10.7-8-13-3.7-1.9-5.8-2-45.2-2-39.1.1-41.5.2-45 2.1zm142 0c-4.3 2.2-7.8 8.1-7.8 12.9 0 5 3.5 10.7 8 13 3.8 1.9 5.7 2 75.5 2s71.7-.1 75.5-2c4.5-2.3 8-8 8-13s-3.5-10.7-8-13c-3.8-2-5.7-2-75.7-2-69.5.1-71.9.2-75.5 2.1zm-150 86c-7 3.7-7.8 6.7-7.8 30.9 0 19.2.2 21.4 2 25 2.7 5.3 8 8 16 8h6v28 28h-47c-45.2 0-47.2.1-51 2-4.5 2.3-8 8-8 13s3.5 10.7 8 13c3.9 2 5.6 2 135 2s131.1 0 135-2c4.5-2.3 8-8 8-13s-3.5-10.7-8-13c-3.8-1.9-5.8-2-51-2h-47v-28-28h6c8 0 13.3-2.7 16-8 1.8-3.6 2-5.8 2-25s-.2-21.4-2-25a13.4 13.4 0 0 0-6-6c-3.8-1.9-5.7-2-53.2-2-47.1.1-49.5.2-53 2.1z\"/></svg>\n );\n }\n case 'fire': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" height=\"512\" viewBox=\"0 0 512.081 512.081\" width=\"512\" fill=\"#555\"><path d=\"m327.422 490.31c18.552-37.104 40.66-100.284 9.776-127.528-28.468 4.275-51.488 4.301-70.218.096-47.164-10.59-62.093-47.957-49.108-95.81-63.456 57.989-66.135 143.494-42.611 225.83 3.821 13.375-11.15 24.33-22.743 16.602-3.948-2.632-96.68-65.567-96.68-162.481 0-158.769 180-165.6 180-332 0-12.711 14.894-19.668 24.641-11.492 71.928 60.337 202.812 205.378 195.467 338.776-3.641 66.132-39.57 122.385-106.788 167.197-12.714 8.473-28.59-5.483-21.736-19.19z\"/></svg>\n );\n }\n case 'scenarios': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 341.333 341.333\" fill=\"#555\"><path d=\"M128 128h85.333v85.333H128zM0 0h85.333v85.333H0zm128 256h85.333v85.333H128zM0 128h85.333v85.333H0zm0 128h85.333v85.333H0zM256 0h85.333v85.333H256zM128 0h85.333v85.333H128zm128 128h85.333v85.333H256zm0 128h85.333v85.333H256z\"/></svg>\n );\n }\n case 'water': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 511.999 511.999\" fill=\"#555\"><path d=\"M434.927 191.435l-.772-1.045-.153-.306-70.11-104.078-70.111 104.079-.146.292-.779 1.059c-11.25 15.236-17.196 33.337-17.196 52.348 0 48.652 39.581 88.231 88.231 88.231s88.231-39.58 88.231-88.231c.002-19.012-5.945-37.115-17.195-52.349zm-71.034 170.642c-65.228 0-118.293-53.066-118.293-118.293 0-25.356 7.899-49.517 22.846-69.895l46.089-68.419L243.484 0 95.449 219.753c-23.275 31.674-35.574 69.228-35.574 108.636 0 101.243 82.367 183.61 183.61 183.61 95.929 0 174.899-73.951 182.925-167.838a117.56 117.56 0 0 1-62.517 17.916z\"/></svg>\n );\n }\n case 'mining': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" height=\"512\" viewBox=\"0 0 122.49 122.88\" width=\"512\" fill=\"#555\"><path d=\"M101.12 37.47c14.95 18.54 22.23 40.44 21.28 60.48-6.91-16.93-17.64-34.09-31.87-49.9l-4.77 4.77a1.39 1.39 0 0 1-1.96 0L68.72 37.75a1.39 1.39 0 0 1 0-1.96l4.63-4.63C57.16 17.12 39.68 6.67 22.54.2c20.2-1.52 42.5 5.45 61.44 20.33l2.09-2.09a1.39 1.39 0 0 1 1.96 0l15.08 15.08a1.39 1.39 0 0 1 0 1.96l-1.99 1.99h0zm-32.96 5.04l12.22 12.22-65.64 65.64a8.67 8.67 0 0 1-12.22 0h0a8.67 8.67 0 0 1 0-12.22l65.64-65.64h0z\"/></svg>\n );\n }\n case 'sentinel': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" width=\"682.667\" height=\"682.667\" version=\"1.0\" viewBox=\"0 0 512 512\"><path d=\"M132.7 30.7c-17 17-31.5 32.1-32.2 33.7-.7 1.7-1.1 3.7-.8 4.5.3.9 23.1 24.2 50.7 51.8 46.3 46.5 50.3 50.3 53.5 50.3 2.9 0 4.9-1.6 17.5-14l14.2-13.9 12.7 12.7 12.7 12.7-20.6 20.6-20.6 20.6 7 2.2c33.1 10 61.9 38.9 72.3 72.6l2.4 7.5 20.7-20.7 20.8-20.8 12.5 12.5 12.4 12.4-13.9 14.2c-12.4 12.6-14 14.6-14 17.5 0 3.2 3.8 7.2 50.3 53.5 27.6 27.6 50.9 50.4 51.8 50.7.8.3 2.8-.1 4.5-.8 1.6-.7 17-15.4 34.2-32.7 26.7-26.9 31.2-31.9 31.2-34.4s-6.9-9.8-50.8-53.6c-43.1-43.1-51.1-50.8-53.6-50.8-2.2 0-5.2 2.4-15 12l-12.2 11.9-12.4-12.4-12.5-12.5 34.7-34.7c38.2-38.4 38.2-38.4 35.8-47.6-1-3.6-5.3-8.3-32.8-36-34-34.1-36.1-35.7-43.9-34.2-2.1.4-5.1 1.5-6.8 2.5-1.6 1.1-17.8 16.8-36 35l-33 33-12.7-12.7-12.7-12.7 11.9-12.2c9.6-9.8 12-12.8 12-15 0-2.4-7.7-10.6-50.2-53.1C172.3.8 171.5 0 167.6 0c-3.9 0-4.8.8-34.9 30.7zM177.3 225.4c-14.1 2.7-25.9 7.5-36.3 14.7-8.9 6.2-9.9 7.2-10.6 10.7-.7 3.4-.2 3.8 62.2 66.3 34.6 34.6 63.7 63.2 64.7 63.5 7.6 2.4 21.6-19.2 27.4-42.4 2.7-10.5 2.4-32.3-.6-43.2-2.8-10.5-8.7-23.2-14.5-31.3-5.1-7.2-17-18.9-23.9-23.6-7.4-5-20.2-10.7-29.7-13.1-10.8-2.8-28.6-3.5-38.7-1.6zM5.3 312.5c-4.1 1.8-5.3 4.2-5.3 10.8 0 39.5 16.8 85.3 43 117.2 26.5 32.2 61.4 54.4 102 64.7 18.5 4.6 45.5 7.2 50.2 4.7 2.8-1.5 5-7.2 3.9-10.1-1.9-4.9-3.8-5.6-19.1-6.7-24.8-1.9-43.3-6.8-64.6-17.1-35.6-17.3-63.9-45.6-80.8-81-10.1-21.3-14.9-39.6-16.7-64.3-1-12.4-1.4-14.5-3.2-16.3-3-3-5.6-3.5-9.4-1.9z\"/><path d=\"M57.3 312.5c-5.3 2.3-5.9 4.8-4.5 19.3 5.4 59.4 46.3 107.7 103.8 122.7 12.3 3.2 33.6 5.3 37.7 3.6 3.5-1.4 6.1-7 4.8-10.3-1.8-4.7-4-5.6-16.7-6.7-30.9-2.7-55.6-14.1-77-35.5-21.5-21.4-32.8-46-35.5-77-.8-10.4-1.3-12.4-3.2-14.2-3.1-3-5.7-3.5-9.4-1.9z\"/><path d=\"M109.2 312.5c-4.4 1.9-5.5 5.4-4.8 14.3 3.8 42.7 37.1 76 79.8 79.8 4.5.3 8.4.2 10.1-.5 3.5-1.3 6.1-7 4.8-10.3-1.8-4.6-4.4-5.9-14.3-6.8-34-3.3-59.5-28.9-62.8-62.9-.7-7.9-1.3-9.8-3.2-11.7-3.2-3-5.7-3.6-9.6-1.9z\"/></svg>\n );\n }\n case 'soil': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" width=\"682.667\" height=\"682.667\" version=\"1.0\" viewBox=\"0 0 512 512\"><path d=\"M64.3 1.5C47.1 6.2 34.3 19.8 31 36.9c-1.4 7.4-1.3 70.5.1 77.3 2.7 12.8 12.2 25.4 23.7 31.2L60 148v32.9l-25.4.3c-23.9.3-25.6.4-28.3 2.4-5.9 4.3-6.3 6.5-6.3 33.1V241h70.8c72.2 0 83.9.5 105.8 4.1 31.6 5.2 53.7 12.5 91.9 30.2 28.5 13.3 58.8 21.6 89.4 24.7 6 .6 40.3 1 82.2 1H512v-24c0-22.2-.2-24.4-2-28-1.3-2.6-3.4-4.7-6-6-3.6-1.8-5.8-2-28-2h-24v-32.5l5.5-2.9c11.4-6 21.2-19 23.5-31.5.5-2.9 1-20.5 1-39 0-36.7-.6-42-5.7-51.4-8.8-16-28.8-25.9-46.3-22.9-17.3 3.1-31 15-36.1 31.3-1.7 5.5-1.9 9.6-1.9 43.4 0 34.3.2 37.8 2 43.7 3.5 11.5 11.8 21.3 22.5 26.5l5.5 2.7V241h-25.7c-55.1 0-87.3-7-134.6-29.1-17.6-8.2-30-13.1-42.9-17.1l-7.8-2.3v-44.4l6-3.2c11.2-5.9 20.2-18.1 22.9-30.7 1.4-6.8 1.5-69.9.1-77.3-4.8-25.5-30.6-41.9-55.5-35.4-12.6 3.3-24 12.9-29.8 25.2l-3.2 6.8-.3 39.4c-.3 37.3-.2 39.8 1.7 46.2 3.5 11.4 13.8 23 24.5 27.4l3.6 1.5v37.3l-5.2-.8c-2.9-.4-8-1.1-11.3-1.6-3.3-.5-21.4-1.2-40.2-1.6l-34.3-.5v-32.7l4.3-1.9c10.9-5 20.2-15.6 23.8-27.1 1.9-6.4 2-8.9 1.7-46.2l-.3-39.4-3.2-6.8c-3.8-8-12.2-17.3-19.1-21-10-5.4-22.4-7-32.9-4.2zM0 346.5V422h512v-90.9l-78.7-.4c-75.8-.3-79.3-.4-92.8-2.6-33.8-5.4-58.8-13.2-92.4-29.1-24.7-11.6-41.4-17.3-65.7-22.4-24.1-5-35.3-5.6-111.9-5.6H0v75.5zM81.5 303c7.6 3.7 10.8 13.7 6.5 20.8-5.2 8.4-16.2 9.7-23.2 2.7-6.2-6.1-5.8-16 .7-21.2 5.8-4.7 9.9-5.2 16-2.3zm91.8 33.9c12.9 8.5 7.3 27.1-8.1 27.1-8.2 0-14.2-6.4-14.2-15.3 0-10.4 13.6-17.6 22.3-11.8zM444.7 364c6.1 3.7 8.8 13 5.5 19-5.9 10.9-21.1 10.7-26.8-.2-2.1-4-1.4-12 1.2-15 5.3-5.9 14-7.6 20.1-3.8zM0 476c0 22.2.2 24.4 2 28 1.3 2.6 3.4 4.7 6 6 3.9 2 5.3 2 248 2s244.1 0 248-2c2.6-1.3 4.7-3.4 6-6 1.8-3.6 2-5.8 2-28v-24H0v24z\"/></svg>\n );\n }\n case 'degradation': {\n return (\n <svg className={ styles.moduleIconDegradation } xmlns=\"http://www.w3.org/2000/svg\" version=\"1.0\" viewBox=\"0 0 512 512\"><path d=\"M22.6 46c-2.5 2.7-4.6 5.8-4.6 7 0 1.1 3.3 5.7 7.2 10.2 27.7 31.6 74.5 84.7 76.4 86.9l2.4 2.5-6.9 107.5c-3.8 59.1-6.8 107.5-6.6 107.7.1.1 19 .1 42.1 0l41.9-.3-3.2-50c-1.8-27.5-3.2-51.9-3-54.1.2-3.9 2.2-6.4 35.7-44.5 39.8-45.1 41-46.6 41-48.7 0-2-10.3-12.2-12.3-12.2s-2.3.3-37.5 31.3c-16.2 14.2-29.6 25.6-29.9 25.3-.3-.3-2.7-33.8-5.3-74.5-3.3-52.5-5.1-74.5-6-75.6-1-1.3-4.5-1.5-21.6-1.5-24.8 0-22.9-1.4-23.9 18-.4 7.4-1 16.1-1.3 19.2l-.7 5.7-36.8-32.5C40.2 47.5 32.3 41 30 41c-2 0-4 1.3-7.4 5zM22.1 383.3c-1.3.6-3.2 2.3-4.3 3.7-1.7 2.3-1.8 4.3-1.6 22.3l.3 19.8 10.2-21.8c5.6-12 10.5-22.6 10.9-23.6.5-1.5-.1-1.7-6.2-1.7-3.8 0-8 .6-9.3 1.3zM73 382.4c0 .3 13.5 9.8 30.1 21.1 18.5 12.8 30.7 20.5 31.7 20.3 1.8-.5 66-39.3 67.7-40.9.5-.5-24.9-.9-64.3-.9-35.9 0-65.2.2-65.2.4zM242 382.6c0 .4 6.4 11.2 14.2 24l14.1 23.4 9.1-.5c5-.4 20.5-1.2 34.5-2 21.6-1.2 25.7-1.7 27.5-3.2 1.7-1.5 41-36.7 45.6-41 1.2-1.1-10.5-1.3-71.8-1.3-40.3 0-73.2.3-73.2.6zM421.2 383c.2.6 7.5 10.8 16.3 22.6l15.9 21.4 21-10.9 21.1-10.9.3-8c.3-7.7.1-8.2-2.7-11.4l-2.9-3.3-34.7-.3c-25-.2-34.6 0-34.3.8zM185.5 409.6c-22 13.5-39.9 24.7-39.8 24.9.2.3 13.8 13.3 30.2 29l30 28.5h38l1.2-4.3c.6-2.3 4-14.4 7.5-26.9l6.4-22.7-16.1-26.6c-8.9-14.6-16.4-26.5-16.8-26.4-.3 0-18.6 11.1-40.6 24.5zM49.2 392.2c-1.6 3.5-9.7 20.8-18.1 38.5L16 463v22.2l3.4 3.4 3.4 3.4h72.8l3.6-7.2c2.1-4 8.6-16.8 14.6-28.4l10.9-21.1-35.5-24.4c-19.5-13.4-35.8-24.5-36.3-24.7-.4-.2-2.1 2.5-3.7 6zM377.5 410.5c-14.8 13.4-27.1 25.2-27.2 26.2-.1 1 1.7 13.7 4 28.3l4.2 26.5 30.6.3 30.5.2 11.8-27.4c7.3-17.1 11.5-28 11-28.8-2.2-3.6-36.6-49.3-37.2-49.5-.4-.1-12.8 10.8-27.7 24.2zM475.5 431.1l-19 10-10.7 25.2-10.6 25.2 26.1.3c16.8.1 27.1-.1 28.8-.8 5.7-2.4 5.9-3.9 5.9-38.4 0-17.4-.3-31.6-.7-31.5-.5 0-9.3 4.6-19.8 10zM303.2 442c-16.6.9-30.6 2.1-31.1 2.6-.9.9-13.1 44.1-13.1 46.2 0 .9 10.4 1.2 42.5 1.2H344l-.1-2.3c0-1.2-1.7-12.8-3.7-25.7-2.9-18.1-4.1-23.5-5.2-23.6-.8-.1-15.1.6-31.8 1.6zM123.6 468c-6.5 12.7-11.6 23.3-11.4 23.6.3.2 16.8.3 36.8.2l36.2-.3-24.2-23c-13.3-12.7-24.6-23.1-24.9-23.3-.4-.1-6 10.2-12.5 22.8zM280.1 141.718c-1.7.8-3.8 2.5-4.7 3.8-5.2 8.2-6.8 31.8-2.7 42 6.1 15.6 24 25.7 45.3 25.8 7.1 0 8-.2 10.8-2.8 4.5-4.1 7.3-16.2 6.8-29.7-.3-9-.7-10.9-3.6-16.7-3.7-7.7-10.1-14-17.5-17.3-11-5.1-28.6-7.7-34.4-5.1zM385.2 287.818c-8.6 2.3-20.2 8.2-24.3 12.3-2.3 2.2-2.9 3.7-2.9 7 .1 5.3 4.5 16.6 9.4 23.9 10.3 15.6 24.6 22 41.5 18.4 9.7-2 22.9-8.5 27.1-13.2 3-3.4 3.2-4.1 2.6-8.7-.8-7.1-8.5-22.3-14.6-29.1-10.2-11-23.6-14.7-38.8-10.6zM272.9 268.618c-24.2 4.2-39.4 17.9-41.4 37.1-1.2 11.6 4 31 9.7 36.5 2.4 2.3 3.7 2.7 7.9 2.6 12.1-.2 28.7-7 36.6-15 2.6-2.6 5.9-7.2 7.3-10.2 2.4-5 2.6-6.6 2.6-17.5-.1-11.3-.3-12.6-3.5-20.9-4.8-12.2-8.4-14.5-19.2-12.6zM565 179.718c-12 3.7-22.2 14.5-28.7 30.6-4.1 10.2-4.2 13.4-.3 17.9 4 4.5 17.8 11.2 27.1 13.2 19.7 4.2 35.7-5 46.1-26.3 5.3-11 6.1-17.7 2.7-21.6-3.6-4-13.5-9.5-22.2-12.2-7.9-2.5-19.2-3.2-24.7-1.6z\" /></svg>\n );\n }\n case 'coral_reef': {\n return (\n <svg className={ styles.moduleIcon } xmlns=\"http://www.w3.org/2000/svg\" width=\"682.667\" height=\"682.667\" version=\"1.0\" viewBox=\"0 0 512 512\"><path d=\"M207.4 39.9c-7.6 3.5-12.6 12.6-12.6 22.9.1 7.4.6 11.6 3.3 23.4 3.4 14.5.3 16.2-13.1 7.3-9.6-6.4-13.4-7.4-19.4-5.1-8.2 3.1-13 11.6-12.9 22.7 0 8.5 3.3 14.9 12.4 24.1 15 15 36.6 20.4 55.2 13.7 5.2-1.8 7.2-2.1 9.4-1.3 2.8.9 2.8 1 3.1 10.9.4 13.4-1.5 21.4-8.7 36.1-8.4 17.1-9.2 20.4-9.8 37.5-.5 12.9-.2 16.1 2.1 28.1 3 15.4 3.3 23.5 1.1 26.4-1.5 1.8-1.6 1.8-4.1-1.1-1.4-1.7-4.6-6.1-7.1-9.8-8.5-12.9-12.7-25-14.7-42.2-1.8-15-4.6-22.1-10.2-25.6-7.8-4.8-18.2-1.2-23.1 8-2.1 4-2.3 5.7-2.3 17.3 0 7-.3 12.8-.7 12.8-1.9 0-11.2-8.1-15.5-13.4-2.6-3.3-6-6.7-7.5-7.8-3.4-2.2-11.2-2.4-15.1-.4-10 5.2-14.7 21.8-9.2 32.6 5.6 11.1 17.5 24.6 28 31.7 6.7 4.5 16 9 24.7 11.8 4.3 1.4 8.7 3.2 9.9 4 1.2.7 4.7 5.2 7.7 9.8 7.4 11 19 21.9 30 28.1 8.3 4.6 13.7 9.3 13.7 11.9 0 .7 1.1 10.6 2.5 22.2 1.4 11.5 2.5 23.3 2.5 26.1 0 2.8.3 6.6.6 8.3l.7 3.1h44.4l.6-6.5c.8-8.7 2.4-11.3 10.9-18.3 8.4-6.8 20.3-18.9 27.7-28 6.2-7.5 5.9-7.4 25.1-3.2 15 3.3 19.5 3.6 24.3 1.6 4.5-1.8 28.6-26.6 31.6-32.4 3.2-6.3 4-17.9 1.7-24.9-4-12.1-15.6-19.2-26.4-16.2-3.6 1-6.7 3.3-14.3 10.6l-9.8 9.3h-11.4c-9.1 0-13.6.5-21.3 2.6-17.6 4.5-18.7 5.2-36.7 24.2-6.7 7.1-8 8.1-9.7 7.2-3.7-2-3.5-5.5.8-16.3 5.2-13.4 6.6-19.4 6.6-29.7 0-10.8-2.1-18.6-8.4-31.6-2.8-5.6-5-11-5-12.1 0-1 1.1-4.2 2.5-7 2.8-5.5 4.7-6.7 12.5-7.9 7.9-1.2 17.3-4.5 24.5-8.7 10.3-6 13.7-6 27.7-.3 6.3 2.5 13.5 4.9 15.9 5.2 5.1.7 45.4-2.3 51.4-3.8s11.9-8 14-15.3c3.5-11.7.4-23.3-7.8-29.9-3.8-3-4.2-3.1-13.5-3-8.1.1-11.3.6-19.3 3.2-9.7 3.2-14.3 3.9-15.3 2.3-.8-1.2 4.3-8.7 10.6-15.6 7.5-8.2 9.1-11.6 9.2-19.5 0-7.9-1.6-13-5.7-17.7-5.6-6.4-12.8-7.9-20.3-4.3-4 2-5.3 3.5-11.9 14-4 6.3-14.9 17.4-21.3 21.7-5.3 3.5-15 7.8-15.8 7-.2-.2 2.5-4.1 6.1-8.6 7.1-9 15.5-22.2 20.5-32.1 5-9.9 15.6-38.5 17.5-47.4 2.1-9.6 1.6-21-1.3-27.6-7.1-16.5-28.1-17.5-37.2-1.8-1.6 2.9-3.2 7.3-3.5 9.8-2.2 18-8 33.2-17.1 44.2-9.7 11.9-18.5 11.3-28.7-1.7-7.5-9.6-12.4-20.6-14.7-33-4.5-24-7-29.1-16.2-33-4.9-2-9.4-1.9-14.4.4zM408 57.6c-16 6.9-15.9 29.1.2 35.9 13 5.4 27-5.8 25.6-20.5-1.2-12-14.9-20.1-25.8-15.4zM46.8 67.4c-5.6 2-8.5 4.2-11.3 8.5-5 7.5-4.2 18.9 1.7 25.7 11.8 13.4 33.4 8.5 37.9-8.8 4.4-16.6-11.9-31.2-28.3-25.4zM457.5 125.4c-10.2 4.6-13 17.1-5.8 25.7 7.3 8.6 20.4 7.3 26-2.6 7.5-13.3-6.4-29.2-20.2-23.1zM77.8 156c-5.4 2.9-8.1 7.3-8.6 13.9-.4 6.5 1.9 10.9 7.7 14.8 4 2.7 11.6 3.1 16 .8 6.8-3.5 10.9-12 9-18.8C99 156.2 87.4 151 77.8 156zM143.1 431.4c-4.7 1.7-10.8 7.1-13.1 11.6-1.5 3-2 5.9-2 12.3 0 9.6 1.9 13.6 8 16.8 3.3 1.8 8.5 1.9 121.4 1.9h117.9l4.2-2.5c5.4-3.1 7.5-7.5 7.5-15.5 0-11.3-4-18.8-12.3-23.3l-4.2-2.2-112-.2c-86.3-.1-112.8.1-115.4 1.1z\" /></svg>\n );\n }\n default: {\n return null;\n }\n };\n}\n","import React, { useEffect, useState, Fragment } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { useApolloClient, useQuery } from '@apollo/react-hooks';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport _ from 'lodash';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport BarChartIcon from '@material-ui/icons/BarChart';\nimport BookmarkIcon from '@material-ui/icons/Bookmark';\nimport Button from '@material-ui/core/Button';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport TranslateIcon from '@material-ui/icons/Translate';\nimport ViewListIcon from '@material-ui/icons/ViewList';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport TabList from '../../components/TabList';\n\nimport BaseForm from './components/BaseForm';\nimport GenericClasses from './components/GenericClasses';\nimport GeospatialObjects from './components/GeospatialObjects';\nimport TransitionClasses from './components/TransitionClasses';\nimport QualityClasses from './components/QualityClasses';\nimport TranslateOptionsBox from './components/TranslateOptionsBox';\nimport InstitutionalMenu from './components/InstitutionalMenu';\nimport AccountMenu from './components/AccountMenu';\nimport DegradationViewModeControl from './components/DegradationViewModeControl';\nimport DegradationVectorControl from './components/DegradationVectorControl';\n\nimport {\n GET_BASE_DATA,\n GET_MODULE_DATA\n} from './query';\n\nimport useFormatMessage from '../../../../hooks/useFormatMessage';\nimport useWindowSize from '../../../../hooks/useWindowSize';\nimport usePrevious from '../../../../hooks/usePrevious';\n\nimport { parseCrossingParams } from '../../../../hooks/useCustomMapLayer';\n\nimport logo from './logo.svg';\nimport logoFire from './logo-mapbiomas-fogo.png';\nimport logoSentinelPT from './10-metros-pt-br-horizontal.svg';\nimport logoSentinelEN from './10-metros-en-horizontal.svg';\nimport logoDegradation from './logo-mapbiomas-degradation.svg';\n\nimport initialBaseParams from '../../../../data/initialBaseParams';\nimport mapActiveModuleToDefaultParams from '../../../../data/mapActiveModuleToDefaultParams';\nimport customClientModules from '../../../../data/customClientModules';\n\nimport getCustomClient from '../../../../lib/getCustomClient';\n\nimport ModuleIconComponent from './ModuleIconComponent';\n\nimport styles from './Header.module.scss';\n\nconst NEW_MODULE_KEYS = [];\n\nconst BETA_MODULE_KEYS = [\n 'sentinel',\n 'soil',\n 'degradation',\n 'coral_reef'\n];\n\nfunction hexToRgb(hex) {\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n hex = hex.replace(shorthandRegex, function(m, r, g, b) {\n return r + r + g + g + b + b;\n });\n\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\n// TODO: Remove these mappers when the saved user maps are updated with the new keys\n\nfunction mapNewModuleListKeyToOldKey(key) {\n return {\n coverage: 'coverage',\n quality_of_pasture_data: 'quality_of_pasture_data',\n }[key] || key;\n}\n\nfunction mapOldModuleListKeyToNewKey(key) {\n return {\n landUseAndCover: 'coverage',\n pastureQuality: 'quality_of_pasture_data',\n }[key] || key;\n}\n\nfunction getModuleItemClassName(key) {\n const parsedKey = mapNewModuleListKeyToOldKey(key);\n\n const mapModuleKeyToClassName = {\n 'coverage': 'menuBarListItemCoverage',\n 'coverage_quality': 'menuBarListItemCoverageQuality',\n 'temporal_analysis': 'menuBarListItemTrajectories',\n 'quality_of_pasture_data': 'menuBarListItemQualityOfPastureData',\n 'deforestation': 'menuBarListItemDeforestation',\n 'regeneration': 'menuBarListItemRegeneration',\n 'infrastructure': 'menuBarListItemInfrastructure',\n 'irrigation': 'menuBarListItemIrrigation',\n 'fire': 'menuBarListItemFire',\n 'scenarios': 'menuBarListItem',\n 'mining': 'menuBarListItemMining',\n 'sentinel': 'menuBarListItemSentinel',\n 'soil': 'menuBarListItemSoil',\n 'degradation': 'menuBarListItemDegradation',\n 'coral_reef': 'menuBarListItemCoralReef',\n };\n\n return mapModuleKeyToClassName[parsedKey];\n}\n\nconst mapLocaleKeyToAbbreviation = {\n 'pt-BR': 'PT',\n 'en': 'EN',\n 'es': 'ES',\n};\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 14,\n fontWeight: 400,\n color: 'white',\n backgroundColor: '#656565',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n arrow: {\n color: '#656565'\n },\n}))(Tooltip);\n\nconst TOP_PADDING = 80;\nconst TOP_PADDING_LARGE = 176;\nconst BOTTOM_PADDING = 93;\n\nfunction Header({\n history,\n height,\n iframeMode,\n}) {\n const isMobile = useMediaQuery('(max-width: 768px)');\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n const windowSize = useWindowSize();\n const client = useApolloClient();\n const [navIsVisible, setNavIsVisible] = useState(false);\n const [menuIsVisible, setMenuIsVisible] = useState(false);\n const [accountMenuIsVisible, setAccountMenuIsVisible] = useState(false);\n const [translateBoxAnchorEl, setTranslateBoxAnchorEl] = useState(null);\n const [showFireModeContent, setShowFireModeContent] = useState(null);\n const [showInfrastructureModeContent, setShowInfrastructureModeContent] = useState(null);\n const [showIrrigationModeContent, setShowIrrigationModeContent] = useState(null);\n const [showDeforestationModeContent, setShowDeforestationModeContent] = useState(null);\n const { data: baseData } = useQuery(GET_BASE_DATA);\n const { data: modulesData } = useQuery(GET_MODULE_DATA);\n const { data: primaryCustomModulesData } = useQuery(GET_MODULE_DATA, {\n client: getCustomClient('8.0')\n });\n const { data: secondaryCustomModulesData } = useQuery(GET_MODULE_DATA, {\n client: getCustomClient('7.1')\n });\n const activeModule = _.get(baseData, 'app.activeModule');\n const prevActiveModule = usePrevious(activeModule);\n const activeModuleContent = _.get(baseData, 'app.activeModuleContent');\n const headerIsVisible = _.get(baseData, 'app.headerIsVisible');\n const mapboxMode = _.get(baseData, 'app.mapboxMode');\n const buffer = _.get(baseData, 'app.baseParams.buffer');\n const activeClassTreeOptionValue = _.get(baseData, 'app.baseParams.activeClassTreeOptionValue');\n const degradationType = _.get(baseData, 'app.baseParams.degradationType');\n const isOnDegradationCrossingMode = degradationType === 'crossing';\n const degradationCrossingValues = _.get(baseData, 'app.baseParams.degradationCrossingValues');\n const isWaterIframe = activeModuleContent === 'water:water_iframe';\n const isCoralReefIframe = activeModuleContent === 'coral_reef:coral_reef_iframe';\n const isFireIframe = activeModuleContent === 'fire:fire_iframe';\n const isInfrastructureIframe = activeModuleContent === 'infrastructure:infrastructure_iframe';\n const isIrrigationIframe = activeModuleContent === 'irrigation:irrigation_iframe';\n\n const modulesList = _.get(modulesData, 'modulesList');\n const primaryCustomModulesList = _.get(primaryCustomModulesData, 'modulesList');\n const secondaryCustomModulesList = _.get(secondaryCustomModulesData, 'modulesList');\n const activeModuleData = _.find(modulesList, { key: mapOldModuleListKeyToNewKey(activeModule) });\n const submodulesList = _.get(activeModuleData, 'submodules');\n\n const mapModuleKeyToCustomModulesList = {\n 'soil': secondaryCustomModulesList,\n 'degradation': primaryCustomModulesList,\n 'sentinel': primaryCustomModulesList,\n 'fire': primaryCustomModulesList,\n };\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params\n }\n }\n });\n };\n\n const updateClientAppBaseParamsState = (params) => {\n updateClientAppState({\n baseParams: {\n __typename: 'AppBaseParamsState',\n ...params\n }\n });\n };\n\n const handleActiveModuleChange = (key) => {\n if (iframeMode) {\n history.push('/');\n }\n\n const defaultParams = mapActiveModuleToDefaultParams[key] || {};\n const baseParams = _.get(defaultParams, 'baseParams');\n\n updateClientAppState({\n activeModule: key,\n ...(baseParams ? _.omit(defaultParams, 'baseParams') : defaultParams)\n });\n\n if (baseParams) {\n updateClientAppBaseParamsState(baseParams);\n }\n\n if (_.includes(customClientModules, prevActiveModule) || _.includes(customClientModules, key)) {\n updateClientAppBaseParamsState(initialBaseParams);\n }\n\n setShowFireModeContent(false);\n setShowInfrastructureModeContent(false);\n setShowIrrigationModeContent(false);\n toggleNav();\n };\n\n const toggleVisibility = () => {\n updateClientAppState({ headerIsVisible: !headerIsVisible });\n };\n\n const toggleNav = () => setNavIsVisible(!navIsVisible);\n\n const toggleMenu = () => setMenuIsVisible(!menuIsVisible);\n\n const toggleAccountMenu = () => {\n const isOpen = !!accountMenuIsVisible;\n\n if (isOpen && (accountMenuIsVisible === 'myMaps' || accountMenuIsVisible === 'newMap')) {\n setAccountMenuIsVisible('default');\n } else if (isOpen) {\n setAccountMenuIsVisible(null);\n } else {\n setAccountMenuIsVisible('default');\n }\n };\n\n const closeAccountMenu = () => {\n setAccountMenuIsVisible(null);\n };\n\n const handleShowClassInfo = (id) => {\n if (isMobile) {\n updateClientAppState({\n headerIsVisible: false,\n showClassInfo: id\n });\n } else {\n updateClientAppState({\n showClassInfo: id\n });\n }\n };\n\n const handleShowDashboardInfo = () => {\n if (!isMobile) {\n updateClientAppState({\n showDashboardInfo: true,\n });\n } else {\n updateClientAppState({\n showDashboardInfo: true,\n headerIsVisible: false,\n mapPointInfo: null,\n showClassInfo: null,\n });\n }\n };\n\n const handleTabChange = (newValue) => {\n let appParams = {\n activeModuleContent: newValue,\n showBeforeAndAfterMosaic: false,\n };\n\n updateClientAppState(appParams);\n updateClientAppBaseParamsState({\n activeBaseClassTreeNodeIds: [],\n degradationFragmentationIsolationValue: null,\n });\n };\n\n const handleMapFlyToChange = (boundingBox) => {\n updateClientAppState({ mapFlyTo: boundingBox });\n };\n\n const handleAddNewMap = () => {\n setAccountMenuIsVisible('newMap');\n };\n\n const handleShowMyMaps = () => {\n setAccountMenuIsVisible('myMaps');\n };\n\n const handleUpdateDegradationCrossingValues = () => {\n const queryParsed = parseCrossingParams(degradationCrossingValues);\n updateClientAppBaseParamsState({\n degradationCrossingValues: {\n ...degradationCrossingValues,\n parsedParams: queryParsed\n }\n });\n };\n\n const renderTabContent = () => {\n const classesViewMode = _.get(baseData, 'app.baseParams.classesViewMode');\n\n if (activeModule === 'degradation' && isOnDegradationCrossingMode) {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"degradation\"\n showMultipleTerritories={ false }\n onFlyTo={ handleMapFlyToChange }\n />\n <div className={ styles.degradationControls }>\n <DegradationVectorControl\n label={ formatMessage('mapbiomas.header.base_form.degradation_type.crossing_options.fragmentation') }\n dataKey=\"fragmentation\"\n classTreeKeys={ [\n 'degradation_fragmentation_edge_area',\n 'degradation_fragmentation_fragment_size',\n 'degradation_fragmentation_isolation_medium_size',\n 'degradation_fragmentation_isolation_distance',\n 'degradation_fragmentation_isolation_big_size',\n ] }\n />\n <DegradationVectorControl\n label={ formatMessage('mapbiomas.header.base_form.degradation_type.crossing_options.fire') }\n dataKey=\"fire\"\n classTreeKeys={ [\n 'degradation_fire_frequency',\n 'degradation_fire_time',\n ] }\n />\n <DegradationVectorControl\n label={ formatMessage('mapbiomas.header.base_form.degradation_type.crossing_options.secondary_vegetation') }\n dataKey=\"secondaryVegetation\"\n classTreeKeys={ [\n 'degradation_secondary_vegetation_age',\n ] }\n />\n <div className={ styles.degradationControlsAction }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleUpdateDegradationCrossingValues }\n >\n <FormattedMessage id=\"mapbiomas.user.my_maps.list.actions.show\" />\n </Button>\n </div>\n </div>\n <GenericClasses\n clientType=\"8.0\"\n hideLegendIndex\n hideLevelsControl\n hideParentToggle\n secondaryClassTreeKey=\"default\"\n moduleId={ _.get(_.find(modulesList, { key: 'coverage' }), 'id') }\n submoduleKey={ 'coverage_main' }\n />\n </Fragment>\n );\n }\n\n switch(activeModuleContent) {\n case 'coverage:coverage_main': {\n return (\n <Fragment>\n <BaseForm\n showCrossing\n hasGeometryOptions={ !mapboxMode }\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'coverage' }), 'id') }\n submoduleKey={ 'coverage_main' }\n hideLegendIndex={ activeClassTreeOptionValue === 'natural_or_anthropic' }\n hideLevelsControl={ activeClassTreeOptionValue === 'natural_or_anthropic' }\n />\n </Fragment>\n );\n }\n case 'coverage:coverage_changes': {\n return (\n <Fragment>\n <BaseForm\n isTransition\n hasGeometryOptions={ !mapboxMode }\n onFlyTo={ handleMapFlyToChange }\n />\n <TransitionClasses\n onItemsChange={ updateClientAppBaseParamsState }\n />\n </Fragment>\n );\n }\n case 'coverage:coverage_quality': {\n return (\n <Fragment>\n <BaseForm\n hasGeometryOptions={ !mapboxMode }\n onFlyTo={ handleMapFlyToChange }\n />\n <QualityClasses />\n </Fragment>\n );\n }\n case 'coverage:environmental_analysis': {\n const hasBaseValueSelected = _.isEmpty(_.get(baseData, 'app.baseParams.activeBaseClassTreeNodeIds'));\n\n return (\n <Fragment>\n <BaseForm\n showCrossing\n hasGeometryOptions={ !mapboxMode }\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n hideLegendIndex\n hideLevelsControl={ !hasBaseValueSelected }\n hideParentToggle={ !hasBaseValueSelected }\n secondaryClassTreeKey=\"default\"\n moduleId={ _.get(_.find(modulesList, { key: 'coverage' }), 'id') }\n submoduleKey={ 'environmental_analysis' }\n />\n </Fragment>\n );\n }\n case 'temporal_analysis:temporal_analysis_stable_areas': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'temporal_analysis' }), 'id') }\n submoduleKey={ 'temporal_analysis_stable_areas' }\n />\n </Fragment>\n );\n }\n case 'temporal_analysis:temporal_analysis_number_of_classes': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'temporal_analysis' }), 'id') }\n submoduleKey={ 'temporal_analysis_number_of_classes' }\n />\n </Fragment>\n );\n }\n case 'temporal_analysis:temporal_analysis_number_of_changes': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'temporal_analysis' }), 'id') }\n submoduleKey={ 'temporal_analysis_number_of_changes' }\n />\n </Fragment>\n );\n }\n case 'coverage_quality:coverage_quality_main': {\n return (\n <Fragment>\n <BaseForm\n onFlyTo={ handleMapFlyToChange }\n />\n <QualityClasses />\n </Fragment>\n );\n }\n case 'quality_of_pasture_data:quality_of_pasture_data_main': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n key=\"quality_of_pasture_data:quality_of_pasture_data_main\"\n moduleId={ _.get(_.find(modulesList, { key: 'quality_of_pasture_data' }), 'id') }\n submoduleKey={ 'quality_of_pasture_data_main' }\n />\n </Fragment>\n );\n }\n case 'quality_of_pasture_data:quality_of_pasture_data_changes': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n key=\"quality_of_pasture_data:quality_of_pasture_data_changes\"\n moduleId={ _.get(_.find(modulesList, { key: 'quality_of_pasture_data' }), 'id') }\n submoduleKey={ 'quality_of_pasture_data_changes' }\n />\n </Fragment>\n );\n }\n case 'irrigation:irrigation_main': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'irrigation' }), 'id') }\n submoduleKey={ 'irrigation_main' }\n />\n </Fragment>\n );\n }\n case 'deforestation:deforestation_annual': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'deforestation' }), 'id') }\n submoduleKey={ 'deforestation_annual' }\n />\n </Fragment>\n );\n }\n case 'deforestation:deforestation_accumulated': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'deforestation' }), 'id') }\n submoduleKey={ 'deforestation_accumulated' }\n />\n </Fragment>\n );\n }\n case 'deforestation:deforestation_frequency': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n hideLegendIndex\n moduleId={ _.get(_.find(modulesList, { key: 'deforestation' }), 'id') }\n submoduleKey={ 'deforestation_frequency' }\n />\n </Fragment>\n );\n }\n case 'regeneration:regeneration_annual': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'regeneration' }), 'id') }\n submoduleKey={ 'regeneration_annual' }\n />\n </Fragment>\n );\n }\n case 'regeneration:regeneration_accumulated': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'regeneration' }), 'id') }\n submoduleKey={ 'regeneration_accumulated' }\n />\n </Fragment>\n );\n }\n case 'regeneration:regeneration_age': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n hideLegendIndex\n moduleId={ _.get(_.find(modulesList, { key: 'regeneration' }), 'id') }\n submoduleKey={ 'regeneration_age' }\n />\n </Fragment>\n );\n }\n case 'infrastructure:infrastructure_main': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n showBufferField\n territoryCategoriesGroup=\"infrastructure\"\n onFlyTo={ handleMapFlyToChange }\n />\n <GeospatialObjects\n objectTree={_.get(_.find(modulesList, { key: 'infrastructure' }), 'submodules[0].geospatialObjectCategoryTree') }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'infrastructure' }), 'id') }\n submoduleKey={ 'infrastructure_main' }\n />\n </Fragment>\n );\n }\n case 'fire:fire_annual': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"fire\"\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['fire'], { key: 'fire' }), 'id') }\n submoduleKey={ 'fire_annual' }\n />\n </Fragment>\n );\n }\n case 'fire:fire_accumulated': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"fire\"\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['fire'], { key: 'fire' }), 'id') }\n submoduleKey={ 'fire_accumulated' }\n />\n </Fragment>\n );\n }\n case 'fire:fire_frequency': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"fire\"\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n hideLegendIndex\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['fire'], { key: 'fire' }), 'id') }\n submoduleKey={ 'fire_frequency' }\n />\n </Fragment>\n );\n }\n case 'fire:fire_monthly': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"fire\"\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['fire'], { key: 'fire' }), 'id') }\n submoduleKey={ 'fire_monthly' }\n />\n </Fragment>\n );\n }\n case 'fire:fire_last': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"fire\"\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['fire'], { key: 'fire' }), 'id') }\n submoduleKey={ 'fire_last' }\n />\n </Fragment>\n );\n }\n case 'fire:fire_size': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"fire\"\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['fire'], { key: 'fire' }), 'id') }\n submoduleKey={ 'fire_size' }\n />\n </Fragment>\n );\n }\n case 'mining:mining_main': {\n return (\n <Fragment>\n <BaseForm\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n moduleId={ _.get(_.find(modulesList, { key: 'mining' }), 'id') }\n submoduleKey={ 'mining_main' }\n />\n </Fragment>\n );\n }\n case 'soil:soil_main': {\n return (\n <Fragment>\n <BaseForm\n hideGroupType\n clientType=\"7.1\"\n onFlyTo={ handleMapFlyToChange }\n territoryCategoriesGroup=\"soil\"\n showMultipleTerritories={ false }\n />\n <GenericClasses\n clientType=\"7.1\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['soil'], { key: 'soil' }), 'id') }\n submoduleKey={ 'soil_main' }\n />\n </Fragment>\n );\n }\n case 'sentinel:sentinel_coverage': {\n return (\n <Fragment>\n <div className={ styles.fireModeContentBoxExtra }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.warning.sentinel_coverage.extra_note.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.warning.sentinel_coverage.extra_note.content')\n }}\n />\n </div>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"sentinel\"\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['sentinel'], { key: 'sentinel' }), 'id') }\n submoduleKey={ 'sentinel_coverage' }\n />\n </Fragment>\n );\n }\n case 'degradation:degradation_fragmentation': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"degradation\"\n showMultipleTerritories={ false }\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n hideLegendIndex\n hideLevelsControl\n hideParentToggle\n secondaryClassTreeKey=\"default\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['degradation'], { key: 'degradation' }), 'id') }\n submoduleKey={ 'degradation_fragmentation' }\n />\n </Fragment>\n );\n }\n case 'degradation:degradation_fire': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"degradation\"\n showMultipleTerritories={ false }\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n hideLegendIndex\n hideLevelsControl\n hideParentToggle\n secondaryClassTreeKey=\"default\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['degradation'], { key: 'degradation' }), 'id') }\n submoduleKey={ 'degradation_fire' }\n />\n </Fragment>\n );\n }\n case 'degradation:degradation_secondary_vegetation': {\n return (\n <Fragment>\n <BaseForm\n clientType=\"8.0\"\n territoryCategoriesGroup=\"degradation\"\n showMultipleTerritories={ false }\n onFlyTo={ handleMapFlyToChange }\n />\n <GenericClasses\n clientType=\"8.0\"\n hideLegendIndex\n hideLevelsControl\n hideParentToggle\n secondaryClassTreeKey=\"default\"\n moduleId={ _.get(_.find(mapModuleKeyToCustomModulesList['degradation'], { key: 'degradation' }), 'id') }\n submoduleKey={ 'degradation_secondary_vegetation' }\n />\n </Fragment>\n );\n }\n default: {\n return null;\n }\n }\n };\n\n const handleWaterClick = () => {\n history.push('/agua');\n updateClientAppState({ activeModuleContent: 'water:water_iframe' });\n };\n\n const hasStatisticsButton = activeModuleContent === 'coverage:coverage_changes';\n\n const parsedTabList = _.map(_.sortBy(submodulesList, 'displayOrder'), (item) => {\n\n const intl = useIntl()\n\n const mapSubmoduleIdToTooltip = {\n 'fire_annual': intl.formatMessage({id: 'mapbiomas.statistics.burned.annual_total.module.tooltip'}),\n 'fire_monthly': intl.formatMessage({id: 'mapbiomas.statistics.burned.monthly.module.tooltip'}),\n 'fire_frequency': intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.module.tooltip'}),\n 'fire_accumulated': intl.formatMessage({id: 'mapbiomas.statistics.burned.accumulated.module.tooltip'}),\n 'fire_last': intl.formatMessage({id: 'mapbiomas.statistics.burned.last_year.module.tooltip'}),\n 'fire_size': intl.formatMessage({id: 'mapbiomas.statistics.burned.size.module.tooltip'}),\n };\n\n const stringList = _.get(item, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n let tooltip = mapSubmoduleIdToTooltip[_.get(item, 'key')] || null;\n\n return {\n id: `${ _.get(activeModuleData, 'key') }:${ _.get(item, 'key') }`,\n label,\n elementId: _.get(item, 'key'),\n tooltip,\n };\n });\n\n const totalTabList = _.size(parsedTabList);\n let contentHeight = windowSize.height -\n (totalTabList > 2 ? TOP_PADDING_LARGE : TOP_PADDING) -\n (totalTabList === 2 ? 62 : 0) -\n (activeModule === 'degradation' && !isOnDegradationCrossingMode ? 72 : 0) -\n (activeModule === 'degradation' && isOnDegradationCrossingMode ? -30 : 0) -\n BOTTOM_PADDING;\n\n const handleTranslateBoxOpen = (event) => {\n setTranslateBoxAnchorEl(translateBoxAnchorEl ? null : event.currentTarget);\n };\n\n const handleCustomModeClick = (module) => {\n if (module === 'fire') {\n setShowInfrastructureModeContent(false);\n setShowIrrigationModeContent(false);\n setShowDeforestationModeContent(false);\n setShowFireModeContent(true);\n } else if (module === 'infrastructure') {\n setShowFireModeContent(false);\n setShowIrrigationModeContent(false);\n setShowDeforestationModeContent(false);\n setShowInfrastructureModeContent(true);\n } else if (module === 'irrigation') {\n setShowFireModeContent(false);\n setShowInfrastructureModeContent(false);\n setShowDeforestationModeContent(false);\n setShowIrrigationModeContent(true);\n } else if (module === 'deforestation') {\n setShowFireModeContent(false);\n setShowInfrastructureModeContent(false);\n setShowIrrigationModeContent(false);\n setShowDeforestationModeContent(true);\n } else if (module === 'coral_reef') {\n history.push('/recifes-de-coral');\n updateClientAppState({ activeModuleContent: 'coral_reef:coral_reef_iframe' });\n }\n };\n\n const showFireIframeMode = () => {\n history.push('/monitor-do-fogo');\n updateClientAppState({ activeModuleContent: 'fire:fire_iframe' });\n };\n\n const showInfrastructureIframeMode = () => {\n history.push('/pistas-de-pouso');\n updateClientAppState({ activeModuleContent: 'infrastructure:infrastructure_iframe' });\n };\n\n const showIrrigationIframeMode = () => {\n history.push('/dinamica-dos-pivos');\n updateClientAppState({ activeModuleContent: 'irrigation:irrigation_iframe' });\n };\n\n const renderMenuContent = () => {\n return (\n <div className={ styles.menuContent }>\n { _.get(activeModuleData, 'key') === 'degradation' &&\n <DegradationViewModeControl clientType=\"8.0\" />\n }\n { _.size(parsedTabList) > 1 && !isOnDegradationCrossingMode &&\n <div id=\"module-main-options\" className={ styles.topContent }>\n <TabList\n fullWidth\n hasCustomItemSize\n size=\"small\"\n items={ parsedTabList }\n value={ activeModuleContent }\n onChange={ handleTabChange }\n />\n </div>\n }\n <div className={ styles.contentWrapper } style={{ height: contentHeight }}>\n <div className={ styles.tabContent }>\n { renderTabContent() }\n { hasStatisticsButton &&\n <div className={ styles.statisticsButtonWrapper }>\n <Button\n id=\"statistics-btn\"\n disabled={ activeModuleContent === 'infrastructure:infrastructure_main' && buffer === 0 }\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n startIcon={ <BarChartIcon /> }\n onClick={ handleShowDashboardInfo }\n >\n <FormattedMessage id=\"mapbiomas.header.buttons.statistics\" />\n </Button>\n </div>\n }\n </div>\n </div>\n <div className={ styles.bottomContent }>\n <Button\n variant=\"contained\"\n size=\"small\"\n className={ styles.actionButton }\n onClick={ handleAddNewMap }\n >\n <BookmarkIcon />\n <span><FormattedMessage id=\"mapbiomas.header.buttons.save_map\" /></span>\n </Button>\n <Button\n variant=\"contained\"\n size=\"small\"\n className={ styles.actionButton }\n onClick={ handleShowMyMaps }\n >\n <ViewListIcon />\n <span><FormattedMessage id=\"mapbiomas.header.buttons.my_maps\" /></span>\n </Button>\n </div>\n {/* <Tooltip title={ headerIsVisible ? formatMessage(`mapbiomas.header.tooltips.hide_filters`) : formatMessage(`mapbiomas.header.tooltips.show_filters`) }>\n <button\n id=\"data-toggle-button\"\n className={ classnames(styles.toggleButton, {\n [styles.toggleButtonAlone]: !headerIsVisible\n }) }\n onClick={ toggleVisibility }\n >\n <FilterListIcon />\n </button>\n </Tooltip>\n <a\n className={ classnames(styles.logoBox, {\n [styles.logoBoxHidden]: headerIsVisible\n }) }\n href=\"https://mapbiomas.org/\"\n >\n <img src={ logo } alt=\"Logo MapBiomas\" />\n </a> */}\n </div>\n );\n };\n\n const renderFireModeContent = () => {\n return (\n <div className={ styles.fireModeContentWrapper } style={{ height: windowSize.height - 116 }}>\n <div className={ styles.fireModeContent }>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.fire_module_content.default.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.fire_module_content.default.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleActiveModuleChange.bind(this, 'fire') }\n className={ styles.fireModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.fire_module_content.monitor.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.fire_module_content.monitor.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ showFireIframeMode }\n className={ styles.fireModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.fire_module_content.hotsite.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.fire_module_content.hotsite.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n component={ Link }\n to=\"/hotsite-fogo\"\n className={ styles.fireModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n <div className={ styles.fireModeContentBoxExtra }>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.fire_module_content.extra.body')\n }}\n />\n </div>\n </div>\n </div>\n );\n };\n\n const renderInfrastructureModeContent = () => {\n return (\n <div className={ styles.fireModeContentWrapper } style={{ height: windowSize.height - 116 }}>\n <div className={ styles.fireModeContent }>\n <div className={ styles.fireModeContentBoxExtra }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.infrastructure_module_content.default.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.infrastructure_module_content.default.body')\n }}\n />\n </div>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.infrastructure_module_content.default.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.infrastructure_module_content.collection_6.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleActiveModuleChange.bind(this, 'infrastructure') }\n className={ styles.infrastructureModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.infrastructure_module_content.landing_fields.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.infrastructure_module_content.landing_fields.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ showInfrastructureIframeMode }\n className={ styles.infrastructureModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n const renderIrrigationModeContent = () => {\n return (\n <div className={ styles.fireModeContentWrapper } style={{ height: windowSize.height - 116 }}>\n <div className={ styles.fireModeContent }>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.irrigation_module_content.default.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.irrigation_module_content.default.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleActiveModuleChange.bind(this, 'irrigation') }\n className={ styles.irrigationModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.irrigation_module_content.pivots.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.irrigation_module_content.pivots.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ showIrrigationIframeMode }\n className={ styles.irrigationModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n const renderDeforestationModeContent = () => {\n return (\n <div className={ styles.fireModeContentWrapper } style={{ height: windowSize.height - 116 }}>\n <div className={ styles.fireModeContent }>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.deforestation_module_content.default.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.deforestation_module_content.default.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleActiveModuleChange.bind(this, 'deforestation') }\n className={ styles.deforestationModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n <div className={ styles.fireModeContentBox }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.header.deforestation_module_content.alerts.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.header.deforestation_module_content.alerts.body')\n }}\n />\n <div className={ styles.fireModeContentBoxActions }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n component=\"a\"\n target=\"_blank\"\n href=\"https://plataforma.alerta.mapbiomas.org/\"\n className={ styles.deforestationModeContentBoxButton }\n >\n <FormattedMessage id=\"mapbiomas.statistics.view_data\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n const renderWaterModuleIcon = () => {\n return (\n <CustomTooltip\n arrow\n title={ locale === 'pt-BR' ? 'Ãgua' : 'Water' }\n placement=\"right\"\n >\n <li\n className={ classnames(styles.menuBarListItem, styles.menuBarListItemWater, {\n [styles['menuBarListItemWaterIsActive']]: isWaterIframe\n }) }\n onClick={ handleWaterClick }\n style={ !isWaterIframe ? {} : { backgroundColor: 'rgba(24, 103, 156, .1)' } }\n >\n <span\n className={ styles.menuBarListItemLine }\n />\n { !_.isEmpty(modulesList) &&\n <ModuleIconComponent\n moduleKey=\"water\"\n />\n }\n {/* <span className={ styles.menuBarListItemNewTag }>new</span> */}\n </li>\n </CustomTooltip>\n );\n };\n\n const renderLogo = () => {\n let logoImage = logo;\n\n if (_.get(activeModuleData, 'key') === 'fire' || showFireModeContent) {\n logoImage = logoFire;\n } else if (_.get(activeModuleData, 'key') === 'sentinel' && locale === 'pt-BR') {\n logoImage = logoSentinelPT;\n } else if (_.get(activeModuleData, 'key') === 'sentinel' && locale === 'en') {\n logoImage = logoSentinelEN;\n } else if (_.get(activeModuleData, 'key') === 'degradation') {\n logoImage = logoDegradation;\n }\n\n return (\n <img\n id=\"logo\"\n src={ logoImage }\n alt=\"Logo MapBiomas\"\n className={ classnames({\n [styles.headerImageLogoSentinel]: _.get(activeModuleData, 'key') === 'sentinel',\n [styles.headerImageLogoDegradation]: _.get(activeModuleData, 'key') === 'degradation',\n }) }\n />\n );\n };\n\n return (\n <div\n className={ classnames(styles.wrapper, {\n [styles.wrapperHidden]: !headerIsVisible,\n [styles.wrapperIframeMode]: iframeMode &&\n !showFireModeContent &&\n !showInfrastructureModeContent &&\n !showIrrigationModeContent &&\n !showDeforestationModeContent\n }) }\n style={{ height }}\n >\n <header\n className={ classnames(styles.headerWrapper, {\n [styles.headerWrapperHidden]: !headerIsVisible\n }) }\n style={{ height }}\n >\n <div className={ styles.menuBar }>\n <ul id=\"modules\" className={ styles.menuBarList }>\n { _.map(_.sortBy(modulesList, 'displayOrder'), (item) => {\n const stringList = _.get(item, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n\n const isActive = !showFireModeContent && !showInfrastructureModeContent && !showIrrigationModeContent && !iframeMode && _.get(activeModuleData, 'key') === item.key ||\n (item.key === 'fire' && (showFireModeContent || isFireIframe)) ||\n (item.key === 'infrastructure' && (showInfrastructureModeContent || isInfrastructureIframe)) ||\n (item.key === 'irrigation' && (showIrrigationModeContent || isIrrigationIframe)) ||\n (item.key === 'deforestation' && showDeforestationModeContent) ||\n (item.key === 'coral_reef' && isCoralReefIframe);\n\n const rgbColor = hexToRgb(item.primaryColor);\n\n return (\n <Fragment key={ `nav-list-item-${ item.key }` }>\n { item.key === 'coverage_quality' && renderWaterModuleIcon() }\n <CustomTooltip\n arrow\n title={ label }\n placement=\"right\"\n >\n <li\n className={ classnames(styles.menuBarListItem, [styles[getModuleItemClassName(item.key)]], {\n [styles[`${ getModuleItemClassName(item.key) }IsActive`]]: isActive\n }) }\n onClick={ !_.includes(['fire', 'infrastructure', 'irrigation', 'deforestation', 'coral_reef'], item.key) ?\n handleActiveModuleChange.bind(this, mapNewModuleListKeyToOldKey(item.key)) :\n handleCustomModeClick.bind(this, item.key)\n }\n style={ !isActive ? {} : { backgroundColor: `rgba(${ rgbColor.r }, ${ rgbColor.g }, ${ rgbColor.b }, .1)` } }\n >\n <span\n className={ styles.menuBarListItemLine }\n />\n <ModuleIconComponent\n moduleKey={ item.key }\n />\n { _.includes(NEW_MODULE_KEYS, item.key) &&\n <span className={ styles.menuBarListItemNewTag }>new</span>\n }\n { _.includes(BETA_MODULE_KEYS, item.key) &&\n <span className={ styles.menuBarListItemBetaTag }>beta</span>\n }\n </li>\n </CustomTooltip>\n </Fragment>\n );\n }) }\n </ul>\n <div className={ styles.menuBarBottomContent }>\n { !iframeMode &&\n <CustomTooltip arrow title={ formatMessage('mapbiomas.sidebar.account.title') } placement=\"right\">\n <button className={ styles.menuButton } onClick={ toggleAccountMenu }>\n <AccountCircleIcon />\n </button>\n </CustomTooltip>\n }\n <CustomTooltip arrow title={ formatMessage('mapbiomas.sidebar.institutional.title') } placement=\"right\">\n <button className={ styles.menuButton } onClick={ toggleMenu }>\n <MenuIcon />\n </button>\n </CustomTooltip>\n { !iframeMode &&\n <button id=\"translation-button\" className={ styles.translateButton } onClick={ handleTranslateBoxOpen }>\n <TranslateIcon />\n <span>{ mapLocaleKeyToAbbreviation[locale] }</span>\n <ExpandMoreIcon />\n </button>\n }\n <TranslateOptionsBox\n anchorEl={ translateBoxAnchorEl }\n onClose={ setTranslateBoxAnchorEl.bind(this, null) }\n />\n </div>\n </div>\n { !showFireModeContent &&\n !showInfrastructureModeContent &&\n !showIrrigationModeContent &&\n !showDeforestationModeContent &&\n renderMenuContent()\n }\n { showFireModeContent && renderFireModeContent() }\n { showInfrastructureModeContent && renderInfrastructureModeContent() }\n { showIrrigationModeContent && renderIrrigationModeContent() }\n { showDeforestationModeContent && renderDeforestationModeContent() }\n <div\n className={ classnames(styles.linksContent, {\n [styles.linksContentIsVisible]: menuIsVisible,\n [styles.linksContentIframeMode]: iframeMode,\n }) }\n >\n <InstitutionalMenu iframeMode={ iframeMode } />\n </div>\n <div\n className={ classnames(styles.linksContent, {\n [styles.linksContentIsVisible]: !!accountMenuIsVisible,\n [styles.linksContentIframeMode]: iframeMode,\n }) }\n >\n <AccountMenu\n iframeMode={ iframeMode }\n myMapsMode={ accountMenuIsVisible === 'myMaps' }\n newMapMode={ accountMenuIsVisible === 'newMap' }\n onHideMenu={ closeAccountMenu }\n />\n </div>\n </header>\n <div\n className={ classnames(styles.logoBox, {\n [styles.logoBoxCollapsed]: !headerIsVisible\n }) }\n >\n <a\n className={ styles.mainLogo }\n href=\"https://venezuela.mapbiomas.org/\"\n >\n { renderLogo() }\n { ['coverage','deforestation','regeneration','irrigation','mining','temporal_analysis','coverage_quality', 'infrastructure'].includes(_.get(activeModuleData, 'key')) && <span className={ styles.versionTag }>v. 2.0</span> }\n { ['quality_of_pasture_data'].includes(_.get(activeModuleData, 'key')) && <span className={ styles.versionTag }>v. 2.0</span> }\n { ['fire'].includes(_.get(activeModuleData, 'key')) && <span className={ styles.versionTag }>v. 3.0</span> }\n { false && _.includes(['infrastructure'], _.get(activeModuleData, 'key')) &&\n <span className={ styles.newTag }>New</span>\n }\n { _.includes(BETA_MODULE_KEYS, _.get(activeModuleData, 'key')) &&\n <span className={ styles.betaTag }>Beta</span>\n }\n </a>\n <button\n id=\"toggle-header-button\"\n className={ classnames(styles.toggleButton, {\n [styles.toggleButtonExpand]: !headerIsVisible\n }) }\n onClick={ toggleVisibility }\n >\n <ChevronLeftIcon />\n </button>\n </div>\n </div>\n );\n}\n\nexport default withRouter(Header);\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport logo from './logo-ecostage.svg';\n\nimport styles from './Footer.module.scss';\n\nexport default function Footer() {\n return (\n <footer className={ styles.wrapper }>\n <small className={ styles.copyText }>© Copyright - MapBiomas - <FormattedMessage id=\"footer.copyright\" /></small>\n <div className={ styles.wrapper }>\n <small className={ styles.versionText }>{ process.env.GIT_TAG } · </small>\n <a href=\"http://www.ecostage.com.br/\" target=\"_blank\">\n <img className={ styles.ecostageImage } src={ logo } alt=\"Logo EcoStage\" />\n </a>\n </div>\n </footer>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n app @client {\n activeNoteKey\n }\n }\n`;\n","import React, { useState } from 'react';\nimport { useApolloClient, useQuery } from '@apollo/react-hooks';\nimport { FormattedMessage } from 'react-intl';\nimport _ from 'lodash';\n\nimport Button from '@material-ui/core/Button';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Dialog from '@material-ui/core/Dialog';\nimport IconButton from '@material-ui/core/IconButton';\n\nimport useFormatMessage from '../../hooks/useFormatMessage';\n\nimport {\n GET_BASE_DATA,\n} from './query';\n\nimport styles from './WarningNoteDialog.module.scss';\n\nconst availableLocaleNoteKeys = [\n 'coverage_main',\n 'coverage_changes',\n 'coverage_quality_main',\n 'quality_of_pasture_data_main',\n 'irrigation_main',\n 'temporal_analysis_stable_areas',\n 'deforestation_annual',\n 'regeneration_annual',\n 'fire_accumulated',\n 'mining_main',\n 'temporal_analysis_number_of_classes',\n 'temporal_analysis_number_of_changes',\n 'irrigation_iframe',\n 'soil_main',\n 'sentinel_coverage',\n 'infrastructure_main',\n 'degradation_fragmentation',\n];\n\nexport default function WarningNoteDialog() {\n const client = useApolloClient();\n const formatMessage = useFormatMessage();\n const { data: baseData } = useQuery(GET_BASE_DATA);\n const activeNoteKey = _.get(baseData, 'app.activeNoteKey');\n\n const [readNoteKeys, setReadNoteKeys] = useState([]);\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params\n }\n }\n });\n };\n\n const closeNoteDialog = () => {\n updateClientAppState({\n activeNoteKey: null,\n });\n setReadNoteKeys([...readNoteKeys, activeNoteKey]);\n };\n\n if (\n _.isNull(activeNoteKey) ||\n _.includes(readNoteKeys, activeNoteKey) ||\n !_.includes(availableLocaleNoteKeys, activeNoteKey)\n ) {\n return null;\n }\n\n return (\n <Dialog onClose={ closeNoteDialog } open={ !!activeNoteKey }>\n <div className={ styles.dialogWrapper }>\n <header className={ styles.header }>\n <h2 className={ styles.title }>\n <FormattedMessage id={ `mapbiomas.warning.${ activeNoteKey }.title` } />\n </h2>\n <IconButton className={ styles.closeButton } onClick={ closeNoteDialog }>\n <CloseIcon />\n </IconButton>\n </header>\n <div className={ styles.content }>\n <div\n className={ styles.contentDescription }\n dangerouslySetInnerHTML={{\n __html: formatMessage(`mapbiomas.warning.${ activeNoteKey }.body`)\n }}\n />\n <div className={ styles.actions }>\n <Button color=\"primary\" variant=\"contained\" onClick={ closeNoteDialog }>\n <FormattedMessage id={ `mapbiomas.warning.${ activeNoteKey }.button.confirm` } />\n </Button>\n </div>\n </div>\n </div>\n </Dialog>\n );\n}\n","import _ from 'lodash';\n\nfunction parseTerritories(territories) {\n return _.map(territories, (territory) => {\n const {\n id,\n label,\n territoryTypeId,\n territoryTypeLabel,\n territoryBBox,\n } = territory;\n const bboxV1 = territoryBBox[0][0];\n const bboxV2 = territoryBBox[0][1];\n const bboxV3 = territoryBBox[1][0];\n const bboxV4 = territoryBBox[1][1];\n\n return `${ _.join([id, label, territoryTypeId, territoryTypeLabel, bboxV1, bboxV2, bboxV3, bboxV4], ';') }`;\n });\n}\n\nexport default function parseStateToQueryParams(state) {\n const {\n activeBaseMap,\n activeLayers,\n layersOpacity,\n activeModule,\n activeModuleContent,\n activeYear,\n mapPosition,\n showBeforeAndAfterMosaic,\n timelineLimitsRange,\n baseParams,\n } = state || {};\n\n const {\n groupType,\n territoryType,\n territorySubtype,\n territoryValueType,\n crossingEnabled,\n crossingTerritoryType,\n crossingTerritories,\n territory,\n territories,\n crossing,\n classesViewMode,\n activeClassTreeOptionValue,\n activeClassTreeNodeIds,\n activeObjectTreeNodeIds,\n activeSubmodule,\n activeClassesLevelsListItems,\n activeTransitionsClassesListItems,\n activePastureQualityQualityClassesListItems,\n yearRange,\n buffer,\n } = baseParams || {};\n\n let queryParams = {\n activeBaseMap,\n layersOpacity,\n activeModule,\n activeModuleContent,\n activeYear,\n mapPosition,\n timelineLimitsRange,\n };\n\n if (!_.isEmpty(activeLayers)) {\n _.set(queryParams, 'activeLayers', activeLayers);\n }\n\n if (showBeforeAndAfterMosaic) {\n _.set(queryParams, 'showBeforeAndAfterMosaic', showBeforeAndAfterMosaic);\n }\n\n if (groupType && groupType !== 'territorial') {\n _.set(queryParams, 'baseParams.groupType', groupType);\n }\n\n if (territoryType && territoryType !== null) {\n _.set(queryParams, 'baseParams.territoryType', territoryType);\n }\n\n if (crossingTerritoryType && crossingTerritoryType !== null) {\n _.set(queryParams, 'baseParams.crossingTerritoryType', crossingTerritoryType);\n }\n\n if (territorySubtype && territorySubtype !== null) {\n _.set(queryParams, 'baseParams.territorySubtype', territorySubtype);\n }\n\n if (territoryValueType && territoryValueType !== 'single') {\n _.set(queryParams, 'baseParams.territoryValueType', territoryValueType);\n }\n\n if (crossingEnabled) {\n _.set(queryParams, 'baseParams.crossingEnabled', crossingEnabled);\n }\n\n if (territory && territory !== null) {\n _.set(queryParams, 'baseParams.territory', territory);\n }\n\n if (territories && territories !== null) {\n const parsedTerritories = parseTerritories(territories);\n\n _.set(queryParams, 'baseParams.territories', parsedTerritories);\n }\n\n if (crossingTerritories && crossingTerritories !== null) {\n const parsedTerritories = parseTerritories(crossingTerritories);\n\n _.set(queryParams, 'baseParams.crossingTerritories', parsedTerritories);\n }\n\n if (crossing && crossing !== 'none') {\n _.set(queryParams, 'baseParams.crossing', crossing);\n }\n\n if (classesViewMode && classesViewMode !== 'class') {\n _.set(queryParams, 'baseParams.classesViewMode', classesViewMode);\n }\n\n if (activeClassTreeOptionValue && activeClassTreeOptionValue !== null) {\n _.set(queryParams, 'baseParams.activeClassTreeOptionValue', activeClassTreeOptionValue);\n }\n\n if (activeClassTreeNodeIds && !_.isEmpty(activeClassTreeNodeIds)) {\n _.set(queryParams, 'baseParams.activeClassTreeNodeIds', activeClassTreeNodeIds);\n }\n\n if (activeObjectTreeNodeIds && !_.isEmpty(activeObjectTreeNodeIds)) {\n _.set(queryParams, 'baseParams.activeObjectTreeNodeIds', activeObjectTreeNodeIds);\n }\n\n if (activeSubmodule && activeSubmodule !== null) {\n _.set(queryParams, 'baseParams.activeSubmodule', activeSubmodule);\n }\n\n if (activeClassesLevelsListItems && activeClassesLevelsListItems !== null) {\n _.set(queryParams, 'baseParams.activeClassesLevelsListItems', activeClassesLevelsListItems);\n }\n\n if (activeTransitionsClassesListItems && activeTransitionsClassesListItems !== null) {\n _.set(queryParams, 'baseParams.activeTransitionsClassesListItems', activeTransitionsClassesListItems);\n }\n\n if (activePastureQualityQualityClassesListItems && activePastureQualityQualityClassesListItems !== null) {\n _.set(queryParams, 'baseParams.activePastureQualityQualityClassesListItems', activePastureQualityQualityClassesListItems);\n }\n\n if (yearRange && yearRange !== '1985-2023') {\n _.set(queryParams, 'baseParams.yearRange', yearRange);\n }\n\n if (buffer && buffer !== 0) {\n _.set(queryParams, 'baseParams.buffer', buffer);\n }\n\n return queryParams;\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n app @client {\n activeBaseMap\n activeLayers\n layersOpacity\n activeModule\n activeModuleContent\n activeYear\n mapPosition\n showBeforeAndAfterMosaic\n isLoadingBaseData\n notifyUserNewTermOfUseVersion\n timelineLimitsRange\n baseParams {\n groupType\n degradationType\n degradationFragmentationIsolationValue\n degradationCrossingValues {\n degradation_fragmentation_edge_area\n degradation_fragmentation_fragment_size\n degradation_fragmentation_isolation_medium_size\n degradation_fragmentation_isolation_distance\n degradation_fragmentation_isolation_big_size\n degradation_fire_frequency\n degradation_fire_time\n degradation_secondary_vegetation_age\n parsedParams\n }\n territoryType\n territorySubtype\n territoryValueType\n crossingEnabled\n territory\n territories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n crossing\n classesViewMode\n activeClassTreeOptionValue\n activeClassTreeNodeIds\n activeObjectTreeNodeIds\n activeSubmodule\n activeClassesLevelsListItems\n activeTransitionsClassesListItems\n activePastureQualityQualityClassesListItems\n yearRange\n buffer\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { useApolloClient, useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport qs from 'qs';\n\nimport Header from '../Header';\nimport Footer from '../Footer';\n\nimport WarningNoteDialog from '../../../../components/WarningNoteDialog';\n\nimport mapModuleToPathname from '../../../../data/mapModuleToPathname';\n\nimport parseStateToQueryParams from '../../../../helpers/parseStateToQueryParams';\n\nimport {\n GET_BASE_DATA,\n} from './query';\n\nimport styles from './BasePage.module.scss';\n\nconst HEADER_HEIGHT = 0;\nconst HEADER_SIMPLE_HEIGHT = 0;\nconst FOOTER_HEIGHT = 30;\n\nfunction BasePage({\n history,\n location,\n children,\n simple = false\n}) {\n const client = useApolloClient();\n const shouldNotifyUserNewTermOfUseVersion = localStorage.getItem('notify_user_new_term_of_use_version') === 'true';\n const locale = localStorage.getItem('locale') || 'es';\n const pathname = _.get(location, 'pathname');\n const search = _.get(location, 'search');\n const { data: baseData } = useQuery(GET_BASE_DATA);\n const headerHeight = simple ? HEADER_SIMPLE_HEIGHT : HEADER_HEIGHT;\n const [windowHeight, setWindowHeight] = useState(window.innerHeight);\n const [contentHeight, setContentHeight] = useState(window.innerHeight - (headerHeight + FOOTER_HEIGHT));\n const isFrameMode = pathname === '/agua' ||\n pathname === '/monitor-do-fogo' ||\n pathname === '/pistas-de-pouso' ||\n pathname === '/dinamica-dos-pivos' ||\n pathname === '/recifes-de-coral';\n\n const app = _.get(baseData, 'app');\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params\n }\n }\n });\n };\n\n useEffect(() => {\n if (shouldNotifyUserNewTermOfUseVersion) {\n updateClientAppState({ notifyUserNewTermOfUseVersion: true });\n }\n\n window.addEventListener('resize', debouncedUpdateHeight);\n\n return () => {\n window.removeEventListener('resize', debouncedUpdateHeight)\n };\n }, []);\n\n useEffect(() => {\n // Listen for app state changes and update query params on URL\n const parsedQueryParams = parseStateToQueryParams(app);\n const encodedQueryParams = qs.stringify(parsedQueryParams, {\n encodeValuesOnly: true,\n arrayFormat: 'comma'\n });\n const activeModule = _.get(app, 'activeModule');\n const mapModuleKeyToPathname = _.invert(mapModuleToPathname);\n const customPathname = mapModuleKeyToPathname[activeModule] || pathname;\n\n if (!isFrameMode) {\n history.replace(`${ customPathname }?${ encodedQueryParams }`);\n }\n }, [app]);\n\n useEffect(() => {\n if (pathname === '/agua') {\n updateClientAppState({ activeModuleContent: 'water:water_iframe' });\n } else if (pathname === '/monitor-do-fogo') {\n updateClientAppState({ activeModuleContent: 'fire:fire_iframe' });\n } else if (pathname === '/pistas-de-pouso') {\n updateClientAppState({ activeModuleContent: 'infrastructure:infrastructure_iframe' });\n } else if (pathname === '/dinamica-dos-pivos') {\n updateClientAppState({\n activeModuleContent: 'irrigation:irrigation_iframe',\n activeNoteKey: 'irrigation_iframe',\n });\n } else if (pathname === '/recifes-de-coral') {\n updateClientAppState({ activeModuleContent: 'coral_reef:coral_reef_iframe' });\n }\n }, [pathname]);\n\n if (!baseData) { return null; }\n\n const {\n isLoadingBaseData,\n } = app || {};\n\n if (isLoadingBaseData) {\n return (\n <div className=\"lds-container\">\n <div className=\"lds-ring\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>\n );\n }\n\n const handleChange = (panel) => (_event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n function updateHeight() {\n setWindowHeight(window.innerHeight);\n setContentHeight(window.innerHeight - (headerHeight + FOOTER_HEIGHT));\n }\n const debouncedUpdateHeight = _.debounce(updateHeight, 500);\n\n return (\n <div\n className={ classnames(styles.pageWrapper, {\n 'locale-en': locale === 'en'\n }) }\n style={ { height: windowHeight } }\n >\n <Header\n simple={ simple }\n height={ contentHeight }\n iframeMode={ isFrameMode }\n pathname={ pathname }\n />\n <div\n className={ styles.contentWrapper }\n style={{ minHeight: contentHeight }}\n >\n { !isFrameMode && children }\n { pathname === '/agua' &&\n <iframe\n width={ window.innerWidth - 60 }\n height={ contentHeight }\n frameBorder=\"0\"\n scrolling=\"no\"\n marginHeight=\"0\"\n marginWidth=\"0\"\n title=\"MapBiomas Ãgua\"\n src=\"https://plataforma.agua.mapbiomas.org/water/venezuela\"\n />\n }\n { pathname === '/monitor-do-fogo' &&\n <iframe\n width={ window.innerWidth - 60 }\n height={ contentHeight }\n frameBorder=\"0\"\n scrolling=\"no\"\n marginHeight=\"0\"\n marginWidth=\"0\"\n title=\"MapBiomas Monitor do Fogo\"\n src=\"https://fogo.geodatin.com/\"\n />\n }\n { pathname === '/pistas-de-pouso' &&\n <iframe\n width={ window.innerWidth - 60 }\n height={ contentHeight }\n frameBorder=\"0\"\n scrolling=\"no\"\n marginHeight=\"0\"\n marginWidth=\"0\"\n title=\"MapBiomas Pistas de Pouso\"\n src=\"https://solvedgeo.users.earthengine.app/view/pistas-de-pouso\"\n />\n }\n { pathname === '/dinamica-dos-pivos' &&\n <iframe\n width={ window.innerWidth - 60 }\n height={ contentHeight }\n frameBorder=\"0\"\n scrolling=\"no\"\n marginHeight=\"0\"\n marginWidth=\"0\"\n title=\"MapBiomas Dinâmica dos Pivôs\"\n src=\"https://mapbiomas-workspace.earthengine.app/view/mapbiomas-agriculture-pivots\"\n />\n }\n { pathname === '/recifes-de-coral' &&\n <iframe\n width={ window.innerWidth - 60 }\n height={ contentHeight }\n frameBorder=\"0\"\n scrolling=\"no\"\n marginHeight=\"0\"\n marginWidth=\"0\"\n title=\"MapBiomas Recife de Coral\"\n src=\"https://julcansado.users.earthengine.app/view/recifes-de-coral\"\n />\n }\n </div>\n <Footer />\n <WarningNoteDialog />\n </div>\n );\n}\n\nexport default BasePage;\n","import { gql } from 'graphql.macro';\n\nexport const GET_POINT_DATA = gql`\n query GetPointData($lat: Float!, $lng: Float!) {\n territoryCategoriesList {\n id\n key\n parentId\n i18nStrings {\n language\n stringValue\n }\n }\n\n territoriesOnList(lat: $lat, lng: $lng) {\n id\n categoryId\n i18nStrings {\n language\n stringValue\n }\n }\n }\n`;\n","import React, { Fragment, useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport _ from 'lodash';\nimport { useLazyQuery, useQuery } from '@apollo/react-hooks';\nimport Cleave from 'cleave.js/react';\nimport * as turf from '@turf/turf';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport Fade from '@material-ui/core/Fade';\nimport FormControl from '@material-ui/core/FormControl';\nimport IconButton from '@material-ui/core/IconButton';\nimport InfoIcon from '@material-ui/icons/Info';\nimport MyLocationIcon from '@material-ui/icons/MyLocation';\nimport SearchIcon from '@material-ui/icons/Search';\nimport TextField from '@material-ui/core/TextField';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CloseIcon from '@material-ui/icons/Close';\nimport SquareFootIcon from '@material-ui/icons/SquareFoot';\nimport FlipToFrontIcon from '@material-ui/icons/FlipToFront';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport { GET_BASE_DATA } from '../../../../query';\nimport toast from '../../../../../../utils/toast';\n\nimport styles from './CARBox.module.scss';\n\nimport {\n GET_POINT_DATA,\n} from './query';\n\nconst API_URL =\n process.env.REACT_APP_GEE_API_URL ||\n 'https://staging.api.mapbiomas.org/api/v1/brazil';\n\nfunction fetchCARCodeLayerData(carCode) {\n return fetch(`${ API_URL }/maps/property/${ carCode }`, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.json());\n}\n\nconst useStyles = makeStyles((theme) => ({\n searchButtonActive: {\n backgroundColor: '#F1F1F1 !important',\n '& svg': {\n fill: `${theme.palette.primary.main} !important`,\n }\n }\n}));\n\nconst CustomTooltipSimple = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 12,\n fontWeight: 400,\n color: 'white',\n backgroundColor: '#444444',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n arrow: {\n color: '#444444'\n },\n}))(Tooltip);\n\nconst initialState = {\n code: '',\n};\n\nfunction CARForm({\n isVisible,\n ruralPropertyCode,\n onFlyTo = () => { },\n onSearchPoint = () => { },\n onRuralPropertyCodeChange = () => { },\n updateClientAppState = () => { },\n}) {\n\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n const [isSearching, setIsSearching] = useState(false);\n \n\n useEffect(() => {\n setState(initialState);\n }, [isVisible]);\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n // onRuralPropertyCodeChange(paramValue);\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n useEffect(() => {\n if (ruralPropertyCode) {\n setIsSearching(true);\n \n fetchCARCodeLayerData(ruralPropertyCode)\n .then((data) => {\n setIsSearching(false);\n\n const feature = _.get(data, '[0]');\n\n if (feature) {\n const bbox = turf.bbox(feature);\n const parsedBBox = [\n [bbox[1], bbox[0]],\n [bbox[3], bbox[2]],\n ];\n\n onFlyTo(parsedBBox);\n\n const line = turf.lineString(parsedBBox)\n const center = turf.center(line);\n const coordinates = _.get(center, 'geometry.coordinates');\n const point = {\n lat: _.first(coordinates),\n lng: _.last(coordinates),\n };\n\n onSearchPoint({\n feature,\n point\n });\n } else {\n toast('Não foi possÃvel localizar o CAR informado.', 'error');\n }\n });\n }\n }, [ruralPropertyCode]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n //setCode(state.code);\n\n const code = state.code;\n updateClientAppState({\n ruralPropertyCode: code\n });\n };\n\n return (\n <Fade in={isVisible}>\n <form className={styles.formWrapper} onSubmit={handleSubmit}>\n <FormControl fullWidth className={styles.formControl}>\n <TextField\n required\n id=\"code-field\"\n label=\"Código do CAR\"\n variant=\"outlined\"\n size=\"small\"\n value={state.code}\n onChange={handleTextChange.bind(this, 'code')}\n />\n </FormControl>\n {!isSearching &&\n <IconButton className={styles.searchIconButton} type=\"submit\">\n <SearchIcon />\n </IconButton>\n }\n {isSearching &&\n <span className={styles.loadingProgressWrapper}>\n <CircularProgress size={20} color=\"secondary\" />\n </span>\n }\n </form>\n </Fade>\n );\n}\n\nfunction CARInfo({\n data,\n headerIsVisible,\n showBeforeAndAfterMosaic,\n onClose = () => { handleClose() }\n}) {\n return (\n <Fade in={!!data}>\n <div className={classnames(styles.carInfoWrapper, {\n [styles.carInfoWrapperWithoutHeader]: !headerIsVisible,\n [styles.carInfoWrapperWithBeforeAndAfterMosaic]: showBeforeAndAfterMosaic,\n })}>\n <header className={styles.header}>\n <h2 className={styles.title}>Informações do CAR</h2>\n <IconButton className={styles.closeButton} onClick={onClose}>\n <CloseIcon />\n </IconButton>\n </header>\n <ul className={styles.dataList}>\n {_.map(data, (item) => {\n return (\n <li key={item.id} id={item.id} className={styles.dataListItem}>\n <span className={styles.dataListItemLabel}>{item.label}</span>\n <span className={styles.dataListItemValue}>{item.value}</span>\n </li>\n );\n })}\n </ul>\n </div>\n </Fade>\n );\n}\n\nexport default function CARBox({\n headerIsVisible,\n showBeforeAndAfterMosaic,\n onFlyTo = () => { },\n onFeatureChange = () => { },\n updateClientAppState = () => { }\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const classes = useStyles();\n const formatMessage = useFormatMessage();\n const [showPointForm, setShowPointForm] = useState(false);\n const [CARData, setCARData] = useState(null);\n \n const { data: baseData } = useQuery(GET_BASE_DATA);\n const ruralPropertyCode = _.get(baseData, 'app.ruralPropertyCode');\n \n const [\n loadPointData,\n {\n data: pointData,\n loading: loadingPointData\n }\n ] = useLazyQuery(GET_POINT_DATA);\n\n useEffect(() => {\n if (!loadingPointData && pointData) {\n const getTerritoriesOnList = _.get(pointData, 'territoriesOnList');\n const territoryCategoriesList = _.get(pointData, 'territoryCategoriesList');\n const filteredTerritoryCategoriesList = _.filter(territoryCategoriesList, ({ parentId }) => !parentId);\n const parsedData = _(filteredTerritoryCategoriesList)\n .map((category) => {\n const territoryData = _.find(getTerritoriesOnList, { categoryId: category.id });\n\n if (territoryData) {\n const categoryStringList = _.get(category, 'i18nStrings');\n const categorySelectedString = _.find(categoryStringList, { language: locale });\n\n const territoryStringList = _.get(territoryData, 'i18nStrings');\n const territorySelectedString = _.find(territoryStringList, { language: locale });\n\n if (territoryData.categoryId == 15 || territoryData.categoryId == 16) {\n return null;\n } else {\n return {\n id: territoryData.id,\n category: territoryData.categoryId,\n category_key: category.key,\n label: _.get(categorySelectedString, 'stringValue'),\n value: _.get(territorySelectedString, 'stringValue'),\n };\n }\n } else {\n return null;\n }\n })\n .compact()\n .value();\n\n setCARData(parsedData);\n setShowPointForm(false);\n }\n }, [pointData, loadingPointData]);\n\n const handleClose = () => {\n setCARData(null);\n onFeatureChange(null);\n };\n\n const togglePointForm = () => {\n const isVisibile = !showPointForm;\n\n if (isVisibile) {\n setCARData(null);\n }\n\n setShowPointForm(isVisibile);\n };\n\n const handleSearchPoint = ({ feature, point }) => {\n if (point) {\n loadPointData({ variables: point });\n onFeatureChange(feature);\n }\n };\n\n return (\n <Fragment>\n <div className={classnames(styles.wrapper, {\n [styles.wrapperWithoutHeader]: !headerIsVisible,\n [styles.wrapperWithBeforeAndAfterMosaic]: showBeforeAndAfterMosaic,\n })}>\n {/* <div id=\"coordinates-search\" className={styles.controlWrapper}>\n <CustomTooltipSimple arrow title=\"Localizar CAR\" placement=\"right\">\n <button\n className={classnames(styles.searchButton, {\n [classes.searchButtonActive]: showPointForm\n })}\n onClick={togglePointForm}\n >\n <FlipToFrontIcon />\n </button>\n </CustomTooltipSimple>\n </div> */}\n <CARForm\n isVisible={showPointForm}\n ruralPropertyCode={ruralPropertyCode}\n onFlyTo={onFlyTo}\n onSearchPoint={handleSearchPoint}\n onRuralPropertyCodeChange={(code) => {\n updateClientAppState({\n ruralPropertyCode: code\n });\n }}\n updateClientAppState={updateClientAppState}\n />\n </div>\n <CARInfo\n data={CARData}\n headerIsVisible={headerIsVisible}\n showBeforeAndAfterMosaic={showBeforeAndAfterMosaic}\n \n onClose={handleClose}\n />\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($classId: Int=41){\n classTreeLevels(id: $classId) {\n id\n defaultName\n i18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n classTreeNode {\n classe {\n classesTooltips {\n id\n classesTooltipImages {\n id\n source\n url\n i18nStrings {\n\t\t\t\t\t\t\t\tlanguage\n\t\t\t\t\t\t\t\tstringValue\n }\n }\n titleStrings {\n language\n stringValue\n }\n bodyStrings {\n language\n stringValue\n }\n }\n }\n }\n }\n }\n`\n","import React, { Fragment, useEffect, useState } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport classnames from 'classnames';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Fade from '@material-ui/core/Fade';\n\nimport TabList from '../../../../components/TabList';\n\nimport useWindowSize from '../../../../../../hooks/useWindowSize';\n\nimport { GET_BASE_DATA } from './query';\n\nimport styles from './ClassLegendDialog.module.scss';\n\nconst DEFAULT_PADDING = 890;\n\nexport default function ClassLegendDialog({\n headerIsVisible,\n isOpen,\n classId,\n onClose = () => {}\n}) {\n const windowSize = useWindowSize();\n const locale = localStorage.getItem('locale') || 'es';\n const [currentTab, setCurrentTab] = useState(1);\n const [tabItems, setTabItems] = useState([]);\n const { data: baseData, loading } = useQuery(GET_BASE_DATA, {\n variables: {\n classId\n },\n skip: !classId\n });\n\n const classesTooltipsList = _.get(baseData, 'classTreeLevels[0].classTreeNode.classe.classesTooltips');\n\n useEffect(() => {\n if (classesTooltipsList) {\n const parsedTabItems = _.map(classesTooltipsList, (item) => {\n const labelStringList = _.get(item, 'titleStrings');\n const labelSelectedString = _.find(labelStringList, { language: 'es' });\n\n return {\n id: item.id,\n label: _.get(labelSelectedString, 'stringValue')\n };\n });\n\n setTabItems(parsedTabItems);\n setCurrentTab(_.get(_.first(parsedTabItems), 'id'));\n }\n }, [classesTooltipsList]);\n\n const handleTabChange = (newValue) => {\n setCurrentTab(newValue);\n };\n\n const renderContent = () => {\n const selectedData = _.find(classesTooltipsList, { id: currentTab });\n\n if (!selectedData) { return null; }\n\n const bodyStringList = _.get(selectedData, 'bodyStrings');\n const bodySelectedString = _.find(bodyStringList, { language: locale });\n\n const imageList = _.get(selectedData, 'classesTooltipImages');\n\n return (\n <Fragment>\n <div\n className={ styles.contentDescription }\n dangerouslySetInnerHTML={{\n __html: _.get(bodySelectedString, 'stringValue')\n }}\n />\n { !_.isEmpty(imageList) &&\n <ul className={ styles.imageList }>\n { _.map(imageList, (image) => {\n const imageStringList = _.get(image, 'i18nStrings');\n const imageSelectedString = _.find(imageStringList, { language: locale });\n\n return (\n <li key={ `image-item-${ currentTab }-${ image.id }` }>\n <img src={ image.url } />\n <span>{ _.get(imageSelectedString, 'stringValue') }</span>\n </li>\n );\n }) }\n </ul>\n }\n </Fragment>\n );\n };\n\n const titleStringList = _.get(baseData, 'classTreeLevels[0].i18nStrings');\n const titleSelectedString = _.find(titleStringList, { language: locale });\n\n return (\n <Fade in={ isOpen && !loading }>\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperWithHeader]: headerIsVisible\n }) }>\n <div style={ { width: windowSize.width - DEFAULT_PADDING } }>\n <header className={ styles.header }>\n <h2 className={ styles.title }>{ _.get(titleSelectedString, 'stringValue') }</h2>\n <IconButton className={ styles.closeButton } onClick={ onClose }>\n <CloseIcon />\n </IconButton>\n </header>\n <div className={ styles.content }>\n <TabList\n itemSizes={{ xs: 4 }}\n items={ tabItems }\n value={ currentTab }\n onChange={ handleTabChange }\n />\n { renderContent() }\n </div>\n </div>\n </div>\n </Fade>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport _ from 'lodash';\nimport Cleave from 'cleave.js/react';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport Fade from '@material-ui/core/Fade';\nimport FormControl from '@material-ui/core/FormControl';\nimport IconButton from '@material-ui/core/IconButton';\nimport InfoIcon from '@material-ui/icons/Info';\nimport MyLocationIcon from '@material-ui/icons/MyLocation';\nimport SearchIcon from '@material-ui/icons/Search';\nimport TextField from '@material-ui/core/TextField';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport styles from './CoordinatesBox.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n searchButtonActive: {\n backgroundColor: '#F1F1F1 !important',\n '& svg': {\n fill: `${ theme.palette.primary.main } !important`,\n }\n }\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '2px 12px',\n fontSize: 12,\n color: 'white',\n backgroundColor: '#444444',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n '& a': {\n color: '#ffc65d',\n },\n '& ul': {\n paddingLeft: 24,\n },\n '& ul li': {\n listStyleType: 'disc'\n },\n },\n}))(Tooltip);\n\nconst CustomTooltipSimple = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 12,\n fontWeight: 400,\n color: 'white',\n backgroundColor: '#444444',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n arrow: {\n color: '#444444'\n },\n}))(Tooltip);\n\nconst initialState = {\n lat: '',\n lng: '',\n};\n\nfunction PointForm({\n isVisible,\n onSubmit = () => {}\n}) {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n\n useEffect(() => {\n setState(initialState);\n }, [isVisible]);\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const {\n lat,\n lng\n } = state;\n\n if (lat && lng) {\n const parsedLat = Number(_.replace(lat, ',', ''));\n const parsedLng = Number(_.replace(lng, ',', ''));\n\n onSubmit([parsedLat, parsedLng]);\n }\n };\n\n return (\n <Fade in={ isVisible }>\n <form className={ styles.formWrapper } onSubmit={ handleSubmit }>\n <CustomTooltip\n interactive\n placement=\"top-start\"\n title={\n <div dangerouslySetInnerHTML={ {__html: formatMessage('mapbiomas.map.coordinates_control.form.tooltip') } } />\n }\n >\n <InfoIcon className={ styles.infoIcon } />\n </CustomTooltip>\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n required\n id=\"lat-field\"\n label={ formatMessage('mapbiomas.map.coordinates_control.form.fields.latitude') }\n variant=\"outlined\"\n size=\"small\"\n value={ state.lat }\n InputProps={{\n inputComponent: Cleave,\n inputProps: {\n options: {\n numeral: true\n }\n }\n }}\n onChange={ handleTextChange.bind(this, 'lat') }\n />\n </FormControl>\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n required\n id=\"lng-field\"\n label={ formatMessage('mapbiomas.map.coordinates_control.form.fields.longitude') }\n variant=\"outlined\"\n size=\"small\"\n value={ state.lng }\n InputProps={{\n inputComponent: Cleave,\n inputProps: {\n options: {\n numeral: true\n }\n }\n }}\n onChange={ handleTextChange.bind(this, 'lng') }\n />\n </FormControl>\n <IconButton className={ styles.searchIconButton } type=\"submit\">\n <MyLocationIcon />\n </IconButton>\n </form>\n </Fade>\n );\n}\n\nexport default function CoordinatesBox({\n headerIsVisible,\n showBeforeAndAfterMosaic,\n onSubmit = () => {},\n}) {\n const classes = useStyles();\n const formatMessage = useFormatMessage();\n const [showPointForm, setShowPointForm] = useState(false);\n\n const togglePointForm = () => {\n setShowPointForm(!showPointForm);\n };\n\n return (\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperWithoutHeader]: !headerIsVisible,\n [styles.wrapperWithBeforeAndAfterMosaic]: showBeforeAndAfterMosaic,\n }) }>\n <div id=\"coordinates-search\" className={ styles.controlWrapper }>\n <CustomTooltipSimple arrow title={ formatMessage('mapbiomas.map.coordinates_control.tooltip') } placement=\"right\">\n <button\n className={ classnames(styles.searchButton, {\n [classes.searchButtonActive]: showPointForm\n }) }\n onClick={ togglePointForm }\n >\n <SearchIcon />\n </button>\n </CustomTooltipSimple>\n </div>\n <PointForm\n isVisible={ showPointForm }\n onSubmit={ onSubmit }\n />\n </div>\n );\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nfunction tooltipFormatter(params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params.seriesName }</span>`;\n\n const value = _.isObject(params.data) ? params.data.value : params.data;\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n const percentageFormatted = numbro(params.percent / 100).format({\n output: 'percent',\n mantissa: 2\n });\n const paramValue = `<span>${ colorSpan(params.color) } ${ _.get(params, 'data.name') }: ${ valueLabel } (${ percentageFormatted })</span>`;\n\n str += paramValue;\n\n return str;\n}\n\nexport default function PieChart({\n colors,\n serie,\n}) {\n return (\n <ReactEcharts\n style={ { height: 240, width: '100%' } }\n option={{\n grid: {\n left: 40,\n top: 0,\n right: 40,\n bottom: 20,\n // containLabel: true\n },\n tooltip: {\n confine: true,\n trigger: 'item',\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 13\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n formatter: tooltipFormatter\n },\n legend: {\n show: false\n },\n series: [\n {\n animation: false,\n name: serie.title,\n color: colors ? colors : ['#197D19', '#FFF27F', '#4BE64C', '#EEBFD6', '#D1C868', '#777'],\n type: 'pie',\n radius: '85%',\n data: serie.data,\n label: {\n show: false\n }\n }\n ],\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download',\n }\n }\n },\n }\n }\n />\n );\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nfunction tooltipFormatter(params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params[0].axisValue }</span>`;\n\n params.forEach((item) => {\n const value = _.isObject(item.data) ? item.data.value : item.data;\n\n if (value) {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n const paramValue = `<span>${ colorSpan(item.color) } ${ item.seriesName }: ${ valueLabel }</span>`;\n\n str += paramValue;\n }\n });\n\n return str;\n}\n\nexport default function LineChart({\n categories = [],\n series = [],\n}) {\n return (\n <ReactEcharts\n style={ { height: 380 } }\n option={ {\n tooltip: {\n confine: true,\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 13\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n trigger: \"axis\",\n formatter: tooltipFormatter,\n },\n grid: {\n top: \"8%\",\n right: \"20px\",\n bottom: \"8%\",\n left: \"20px\",\n containLabel: true\n },\n xAxis: {\n type: \"category\",\n axisPointer: {\n type: \"shadow\"\n },\n axisLabel: {\n fontSize: 11,\n color: \"#767676\"\n },\n axisLine: {\n color: \"#DDD\"\n },\n boundaryGap: false,\n data: categories\n },\n legend: {\n show: false\n },\n yAxis: {\n axisTick: {\n show: false\n },\n axisLine: {\n color: \"#DDD\"\n },\n splitLine: {\n lineStyle: {\n color: \"rgba(0, 0, 0, 0.05)\"\n }\n },\n axisLabel: {\n formatter: (value) => {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n \n return valueLabel;\n },\n fontSize: 11,\n color: \"#767676\"\n }\n },\n series: _.map(series, (serie) => {\n return {\n ...serie,\n type: 'line',\n smooth: true,\n };\n }),\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download',\n }\n }\n },\n } }\n notMerge={ true }\n />\n );\n}\n","import React from 'react'\nimport _ from 'lodash'\nimport numbro from 'numbro'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\n\nimport styles from './StickyTable.module.scss'\n\nconst formatNumber = (value, mantissa = 0) => {\n if (_.isNil(value)) { return '-'; }\n\n return numbro(value).format({\n thousandSeparated: true,\n mantissa\n });\n};\n\nexport default function StickyTable({\n rows,\n columns,\n mantissa,\n}) {\n return (\n <div className={ styles.tableWrapper }>\n <div>\n <span className={ styles.categoriesTitle }>Classes</span>\n <ul className={ styles.tableCategoriesList }>\n { _.map(rows, (row) => (\n <li\n key={ `table-row-${ _.kebabCase(row.name) }-sticky-column` }\n style={{ paddingLeft: _.get(row, 'padding', 12) }}\n >\n { row.name }\n </li>\n )) }\n </ul>\n </div>\n <TableContainer>\n <Table size=\"small\" className={ styles.table }>\n <TableHead>\n <TableRow>\n { _.map(columns, (column) => (\n <TableCell\n align=\"right\"\n key={ `table-column-${ _.kebabCase(column) }` }\n className={ styles.categoryCell }\n >\n { column }\n </TableCell>\n )) }\n </TableRow>\n </TableHead>\n <TableBody>\n { _.map(rows, (row) => (\n <TableRow key={ `table-row-${ _.kebabCase(row.name) }` }>\n { _.map(columns, (column, index) => (\n <TableCell\n key={ `table-row-${ row.name }-column-${ column }` }\n align=\"right\"\n >\n { formatNumber(row.data[column] || row.data[index], mantissa) }\n </TableCell>\n )) }\n </TableRow>\n )) }\n </TableBody>\n </Table>\n </TableContainer>\n </div>\n )\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($territoryIds: [Int!]!, $classTreeId: Int!) {\n classTreeList {\n id\n key\n i18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n mvClassTreeLevelsUi {\n id\n classId\n color\n positionInTree\n level\n parentId\n defaultName\n i18nStrings {\n language\n stringValue\n }\n }\n }\n\n coverageClassificationDataList: coverageClassificationDataByTreeList(\n classTreeId: $classTreeId,\n\t\t\tbufferId: null,\n\t\t\tterritoryIds: $territoryIds\n ) {\n territoryId\n year\n classTreeNodeId\n areaInHa\n }\n }\n`;\n","import React from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport numbro from 'numbro';\nimport { FormattedMessage } from 'react-intl';\nimport { CSVLink } from 'react-csv';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CloseIcon from '@material-ui/icons/Close';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport Fade from '@material-ui/core/Fade';\nimport IconButton from '@material-ui/core/IconButton';\n\nimport BaseForm from '../../../../../../layout/Header/components/BaseForm';\n\nimport PieChart from '../../components/PieChart';\nimport LineChart from '../../components/LineChart';\nimport StickyTable from '../../components/StickyTable';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport { GET_BASE_DATA } from './query';\n\nimport styles from './DashboardDialogCoverageClassesContent.module.scss';\n\nconst formatNumber = (value) => numbro(value).format({\n thousandSeparated: true,\n mantissa: 2\n});\n\nconst useStyles = makeStyles((theme) => ({\n yearValue: {\n color: theme.palette.primary.main\n },\n printButton: {\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n }\n },\n}));\n\nexport default function DashboardDialogCoverageClassesContent({\n activeYear,\n baseParams,\n classTreeId\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n const classes = useStyles();\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n const activeClassesLevelsListItems = _.get(baseParams, 'activeClassesLevelsListItems');\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryIds: territoryIds,\n classTreeId: classTreeId\n },\n skip: _.isEmpty(territoryIds) || !classTreeId\n });\n\n const classTreesList = _.get(baseData, 'classTreeList');\n const classesLevelsList = _.get(_.find(classTreesList, { id: classTreeId }), 'mvClassTreeLevelsUi');\n\n const classesLevelsListByLevel1 = _.filter(classesLevelsList, { level: 1 });\n const filteredClassesLevelsListByLevel1 = _.filter(classesLevelsListByLevel1, (item) => {\n return _.includes(activeClassesLevelsListItems, item.id);\n });\n const filteredClassesLevelsListByLevel1Ids = _.map(filteredClassesLevelsListByLevel1, 'id');\n const activeClassesLevelsList = _.filter(classesLevelsList, (item) => _.includes(activeClassesLevelsListItems, item.id));\n const coverageClassificationDataList = _.get(baseData, 'coverageClassificationDataList');\n const aggregatedCoverageClassificationDataList = _.values(_.reduce(coverageClassificationDataList, (result, obj) => {\n const key = `${ obj.year }-${ obj.classTreeNodeId }`;\n const nextValue = result[key] ? result[key].areaInHa + obj.areaInHa : obj.areaInHa;\n\n result[key] = {\n ...obj,\n areaInHa: nextValue\n };\n\n return result;\n }, {}));\n\n const parsedData = _.filter(_.map(aggregatedCoverageClassificationDataList, (item) => {\n const classData = _.find(classesLevelsList, { id: item.classTreeNodeId });\n\n return {\n year: Number(_.replace(item.year, '_', '')),\n areaInHa: item.areaInHa,\n classData,\n };\n }), 'classData');\n const years = _.sortBy(_.uniq(_.map(parsedData, 'year')));\n\n const parsedClassesLevelsList = _.map(activeClassesLevelsList, (classData) => {\n const stringList = _.get(classData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const className = `${ _.join(_.get(classData, 'positionInTree'), '.') }. ${ _.get(selectedString, 'stringValue') }`;\n\n return {\n ...classData,\n name: className,\n data: _.map(years, (year) => {\n const coverageClassificationData = _.find(parsedData, (item) => {\n return item.year === year &&\n item.classData.id === classData.id;\n });\n\n return coverageClassificationData ? _.get(coverageClassificationData, 'areaInHa') : null\n })\n };\n });\n\n const pieChartData = _(parsedData)\n .filter((item) => {\n return item.year === activeYear &&\n _.includes(filteredClassesLevelsListByLevel1Ids, _.get(item, 'classData.id'));\n })\n .map((item) => {\n const stringList = _.get(item.classData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n\n return {\n name:_.get(selectedString, 'stringValue'),\n value: _.get(item, 'areaInHa'),\n itemStyle: {\n color: _.get(item, 'classData.color')\n },\n };\n })\n .value();\n\n const lineChartSeriesData = _.map(parsedClassesLevelsList, (item) => {\n return {\n name: item.name,\n color: item.color,\n data: item.data,\n level: item.level,\n padding: item.level * 12,\n };\n });\n\n const renderLoading = () => {\n return (\n <div className={ styles.loadingWrapper }>\n <CircularProgress />\n </div>\n );\n };\n\n const renderDownloadTableLink = () => {\n if (_.isEmpty(years) || _.isEmpty(lineChartSeriesData)) {\n return null;\n }\n\n let headers = [\n { key: 'class', label: 'Classe' },\n ];\n\n _.each(years, (year) => {\n headers.push({ key: _.toString(year), label: _.toString(year) });\n });\n\n const parsedData = _(lineChartSeriesData)\n .map((serie) => {\n let rowData = { class: _.get(serie, 'name') };\n\n _.each(_.get(serie, 'data'), (value, index) => {\n rowData[_.toString([years[index]])] = value;\n });\n\n return rowData;\n })\n .flatten()\n .value();\n\n return (\n <CSVLink\n data={ parsedData }\n headers={ headers }\n className={ classnames(styles.csvDownloadLink, classes.printButton) }\n filename=\"MapBiomas - Tabela de Dados.csv\"\n >\n <CloudDownloadIcon />\n <span>Download</span>\n </CSVLink>\n );\n };\n\n const renderContent = () => {\n return (\n <div className={ styles.content }>\n {/* <BaseForm inline /> */}\n <div className={ styles.chartsWrapper }>\n <div>\n <h3><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title\" values={ { year: activeYear } } /></h3>\n <PieChart\n serie={ {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.unit'),\n data: pieChartData\n } }\n />\n </div>\n <div>\n <h3><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title\" /></h3>\n <LineChart\n categories={ years }\n series={ lineChartSeriesData }\n />\n </div>\n </div>\n <div className={ styles.dataTableWrapper }>\n <div className={ styles.tableHeader }>\n <h3 className={ styles.tableTitle }>\n <b><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.table.title\" /></b>\n <span><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.table.subtitle\" /></span>\n </h3>\n { renderDownloadTableLink() }\n </div>\n <StickyTable\n columns={ years }\n rows={ lineChartSeriesData }\n />\n </div>\n </div>\n );\n };\n\n if (loadingBaseData) {\n return renderLoading();\n } else if (!loadingBaseData && territories) {\n return renderContent();\n } else {\n return null;\n }\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($territoryIds: [Int!]!, $classTreeId: Int!) {\n classTreeList {\n id\n key\n i18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n mvClassTreeLevelsUi {\n id\n classId\n color\n positionInTree\n level\n parentId\n defaultName\n }\n }\n\n coverageClassificationDataList: coverageClassificationDataByTreeList(\n classTreeId: $classTreeId,\n\t\t\tbufferId: null,\n\t\t\tterritoryIds: $territoryIds\n ) {\n territoryId\n year\n classTreeNodeId\n areaInHa\n }\n }\n`;\n","import React from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport numbro from 'numbro';\nimport { CSVLink } from 'react-csv';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CloseIcon from '@material-ui/icons/Close';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport Fade from '@material-ui/core/Fade';\nimport IconButton from '@material-ui/core/IconButton';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\n\nimport BaseForm from '../../../../../../layout/Header/components/BaseForm';\n\nimport PieChart from '../../components/PieChart';\nimport LineChart from '../../components/LineChart';\nimport StickyTable from '../../components/StickyTable';\n\nimport { GET_BASE_DATA } from './query';\n\nimport styles from './DashboardDialogCoverageNaturalOrAnthropicContent.module.scss';\n\nconst formatNumber = (value) => numbro(value).format({\n thousandSeparated: true,\n mantissa: 2\n});\n\nconst useStyles = makeStyles((theme) => ({\n yearValue: {\n color: theme.palette.primary.main\n },\n printButton: {\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n }\n },\n}));\n\nexport default function DashboardDialogCoverageNaturalOrAnthropicContent({\n activeYear,\n baseParams,\n classTreeId\n}) {\n const classes = useStyles();\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n const activeClassesLevelsListItems = _.get(baseParams, 'activeClassesLevelsListItems');\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryIds: territoryIds,\n classTreeId: classTreeId\n },\n skip: _.isEmpty(territoryIds) || !classTreeId\n });\n\n const classTreesList = _.get(baseData, 'classTreeList');\n const classesLevelsList = _.get(_.find(classTreesList, { key: 'natural_or_anthropic' }), 'mvClassTreeLevelsUi');\n\n const classesLevelsListByLevel1 = _.filter(classesLevelsList, { level: 1 });\n const filteredClassesLevelsListByLevel1Ids = _.map(classesLevelsListByLevel1, 'id');\n\n const coverageClassificationDataList = _.get(baseData, 'coverageClassificationDataList');\n const aggregatedCoverageClassificationDataList = _.values(_.reduce(coverageClassificationDataList, (result, obj) => {\n const key = `${ obj.year }-${ obj.classTreeNodeId }`;\n const nextValue = result[key] ? result[key].areaInHa + obj.areaInHa : obj.areaInHa;\n\n result[key] = {\n ...obj,\n areaInHa: nextValue\n };\n\n return result;\n }, {}));\n const filteredCoverageClassificationDataList = _.filter(aggregatedCoverageClassificationDataList, (item) => !_.includes(filteredClassesLevelsListByLevel1Ids, item.id));\n\n const parsedData = _(filteredCoverageClassificationDataList)\n .map((item) => {\n const classData = _.find(classesLevelsList, { id: item.classTreeNodeId });\n \n return {\n year: Number(_.replace(item.year, '_', '')),\n areaInHa: item.areaInHa,\n classData,\n };\n })\n .filter((item) => item.classData && _.includes(activeClassesLevelsListItems, _.get(item, 'classData.id')))\n .value();\n const years = _.sortBy(_.uniq(_.map(parsedData, 'year')));\n\n const parsedClassesLevelsByLevel1Data = _.map(classesLevelsListByLevel1, (classData) => {\n return {\n ...classData,\n name: _.get(classData, 'defaultName'),\n data: _.map(years, (year) => {\n const filteredCoverageClassificationData = _.filter(parsedData, (item) => {\n return item.year === year &&\n item.classData.parentId === classData.id;\n });\n\n return _.sumBy(filteredCoverageClassificationData, 'areaInHa');\n })\n }\n });\n const parsedClassesLevelsByLevel1PieData = _.map(classesLevelsListByLevel1, (classData) => {\n const filteredData = _.filter(parsedData, (item) => {\n return item.year === activeYear &&\n item.classData.parentId === classData.id;\n });\n\n return {\n ...classData,\n name: _.get(classData, 'defaultName'),\n value: _.sumBy(filteredData, 'areaInHa'),\n itemStyle: {\n color: _.get(classData, 'color')\n },\n }\n });\n\n const renderLoading = () => {\n return (\n <div className={ styles.loadingWrapper }>\n <CircularProgress />\n </div>\n );\n };\n\n const renderDownloadTableLink = () => {\n if (_.isEmpty(years) || _.isEmpty(parsedClassesLevelsByLevel1Data)) {\n return null;\n }\n\n let headers = [\n { key: 'class', label: 'Classe' },\n ];\n\n _.each(years, (year) => {\n headers.push({ key: _.toString(year), label: _.toString(year) });\n });\n\n const parsedData = _(parsedClassesLevelsByLevel1Data)\n .map((serie) => {\n let rowData = { class: _.get(serie, 'name') };\n\n _.each(_.get(serie, 'data'), (value, index) => {\n rowData[_.toString([years[index]])] = value;\n });\n\n return rowData;\n })\n .flatten()\n .value();\n\n return (\n <CSVLink\n data={ parsedData }\n headers={ headers }\n className={ classnames(styles.csvDownloadLink, classes.printButton) }\n filename=\"MapBiomas - Tabela de Dados.csv\"\n >\n <CloudDownloadIcon />\n <span>Download</span>\n </CSVLink>\n );\n };\n\n const renderContent = () => {\n return (\n <div className={ styles.content }>\n {/* <BaseForm inline /> */}\n <div className={ styles.chartsWrapper }>\n <div>\n <h3>Visualização por classe (NÃvel 1 - { activeYear })</h3>\n <PieChart\n serie={ {\n title: 'Ãrea (ha)',\n data: parsedClassesLevelsByLevel1PieData\n } }\n />\n </div>\n <div>\n <h3>Série histórica</h3>\n <LineChart\n categories={ years }\n series={ parsedClassesLevelsByLevel1Data }\n />\n </div>\n </div>\n <div className={ styles.dataTableWrapper }>\n <div className={ styles.tableHeader }>\n <h3 className={ styles.tableTitle }>\n <b>Tabela de dados</b>\n <span>(valores em hectares)</span>\n </h3>\n { renderDownloadTableLink() }\n </div>\n <StickyTable\n columns={ years }\n rows={ parsedClassesLevelsByLevel1Data }\n />\n </div>\n </div>\n );\n };\n\n if (loadingBaseData) {\n return renderLoading();\n } else if (!loadingBaseData && territories) {\n return renderContent();\n } else {\n return null;\n }\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData {\n classesLevelsList {\n id\n color\n positionInTree\n level\n parentId\n defaultName\n }\n }\n`;\n","import React from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\n\nimport PieChart from '../../components/PieChart';\nimport LineChart from '../../components/LineChart';\n\nimport { GET_BASE_DATA } from './query';\n\nimport styles from './DashboardDialogQualityContent.module.scss';\n\nconst formatNumber = (value) => numbro(value).format({\n thousandSeparated: true,\n mantissa: 2\n});\n\nconst sampleData = {\n categories: ['1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992', '1993', '1994', '1995', '1996', '1997', '1998', '1999', '2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018'],\n series: [\n {\n areaStyle: {},\n name: 'Floresta',\n data: [595674939.89, 595858208.39, 592223534.09, 587669613.43, 584412308.18, 582285405.14, 580003887.87, 577174530.25, 573872548.39, 570535582.59, 566986828.49, 563791577.33, 560581814.33, 558036261.05, 554711478.22, 551899400.22, 549925638.40, 547103441.21, 542411487.15, 539024545.57, 536274323.86, 534123915.16, 532939096.89, 531903157.80, 531258183.03, 531330861.09, 530767363.33, 530151910.14, 529092772.60, 527471134.82, 526084434.15, 524394580.56, 522312764.17, 518937915.7],\n },\n {\n areaStyle: {},\n name: 'Formação Natural não Florestal',\n data: [59459326.34, 59179131.53, 58436262.78, 57959280.14, 57371957.47, 56949802.89, 56693940.37, 56236429.20, 56349333.57, 56243071.31, 56114923.96, 55743441.27, 55632730.39, 55659695.87, 55774630.94, 55860585.60, 56000764.22, 55731141.96, 55570984.87, 54937312.80, 54642890.35, 54490380.13, 54278787.66, 53953672.12, 53544233.85, 53133646.89, 52758293.99, 52463272.89, 52031282.44, 51728929.54, 51210931.00, 50766763.92, 50606236.86, 50036334.3],\n },\n {\n areaStyle: {},\n name: 'Agropecuária',\n data: [177441572.66, 177009733.00, 182071397.87, 187016746.02, 190697616.49, 193022492.96, 195601038.43, 199090181.74, 202013914.92, 205463203.72, 209432383.89, 212795934.74, 215986009.67, 218852381.32, 221452402.41, 223879197.86, 225756355.93, 229024368.38, 233452071.06, 237136160.36, 240131790.74, 242291337.07, 243553185.67, 244705951.05, 245539736.32, 246295866.24, 247007504.61, 247980862.10, 249293550.81, 251012446.09, 252782607.65, 255149573.21, 257114716.61, 260671891.18],\n },\n {\n areaStyle: {},\n name: 'Ãrea não Vegetada',\n data: [3342355.08, 3216005.90, 3090312.77, 3106092.11, 3058678.31, 3060490.55, 3026351.43, 3049558.73, 3175548.75, 3140836.06, 3128865.31, 3134419.50, 3123874.58, 3183666.99, 3273163.95, 3394125.47, 3513908.78, 3520347.73, 3545410.84, 3518871.84, 3522706.66, 3556286.07, 3583335.56, 3631760.05, 3669189.27, 3726614.12, 3784220.84, 3845488.16, 4019087.81, 4083616.40, 4212398.62, 4338027.67, 4557028.78, 4877005.18],\n },\n {\n areaStyle: {},\n name: 'Corpo D\\'água',\n data: [15630653.94, 16286108.19, 15727862.32, 15797880.51, 16009310.45, 16231926.72, 16225103.89, 15999769.58, 16139201.80, 16167840.49, 15887530.26, 16084888.32, 16224919.41, 15817499.31, 16337881.14, 16516505.25, 16353296.41, 16170516.25, 16569834.75, 16932916.26, 16978019.62, 17087793.62, 17195309.71, 17355219.82, 17538258.83, 17062605.45, 17232261.96, 17108171.33, 17112991.26, 17253461.42, 17259018.79, 16900270.66, 16958455.32, 17026435.31],\n },\n {\n areaStyle: {},\n name: 'Não observado',\n data: [26001.45, 25662.35, 25479.53, 25237.14, 24978.46, 24731.09, 24527.38, 24379.86, 24301.93, 24315.19, 24317.45, 24588.21, 25500.97, 25344.83, 25292.71, 25034.96, 24885.62, 25033.82, 25060.70, 25042.53, 25118.14, 25137.31, 25133.88, 25088.53, 25248.06, 25255.58, 25204.65, 25144.75, 25164.45, 25261.08, 25459.14, 25633.35, 25647.61, 25267.58],\n },\n ]\n};\n\nexport default function DashboardDialogQualityContent({\n activeYear,\n baseParams,\n}) {\n const territory = _.get(baseParams, 'territory');\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryId: territory\n },\n skip: !territory\n });\n\n const renderLoading = () => {\n return (\n <div className={ styles.loadingWrapper }>\n <CircularProgress />\n </div>\n );\n };\n\n const renderContent = () => {\n return (\n <div className={ styles.content }>\n <div className={ styles.chartsWrapper }>\n <div>\n <h3>Visualização por classe</h3>\n <PieChart\n colors={ ['#FFFF1C', '#A0E260', '#FFD11A', '#FF1919'] }\n serie={ {\n title: 'Total',\n data: [\n { name: 'Entre 4 e 6 observações', value: 36.98 },\n { name: 'Acima de 6 observações', value: 35.33 },\n { name: 'Entre 1 e 3 observações', value: 24.8 },\n { name: 'Nenhuma observação', value: 2.89 },\n ]\n } }\n />\n </div>\n <div>\n <h3>Série histórica</h3>\n <LineChart\n area\n categories={ sampleData.categories }\n series={ sampleData.series }\n />\n </div>\n </div>\n <div className={ styles.dataTableWrapper }>\n <div className={ styles.tableHeader }>\n <h3 className={ styles.tableTitle }>Tabela de dados</h3>\n {/* <Button\n color=\"secondary\"\n size=\"small\"\n variant=\"contained\"\n startIcon={ <CloudDownloadIcon /> }\n >\n Download\n </Button> */}\n </div>\n <div className={ styles.tableWrapper }>\n <Table size=\"small\" className={ styles.table }>\n <TableHead>\n <TableRow>\n <TableCell>Classes</TableCell>\n { _.map(sampleData.categories, (year) => {\n return (\n <TableCell key={ `table-header-cell-${ year }` } align=\"right\">{ year }</TableCell>\n );\n }) }\n </TableRow>\n </TableHead>\n <TableBody>\n { _.map(sampleData.series, (serie, index) => {\n return (\n <TableRow key={ `table-row-serie-${ index }` }>\n <TableCell component=\"th\" scope=\"row\">{ serie.name }</TableCell>\n { _.map(serie.data, (value, cellIndex) => {\n return (\n <TableCell key={ `table-row-${ index }-cell-${ cellIndex }` } align=\"right\">{ value ? formatNumber(value) : '-' }</TableCell>\n );\n }) }\n </TableRow>\n );\n }) }\n </TableBody>\n </Table>\n </div>\n </div>\n </div>\n );\n };\n\n if (loadingBaseData) {\n return renderLoading();\n } else if (!loadingBaseData && territory) {\n return renderContent();\n } else {\n return null;\n }\n}\n","import React from 'react';\nimport numbro from 'numbro';\nimport classnames from 'classnames';\nimport { FormattedMessage } from 'react-intl';\nimport { CSVLink } from 'react-csv';\nimport _ from 'lodash';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\n\nimport useWindowSize from '../../../../../../../../hooks/useWindowSize';\n\nimport styles from './DashboardDialogTransitionContent.module.scss';\n\nfunction formatValue(value) {\n if (!value) { return '-'; }\n\n return numbro(value).format({\n thousandSeparated: true,\n mantissa: 2\n });\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%'\n },\n printButton: {\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n }\n },\n table: {\n '& thead td': {\n borderBottom: 'none',\n },\n '& th': {\n fontWeight: 400,\n backgroundColor: '#fafafa'\n }\n }\n}));\n\nexport default function TransitionMatrixTable({\n fromYear,\n toYear,\n nodes,\n links,\n}) {\n const classes = useStyles();\n const windowSize = useWindowSize();\n\n const sourceCategories = _.sortBy(_.uniq(_.map(links, 'source')));\n const targetCategories = _.sortBy(_.uniq(_.map(links, 'target')));\n\n const renderDownloadTableLink = () => {\n if (_.isEmpty(links)) {\n return null;\n }\n\n let headers = [\n { key: 'fromCategory', label: '' },\n ];\n\n _.each(targetCategories, (targetCategory) => {\n const categoryData = _.find(nodes, { id: targetCategory });\n\n headers.push({\n key: _.kebabCase(`${ _.get(categoryData, 'label') } (${ toYear })`),\n label: `${ _.get(categoryData, 'label') } (${ toYear })`\n });\n });\n\n headers.push({\n key: 'toCategoryTotal',\n label: `Total (${ toYear })`\n });\n\n let parsedData = _(sourceCategories)\n .map((sourceCategory) => {\n const rowTotal = _.sumBy(links, (link) => {\n if (link.source === sourceCategory) {\n return link.value;\n }\n return 0;\n });\n const categoryData = _.find(nodes, { id: sourceCategory });\n let rowData = { fromCategory: `${ _.get(categoryData, 'label') } (${ fromYear })` };\n\n _.each(targetCategories, (targetCategory) => {\n const categoryData = _.find(nodes, { id: targetCategory });\n const linkData = _.find(links, { source: sourceCategory, target: targetCategory });\n const value = _.get(linkData, 'value');\n\n rowData[_.kebabCase(`${ _.get(categoryData, 'label') } (${ toYear })`)] = value;\n });\n\n rowData['toCategoryTotal'] = rowTotal;\n\n return rowData;\n })\n .flatten()\n .value();\n\n let totalRow = {\n fromCategory: `Total (${ fromYear })`,\n toCategoryTotal: _.sumBy(links, 'value'),\n };\n\n _.each(targetCategories, (targetCategory) => {\n const categoryData = _.find(nodes, { id: targetCategory });\n const columnTotal = _.sumBy(links, (link) => {\n if (link.target === targetCategory) {\n return link.value;\n }\n return 0;\n });\n\n totalRow[_.kebabCase(`${ _.get(categoryData, 'label') } (${ toYear })`)] = columnTotal;\n });\n\n parsedData = _.concat(parsedData, totalRow);\n\n return (\n <CSVLink\n data={ parsedData }\n headers={ headers }\n className={ classnames(styles.csvDownloadLink, classes.printButton) }\n filename=\"MapBiomas - Tabela de Dados.csv\"\n >\n <CloudDownloadIcon />\n <span>Download</span>\n </CSVLink>\n );\n };\n\n return (\n <div className={ styles.tableContainer } style={ { maxHeight: windowSize.height - 303 } }>\n <div className={ styles.tableHeader }>\n <h3 className={ styles.tableTitle }>\n <b><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.table.title\" /></b>\n <span><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.table.subtitle\" /></span>\n </h3>\n { renderDownloadTableLink() }\n </div>\n <div className={ styles.tableWrapper }>\n <div className={ styles.tableLeftTag }><span>{ fromYear }</span></div>\n <div className={ styles.tableTopTag }><span>{ toYear }</span></div>\n <div className={ styles.tableLeftCategoriesWrapper }>\n <ul className={ styles.tableCategoriesList }>\n { _.map(sourceCategories, (sourceCategory) => {\n const categoryData = _.find(nodes, { id: sourceCategory });\n\n return (\n <li key={ `source-item-${ sourceCategory }` }>{ _.get(categoryData, 'label') }</li>\n );\n }) }\n <li>Total</li>\n </ul>\n </div>\n <TableContainer>\n <Table size=\"small\" className={ classnames(classes.table, styles.matrixTable) }>\n <TableHead>\n <TableRow>\n { _.map(targetCategories, (targetCategory) => {\n const categoryData = _.find(nodes, { id: targetCategory });\n\n return (\n <TableCell align=\"right\" key={ `target-${ targetCategory }` } className={ styles.categoryCell }>{ _.get(categoryData, 'label') }</TableCell>\n );\n }) }\n <TableCell align=\"right\">Total</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n { _.map(sourceCategories, (sourceCategory) => {\n const rowTotalByCategory = _.sumBy(links, (link) => {\n const isChild = _.includes(link.target, '.');\n\n if (isChild && link.source === sourceCategory) {\n const baseParentId = link.target.split('.')[0].substring(0, 1);\n const parentData = _.find(links, (link) => {\n return link.source === sourceCategory && link.target.startsWith(baseParentId + '-');\n });\n\n if (parentData) {\n return 0;\n } else {\n return link.value;\n }\n }\n\n if (link.source === sourceCategory) {\n return link.value;\n }\n return 0;\n });\n\n return (\n <TableRow key={ `source-${ sourceCategory }` }>\n { _.map(targetCategories, (targetCategory) => {\n const linkData = _.find(links, { source: sourceCategory, target: targetCategory });\n const value = _.get(linkData, 'value');\n\n return (\n <TableCell\n key={ `value-${ sourceCategory }-${ targetCategory }` }\n align=\"right\"\n >\n { formatValue(value) }\n </TableCell>\n );\n }) }\n <TableCell align=\"right\">\n { formatValue(rowTotalByCategory) }\n </TableCell>\n </TableRow>\n );\n }) }\n <TableRow>\n { _.map(targetCategories, (targetCategory) => {\n const columnTotalByCategory = _.sumBy(links, (link) => {\n const isChild = _.includes(link.source, '.');\n\n if (isChild && link.target === targetCategory) {\n const baseParentId = link.source.split('.')[0].substring(0, 1);\n const parentData = _.find(links, (link) => {\n return link.target === targetCategory && link.source.startsWith(baseParentId + '-');\n });\n\n if (parentData) {\n return 0;\n } else {\n return link.value;\n }\n }\n\n if (link.target === targetCategory) {\n return link.value;\n }\n return 0;\n });\n\n return (\n <TableCell\n align=\"right\"\n key={ `target-total-${ targetCategory }` }\n className={ styles.categoryCell }\n >\n { formatValue(columnTotalByCategory) }\n </TableCell>\n );\n }) }\n <TableCell />\n {/* <TableCell align=\"right\">{ formatValue(_.sumBy(links, 'value')) }</TableCell> */}\n </TableRow>\n </TableBody>\n </Table>\n </TableContainer>\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nimport { ResponsiveSankey } from '@nivo/sankey';\n\nfunction tooltipFormatter(value) {\n if (!value) { return ''; }\n\n const valueFormatted = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return `${ valueFormatted } ha`\n}\n\nconst MyResponsiveSankey = ({ data, onClick = () => {} }) => (\n <ResponsiveSankey\n data={data}\n margin={{ top: 0, right: 180, bottom: 10, left: 180 }}\n align=\"justify\"\n colors={ (node) => {\n return node.color;\n } }\n nodeOpacity={1}\n nodeInnerPadding={3}\n nodeSpacing={24}\n nodeBorderWidth={0}\n nodeBorderColor={{ from: 'color', modifiers: [ [ 'darker', 0.8 ] ] }}\n linkOpacity={0.65}\n linkHoverOpacity={0.65}\n linkHoverOthersOpacity={0.1}\n enableLinkGradient={true}\n labelPosition=\"outside\"\n labelPadding={16}\n labelTextColor={{ from: 'color', modifiers: [ [ 'darker', 1 ] ] }}\n animate={true}\n motionStiffness={140}\n motionDamping={13}\n label={ (node) => {\n return node.label;\n } }\n tooltipFormat={ tooltipFormatter }\n onClick={ onClick }\n />\n)\n\nexport default function SankeyChart({\n nodes,\n links,\n onClick = () => {},\n}) {\n if (!nodes || !links) { return null; }\n\n return (\n <MyResponsiveSankey\n data={ { nodes, links } }\n onClick={ onClick }\n />\n );\n}\n","import React, { useRef, useState, useEffect, Fragment } from 'react';\nimport _ from 'lodash';\nimport html2canvas from 'html2canvas';\n\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport ImageIcon from '@material-ui/icons/Image';\nimport TextField from '@material-ui/core/TextField';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport SankeyChart from '../../../../components/SankeyChart';\n\nimport useFormatMessage from '../../../../../../../../../../hooks/useFormatMessage';\nimport useWindowSize from '../../../../../../../../../../hooks/useWindowSize';\n\nimport styles from './SankeyChartControl.module.scss';\n\nconst DEFAULT_PADDING = 340;\nconst CUSTOM_PADDING = 480;\n\nconst exportAsImage = async (element, imageFileName) => {\n const canvas = await html2canvas(element);\n const image = canvas.toDataURL('image/png', 1.0);\n downloadImage(image, imageFileName);\n};\n\nconst downloadImage = (blob, fileName) => {\n const fakeLink = window.document.createElement('a');\n fakeLink.style = 'display:none;';\n fakeLink.download = fileName;\n\n fakeLink.href = blob;\n\n document.body.appendChild(fakeLink);\n fakeLink.click();\n document.body.removeChild(fakeLink);\n\n fakeLink.remove();\n};\n\nexport default function SankeyChartControl({\n activeLevel,\n fromYear,\n toYear,\n nodes,\n links,\n onClick,\n}) {\n const chartRef = useRef();\n const windowSize = useWindowSize();\n const formatMessage = useFormatMessage();\n const [activeLinks, setActiveLinks] = useState([]);\n const [activeSourceClasses, setActiveSourceClasses] = useState([]);\n const [activeTargetClasses, setActiveTargetClasses] = useState([]);\n const hasClassesControl = activeLevel !== 1;\n const PADDING = !hasClassesControl ? DEFAULT_PADDING : CUSTOM_PADDING;\n\n useEffect(() => {\n if (hasClassesControl) {\n setActiveLinks([]);\n } else {\n setActiveLinks(links);\n }\n setActiveSourceClasses([]);\n setActiveTargetClasses([]);\n }, [activeLevel]);\n\n useEffect(() => {\n if (hasClassesControl) {\n const validSourceIds = _.map(activeSourceClasses, 'id');\n const validTargetIds = _.map(activeTargetClasses, 'id');\n let nextLinks = _.cloneDeep(links);\n nextLinks = _.filter(nextLinks, ({ source, target }) => {\n if (!_.isEmpty(validSourceIds) && _.isEmpty(validTargetIds)) {\n return _.includes(validSourceIds, source);\n } else if (_.isEmpty(validSourceIds) && !_.isEmpty(validTargetIds)) {\n return _.includes(validTargetIds, target);\n } else {\n return _.includes(validSourceIds, source) && _.includes(validTargetIds, target);\n }\n });\n\n setActiveLinks(nextLinks);\n } else {\n setActiveLinks(links);\n }\n }, [activeSourceClasses, activeTargetClasses, links]);\n\n const originOptions = _(links)\n .map('source')\n .uniq()\n .map((nodeId) => _.find(nodes, { id: nodeId }))\n .filter(({ level }) => level === activeLevel)\n .value();\n const destinationOptions = _(links)\n .map('target')\n .uniq()\n .map((nodeId) => _.find(nodes, { id: nodeId }))\n .filter(({ level }) => level === activeLevel)\n .value();\n\n const handleAutocompleteChange = (type, _event, newValue) => {\n if (type === 'source') {\n setActiveSourceClasses(newValue);\n } else if (type === 'target') {\n setActiveTargetClasses(newValue);\n }\n };\n\n const handleDownload = () => {\n exportAsImage(chartRef.current, 'MapBiomas-Sankey');\n };\n\n const renderClassesAutocomplete = (type = 'source') => {\n let options = originOptions;\n let value = activeSourceClasses;\n\n if (type === 'target') {\n options = destinationOptions;\n value = activeTargetClasses;\n }\n\n return (\n <FormControl\n variant=\"outlined\"\n className={ styles.autocompleteFormControl }\n >\n <Autocomplete\n multiple\n options={ options }\n getOptionLabel={ (option) => option.label }\n value={ value }\n onChange={ handleAutocompleteChange.bind(this, type) }\n renderInput={ (params) => (\n <TextField\n {...params}\n size=\"small\"\n variant=\"outlined\"\n label={ formatMessage(`mapbiomas.statistics.sankey.${ type }_classes`) }\n placeholder={ formatMessage('mapbiomas.statistics.sankey.classes_select_placeholder') }\n />\n ) }\n />\n </FormControl>\n );\n };\n\n const filteredNodes = _(activeLinks)\n .map(({ source, target }) => ([source, target]))\n .flatten()\n .uniq()\n .map((id) => _.find(nodes, { id }))\n .compact()\n .value();\n const nodeIds = _.map(filteredNodes, 'id');\n const filteredLinks = _.filter(activeLinks, ({ source, target }) => _.includes(nodeIds, source) && _.includes(nodeIds, target));\n\n return (\n <div className={ styles.contentWrapper }>\n { hasClassesControl &&\n <Fragment>\n { renderClassesAutocomplete('source') }\n { renderClassesAutocomplete('target') }\n </Fragment>\n }\n <p className={ styles.sankeyYears }>{ fromYear } - { toYear }</p>\n <Tooltip title=\"Download PNG\">\n <Button\n variant=\"contained\"\n size=\"small\"\n className={ styles.downloadButton }\n onClick={ handleDownload }\n >\n <ImageIcon />\n </Button>\n </Tooltip>\n { !_.isEmpty(activeLinks) && !_.isEmpty(filteredNodes) &&\n <div className={ styles.sankeyWrapper } style={ { height: windowSize.height - PADDING } }>\n <div style={ { height: !hasClassesControl ? 720 : 1200 } } ref={ chartRef }>\n <SankeyChart\n nodes={ filteredNodes }\n links={ filteredLinks }\n onClick={ onClick }\n />\n </div>\n </div>\n }\n </div>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASSES_DATA = gql`\n query {\n classTreeList {\n id\n key\n i18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n mvClassTreeLevelsUi {\n id\n color\n classId\n positionInTree\n level\n parentId\n defaultName\n i18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n }\n }\n }\n }\n`;\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData(\n $level: [Int!]!,\n $territoryIds: [Int!]!,\n $fromYear: Int!,\n $toYear: Int!,\n $classTreeId: Int!,\n ) {\n coverageClassificationChangesDataByTreeList(\n level: $level,\n fromYear: $fromYear,\n toYear: $toYear,\n classTreeId: $classTreeId,\n territoryIds: $territoryIds \n ) {\n id\n fromTreeNodeId\n toTreeNodeId\n fromYear\n toYear\n areaInHa\n }\n }\n`;\n","import React, { useState } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\n\nimport Chip from '@material-ui/core/Chip';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport TextField from '@material-ui/core/TextField';\nimport FormControl from '@material-ui/core/FormControl';\n\nimport TransitionMatrixTable from './TransitionMatrixTable';\nimport SankeyChart from '../../components/SankeyChart';\n\nimport TabList from '../../../../../../components/TabList';\n\nimport SankeyChartControl from './components/SankeyChartControl';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n GET_CLASSES_DATA,\n} from './query';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport styles from './DashboardDialogTransitionContent.module.scss';\n\nconst levelIds = [1, 2];\n\nexport default function DashboardDialogTransitionContent({\n baseParams,\n onLinkClick = () => {},\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n const [activeLevel, setActiveLevel] = useState(1);\n const [activeTab, setActiveTab] = useState('sankey');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n const yearRange = _.get(baseParams, 'yearRange');\n const [fromYear, toYear] = _.split(yearRange, '-');\n const { data: defaultClassTreeData, loading: loadingClassesData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'default'\n }\n });\n const defaultClassTreeLevelsList = _.get(defaultClassTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const defaultClassTreeId = _.get(defaultClassTreeData, 'classTreeByKey[0].id');\n // const { data: classesData, loading: loadingClassesData } = useQuery(GET_CLASSES_DATA, {\n // client: coverageApolloClient\n // });\n // const defaultClassTree = _.find(_.get(classesData, 'classTreesList'), { key: 'default' });\n // const defaultClassTreeId = _.get(defaultClassTree, 'id');\n // const defaultClassTreeLevelsList = _.get(defaultClassTree, 'classTreeLevelsList');\n\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n level: _.range(1, activeLevel + 1),\n territoryIds: territoryIds,\n fromYear: parseInt(fromYear),\n toYear: parseInt(toYear),\n classTreeId: defaultClassTreeId,\n },\n skip: _.isEmpty(territoryIds) || !yearRange || loadingClassesData || !defaultClassTreeId\n });\n\n const handleLevelChange = (event) => {\n setActiveLevel(Number(event.target.value));\n };\n\n const handleSankeyClick = (data) => {\n if (_.get(data, 'type') === 'link') {\n const { source, target } = data;\n const sourceTreeNodeId = _.get(source, 'treeNodeId');\n const targetTreeNodeId = _.get(target, 'treeNodeId');\n const parsedId = (sourceTreeNodeId * 100) + targetTreeNodeId;\n\n onLinkClick(parsedId);\n }\n };\n\n const renderLoading = () => {\n return (\n <div className={ styles.loadingWrapper }>\n <CircularProgress />\n </div>\n );\n };\n\n const renderTabContent = () => {\n const coverageClassificationChangesDataByTreesList = _.get(baseData, 'coverageClassificationChangesDataByTreeList');\n\n if (_.isNil(coverageClassificationChangesDataByTreesList)) {\n return null;\n }\n\n const uniqData = _.uniqBy(coverageClassificationChangesDataByTreesList, (obj) => `${ obj.fromTreeNodeId }-${ obj.toTreeNodeId }-${ obj.fromYear }-${ obj.toYear }`);\n const aggregatedData = _.values(_.reduce(uniqData, (result, obj) => {\n const key = `${ obj.fromTreeNodeId }-${ obj.toTreeNodeId }-${ obj.fromYear }-${ obj.toYear }`;\n const nextValue = result[key] ? result[key].areaInHa + obj.areaInHa : obj.areaInHa;\n\n result[key] = {\n ...obj,\n areaInHa: nextValue\n };\n\n return result;\n }, {}));\n\n const parsedData = _(aggregatedData)\n .map((item) => {\n const fromClassData = _.find(defaultClassTreeLevelsList, { id: _.get(item, 'fromTreeNodeId') });\n const toClassData = _.find(defaultClassTreeLevelsList, { id: _.get(item, 'toTreeNodeId') });\n const fromYear = _.get(item, 'fromYear');\n const toYear = _.get(item, 'toYear');\n\n const fromPositionLevelLabel = `${ _.join(_.get(fromClassData, 'positionInTree'), '.') }`;\n const fromNodeId = `${ fromPositionLevelLabel }-${ fromYear }-${ _.get(fromClassData, 'id') }`;\n const fromStringList = _.get(fromClassData, 'i18nStrings');\n const fromSelectedString = _.find(fromStringList, { language: locale });\n const fromNode = {\n type: 'node',\n id: fromNodeId,\n treeNodeId: _.get(fromClassData, 'id'),\n level: _.get(fromClassData, 'level'),\n label: `${ fromPositionLevelLabel }. ${ _.get(fromSelectedString, 'stringValue') }`,\n color: _.get(fromClassData, 'color'),\n };\n const toPositionLevelLabel = `${ _.join(_.get(toClassData, 'positionInTree'), '.') }`;\n const toNodeId = `${ toPositionLevelLabel }-${ toYear }-${ _.get(toClassData, 'id') }`;\n const toStringList = _.get(toClassData, 'i18nStrings');\n const toSelectedString = _.find(toStringList, { language: locale });\n const toNode = {\n type: 'node',\n id: toNodeId,\n treeNodeId: _.get(toClassData, 'id'),\n level: _.get(toClassData, 'level'),\n label: `${ toPositionLevelLabel }. ${ _.get(toSelectedString, 'stringValue') }`,\n color: _.get(toClassData, 'color'),\n };\n const link = {\n type: 'link',\n source: fromNodeId,\n target: toNodeId,\n value: _.get(item, 'areaInHa'),\n };\n\n if (fromClassData && toClassData) {\n return [fromNode, toNode, link];\n } else {\n return [];\n }\n })\n .flatten()\n .value();\n\n const nodes = _.orderBy(_.uniqBy(_.filter(parsedData, { type: 'node' }), 'id'), ['label'], ['asc']);\n const links = _.orderBy(_.filter(parsedData, { type: 'link' }), ['source', 'target'], ['asc', 'asc']);\n\n if (_.isEmpty(nodes) || _.isEmpty(links)) {\n return null;\n }\n\n if (activeTab === 'sankey') {\n return (\n <SankeyChartControl\n activeLevel={ activeLevel }\n fromYear={ fromYear }\n toYear={ toYear }\n nodes={ nodes }\n links={ links }\n onClick={ handleSankeyClick }\n />\n );\n } else {\n return (\n <TransitionMatrixTable\n fromYear={ fromYear }\n toYear={ toYear }\n nodes={ nodes }\n links={ links }\n />\n );\n }\n };\n\n const renderContent = () => {\n return (\n <div className={ styles.content }>\n <RadioGroup\n name=\"level\"\n value={ activeLevel }\n onChange={ handleLevelChange }\n className={ styles.radioGroup }\n >\n { _.map(levelIds, (level) => {\n return (\n <FormControlLabel\n key={ `level-control-${ level }` }\n classes={ {\n label: styles.radioLabel\n } }\n value={ level }\n control={ <Radio size=\"small\" color=\"primary\" className={ styles.radioGroupInput } /> }\n label={ `${ formatMessage('mapbiomas.dashboard.coverage.coverage_changes.levels_control.label') } ${ level }` }\n />\n );\n }) }\n </RadioGroup>\n <div className={ styles.tabListWrapper }>\n <TabList\n itemSizes={{ xs: 4 }}\n items={ [\n { id: 'sankey', label: formatMessage('mapbiomas.dashboard.coverage.coverage_changes.view_mode.sankey') },\n { id: 'matrix', label: formatMessage('mapbiomas.dashboard.coverage.coverage_changes.view_mode.matrix') },\n ] }\n value={ activeTab }\n onChange={ setActiveTab }\n />\n </div>\n <div className={ styles.dataWrapper }>\n { renderTabContent() }\n </div>\n </div>\n );\n };\n\n if (loadingBaseData) {\n return renderLoading();\n } else if (!loadingBaseData && territories) {\n return renderContent();\n } else {\n return null;\n }\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nfunction tooltipFormatter(params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params[0].axisValue }</span>`;\n\n params.forEach((item) => {\n const value = _.isObject(item.data) ? item.data.value : item.data;\n\n if (value) {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n const paramValue = `<span>${ colorSpan(item.color) } ${ item.seriesName }: ${ valueLabel }</span>`;\n\n str += paramValue;\n }\n });\n\n return str;\n}\n\nexport default function BarChart({\n categories = [],\n series = [],\n vertical = true\n}) {\n let xAxis = {\n type: \"category\",\n axisPointer: {\n type: \"shadow\"\n },\n axisLabel: {\n fontSize: 11,\n color: \"#767676\"\n },\n axisLine: {\n color: \"#DDD\"\n },\n data: categories\n };\n let yAxis = {\n axisTick: {\n show: false\n },\n axisLine: {\n color: \"#DDD\"\n },\n splitLine: {\n lineStyle: {\n color: \"rgba(0, 0, 0, 0.05)\"\n }\n },\n axisLabel: {\n formatter: (value) => {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return valueLabel;\n },\n fontSize: 11,\n color: \"#767676\"\n }\n };\n\n if (!vertical) {\n let tempValue = xAxis;\n xAxis = yAxis;\n yAxis = tempValue;\n }\n\n return (\n <ReactEcharts\n option={ {\n xAxis,\n yAxis,\n tooltip: {\n confine: true,\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 13\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n trigger: \"axis\",\n formatter: tooltipFormatter,\n },\n grid: {\n top: \"8%\",\n right: \"20px\",\n bottom: \"8%\",\n left: \"20px\",\n containLabel: true\n },\n series: _.map(series, (serie) => {\n return {\n ...serie,\n type: 'bar',\n smooth: true,\n };\n }),\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download',\n }\n }\n },\n } }\n notMerge={ true }\n />\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($territoryIds: [Int!]!, $classTreeId: Int!) {\n classTree(id: $classTreeId) {\n id\n key\n i18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n mvClassTreeLevelsUi {\n id\n classId\n color\n positionInTree\n level\n parentId\n defaultName\n i18nStrings {\n language\n\t\t\t\t\tstringValue\n }\n classTreeNode {\n classe {\n id\n key\n pixelValue\n }\n }\n }\n }\n\n coverageClassificationDataList: coverageClassificationDataByTreeList(\n classTreeId: $classTreeId,\n\t\t\tbufferId: null,\n\t\t\tterritoryIds: $territoryIds\n ) {\n territoryId\n year\n classTreeNodeId\n areaInHa\n }\n }\n`;\n","import React from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport numbro from 'numbro';\nimport { FormattedMessage } from 'react-intl';\nimport { CSVLink } from 'react-csv';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport CloseIcon from '@material-ui/icons/Close';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport Fade from '@material-ui/core/Fade';\nimport IconButton from '@material-ui/core/IconButton';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\n\nimport BaseForm from '../../../../../../layout/Header/components/BaseForm';\n\nimport PieChart from '../../components/PieChart';\nimport BarChart from '../../components/BarChart';\nimport StickyTable from '../../components/StickyTable';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport { GET_BASE_DATA } from './query';\n\nimport styles from './DashboardDialogPastureQualityContent.module.scss';\n\nconst formatNumber = (value) => numbro(value).format({\n thousandSeparated: true,\n mantissa: 2\n});\n\nconst useStyles = makeStyles((theme) => ({\n yearValue: {\n color: theme.palette.primary.main\n },\n printButton: {\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n }\n },\n}));\n\nexport default function DashboardDialogPastureQualityContent({\n activeYear,\n baseParams,\n classTreeId,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n const classes = useStyles();\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n const activeClassesLevelsListItems = _.get(baseParams, 'activePastureQualityQualityClassesListItems');\n\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryIds: territoryIds,\n classTreeId: classTreeId\n },\n skip: _.isEmpty(territoryIds) || !classTreeId\n });\n\n const classesLevelsList = _.get(baseData, 'classTree.mvClassTreeLevelsUi');\n const parsedActiveClassesLevelsListItems = _.map(activeClassesLevelsListItems, (id) => {\n const classTreeData = _.find(classesLevelsList, (item) => {\n return _.get(item, 'classTreeNode.classe.pixelValue') === id;\n });\n\n return _.get(classTreeData, 'id') || id;\n });\n\n const classesLevelsListByLevel1 = _.filter(classesLevelsList, { level: 1 });\n const filteredClassesLevelsListByLevel1 = _.filter(classesLevelsListByLevel1, (item) => {\n return _.includes(parsedActiveClassesLevelsListItems, item.id);\n });\n const filteredClassesLevelsListByLevel1Ids = _.map(filteredClassesLevelsListByLevel1, 'id');\n const activeClassesLevelsList = _.filter(classesLevelsList, (item) => _.includes(parsedActiveClassesLevelsListItems, item.id));\n const coverageClassificationDataList = _.get(baseData, 'coverageClassificationDataList');\n const aggregatedCoverageClassificationDataList = _.values(_.reduce(coverageClassificationDataList, (result, obj) => {\n const key = `${ obj.year }-${ obj.classTreeNodeId }`;\n const nextValue = result[key] ? result[key].areaInHa + obj.areaInHa : obj.areaInHa;\n\n result[key] = {\n ...obj,\n areaInHa: nextValue\n };\n\n return result;\n }, {}));\n\n const parsedData = _.filter(_.map(aggregatedCoverageClassificationDataList, (item) => {\n const classData = _.find(classesLevelsList, { id: item.classTreeNodeId });\n\n return {\n year: Number(_.replace(item.year, '_', '')),\n areaInHa: item.areaInHa,\n classData,\n };\n }), 'classData');\n const years = _.sortBy(_.uniq(_.map(parsedData, 'year')));\n\n const parsedClassesLevelsList = _.map(activeClassesLevelsList, (classData) => {\n const stringList = _.get(classData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const className = `${ _.join(_.get(classData, 'positionInTree'), '.') }. ${ _.get(selectedString, 'stringValue') }`;\n\n return {\n ...classData,\n name: className,\n data: _.map(years, (year) => {\n const coverageClassificationData = _.find(parsedData, (item) => {\n return item.year === year &&\n item.classData.id === classData.id;\n });\n\n return coverageClassificationData ? _.get(coverageClassificationData, 'areaInHa') : null\n })\n };\n });\n\n const pieChartData = _(parsedData)\n .filter((item) => {\n return item.year === activeYear &&\n _.includes(filteredClassesLevelsListByLevel1Ids, _.get(item, 'classData.id'));\n })\n .map((item) => {\n const stringList = _.get(item, 'classData.i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n\n return {\n name:_.get(selectedString, 'stringValue'),\n value: _.get(item, 'areaInHa'),\n itemStyle: {\n color: _.get(item, 'classData.color')\n },\n };\n })\n .value();\n\n const barChartSeriesData = _.map(parsedClassesLevelsList, (item) => {\n return {\n name: item.name,\n color: item.color,\n stack: item.level,\n data: item.data,\n level: item.level,\n padding: item.level * 12,\n };\n });\n\n const renderLoading = () => {\n return (\n <div className={ styles.loadingWrapper }>\n <CircularProgress />\n </div>\n );\n };\n\n const renderDownloadTableLink = () => {\n if (_.isEmpty(years) || _.isEmpty(barChartSeriesData)) {\n return null;\n }\n\n let headers = [\n { key: 'class', label: 'Classe' },\n ];\n\n _.each(years, (year) => {\n headers.push({ key: _.toString(year), label: _.toString(year) });\n });\n\n const parsedData = _(barChartSeriesData)\n .map((serie) => {\n let rowData = { class: _.get(serie, 'name') };\n\n _.each(_.get(serie, 'data'), (value, index) => {\n rowData[_.toString([years[index]])] = value;\n });\n\n return rowData;\n })\n .flatten()\n .value();\n\n return (\n <CSVLink\n data={ parsedData }\n headers={ headers }\n className={ classnames(styles.csvDownloadLink, classes.printButton) }\n filename=\"MapBiomas - Tabela de Dados.csv\"\n >\n <CloudDownloadIcon />\n <span>Download</span>\n </CSVLink>\n );\n };\n\n const renderContent = () => {\n return (\n <div className={ styles.content }>\n {/* <BaseForm inline /> */}\n <div className={ styles.chartsWrapper }>\n <div>\n <h3><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title\" values={ { year: activeYear } } /></h3>\n <PieChart\n serie={ {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.unit'),\n data: pieChartData\n } }\n />\n </div>\n <div>\n <h3><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title\" /></h3>\n <BarChart\n categories={ years }\n series={ barChartSeriesData }\n />\n </div>\n </div>\n <div className={ styles.dataTableWrapper }>\n <div className={ styles.tableHeader }>\n <h3 className={ styles.tableTitle }>\n <b><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.table.title\" /></b>\n <span><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.table.subtitle\" /></span>\n </h3>\n { renderDownloadTableLink() }\n </div>\n <StickyTable\n columns={ years }\n rows={ barChartSeriesData }\n />\n </div>\n </div>\n );\n };\n\n if (loadingBaseData) {\n return renderLoading();\n } else if (!loadingBaseData && territories) {\n return renderContent();\n } else {\n return null;\n }\n}\n","import React from 'react'\nimport ReactEcharts from 'echarts-for-react'\nimport _ from 'lodash'\nimport { onCurrentLocaleCustom } from '../../../../../../../../utils/locale'\nimport numbro from 'numbro'\n\nconst getClassAreaForYear = _.memoize((year) => _.flow(\n _.property('classTreeNode.coverageClassificationDataByTreeList'),\n _.partial(_.filter, _, { year: year }),\n _.partial(_.map, _, 'areaInHa'),\n _.sum\n))\n\nconst getPositionsToOffsetForIndex = (index, numberOfCharts) => {\n const horizontal = { 0: 'left', 1: 'right' }\n const vertical = { 0: 'bottom', 1: 'top' }\n const div = _.flow(_.divide, _.floor)\n const mod = (x, y) => x - (y * div(x, y))\n\n let positions = [ horizontal[mod(index, 2)] ]\n if (numberOfCharts > 2) {\n positions.push(vertical[div(index, 2)])\n }\n\n return positions\n}\n\nexport default function ClassificationsChart({\n // Temporary workaround while this component isn't refactored into separate\n // non-grid based chart components\n allClassTreeLevels = [], // <---\n activeClassTreeLevels = [],\n classTreeCharts = [],\n years = null,\n activeYear\n}) {\n if (!classTreeCharts || !years || !activeYear) {\n return null\n }\n\n const tooltipFormatter = (params) => {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`\n\n const year = _.get(params, `[0].value[${_.indexOf(_.get(params, '[0].dimensionNames'), 'years')}]`, activeYear)\n const chartType = _.get(params, 'componentSubType', _.get(params, '[0].componentSubType'))\n\n if (chartType === 'pie') {\n const value = numbro(_.get(params, `data[${ _.get(params, 'encode.value[0]') }]`)).format({\n thousandSeparated: true,\n mantissa: 0\n })\n\n const percent = numbro(params.percent / 100).format({\n output: 'percent',\n mantissa: 2\n })\n\n return `\n <span>${_.get(params, 'seriesName')}</span>\n <span>${ colorSpan(params.color) } ${ _.get(params, 'name') }: ${ value } ha (${ percent })</span>\n `\n } else {\n return `<span>${ year }</span> \\n` +\n _.map(\n activeClassTreeLevels,\n (node) => `\n <span>\n ${ colorSpan(node.color) }\n ${ node.positionInTree.join('.') }. ${ onCurrentLocaleCustom(node.i18nStrings) }:\n ${ numbro(\n _.sum(_.map(_.filter(\n _.get(node, 'classTreeNode.coverageClassificationDataByTreeList'),\n { year: year }\n ), 'areaInHa', 0)\n )).format({\n thousandSeparated: true,\n mantissa: 0\n })\n } ha\n </span>\n `\n ).join('\\n')\n }\n }\n\n const generateBaseSerieForAnyChart = (chart) => ({\n type: _.get(chart, 'chartType.key')\n })\n\n // ugly workaround to postpone a little some refactor that will be needed\n // because I didn't make the best design choices in this component\n let levelsToShowOnPieChart = _.filter(allClassTreeLevels, { level: 1 })\n if (levelsToShowOnPieChart.length === 1) {\n levelsToShowOnPieChart = _.filter(allClassTreeLevels, { level: 2 })\n }\n\n const generateSerieForSingleYearChart = (chart) => (\n _.assign(generateBaseSerieForAnyChart(chart), {\n id: `serie#nodeId/year(${activeYear})`,\n name: `${activeYear}`,\n itemStyle: {\n color: ({ dataIndex }) => (\n _.get(levelsToShowOnPieChart, `[${dataIndex}].color`)\n )\n },\n label: {\n show: false\n },\n encode: {\n itemName: 'treeNodeNames',\n value: `year#${activeYear}`\n },\n left: '15',\n right: '15',\n ...(_.zipObject(\n getPositionsToOffsetForIndex(\n _.findIndex(classTreeCharts, { id: chart.id }),\n classTreeCharts.length\n ),\n ['55%', '55%']\n )),\n })\n )\n\n const generateSeriesForMultiYearChart = (chart, chartIndex) => _.map(activeClassTreeLevels, (treeNode) => (\n _.assign(generateBaseSerieForAnyChart(chart), {\n id: `serie#nodeId/year(${treeNode.id})`,\n name: onCurrentLocaleCustom(_.get(treeNode, 'i18nStrings')),\n itemStyle: { color: treeNode.color },\n encode: { x: 'years', y: `treeNodeId#${treeNode.id}` },\n xAxisIndex: chartIndex,\n yAxisIndex: chartIndex\n })\n ))\n\n const optionTransforms = {\n hideAxis(option, chart) {\n _.each(['x', 'y'], (axis) => {\n _.set(\n _.find(option[`${axis}Axis`], { id: `${axis}Axis#chartId(${chart.id})` }),\n 'show', false\n )\n })\n },\n swapAxis(option, chart) {\n const oldXAxis = _.first(_.remove(option.xAxis, { id: `xAxis#chartId(${chart.id})` }))\n const oldYAxis = _.first(_.remove(option.yAxis, { id: `yAxis#chartId(${chart.id})` }))\n const oldXAxisId = oldXAxis.id\n oldXAxis.id = oldYAxis.id\n oldYAxis.id = oldXAxisId\n option.xAxis.push(oldYAxis)\n option.yAxis.push(oldXAxis)\n\n _.each(_.filter(option.series, { id: `serie#chartId(${chart.id})` }), (serie) => {\n const tempEncodeX = serie.encode.x\n serie.encode.x = serie.encode.y\n serie.encode.y = tempEncodeX\n })\n },\n parseStackedBar(option) {\n _.each(option.series, (serie) => {\n if (serie.type === 'stacked_bar') {\n serie.type = 'bar';\n serie.stack = 'years';\n }\n });\n }\n }\n\n const chartTypeTransformationMappings = {\n sunburst: ['putLevelsAsChildrenOnData'],\n pie: ['hideAxis'],\n bar: ['swapAxis'],\n stacked_bar: ['parseStackedBar'],\n line: [],\n area: [],\n stacked_area: [],\n column: [],\n stacked_column: []\n }\n\n const dataset = {\n sourceHeader: false,\n source: {\n years,\n treeNodeNames: _.map(levelsToShowOnPieChart, _.flow(_.property('i18nStrings'), onCurrentLocaleCustom)),\n\n ...(_.zipObject(\n _.map(activeClassTreeLevels, (n) => `treeNodeId#${n.id}`),\n _.map(activeClassTreeLevels, _.over(_.map(years, getClassAreaForYear)))\n )),\n\n ...(_.zipObject(\n _.map(years, (y) => `year#${y}`),\n _.map(years, (y) => _.map(levelsToShowOnPieChart, getClassAreaForYear(y)))\n ))\n }\n }\n\n let option = {\n legend: {\n show: false\n },\n tooltip: {\n confine: true,\n textStyle: {\n align: 'left',\n color: '#444',\n fontSize: 13\n },\n backgroundColor: '#FFFFFF',\n borderColor: 'rgba(0, 0, 0, 0.1)',\n borderWidth: 1,\n extraCssText: 'box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);',\n formatter: tooltipFormatter\n },\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download',\n }\n }\n },\n\n dataset,\n grid: _.map(classTreeCharts, (chart, index) => ({\n id: `chart#${chart.id}`,\n tooltip: {\n trigger: chart.singleYear ? 'item' : 'axis'\n },\n left: '15',\n right: '15',\n ...(_.zipObject(getPositionsToOffsetForIndex(index, classTreeCharts.length), ['55%', '55%']))\n })),\n xAxis: _.map(classTreeCharts, (chart, index) => ({\n id: `xAxis#chartId(${chart.id})`,\n type: 'category',\n gridIndex: index\n })),\n yAxis: _.map(classTreeCharts, (chart, index) => ({\n id: `yAxis#chartId(${chart.id})`,\n gridIndex: index\n })),\n series: _.flatMap(classTreeCharts, _.cond([\n [_.matches({ chartType: { singleYear: true }}), generateSerieForSingleYearChart],\n [_.constant(true), generateSeriesForMultiYearChart]\n ]))\n }\n\n _.each(classTreeCharts, (chart) => {\n _.each(chartTypeTransformationMappings[chart.chartType.key], (transformation) => {\n optionTransforms[transformation](option, chart)\n })\n })\n\n return <ReactEcharts\n option={ option }\n style={{\n width: '100%',\n height: (((_.floor((classTreeCharts.length - 1) / 2) % 2) + 1) * 380)\n }}\n />\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CATEGORIES_OF_OBJECT_TREE_NODES = gql`\n query GetCategoriesOfObjectTreeNodes($objectTreeNodeIds: [Int!]!) {\n geospatialObjectCategoryTreeNodesList(ids: $objectTreeNodeIds) {\n id\n categoryId\n }\n }\n`\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData(\n $territoryIds: [Int!]!,\n $classTreeKey: String!,\n $activeClassTreeNodeIds: [Int!]!,\n $hasObjectFilter: Boolean!,\n $activeObjectCategoryIds: [Int!],\n $bufferId: Int\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n i18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\n classTreeCharts {\n id\n i18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n }\n coverageClassificationChartType {\n key\n singleYear\n }\n levelsToBeShownOnChart\n }\n\n allClassTreeLevelsList: mvClassTreeLevelsUi {\n id\n classId\n color\n positionInTree\n level\n childrenIds\n parentId\n defaultName\n i18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n }\n\n classTreeNode {\n coverageClassificationDataByTree(\n territoryId: $territoryIds\n ) @skip(if: $hasObjectFilter) {\n territoryId\n year\n areaInHa\n }\n\n coverageClassificationDataByTreeListWithObjectIntersection: coverageClassificationDataByTree(\n territoryId: $territoryIds,\n objectCategoryId: $activeObjectCategoryIds,\n\t\t\t\t\t\tbufferId: $bufferId\n ) @include(if: $hasObjectFilter) {\n territoryId\n year\n areaInHa\n }\n }\n }\n\n mvClassTreeLevelsUi (\n ids: $activeClassTreeNodeIds\n ) {\n id\n classId\n color\n positionInTree\n level\n childrenIds\n parentId\n defaultName\n i18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n }\n\n classTreeNode {\n coverageClassificationDataByTree(\n territoryId: $territoryIds\n ) @skip(if: $hasObjectFilter) {\n territoryId\n year\n areaInHa\n }\n\n coverageClassificationDataByTreeListWithObjectIntersection: coverageClassificationDataByTree(\n territoryId: $territoryIds,\n objectCategoryId: $activeObjectCategoryIds,\n bufferId: $bufferId\n ) @include(if: $hasObjectFilter) {\n territoryId\n year\n areaInHa\n }\n }\n }\n }\n }\n`\n","import React from 'react'\nimport _ from 'lodash'\nimport { useQuery } from '@apollo/react-hooks'\nimport { FormattedMessage } from 'react-intl'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { CSVLink } from 'react-csv'\nimport classnames from 'classnames'\n\nimport { makeStyles } from '@material-ui/core/styles'\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload'\n\nimport ClassificationsChart from '../../components/ClassificationsChart'\nimport StickyTable from '../../components/StickyTable'\nimport { onCurrentLocaleCustom } from '../../../../../../../../utils/locale'\nimport { GET_BASE_DATA, GET_CATEGORIES_OF_OBJECT_TREE_NODES } from './query'\nimport styles from './DashboardDialogGenericClassesContent.module.scss'\n\nconst getYearRangeFromClassTreeNodes = _.flow(\n _.partial(_.flatMap, _, 'classTreeNode.coverageClassificationDataByTreeList'),\n _.partial(_.map, _, _.flow(_.property('year'), _.method('slice', 1), Number)),\n _.uniq,\n _.sortBy\n)\n\nconst useStyles = makeStyles((theme) => ({\n printButton: {\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n }\n },\n}));\n\nexport default function DashboardDialogGenericClassesContent({\n clientType,\n activeYear,\n baseParams,\n hasObjectFilter = false\n}) {\n const classes = useStyles();\n const activeSubmodule = _.get(baseParams, 'activeSubmodule')\n const territories = _.get(baseParams, 'territories')\n const territoryIds = _.map(territories, 'id')\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds')\n const activeClassTreeOptionValue = _.get(baseParams, 'activeClassTreeOptionValue')\n const activeObjectTreeNodeIds = _.get(baseParams, 'activeObjectTreeNodeIds')\n const bufferId = _.get(baseParams, 'buffer')\n const objectTreeNodesData = useQuery(\n GET_CATEGORIES_OF_OBJECT_TREE_NODES, {\n variables: { objectTreeNodeIds: activeObjectTreeNodeIds },\n skip: !hasObjectFilter\n }\n )\n const activeObjectCategoryIds = _.map(_.get(objectTreeNodesData, 'data.geospatialObjectCategoryTreeNodesList'), 'categoryId')\n\n if (!activeObjectCategoryIds) {\n return null\n }\n\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryIds,\n activeClassTreeNodeIds,\n hasObjectFilter,\n activeObjectCategoryIds,\n bufferId,\n classTreeKey: activeClassTreeOptionValue,\n },\n skip: _.isEmpty(territoryIds) || !activeClassTreeOptionValue\n })\n\n const classTree = _.get(baseData, 'classTreeByKey')\n const allClassTreeLevels = _.get(classTree, 'allClassTreeLevelsList')\n const classTreeLevels = _.get(classTree, 'mvClassTreeLevelsUi')\n\n if (hasObjectFilter && classTreeLevels) {\n _.each(_.concat(allClassTreeLevels, classTreeLevels), (ctl) => {\n _.set(\n ctl,\n 'classTreeNode.coverageClassificationDataByTree',\n _.get(ctl, 'classTreeNode.coverageClassificationDataByTreeListWithObjectIntersection')\n )\n })\n }\n\n const years = getYearRangeFromClassTreeNodes(classTreeLevels)\n const classTreeCharts = _.get(classTree, 'classTreeCharts')\n const tableRows = _.map(classTreeLevels, (treeNode) => ({\n name: `${treeNode.positionInTree.join('. ')}. ${onCurrentLocaleCustom(treeNode.i18nStrings)}`,\n padding: treeNode.level * 12,\n data: _.mapKeys(\n _.mapValues(\n _.groupBy(treeNode.classTreeNode.coverageClassificationDataByTreeList, 'year'),\n '[0].areaInHa'\n ),\n (_value, year) => _.trimStart(year, '_')\n )\n }))\n\n const renderLoading = () => {\n return (\n <div className={ styles.loadingWrapper }>\n <CircularProgress />\n </div>\n )\n }\n\n const renderDownloadTableLink = () => {\n if (_.isEmpty(years) || _.isEmpty(tableRows)) {\n return null;\n }\n\n let headers = [\n { key: 'class', label: 'Classe' },\n ];\n\n _.each(years, (year) => {\n headers.push({ key: _.toString(year), label: _.toString(year) });\n });\n\n const parsedData = _(tableRows)\n .map((serie) => {\n let rowData = { class: _.get(serie, 'name') };\n\n _.each(_.get(serie, 'data'), (value, year) => {\n rowData[_.toString(year)] = value;\n });\n\n return rowData;\n })\n .flatten()\n .value();\n\n return (\n <CSVLink\n data={ parsedData }\n headers={ headers }\n className={ classnames(styles.csvDownloadLink, classes.printButton) }\n filename=\"MapBiomas - Tabela de Dados.csv\"\n >\n <CloudDownloadIcon />\n <span>Download</span>\n </CSVLink>\n );\n };\n\n const renderContent = () => {\n let parsedClassTreeCharts = _.cloneDeep(classTreeCharts);\n\n // TODO: Find a way to update 'fire_annual' chart type on database to load from 'classTreeChartsList'\n if (activeSubmodule === 'fire_annual') {\n _.set(parsedClassTreeCharts, '[0].coverageClassificationChartType.key', 'stacked_bar');\n }\n\n return (\n <div className={ styles.content }>\n <div className={ styles.chartsWrapper }>\n <ClassificationsChart\n // Add key using 'activeSubmodule' to prevent mixed chart types bug on 'fire' module\n key={ activeSubmodule }\n allClassTreeLevels={ allClassTreeLevels }\n activeClassTreeLevels={ classTreeLevels }\n classTreeCharts={ parsedClassTreeCharts }\n years={ years }\n activeYear={ activeYear }\n />\n { /* _.map(chartTypes, renderChart) */ }\n </div>\n <div className={ styles.dataTableWrapper }>\n <div className={ styles.tableHeader }>\n <h3 className={ styles.tableTitle }>\n <b><FormattedMessage id=\"mapbiomas.dashboard.generic.data_table.title\" /></b>\n <span><FormattedMessage id=\"mapbiomas.dashboard.generic.data_table.subtitle\" /></span>\n </h3>\n { renderDownloadTableLink() }\n </div>\n <StickyTable\n columns={ years }\n rows={ tableRows }\n />\n </div>\n </div>\n )\n }\n\n const hasDataByTree = _.some(\n allClassTreeLevels,\n (t) => _.size(_.get(t, 'classTreeNode.coverageClassificationDataByTree')) > 0\n )\n\n const hasDataByTreeIntersectedByObject = _.some(\n allClassTreeLevels,\n (t) => _.size(_.get(t, 'classTreeNode.coverageClassificationDataByTreeListWithObjectIntersection')) > 0\n )\n\n if (loadingBaseData) {\n return renderLoading()\n } else if (!hasDataByTree && !hasDataByTreeIntersectedByObject) {\n return <div style={{ marginTop: '16px', display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\n <h3 className={ styles.tableTitle }>Ainda não temos estatÃsticas para as categorias selecionadas.</h3>\n </div>\n } else if (!loadingBaseData && territories) {\n return renderContent()\n } else {\n return null\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport { FormattedMessage } from 'react-intl';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Fade from '@material-ui/core/Fade';\nimport IconButton from '@material-ui/core/IconButton';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport Collapse from '@material-ui/core/Collapse';\n\nimport DashboardDialogCoverageClassesContent from './content/DashboardDialogCoverageClassesContent';\nimport DashboardDialogCoverageNaturalOrAnthropicContent from './content/DashboardDialogCoverageNaturalOrAnthropicContent';\nimport DashboardDialogQualityContent from './content/DashboardDialogQualityContent';\nimport DashboardDialogTransitionContent from './content/DashboardDialogTransitionContent';\nimport DashboardDialogPastureQualityContent from './content/DashboardDialogPastureQualityContent';\nimport DashboardDialogGenericClassesContent from './content/DashboardDialogGenericClassesContent';\n\nimport styles from './DashboardDialog.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n yearValue: {\n color: theme.palette.primary.main\n }\n}));\n\nexport default function DashboardDialog({\n activeModuleContent,\n activeYear,\n baseParams,\n classTreeKey,\n headerIsVisible,\n isOpen,\n onClose = () => {},\n onUpdateClientAppState = () => {},\n}) {\n const [isExpanded, setIsExpanded] = useState(true);\n\n useEffect(() => {\n if (isOpen) {\n setIsExpanded(true);\n }\n }, [isOpen]);\n\n const classes = useStyles();\n\n const toggleContent = () => setIsExpanded(!isExpanded);\n\n const handleTransitionLinkClick = (id) => {\n onUpdateClientAppState({ transitionClassTreeNodeId: id });\n setIsExpanded(false);\n };\n\n const renderContent = () => {\n switch(activeModuleContent) {\n case 'coverage:coverage_main': {\n const classesViewMode = _.get(baseParams, 'classesViewMode');\n\n if (classesViewMode === 'class') {\n return (\n <DashboardDialogCoverageClassesContent\n activeYear={ activeYear }\n baseParams={ baseParams }\n />\n );\n } else {\n return (\n <DashboardDialogCoverageNaturalOrAnthropicContent\n activeYear={ activeYear }\n baseParams={ baseParams }\n />\n );\n }\n }\n case 'coverage:coverage_quality': {\n return (\n <DashboardDialogQualityContent\n activeYear={ activeYear }\n baseParams={ baseParams }\n />\n );\n }\n case 'coverage:coverage_changes': {\n return (\n <DashboardDialogTransitionContent\n activeYear={ activeYear }\n baseParams={ baseParams }\n onLinkClick={ handleTransitionLinkClick }\n />\n );\n }\n case 'quality_of_pasture_data:pasture_quality_main': {\n return (\n <DashboardDialogPastureQualityContent\n activeYear={ activeYear }\n baseParams={ baseParams }\n />\n );\n }\n case 'infrastructure:infrastructure_main': {\n return (\n <DashboardDialogGenericClassesContent\n hasObjectFilter\n activeYear={ activeYear }\n baseParams={ baseParams }\n />\n )\n }\n case 'mining:mining_main': {\n return (\n <DashboardDialogGenericClassesContent\n activeYear={ activeYear }\n baseParams={ baseParams }\n />\n )\n }\n default: {\n return (\n <DashboardDialogGenericClassesContent\n activeYear={ activeYear }\n baseParams={ baseParams }\n />\n );\n }\n }\n };\n\n const territoryIds = _.map(_.get(baseParams, 'territories'), 'id');\n\n let [moduleKey, contentKey] = _.split(activeModuleContent, ':');\n let titleId;\n\n if (_.includes(['coverage', 'quality_of_pasture_data'], moduleKey)) {\n titleId = `mapbiomas.dashboard.coverage.${ contentKey }.title`;\n } else {\n titleId = `mapbiomas.dashboard.${ _.snakeCase(moduleKey) }.title`;\n }\n\n // TODO: Refactor and remove unused components\n if (activeModuleContent !== 'coverage:coverage_changes') {\n return null;\n }\n\n return (\n <Fade in={ isOpen }>\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperWithHeader]: headerIsVisible,\n [styles.wrapperIsCollapsed]: !isExpanded,\n }) }>\n <header className={ styles.header }>\n <h2 className={ styles.title }>\n <span><FormattedMessage id={ titleId } /></span>\n </h2>\n { _.size(territoryIds) > 1 &&\n <p className={ styles.alertInfo }><FormattedMessage id={ `mapbiomas.dashboard.alert.multiple_territories` } /></p>\n }\n <IconButton\n className={ classnames(styles.toggleButton, {\n [styles.toggleButtonIsCollapsed]: isExpanded,\n }) }\n onClick={ toggleContent }\n >\n <ExpandMoreIcon />\n </IconButton>\n <IconButton className={ styles.closeButton } onClick={ onClose }>\n <CloseIcon />\n </IconButton>\n </header>\n <Collapse in={ isExpanded }>\n { renderContent() }\n </Collapse>\n </div>\n </Fade>\n );\n}\n","export default [\n {\n key: 'country',\n labelKey: 'country',\n color: '#EB2F06',\n descriptionData: [\n {\n labelKey: 'source',\n label: 'Fonte',\n value: 'IGVSB, adaptado por Provita',\n },\n {\n labelKey: 'year',\n label: 'Ano',\n value: '2024',\n },\n ],\n downloadUrl:\n 'https://storage.googleapis.com/mapbiomas-public/initiatives/venezuela/collection_2/layers/POLITICAL_LEVEL_1.zip',\n index: 1,\n },\n {\n key: 'biome',\n labelKey: 'biome',\n color: '#EAB455',\n descriptionData: [\n {\n labelKey: 'source',\n label: 'Fonte',\n value: 'Provita',\n },\n {\n labelKey: 'year',\n label: 'Ano',\n value: '2024',\n },\n ],\n downloadUrl:\n 'https://storage.googleapis.com/mapbiomas-public/initiatives/venezuela/collection_2/layers/BIOMES.zip',\n index: 2,\n },\n {\n key: 'state',\n labelKey: 'state',\n color: '#000000',\n descriptionData: [\n {\n labelKey: 'source',\n label: 'Fonte',\n value: 'IGVSB, adaptado por Provita',\n },\n {\n labelKey: 'year',\n label: 'Ano',\n value: '2024',\n },\n ],\n downloadUrl:\n 'https://storage.googleapis.com/mapbiomas-public/initiatives/venezuela/collection_2/layers/POLITICAL_LEVEL_2.zip',\n index: 3,\n },\n {\n key: 'municipality',\n labelKey: 'municipality',\n color: '#ffff00',\n descriptionData: [\n {\n labelKey: 'source',\n label: 'Fonte',\n value: 'IGVSB, adaptado por Provita',\n },\n {\n labelKey: 'year',\n label: 'Ano',\n value: '2024',\n },\n ],\n downloadUrl:\n 'https://storage.googleapis.com/mapbiomas-public/initiatives/venezuela/collection_2/layers/POLITICAL_LEVEL_3.zip',\n index: 4,\n },\n {\n key: 'watershed',\n labelKey: 'watershed',\n color: '#16DFF2',\n descriptionData: [\n {\n labelKey: 'source',\n label: 'Fonte',\n value: 'Minec, 2014 y actualizado por Provita, 2024',\n },\n {\n labelKey: 'year',\n label: 'Ano',\n value: '2024',\n },\n ],\n downloadUrl:\n 'https://storage.googleapis.com/mapbiomas-public/initiatives/venezuela/collection_2/layers/BASIN_LEVEL_1_PNRH.zip',\n index: 5,\n },\n {\n key: 'protected_areas',\n labelKey: 'protected_areas',\n color: '#1A7836',\n descriptionData: [\n {\n labelKey: 'source',\n label: 'Fonte',\n value: 'POA, 2015 y Provita, 2024: Provita, 2023, digitalizado con base en la revisión de los decretos de creación de las gacetas oficiales; Planificación y Ordenación Ambiental (POA), 2015, Base de datos de las Ãrea Bajo Régimen de Administración Especial (ABRAE)',\n },\n {\n labelKey: 'year',\n label: 'Ano',\n value: '2024',\n },\n ],\n downloadUrl:\n 'https://storage.googleapis.com/mapbiomas-public/initiatives/venezuela/collection_2/layers/PROTECTED_AREA.zip',\n index: 6,\n },\n {\n key: 'indigenous_territorie',\n labelKey: 'indigenous_territorie',\n color: '#6A3D9A',\n descriptionData: [\n {\n labelKey: 'source',\n label: 'Fonte',\n value: 'Wataniba y Provita, 2024: - Territorios demarcados: Secretaria Técnica de la Comisión Nacional de Demarcación del Hábitat y Tierra de los Pueblos y Comunidades IndÃgenas, Ministerio del Poder Popular para el Ambiente (2014), Mapa Tierras IndÃgenasDir. Gen. POT / Sec. Tec. Com. Nac.- Territorios autodemarcados: Trabajo de Wataniba con Organizaciones indÃgenas (2014, 2022, 2023).- Territorios tradicionales: Ministerio del Poder Popular para la Salud (mapa), 2007.',\n },\n {\n labelKey: 'year',\n label: 'Ano',\n value: '2024',\n },\n ],\n downloadUrl:\n 'https://storage.googleapis.com/mapbiomas-public/initiatives/venezuela/collection_2/layers/INDIGENOUS_TERRITORIES.zip',\n index: 7,\n },\n {\n key: 'physiographic_regions',\n labelKey: 'physiographic_regions',\n color: '#C51B7D',\n descriptionData: [\n {\n labelKey: 'source',\n label: 'Fonte',\n value: 'Provita, 2024',\n },\n {\n labelKey: 'year',\n label: 'Ano',\n value: '2024',\n },\n ],\n downloadUrl:\n 'https://storage.googleapis.com/mapbiomas-public/initiatives/venezuela/collection_2/layers/PHYSIOGRAPHIC_REGIONS.zip',\n index: 8,\n },\n];\n","export default [\n {\n id: 1,\n labelKey: 'dark',\n url: 'http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png',\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'ArcGis Online' },\n ],\n },\n {\n id: 2,\n labelKey: 'white',\n url: '/white-background.jpg',\n layerParams: {\n noWrap: true,\n attribution: 'Creative Commons image found <a href=\"http://www.flickr.com/photos/c32/8025422440/\">here</a>'\n },\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'Mapbiomas.org' },\n ],\n },\n {\n id: 3,\n labelKey: 'satellite',\n url: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'Carto' },\n ],\n },\n {\n id: 4,\n labelKey: 'open_street',\n url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'OpenStreetMap' },\n ],\n },\n {\n id: 5,\n labelKey: 'google_street',\n url: 'http://mt0.google.com/vt/lyrs=m&x={x}&y={y}&z={z}',\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'Google' },\n ],\n },\n {\n id: 6,\n labelKey: 'relief',\n props: {\n tileType: 'wms',\n format: 'image/png',\n layers: '3d_context',\n transparent: true,\n url: `${process.env.REACT_APP_WMS_BASE_URL}/wms/3d_context.map`,\n },\n // url: 'https://earthengine.googleapis.com/v1alpha/projects/earthengine-legacy/maps/92aec3704e31404c601426f06344e54c-b132417f385010dbd2b516d189a02e7b/tiles/{z}/{x}/{y}',\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'ArcGis Online' },\n ],\n },\n {\n id: 7,\n labelKey: 'mosaic',\n props: {\n tileType: 'wms',\n format: 'image/png',\n layers: 'rgb',\n transparent: true,\n url: `${process.env.REACT_APP_WMS_BASE_URL}/wms/rgb.map`,\n },\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'Mapbiomas' },\n ],\n },\n {\n id: 8,\n labelKey: 'coverage',\n props: {\n tileType: 'wms',\n format: 'image/png',\n layers: 'coverage',\n transparent: true,\n url: `${process.env.REACT_APP_WMS_BASE_URL}/wms/coverage.map`,\n },\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'Mapbiomas' },\n ],\n },\n {\n id: 9,\n labelKey: 'planet',\n url: 'https://tileserver-mapbiomas.sccon.com.br/mapbiomas/tiles/1.0.0/planet_mosaic_2021_07/planet/{z}/{x}/{y}.png',\n descriptionData: [\n { labelKey: 'source', label: 'Fonte', value: 'Planet Labs' },\n ],\n },\n];\n","import React from 'react';\nimport classnames from 'classnames';\nimport _ from 'lodash';\n\nimport styles from './CoordinatesInfo.module.scss';\n\nexport default function CoordinatesInfo({\n headerIsVisible,\n mouseCoordinates,\n}) {\n return (\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperWithoutHeader]: !headerIsVisible,\n }) }>\n <div className={ styles.controlWrapper }>\n <span className={ styles.mouseCoordinatesInfo }>{ mouseCoordinates || '0, 0' }</span>\n </div>\n </div>\n );\n}\n","import { useEffect } from 'react';\nimport { useLeaflet } from 'react-leaflet';\n\nexport default function MapCustomEvents({\n onZoomStart = () => {},\n onMoveStart = () => {},\n onEsc = () => {}\n}) {\n const { map } = useLeaflet();\n \n function handleKeyDown(event) {\n let isEscape = false;\n const { originalEvent } = event;\n\n if (!originalEvent) { return; }\n\n if ('key' in originalEvent) {\n isEscape = (originalEvent.key === 'Escape' || originalEvent.key === 'Esc');\n } else {\n isEscape = (originalEvent.keyCode === 27);\n }\n\n if (isEscape) { onEsc(); }\n }\n\n useEffect(() => {\n map.on('zoomstart', onZoomStart);\n map.on('movestart', onMoveStart);\n map.on('keydown', handleKeyDown);\n\n return () => {\n map.off('zoomstart', onZoomStart);\n map.off('movestart', onMoveStart);\n map.off('keydown', handleKeyDown);\n };\n }, [map]);\n\n return null;\n}\n","import React from 'react';\nimport {\n TileLayer,\n} from 'react-leaflet';\n\nimport useCustomMapLayer from '../../../../../../../../hooks/useCustomMapLayer';\n\nexport default function DegradationLayer({\n activeYear,\n baseParams,\n}) {\n const degradationLayerData = useCustomMapLayer({ ...baseParams, activeYear }); \n const { loading, url } = degradationLayerData;\n\n if (loading || !url) {\n return null;\n }\n\n return (\n <TileLayer\n attribution='&copy <a href=\"https://mapbiomas.org/\">MapBiomas</a>'\n url={ url }\n zIndex={ 200 }\n />\n );\n}","import _ from 'lodash';\nimport qs from 'qs';\nimport { useEffect, useState } from 'react';\n\nconst API_URL =\n process.env.REACT_APP_GEE_API_URL ||\n 'https://staging.api.mapbiomas.org/api/v1/amazonia';\n\nconst customSubmoduleProps = {\n coverage_rgb: {\n year: 'activeYear',\n territoryIds: ({ territoryId }) => [territoryId],\n },\n};\n\nexport default function useGenericBaseLayer(params) {\n const { pathKey, layer } = params;\n\n const [url, setUrl] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const customProps = customSubmoduleProps[pathKey] || {};\n const parsedCustomParams = _.reduce(\n customProps,\n (obj, paramFormatter, paramKey) => {\n if (_.isFunction(paramFormatter)) {\n obj[paramKey] = paramFormatter(params);\n } else if (_.isString(paramFormatter)) {\n obj[paramKey] = _.get(params, paramFormatter);\n } else {\n return obj;\n }\n return obj;\n },\n {}\n );\n\n let parsedParams = {\n initiative: 'chaco',\n ...parsedCustomParams,\n };\n\n if (pathKey === 'layer') {\n parsedParams['layer'] = layer;\n }\n\n const mapUrl = `${API_URL}/maps/${pathKey}?${qs.stringify(parsedParams, {\n arrayFormat: 'repeat',\n })}`;\n\n useEffect(() => {\n setLoading(true);\n fetch(mapUrl, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.text())\n .then((data) => {\n setUrl(data);\n setLoading(false);\n });\n }, [mapUrl]);\n\n return {\n loading,\n url,\n };\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport {\n TileLayer,\n} from 'react-leaflet';\n\nimport useGenericBaseLayer from '../../../../../../../../hooks/useGenericBaseLayer';\n\nexport default function GenericBaseLayer({\n activeYear,\n baseParams,\n pathKey,\n layerKey,\n territoryId,\n zIndex = 300,\n}) {\n const layerData = useGenericBaseLayer({\n ...baseParams,\n activeYear,\n pathKey,\n layer: layerKey,\n territoryId,\n });\n const { loading, url } = layerData;\n\n if (loading || !url) {\n return null;\n }\n\n return (\n <TileLayer\n attribution='&copy <a href=\"https://mapbiomas.org/\">MapBiomas</a>'\n url={ url }\n zIndex={ zIndex }\n />\n );\n}","import _ from 'lodash';\nimport qs from 'qs';\nimport { useEffect, useState } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport { GET_CLASS_TREE_DATA } from '../graphql/queries/general';\n\nconst API_URL =\n process.env.REACT_APP_GEE_API_URL ||\n 'https://staging.api.mapbiomas.org/api/v1/amazonia';\n\nconst customSubmoduleProps = {\n coverage_main: {\n year: 'activeYear',\n legend: 'activeClassTreeOptionValue',\n },\n coverage_changes: {\n pixelValues: 'activeClassTreeNodeIds',\n fromYear: ({ yearRange }) => _.first(_.split(yearRange, '-')),\n toYear: ({ yearRange }) => _.last(_.split(yearRange, '-')),\n },\n regeneration_age: {\n year: ({ activeYear }) => _.last(activeYear),\n },\n regeneration_annual: {\n year: ({ activeYear }) => _.last(activeYear),\n },\n deforestation_annual: {\n year: ({ activeYear }) => _.last(activeYear),\n },\n deforestation_accumulated: {\n fromYear: ({ activeYear }) => _.first(activeYear),\n toYear: ({ activeYear }) => _.last(activeYear),\n },\n deforestation_frequency: {\n fromYear: ({ activeYear }) => _.first(activeYear),\n toYear: ({ activeYear }) => _.last(activeYear),\n },\n temporal_analysis_number_of_classes: {\n fromYear: ({ activeYear }) => _.first(activeYear),\n toYear: ({ activeYear }) => _.last(activeYear),\n level: ({ activeClassTreeOptionValue }) =>\n Number(_.last(_.split(activeClassTreeOptionValue, '_'))),\n },\n temporal_analysis_stable_areas: {\n fromYear: ({ activeYear }) => _.first(activeYear),\n toYear: ({ activeYear }) => _.last(activeYear),\n level: ({ activeClassTreeOptionValue }) =>\n Number(_.last(_.split(activeClassTreeOptionValue, '_'))),\n },\n temporal_analysis_number_of_changes: {\n fromYear: ({ activeYear }) => _.first(activeYear),\n toYear: ({ activeYear }) => _.last(activeYear),\n className: ({ activeClassTreeOptionValue }) =>\n activeClassTreeOptionValue.replace(\n 'temporal_analysis_number_of_changes_',\n ''\n ),\n },\n mining_main: {\n year: ({ activeYear }) => _.last(activeYear),\n },\n irrigation_main: {\n year: ({ activeYear }) => _.last(activeYear),\n },\n quality_of_pasture_data_main: {\n year: ({ activeYear }) => _.last(activeYear),\n },\n environmental_analysis: {\n year: 'activeYear',\n environmentalAnalysis: ({ activeClassTreeOptionValue }) =>\n activeClassTreeOptionValue.replace('environmental_analysis_', ''),\n environmentalAnalysisValue: ({ activeBaseClassTreeNodeIds }) =>\n _.isEmpty(activeBaseClassTreeNodeIds)\n ? null\n : _.first(activeBaseClassTreeNodeIds),\n },\n coverage_quality_main: {\n year: 'activeYear',\n },\n coverage_3d: {\n year: 'activeYear',\n },\n};\n\nconst mapCustomModulePathname = {\n environmental_analysis: 'coverage_main',\n coverage_quality_main: 'coverage_quality',\n};\n\nexport default function useGenericMapLayer(params) {\n const {\n activeBaseClassTreeNodeIds,\n activeClassTreeNodeIds,\n activeClassTreeOptionValue,\n crossingTerritories,\n submoduleContentKey,\n territories,\n ruralPropertyCode,\n groupType,\n zoom,\n geometry,\n } = params;\n const hasBaseValueSelected = !_.isEmpty(activeBaseClassTreeNodeIds);\n\n const { data: defaultClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'default',\n },\n });\n const { data: classTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: activeClassTreeOptionValue,\n },\n });\n\n const defaultClassTreeNodes = _.get(\n defaultClassTreeData,\n 'classTreeByKey[0].mvClassTreeLevelsUi'\n );\n const classTreeNodes = _.get(\n classTreeData,\n 'classTreeByKey[0].mvClassTreeLevelsUi'\n );\n\n const [url, setUrl] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const customProps = customSubmoduleProps[submoduleContentKey] || {};\n const parsedCustomParams = _.reduce(\n customProps,\n (obj, paramFormatter, paramKey) => {\n if (_.isFunction(paramFormatter)) {\n obj[paramKey] = paramFormatter(params);\n } else if (_.isString(paramFormatter)) {\n obj[paramKey] = _.get(params, paramFormatter);\n } else {\n return obj;\n }\n return obj;\n },\n {}\n );\n\n const crossingTerritoriesIds = _.map(crossingTerritories, 'id');\n let parsedParams = {\n initiative: 'chaco',\n pixelValues: _.filter(\n _.map(activeClassTreeNodeIds, (nodeId) =>\n _.get(\n _.find(\n !hasBaseValueSelected ? classTreeNodes : defaultClassTreeNodes,\n { id: nodeId }\n ),\n 'pixelValue'\n )\n ),\n _.isNumber\n ),\n territoryIds: _.map(territories, 'id'),\n ...parsedCustomParams,\n };\n\n if (!_.isEmpty(crossingTerritoriesIds)) {\n parsedParams['crossedTerritoryIds'] = crossingTerritoriesIds;\n }\n\n if (groupType === 'car' && ruralPropertyCode) {\n parsedParams['propertyCode'] = ruralPropertyCode;\n }\n\n if (parsedParams['environmentalAnalysisValue']) {\n const nodeId = parsedParams['environmentalAnalysisValue'];\n const nodePixelValue = _.get(\n _.find(classTreeNodes, { id: nodeId }),\n 'pixelValue'\n );\n\n parsedParams['environmentalAnalysisValue'] = nodePixelValue;\n }\n\n if (submoduleContentKey === 'mining_main') {\n parsedParams['zoom'] = zoom;\n }\n\n if (geometry) {\n parsedParams['geometryCoordinates'] = JSON.stringify(\n _.get(geometry, 'geometry.coordinates')\n );\n }\n\n const mapUrl = `${API_URL}/maps/${\n mapCustomModulePathname[submoduleContentKey] || submoduleContentKey\n }?${qs.stringify(parsedParams, { arrayFormat: 'repeat' })}`;\n\n useEffect(() => {\n if (\n _.includes(mapUrl, 'pixelValues') ||\n _.includes(mapUrl, 'coverage_quality') ||\n _.includes(mapUrl, 'coverage_3d')\n ) {\n setLoading(true);\n fetch(mapUrl, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.text())\n .then((data) => {\n setUrl(data);\n setLoading(false);\n });\n }\n }, [mapUrl]);\n\n return {\n loading,\n url,\n };\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport {\n TileLayer,\n} from 'react-leaflet';\n\nimport useGenericMapLayer from '../../../../../../../../hooks/useGenericMapLayer';\n\nexport default function GenericLayer({\n activeYear,\n activeModuleContent,\n baseParams,\n opacity = 1,\n ruralPropertyCode,\n zoom,\n geometry,\n}) {\n const submoduleContentKey = _.last(_.split(activeModuleContent, ':'));\n const layerData = useGenericMapLayer({\n ...baseParams,\n activeYear,\n submoduleContentKey,\n ruralPropertyCode,\n zoom,\n geometry,\n });\n const { loading, url } = layerData;\n\n if (loading || !url) {\n return null;\n }\n\n return (\n <TileLayer\n attribution='&copy <a href=\"https://mapbiomas.org/\">MapBiomas</a>'\n url={ url }\n opacity={ opacity }\n zIndex={ 200 }\n />\n );\n}","import React, { useEffect, useRef } from \"react\";\n// import L from \"leaflet\";\nimport {\n Map,\n TileLayer,\n Marker,\n Popup,\n FeatureGroup,\n Circle,\n} from \"react-leaflet\";\nimport { EditControl } from \"react-leaflet-draw\";\nimport drawLocales from 'leaflet-draw-locales';\n\ndrawLocales('pt');\n\nexport default function LeafDrawWrapper({\n geometryMode,\n onCreate\n}) {\n let controlRef = useRef();\n\n useEffect(() => {\n if (geometryMode === 'polygon') {\n controlRef.current.leafletElement._toolbars.draw._modes.rectangle.handler.disable();\n controlRef.current.leafletElement._toolbars.draw._modes.polygon.handler.enable();\n } if (geometryMode === 'rectangle') {\n controlRef.current.leafletElement._toolbars.draw._modes.polygon.handler.disable();\n controlRef.current.leafletElement._toolbars.draw._modes.rectangle.handler.enable();\n }\n }, [geometryMode]);\n\n const _onEdited = (e) => {\n let numEdited = 0;\n e.layers.eachLayer((layer) => {\n numEdited += 1;\n });\n console.log(`_onEdited: edited ${numEdited} layers`, e);\n\n // this._onChange();\n };\n\n const _onCreated = (e) => {\n let type = e.layerType;\n let layer = e.layer;\n if (type === \"marker\") {\n // Do marker specific actions\n console.log(\"_onCreated: marker created\", e);\n } else {\n console.log(\"_onCreated: something else created:\", type, e);\n }\n\n console.log(\"lalala\", controlRef.current);\n console.log(\"Geojson\", layer.toGeoJSON());\n \n console.log(\"🚀 ~ layer:\", layer.remove())\n // controlRef.current.leafletElement._toolbars.draw._modes.polygon.handler.enable();\n // console.log('lelele', controlRef.current.leafletElement._toolbars.edit);\n // console.log('lelele 1', controlRef.current.leafletElement._toolbars);\n // console.log('lelele 2', controlRef.current.leafletElement._toolbars.edit.remove);\n // controlRef.current.leafletElement._toolbars.edit._modes.delete.handler.removeAllLayers();\n // console.log(\"coords\", layer.getLatLngs());\n // Do whatever else you need to. (save to db; etc)\n\n // this._onChange();\n onCreate(layer.toGeoJSON());\n };\n\n const _onDeleted = (e) => {\n let numDeleted = 0;\n e.layers.eachLayer((layer) => {\n numDeleted += 1;\n });\n console.log(`onDeleted: removed ${numDeleted} layers`, e);\n\n // this._onChange();\n };\n\n const _onMounted = (drawControl) => {\n console.log(\"_onMounted\", drawControl);\n };\n\n const _onEditStart = (e) => {\n console.log(\"_onEditStart\", e);\n };\n\n const _onEditStop = (e) => {\n console.log(\"_onEditStop\", e);\n };\n\n const _onDeleteStart = (e) => {\n console.log(\"_onDeleteStart\", e);\n };\n\n const _onDeleteStop = (e) => {\n console.log(\"_onDeleteStop\", e);\n };\n\n const _onDrawStart = (e) => {\n console.log(\"_onDrawStart\", e);\n };\n\n /*onEdited\tfunction\thook to leaflet-draw's draw:edited event\nonCreated\tfunction\thook to leaflet-draw's draw:created event\nonDeleted\tfunction\thook to leaflet-draw's draw:deleted event\nonMounted\tfunction\thook to leaflet-draw's draw:mounted event\nonEditStart\tfunction\thook to leaflet-draw's draw:editstart event\nonEditStop\tfunction\thook to leaflet-draw's draw:editstop event\nonDeleteStart\tfunction\thook to leaflet-draw's draw:deletestart event\nonDeleteStop\tfunction\thook to leaflet-draw's draw:deletestop event\nonDrawStart\tfunction\thook to leaflet-draw's draw:drawstart event\nonDrawStop\tfunction\thook to leaflet-draw's draw:drawstop event\nonDrawVertex\tfunction\thook to leaflet-draw's draw:drawvertex event\nonEditMove\tfunction\thook to leaflet-draw's draw:editmove event\nonEditResize\tfunction\thook to leaflet-draw's draw:editresize event\nonEditVertex\tfunction\thook to leaflet-draw's draw:editvertex event*/\n return (\n <FeatureGroup>\n <EditControl\n ref={ controlRef }\n position=\"bottomleft\"\n onDrawStart={_onDrawStart}\n onEdited={_onEdited}\n onCreated={_onCreated}\n // onDeleted={_onDeleted}\n // onEdited={(value) => console.log(\"onEdited\", value)}\n // onCreated={(value) => console.log(\"onCreated\", value)}\n // onDeleted={(value) => console.log(\"onDeleted\", value)}\n // onMounted={(value) => console.log(\"onMounted\", value)}\n // onEditStart={(value) => console.log(\"onEditStart\", value)}\n // onEditStop={(value) => console.log(\"onEditStop\", value)}\n // onDeleteStart={(value) => console.log(\"onDeleteStart\", value)}\n // onDeleteStop={(value) => console.log(\"onDeleteStop\", value)}\n draw={{\n polygon: true,\n circle: false,\n circlemarker: false,\n rectangle: true,\n marker: false,\n polyline: false,\n }}\n edit={{\n buffer: {\n replacePolylines: false,\n separateBuffer: false,\n },\n }}\n\n /* draw={\n {\n polyline: {\n icon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon\",\n }),\n shapeOptions: {\n guidelineDistance: 10,\n color: \"navy\",\n weight: 3,\n },\n },\n \trectangle: false,\n \tcirclemarker: false,\n \tcircle: false,\n \tpolygon: false,\n }\n } */\n />\n </FeatureGroup>\n );\n};\n","import './leaflet-side-by-side.css';\n\nvar mapWasDragEnabled\nvar mapWasTapEnabled\n\n// Leaflet v0.7 backwards compatibility\nfunction on (el, types, fn, context) {\n types.split(' ').forEach(function (type) {\n L.DomEvent.on(el, type, fn, context)\n })\n}\n\n// Leaflet v0.7 backwards compatibility\nfunction off (el, types, fn, context) {\n types.split(' ').forEach(function (type) {\n L.DomEvent.off(el, type, fn, context)\n })\n}\n\nfunction getRangeEvent (rangeInput) {\n return 'oninput' in rangeInput ? 'input' : 'change'\n}\n\nfunction cancelMapDrag () {\n mapWasDragEnabled = this._map.dragging.enabled()\n mapWasTapEnabled = this._map.tap && this._map.tap.enabled()\n this._map.dragging.disable()\n this._map.tap && this._map.tap.disable()\n}\n\nfunction uncancelMapDrag (e) {\n this._refocusOnMap(e)\n if (mapWasDragEnabled) {\n this._map.dragging.enable()\n }\n if (mapWasTapEnabled) {\n this._map.tap.enable()\n }\n}\n\n// convert arg to an array - returns empty array if arg is undefined\nfunction asArray (arg) {\n return (arg === 'undefined') ? [] : Array.isArray(arg) ? arg : [arg]\n}\n\nfunction noop () {}\n\nL.Control.SideBySide = L.Control.extend({\n options: {\n thumbSize: 42,\n padding: 0\n },\n\n initialize: function (leftLayers, rightLayers, options) {\n this.setLeftLayers(leftLayers)\n this.setRightLayers(rightLayers)\n L.setOptions(this, options)\n },\n\n getPosition: function () {\n var rangeValue = this._range.value\n var offset = (0.5 - rangeValue) * (2 * this.options.padding + this.options.thumbSize)\n return this._map.getSize().x * rangeValue + offset\n },\n\n setPosition: noop,\n\n includes: L.Evented.prototype || L.Mixin.Events,\n\n addTo: function (map) {\n this.remove()\n this._map = map\n\n var container = this._container = L.DomUtil.create('div', 'leaflet-sbs', map._controlContainer)\n\n this._divider = L.DomUtil.create('div', 'leaflet-sbs-divider', container)\n\n L.DomUtil.create('div', 'leaflet-sbs-divider-control', this._divider)\n\n var range = this._range = L.DomUtil.create('input', 'leaflet-sbs-range', container)\n range.type = 'range'\n range.min = 0\n range.max = 1\n range.step = 'any'\n range.value = 0.5\n range.style.paddingLeft = range.style.paddingRight = this.options.padding + 'px'\n this._addEvents()\n this._updateLayers()\n this._updateLabels()\n return this\n },\n\n remove: function () {\n if (!this._map) {\n return this\n }\n if (this._leftLayer) {\n this._leftLayer.getContainer().style.clip = ''\n }\n if (this._rightLayer) {\n this._rightLayer.getContainer().style.clip = ''\n }\n this._removeEvents()\n L.DomUtil.remove(this._container)\n\n this._map = null\n\n return this\n },\n\n getLeftLayer: function() {\n return this._leftLayer;\n },\n\n getRightLayer: function() {\n return this._rightLayer;\n },\n\n setLeftLayers: function (leftLayers) {\n this._leftLayers = asArray(leftLayers)\n this._updateLayers()\n return this\n },\n\n setRightLayers: function (rightLayers) {\n this._rightLayers = asArray(rightLayers)\n this._updateLayers()\n return this\n },\n\n _updateClip: function () {\n var map = this._map\n var nw = map.containerPointToLayerPoint([0, 0])\n var se = map.containerPointToLayerPoint(map.getSize())\n var clipX = nw.x + this.getPosition()\n var dividerX = this.getPosition()\n\n this._divider.style.left = dividerX + 'px'\n this.fire('dividermove', {x: dividerX})\n var clipLeft = 'rect(' + [nw.y, clipX, se.y, nw.x].join('px,') + 'px)'\n var clipRight = 'rect(' + [nw.y, se.x, se.y, clipX].join('px,') + 'px)'\n if (this._leftLayer) {\n this._leftLayer.getContainer().style.clip = clipLeft\n }\n if (this._rightLayer) {\n this._rightLayer.getContainer().style.clip = clipRight\n }\n },\n\n _updateLayers: function () {\n if (!this._map) {\n return this\n }\n var prevLeft = this._leftLayer\n var prevRight = this._rightLayer\n this._leftLayer = this._rightLayer = null\n this._leftLayers.forEach(function (layer) {\n if (this._map.hasLayer(layer)) {\n this._leftLayer = layer\n }\n }, this)\n this._rightLayers.forEach(function (layer) {\n if (this._map.hasLayer(layer)) {\n this._rightLayer = layer\n }\n }, this)\n if (prevLeft !== this._leftLayer) {\n prevLeft && this.fire('leftlayerremove', {layer: prevLeft})\n this._leftLayer && this.fire('leftlayeradd', {layer: this._leftLayer})\n }\n if (prevRight !== this._rightLayer) {\n prevRight && this.fire('rightlayerremove', {layer: prevRight})\n this._rightLayer && this.fire('rightlayeradd', {layer: this._rightLayer})\n }\n this._updateClip()\n },\n\n _updateLabels: function () {\n if (this._leftLayer) {\n this._divider.setAttribute('data-from-year', this._leftLayer.options.year);\n }\n\n if (this._rightLayer) {\n this._divider.setAttribute('data-to-year', this._rightLayer.options.year);\n }\n },\n\n _addEvents: function () {\n var range = this._range\n var map = this._map\n if (!map || !range) return\n map.on('move', this._updateClip, this)\n map.on('layeradd layerremove', this._updateLayers, this)\n on(range, getRangeEvent(range), this._updateClip, this)\n on(range, L.Browser.touch ? 'touchstart' : 'mousedown', cancelMapDrag, this)\n on(range, L.Browser.touch ? 'touchend' : 'mouseup', uncancelMapDrag, this)\n },\n\n _removeEvents: function () {\n var range = this._range\n var map = this._map\n if (range) {\n off(range, getRangeEvent(range), this._updateClip, this)\n off(range, L.Browser.touch ? 'touchstart' : 'mousedown', cancelMapDrag, this)\n off(range, L.Browser.touch ? 'touchend' : 'mouseup', uncancelMapDrag, this)\n }\n if (map) {\n map.off('layeradd layerremove', this._updateLayers, this)\n map.off('move', this._updateClip, this)\n }\n }\n})\n\nL.control.sideBySide = function (leftLayers, rightLayers, options) {\n return new L.Control.SideBySide(leftLayers, rightLayers, options)\n}\n\nexport default L.Control.SideBySide\n","import React, { useEffect, useRef, useState } from 'react';\nimport {\n GeoJSON,\n Map,\n Marker,\n ScaleControl,\n TileLayer,\n WMSTileLayer,\n ZoomControl,\n} from 'react-leaflet';\nimport qs from 'qs';\nimport { BoxZoomControl } from 'react-leaflet-box-zoom';\nimport _ from 'lodash';\nimport L from 'leaflet';\nimport classnames from 'classnames';\nimport numbro from 'numbro';\nimport * as turf from '@turf/turf';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport LandscapeIcon from '@material-ui/icons/Landscape';\nimport NotListedLocationIcon from '@material-ui/icons/NotListedLocation';\nimport OpacityIcon from '@material-ui/icons/Opacity';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport LibraryBooksIcon from '@material-ui/icons/LibraryBooks';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\nimport usePrevious from '../../../../../../hooks/usePrevious';\n\nimport styles from './MapCanvas.module.scss';\n\nimport baseLayersData from '../../../../../../data/baseLayers';\nimport baseMapsData from '../../../../../../data/baseMaps';\n\nimport CoordinatesInfo from './components/CoordinatesInfo';\nimport MapCustomEvents from './components/MapCustomEvents';\nimport DegradationLayer from './components/DegradationLayer';\nimport GenericBaseLayer from './components/GenericBaseLayer';\nimport GenericLayer from './components/GenericLayer';\nimport LeafDrawWrapper from './components/LeafletDrawWrapper';\n\nimport './leaflet-side-by-side';\n\ndelete L.Icon.Default.prototype._getIconUrl;\n\nL.Icon.Default.mergeOptions({\n iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),\n iconUrl: require('leaflet/dist/images/marker-icon.png'),\n shadowUrl: require('leaflet/dist/images/marker-shadow.png'),\n});\n\nconst useStyles = makeStyles((theme) => ({\n mapButtonActive: {\n backgroundColor: '#F1F1F1',\n '& svg': {\n fill: `${theme.palette.primary.main} !important`,\n },\n },\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 12,\n fontWeight: 400,\n color: 'white',\n backgroundColor: '#444444',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n arrow: {\n color: '#444444',\n },\n}))(Tooltip);\n\nconst HEADER_HEIGHT = 0;\nconst FOOTER_HEIGHT = 30;\nconst EXTERNAL_ELEMENTS_HEIGHT = HEADER_HEIGHT + FOOTER_HEIGHT;\n\nconst CONFIG_DEFAULT = {\n lat: -14.392118,\n lng: -56.25,\n zoom: 4,\n minZoom: 4,\n maxZoom: 19,\n};\n\nconst CUSTOM_MAP_URL = 'https://brasil.mapserver.mapbiomas.org';\n\nexport default function MapCanvas({\n activeBaseMap,\n activeModule,\n activeModuleContent,\n activeYear,\n baseParams,\n carFeature,\n geometry,\n geometryMode,\n countryTerritoryId,\n defaultClassTreeLevelsList,\n flyTo,\n isMobile,\n mapPointInfo,\n activeLayers,\n layersOpacity,\n height,\n headerIsVisible,\n configOptions = {},\n isOnFreezeMode = false,\n onSearchPointClick = () => {},\n showBeforeAndAfterMosaic,\n showDashboardInfo,\n setCoverageTutorial,\n onMoveEnd,\n onFlyToReset = () => {},\n mapboxMode,\n transitionClassTreeNodeId,\n ruralPropertyCode,\n onCreateGeometry = () => {},\n}) {\n const MAP_URL = !_.includes(['soil'], activeModule)\n ? process.env.REACT_APP_WMS_BASE_URL\n : CUSTOM_MAP_URL;\n const API_URL =\n process.env.REACT_APP_GEE_API_URL ||\n 'https://staging.api.mapbiomas.org/api/v1/brazil';\n const classes = useStyles();\n let mapRef = useRef();\n let zoomControlRef = useRef();\n const formatMessage = useFormatMessage();\n const [windowHeight, setWindowHeight] = useState(\n window.innerHeight - EXTERNAL_ELEMENTS_HEIGHT\n );\n const [mouseCoordinates, setMouseCoordinates] = useState(null);\n const [isOnBoxZoomMode, setIsOnBoxZoomMode] = useState(false);\n const [isOnPointSearchMode, setIsOnPointSearchMode] = useState(false);\n const [isOnGeographicalRelief, setIsOnGeographicalRelief] = useState(true);\n const [mapZoom, setMapZoom] = useState(4);\n const [leftMapUrl, setLeftMapUrl] = useState(null);\n const [rightMapUrl, setRightMapUrl] = useState(null);\n const [currentTerritories, setCurrentTerritories] = useState([]);\n const config = _.assign({}, CONFIG_DEFAULT, configOptions);\n const activeBaseMapData = _.find(baseMapsData, { id: activeBaseMap });\n const [currentRangeYears, setCurrentRangeYears] = useState([]);\n const yearRange = _.get(baseParams, 'yearRange');\n let leftSideMosaicLayer, rightSideMosaicLayer, sideBySideControl;\n const mapboxModePrev = usePrevious(mapboxMode);\n\n const geometryBBox = geometry ? turf.bbox(geometry) : [];\n const geometryBBoxFlyTo = !_.isEmpty(geometryBBox)\n ? JSON.stringify([\n [geometryBBox[1], geometryBBox[0]],\n [geometryBBox[3], geometryBBox[2]],\n ])\n : null;\n\n function updateHeight() {\n setWindowHeight(window.innerHeight - EXTERNAL_ELEMENTS_HEIGHT);\n\n if (mapRef.current) {\n mapRef.current.leafletElement.invalidateSize();\n }\n }\n const debouncedUpdateHeight = _.debounce(updateHeight, 500);\n\n function handleBoxZoomClick() {\n setIsOnBoxZoomMode(true);\n }\n\n useEffect(() => {\n setTimeout(() => {\n window.addEventListener('resize', debouncedUpdateHeight);\n\n const boxZoomButton = document.getElementById('box-zoom-button');\n\n if (boxZoomButton) {\n boxZoomButton.addEventListener('click', handleBoxZoomClick);\n }\n }, 3000);\n\n return () => {\n window.removeEventListener('resize', debouncedUpdateHeight);\n\n const boxZoomButton = document.getElementById('box-zoom-button');\n\n if (boxZoomButton) {\n boxZoomButton.removeEventListener('click', handleBoxZoomClick);\n }\n };\n }, []);\n\n useEffect(() => {\n if (mapRef && flyTo && _.isArray(flyTo)) {\n if (_.isArray(_.first(flyTo))) {\n mapRef.current.leafletElement.fitBounds(flyTo);\n } else {\n mapRef.current.leafletElement.flyTo(flyTo, 10);\n }\n onFlyToReset();\n }\n }, [flyTo]);\n\n useEffect(() => {\n if (\n mapboxModePrev &&\n !mapboxMode &&\n mapRef.current &&\n !_.isEmpty(configOptions)\n ) {\n const { lat, lng, zoom } = configOptions;\n\n mapRef.current.leafletElement.panTo([lat, lng], zoom);\n }\n }, [mapboxModePrev, mapboxMode]);\n\n useEffect(() => {\n const url = _.get(activeBaseMapData, 'props.url');\n const layerName = _.get(activeBaseMapData, 'props.layers');\n\n if (showBeforeAndAfterMosaic && url && layerName) {\n const [firstYear, lastYear] = _.split(yearRange, '-');\n\n const territories = _.get(baseParams, 'territories');\n if (\n leftMapUrl !== null &&\n rightMapUrl !== null &&\n _.isEqual(\n currentTerritories,\n territories && _.isEqual(currentRangeYears, [firstYear, lastYear])\n )\n ) {\n return;\n } else {\n setCurrentTerritories(territories);\n setCurrentRangeYears([firstYear, lastYear]);\n }\n\n if (!territories || _.isEmpty(territories)) {\n return null;\n }\n\n const territoryIds = _.join(_.map(territories, 'id'), ',');\n\n const pathKey = 'coverage_main'; //_.last(_.split(activeModuleContent, \":\"));\n const parsedLeftParams = {\n territoryIds: territoryIds,\n pixelValues: _.map(defaultClassTreeLevelsList, 'id'),\n initiative: 'brazil',\n legend: 'default',\n year: parseInt(firstYear),\n };\n const parsedRightParams = {\n territoryIds: territoryIds,\n pixelValues: _.map(defaultClassTreeLevelsList, 'id'),\n initiative: 'brazil',\n legend: 'default',\n year: parseInt(lastYear),\n };\n\n const mapUrlLeft = `${API_URL}/maps/${pathKey}?${qs.stringify(\n parsedLeftParams,\n { indices: false, arrayFormat: 'repeat' }\n )}`;\n\n fetch(mapUrlLeft, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.text())\n .then((data) => {\n setLeftMapUrl(data);\n setCurrentTerritories(territories);\n });\n\n const mapUrlRight = `${API_URL}/maps/${pathKey}?${qs.stringify(\n parsedRightParams,\n { indices: false, arrayFormat: 'repeat' }\n )}`;\n\n fetch(mapUrlRight, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.text())\n .then((data) => {\n setRightMapUrl(data);\n });\n }\n }, [activeBaseMapData, showBeforeAndAfterMosaic, layersOpacity, yearRange]);\n\n useEffect(() => {\n if (showBeforeAndAfterMosaic && leftMapUrl != null && rightMapUrl != null) {\n const [firstYear, lastYear] = _.split(yearRange, '-');\n const layerName = _.get(activeBaseMapData, 'props.layers');\n const territories = _.get(baseParams, 'territories');\n\n if (!territories || _.isEmpty(territories)) {\n return null;\n }\n\n const territoryIds = _.join(_.map(territories, 'id'), ',');\n const classTreeLevelsListIds = _.join(\n _.map(defaultClassTreeLevelsList, 'id'),\n ','\n );\n leftSideMosaicLayer = L.tileLayer(leftMapUrl, {\n transparent: true,\n zIndex: 100,\n year: firstYear,\n layers: layerName,\n tileType: 'wms',\n class_tree_node_ids: classTreeLevelsListIds,\n territory_ids: territoryIds,\n }).addTo(mapRef.current.leafletElement);\n\n rightSideMosaicLayer = L.tileLayer(rightMapUrl, {\n transparent: true,\n zIndex: 100,\n year: lastYear,\n layers: layerName,\n tileType: 'wms',\n class_tree_node_ids: classTreeLevelsListIds,\n territory_ids: territoryIds,\n }).addTo(mapRef.current.leafletElement);\n\n sideBySideControl = L.control\n .sideBySide(leftSideMosaicLayer, rightSideMosaicLayer)\n .addTo(mapRef.current.leafletElement);\n\n return () => {\n mapRef.current.leafletElement.removeLayer(\n sideBySideControl.getLeftLayer()\n );\n mapRef.current.leafletElement.removeLayer(\n sideBySideControl.getRightLayer()\n );\n sideBySideControl.remove();\n };\n }\n }, [leftMapUrl, rightMapUrl]);\n\n useEffect(() => {\n if (geometryBBoxFlyTo) {\n const parsedFlyTo = JSON.parse(geometryBBoxFlyTo);\n mapRef.current.leafletElement.fitBounds(parsedFlyTo, {\n padding: [100, 100],\n });\n }\n }, [geometryBBoxFlyTo]);\n\n const handleGeometryCreate = (value) => {\n if (value) {\n onCreateGeometry(value);\n }\n };\n\n const renderBaseMap = () => {\n const classTreeLevelsListIds = _.join(\n _.map(defaultClassTreeLevelsList, 'id'),\n ','\n );\n\n if (showBeforeAndAfterMosaic) {\n return (\n <TileLayer\n key='base-map-tile-layer'\n attribution='&copy <a href=\"http://osm.org/copyright\">OpenStreetMap</a> contributors'\n url='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'\n zIndex={100}\n />\n );\n }\n\n if (activeBaseMapData.labelKey === 'mosaic') {\n return (\n <>\n <TileLayer\n key='base-map-tile-layer'\n attribution='&copy <a href=\"http://osm.org/copyright\">OpenStreetMap</a> contributors'\n url='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'\n zIndex={100}\n />\n <GenericBaseLayer\n pathKey='coverage_rgb'\n territoryId={countryTerritoryId}\n activeYear={activeYear}\n baseParams={baseParams}\n zIndex={101}\n />\n </>\n );\n }\n\n if (activeBaseMapData.labelKey === 'relief') {\n return (\n <>\n <TileLayer\n key='base-map-tile-layer'\n attribution='&copy <a href=\"http://osm.org/copyright\">OpenStreetMap</a> contributors'\n url='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'\n zIndex={100}\n />\n <GenericBaseLayer pathKey='3d_context' zIndex={101} />\n </>\n );\n }\n\n if (!activeBaseMapData.props) {\n if (activeBaseMapData.labelKey === 'planet') {\n return [\n <TileLayer\n key='base-map-tile-layer'\n url='https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'\n zIndex={100}\n />,\n <TileLayer\n key='planet-tile-layer'\n attribution='&copy <a href=\"https://www.planet.com/\">Planet</a>'\n url={activeBaseMapData.url}\n zIndex={101}\n />,\n ];\n } else {\n return (\n <TileLayer\n attribution='&copy <a href=\"http://osm.org/copyright\">OpenStreetMap</a> contributors'\n url={activeBaseMapData.url}\n zIndex={100}\n />\n );\n }\n } else {\n const year = _.isArray(activeYear) ? _.last(activeYear) : activeYear;\n\n return [\n <TileLayer\n key='base-map-tile-layer'\n attribution='&copy <a href=\"http://osm.org/copyright\">OpenStreetMap</a> contributors'\n url='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'\n zIndex={100}\n />,\n <WMSTileLayer\n key='base-map-custom-tile-layer'\n {...activeBaseMapData.props}\n class_tree_node_ids={classTreeLevelsListIds}\n territory_ids={countryTerritoryId}\n year={year}\n zIndex={101}\n />,\n ];\n }\n };\n\n const renderCoverageLayer = () => {\n return (\n <GenericLayer\n activeModuleContent={activeModuleContent}\n activeYear={activeYear}\n baseParams={baseParams}\n opacity={layersOpacity / 100}\n ruralPropertyCode={ruralPropertyCode}\n geometry={geometry}\n />\n );\n };\n\n const renderTransitionLayer = () => {\n return (\n <GenericLayer\n activeModuleContent={activeModuleContent}\n activeYear={activeYear}\n baseParams={baseParams}\n opacity={layersOpacity / 100}\n ruralPropertyCode={ruralPropertyCode}\n geometry={geometry}\n />\n );\n };\n\n const renderQualityLayer = () => {\n const territories = _.get(baseParams, 'territories');\n\n if (!territories || _.isEmpty(territories)) {\n return null;\n }\n\n const territoryIds = _.join(_.map(territories, 'id'), ',');\n\n return (\n <WMSTileLayer\n transparent\n format='image/png'\n layers='quality_of_data'\n url={`${MAP_URL}/wms/quality_of_data.map`}\n territory_ids={territoryIds}\n year={activeYear}\n zIndex={200}\n opacity={layersOpacity / 100}\n />\n );\n };\n\n const renderPastureQualityQualityLayer = () => {\n const territories = _.get(baseParams, 'territories');\n const activePastureQualityQualityClassesListItems = _.get(\n baseParams,\n 'activePastureQualityQualityClassesListItems'\n );\n\n const enabledPixelValues = _.join(\n activePastureQualityQualityClassesListItems,\n ','\n );\n\n if (!territories || _.isEmpty(territories)) {\n return null;\n }\n\n const territoryIds = _.join(_.map(territories, 'id'), ',');\n\n return (\n <WMSTileLayer\n transparent\n format='image/png'\n layers='pasture_quality_coverage'\n url={`${MAP_URL}/wms/pasture_quality_coverage.map`}\n territory_ids={territoryIds}\n year={activeYear}\n enabled_pixel_values={enabledPixelValues}\n zIndex={200}\n opacity={layersOpacity / 100}\n />\n );\n };\n\n const renderInfrastructureCoverageLayer = ({\n opacityDenominator = 100,\n objectsMask = true,\n } = {}) => {\n const territories = _.get(baseParams, 'territories');\n const bufferId = _.get(baseParams, 'buffer');\n const activeObjectTreeNodeIds = _.join(\n _.get(baseParams, 'activeObjectTreeNodeIds')\n );\n const activeClassTreeNodeIds = _.join(\n _.get(baseParams, 'activeClassTreeNodeIds')\n );\n\n if (!territories || _.isEmpty(territories)) {\n return null;\n }\n\n const territoryIds = _.join(_.map(territories, 'id'), ',');\n\n return (\n <WMSTileLayer\n transparent\n format='image/png'\n layers={objectsMask ? 'coverage' : 'coverage_without_objects_mask'}\n url={`${MAP_URL}/wms/infrastructure_coverage.map`}\n territory_ids={territoryIds}\n year={activeYear}\n class_tree_node_ids={activeClassTreeNodeIds}\n buffer_id={bufferId}\n object_tree_node_ids={activeObjectTreeNodeIds}\n zIndex={200}\n opacity={layersOpacity / opacityDenominator}\n />\n );\n };\n\n const renderObjectLayer = () => {\n const activeSubmodule = _.get(baseParams, 'activeSubmodule');\n const activeObjectTreeNodeIds = _.join(\n _.get(baseParams, 'activeObjectTreeNodeIds')\n );\n\n if (!activeObjectTreeNodeIds || _.isEmpty(activeObjectTreeNodeIds)) {\n return null;\n }\n\n return (\n <WMSTileLayer\n transparent\n format='image/png'\n layers='objects_point,objects_line'\n url={`${MAP_URL}/wms/${activeSubmodule}_objects.map`}\n object_tree_node_ids={activeObjectTreeNodeIds}\n zIndex={300}\n opacity={layersOpacity / 100}\n />\n );\n };\n\n const renderGenericLayer = () => {\n if (\n _.includes(\n [\n 'coverage',\n 'regeneration',\n 'deforestation',\n 'temporal_analysis',\n 'mining',\n 'irrigation',\n 'quality_of_pasture_data',\n 'coverage_quality',\n ],\n activeModule\n )\n ) {\n return (\n <GenericLayer\n activeModuleContent={activeModuleContent}\n activeYear={activeYear}\n baseParams={baseParams}\n opacity={layersOpacity / 100}\n ruralPropertyCode={ruralPropertyCode}\n zoom={mapZoom}\n geometry={geometry}\n />\n );\n }\n\n const territories = _.get(baseParams, 'territories');\n const activeSubmodule = _.get(baseParams, 'activeSubmodule');\n const activeClassTreeNodeIds = _.join(\n _.get(baseParams, 'activeClassTreeNodeIds')\n );\n // TODO: Do something with activeBaseClassTreeNodeIds param\n const activeBaseClassTreeNodeIds = _.get(\n baseParams,\n 'activeBaseClassTreeNodeIds'\n );\n let mapPathname = activeSubmodule;\n\n if (!territories || _.isEmpty(territories)) {\n return null;\n }\n\n const territoryIds = _.join(_.map(territories, 'id'), ',');\n\n let yearParams = {};\n\n if (activeModuleContent === 'fire:fire_frequency') {\n yearParams = {\n from_year: _.first(activeYear),\n to_year: _.last(activeYear),\n };\n } else if (\n activeModuleContent ===\n 'temporal_analysis:temporal_analysis_stable_areas' ||\n activeModuleContent ===\n 'temporal_analysis:temporal_analysis_number_of_changes' ||\n activeModuleContent ===\n 'temporal_analysis:temporal_analysis_number_of_classes'\n ) {\n mapPathname = _.get(baseParams, 'activeClassTreeOptionValue');\n yearParams = {\n from_year: _.first(activeYear),\n to_year: _.last(activeYear),\n year: _.join(activeYear, ''),\n };\n } else {\n if (_.isArray(activeYear)) {\n yearParams = {\n year: _.last(activeYear),\n };\n } else {\n yearParams = {\n year: activeYear,\n };\n }\n }\n\n return (\n <WMSTileLayer\n transparent\n format='image/png'\n key={`generic-layer-${JSON.stringify(yearParams)}`}\n layers={activeSubmodule}\n url={`${MAP_URL}/wms/${mapPathname}.map`}\n class_tree_node_ids={activeClassTreeNodeIds}\n territory_ids={territoryIds}\n zIndex={200}\n opacity={layersOpacity / 100}\n {...yearParams}\n />\n );\n };\n\n const renderDegradationLayer = () => {\n return <DegradationLayer activeYear={activeYear} baseParams={baseParams} />;\n };\n\n const renderModuleContentLayer = () => {\n if (activeModuleContent === 'coverage:coverage_main') {\n return renderCoverageLayer();\n } else if (activeModuleContent === 'coverage:coverage_changes') {\n return renderTransitionLayer();\n // } else if (activeModuleContent === 'coverage:coverage_quality' || activeModuleContent === 'coverage_quality:coverage_quality_main') {\n // return renderQualityLayer();\n // } else if (activeModuleContent === 'quality_of_pasture_data:pasture_quality_main') {\n // return renderPastureQualityQualityLayer();\n } else if (\n activeModuleContent === 'infrastructure:infrastructure_main' &&\n _.get(baseParams, 'buffer') === 0\n ) {\n return [\n renderInfrastructureCoverageLayer({\n opacityDenominator: 200,\n objectsMask: false,\n }),\n renderObjectLayer(),\n ];\n } else if (activeModuleContent === 'infrastructure:infrastructure_main') {\n return renderInfrastructureCoverageLayer();\n } else if (activeModule === 'degradation') {\n return renderDegradationLayer();\n } else {\n return renderGenericLayer();\n }\n };\n\n const renderBaseLayers = () => {\n return _.map(activeLayers, (key) => {\n const layerData = _.find(baseLayersData, { key });\n\n return (\n <GenericBaseLayer\n pathKey='layer'\n layerKey={layerData.key}\n zIndex={300 + layerData.index}\n />\n );\n });\n };\n\n const renderCARFeature = () => {\n if (!carFeature) {\n return null;\n }\n\n return (\n <GeoJSON\n zIndex={400}\n key={`land-registry-${_.get(carFeature, 'id')}`}\n data={carFeature}\n style={{\n color: '#ff7800',\n weight: 3,\n opacity: 0.85,\n }}\n />\n );\n };\n\n const handleMapClick = (event) => {\n if (!isOnBoxZoomMode && !isOnFreezeMode && isOnPointSearchMode) {\n const { lat, lng } = event.latlng;\n const { x, y } = event.layerPoint;\n const point1 = { x, y: y - 1 };\n const point2 = { x, y: y + 1 };\n\n const parsedPoint1 =\n mapRef.current.leafletElement.layerPointToLatLng(point1);\n const parsedPoint2 =\n mapRef.current.leafletElement.layerPointToLatLng(point2);\n\n onSearchPointClick({\n __typename: 'MapPointInfo',\n parsedBBox: [\n _.get(parsedPoint2, 'lng'),\n _.get(parsedPoint2, 'lat'),\n _.get(parsedPoint1, 'lng'),\n _.get(parsedPoint1, 'lat'),\n ],\n latlng: [lat, lng],\n });\n }\n };\n\n const handleMouseMove = (event) => {\n const { lat, lng } = event.latlng;\n const formatNumber = (value) => {\n const formattedValue = numbro(value).format({\n thousandSeparated: true,\n mantissa: 2,\n });\n\n return _.replace(formattedValue, ',', '.');\n };\n\n setMouseCoordinates(`${formatNumber(lat)}, ${formatNumber(lng)}`);\n };\n\n const handleMoveEnd = (event) => {\n if (onMoveEnd) {\n const center = event.target.getCenter();\n const zoom = event.target.getZoom();\n const combinedValue = `${center.lat.toFixed(6)},${center.lng.toFixed(\n 6\n )},${zoom}`;\n\n onMoveEnd(combinedValue);\n }\n };\n\n const handleZoomEnd = (event) => {\n const zoom = event.target.getZoom();\n setMapZoom(zoom);\n };\n\n const stopZoomControl = () => {\n if (zoomControlRef.current) {\n zoomControlRef.current.stop();\n }\n\n setIsOnBoxZoomMode(false);\n };\n\n const togglePointSearchMode = (event) => {\n event.stopPropagation();\n setIsOnPointSearchMode(!isOnPointSearchMode);\n };\n\n const toggleGeographicalReliefhMode = (event) => {\n event.stopPropagation();\n setIsOnGeographicalRelief(!isOnGeographicalRelief);\n };\n\n return (\n <Map\n ref={mapRef}\n className={classnames(styles.mapWrapper, {\n [styles.mapWrapperWithHeader]: headerIsVisible,\n [styles.mapWrapperOnPointSearchMode]: isOnPointSearchMode,\n })}\n center={[config.lat, config.lng]}\n zoom={config.zoom}\n // minZoom={ config.minZoom }\n // maxZoom={ config.maxZoom }\n style={{ height: height || windowHeight }}\n zoomControl={false}\n onClick={handleMapClick}\n onmousemove={handleMouseMove}\n onmoveend={handleMoveEnd}\n onzoomend={handleZoomEnd}\n {...configOptions}\n >\n <ZoomControl position='bottomleft' />\n <ScaleControl position='bottomleft' imperial={false} />\n <BoxZoomControl\n position='bottomleft'\n ref={zoomControlRef}\n sticky={true}\n className='t-zoombox'\n style={{\n position: 'relative',\n bottom: '-81px',\n width: '32px',\n height: '32px',\n margin: '0px',\n boxShadow:\n '0 1px 3px rgba(150, 150, 150, 0.12), 0 1px 2px rgba(125, 125, 125, 0.24)',\n border: 'none',\n backgroundColor: 'white',\n backgroundImage:\n 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAADJUlEQVRIS+WWQWgTQRSGZ1KItiexIFVDyM6YnFS8CLZisQg9ain24qWtoJeS2h4ys0k97KVhZpsarCiUiqIiFIoGPRUEsRf14KHiLe3ORG3VQ1GsSGhosrJgwpJks0khVHCO+/73vvd23nu7EOzSgbvEBSUwpXRJCNFtTyQUCvknJyc/E0KiUsp40aYoygVd159TSruFEEt2H4zxHcbYiFtBJfDAwIBZLg4EAqGpqakVSukNIcR40Y4QGuScPySEnJdSPrP7IYTec85PNAxGCJ2BEK5tbW1tJpPJ71YATdM82WzWByH0FAqFnK7rX4qBI5FIR0tLy14AQK9hGLM7BmOMFcZYxi3jcjshpE9Kmdox2OfztRcrbQQejUY7V1dXXyOEXnDOe918S3cci8UO5nK5vYlEQro5OdljsdhRr9f7SdO0TbcY/8Q4XQcAdLS2to5qmlaolXE0Gm3P5/N9EMLTAIADpmluQgiXIYRPGWOrbtVa9opx8vv9genp6Y8OzpAQck1KmXQKjhCay+fz44lE4netBCrANboaUkrvCiEuu1WEEFoGAJzlnP900laAg8HgoXg8/rXKuIxKKW+6QW1LJsU573cFq6raa5rmfs75fLl4bGxs3/r6+o9qQTDGM4ZhjDrYehhjr6rZ6upqVVWHDMO4Xy3AwsICrLZuLS3G+AFjbKgmuFbFhJBZKeXVRsGW3kqsJriYdbU7ppSmhBB9tvub45xXJEIpvSSEeGwH1Q2u1tWU0ntCiOGmVowQikAINwAA3xhjixaMUhoWQsw0CkYIPeGcX6zrVdtFiqKc1HX93cTExOF0Or1WLYCiKCNSytsOXd3PGEvVBBNCmMfjOVUUmaa5YZrmsK7rv6xnhBBdShlpYI7fcs67AAAVPxhWjLrGyRJqmubNZrOLQoieeuAY43OMsZeuC6SeYOFweE9bW9stIcSVevQY46DTR6Puiu0gSukx0zQHAQBdUsrOv8viEYRwfnt7eyWTyaSLeif4jsBu1aqqesQwjBXb3B/nnH+w+zUFbAHK4eWLpGlgO1xRlDe6rlsdXjpNBde6kv8P/Ac2H3ou8vCdygAAAABJRU5ErkJggg==)',\n backgroundSize: '80%',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n outline: 'none',\n cursor: 'pointer',\n borderRadius: '6px',\n }}\n activeStyle={{\n backgroundColor: '#F1F1F1',\n backgroundImage:\n 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAADQElEQVRIS+WWTWgTURDH30shtj2JBakfiIJ68QMvgq1m0yrW7CaxoXjy0lbQS0ltD3lvk3rYS8N729RgRaFUFBWhF41tdpNgoTS7YhU8VMSLFfwq6qEoViQ0NFlZMGXJ1yaFUsF33PnP/Gb2zcwuBBt04AZxwSoYY5xkFYkxJjJ10rNrcHDwM0LIz6lyMGeL2ZztoihOYowZVpGSRp+E3X2TENJjVtAqeKbpgJYvlk9w+4eGhuYxxldZRerP2eOMq5NSeg8hdJZT5QmjX5xxvaKUHqkaHGdcNgjhwvLy8lI4HP6uBxAEwZJKpXZCCC3ZbDYtiuKXXGCfz9dYU1NTCwBocySjo2sGJ+zuPYSQD2YZ59sRQh5OlSNrBk8ca2vIVVoN3O/3N52ZmXwWZ1xTlNI2M9/VOw4EAtvS6XRtKBR6b+ZUyh4IBA5ardZPgiAsmcX4J8bpCgCgsa6urlcQhGy5jP1+f0Mmk/FACI8DALZqmrYEIZyDED4ihLwzq1a3F4xTtNmxe3h4+GMJZ4gQusypcrhU8DjjGstkMv2hUOh3uQQKwGW6GmKMb7GKdMGsojjjmgMAtFBKf5bSFoCftLZvDwaDX4uMSy+nytfMoIYlE6GUdpiCeZ5v0zRtC6V0PF/c19e32fNi6kexIAm7e8SRjPaWsLUSQmaK2Srqap7nuxzJ6J1iAVpm38Bi61bXJuzuu4SQrrLgchUjhEY5Vb5ULVjX64mVBeeyLnbHGOMIq0gew/2NUUoLEsEYn2cV6YERVDG4WFdjjG+zitS9rhXHGZcPQrgIAPhGCEnoMIyxl1WkkWrBccb1kFJ6rqJXbRTFbM6joii+HBgY2HF6+vFCsQAxm7OHU+UbJbq6gxASKQtGCBGLxXIsJ9I0bVHTtG5RFH/pzxBCIqfKvirm+DmltBkAUPCDoceoaJx0oSAI1lQqlWAVqbUSeMLuPkUImTZdIJUE83q9m+rr66+zinSxEn3C7t5X6qNRccVGEMb4kKZpnQCAZk6Vm/4ui/sQwvGVlZV559PY25y+FHxNYLNqeZ7f60hG5w1zf5hS+troty5gHZAPz18k6wY2wmM256woinqHr551BZe7kv8P/Ac5JIEu+h5xfgAAAABJRU5ErkJggg==)',\n }}\n />\n {!(isMobile && showDashboardInfo) && (\n <CustomTooltip\n arrow\n title={formatMessage('map_controls.point_info.title')}\n placement='right'\n >\n <button\n className={classnames(\n styles.mapActionButton,\n styles.mapSearchButton,\n {\n [classes.mapButtonActive]: isOnPointSearchMode,\n }\n )}\n onClick={togglePointSearchMode}\n id='info-point'\n >\n <NotListedLocationIcon />\n </button>\n </CustomTooltip>\n )}\n {!isMobile && false && (\n <CustomTooltip\n arrow\n title={formatMessage('mapbiomas.tutorial.title')}\n placement='right'\n >\n <button\n id='tutorial-icon'\n className={classnames(\n styles.mapActionButton,\n styles.tutorialButton\n )}\n onClick={() => setCoverageTutorial(true)}\n >\n <LibraryBooksIcon />\n </button>\n </CustomTooltip>\n )}\n {/* <Tooltip title=\"Visualização em relevo\" placement=\"right\">\n <button\n className={ classnames(styles.mapActionButton, styles.mapGeographicalReliefButton, {\n [classes.mapButtonActive]: isOnGeographicalRelief\n }) }\n onClick={ toggleGeographicalReliefhMode }\n >\n <LandscapeIcon />\n </button>\n </Tooltip> */}\n {renderBaseMap()}\n {renderModuleContentLayer()}\n {renderBaseLayers()}\n {renderCARFeature()}\n {flyTo && _.isNumber(_.first(flyTo)) && <Marker position={flyTo} />}\n {mapPointInfo && isOnPointSearchMode && (\n <Marker position={_.get(mapPointInfo, 'latlng')} />\n )}\n <MapCustomEvents\n onMoveStart={stopZoomControl}\n onZoomStart={stopZoomControl}\n onEsc={stopZoomControl}\n />\n <CoordinatesInfo\n headerIsVisible={headerIsVisible}\n mouseCoordinates={mouseCoordinates}\n />\n <LeafDrawWrapper\n geometryMode={geometryMode}\n onCreate={handleGeometryCreate}\n />\n </Map>\n );\n}\n","import React from 'react';\nimport { Source, Layer } from 'react-map-gl';\n\nimport useGenericMapLayer from '../../../../../../hooks/useGenericMapLayer';\n\nexport default function MapboxCoverageLayer({\n activeYear,\n baseParams,\n ruralPropertyCode,\n geometry,\n opacity\n}) {\n const submoduleContentKey = 'coverage_3d';\n const layerData = useGenericMapLayer({\n ...baseParams,\n activeYear,\n submoduleContentKey,\n ruralPropertyCode,\n geometry,\n });\n const { loading, url } = layerData;\n\n if (loading || !url) {\n return null;\n }\n\n return (\n <Source\n id=\"mapbiomas-brasil-3d\"\n type=\"raster\"\n key={ `coverage-3d-${ url }` }\n tiles={ [\n url\n ] }\n tileSize={ 256 }\n >\n <Layer\n id=\"layer-mapbiomas-brasil-3d\"\n sourceLayer=\"layer-mapbiomas-brasil-3d\"\n type=\"raster\"\n source=\"layer-mapbiomas-brasil-3d\"\n paint={ {\n 'raster-opacity': opacity\n } }\n />\n </Source>\n );\n}","import React, { useEffect, useRef, useState } from 'react';\nimport Map, { NavigationControl, Source, Layer } from 'react-map-gl';\nimport mapboxgl from 'mapbox-gl';\nimport classnames from 'classnames';\nimport numbro from 'numbro';\n\nmapboxgl.workerClass = require('worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker').default;\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport NotListedLocationIcon from '@material-ui/icons/NotListedLocation';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport CoordinatesInfo from '../MapCanvas/components/CoordinatesInfo';\n\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\nimport useWindowSize from '../../../../../../hooks/useWindowSize';\n\nimport MapboxCoverageLayer from './MapboxCoverageLayer';\n\nconst EXTERNAL_ELEMENTS_HEIGHT = 30;\n\nimport styles from './MapboxCanvas.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n mapButtonActive: {\n backgroundColor: '#F1F1F1',\n '& svg': {\n fill: `${theme.palette.primary.main} !important`\n }\n }\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 12,\n fontWeight: 400,\n color: 'white',\n backgroundColor: '#444444',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n arrow: {\n color: '#444444'\n },\n}))(Tooltip);\n\nconst MAPBOX_TOKEN = 'pk.eyJ1IjoiZ2xhdWNvbXVuc2JlcmciLCJhIjoiY2wzczI4dmMyMW1kdjNqcGVhdTdxbDN5ciJ9.WSNrzmo52BqUJFJOCm1hAg';\n\nconst CONFIG_DEFAULT = {\n lat: -23.8294,\n lng: -45.4531,\n zoom: 10.01,\n bearing: 0,\n pitch: 54,\n exaggeration: [\n 'interpolate',\n ['linear'],\n ['get', 'z'], // based on z value, same as accessing in fill-extrusion\n 0, 60,\n 100, 1,\n ]//,\n //exaggeration: ['^', ['get', 'z'], 0.9]\n};\n\nexport default function MapboxCanvas({\n activeLayers,\n activeYear,\n baseParams,\n configOptions,\n flyTo,\n headerIsVisible,\n isMobile,\n layersOpacity,\n onSearchPointClick,\n onMoveEnd,\n geometry,\n ruralPropertyCode,\n}) {\n const CONFIG = { ...CONFIG_DEFAULT, ...configOptions };\n const classes = useStyles();\n const mapRef = useRef();\n const windowSize = useWindowSize();\n const formatMessage = useFormatMessage();\n const [isOnPointSearchMode, setIsOnPointSearchMode] = useState(false);\n const [mouseCoordinates, setMouseCoordinates] = useState(null);\n\n useEffect(() => {\n if (mapRef && mapRef.current && flyTo && _.isArray(flyTo)) {\n if (_.isArray(_.first(flyTo))) {\n mapRef.current.fitBounds([\n _.reverse(_.first(flyTo)),\n _.reverse(_.last(flyTo)),\n ]);\n } else {\n mapRef.current.panTo(flyTo, 10);\n }\n }\n }, [flyTo]);\n\n const handleMapClick = (event) => {\n if (isOnPointSearchMode && mapRef.current) {\n const { lat, lng } = event.lngLat;\n const { x, y } = event.point;\n const point1 = { x, y: y - 1 };\n const point2 = { x, y: y + 1 };\n\n const parsedPoint1 = mapRef.current.layerPointToLatLng(point1);\n const parsedPoint2 = mapRef.current.layerPointToLatLng(point2);\n \n onSearchPointClick({\n __typename: 'MapPointInfo',\n parsedBBox: [\n _.get(parsedPoint2, 'lng'),\n _.get(parsedPoint2, 'lat'),\n _.get(parsedPoint1, 'lng'),\n _.get(parsedPoint1, 'lat'),\n ],\n latlng: [lat, lng],\n });\n }\n };\n\n const handleMouseMove = (event) => {\n const { lat, lng } = event.lngLat;\n const formatNumber = (value) => {\n const formattedValue = numbro(value).format({\n thousandSeparated: true,\n mantissa: 2\n });\n\n return _.replace(formattedValue, ',', '.');\n };\n\n setMouseCoordinates(`${formatNumber(lat)}, ${formatNumber(lng)}`);\n };\n\n const handleMoveEnd = (event) => {\n const viewState = _.get(event, 'viewState');\n\n if (viewState) {\n const {\n latitude,\n longitude,\n zoom\n } = viewState;\n const combinedValue = `${latitude.toFixed(6)},${longitude.toFixed(6)},${zoom}`;\n\n onMoveEnd(combinedValue);\n }\n };\n\n const territories = _.get(baseParams, 'territories');\n\n if (!territories || _.isEmpty(territories)) {\n return null;\n }\n\n const territoryIds = _.join(_.map(territories, 'id'), ',');\n\n const renderCoverageLayer = () => {\n return (\n <MapboxCoverageLayer\n activeYear={ activeYear }\n baseParams={ baseParams }\n opacity={ layersOpacity / 100 }\n ruralPropertyCode={ ruralPropertyCode }\n geometry={ geometry }\n />\n );\n };\n\n const renderShadowLayer = () => {\n\n return (\n <Source\n id=\"earthengine-shadow\"\n key={ `earthengine-shadow-3d-${ territoryIds }-${ activeYear }` }\n type=\"raster\"\n tiles={ [\n `${process.env.REACT_APP_WMS_BASE_URL}/wms/3d_context.map?service=WMS&request=GetMap&layers=3d_context&styles=&format=image%2Fpng&transparent=true&version=1.1.1&SRS=epsg:3857&width=256&height=256&bbox={bbox-epsg-3857}&territory_ids=${territoryIds }`\n ] }\n tileSize={ 512 }\n minZoom={ 0 }\n maxZoom={ 14 }\n >\n <Layer\n id=\"earthengine-shadow\"\n sourceLayer=\"earthengine-shadow\"\n type=\"raster\"\n source=\"earthengine-shadow\"\n paint={ {\n 'raster-opacity': layersOpacity / 100\n } }\n />\n </Source>\n );\n };\n\n\n return (\n <Map\n ref={mapRef}\n initialViewState={{\n longitude: CONFIG.lng,\n latitude: CONFIG.lat,\n zoom: CONFIG.zoom,\n pitch: CONFIG.pitch,\n bearing: CONFIG.bearing,\n }}\n maxPitch={85}\n style={{ width: '100%', height: windowSize.height - EXTERNAL_ELEMENTS_HEIGHT }}\n mapStyle=\"mapbox://styles/joaosiqueira/cl2z3nryn003i14qn82b0es7r\"\n mapboxAccessToken={MAPBOX_TOKEN}\n terrain={{ source: 'mapbox-dem', exaggeration: CONFIG.exaggeration }}\n fog={{\n 'color': 'rgba(186, 210, 235,0.3)', // Lower atmosphere\n 'high-color': 'rgb(36, 92, 223)', // Upper atmosphere\n 'horizon-blend': 0.02, // Atmosphere thickness (default 0.2 at low zooms)\n 'space-color': 'rgb(11, 11, 25)', // Background color\n 'star-intensity': 0.6 // Background star brightness (default 0.35 at low zoooms )\n }}\n onClick={handleMapClick}\n onMouseMove={handleMouseMove}\n onMoveEnd={handleMoveEnd}\n >\n <Source\n id=\"mapbox-dem\"\n type=\"raster-dem\"\n url=\"mapbox://mapbox.mapbox-terrain-dem-v1\"\n tileSize={512}\n maxZoom={4}\n />\n { renderShadowLayer() }\n { renderCoverageLayer() }\n {/* <NavigationControl position=\"bottom-left\" /> */}\n <div\n className={classnames({\n [styles.mapWrapperWithHeader]: headerIsVisible,\n })}\n >\n {/* { !(isMobile && showDashboardInfo) &&\n <CustomTooltip arrow title={ formatMessage('map_controls.point_info.title') } placement=\"right\">\n <button\n className={ classnames(styles.mapActionButton, styles.mapSearchButton, {\n [classes.mapButtonActive]: isOnPointSearchMode\n }) }\n onClick={ togglePointSearchMode }\n >\n <NotListedLocationIcon />\n </button>\n </CustomTooltip>\n } */}\n <CoordinatesInfo\n headerIsVisible={headerIsVisible}\n mouseCoordinates={mouseCoordinates}\n />\n </div>\n </Map>\n );\n}\n","import React from 'react';\nimport classnames from 'classnames';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport styles from './MapboxControl.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n searchButtonActive: {\n color: `${ theme.palette.primary.main } !important`,\n backgroundColor: '#F1F1F1 !important',\n }\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 12,\n fontWeight: 400,\n color: 'white',\n backgroundColor: '#444444',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n arrow: {\n color: '#444444'\n },\n}))(Tooltip);\n\nexport default function MapboxControl({\n isActive,\n onToggle = () => {},\n headerIsVisible,\n showBeforeAndAfterMosaic,\n}) {\n const classes = useStyles();\n const formatMessage = useFormatMessage();\n\n return (\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperHeader]: headerIsVisible,\n [styles.wrapperWithBeforeAndAfterMosaic]: showBeforeAndAfterMosaic,\n }) }>\n <div id=\"3d-control\" className={ styles.controlWrapper }>\n <CustomTooltip arrow title={ formatMessage('map_controls.view_3d.title') } placement=\"right\">\n <button\n className={ classnames(styles.searchButton, {\n [classes.searchButtonActive]: isActive\n }) }\n onClick={ onToggle }\n >\n 3D\n </button>\n </CustomTooltip>\n </div>\n </div>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport { FormattedMessage } from 'react-intl';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport Collapse from '@material-ui/core/Collapse';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport IconButton from '@material-ui/core/IconButton';\nimport LayersIcon from '@material-ui/icons/Layers';\nimport MapIcon from '@material-ui/icons/Map';\nimport OpacityIcon from '@material-ui/icons/Opacity';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport Slider from '@material-ui/core/Slider';\nimport Switch from '@material-ui/core/Switch';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport styles from './MapControls.module.scss';\n\nimport baseLayersData from '../../../../../../data/baseLayers';\nimport baseMapsData from '../../../../../../data/baseMaps';\n\nconst useStyles = makeStyles((theme) => ({\n actionButtonActive: {\n backgroundColor: '#F7F7F7',\n '& svg': {\n fill: `${ theme.palette.primary.main } !important`\n },\n },\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 12,\n fontWeight: 400,\n color: 'white',\n backgroundColor: '#444444',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n arrow: {\n color: '#444444'\n },\n}))(Tooltip);\n\nconst CustomSwitch = withStyles({\n switchBase: {\n '&$checked': {\n color: ({ customColor }) => customColor,\n },\n '&$checked + $track': {\n backgroundColor: ({ customColor }) => customColor,\n },\n },\n checked: {\n color: ({ customColor }) => customColor,\n },\n track: {\n color: ({ customColor }) => customColor,\n },\n})(Switch);\n\nexport default function MapControls({\n activeBaseMap,\n showBeforeAndAfterMosaic,\n activeLayers,\n headerIsVisible,\n layersOpacity,\n onChange,\n}) {\n const classes = useStyles();\n const formatMessage = useFormatMessage();\n const [activeBox, setActiveBox] = useState(null);\n const [opacityValue, setOpacityValue] = useState(layersOpacity);\n const [activeLegendItem, setActiveLegendItem] = useState(null);\n const [activeBaseMapLegendItem, setActiveBaseMapLegendItem] = useState(null);\n\n useEffect(() => {\n if (layersOpacity) {\n setOpacityValue(layersOpacity);\n }\n }, [layersOpacity]);\n\n useEffect(() => {\n if (showBeforeAndAfterMosaic) {\n setActiveBox('opacity');\n }\n }, [showBeforeAndAfterMosaic]);\n\n const isLayerActive = (id) => {\n return !!_.find(activeLayers, (item) => id === item);\n };\n\n const handleLayersChange = (event) => {\n const id = event.target.name;\n let nextActiveItems = _.cloneDeep(activeLayers);\n\n if (isLayerActive(id)) {\n nextActiveItems = _.filter(\n nextActiveItems,\n item => item !== id\n );\n } else {\n nextActiveItems = _.concat(nextActiveItems, id);\n }\n\n onChange('activeLayers', nextActiveItems);\n };\n\n const handleBaseMapChange = (event) => {\n onChange('activeBaseMap', Number(event.target.value));\n };\n\n const getFormattedLabel = (baseKey, labelKey) => {\n return formatMessage(`map_controls.${ baseKey }.options.${ labelKey }`);\n };\n\n const handleToggleLegend = (id) => {\n if (activeLegendItem === id) {\n setActiveLegendItem(null);\n } else {\n setActiveLegendItem(id);\n }\n };\n\n const handleToggleBaseMapLegend = (id) => {\n if (activeBaseMapLegendItem === id) {\n setActiveBaseMapLegendItem(null);\n } else {\n setActiveBaseMapLegendItem(id);\n }\n };\n\n const handleOpacitySliderChangeCommitted = (_event, newValue) => {\n onChange('layersOpacity', newValue);\n };\n\n const handleOpacitySliderChange = (_event, newValue) => {\n setOpacityValue(newValue);\n };\n\n return (\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperWithoutHeader]: !headerIsVisible,\n [styles.wrapperWithBeforeAndAfterMosaic]: showBeforeAndAfterMosaic,\n }) }>\n <div id=\"opacity-box\" className={ styles.actionBox }>\n <CustomTooltip arrow title={ formatMessage('map_controls.opacity.title') } placement=\"right\">\n <button\n className={ classnames(styles.actionButton, {\n [classes.actionButtonActive]: activeBox === 'opacity'\n }) }\n onClick={ setActiveBox.bind(this, 'opacity') }\n >\n <OpacityIcon />\n </button>\n </CustomTooltip>\n { activeBox === 'opacity' &&\n <ClickAwayListener onClickAway={ setActiveBox.bind(this, null) }>\n <div className={ classnames(styles.actionBoxContent, styles.actionBoxContentOpacity) }>\n <Slider\n orientation=\"vertical\"\n valueLabelDisplay=\"auto\"\n value={ opacityValue }\n onChange={ handleOpacitySliderChange }\n onChangeCommitted={ handleOpacitySliderChangeCommitted }\n />\n </div>\n </ClickAwayListener>\n }\n </div>\n <div id=\"layers-box\" className={ styles.actionBox }>\n <CustomTooltip arrow title={ formatMessage('map_controls.layers.title') } placement=\"right\">\n <button\n className={ classnames(styles.actionButton, styles.actionButtonOpacity, {\n [classes.actionButtonActive]: activeBox === 'layers'\n }) }\n onClick={ setActiveBox.bind(this, 'layers') }\n >\n <LayersIcon />\n </button>\n </CustomTooltip>\n { activeBox === 'layers' &&\n <ClickAwayListener onClickAway={ setActiveBox.bind(this, null) }>\n <div className={ styles.actionBoxContent }>\n <h3><FormattedMessage id=\"map_controls.layers.title\" /></h3>\n <div className={ styles.actionBoxContentScrollWrapper }>\n { _.map(_.orderBy(baseLayersData, 'index', 'asc'), (item) => {\n return (\n <div className={ styles.actionBoxItemWrapper }>\n <div className={ styles.actionBoxItemHeader }>\n <FormControlLabel\n key={ `limit-control-${ item.key }` }\n control={\n <CustomSwitch\n checked={ isLayerActive(item.key) }\n onChange={ handleLayersChange }\n name={ item.key }\n customColor={ item.color }\n size=\"small\"\n />\n }\n label={ getFormattedLabel('layers', item.labelKey) }\n classes={ {\n root: styles.switchControl,\n label: styles.switchLabel\n } }\n className={ styles.actionBoxItemControl }\n />\n { item.downloadUrl &&\n <IconButton\n className={ styles.actionBoxControlButton }\n href={ item.downloadUrl }\n target=\"_blank\"\n >\n <CloudDownloadIcon />\n </IconButton>\n }\n { item.descriptionData &&\n <IconButton\n className={ classnames(styles.actionBoxControlButton, styles.actionBoxControlButtonToggle) }\n onClick={ handleToggleLegend.bind(this, item.key) }\n >\n { activeLegendItem === item.key ? <ExpandLessIcon /> : <ExpandMoreIcon /> }\n </IconButton>\n }\n </div>\n <Collapse in={ activeLegendItem === item.key }>\n <div className={ styles.actionBoxItemLegend }>\n <ul>\n { _.map(item.descriptionData, (content) => {\n return (\n <li key={ `legend-description-item-${ item.labelKey }-${ content.value }` }>\n <span><FormattedMessage id={ `map_controls.layers.description_data.labels.${ content.labelKey }` } />: </span>\n <span>{ content.value }</span>\n </li>\n );\n }) }\n </ul>\n </div>\n </Collapse>\n </div>\n );\n }) }\n </div>\n </div>\n </ClickAwayListener>\n }\n </div>\n <div id=\"basemap-box\" className={ styles.actionBox }>\n <CustomTooltip arrow title={ formatMessage('map_controls.base_map.title') } placement=\"right\">\n <button\n className={ classnames(styles.actionButton, styles.actionButtonBaseMap, {\n [classes.actionButtonActive]: activeBox === 'baseMap',\n }) }\n onClick={ setActiveBox.bind(this, 'baseMap') }\n >\n <MapIcon />\n </button>\n </CustomTooltip>\n { activeBox === 'baseMap' &&\n <ClickAwayListener onClickAway={ setActiveBox.bind(this, null) }>\n <div className={ `${styles.actionBoxContent} ${styles.baseMapsContentWrapper}` }>\n <h3><FormattedMessage id=\"map_controls.base_map.title\" /></h3>\n <RadioGroup\n name=\"baseMap\"\n value={ activeBaseMap }\n className={ styles.radioGroup }\n >\n { _.map(baseMapsData, (baseMap) => {\n const isDisabled = showBeforeAndAfterMosaic && (\n baseMap.labelKey !== 'mosaic' &&\n baseMap.labelKey !== 'coverage'\n );\n\n return (\n <>\n <div className={styles.baseMapsItemWrapper}>\n <FormControlLabel\n key={ `baseMap-control-${ baseMap.id }` }\n disabled={ isDisabled }\n value={ baseMap.id }\n label={ getFormattedLabel('base_map', baseMap.labelKey) }\n control={ <Radio className={ styles.radioGroupInput } color=\"primary\" size=\"small\" /> }\n classes={ {\n root: styles.radioGroupControl,\n label: styles.radioGroupLabel\n } }\n onChange={ handleBaseMapChange }\n />\n { baseMap.descriptionData &&\n <IconButton\n className={ classnames(styles.actionBoxControlButton, styles.actionBoxControlButtonToggle) }\n onClick={ handleToggleBaseMapLegend.bind(this, baseMap.id) }\n >\n { activeBaseMapLegendItem === baseMap.id ? <ExpandLessIcon /> : <ExpandMoreIcon /> }\n </IconButton>\n }\n </div>\n <Collapse in={ activeBaseMapLegendItem === baseMap.id }>\n <div className={ styles.actionBoxItemLegend }>\n <ul>\n { _.map(baseMap.descriptionData, (content) => {\n return (\n <li key={ `legend-description-item-${ baseMap.labelKey }-${ content.value }` }>\n <span><FormattedMessage id={ `map_controls.layers.description_data.labels.${ content.labelKey }` } />: </span>\n <span>{ content.value }</span>\n </li>\n );\n }) }\n </ul>\n </div>\n </Collapse>\n </>\n );\n }) }\n </RadioGroup>\n </div>\n </ClickAwayListener>\n }\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\n\nexport default function PointHistoryChart({\n data,\n}) {\n if (!data) {\n return null;\n }\n\n const categories = _.get(data, 'categories');\n const series = _.get(data, 'series');\n const yAxisNames = _.get(data, 'yAxisNames');\n\n return (\n <ReactEcharts\n style={{ height: 120 }}\n option={{\n grid: {\n top: 10,\n left: 10,\n bottom: 10,\n right: 10,\n containLabel: true\n },\n xAxis: {\n type: 'category',\n data: categories,\n boundaryGap: false,\n splitLine: {\n show: true\n },\n axisLine: {\n show: false\n }\n },\n yAxis: {\n type: 'category',\n data: yAxisNames,\n axisLine: {\n show: false\n }\n },\n series,\n tooltip: {\n trigger: 'item',\n formatter: (params) => {\n return `${ _.get(params, 'data.data.year') } - ${ _.get(params, 'data.data.label') }`;\n }\n }\n }}\n />\n );\n}","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($lat: Float!, $lng: Float!) {\n territoryCategoriesList {\n id\n key\n parentId\n i18nStrings {\n language\n stringValue\n }\n }\n\n territoriesOnList(lat: $lat, lng: $lng) {\n id\n categoryId\n i18nStrings {\n language\n stringValue\n }\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport numbro from 'numbro';\nimport { useQuery } from '@apollo/react-hooks';\nimport { FormattedMessage } from 'react-intl';\n\nimport IconButton from '@material-ui/core/IconButton';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Fade from '@material-ui/core/Fade';\n\nimport PointHistoryChart from './components/PointHistoryChart';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport styles from './MapPointDialog.module.scss';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport FlipToFrontIcon from '@material-ui/icons/FlipToFront';\n\nimport {\n GET_BASE_DATA,\n} from './query';\n\nfunction request(url) {\n return fetch(url)\n .then((resp) => resp.json())\n .then((data) => data);\n}\n\nconst formatNumber = (value) => {\n const formattedValue = numbro(value).format({\n thousandSeparated: true,\n mantissa: 2\n });\n\n return _.replace(formattedValue, ',', '.');\n};\n\nexport default function MapPointDialog({\n activeModule,\n headerIsVisible,\n isOpen,\n pointInfo,\n onClose = () => { },\n updateClientAppState = () => { },\n}) {\n const formatMessage = useFormatMessage();\n const locale = localStorage.getItem('locale') || 'es';\n const latlng = _.get(pointInfo, 'latlng');\n const parsedBBox = _.get(pointInfo, 'parsedBBox');\n const [ruralProperties, setRuralProperties] = useState([]);\n const [chartData, setChartData] = useState(null);\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n lat: _.first(latlng),\n lng: _.last(latlng),\n },\n skip: !latlng,\n });\n const getTerritoriesOnList = _.get(baseData, 'territoriesOnList');\n const territoryCategoriesList = _.get(baseData, 'territoryCategoriesList');\n const filteredTerritoryCategoriesList = _.filter(territoryCategoriesList, ({ parentId }) => !parentId);\n\n const bboxString = _.join(parsedBBox, ',');\n\n const geoserverBaseUrl = 'https://shared-geoserver.mapbiomas.org/geoserver/mapbiomas-alerta/wfs?';\n const wfsParams = [\n 'service=WFS',\n 'version=2.0.0',\n 'request=GetFeature',\n 'typeNames=mapbiomas-alerta:mv_sfb_car',\n 'count=20',\n 'outputFormat=application/json',\n 'srsName=EPSG:4326',\n `bbox=${bboxString},EPSG:4326`\n ];\n\n\n const parsePointData = (params) => {\n if (!params) {\n return null;\n }\n\n const { data, legend } = params;\n\n return _(data)\n .map((classId, key) => {\n if (classId === 0) {\n return null;\n }\n\n const year = _.last(_.split(key, '_'));\n const classItemData = _.find(legend, { classification: classId, linguage: locale });\n\n return {\n year,\n ...(classItemData || {})\n };\n })\n .compact()\n .value();\n };\n\n const generareSeriesItem = (categoryIndex, item, index, color) => {\n if (!item) {\n return null;\n }\n\n return {\n value: [index, categoryIndex],\n itemStyle: {\n color: color || _.get(item, 'color'),\n },\n data: item\n };\n };\n\n useEffect(() => {\n if (latlng) {\n const parsedParams = `lat=${_.round(latlng[0], 100)}&lng=${_.round(latlng[1], 10)}`;\n\n let urls = [\n request(`/downloads/history_point?module=coverage&${parsedParams}`),\n request(`/downloads/history_point?module=fire&${parsedParams}`),\n ];\n\n if (activeModule === 'sentinel') {\n urls = [...urls, request(`/downloads/history_point?module=sentinel&${parsedParams}`)];\n }\n\n Promise.all(urls)\n .then((resp) => {\n const coverageData = parsePointData(_.get(resp, '[0]'));\n const fireData = parsePointData(_.get(resp, '[1]'));\n const sentinelData = parsePointData(_.get(resp, '[2]'));\n\n const years = _.compact(_.uniq(_.map(_.concat(coverageData), 'year')));\n\n let parsedCoverageData = _.map(years, (year, index) => {\n const coverageItem = _.find(coverageData, { year });\n const fireItem = _.find(fireData, { year });\n const sentinelItem = _.find(sentinelData, { year });\n let coverageItemParsed = generareSeriesItem(0, coverageItem, index);\n let fireItemParsed = generareSeriesItem(1, fireItem, index);\n let sentinelItemParsed = null;\n\n if (activeModule === 'sentinel') {\n sentinelItemParsed = generareSeriesItem(0, sentinelItem, index);\n coverageItemParsed = generareSeriesItem(1, coverageItem, index);\n fireItemParsed = generareSeriesItem(2, fireItem, index);\n }\n\n return _.compact([coverageItemParsed]);\n });\n parsedCoverageData = _.flatten(parsedCoverageData);\n\n let yAxisNames = [\n formatMessage('mapbiomas.map.point_dialog.data_list.coverage'),\n ];\n\n if (activeModule === 'sentinel') {\n yAxisNames = [\n formatMessage('mapbiomas.map.point_dialog.data_list.coverage'),\n ];\n }\n\n setChartData({\n categories: years,\n yAxisNames,\n series: [\n {\n name: 'Serie',\n type: 'scatter',\n data: parsedCoverageData\n }\n ]\n });\n });\n }\n }, [latlng]);\n\n // useEffect(() => {\n // fetch(`${geoserverBaseUrl}${wfsParams.join('&')}`)\n // .then((resp) => resp.json())\n // .then((data) => {\n // const features = _.get(data, 'features');\n // const carsList = _.map(features, (feature) => _.get(feature, 'properties'));\n\n // setRuralProperties(carsList);\n // });\n // }, [bboxString]);\n\n const parsedData = _(filteredTerritoryCategoriesList)\n .map((category) => {\n const territoryData = _.find(getTerritoriesOnList, { categoryId: category.id });\n\n if (territoryData) {\n\n const categoryStringList = _.get(category, 'i18nStrings');\n const categorySelectedString = _.find(categoryStringList, { language: locale });\n\n const territoryStringList = _.get(territoryData, 'i18nStrings');\n const territorySelectedString = _.find(territoryStringList, { language: locale });\n\n if (territoryData.categoryId == 15 || territoryData.categoryId == 16) {\n\n return null;\n\n } else {\n\n return {\n id: `${_.join(latlng, '-')}-${territoryData.id}`,\n category: territoryData.categoryId,\n category_key: category.key,\n label: _.get(categorySelectedString, 'stringValue'),\n value: _.get(territorySelectedString, 'stringValue'),\n };\n\n }\n\n } else {\n return null;\n }\n })\n .compact()\n .value();\n\n const handleRuralPropertyClick = (ruralPropertyCode) => {\n updateClientAppState({\n ruralPropertyCode: ruralPropertyCode,\n });\n onClose();\n };\n\n const renderCARs = () => {\n if (_.isEmpty(ruralProperties)) {\n return null;\n }\n\n return (\n\n <React.Fragment>\n <h2 className={classnames(styles.titleCar)}>CARs</h2>\n <ul className={styles.dataListCar}>\n {_.map(ruralProperties, (ruralProperty) => {\n return (\n <Tooltip title='Visualizar o Car no Mapa'>\n <li key={ruralProperty.cod_imovel} id={ruralProperty.cod_imovel} className={styles.dataListCarItemFull} onClick={() => { handleRuralPropertyClick(ruralProperty.cod_imovel) }}>\n <span className={styles.dataListItemLabel} >\n <FlipToFrontIcon fontSize='small' />\n </span>\n <span className={styles.dataListItemLabel}>{ruralProperty.cod_imovel}</span>\n </li>\n </Tooltip>\n );\n\n })}\n </ul>\n </React.Fragment>\n );\n };\n\n return (\n <Fade in={isOpen && !loadingBaseData && !_.isEmpty(parsedData)}>\n <div className={classnames(styles.wrapper, {\n [styles.wrapperWithHeader]: headerIsVisible,\n })}>\n <header className={styles.header}>\n <h2 className={styles.title}><FormattedMessage id=\"mapbiomas.map.point_dialog.history_title\" /></h2>\n <IconButton className={styles.closeButton} onClick={onClose}>\n <CloseIcon />\n </IconButton>\n </header>\n <div className={styles.chartWrapper}>\n <PointHistoryChart data={chartData} />\n </div>\n <h2 className={styles.title}><FormattedMessage id=\"mapbiomas.map.point_dialog.title\" /></h2>\n <ul className={styles.dataList}>\n {_.map(parsedData, (item) => {\n\n return (\n <li key={item.id} id={item.id} className={styles.dataListItem}>\n <span className={styles.dataListItemLabel}>{item.label}</span>\n <span className={styles.dataListItemValue}>{item.value}</span>\n </li>\n );\n\n })}\n <li className={styles.dataListItem}>\n <span className={styles.dataListItemLabel}><FormattedMessage id=\"mapbiomas.map.point_dialog.data_list.coordinates\" /></span>\n <span className={styles.dataListItemValue}>{formatNumber(_.first(latlng))}, {formatNumber(_.last(latlng))}</span>\n </li>\n </ul>\n {/* {renderCARs()} */}\n </div>\n </Fade>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n app @client {\n timelineLimitsRange\n timelineSpecificValues\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport classnames from 'classnames';\n\nimport { useIntl } from 'react-intl';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport DateRangeIcon from '@material-ui/icons/DateRange';\nimport Slider from '@material-ui/core/Slider';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport { GET_BASE_DATA } from './query';\n\nimport styles from './YearTimeline.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n headerInfoValue: {\n color: theme.palette.primary.main\n },\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '4px',\n fontSize: 12,\n color: '#F5F5F9',\n backgroundColor: '#5A5A5A'\n },\n arrow: {\n color: '#5A5A5A'\n },\n popper: {\n zIndex: 4000\n }\n}))(Tooltip);\n\nexport default function YearTimeline({\n firstYearFixed = false,\n headerIsVisible,\n value: initialValue,\n onChange = () => {},\n}) {\n const intl = useIntl()\n\n const classes = useStyles();\n const { data: baseData } = useQuery(GET_BASE_DATA);\n const rangeLimits = _.get(baseData, 'app.timelineLimitsRange');\n const rangeSpecificValues = _.get(baseData, 'app.timelineSpecificValues');\n const [currentValue, setCurrentValue] = useState(initialValue);\n // const [currentValue, setCurrentValue] = useState(_.last(rangeLimits) || _.last(rangeSpecificValues));\n const [updateKey, setUpdateKey] = useState(_.uniqueId('timeline-'));\n const isRange = _.isArray(initialValue);\n const valueLabel = isRange ? _.join(initialValue, ' - ') : initialValue;\n\n useEffect(() => setCurrentValue(initialValue), [initialValue]);\n useEffect(() => setUpdateKey(_.uniqueId('timeline-')), [isRange, _.last(rangeLimits), _.last(rangeSpecificValues)]);\n\n const handleChange = (_event, newValue) => {\n if (!firstYearFixed) {\n setCurrentValue(newValue);\n } else {\n setCurrentValue([_.first(initialValue), _.last(newValue)]);\n }\n };\n\n const handleChangeComitted = (_event, value) => {\n if (!firstYearFixed) {\n onChange(value);\n } else {\n onChange([_.first(initialValue), _.last(value)]);\n }\n };\n\n function ValueLabelComponent(props) {\n const { children, index, open, value } = props;\n\n let isOpen = open;\n let title = value;\n\n if (index === 0 && firstYearFixed) {\n title = `${ value } - ${intl.formatMessage({id: 'mapbiomas.timeline.fixed_year'})}`;\n }\n\n if (index === 1) {\n isOpen = true;\n title = `${ value } - ${intl.formatMessage({id: 'mapbiomas.timeline.selected_value'})}`;\n }\n\n return (\n <CustomTooltip\n arrow\n open={ isOpen }\n placement=\"top\"\n title={ title }\n >\n { children }\n </CustomTooltip>\n );\n }\n\n let sliderItemsProps = {};\n if (!rangeLimits && !rangeSpecificValues) {\n return null;\n } else if (rangeLimits) {\n sliderItemsProps = {\n step: 1,\n min: _.first(rangeLimits),\n max: _.last(rangeLimits),\n marks: true\n }\n } else {\n sliderItemsProps = {\n step: null,\n min: _.first(rangeSpecificValues),\n max: _.last(rangeSpecificValues),\n marks: rangeSpecificValues.map((rsv) => ({ value: rsv }))\n }\n }\n\n return (\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperWithHeader]: headerIsVisible,\n }) } id=\"year-timeline\">\n <div className={ styles.timelineInfo }>\n <DateRangeIcon />\n <span className={ classes.headerInfoValue }>{ valueLabel }</span>\n </div>\n <div className={ styles.sliderWrapper }>\n <Slider\n { ...sliderItemsProps }\n key={ `timeline-${ updateKey }` }\n defaultValue={ currentValue || _.last(rangeLimits) || _.last(rangeSpecificValues) }\n value={ currentValue }\n track={ !!isRange }\n valueLabelDisplay=\"auto\"\n ValueLabelComponent={ ValueLabelComponent }\n onChange={ handleChange }\n onChangeCommitted={ handleChangeComitted }\n classes={{\n mark: styles.timelineMark\n }}\n />\n </div>\n </div>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n app @client {\n timelineLimitsRange\n timelineSpecificValues\n }\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport classnames from 'classnames';\n\nimport { useIntl } from 'react-intl';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport DateRangeIcon from '@material-ui/icons/DateRange';\nimport Slider from '@material-ui/core/Slider';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport { GET_BASE_DATA } from './query';\n\nimport styles from './YearTimelineMultiple.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n headerInfoValue: {\n color: theme.palette.primary.main,\n },\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '4px',\n fontSize: 12,\n color: '#F5F5F9',\n backgroundColor: '#5A5A5A',\n },\n arrow: {\n color: '#5A5A5A',\n },\n popper: {\n zIndex: 4000,\n },\n}))(Tooltip);\n\nconst intervalsByModule = {\n temporal_analysis: [\n [1985, 1990],\n [1990, 1995],\n [1995, 2000],\n [2000, 2005],\n [2005, 2010],\n [2010, 2015],\n [2015, 2020],\n [1990, 2000],\n [2000, 2010],\n [2010, 2020],\n [1985, 2000],\n [1992, 2002],\n [2002, 2012],\n [1985, 2023],\n [2000, 2023],\n [2012, 2023],\n ],\n deforestation: [\n [1986, 1986],\n [1986, 1987],\n [1986, 1988],\n [1986, 1989],\n [1986, 1990],\n [1986, 1991],\n [1986, 1992],\n [1986, 1993],\n [1986, 1994],\n [1986, 1995],\n [1986, 1996],\n [1986, 1997],\n [1986, 1998],\n [1986, 1999],\n [1986, 2000],\n [1986, 2001],\n [1986, 2002],\n [1986, 2003],\n [1986, 2004],\n [1986, 2005],\n [1986, 2006],\n [1986, 2007],\n [1986, 2008],\n [1986, 2009],\n [1986, 2010],\n [1986, 2011],\n [1986, 2012],\n [1986, 2013],\n [1986, 2014],\n [1986, 2015],\n [1986, 2016],\n [1986, 2017],\n [1986, 2018],\n [1986, 2019],\n [1986, 2020],\n [1986, 2021],\n [1986, 2022],\n [1986, 2023],\n [1987, 2023],\n [1988, 2023],\n [1989, 2023],\n [1990, 2023],\n [1991, 2023],\n [1992, 2023],\n [1993, 2023],\n [1994, 2023],\n [1995, 2023],\n [1996, 2023],\n [1997, 2023],\n [1998, 2023],\n [1999, 2023],\n [2000, 2023],\n [2001, 2023],\n [2002, 2023],\n [2003, 2023],\n [2004, 2023],\n [2005, 2023],\n [2006, 2023],\n [2007, 2023],\n [2008, 2023],\n [2009, 2023],\n [2010, 2023],\n [2011, 2023],\n [2012, 2023],\n [2013, 2023],\n [2014, 2023],\n [2015, 2023],\n [2016, 2023],\n [2017, 2023],\n [2018, 2023],\n [2019, 2023],\n [2020, 2023],\n [2021, 2023],\n [2022, 2023],\n [2023, 2023],\n ],\n};\n\nexport default function YearTimelineMultiple({\n activeModule,\n headerIsVisible,\n value: initialValue,\n onChange = () => {},\n}) {\n const intl = useIntl();\n const intervals = intervalsByModule[activeModule];\n\n const yearList = _.sortBy(_.uniq(_.flatten(intervals)));\n const startYearsList = _.sortBy(\n _.uniq(_.map(intervals, (range) => _.first(range)))\n );\n\n const classes = useStyles();\n const { data: baseData } = useQuery(GET_BASE_DATA);\n\n const [startValue, setStartValue] = useState(\n _.get(intervals, '[0][0]', 1985)\n );\n const [endValue, setEndValue] = useState(\n _.get(_.last(intervals), '[1]', 2023)\n );\n\n const filteredIntervals = _.filter(\n intervals,\n (range) => _.first(range) === startValue\n );\n const endYearsList = _.sortBy(\n _.uniq(_.map(filteredIntervals, (range) => _.last(range)))\n );\n\n // useEffect(() => setCurrentValue(initialValue), [initialValue]);\n // useEffect(() => setUpdateKey(_.uniqueId('timeline-')), [isRange, _.last(rangeLimits), _.last(rangeSpecificValues)]);\n\n const handleChange = (type, _event, newValue) => {\n if (type === 'start') {\n const filteredIntervals = _.filter(\n intervals,\n (range) => _.first(range) === newValue\n );\n const endYearsList = _.sortBy(\n _.uniq(_.map(filteredIntervals, (range) => _.last(range)))\n );\n setStartValue(newValue);\n setEndValue(_.last(endYearsList));\n } else {\n setEndValue(newValue);\n }\n };\n\n const handleChangeComitted = (type, _event, newValue) => {\n if (type === 'start') {\n const filteredIntervals = _.filter(\n intervals,\n (range) => _.first(range) === newValue\n );\n const endYearsList = _.sortBy(\n _.uniq(_.map(filteredIntervals, (range) => _.last(range)))\n );\n onChange([newValue, _.last(endYearsList)]);\n } else {\n onChange([startValue, newValue]);\n }\n };\n\n function ValueLabelComponent(props) {\n const { children, index, open, value } = props;\n\n let isOpen = open;\n let title = value;\n\n if (index === 1) {\n isOpen = true;\n title = `${value} - ${intl.formatMessage({\n id: 'mapbiomas.timeline.selected_value',\n })}`;\n }\n\n return (\n <CustomTooltip arrow open={isOpen} placement='top' title={title}>\n {children}\n </CustomTooltip>\n );\n }\n\n let sliderItemsProps = {\n step: null,\n min: _.first(yearList),\n max: _.last(yearList),\n };\n\n return (\n <div\n className={classnames(styles.wrapper, {\n [styles.wrapperWithHeader]: headerIsVisible,\n })}\n id='year-timeline'\n >\n <div className={styles.timelineInfo}>\n <DateRangeIcon />\n </div>\n <div className={styles.sliderWrapper}>\n <Slider\n {...sliderItemsProps}\n marks={startYearsList.map((rsv) => ({ value: rsv }))}\n value={startValue}\n track={false}\n valueLabelDisplay='auto'\n ValueLabelComponent={ValueLabelComponent}\n onChange={handleChange.bind(this, 'start')}\n onChangeCommitted={handleChangeComitted.bind(this, 'start')}\n classes={{\n mark: styles.timelineMark,\n }}\n />\n <span className={classnames(styles.valueText, classes.headerInfoValue)}>\n {startValue} - {endValue}\n </span>\n <Slider\n {...sliderItemsProps}\n marks={endYearsList.map((rsv) => ({ value: rsv }))}\n value={endValue}\n track={false}\n valueLabelDisplay='auto'\n ValueLabelComponent={ValueLabelComponent}\n onChange={handleChange.bind(this, 'end')}\n onChangeCommitted={handleChangeComitted.bind(this, 'end')}\n classes={{\n mark: styles.timelineMark,\n }}\n />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\nimport copy from 'copy-to-clipboard';\n\nimport Button from '@material-ui/core/Button';\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\nimport Fade from '@material-ui/core/Fade';\nimport Popper from '@material-ui/core/Popper';\n\nimport {\n FacebookShareButton,\n FacebookIcon,\n TwitterShareButton,\n TwitterIcon,\n WhatsappShareButton,\n WhatsappIcon,\n} from 'react-share';\n\nimport toast from '../../../../utils/toast';\n\nimport useFormatMessage from '../../../../hooks/useFormatMessage';\n\nimport styles from './ShareBox.module.scss';\n\nexport default function ShareBox({\n anchorEl,\n onClose = () => {},\n pageLink = window.location.href,\n placement = 'bottom',\n}) {\n const formatMessage = useFormatMessage();\n const open = Boolean(anchorEl);\n const title = 'MapBiomas';\n\n const handleCopy = () => {\n if (copy) {\n copy(pageLink);\n toast(formatMessage('mapbiomas.map.share_box.actions.copy_success'));\n }\n onClose();\n };\n\n return (\n <Popper open={ open } anchorEl={ anchorEl } placement={ placement } transition style={ { zIndex: 9999 } }>\n {({ TransitionProps }) => (\n <Fade { ...TransitionProps } timeout={ 350 }>\n <ClickAwayListener onClickAway={ onClose }>\n <div className={ styles.boxWrapper }>\n <h2 className={ styles.title }><FormattedMessage id=\"mapbiomas.map.share_box.actions.title\" />:</h2>\n <ul className={ styles.socialList }>\n <li className={ styles.socialItem }>\n <FacebookShareButton\n quote={ title }\n url={ pageLink }\n >\n <FacebookIcon size={ 32 } round={ true } />\n </FacebookShareButton>\n </li>\n <li className={ styles.socialItem }>\n <TwitterShareButton\n title={ title }\n url={ pageLink }\n >\n <TwitterIcon size={ 32 } round={ true } />\n </TwitterShareButton>\n </li>\n <li className={ styles.socialItem }>\n <WhatsappShareButton\n title={ title }\n url={ pageLink }\n >\n <WhatsappIcon size={ 32 } round={ true } />\n </WhatsappShareButton>\n </li>\n </ul>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleCopy }\n >\n <FormattedMessage id=\"mapbiomas.map.share_box.actions.copy\" />\n </Button>\n </div>\n </ClickAwayListener>\n </Fade>\n )}\n </Popper>\n );\n}\n","import React, { useState } from 'react';\nimport classnames from 'classnames';\n\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport ShareIcon from '@material-ui/icons/Share';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport ShareBox from '../../../../components/ShareBox';\n\nimport styles from './ShareControl.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n searchButtonActive: {\n backgroundColor: '#F1F1F1 !important',\n '& svg': {\n fill: `${ theme.palette.primary.main } !important`,\n }\n }\n}));\n\nconst CustomTooltip = withStyles(() => ({\n tooltip: {\n padding: '8px 12px',\n fontSize: 12,\n fontWeight: 400,\n color: 'white',\n backgroundColor: '#444444',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n },\n arrow: {\n color: '#444444'\n },\n}))(Tooltip);\n\nexport default function ShareControl({\n headerIsVisible,\n showBeforeAndAfterMosaic,\n}) {\n const classes = useStyles();\n const formatMessage = useFormatMessage();\n const [shareAnchorEl, setShareAnchorEl] = useState(null);\n\n const handleShareButtonClick = (event) => {\n setShareAnchorEl(shareAnchorEl ? null : event.currentTarget);\n };\n\n const handleCloseShareBox = () => {\n setShareAnchorEl(null);\n };\n\n return (\n <div id=\"share-button\" className={ classnames(styles.wrapper, {\n [styles.wrapperHeader]: headerIsVisible,\n [styles.wrapperWithBeforeAndAfterMosaic]: showBeforeAndAfterMosaic,\n }) }>\n <div id=\"share-control\" className={ styles.controlWrapper }>\n <CustomTooltip arrow title={ formatMessage('mapbiomas.map.share_box.tooltip') } placement=\"right\">\n <button\n className={ classnames(styles.searchButton, {\n [classes.searchButtonActive]: !!shareAnchorEl\n }) }\n onClick={ handleShareButtonClick }\n >\n <ShareIcon />\n </button>\n </CustomTooltip>\n </div>\n <ShareBox\n anchorEl={ shareAnchorEl }\n onClose={ handleCloseShareBox }\n placement=\"top-start\"\n />\n </div>\n );\n}\n","// Source: https://github.com/apache/echarts/issues/5004#issuecomment-559668309\n\nconst positionTooltipInsideDocument = (canvasMousePos, params, tooltipDom, rect, sizes) => {\n var margin = 10; // How far away from the mouse should the tooltip be\n var overflowMargin = 5; // If no satisfactory position can be found, how far away from the edge of the window should the tooltip be kept\n\n // The chart canvas position\n var canvasRect = tooltipDom.parentElement.getElementsByTagName('canvas')[0].getBoundingClientRect();\n\n // The mouse coordinates relative to the whole window\n // The first parameter to the position function is the mouse position relative to the canvas\n var mouseX = canvasMousePos[0] + canvasRect.x;\n var mouseY = canvasMousePos[1] + canvasRect.y;\n\n // The width and height of the tooltip dom element\n var tooltipWidth = sizes.contentSize[0];\n var tooltipHeight = sizes.contentSize[1];\n\n // Start by placing the tooltip top and right relative to the mouse position\n var xPos = mouseX + margin;\n var yPos = mouseY - margin - tooltipHeight;\n\n // The tooltip is overflowing past the right edge of the window\n if (xPos + tooltipWidth >= document.documentElement.clientWidth) {\n\n // Attempt to place the tooltip to the left of the mouse position\n xPos = mouseX - margin - tooltipWidth;\n\n // The tooltip is overflowing past the left edge of the window\n if (xPos <= 0)\n\n // Place the tooltip a fixed distance from the left edge of the window\n xPos = overflowMargin;\n }\n\n // The tooltip is overflowing past the top edge of the window\n if (yPos <= 0) {\n\n // Attempt to place the tooltip to the bottom of the mouse position\n yPos = mouseY + margin;\n\n // The tooltip is overflowing past the bottom edge of the window\n if (yPos + tooltipHeight >= document.documentElement.clientHeight)\n\n // Place the tooltip a fixed distance from the top edge of the window\n yPos = overflowMargin;\n }\n\n // Return the position (converted back to a relative position on the canvas)\n return [xPos - canvasRect.x, yPos - canvasRect.y]\n}\n\nexport default positionTooltipInsideDocument;\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport positionTooltipInsideDocument from '../../../../../../../../helpers/positionTooltipInsideDocument';\n\nfunction tooltipFormatter(unit, mantissa = 0, params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params[0].axisValue }</span>`;\n\n params.forEach((item) => {\n const value = _.isObject(item.data) ? item.data.value : item.data;\n\n if (value) {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa\n });\n const paramValue = `<span>${ colorSpan(item.color) } ${ item.seriesName }: ${ valueLabel }${ unit ? ` ${ unit }` : '' }</span>`;\n\n str += paramValue;\n }\n });\n\n return str;\n}\n\nconst yAxisMillionLabelFormatter = (value) => {\n return numbro(value / 1000000).format({\n thousandSeparated: true,\n mantissa: 1\n });\n};\n\nconst yAxisLabelPercentageFormatter = (value) => {\n const parsedValue = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return `${ parsedValue }%`;\n};\n\nexport default function BarChart({\n height = 200,\n isPercentage,\n categories = [],\n series = [],\n vertical = true,\n hideXAxisLabel = false,\n hasAvgMarkLine = false,\n unit,\n mantissa = 0,\n}) {\n const formatMessage = useFormatMessage();\n const maxValue = _(series)\n .map(({ data }) => {\n const sampleItem = _.first(data);\n\n if (_.get(sampleItem, 'value')) {\n return _.map(data, 'value');\n } else {\n return data;\n }\n })\n .flatten()\n .max();\n const hasMillionValue = maxValue > 1000000;\n\n let yAxisName = unit || 'Hectares';\n\n if (hasMillionValue) {\n yAxisName = unit || formatMessage('mapbiomas.statistics.million_hectares');\n }\n\n let nameGap = 55;\n let gridLeft = '30px';\n let markLine = null;\n\n if (hasMillionValue) {\n nameGap = 35;\n gridLeft = '30px';\n } else if (isPercentage) {\n nameGap = 15;\n gridLeft = '15px';\n }\n\n let xAxis = {\n type: \"category\",\n axisPointer: {\n type: \"shadow\"\n },\n axisLabel: {\n show: !hideXAxisLabel,\n fontSize: 11,\n color: \"#767676\"\n },\n axisLine: {\n color: \"#DDD\"\n },\n data: categories\n };\n let yAxis = {\n name: !isPercentage ? yAxisName : null,\n nameLocation: 'middle',\n nameRotate: 90,\n nameGap,\n nameTextStyle: {\n fontSize: 11,\n color: \"#767676\"\n },\n max: isPercentage ? 100 : undefined,\n axisTick: {\n show: false\n },\n axisLine: {\n color: \"#DDD\"\n },\n splitLine: {\n lineStyle: {\n color: \"rgba(0, 0, 0, 0.05)\"\n }\n },\n axisLabel: {\n formatter: (value) => {\n if (isPercentage) {\n return yAxisLabelPercentageFormatter(value);\n } else if (hasMillionValue) {\n return yAxisMillionLabelFormatter(value);\n } else {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return valueLabel;\n }\n },\n fontSize: 11,\n color: \"#767676\"\n }\n };\n\n if (!vertical) {\n let tempValue = xAxis;\n xAxis = {\n ...yAxis,\n nameRotate: undefined,\n nameGap: 25\n };\n yAxis = tempValue;\n }\n\n if (hasAvgMarkLine) {\n markLine = {\n symbol: [null, null],\n lineStyle: {\n type: 'solid'\n },\n label: {\n fontSize: 11,\n color: '#767676',\n formatter: (params) => {\n const { value } = params;\n\n if (isPercentage) {\n return yAxisLabelPercentageFormatter(value);\n } else if (hasMillionValue) {\n return yAxisMillionLabelFormatter(value);\n } else {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return valueLabel;\n }\n }\n },\n data: [{ type: 'average', name: 'Média' }]\n };\n }\n\n return (\n <ReactEcharts\n style={ { height } }\n option={ {\n xAxis,\n yAxis,\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download'\n }\n }\n },\n tooltip: {\n position: positionTooltipInsideDocument,\n appendToBody: true,\n // confine: true,\n // position: [10, 10],\n // position: 'right',\n // position: function (point, params, dom, rect, size) {\n // console.log('point', point);\n // // fixed at top\n // return [0, 0];\n // // return {\n // // right: point[0],\n // // top: -10\n // // };\n // },\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 13\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n trigger: \"axis\",\n formatter: tooltipFormatter.bind(this, unit, mantissa),\n },\n grid: {\n top: '16px',\n right: !hasAvgMarkLine ? '10px' : '20px',\n bottom: '16px',\n left: gridLeft,\n containLabel: true\n },\n series: _.map(series, (serie) => {\n return {\n ...serie,\n type: 'bar',\n smooth: true,\n markLine\n };\n }),\n // toolbox: {\n // feature: {\n // saveAsImage: {\n // name: 'MapBiomas',\n // title: 'Download',\n // }\n // }\n // },\n } }\n notMerge={ true }\n />\n );\n}\n","import React from 'react';\nimport numbro from 'numbro';\nimport classnames from 'classnames';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport InfoTooltip from '../../../../../../../../components/InfoTooltip';\n\nimport styles from './MinimalBarData.module.scss';\n\nconst useStyles = makeStyles((theme) => ({\n mainBar: {\n backgroundColor: `${ theme.palette.primary.main } !important`\n },\n}));\n\nconst formatNumber = (value, mantissa = 0) => numbro(value).format({\n thousandSeparated: true,\n mantissa\n});\n\nexport default function MinimalBarData({\n label,\n tooltip,\n value,\n year,\n percentage,\n color,\n}) {\n const classes = useStyles();\n let customMainBarStyles = {};\n\n if (color) {\n customMainBarStyles = {\n backgroundColor: color\n };\n }\n\n return (\n <div className={ styles.wrapper }>\n <div className={ styles.bar }>\n <span className={ styles.backgroundBar } />\n <span\n className={ classnames(styles.mainBar, {\n [classes.mainBar]: !color\n }) }\n style={{ width: `${ percentage }%`, ...customMainBarStyles }}\n />\n </div>\n <div className={ styles.info }>\n <span className={ styles.infoLabel }>\n <span>{ label }</span>\n { tooltip && <InfoTooltip text={ tooltip } /> }\n </span>\n <span className={ styles.infoValue }>\n { year && <b>{ year } / </b> }\n <b>{ formatNumber(value) }</b>\n <small>ha</small>\n </span>\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport numbro from 'numbro';\nimport _ from 'lodash';\n\nimport Grid from '@material-ui/core/Grid';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport InfoTooltip from '../../../../../../../../components/InfoTooltip';\n\nimport MinimalBarData from '../MinimalBarData';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nconst formatNumber = (value) => {\n if (!value) { return '-'; }\n\n return numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n};\n\nexport default function BaseValuesChart({\n title = 'Ãrea queimada no perÃodo',\n total,\n totalTitle,\n totalTitleTooltipKey,\n maxValue,\n maxValueTooltipKey,\n maxYear,\n averageValue,\n averageValueTooltipKey,\n averagePercentage,\n minValue,\n minValueTooltipKey,\n minYear,\n minPercentage,\n color,\n}) {\n const formatMessage = useFormatMessage();\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>{ title }</h2>\n <ul className={ styles.infoList }>\n <li className={ styles.infoListItem }>\n <span className={ styles.infoListItemValue }>\n <b>{ formatNumber(total) }</b>\n <small>ha</small>\n </span>\n { totalTitle &&\n <span className={ styles.infoListItemLabel }>\n <span>{ totalTitle }</span>\n { totalTitleTooltipKey &&\n <InfoTooltip\n text={ formatMessage(totalTitleTooltipKey) }\n />\n }\n </span>\n }\n </li>\n </ul>\n <Grid container spacing={ 2 }>\n <Grid item xs={ 12 }>\n <MinimalBarData\n label={ formatMessage('mapbiomas.statistics.summary.max.title') }\n tooltip={ formatMessage(maxValueTooltipKey || 'mapbiomas.statistics.summary.max.tooltip') }\n value={ maxValue }\n percentage={ maxValue ? 100 : 0 }\n color={ color }\n />\n </Grid>\n <Grid item xs={ 12 }>\n <MinimalBarData\n label={ formatMessage('mapbiomas.statistics.summary.average.title') }\n tooltip={ formatMessage(averageValueTooltipKey || 'mapbiomas.statistics.summary.average.tooltip') }\n value={ averageValue }\n percentage={ !_.isNaN(averagePercentage) ? averagePercentage : 0 }\n color={ color }\n />\n </Grid>\n <Grid item xs={ 12 }>\n <MinimalBarData\n label={ formatMessage('mapbiomas.statistics.summary.min.title') }\n tooltip={ formatMessage(minValueTooltipKey || 'mapbiomas.statistics.summary.min.tooltip') }\n value={ minValue }\n percentage={ !_.isNaN(minPercentage) ? minPercentage : 0 }\n color={ color }\n />\n </Grid>\n </Grid>\n </div>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\n\nexport const GET_BASE_DATA = gql`\n query CalcCoverageByYear(\n $classTreeNodeIds: [Int!]!,\n $filteredActiveClassTreeNodeIds: [Int!]!,\n $activeParentClassTreeNodeIds: [Int!]!,\n $years: [Int!]!,\n $territoriesIds: [Int!]!,\n ) {\n getCalcCoverageWichYears(\n classTreeNodeIds: $activeParentClassTreeNodeIds,\n years: $years,\n territoriesIds: $territoriesIds\n ) {\n average\n maximun\n minimun\n percentage\n areaOccurrence\n distByYears {\n total\n year\n }\n }\n\n getCalcAcumCoverageByClasses(\n classTreeNodeIds: $classTreeNodeIds,\n years: $years,\n territoriesIds: $territoriesIds\n ) {\n acumYear {\n classTreeNodeId\n proporcionality\n total\n }\n year\n }\n\n getCalcAcumCoverageByClassesFiltered: getCalcAcumCoverageByClasses(\n classTreeNodeIds: $filteredActiveClassTreeNodeIds,\n years: $years,\n territoriesIds: $territoriesIds\n ) {\n acumYear {\n classTreeNodeId\n proporcionality\n total\n }\n year\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport BarChart from '../../components/BarChart';\nimport BaseValuesChart from '../../components/BaseValuesChart';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function AnnualStatisticsContent({\n clientType,\n activeYear,\n baseParams,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n\n const intl = useIntl()\n\n const mainYear = _.last(activeYear);\n const years = [_.first(activeYear), _.last(activeYear)];\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const filteredActiveClassTreeNodeIds = _.filter(activeClassTreeNodeIds, (nodeId) => {\n const nodeData = _.find(classTreeLevelsList, { id: nodeId });\n const childrenIds = _.get(nodeData, 'childrenIds');\n\n if (_.isEmpty(childrenIds)) {\n return true;\n } else {\n return !childrenIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n }\n });\n const getParentIds = (nodeId, ids = []) => {\n const nodeData = _.find(classTreeLevelsList, { id: nodeId });\n const parentId = _.get(nodeData, 'parentId');\n\n if (parentId) {\n return getParentIds(parentId, [...ids, parentId]);\n } else {\n return ids;\n }\n };\n const activeParentClassTreeNodeIds = _.filter(activeClassTreeNodeIds, (nodeId) => {\n const parentIds = getParentIds(nodeId);\n const hasSomeParentActive = parentIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n\n return !hasSomeParentActive;\n });\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: activeClassTreeNodeIds,\n filteredActiveClassTreeNodeIds: filteredActiveClassTreeNodeIds,\n activeParentClassTreeNodeIds: activeParentClassTreeNodeIds,\n years: years,\n territoriesIds: territoryIds\n },\n skip: loadingClassTreeData,\n client: getCustomClient(clientType)\n });\n\n const getTotalAreaByClassesData = () => {\n const data = _.get(baseData, 'getCalcAcumCoverageByClasses');\n const years = _.map(data, 'year');\n\n const classTreeNodeData = {};\n\n _.each(activeClassTreeNodeIds, (nodeId) => {\n _.each(years, (year) => {\n const yearData = _.find(data, { year });\n const nodeData = _.find(_.get(yearData, 'acumYear'), { classTreeNodeId: nodeId });\n const value = _.get(nodeData, 'total') || null;\n const nodeValues = _.get(classTreeNodeData, nodeId);\n\n if (nodeValues) {\n _.set(classTreeNodeData, nodeId, [...nodeValues, value]);\n } else {\n _.set(classTreeNodeData, nodeId, [value]);\n }\n });\n });\n\n const parsedSeries = _.map(_.keys(classTreeNodeData), (nodeId) => {\n const parsedNodeId = Number(nodeId);\n const nodeData = _.find(classTreeLevelsList, { id: parsedNodeId });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n const prettyIndexOfNodeInTree = _.join(_.get(nodeData, 'positionInTree'), '.');\n\n return {\n nodeId: parsedNodeId,\n stack: 'year',\n name: `${ prettyIndexOfNodeInTree }. ${ label }`,\n color: _.get(nodeData, 'color') || '#e74c3c',\n data: _.get(classTreeNodeData, nodeId),\n };\n });\n const sortedSeries = _.sortBy(parsedSeries, 'name');\n const filteredSeries = _.filter(sortedSeries, ({ nodeId }) => _.includes(filteredActiveClassTreeNodeIds, nodeId));\n\n return {\n categories: years,\n series: sortedSeries,\n filteredSeries,\n };\n };\n\n const getPercentageAreaByClasses = () => {\n const data = _.get(baseData, 'getCalcAcumCoverageByClassesFiltered');\n const years = _.map(data, 'year');\n\n const classTreeNodeData = {};\n\n _.each(filteredActiveClassTreeNodeIds, (nodeId) => {\n _.each(years, (year) => {\n const yearData = _.find(data, { year });\n const nodeData = _.find(_.get(yearData, 'acumYear'), { classTreeNodeId: nodeId });\n const value = _.get(nodeData, 'proporcionality') || null;\n const nodeValues = _.get(classTreeNodeData, nodeId);\n\n if (nodeValues) {\n _.set(classTreeNodeData, nodeId, [...nodeValues, value]);\n } else {\n _.set(classTreeNodeData, nodeId, [value]);\n }\n });\n });\n\n const parsedSeries = _.map(_.keys(classTreeNodeData), (nodeId) => {\n const parsedNodeId = Number(nodeId);\n const nodeData = _.find(classTreeLevelsList, { id: parsedNodeId });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n const prettyIndexOfNodeInTree = _.join(_.get(nodeData, 'positionInTree'), '.');\n\n return {\n nodeId: parsedNodeId,\n stack: 'year',\n name: `${ prettyIndexOfNodeInTree }. ${ label }`,\n color: _.get(nodeData, 'color') || '#e74c3c',\n data: _.get(classTreeNodeData, nodeId),\n };\n });\n const sortedSeries = _.sortBy(parsedSeries, 'name');\n\n return {\n categories: years,\n series: sortedSeries,\n filteredSeries: sortedSeries\n };\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'getCalcCoverageWichYears[0].maximun');\n\n if ((!loading && errorBaseData) || _.isNull(sampleData)) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'totalAreaByClasses': getTotalAreaByClassesData(),\n 'percentageAreaByClasses': getPercentageAreaByClasses(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const areaByPeriod = () => {\n const data = _.get(baseData, 'getCalcCoverageWichYears[0]');\n const distByYears = _.get(data, 'distByYears') || [];\n const total = _.get(data, 'areaOccurrence') || 0;\n const maxValue = _.get(data, 'maximun') || 0;\n const maxYear = _.get(_.find(distByYears, { total: maxValue }), 'year');\n const averageValue = _.get(data, 'average') || 0;\n const minValue = _.get(data, 'minimun') || 0;\n const minYear = _.get(_.find(distByYears, { total: minValue }), 'year');\n const averagePercentage = (averageValue / maxValue) * 100;\n const minPercentage = (minValue / maxValue) * 100;\n\n const customTotal = _.get(_.find(distByYears, { year: mainYear }), 'total') || null;\n const isCustom = _.includes([\n 'mining_annual',\n 'quality_of_pasture_main',\n 'regeneration_annual_by_class',\n 'irrigation_main',\n 'deforestation_annual_by_class',\n ], classTreeKey);\n\n return (\n <BaseValuesChart\n title={ !isCustom ? (intl.formatMessage({id: 'mapbiomas.statistics.area.period'})) : `${intl.formatMessage({id: 'mapbiomas.statistics.area.title'})} - ${ mainYear }` }\n totalTitle=\"Total\"\n total={ !isCustom ? total : customTotal }\n maxValue={ maxValue }\n maxYear={ maxYear }\n averageValue={ averageValue }\n averagePercentage={ averagePercentage }\n minValue={ minValue }\n minYear={ minYear }\n minPercentage={ minPercentage }\n />\n );\n };\n\n const totalAreaByClasses = () => {\n const categories = _.get(chartsData, 'totalAreaByClasses.categories') || [];\n const series = _.get(chartsData, 'totalAreaByClasses.filteredSeries') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.anual_statistics_content.area_title\" /></h2>\n <BarChart\n categories={ categories }\n series={ series }\n />\n </div>\n );\n };\n\n const percentageAreaByClasses = () => {\n const categories = _.get(chartsData, 'percentageAreaByClasses.categories') || [];\n const series = _.get(chartsData, 'percentageAreaByClasses.filteredSeries') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.anual_statistics_content.proportion_title\" /></h2>\n <BarChart\n isPercentage\n categories={ categories }\n series={ series }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const totalAreaByClassesChartData = _.get(chartsData, 'totalAreaByClasses');\n const totalAreaByClassesChartDataCategories = _.get(totalAreaByClassesChartData, 'categories') || [];\n const totalAreaByClassesChartDataSeries = _.get(totalAreaByClassesChartData, 'series') || [];\n\n const totalAreaByClassesChart = {\n title: <FormattedMessage id=\"mapbiomas.anual_statistics_content.area_title\" />,\n columns: totalAreaByClassesChartDataCategories,\n rows: totalAreaByClassesChartDataSeries\n };\n\n const percentageAreaByClassesChartData = _.get(chartsData, 'percentageAreaByClasses');\n const percentageAreaByClassesChartDataCategories = _.get(percentageAreaByClassesChartData, 'categories') || [];\n const percentageAreaByClassesChartDataSeries = _.get(percentageAreaByClassesChartData, 'series') || [];\n\n const percentageAreaByClassesChart = {\n title: <FormattedMessage id=\"mapbiomas.anual_statistics_content.proportion_title\" />,\n columns: percentageAreaByClassesChartDataCategories,\n rows: percentageAreaByClassesChartDataSeries\n };\n\n onShowData([\n totalAreaByClassesChart,\n percentageAreaByClassesChart\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { areaByPeriod() }\n { totalAreaByClasses() }\n { percentageAreaByClasses() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport positionTooltipInsideDocument from '../../../../../../../../helpers/positionTooltipInsideDocument';\n\nfunction tooltipFormatter(unit, mantissa = 0, params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params[0].axisValue }</span>`;\n\n params.forEach((item) => {\n const value = _.isObject(item.data) ? item.data.value : item.data;\n\n if (value) {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa,\n });\n const paramValue = `<span>${ colorSpan(item.color) } ${ item.seriesName }: ${ valueLabel }${ unit ? ` ${ unit }` : '' }</span>`;\n\n str += paramValue;\n }\n });\n\n return str;\n}\n\nconst yAxisMillionLabelFormatter = (value) => {\n return numbro(value / 1000000).format({\n thousandSeparated: true,\n mantissa: 1\n });\n};\n\nexport default function LineChart({\n categories = [],\n series = [],\n chartType = 'line',\n unit,\n mantissa,\n}) {\n let seriesOptions = {\n type: 'line'\n };\n\n if (chartType === 'bar') {\n seriesOptions = {\n type: 'bar',\n stack: 'total',\n };\n }\n\n const formatMessage = useFormatMessage();\n const maxValue = _(series)\n .map('data')\n .flatten()\n .max();\n const hasMillionValue = maxValue > 1000000;\n\n let yAxisName = unit || 'Hectares';\n\n if (hasMillionValue) {\n yAxisName = unit || formatMessage('mapbiomas.statistics.million_hectares');\n }\n\n return (\n <ReactEcharts\n style={ { height: 200 } }\n option={ {\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download'\n }\n }\n },\n tooltip: {\n position: positionTooltipInsideDocument,\n hideDelay: 2000,\n appendToBody: true,\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 11\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n trigger: \"axis\",\n formatter: tooltipFormatter.bind(this, unit, mantissa),\n },\n grid: {\n top: \"8%\",\n right: \"15px\",\n bottom: \"8%\",\n left: hasMillionValue ? '30px' : '30px',\n containLabel: true\n },\n xAxis: {\n type: \"category\",\n axisPointer: {\n type: \"shadow\"\n },\n axisLabel: {\n fontSize: 11,\n color: \"#767676\"\n },\n axisLine: {\n color: \"#DDD\"\n },\n boundaryGap: false,\n data: categories\n },\n legend: {\n show: false\n },\n yAxis: {\n name: yAxisName,\n nameLocation: 'middle',\n nameRotate: 90,\n nameGap: (hasMillionValue || unit) ? 45 : 55,\n nameTextStyle: {\n fontSize: 11,\n color: \"#767676\"\n },\n axisTick: {\n show: false\n },\n axisLine: {\n color: \"#DDD\"\n },\n splitLine: {\n lineStyle: {\n color: \"rgba(0, 0, 0, 0.05)\"\n }\n },\n axisLabel: {\n formatter: (value) => {\n if (hasMillionValue) {\n return yAxisMillionLabelFormatter(value);\n } else {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return valueLabel;\n }\n },\n fontSize: 11,\n color: \"#767676\"\n }\n },\n series: _.map(series, (serie) => {\n return {\n ...serie,\n ...seriesOptions,\n symbol: 'none',\n smooth: true,\n };\n }),\n // toolbox: {\n // feature: {\n // saveAsImage: {\n // name: 'MapBiomas',\n // title: 'Download',\n // }\n // }\n // },\n } }\n notMerge={ true }\n />\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData(\n $classTreeNodeIds: [Int!]!,\n $toYear: Int!,\n $territoriesIds: [Int!]!,\n ) {\n fequencySeriesAggregatedByYear(\n classTreeNodeIds: $classTreeNodeIds,\n toYear: $toYear,\n territoriesIds: $territoriesIds,\n ) {\n label\n value\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport { useTheme } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport LineChart from '../../components/LineChart';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nconst formatNumber = (value) => {\n return numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n};\n\nexport default function AccumulatedStatisticsContent({\n clientType,\n activeYear,\n baseParams,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const theme = useTheme();\n\n const intl = useIntl()\n\n const toYear = _.isArray(activeYear) ? _.last(activeYear) : activeYear;\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const filteredActiveClassTreeNodeIds = _.filter(activeClassTreeNodeIds, (nodeId) => {\n const nodeData = _.find(classTreeLevelsList, { id: nodeId });\n const childrenIds = _.get(nodeData, 'childrenIds');\n\n if (_.isEmpty(childrenIds)) {\n return true;\n } else {\n return !childrenIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n }\n });\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: filteredActiveClassTreeNodeIds,\n toYear,\n territoriesIds: territoryIds\n },\n skip: loadingClassTreeData,\n client: getCustomClient(clientType)\n });\n\n const getAccumulatedAreaFromAllPeriodData = () => {\n const data = _.sortBy(_.get(baseData, 'fequencySeriesAggregatedByYear'), 'toYear');\n const categories = _.map(data, 'label') || [];\n const values = _.map(data, 'value') || [];\n\n return {\n title: intl.formatMessage({id: 'mapbiomas.statistics.burned.accumulated.title'}),\n columns: categories,\n rows: [\n {\n name: 'Total',\n data: values,\n }\n ]\n };\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'fequencySeriesAggregatedByYear');\n\n if ((!loading && errorBaseData) || _.isEmpty(sampleData)) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'accumulatedAreaFromAllPeriod': getAccumulatedAreaFromAllPeriodData(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const accumulatedAreaFromAllPeriod = () => {\n const categories = _.get(chartsData, 'accumulatedAreaFromAllPeriod.columns') || [];\n const values = _.get(chartsData, 'accumulatedAreaFromAllPeriod.rows[0].data') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <span>{intl.formatMessage({id: 'mapbiomas.statistics.burned.accumulated.title'})}</span>\n </h2>\n <LineChart\n categories={ categories }\n series={ [\n {\n name: 'Total',\n color: _.get(theme, 'palette.primary.main'),\n data: values,\n }\n ] }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n onShowData([\n _.get(chartsData, 'accumulatedAreaFromAllPeriod')\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { accumulatedAreaFromAllPeriod() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nfunction tooltipFormatter(unit, mantissa = 0, params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params.seriesName }</span>`;\n\n const value = _.isObject(params.data) ? params.data.value : params.data;\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa,\n });\n const percentageFormatted = numbro(params.percent / 100).format({\n output: 'percent',\n mantissa: 2\n });\n const paramValue = `<span>${ colorSpan(params.color) } ${ _.get(params, 'data.name') }: ${ valueLabel }${ unit ? ` ${ unit }` : '' } (${ percentageFormatted })</span>`;\n\n str += paramValue;\n\n return str;\n}\n\nexport default function PieChart({\n colors,\n serie,\n unit,\n mantissa,\n}) {\n return (\n <ReactEcharts\n style={ { height: 240, width: '100%' } }\n option={{\n grid: {\n left: 40,\n top: 0,\n right: 40,\n bottom: 20,\n // containLabel: true\n },\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download'\n }\n }\n },\n tooltip: {\n confine: true,\n trigger: 'item',\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 13\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n formatter: tooltipFormatter.bind(this, unit, mantissa)\n },\n legend: {\n show: false\n },\n series: [\n {\n animation: false,\n name: serie.title,\n color: colors ? colors : ['#197D19', '#FFF27F', '#4BE64C', '#EEBFD6', '#D1C868', '#777'],\n type: 'pie',\n radius: '85%',\n data: serie.data,\n label: {\n show: false\n }\n }\n ],\n // toolbox: {\n // feature: {\n // saveAsImage: {\n // name: 'MapBiomas',\n // title: 'Download',\n // }\n // }\n // },\n }\n }\n />\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData(\n $classTreeNodeIds: [Int!]!,\n $fromYear: Int!,\n $toYear: Int!,\n $territoriesIds: [Int!]!,\n ) {\n frequencyAccumulated(\n fromYear: $fromYear,\n toYear: $toYear,\n classTreeNodeIds: $classTreeNodeIds,\n territoriesIds: $territoriesIds,\n ) {\n year\n areaInHa\n classTreeNodeId\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport BarChart from '../../components/BarChart';\nimport PieChart from '../../components/PieChart';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function AccumulatedDistributedStatisticsContent({\n clientType,\n activeYear,\n baseParams,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n\n const fromYear = _.first(activeYear) || 1985;\n const toYear = _.isArray(activeYear) ? _.last(activeYear) : activeYear;\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const filteredActiveClassTreeNodeIds = _.filter(activeClassTreeNodeIds, (nodeId) => {\n const nodeData = _.find(classTreeLevelsList, { id: nodeId });\n const childrenIds = _.get(nodeData, 'childrenIds');\n\n if (_.isEmpty(childrenIds)) {\n return true;\n } else {\n return !childrenIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n }\n });\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: filteredActiveClassTreeNodeIds,\n fromYear,\n toYear,\n territoriesIds: territoryIds\n },\n skip: loadingClassTreeData,\n client: getCustomClient(clientType)\n });\n\n const getTotalAreaByClassesData = () => {\n const data = _.get(baseData, 'frequencyAccumulated');\n const years = _.sortBy(_.uniq(_.map(data, 'year')));\n\n const classTreeNodeData = {};\n\n _.each(activeClassTreeNodeIds, (nodeId) => {\n _.each(years, (year) => {\n const nodeData = _.find(data, { year, classTreeNodeId: nodeId });\n const value = _.get(nodeData, 'areaInHa') || null;\n const nodeValues = _.get(classTreeNodeData, nodeId);\n\n if (nodeValues) {\n _.set(classTreeNodeData, nodeId, [...nodeValues, value]);\n } else {\n _.set(classTreeNodeData, nodeId, [value]);\n }\n });\n });\n\n const parsedSeries = _.map(_.keys(classTreeNodeData), (nodeId) => {\n const parsedNodeId = Number(nodeId);\n const nodeData = _.find(classTreeLevelsList, { id: parsedNodeId });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n const prettyIndexOfNodeInTree = _.join(_.get(nodeData, 'positionInTree'), '.');\n\n return {\n nodeId: parsedNodeId,\n stack: 'year',\n name: `${ prettyIndexOfNodeInTree }. ${ label }`,\n color: _.get(nodeData, 'color') || '#e74c3c',\n data: _.get(classTreeNodeData, nodeId),\n };\n });\n const sortedSeries = _.sortBy(parsedSeries, 'name');\n const filteredSeries = _.filter(sortedSeries, ({ nodeId }) => _.includes(filteredActiveClassTreeNodeIds, nodeId));\n\n return {\n categories: years,\n series: sortedSeries,\n filteredSeries,\n };\n };\n\n const getTotalAreaByClassesOnFirstLevelData = () => {\n const filteredSeries = _.get(getTotalAreaByClassesData(), 'filteredSeries');\n\n return _(classTreeLevelsList)\n .filter({ level: 1 })\n .map((node) => {\n const nodeId = _.get(node, 'id');\n const childrenIds = _.get(node, 'childrenIds');\n let totalValue = _.last(_.get(_.find(filteredSeries, { nodeId }), 'data'));\n\n if (!totalValue) {\n totalValue = _.sumBy(childrenIds, (childrenId) => {\n return _.last(_.get(_.find(filteredSeries, { nodeId: childrenId }), 'data'));\n });\n }\n\n const stringList = _.get(node, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n const prettyIndexOfNodeInTree = _.join(_.get(node, 'positionInTree'), '.');\n\n return {\n name: `${ prettyIndexOfNodeInTree }. ${ label }`,\n value: totalValue,\n itemStyle: {\n color: _.get(node, 'color')\n },\n }\n })\n .value();\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'frequencyAccumulated');\n\n if ((!loading && errorBaseData) || (!loading &&_.isEmpty(sampleData))) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'totalAreaByClasses': getTotalAreaByClassesData(),\n 'totalAreaByClassesOnFirstLevel': getTotalAreaByClassesOnFirstLevelData(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const totalAreaByClassesOnFirstLevel = () => {\n const values = _.get(chartsData, 'totalAreaByClassesOnFirstLevel') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title\" values={{ year: toYear }} />\n </h2>\n <PieChart\n serie={{\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.unit'),\n data: values\n }}\n />\n </div>\n );\n };\n\n const totalAreaByClasses = () => {\n const categories = _.get(chartsData, 'totalAreaByClasses.categories') || [];\n const series = _.get(chartsData, 'totalAreaByClasses.filteredSeries') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.statistics.burned.accumulated.distributed_by_class_title\" /></h2>\n <BarChart\n categories={ categories }\n series={ series }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const classViewChartData = _.get(chartsData, 'totalAreaByClassesOnFirstLevel');\n const classViewChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title', { year: toYear }),\n columns: ['Total'],\n rows: _.map(classViewChartData, (item) => {\n return {\n name: _.get(item, 'name'),\n data: [_.get(item, 'value')],\n };\n }),\n };\n\n const totalAreaByClassesChartData = _.get(chartsData, 'totalAreaByClasses');\n const totalAreaByClassesChartDataCategories = _.get(totalAreaByClassesChartData, 'categories') || [];\n const totalAreaByClassesChartDataSeries = _.get(totalAreaByClassesChartData, 'series') || [];\n\n const totalAreaByClassesChart = {\n title: <FormattedMessage id=\"mapbiomas.anual_statistics_content.area_title\" />,\n columns: totalAreaByClassesChartDataCategories,\n rows: totalAreaByClassesChartDataSeries\n };\n\n onShowData([\n classViewChart,\n totalAreaByClassesChart\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { totalAreaByClassesOnFirstLevel() }\n { totalAreaByClasses() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($territoryIds: [Int!]!, $classTreeId: Int!) {\n coverageClassificationDataList: coverageClassificationDataByTreeList(\n classTreeId: $classTreeId,\n\t\t\tbufferId: null,\n\t\t\tterritoryIds: $territoryIds\n ) {\n territoryId\n year\n classTreeNodeId\n areaInHa\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport LineChart from '../../components/LineChart';\nimport PieChart from '../../components/PieChart';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function CoverageMainStatisticsContent({\n activeYear,\n baseParams,\n chartType,\n clientType,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n unit,\n hasSingleHistoricalData,\n hasCustomCOSValues,\n valueMantissa = 0,\n}) {\n const currentYear = _.isArray(activeYear) ? _.last(activeYear) : activeYear;\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n\n const [chartsData, setChartsData] = useState(null);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n const classTreeId = _.get(classTreeData, 'classTreeByKey[0].id');\n\n const crossingEnabled = _.get(baseParams, 'crossingEnabled');\n const crossingTerritories = _.get(baseParams, 'crossingTerritories');\n let territories = _.get(baseParams, 'territories');\n\n if (crossingEnabled && !_.isEmpty(crossingTerritories)) {\n territories = crossingTerritories;\n }\n\n const territoryIds = _.map(territories, 'id');\n\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryIds: territoryIds,\n classTreeId: classTreeId\n },\n skip: _.isEmpty(territoryIds) || !classTreeId || loadingClassTreeData,\n client: getCustomClient(clientType)\n });\n\n const findFurthestParent = (node) => {\n const { parentId } = node;\n\n if (parentId) {\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const parentNode = _.find(classesLevelsList, { id: parentId });\n\n if (parentNode) {\n return _.get(parentNode, 'parentId') ? findFurthestParent(parentNode) : parentNode;\n }\n } else {\n return node;\n }\n };\n\n const findFurthestChildrenIds = (childrenIds = []) => {\n if (!_.isEmpty(childrenIds)) {\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const ids = _.map(childrenIds, (id) => {\n const node = _.find(classesLevelsList, { id });\n\n return findFurthestChildrenIds(_.get(node, 'childrenIds'));\n });\n\n return [\n ...childrenIds,\n ...(_.compact(_.flattenDeep(ids)))\n ]\n } else {\n return _.compact(_.flattenDeep(childrenIds));\n }\n };\n\n const parseChartsData = () => {\n let classViewChartDataUnit = null;\n let historicalSeriesChartDataUnit = null;\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const activeClassesLevelsList = _.filter(classesLevelsList, (item) => _.includes(activeClassTreeNodeIds, item.id));\n const coverageClassificationDataList = _.get(baseData, 'coverageClassificationDataList');\n const aggregatedCoverageClassificationDataList = _.values(_.reduce(coverageClassificationDataList, (result, obj) => {\n const key = `${ obj.year }-${ obj.classTreeNodeId }`;\n const nextValue = result[key] ? result[key].areaInHa + obj.areaInHa : obj.areaInHa;\n\n result[key] = {\n ...obj,\n areaInHa: nextValue\n };\n\n return result;\n }, {}));\n\n const parsedData = _.filter(_.map(aggregatedCoverageClassificationDataList, (item) => {\n const classData = _.find(classesLevelsList, { id: item.classTreeNodeId });\n\n return {\n year: Number(_.replace(item.year, '_', '')),\n areaInHa: item.areaInHa,\n classData,\n };\n }), 'classData');\n const years = _.sortBy(_.uniq(_.map(parsedData, 'year')));\n\n const parsedClassesLevelsList = _.map(activeClassesLevelsList, (classData) => {\n const stringList = _.get(classData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const className = `${ _.join(_.get(classData, 'positionInTree'), '.') }. ${ _.get(selectedString, 'stringValue') }`;\n\n return {\n ...classData,\n name: className,\n data: _.map(years, (year) => {\n const coverageClassificationData = _.find(parsedData, (item) => {\n return item.year === year &&\n item.classData.id === classData.id;\n });\n\n return coverageClassificationData ? _.get(coverageClassificationData, 'areaInHa') : null\n })\n };\n });\n\n let classViewChartData = _(activeClassesLevelsList)\n .filter((node) => {\n const childrenIds = findFurthestChildrenIds(_.get(node, 'childrenIds'));\n const hasAtLeastOneChildrenActive = childrenIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n\n return !hasAtLeastOneChildrenActive;\n })\n .map((node) => {\n const furthestParent = findFurthestParent(node);\n const currentData = _.find(parsedData, (item) => _.get(item, 'classData.id') === node.id && item.year === currentYear);\n\n return {\n ...currentData,\n furthestParentId: _.get(furthestParent, 'id'),\n furthestParent: furthestParent\n };\n })\n .groupBy('furthestParentId')\n .map((data) => {\n const sampleItem = _.first(data);\n const stringList = _.get(sampleItem, 'furthestParent.i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const totalValue = _.sumBy(data, 'areaInHa');\n\n return {\n name: _.get(selectedString, 'stringValue'),\n value: totalValue,\n itemStyle: {\n color: _.get(sampleItem, 'furthestParent.color')\n },\n }\n })\n .value();\n\n if (hasCustomCOSValues) {\n classViewChartDataUnit = 'GtCOS';\n let classViewChartDataMinValue = _.get(_.minBy(classViewChartData, 'value'), 'value');\n\n const classViewChartDataValues = (factor) => {\n return _.map(classViewChartData, (item) => {\n const value = _.get(item, 'value');\n\n if (value) {\n return {\n ...item,\n value: value * factor\n }\n } else {\n return item;\n }\n });\n };\n\n if (classViewChartDataMinValue < 0.001) {\n classViewChartData = classViewChartDataValues(1000000);\n classViewChartDataUnit = 'KtCOS';\n } else if (classViewChartDataMinValue < 1) {\n classViewChartData = classViewChartDataValues(1000);\n classViewChartDataUnit = 'MtCOS';\n }\n }\n\n\n let historicalSeriesChartData = _.map(parsedClassesLevelsList, (item) => {\n return {\n name: item.name,\n color: item.color,\n data: item.data,\n level: item.level,\n padding: item.level * 12,\n };\n });\n\n if (hasSingleHistoricalData) {\n let totalData = _.reduce(historicalSeriesChartData, (data, item) => {\n const itemData = _.get(item, 'data');\n\n _.each(itemData, (value, index) => {\n data[index] = (data[index] || 0) + value;\n });\n\n return data;\n }, []);\n\n if (hasCustomCOSValues) {\n historicalSeriesChartDataUnit = 'GtCOS';\n let historicalSeriesChartDataMinValue = _.min(totalData, 'value');\n\n const historicalSeriesChartDataValues = (factor) => {\n return _.map(totalData, (itemValue) => {\n return itemValue ? (itemValue * factor) : itemValue;\n });\n };\n\n if (historicalSeriesChartDataMinValue < 0.001) {\n totalData = historicalSeriesChartDataValues(1000000);\n historicalSeriesChartDataUnit = 'KtCOS';\n } else if (historicalSeriesChartDataMinValue < 1) {\n totalData = historicalSeriesChartDataValues(1000);\n historicalSeriesChartDataUnit = 'MtCOS';\n }\n }\n\n historicalSeriesChartData = [{\n name: 'Total',\n color: '#886956',\n data: totalData,\n level: 1,\n padding: 12,\n }];\n }\n\n return {\n years,\n classViewChartData,\n classViewChartDataUnit,\n historicalSeriesChartData,\n historicalSeriesChartDataUnit,\n };\n };\n\n useEffect(() => {\n if (!loadingClassTreeData && !loadingBaseData && baseData) {\n setChartsData(parseChartsData());\n }\n }, [baseData, loadingBaseData, loadingClassTreeData, activeClassTreeNodeIds, activeYear]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const renderClassViewChart = () => {\n const data = _.get(chartsData, 'classViewChartData');\n const classViewChartDataUnit = _.get(chartsData, 'classViewChartDataUnit');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title\" values={{ year: currentYear }} /></h2>\n <PieChart\n serie={{\n title: classViewChartDataUnit || unit || formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.unit'),\n data\n }}\n mantissa={ valueMantissa }\n />\n </div>\n );\n };\n\n const renderHistoricalSeriesChart = () => {\n const years = _.get(chartsData, 'years');\n const data = _.get(chartsData, 'historicalSeriesChartData');\n const historicalSeriesChartDataUnit = _.get(chartsData, 'historicalSeriesChartDataUnit');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title\" /></h2>\n <LineChart\n chartType={ chartType }\n categories={ years }\n series={ data }\n unit={ historicalSeriesChartDataUnit || unit }\n mantissa={ valueMantissa }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const classViewChartData = _.get(chartsData, 'classViewChartData');\n const classViewChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title', { year: currentYear }),\n columns: ['Total'],\n rows: _.map(classViewChartData, (item) => {\n return {\n name: _.get(item, 'name'),\n data: [_.get(item, 'value')],\n };\n }),\n mantissa: valueMantissa\n };\n\n const years = _.get(chartsData, 'years');\n const historicalSeriesChartData = _.get(chartsData, 'historicalSeriesChartData');\n const historicalSeriesChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title'),\n columns: years,\n rows: historicalSeriesChartData,\n mantissa: valueMantissa\n };\n\n onShowData([\n classViewChart,\n historicalSeriesChart,\n ]);\n };\n\n return (\n <Fragment>\n { loadingBaseData &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { renderClassViewChart() }\n { renderHistoricalSeriesChart() }\n <div id=\"data-view-button\" className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n}\n","import _ from 'lodash';\nimport qs from 'qs';\nimport { useEffect, useState } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport { GET_CLASS_TREE_DATA } from '../graphql/queries/general';\n\nconst API_URL =\n process.env.REACT_APP_GEE_API_URL ||\n 'https://staging.api.mapbiomas.org/api/v1/amazonia';\n\nconst customSubmoduleProps = {\n coverage_main: {\n year: 'activeYear',\n legend: 'activeClassTreeOptionValue',\n },\n};\n\nexport default function useGenericMapStatistics(params) {\n const {\n activeClassTreeNodeIds,\n activeClassTreeOptionValue,\n activeSubmodule,\n crossingTerritories,\n territories,\n ruralPropertyCode,\n groupType,\n geometry,\n } = params;\n const { data: classTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: activeClassTreeOptionValue,\n },\n });\n\n const classTreeNodes = _.get(\n classTreeData,\n 'classTreeByKey[0].mvClassTreeLevelsUi'\n );\n\n const [data, setData] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const customProps = customSubmoduleProps[activeSubmodule] || {};\n const parsedCustomParams = _.reduce(\n customProps,\n (obj, paramFormatter, paramKey) => {\n if (_.isFunction(paramFormatter)) {\n obj[paramKey] = paramFormatter(params);\n } else if (_.isString(paramFormatter)) {\n obj[paramKey] = _.get(params, paramFormatter);\n } else {\n return obj;\n }\n return obj;\n },\n {}\n );\n\n const crossingTerritoriesIds = _.map(crossingTerritories, 'id');\n let parsedParams = {\n initiative: 'chaco',\n pixelValues: _.filter(\n _.map(activeClassTreeNodeIds, (nodeId) =>\n _.get(_.find(classTreeNodes, { id: nodeId }), 'pixelValue')\n ),\n _.isNumber\n ),\n territoryIds: _.map(territories, 'id'),\n ...parsedCustomParams,\n };\n\n if (!_.isEmpty(crossingTerritoriesIds)) {\n parsedParams['crossedTerritoryIds'] = crossingTerritoriesIds;\n }\n\n if (groupType === 'car' && ruralPropertyCode) {\n parsedParams['propertyCode'] = ruralPropertyCode;\n }\n\n let statisticsParams = {\n initiative: 'brasil',\n fromYear: 1985,\n toYear: parsedParams.year,\n pixelValues: parsedParams.pixelValues,\n territoryIds: parsedParams.territoryIds,\n crossedTerritoryIds: parsedParams.crossedTerritoryIds,\n legend: parsedParams.legend,\n };\n let urlPath = '/statistics/coverage_main';\n\n if (parsedParams.propertyCode) {\n urlPath = '/statistics/coverage_main/property';\n statisticsParams = {\n ..._.omit(statisticsParams, ['territoryIds', 'crossedTerritoryIds']),\n propertyCode: parsedParams.propertyCode,\n };\n }\n\n if (geometry) {\n urlPath = '/statistics/coverage_main/geometry';\n statisticsParams = {\n ..._.omit(statisticsParams, [\n 'territoryIds',\n 'crossedTerritoryIds',\n 'propertyCode',\n ]),\n geometryCoordinates: JSON.stringify(\n _.get(geometry, 'geometry.coordinates')\n ),\n };\n }\n\n const statisticsUrl = `${API_URL}${urlPath}?${qs.stringify(statisticsParams, {\n arrayFormat: 'repeat',\n })}`;\n\n useEffect(() => {\n if (\n (_.includes(statisticsUrl, 'pixelValues') &&\n _.includes(statisticsUrl, 'crossedTerritoryIds')) ||\n (_.includes(statisticsUrl, 'pixelValues') &&\n _.includes(statisticsUrl, 'propertyCode')) ||\n (_.includes(statisticsUrl, 'pixelValues') &&\n _.includes(statisticsUrl, 'geometryCoordinates'))\n ) {\n setLoading(true);\n fetch(statisticsUrl, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.json())\n .then((data) => {\n setData(data);\n setLoading(false);\n });\n }\n }, [statisticsUrl]);\n\n return {\n loading,\n data,\n pixelValues: parsedParams.pixelValues,\n };\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($territoryIds: [Int!]!, $classTreeId: Int!) {\n coverageClassificationDataList: coverageClassificationDataByTreeList(\n classTreeId: $classTreeId,\n\t\t\tbufferId: null,\n\t\t\tterritoryIds: $territoryIds\n ) {\n territoryId\n year\n classTreeNodeId\n areaInHa\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport LineChart from '../../components/LineChart';\nimport PieChart from '../../components/PieChart';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\nimport useGenericMapStatistics from '../../../../../../../../hooks/useGenericMapStatistics';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function CoverageMainStatisticsContentCustom({\n activeYear,\n baseParams,\n chartType,\n clientType,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n unit,\n valueMantissa = 0,\n ruralPropertyCode,\n geometry,\n}) {\n const statisticsData = useGenericMapStatistics({\n ...baseParams,\n activeYear,\n ruralPropertyCode,\n geometry\n });\n const { loading, data, pixelValues } = statisticsData;\n\n const currentYear = _.isArray(activeYear) ? _.last(activeYear) : activeYear;\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n\n const [chartsData, setChartsData] = useState(null);\n\n const { data: classTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n\n const parseChartsData = () => {\n const years = _.orderBy(_.map(data, 'year'));\n const activeYearIndex = _.findIndex(years, (year) => year === activeYear);\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const parsedData = _.map(pixelValues, (pixelValue) => {\n const nodeData = _.find(classesLevelsList, { pixelValue });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const className = `${ _.join(_.get(nodeData, 'positionInTree'), '.') }. ${ _.get(selectedString, 'stringValue') }`;\n\n\n return {\n ...(nodeData || {}),\n name: className,\n data: _.map(years, (year) => {\n const yearData = _.find(data, { year });\n const pixelArea = _.find(_.get(yearData, 'areas'), { pixelId: pixelValue });\n\n return _.get(pixelArea, 'value', 0);\n })\n };\n });\n\n const classViewChartData = _(parsedData)\n .filter({ level: 1 })\n .map((item) => {\n const itemValue = _.get(item, `data[${ activeYearIndex }]`);\n\n return {\n name: _.get(item, 'name'),\n value: itemValue,\n itemStyle: {\n color: _.get(item, 'color')\n },\n };\n })\n .value();\n\n const historicalSeriesChartData = _.map(parsedData, (item) => {\n return {\n name: item.name,\n color: item.color,\n data: item.data,\n level: item.level,\n padding: item.level * 12,\n };\n });\n\n return {\n years,\n classViewChartData,\n classViewChartDataUnit: null,\n historicalSeriesChartData,\n historicalSeriesChartDataUnit: null,\n };\n };\n\n useEffect(() => {\n if (!loading && data) {\n setChartsData(parseChartsData());\n }\n }, [loading]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const renderClassViewChart = () => {\n const data = _.get(chartsData, 'classViewChartData');\n const classViewChartDataUnit = _.get(chartsData, 'classViewChartDataUnit');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title\" values={{ year: currentYear }} /></h2>\n <PieChart\n serie={{\n title: classViewChartDataUnit || unit || formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.unit'),\n data\n }}\n mantissa={ valueMantissa }\n />\n </div>\n );\n };\n\n const renderHistoricalSeriesChart = () => {\n const years = _.get(chartsData, 'years');\n const data = _.get(chartsData, 'historicalSeriesChartData');\n const historicalSeriesChartDataUnit = _.get(chartsData, 'historicalSeriesChartDataUnit');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title\" /></h2>\n <LineChart\n chartType={ chartType }\n categories={ years }\n series={ data }\n unit={ historicalSeriesChartDataUnit || unit }\n mantissa={ valueMantissa }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const classViewChartData = _.get(chartsData, 'classViewChartData');\n const classViewChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title', { year: currentYear }),\n columns: ['Total'],\n rows: _.map(classViewChartData, (item) => {\n return {\n name: _.get(item, 'name'),\n data: [_.get(item, 'value')],\n };\n }),\n mantissa: valueMantissa\n };\n\n const years = _.get(chartsData, 'years');\n const historicalSeriesChartData = _.get(chartsData, 'historicalSeriesChartData');\n const historicalSeriesChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title'),\n columns: years,\n rows: historicalSeriesChartData,\n mantissa: valueMantissa\n };\n\n onShowData([\n classViewChart,\n historicalSeriesChart,\n ]);\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { renderClassViewChart() }\n { renderHistoricalSeriesChart() }\n <div id=\"data-view-button\" className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query CalcCoverageByYear(\n $classTreeNodeIds: [Int!],\n $year: [Int!]!,\n $territoriesIds: [Int!],\n ) {\n calcCoverageByYear(\n classTreeNodeIds: $classTreeNodeIds,\n year: $year,\n territoriesIds: $territoriesIds,\n ){\n percentage,\n average,\n maximun,\n minimun,\n totalburnedarea,\n burnedyear{\n total,\n year\n }\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport { useIntl ,FormattedMessage } from 'react-intl';\n\nimport BarChart from '../../components/BarChart';\nimport BaseValuesChart from '../../components/BaseValuesChart';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function FireAnnualTotalBurnedStatisticsContent({\n clientType,\n activeYear,\n baseParams,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const years = [_.first(activeYear), _.last(activeYear)];\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n const intl = useIntl()\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'fire_annual_total_burned'\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const filteredActiveClassTreeNodeIds = _.filter(activeClassTreeNodeIds, (nodeId) => {\n const nodeData = _.find(classTreeLevelsList, { id: nodeId });\n const childrenIds = _.get(nodeData, 'childrenIds');\n\n if (_.isEmpty(childrenIds)) {\n return true;\n } else {\n return !childrenIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n }\n });\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: filteredActiveClassTreeNodeIds,\n year: years,\n territoriesIds: territoryIds\n },\n skip: loadingClassTreeData,\n client: getCustomClient(clientType)\n });\n\n const getTotalBurnedAreaByYearData = () => {\n const data = _.get(baseData, 'calcCoverageByYear[0]');\n const values = _.get(data, 'burnedyear');\n const sortedValues = _.sortBy(values, 'year');\n\n return {\n categories: _.map(sortedValues, 'year'),\n series: [\n {\n name: 'Total',\n color: '#e74c3c',\n data: _.map(sortedValues, 'total'),\n }\n ]\n };\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'calcCoverageByYear[0].burnedyear');\n\n if ((!loading && errorBaseData) || _.isEmpty(sampleData)) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'totalBurnedAreaByYear': getTotalBurnedAreaByYearData(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const burnedAreaByPeriod = () => {\n const data = _.get(baseData, 'calcCoverageByYear[0]');\n const total = _.get(data, 'totalburnedarea') || 0;\n const maxValue = _.get(data, 'maximun') || 0;\n const averageValue = _.get(data, 'average') || 0;\n const minValue = _.get(data, 'minimun') || 0;\n const averagePercentage = (averageValue / maxValue) * 100;\n const minPercentage = (minValue / maxValue) * 100;\n\n return (\n <BaseValuesChart\n total={ total }\n maxValue={ maxValue }\n averageValue={ averageValue }\n averagePercentage={ averagePercentage }\n minValue={ minValue }\n minPercentage={ minPercentage }\n title={intl.formatMessage({id: 'mapbiomas.statistics.burned.period_title'})}\n totalTitle={intl.formatMessage({id: 'mapbiomas.statistics.burned.annual_total.summary.total.title'})}\n totalTitleTooltipKey=\"mapbiomas.statistics.burned.annual_total.summary.total.tooltip\"\n maxValueTooltipKey=\"mapbiomas.statistics.burned.annual_total.summary.max.tooltip\"\n averageValueTooltipKey=\"mapbiomas.statistics.burned.annual_total.summary.average.tooltip\"\n minValueTooltipKey=\"mapbiomas.statistics.burned.annual_total.summary.min.tooltip\"\n />\n );\n };\n\n const totalBurnedAreaByYear = () => {\n const categories = _.get(chartsData, 'totalBurnedAreaByYear.categories');\n const series = _.get(chartsData, 'totalBurnedAreaByYear.series');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.statistics.burned.total_per_year_title\" /></h2>\n <BarChart\n hasAvgMarkLine\n categories={ categories }\n series={ series }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const totalBurnedAreaByYearChartData = _.get(chartsData, 'totalBurnedAreaByYear') || [];\n const totalBurnedAreaByYearChart = {\n title: intl.formatMessage({id: 'mapbiomas.statistics.burned.total_per_year_title'}),\n columns: _.get(totalBurnedAreaByYearChartData, 'categories'),\n rows: _.get(totalBurnedAreaByYearChartData, 'series'),\n };\n\n onShowData([\n totalBurnedAreaByYearChart,\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { burnedAreaByPeriod() }\n { totalBurnedAreaByYear() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nimport { useIntl } from 'react-intl';\n\nfunction tooltipFormatter(params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params[0].axisValue }</span>`;\n\n params.forEach((item) => {\n const value = _.isObject(item.data) ? item.data.value : item.data;\n\n if (value) {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n const paramValue = `<span>${ colorSpan(item.color) } ${ item.seriesName }: ${ valueLabel }</span>`;\n\n str += paramValue;\n }\n });\n\n return str;\n}\n\nconst mapMonthToIndex = {\n 'Janeiro': 1,\n 'January': 1,\n 'Fevereiro': 2,\n 'February': 2,\n 'Março': 3,\n 'March': 3,\n 'Abril': 4,\n 'April': 4,\n 'Maio': 5,\n 'May': 5,\n 'Junho': 6,\n 'June': 6,\n 'Julho': 7,\n 'July': 7,\n 'Agosto': 8,\n 'August': 8,\n 'Setembro': 9,\n 'September': 9,\n 'Outubro': 10,\n 'October': 10,\n 'Novembro': 11,\n 'November': 11,\n 'Dezembro': 12,\n 'December': 12,\n};\n\nconst yAxisLabelFormatter = (value) => {\n return numbro(value / 1000000).format({\n thousandSeparated: true,\n mantissa: 0\n });\n};\n\nexport default function BurnedAreaCustomChart({\n categories,\n data,\n vertical = true,\n customYAxisLabelFormatter = yAxisLabelFormatter,\n}) {\n const intl = useIntl()\n let yAxisName = 'Hectares';\n let nameGap = 55;\n let gridLeft = '30px';\n\n const maxValue = _.max(_.flatten(_.values(data)));\n const hasMillionValue = maxValue > 1000000;\n\n if (hasMillionValue) {\n nameGap = 35;\n gridLeft = '30px';\n yAxisName = intl.formatMessage({id: 'mapbiomas.statistics.million_hectares'})\n }\n\n let xAxis = {\n type: 'category',\n axisPointer: {\n type: 'shadow'\n },\n axisLabel: {\n fontSize: 11,\n color: '#767676',\n formatter: (value) => {\n return mapMonthToIndex[value] || value;\n }\n },\n axisLine: {\n color: '#DDD'\n },\n data: categories\n };\n let yAxis = {\n name: yAxisName || null,\n nameLocation: 'middle',\n nameRotate: 90,\n nameGap,\n nameTextStyle: {\n fontSize: 11,\n color: '#767676'\n },\n axisTick: {\n show: false\n },\n axisLine: {\n color: '#DDD'\n },\n splitLine: {\n lineStyle: {\n color: 'rgba(0, 0, 0, 0.05)'\n }\n },\n axisLabel: {\n formatter: (value) => {\n if (customYAxisLabelFormatter && hasMillionValue) {\n return customYAxisLabelFormatter(value);\n } else {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return valueLabel;\n }\n },\n fontSize: 11,\n color: '#767676'\n }\n };\n\n if (!vertical) {\n let tempValue = xAxis;\n xAxis = yAxis;\n yAxis = tempValue;\n }\n\n return (\n <ReactEcharts\n style={ { height: 200 } }\n option={ {\n xAxis,\n yAxis,\n tooltip: {\n confine: true,\n textStyle: {\n align: 'left',\n color: '#444',\n fontSize: 13\n },\n backgroundColor: '#FFFFFF',\n borderColor: 'rgba(0, 0, 0, 0.1)',\n borderWidth: 1,\n extraCssText: 'box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);',\n trigger: 'axis',\n formatter: tooltipFormatter,\n },\n grid: {\n top: '8%',\n right: '10px',\n bottom: '12%',\n left: gridLeft,\n containLabel: true\n },\n legend: {\n data: [\n intl.formatMessage({id: 'mapbiomas.statistics.burned.max_value'}),\n intl.formatMessage({id: 'mapbiomas.statistics.burned.average_value'}),\n intl.formatMessage({id: 'mapbiomas.statistics.burned.min_value'}),\n ],\n bottom: 0,\n itemWidth: 15,\n itemHeight: 10,\n textStyle: {\n fontSize: 11,\n color: '#767676',\n }\n },\n series: [\n {\n name: 'Ãrea queimada',\n type: 'bar',\n data: _.get(data, 'total'),\n },\n {\n symbol: 'none',\n name: intl.formatMessage({id: 'mapbiomas.statistics.burned.max_value'}),\n type: 'line',\n data: _.get(data, 'maximum'),\n },\n {\n symbol: 'none',\n name: intl.formatMessage({id: 'mapbiomas.statistics.burned.average_value'}),\n type: 'line',\n data: _.get(data, 'average'),\n },\n {\n symbol: 'none',\n name: intl.formatMessage({id: 'mapbiomas.statistics.burned.min_value'}),\n type: 'line',\n data: _.get(data, 'minimum'),\n },\n ]\n // toolbox: {\n // feature: {\n // saveAsImage: {\n // name: 'MapBiomas',\n // title: 'Download',\n // }\n // }\n // },\n } }\n notMerge={ true }\n />\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query BurnedAreaEvolutionMonthCalcs(\n $classTreeNodeIds: [Int!],\n $year: [Int!]!,\n $territoriesIds: [Int!],\n ) {\n burnedAreaEvolutionMonthCalcs(\n classTreeNodeIds: $classTreeNodeIds,\n year: $year,\n territoriesIds: $territoriesIds,\n ) {\n percentage,\n average,\n maximun,\n minimun,\n totalburnedarea,\n }\n\n burnedAreaEvolutionEachMonth(\n classTreeNodeIds: $classTreeNodeIds,\n year: $year,\n territoriesIds: $territoriesIds,\n ){\n average,\n maximun,\n minimun,\n totalburnedarea,\n classTreeNodeId\n }\n\n burnedAreaEvolutionYears(\n classTreeNodeIds: $classTreeNodeIds,\n years: [1985, 2023],\n territoriesIds: $territoriesIds,\n ){\n acumulated {\n classTreeNodeId\n total\n }\n territoriesid\n year\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport BarChart from '../../components/BarChart';\nimport BaseValuesChart from '../../components/BaseValuesChart';\nimport BurnedAreaCustomChart from '../../components/BurnedAreaCustomChart';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function FireMonthlyStatisticsContent({\n clientType,\n activeYear,\n baseParams,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const intl = useIntl()\n\n const years = [activeYear];\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'fire_monthly'\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: activeClassTreeNodeIds,\n year: years,\n territoriesIds: territoryIds\n },\n skip: _.isArray(activeYear),\n client: getCustomClient(clientType)\n });\n\n const getCustomBurnedAreaByMonthData = () => {\n const data = _.get(baseData, 'burnedAreaEvolutionEachMonth');\n\n const parsedCategories = _.map(_.map(data, 'classTreeNodeId'), (nodeId) => {\n const nodeData = _.find(classTreeLevelsList, { id: Number(nodeId) });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n\n return label;\n });\n\n return {\n categories: parsedCategories,\n data,\n };\n };\n\n const getAnnualAreaByMonthData = () => {\n const data = _.get(baseData, 'burnedAreaEvolutionYears');\n const years = _.map(data, 'year');\n\n const classTreeNodeData = {};\n\n _.each(data, (item) => {\n _.each(_.get(item, 'acumulated'), (nodeItem) => {\n const nodeId = _.get(nodeItem, 'classTreeNodeId');\n const nodeValues = _.get(classTreeNodeData, nodeId);\n\n if (nodeValues) {\n _.set(classTreeNodeData, nodeId, [...nodeValues, _.get(nodeItem, 'total')]);\n } else {\n _.set(classTreeNodeData, nodeId, [_.get(nodeItem, 'total')]);\n }\n });\n });\n\n const parsedSeries = _.map(_.keys(classTreeNodeData), (nodeId) => {\n const nodeData = _.find(classTreeLevelsList, { id: Number(nodeId) });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n\n return {\n stack: 'year',\n name: label,\n color: _.get(nodeData, 'color') || '#e74c3c',\n data: _.get(classTreeNodeData, nodeId),\n };\n });\n\n return {\n categories: years,\n series: parsedSeries\n };\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'burnedAreaEvolutionMonthCalcs[0].maximun');\n\n if ((!loading && errorBaseData) || _.isNull(sampleData)) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'customBurnedAreaByMonth': getCustomBurnedAreaByMonthData(),\n 'annualAreaByMonth': getAnnualAreaByMonthData(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const burnedAreaByPeriod = () => {\n const data = _.get(baseData, 'burnedAreaEvolutionMonthCalcs[0]');\n const total = _.get(data, 'totalburnedarea') || 0;\n const maxValue = _.get(data, 'maximun') || 0;\n const averageValue = _.get(data, 'average') || 0;\n const minValue = _.get(data, 'minimun') || 0;\n const averagePercentage = (averageValue / maxValue) * 100;\n const minPercentage = (minValue / maxValue) * 100;\n\n return (\n <BaseValuesChart\n title={ intl.formatMessage({id: 'mapbiomas.statistics.burned.burned_area_for_selected_year'}) }\n total={ total }\n maxValue={ maxValue }\n averageValue={ averageValue }\n averagePercentage={ averagePercentage }\n minValue={ minValue }\n minPercentage={ minPercentage }\n maxValueTooltipKey=\"mapbiomas.statistics.burned.monthly.summary.max.tooltip\"\n averageValueTooltipKey=\"mapbiomas.statistics.burned.monthly.summary.average.tooltip\"\n minValueTooltipKey=\"mapbiomas.statistics.burned.monthly.summary.min.tooltip\"\n />\n );\n };\n\n const customBurnedAreaByMonth = () => {\n const categories = _.get(chartsData, 'customBurnedAreaByMonth.categories') || [];\n const data = _.get(chartsData, 'customBurnedAreaByMonth.data');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <span>{intl.formatMessage({id: 'mapbiomas.statistics.burned.area_burned_per_month'})}</span>\n <span className={ styles.secondaryTitleExtraInfo }>{ intl.formatMessage({id: 'mapbiomas.statistics.burned.area_burned_per_month_description'}) }</span>\n </h2>\n <BurnedAreaCustomChart\n categories={ categories }\n data={{\n total: _.map(data, 'totalburnedarea'),\n maximum: _.map(data, 'maximun'),\n average: _.map(data, 'average'),\n minimum: _.map(data, 'minimun'),\n }}\n />\n </div>\n );\n };\n\n const annualAreaByMonth = () => {\n const categories = _.get(chartsData, 'annualAreaByMonth.categories') || [];\n const series = _.get(chartsData, 'annualAreaByMonth.series') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <span>{intl.formatMessage({id: 'mapbiomas.statistics.burned.month_burned_area_historic'})}</span>\n <span className={ styles.secondaryTitleExtraInfo }>{intl.formatMessage({id: 'mapbiomas.statistics.burned.month_burned_area_historic_description'})}</span>\n </h2>\n <BarChart\n categories={ categories }\n series={ series }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const customBurnedAreaByMonthChartData = _.get(chartsData, 'customBurnedAreaByMonth');\n const customBurnedAreaByMonthChartDataCategories = _.get(customBurnedAreaByMonthChartData, 'categories') || [];\n const customBurnedAreaByMonthChartDataData = _.get(customBurnedAreaByMonthChartData, 'data');\n\n const customBurnedAreaByMonthChart = {\n title: intl.formatMessage({id: 'mapbiomas.statistics.burned.area_burned_per_month'}),\n columns: customBurnedAreaByMonthChartDataCategories,\n rows: [\n {\n name: intl.formatMessage({id: 'mapbiomas.statistics.burned.burned_area'}),\n data: _.map(customBurnedAreaByMonthChartDataData, 'totalburnedarea')\n },\n {\n name: intl.formatMessage({id: 'mapbiomas.statistics.burned.max_value'}),\n data: _.map(customBurnedAreaByMonthChartDataData, 'maximun')\n },\n {\n name: intl.formatMessage({id: 'mapbiomas.statistics.burned.average_value'}),\n data: _.map(customBurnedAreaByMonthChartDataData, 'average')\n },\n {\n name: intl.formatMessage({id: 'mapbiomas.statistics.burned.min_value'}),\n data: _.map(customBurnedAreaByMonthChartDataData, 'minimun')\n },\n ]\n };\n\n const annualAreaByMonthChartData = _.get(chartsData, 'annualAreaByMonth');\n const annualAreaByMonthChartDataCategories = _.get(annualAreaByMonthChartData, 'categories') || [];\n const annualAreaByMonthChartDataSeries = _.get(annualAreaByMonthChartData, 'series') || [];\n\n const annualAreaByMonthChart = {\n title: intl.formatMessage({id: 'mapbiomas.statistics.burned.month_burned_area_historic'}),\n columns: annualAreaByMonthChartDataCategories,\n rows: _.map(annualAreaByMonthChartDataSeries, (serie) => {\n return {\n name: _.get(serie, 'name'),\n data: _.get(serie, 'data')\n };\n })\n };\n\n onShowData([\n customBurnedAreaByMonthChart,\n annualAreaByMonthChart,\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { burnedAreaByPeriod() }\n { customBurnedAreaByMonth() }\n { annualAreaByMonth() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData(\n $classTreeNodeIds: [Int!]!,\n $fromYear: Int!,\n $toYear: Int!,\n $territoriesIds: [Int!]!,\n ) {\n frequencyAccumulatedGrouped(\n fromYear: $fromYear,\n toYear: $toYear,\n classTreeNodeIds: $classTreeNodeIds,\n territoriesIds: $territoriesIds,\n ) {\n year\n areaInHa\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport { useTheme } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport BarChart from '../../components/BarChart';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nconst formatNumber = (value) => {\n return numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n};\n\nexport default function FireAccumulatedStatisticsContent({\n clientType,\n activeYear,\n baseParams,\n classTreeKey,\n localeKey = 'burned',\n statisticsDataIsVisible,\n onShowData,\n}) {\n const theme = useTheme();\n\n const intl = useIntl()\n\n const fromYear = _.first(activeYear) || 1985;\n const toYear = _.isArray(activeYear) ? _.last(activeYear) : activeYear;\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const filteredActiveClassTreeNodeIds = _.filter(activeClassTreeNodeIds, (nodeId) => {\n const nodeData = _.find(classTreeLevelsList, { id: nodeId });\n const childrenIds = _.get(nodeData, 'childrenIds');\n\n if (_.isEmpty(childrenIds)) {\n return true;\n } else {\n return !childrenIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n }\n });\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: filteredActiveClassTreeNodeIds,\n fromYear,\n toYear,\n territoriesIds: territoryIds\n },\n skip: loadingClassTreeData,\n client: getCustomClient(clientType)\n });\n\n const getAccumulatedAreaFromAllPeriodData = () => {\n const data = _.sortBy(_.get(baseData, 'frequencyAccumulatedGrouped'), 'year');\n const categories = _.map(data, 'year') || [];\n const values = _.map(data, 'areaInHa') || [];\n\n return {\n title: intl.formatMessage({id: 'mapbiomas.statistics.burned.accumulated.title'}),\n columns: categories,\n rows: [\n {\n name: 'Total',\n data: values,\n }\n ]\n };\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'frequencyAccumulatedGrouped');\n\n if ((!loading && errorBaseData) || _.isEmpty(sampleData)) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'accumulatedAreaFromAllPeriod': getAccumulatedAreaFromAllPeriodData(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const totalSummary = () => {\n const values = _.get(chartsData, 'accumulatedAreaFromAllPeriod.rows[0].data') || [];\n const lastValue = _.last(values);\n\n return (\n <div className={ styles.sectionSmall }>\n <h2 className={ styles.secondaryTitle }>\n <span><FormattedMessage id={ `mapbiomas.statistics.${ localeKey }.accumulated.summary.title` } /></span>\n </h2>\n <ul className={ styles.infoList }>\n <li className={ styles.infoListItem }>\n <span className={ styles.infoListItemValue }>\n <b>{ formatNumber(lastValue) }</b>\n <small>ha</small>\n </span>\n <span className={ styles.infoListItemLabel }>\n <span><FormattedMessage id={ `mapbiomas.statistics.${ localeKey }.accumulated.summary.total.title` } /></span>\n </span>\n </li>\n </ul>\n </div>\n );\n };\n\n const accumulatedAreaFromAllPeriod = () => {\n const categories = _.get(chartsData, 'accumulatedAreaFromAllPeriod.columns') || [];\n const values = _.get(chartsData, 'accumulatedAreaFromAllPeriod.rows[0].data') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <span>{intl.formatMessage({id: 'mapbiomas.statistics.burned.accumulated.title'})}</span>\n </h2>\n <BarChart\n categories={ categories }\n series={ [\n {\n name: 'Total',\n color: _.get(theme, 'palette.primary.main'),\n data: values,\n }\n ] }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n onShowData([\n _.get(chartsData, 'accumulatedAreaFromAllPeriod')\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { totalSummary() }\n { accumulatedAreaFromAllPeriod() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData(\n $classTreeNodeIds: [Int!]!,\n $fromYear: Int!,\n $toYear: Int!,\n $territoriesIds: [Int!]!,\n $locale: String\n ) {\n frequencyAggregated(\n classTreeNodeIds: $classTreeNodeIds,\n fromYear: $fromYear,\n toYear: $toYear,\n territoriesIds: $territoriesIds,\n ) {\n average\n maximum\n minimum\n total\n }\n\n frequencySeriesAggregated(\n classTreeNodeIds: $classTreeNodeIds,\n fromYear: $fromYear,\n toYear: $toYear,\n territoriesIds: $territoriesIds,\n ) {\n label\n value\n }\n\n frequencySeriesAggregatedByClass(\n classTreeNodeIds: $classTreeNodeIds,\n fromYear: $fromYear,\n toYear: $toYear,\n territoriesIds: $territoriesIds,\n locale: $locale\n )\n\n # getAreaFrequenceByClass(\n # classTreeNodeIds: $classTreeNodeIds,\n # fromYear: $fromYear,\n # toYear: $toYear,\n # territoriesIds: $territoriesIds,\n # ){\n # territoriesIds\n # fromYear\n # toYear\n # classTreeNodeIds\n # freqByClass {\n # areaInHa\n # classRegisterId\n # classNameEn\n # classNamePt\n # color\n # }\n # }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport BarChart from '../../components/BarChart';\nimport BaseValuesChart from '../../components/BaseValuesChart';\nimport PieChart from '../../components/PieChart';\n\nimport InfoTooltip from '../../../../../../../../components/InfoTooltip';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function FrequencyStatisticsContent({\n clientType,\n ageMode = false,\n fireMode = false,\n deforestationMode = false,\n activeYear,\n baseParams,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n\n const intl = useIntl()\n\n const mainYear = _.last(activeYear);\n const fromYear = _.first(activeYear);\n const toYear = _.last(activeYear);\n const years = [_.first(activeYear), _.last(activeYear)];\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: activeClassTreeNodeIds,\n fromYear: ageMode ? toYear : fromYear,\n toYear,\n years: years,\n territoriesIds: territoryIds,\n locale: locale\n },\n client: getCustomClient(clientType)\n });\n\n const frequencyByAreaData = () => {\n const data = _.get(baseData, 'frequencySeriesAggregated');\n\n const parsedValues = _.map(data, (item) => {\n const nodeId = _.get(item, 'label');\n const value = _.get(item, 'value');\n const nodeData = _.find(classTreeLevelsList, { id: Number(nodeId) });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n\n return {\n name: label,\n value,\n itemStyle: {\n color: _.get(nodeData, 'color') || '#e74c3c'\n },\n position: _.get(nodeData, 'positionInTree[0]')\n };\n });\n\n return _.sortBy(parsedValues, 'position');\n };\n\n const getTotalBurnedAreaByFrequencyAndClassData = () => {\n const newData = baseData['frequencySeriesAggregatedByClass'] || {}\n\n const categories = newData['classes'].map(({ label }) => label )\n\n const series = newData['burned'].map(({color, label, areas}) => {\n const collection = newData['classes'].map(({ id })=>{\n return areas[id] || null;\n });\n\n return {\n stack: 'classTreeNodeId',\n name: label,\n color: color,\n data: collection\n };\n });\n\n return {\n categories: categories,\n series: series,\n };\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'frequencySeriesAggregated');\n\n if ((!loading && errorBaseData) || _.isEmpty(sampleData)) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'frequencyByArea': frequencyByAreaData(),\n 'frequencyByAreaAndClass': getTotalBurnedAreaByFrequencyAndClassData(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const areaByPeriod = () => {\n const dataAggregated = _.get(baseData, 'frequencyAggregated');\n\n const total = _.get(dataAggregated, 'total') || 0;\n const maxValue = _.get(dataAggregated, 'maximum') || 0;\n const minValue = _.get(dataAggregated, 'minimum') || 0;\n const averageValue = _.get(dataAggregated, 'average') || 0;\n const averagePercentage = (averageValue / maxValue) * 100;\n const minPercentage = (minValue / maxValue) * 100;\n\n const distByYears = _.get(baseData, 'frequencySeriesAggregated') || [];\n const maxYear = _.get(_.find(distByYears, { value: maxValue }), 'label');\n const minYear = _.get(_.find(distByYears, { value: minValue }), 'label');\n\n const customTotal = _.get(_.find(distByYears, { label: mainYear }), 'value') || null;\n const isMining = classTreeKey === 'mining_annual';\n\n return (\n <BaseValuesChart\n title={ !isMining ? intl.formatMessage({id: 'mapbiomas.statistics.area.period'}) : `Ãrea - ${ mainYear }` }\n totalTitle=\"Total\"\n total={ !isMining ? total : customTotal }\n maxValue={ maxValue }\n maxYear={ maxYear }\n averageValue={ averageValue }\n averagePercentage={ averagePercentage }\n minValue={ minValue }\n minYear={ minYear }\n minPercentage={ minPercentage }\n />\n );\n };\n\n const frequencyPieChart = () => {\n const values = _.get(chartsData, 'frequencyByArea') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <span><FormattedMessage id=\"mapbiomas.statistics.burned.frequency.area_frequency_pie.title\" /></span>\n </h2>\n <PieChart\n serie={{\n title: intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_frequency.title'}),\n data: values\n }}\n />\n </div>\n );\n };\n\n const frequencyByArea = () => {\n const values = _.get(chartsData, 'frequencyByArea') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <span>{ !ageMode ? intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_frequency.title'}) : intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_per_age.title'}) }</span>\n\n <InfoTooltip text={intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.title_period_tooltip'})} />\n </h2>\n\n <BarChart\n categories={ _.map(values, 'name') }\n series={ [\n {\n name: 'Total',\n data: values,\n }\n ] }\n />\n </div>\n );\n };\n\n const frequencyByAreaAndClass = () => {\n const categories = _.get(chartsData, 'frequencyByAreaAndClass.categories') || [];\n const series = _.get(chartsData, 'frequencyByAreaAndClass.series') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <span>\n {\n !ageMode\n ? intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_frequency.subtitle'})\n : intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_per_age.subtitle'})\n }\n <InfoTooltip text={intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.title_class_coverage_tooltip'})} />\n </span>\n <span className={ styles.secondaryTitleExtraInfo }>{intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.extra_info'})}</span>\n </h2>\n <BarChart\n categories={ categories }\n series={ series }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const frequencyByAreaChartData = _.get(chartsData, 'frequencyByArea') || [];\n const frequencyByAreaChart = {\n title: !ageMode ? intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_frequency.title'}) : intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_per_age.title'}),\n columns: _.map(frequencyByAreaChartData, 'name'),\n rows: [\n {\n name: 'Total',\n data: _.map(frequencyByAreaChartData, 'value'),\n }\n ]\n };\n\n const frequencyByAreaAndClassChartData = _.get(chartsData, 'frequencyByAreaAndClass');\n const frequencyByAreaAndClassChartDataCategories = _.get(frequencyByAreaAndClassChartData, 'categories') || [];\n const frequencyByAreaAndClassChartDataSeries = _.get(frequencyByAreaAndClassChartData, 'series') || [];\n\n const frequencyByAreaAndClassChart = {\n title:\n !ageMode\n ? intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_frequency.subtitle'})\n : intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_per_age.subtitle'}),\n columns: frequencyByAreaAndClassChartDataCategories,\n rows: _.map(frequencyByAreaAndClassChartDataSeries, (serie) => {\n return {\n name: _.get(serie, 'name'),\n data: _.get(serie, 'data')\n };\n })\n };\n\n onShowData([\n frequencyByAreaChart,\n frequencyByAreaAndClassChart,\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { !fireMode && !deforestationMode && areaByPeriod() }\n { (fireMode || deforestationMode) && frequencyPieChart() }\n { frequencyByArea() }\n { !deforestationMode && frequencyByAreaAndClass() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData(\n $classTreeNodeIds: [Int!]!,\n $fromYear: Int!,\n $toYear: Int!,\n $territoriesIds: [Int!]!,\n ) {\n frequencySeriesAggregated(\n classTreeNodeIds: $classTreeNodeIds,\n fromYear: $fromYear,\n toYear: $toYear,\n territoriesIds: $territoriesIds,\n ) {\n label\n value\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport BarChart from '../../components/BarChart';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function FrequencyByYearStatisticsContent({\n clientType,\n ageMode = false,\n activeYear,\n baseParams,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n\n const intl = useIntl();\n\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: activeClassTreeNodeIds,\n fromYear: 1985,\n toYear: activeYear,\n territoriesIds: territoryIds,\n },\n client: getCustomClient(clientType)\n });\n\n const frequencyByAreaData = () => {\n const data = _.get(baseData, 'frequencySeriesAggregated');\n\n const parsedValues = _.map(data, (item) => {\n const nodeId = _.get(item, 'label');\n const value = _.get(item, 'value');\n const nodeData = _.find(classTreeLevelsList, { id: Number(nodeId) });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n\n return {\n name: label,\n value,\n itemStyle: {\n color: _.get(nodeData, 'color') || '#e74c3c'\n },\n position: _.get(nodeData, 'positionInTree[0]')\n };\n });\n\n return _.orderBy(parsedValues, 'name', 'asc');\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'frequencySeriesAggregated');\n\n if ((!loading && errorBaseData) || _.isEmpty(sampleData)) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'frequencyByArea': frequencyByAreaData(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const frequencyByArea = () => {\n const values = _.get(chartsData, 'frequencyByArea') || [];\n console.log(\"🚀 ~ frequencyByArea ~ values:\", values)\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>\n <span>{ intl.formatMessage({id: 'mapbiomas.statistics.burned.last_year.historical_by_year.title'}) }</span>\n </h2>\n <BarChart\n vertical={ false }\n height={ 750 }\n categories={ _.map(values, 'name') }\n series={ [\n {\n name: 'Total',\n data: values,\n }\n ] }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const frequencyByAreaChartData = _.get(chartsData, 'frequencyByArea') || [];\n const frequencyByAreaChart = {\n title: !ageMode ? intl.formatMessage({id: 'mapbiomas.statistics.burned.last_year.historical_by_year.title'}) : intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.area_per_age.title'}),\n columns: _.map(frequencyByAreaChartData, 'name'),\n rows: [\n {\n name: 'Total',\n data: _.map(frequencyByAreaChartData, 'value'),\n }\n ]\n };\n\n onShowData([\n frequencyByAreaChart,\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { frequencyByArea() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\n\nexport const GET_BASE_DATA = gql`\n query CalcCoverageByYear(\n $classTreeNodeIds: [Int!]!,\n $years: [Int!]!,\n $territoriesIds: [Int!]!,\n ) {\n getCalcAcumCoverageByClasses(\n classTreeNodeIds: $classTreeNodeIds,\n years: $years,\n territoriesIds: $territoriesIds\n ) {\n acumYear {\n classTreeNodeId\n proporcionality\n total\n }\n year\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport BarChart from '../../components/BarChart';\nimport PieChart from '../../components/PieChart';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nconst CLASS_NAME_SUMMARY_MAPPER = {\n '0': ['Nenhuma', 'Zero'],\n '1': ['Uma', 'One'],\n '2': ['Duas', 'Two'],\n '3': ['Três', 'Three'],\n '4': ['Quatro', 'Four'],\n '5': ['Cinco', 'Five'],\n '> 5': ['Mais de Cinco', 'More Than Five'],\n '> 6': ['Mais de seis', 'Six or more'],\n};\n\nexport default function NumberOfClassesStatisticsContent({\n activeYear,\n baseParams,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n orderByLabelName = false,\n localeKey = 'number_of_classes_content',\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n\n const yearFormatted = Number(_.join(activeYear, ''));\n const years = [yearFormatted];\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territories = _.get(baseParams, 'territories');\n const territoryIds = _.map(territories, 'id');\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n }\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: activeClassTreeNodeIds,\n years: years,\n territoriesIds: territoryIds\n },\n skip: loadingClassTreeData\n });\n\n const isLoading = loadingClassTreeData || loading;\n\n const getTotalAreaByClassesData = () => {\n const data = _.get(baseData, 'getCalcAcumCoverageByClasses');\n\n let parsedSeries = _.map(_.get(_.first(data), 'acumYear'), (item) => {\n const { classTreeNodeId, total } = item;\n\n const nodeData = _.find(classTreeLevelsList, { id: classTreeNodeId });\n\n if (!nodeData) {\n return null;\n }\n\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n const prettyIndexOfNodeInTree = _.join(_.get(nodeData, 'positionInTree'), '.');\n\n return {\n nodeId: classTreeNodeId,\n name: `${ prettyIndexOfNodeInTree }. ${ label }`,\n position: orderByLabelName ? Number(label.match(/\\d/g).join('')) : null,\n color: _.get(nodeData, 'color'),\n total\n };\n });\n\n parsedSeries = _.map(_.compact(parsedSeries), (serie) => {\n let name = serie.name;\n\n _.each(CLASS_NAME_SUMMARY_MAPPER, (values, key) => {\n _.each(values, (value) => {\n if (_.includes(_.kebabCase(name), _.kebabCase(value))) {\n name = key;\n }\n })\n });\n\n return { ...serie, name };\n });\n\n const sortedSeries = _.sortBy(parsedSeries, orderByLabelName ? 'position' : 'name');\n\n return {\n series: sortedSeries,\n };\n };\n\n useEffect(() => {\n if (!isLoading && errorBaseData) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!isLoading && baseData) {\n setChartsData({\n 'totalAreaByClasses': getTotalAreaByClassesData(),\n });\n }\n }, [baseData, isLoading, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const numberOfClasses = () => {\n const series = _.get(chartsData, 'totalAreaByClasses.series') || [];\n\n const parsedSeries = _.map(series, (serie) => {\n return {\n name: serie.name,\n value: serie.total,\n itemStyle: {\n color: serie.color\n },\n }\n });\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id={ `mapbiomas.${ localeKey }.pie_chart_title` } /></h2>\n <PieChart\n serie={{\n title: 'Total',\n data: parsedSeries\n }}\n />\n </div>\n );\n };\n\n const areaByNumberOfClasses = () => {\n const series = _.get(chartsData, 'totalAreaByClasses.series') || [];\n\n const parsedSeries = _.map(series, (serie) => {\n return {\n name: serie.name,\n value: serie.total,\n itemStyle: {\n color: serie.color\n },\n }\n });\n\n const hideXAxisLabel = _.size(_.get(_.sample(series), 'name')) > 5;\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id={ `mapbiomas.${ localeKey }.bar_chart_title` } /></h2>\n <BarChart\n hideXAxisLabel={ hideXAxisLabel }\n categories={ _.map(series, 'name') }\n series={ [\n {\n name: 'Total',\n data: parsedSeries\n }\n ] }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const series = _.get(chartsData, 'totalAreaByClasses.series') || [];\n const parsedRows = _.map(series, (item) => {\n return {\n ...item,\n data: [_.get(item, 'total')]\n };\n });\n\n const numberOfClassesChart = {\n title: <FormattedMessage id={ `mapbiomas.${ localeKey }.bar_chart_title` } />,\n columns: ['Total'],\n rows: parsedRows\n };\n\n onShowData([\n numberOfClassesChart,\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n { numberOfClasses() }\n { areaByNumberOfClasses() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { isLoading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p>Nenhum resultado encontrado.</p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\nimport qs from 'qs';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport LinearProgress from '@material-ui/core/LinearProgress';\n\nimport BarChart from '../../components/BarChart';\nimport LineChart from '../../components/LineChart';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport { GET_CLASS_TREE_DATA } from '../../../../../../../../graphql/queries/general';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport mapClassTreeToAPIParams from '../../../../../../../../data/mapClassTreeToAPIParams';\n\nconst API_URL = 'https://dev-degradacao.geodatin.com/api/v1/degradation/brazil/statistics/';\n\nconst CLASS_TREE_KEYS_STACKED = [\n 'degradation_fire_frequency',\n 'degradation_fire_time',\n 'degradation_secondary_vegetation_age',\n];\n\nexport default function DegradationFragmentationEdgeArea({\n baseParams,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const activeBaseClassTreeNodeIds = _.get(baseParams, 'activeBaseClassTreeNodeIds');\n const hasBaseValueSelected = !_.isEmpty(activeBaseClassTreeNodeIds);\n const classTreeKey = _.get(baseParams, 'activeClassTreeOptionValue');\n const isStacked = _.includes(CLASS_TREE_KEYS_STACKED, classTreeKey);\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const degradationFragmentationIsolationValue = _.get(baseParams, 'degradationFragmentationIsolationValue');\n const territoryIds = _.map(_.get(baseParams, 'territories'), 'id');\n const urlParams = mapClassTreeToAPIParams[classTreeKey];\n const statisticsParamKey = (hasBaseValueSelected || degradationFragmentationIsolationValue) ? 'classId' : _.get(urlParams, 'paramKey');\n const ChartComponent = !isStacked ? LineChart : BarChart;\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const { data: defaultClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'default'\n },\n client: getCustomClient('8.0')\n });\n const { data: classTreeData, loading: loadingClassTreeData, } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: classTreeKey\n },\n client: getCustomClient('8.0')\n });\n const defaultClassTreeNodes = _.get(defaultClassTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const classTreeNodes = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n // useEffect(() => {\n // const sampleData = _.get(baseData, 'frequencyAccumulatedGrouped');\n\n // if ((!loading && errorBaseData) || _.isEmpty(sampleData)) {\n // setEmptyData(true);\n // } else {\n // setEmptyData(false);\n // }\n\n // if (!loadingClassTreeData && !loading && baseData) {\n // setChartsData({\n // 'accumulatedAreaFromAllPeriod': getAccumulatedAreaFromAllPeriodData(),\n // });\n // }\n // }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const getChartData = (data, valueKey) => {\n // TODO: Temp\n const years = _.range(1986, 2022);\n // const years = _.sortBy(_.uniq(_.map(data, 'year')));\n const nodeValues = _.sortBy(_.uniq(_.map(data, statisticsParamKey)));\n const nodes = (hasBaseValueSelected || degradationFragmentationIsolationValue) ? defaultClassTreeNodes : classTreeNodes;\n\n const parsedSeries = _.map(nodeValues, (nodeValue) => {\n const nodeData = _.find(nodes, { pixelValue: nodeValue });\n const values = _.map(years, (year) => {\n return _.get(_.find(data, { year, [statisticsParamKey]: nodeValue }), valueKey);\n });\n\n let label = nodeValue;\n\n if (hasBaseValueSelected || degradationFragmentationIsolationValue) {\n label = _.chain(nodeData)\n .get('i18nStrings')\n .find({ language: locale })\n .get('stringValue')\n .value();\n }\n \n return {\n nodeId: _.get(nodeData, 'id'),\n stack: isStacked && !(valueKey === 'percentage' && hasBaseValueSelected) ? 'year' : undefined,\n name: label,\n color: _.get(nodeData, 'color') || '#e74c3c',\n data:values\n };\n });\n\n return {\n series: _.compact(parsedSeries),\n categories: years,\n };\n };\n\n useEffect(() => {\n if (!classTreeNodes) {\n return;\n }\n\n let statisticsUrl = `${ API_URL }${ _.get(urlParams, 'path') }`;\n\n if (hasBaseValueSelected) {\n const nodeValue = _.first(activeBaseClassTreeNodeIds);\n const nodeData = _.find(classTreeNodes, { id: nodeValue });\n const pixelValue = _.get(nodeData, 'pixelValue');\n\n statisticsUrl += `/${ pixelValue }`;\n } else if (degradationFragmentationIsolationValue) {\n const parsedIsolationParams = qs.parse(degradationFragmentationIsolationValue);\n statisticsUrl += `/${ _.get(parsedIsolationParams, 'mediumSize') }`;\n statisticsUrl += `/${ _.get(parsedIsolationParams, 'distance') }`;\n statisticsUrl += `/${ _.get(parsedIsolationParams, 'bigSize') }`;\n }\n\n statisticsUrl += `?territoryIds=${ _.join(territoryIds) }`;\n\n setLoading(true);\n fetch(statisticsUrl, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.json())\n .then((data) => {\n setChartsData({\n 'areaChartData': getChartData(_.get(data, 'absoluteTimeSeries'), 'areaHa'),\n 'percentageChartData': getChartData(_.get(data, 'relativeTimeSeries'), 'percentage'),\n });\n setLoading(false);\n });\n }, [classTreeKey, classTreeNodes, _.join(activeBaseClassTreeNodeIds), _.join(territoryIds), degradationFragmentationIsolationValue]);\n\n const filterActiveSeries = (series) => {\n return _.filter(series, ({ nodeId }) => _.includes(activeClassTreeNodeIds, nodeId));\n };\n\n const totalAreaByClasses = () => {\n const categories = _.get(chartsData, 'areaChartData.categories') || [];\n const series = _.get(chartsData, 'areaChartData.series') || [];\n const localeKey = `mapbiomas.statistics.degradation.${ classTreeKey }.${ !hasBaseValueSelected ? 'default' : 'with_base_value' }.area_title`;\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id={ localeKey } /></h2>\n <ChartComponent\n categories={ categories }\n series={ filterActiveSeries(series) }\n mantissa={ 1 }\n />\n </div>\n );\n };\n\n const percentageAreaByClasses = () => {\n const categories = _.get(chartsData, 'percentageChartData.categories') || [];\n const series = _.get(chartsData, 'percentageChartData.series') || [];\n const ChartComponent = (!isStacked || (isStacked && hasBaseValueSelected)) ? LineChart : BarChart;\n const localeKey = `mapbiomas.statistics.degradation.${ classTreeKey }.${ !hasBaseValueSelected ? 'default' : 'with_base_value' }.proportion_title`;\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id={ localeKey } /></h2>\n <ChartComponent\n categories={ categories }\n series={ filterActiveSeries(series) }\n mantissa={ 2 }\n unit=\"%\"\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n onShowData([\n _.get(chartsData, 'percentageChartData'),\n ]);\n };\n\n const renderData = () => {\n // if (emptyData) {\n // return null;\n // }\n\n return (\n <Fragment>\n { totalAreaByClasses() }\n { percentageAreaByClasses() }\n {/* <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div> */}\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { (loading || loadingClassTreeData) &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport positionTooltipInsideDocument from '../../../../../../../../helpers/positionTooltipInsideDocument';\n\nfunction tooltipFormatter(unit, mantissa = 0, params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params[0].axisValue }</span>`;\n\n params.forEach((item) => {\n const value = _.isObject(item.data) ? item.data.value : item.data;\n\n if (value) {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa\n });\n const paramValue = `<span>${ colorSpan(item.color) } ${ item.seriesName }: ${ valueLabel }${ unit ? ` ${ unit }` : '' }</span>`;\n\n str += paramValue;\n }\n });\n\n return str;\n}\n\nconst yAxisMillionLabelFormatter = (value) => {\n return numbro(value / 1000000).format({\n thousandSeparated: true,\n mantissa: 1\n });\n};\n\nconst yAxisLabelPercentageFormatter = (value) => {\n const parsedValue = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return `${ parsedValue }%`;\n};\n\nexport default function BarChart({\n height = 200,\n isPercentage,\n categories = [],\n series = [],\n vertical = true,\n hideXAxisLabel = false,\n hasAvgMarkLine = false,\n unit,\n mantissa = 0,\n}) {\n const formatMessage = useFormatMessage();\n const maxValue = _(series)\n .map(({ data }) => {\n const sampleItem = _.first(data);\n\n if (_.get(sampleItem, 'value')) {\n return _.map(data, 'value');\n } else {\n return data;\n }\n })\n .flatten()\n .max();\n const hasMillionValue = maxValue > 1000000;\n\n let yAxisName = unit || 'Hectares';\n\n if (hasMillionValue) {\n yAxisName = unit || formatMessage('mapbiomas.statistics.million_hectares');\n }\n\n let nameGap = 55;\n let gridLeft = '30px';\n let markLine = null;\n\n if (hasMillionValue) {\n nameGap = 35;\n gridLeft = '30px';\n } else if (isPercentage) {\n nameGap = 15;\n gridLeft = '15px';\n }\n\n let xAxis = {\n type: \"category\",\n axisPointer: {\n type: \"shadow\"\n },\n axisLabel: {\n show: !hideXAxisLabel,\n fontSize: 11,\n color: \"#767676\"\n },\n axisLine: {\n color: \"#DDD\"\n },\n data: categories\n };\n let yAxis = {\n name: !isPercentage ? yAxisName : null,\n nameLocation: 'middle',\n nameRotate: 90,\n nameGap,\n nameTextStyle: {\n fontSize: 11,\n color: \"#767676\"\n },\n max: isPercentage ? 100 : undefined,\n axisTick: {\n show: false\n },\n axisLine: {\n color: \"#DDD\"\n },\n splitLine: {\n lineStyle: {\n color: \"rgba(0, 0, 0, 0.05)\"\n }\n },\n axisLabel: {\n formatter: (value) => {\n if (isPercentage) {\n return yAxisLabelPercentageFormatter(value);\n } else if (hasMillionValue) {\n return yAxisMillionLabelFormatter(value);\n } else {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return valueLabel;\n }\n },\n fontSize: 11,\n color: \"#767676\"\n }\n };\n\n if (!vertical) {\n let tempValue = xAxis;\n xAxis = {\n ...yAxis,\n nameRotate: undefined,\n nameGap: 25,\n axisLabel: {\n show: false\n },\n axisTick: {\n show: false\n },\n };\n yAxis = tempValue;\n }\n\n if (hasAvgMarkLine) {\n markLine = {\n symbol: [null, null],\n lineStyle: {\n type: 'solid'\n },\n label: {\n fontSize: 11,\n color: '#767676',\n formatter: (params) => {\n const { value } = params;\n\n if (isPercentage) {\n return yAxisLabelPercentageFormatter(value);\n } else if (hasMillionValue) {\n return yAxisMillionLabelFormatter(value);\n } else {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n\n return valueLabel;\n }\n }\n },\n data: [{ type: 'average', name: 'Média' }]\n };\n }\n\n return (\n <ReactEcharts\n style={ { height } }\n option={ {\n xAxis,\n yAxis,\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download'\n }\n }\n },\n tooltip: {\n position: positionTooltipInsideDocument,\n appendToBody: true,\n // confine: true,\n // position: [10, 10],\n // position: 'right',\n // position: function (point, params, dom, rect, size) {\n // console.log('point', point);\n // // fixed at top\n // return [0, 0];\n // // return {\n // // right: point[0],\n // // top: -10\n // // };\n // },\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 13\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n trigger: \"axis\",\n formatter: tooltipFormatter.bind(this, unit, mantissa),\n },\n grid: {\n top: '16px',\n right: !hasAvgMarkLine ? '10px' : '20px',\n bottom: '16px',\n left: gridLeft,\n containLabel: true\n },\n series: _.map(series, (serie) => {\n return {\n ...serie,\n type: 'bar',\n smooth: true,\n markLine\n };\n }),\n // toolbox: {\n // feature: {\n // saveAsImage: {\n // name: 'MapBiomas',\n // title: 'Download',\n // }\n // }\n // },\n } }\n notMerge={ true }\n />\n );\n}\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\nimport numbro from 'numbro';\nimport qs from 'qs';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport LinearProgress from '@material-ui/core/LinearProgress';\n\nimport BarChart from '../../components/BarChart';\nimport LineChart from '../../components/LineChart';\nimport PieChart from '../../components/PieChart';\nimport DegradationMultipleBarChart from '../../components/DegradationMultipleBarChart';\n\nimport styles from '../../StatisticsBox.module.scss';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport { GET_CLASS_TREE_DATA } from '../../../../../../../../graphql/queries/general';\n\nimport getCustomClient from '../../../../../../../../lib/getCustomClient';\n\nimport mapClassTreeToAPIParams from '../../../../../../../../data/mapClassTreeToAPIParams';\n\nconst API_URL = 'https://dev-degradacao.geodatin.com/api/v1/degradation/brazil/statistics/';\n\nconst CLASS_TREE_KEYS_STACKED = [\n 'degradation_fire_frequency',\n 'degradation_fire_time',\n 'degradation_secondary_vegetation_age',\n];\n\nconst formatNumber = (value, mantissa = 0) => {\n if (_.isNil(value)) { return '-'; }\n\n return numbro(value).format({\n thousandSeparated: true,\n mantissa\n });\n};\n\nexport default function DegradationMultipleContent({\n activeYear,\n baseParams,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n const activeBaseClassTreeNodeIds = _.get(baseParams, 'activeBaseClassTreeNodeIds');\n const hasBaseValueSelected = !_.isEmpty(activeBaseClassTreeNodeIds);\n const classTreeKey = _.get(baseParams, 'activeClassTreeOptionValue');\n const isStacked = _.includes(CLASS_TREE_KEYS_STACKED, classTreeKey);\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const degradationCrossingValues = _.get(baseParams, 'degradationCrossingValues');\n const degradationCrossingParsedParams = _.get(degradationCrossingValues, 'parsedParams');\n const territoryIds = _.map(_.get(baseParams, 'territories'), 'id');\n const urlParams = mapClassTreeToAPIParams[classTreeKey];\n const statisticsParamKey = !hasBaseValueSelected ? _.get(urlParams, 'paramKey') : 'classId';\n const ChartComponent = !isStacked ? LineChart : BarChart;\n\n const [chartsData, setChartsData] = useState(null);\n // console.log(\"🚀 ~ chartsData:\", chartsData)\n const [emptyData, setEmptyData] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const { data: defaultClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'default'\n },\n client: getCustomClient('8.0')\n });\n const { data: classTreeData, loading: loadingClassTreeData, } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: classTreeKey\n },\n client: getCustomClient('8.0')\n });\n const defaultClassTreeNodes = _.get(defaultClassTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const classTreeNodes = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n // useEffect(() => {\n // const sampleData = _.get(baseData, 'frequencyAccumulatedGrouped');\n\n // if ((!loading && errorBaseData) || _.isEmpty(sampleData)) {\n // setEmptyData(true);\n // } else {\n // setEmptyData(false);\n // }\n\n // if (!loadingClassTreeData && !loading && baseData) {\n // setChartsData({\n // 'accumulatedAreaFromAllPeriod': getAccumulatedAreaFromAllPeriodData(),\n // });\n // }\n // }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const getChartData = (data, valueKey) => {\n const years = _.sortBy(_.uniq(_.map(data, 'year')));\n const nodeValues = _.sortBy(_.uniq(_.map(data, statisticsParamKey)));\n const nodes = hasBaseValueSelected ? defaultClassTreeNodes : classTreeNodes;\n\n const parsedSeries = _.map(nodeValues, (nodeValue) => {\n const nodeData = _.find(nodes, { pixelValue: nodeValue });\n const values = _.map(years, (year) => {\n return _.get(_.find(data, { year, [statisticsParamKey]: nodeValue }), valueKey);\n });\n\n let label = nodeValue;\n\n if (hasBaseValueSelected) {\n label = _.chain(nodeData)\n .get('i18nStrings')\n .find({ language: locale })\n .get('stringValue')\n .value();\n }\n \n return {\n nodeId: _.get(nodeData, 'id'),\n stack: isStacked ? 'year' : undefined,\n name: label,\n color: _.get(nodeData, 'color') || '#e74c3c',\n data:values\n };\n });\n\n return {\n series: _.compact(parsedSeries),\n categories: years,\n };\n };\n\n useEffect(() => {\n if (!classTreeNodes) {\n return;\n }\n\n // const crossingParams = _.reduce(_.omit(degradationCrossingValues, '__typename'), (result, value, key) => {\n // if (value) {\n // result[_.get(mapClassTreeToAPIParams[key], 'paramKey')] = value;\n // }\n\n // return result;\n // }, {});\n const parsedParams = {\n initiative: 'brazil',\n year: activeYear,\n territoryIds: territoryIds,\n // ...(crossingParams)\n };\n\n let statisticsUrl = 'https://dev-degradacao.geodatin.com/api/v1/degradation/brazil/statistics/multiple';\n statisticsUrl += `?${ qs.stringify(parsedParams, { arrayFormat: 'repeat' }) }`;\n statisticsUrl += `&${ degradationCrossingParsedParams }`;\n\n // console.log(\"🚀 ~ DegradationMultipleContent ~ parsedParams:\", parsedParams)\n // if (hasBaseValueSelected) {\n // const nodeValue = _.first(activeBaseClassTreeNodeIds);\n // const nodeData = _.find(classTreeNodes, { id: nodeValue });\n // const pixelValue = _.get(nodeData, 'pixelValue');\n\n // statisticsUrl += `/${ pixelValue }`;\n // }\n\n // statisticsUrl += `?territoryIds=${ _.join(territoryIds) }`;\n\n setLoading(true);\n fetch(statisticsUrl, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n })\n .then((response) => response.json())\n .then((data) => {\n // console.log(\"🚀 ~ .then ~ data:\", data)\n setChartsData({\n 'totalData': _.get(data, 'total'),\n 'classData': _.get(data, 'degradationByClass'),\n // 'areaChartData': getChartData(_.get(data, 'absoluteTimeSeries'), 'areaHa'),\n // 'percentageChartData': getChartData(_.get(data, 'relativeTimeSeries'), 'percentage'),\n });\n setLoading(false);\n });\n }, [degradationCrossingParsedParams, _.join(territoryIds), activeYear]);\n\n const filterActiveSeries = (series) => {\n return _.filter(series, ({ nodeId }) => _.includes(activeClassTreeNodeIds, nodeId));\n };\n\n const totalChart = () => {\n const data = _.get(chartsData, 'totalData') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }>Ãrea de vegetação nativa afetada pelos vetores</h2>\n <h3 className={ styles.bigNumber }>{ formatNumber(_.get(data, 'areaHa') / 1000000, 2) } Mha</h3>\n <p className={ styles.bigNumberInfo }>({ formatNumber(_.get(data, 'percentage'), 1) }% do total)</p>\n <PieChart\n unit=\"ha\"\n serie={{\n title: 'Totais',\n data: [\n {\n name: 'Ãrea afetada',\n value: _.get(data, 'areaHa'),\n itemStyle: {\n color: '#f9ca24'\n },\n },\n {\n name: 'Ãrea não afetada',\n value: _.get(data, 'referenceAreaHa') - _.get(data, 'areaHa'),\n itemStyle: {\n color: '#6ab04c'\n },\n },\n ]\n }}\n />\n </div>\n );\n };\n\n const areaByClasses = () => {\n const data = _.get(chartsData, 'classData') || [];\n const colors = [\n '#35003c',\n '#55ff4a',\n '#403fd9',\n '#49d239',\n '#002eaa',\n '#e4c900',\n '#00a0ff',\n '#c76a00',\n '#fba8ff',\n '#ffba90',\n ];\n const categories = _.map(data, (item) => {\n const node = _.find(defaultClassTreeNodes, { pixelValue: item.classId });\n\n return _.chain(node)\n .get('i18nStrings')\n .find({ language: locale })\n .get('stringValue')\n .value();\n });\n const parsedSeriesAData = _.map(data, (item, index) => {\n const node = _.find(defaultClassTreeNodes, { pixelValue: item.classId });\n\n return {\n type: 'classValue',\n value: item.areaHa,\n itemStyle: {\n color: _.get(node, 'color') || colors[index],\n },\n };\n });\n const parsedSeriesA = {\n name: 'Ãrea',\n stack: 'value',\n data: parsedSeriesAData,\n type: 'bar',\n };\n const parsedSeriesBData = _.map(data, (item) => {\n return {\n type: 'referenceValue',\n value: item.referenceAreaHa - item.areaHa,\n realValue: item.referenceAreaHa,\n itemStyle: {\n color: '#DEDEDE',\n decal: {\n color: 'rgba(0, 0, 0, 0.5)',\n dashArrayX: [1, 0],\n dashArrayY: [1, 10],\n symbolSize: 1,\n rotation: Math.PI / 6,\n },\n },\n };\n });\n const parsedSeriesB = {\n name: 'Ãrea de referência',\n stack: 'value',\n data: parsedSeriesBData,\n type: 'bar',\n };\n const series = [parsedSeriesA, parsedSeriesB];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.anual_statistics_content.area_title\" /></h2>\n <DegradationMultipleBarChart\n categories={ categories }\n series={ series }\n mantissa={ 1 }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n onShowData([\n _.get(chartsData, 'percentageChartData'),\n ]);\n };\n\n const renderData = () => {\n // if (emptyData) {\n // return null;\n // }\n\n return (\n <Fragment>\n { totalChart() }\n { areaByClasses() }\n {/*\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div> */}\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n <div className={ styles.fireModeContentBoxExtra }>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: formatMessage('mapbiomas.warning.degradation_fragmentation.multiple.statistics_note')\n }}\n />\n </div>\n { (loading || loadingClassTreeData) &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { !loading && _.get(chartsData, 'totalData') && renderData() }\n </Fragment>\n );\n}\n","import React, { useState } from 'react';\nimport classnames from 'classnames';\nimport _ from 'lodash';\n\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport Collapse from '@material-ui/core/Collapse';\nimport IconButton from '@material-ui/core/IconButton';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\n\nimport AnnualStatisticsContent from './content/AnnualStatisticsContent';\nimport AccumulatedStatisticsContent from './content/AccumulatedStatisticsContent';\nimport AccumulatedDistributedStatisticsContent from './content/AccumulatedDistributedStatisticsContent';\nimport CoverageMainStatisticsContent from './content/CoverageMainStatisticsContent';\nimport CoverageMainStatisticsContentCustom from './content/CoverageMainStatisticsContentCustom';\nimport FireAnnualTotalBurnedStatisticsContent from './content/FireAnnualTotalBurnedStatisticsContent';\nimport FireMonthlyStatisticsContent from './content/FireMonthlyStatisticsContent';\nimport FireAccumulatedStatisticsContent from './content/FireAccumulatedStatisticsContent';\nimport FrequencyStatisticsContent from './content/FrequencyStatisticsContent';\nimport FrequencyByYearStatisticsContent from './content/FrequencyByYearStatisticsContent';\nimport NumberOfClassesStatisticsContent from './content/NumberOfClassesStatisticsContent';\nimport DegradationFragmentationEdgeArea from './content/DegradationFragmentationEdgeArea';\nimport DegradationMultipleContent from './content/DegradationMultipleContent';\n\nimport InfoTooltip from '../../../../../../components/InfoTooltip';\n\nimport styles from './StatisticsBox.module.scss';\n\nexport default function StatisticsBox({\n activeModule,\n activeModuleContent,\n activeYear,\n baseParams,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData = () => {},\n headerIsVisible,\n ruralPropertyCode,\n geometry,\n}) {\n const isMobile = useMediaQuery('(max-width: 768px)');\n const degradationType = _.get(baseParams, 'degradationType');\n const isOnDegradationCrossingMode = degradationType === 'crossing';\n\n const intl = useIntl()\n\n const mapClassTreeKeyToTooltip = {\n 'fire_annual_total_burned': intl.formatMessage({id: 'mapbiomas.statistics.burned.annual_total.charts.tooltip'}),\n 'fire_monthly': intl.formatMessage({id: 'mapbiomas.statistics.burned.monthly.charts.tooltip'}),\n 'fire_frequency': intl.formatMessage({id: 'mapbiomas.statistics.burned.frequency.charts.tooltip'}),\n 'fire_accumulated': intl.formatMessage({id: 'mapbiomas.statistics.burned.accumulated.charts.tooltip'}),\n };\n\n const mapModuleKeyToCustomVersion = {\n 'soil': '7.1',\n 'degradation': '8.0',\n 'sentinel': '8.0',\n 'fire': '8.0',\n };\n\n const defaultContentParams = {\n activeYear,\n baseParams,\n classTreeKey,\n statisticsDataIsVisible,\n onShowData,\n clientType: mapModuleKeyToCustomVersion[activeModule],\n ruralPropertyCode,\n geometry,\n };\n const titleTooltip = mapClassTreeKeyToTooltip[classTreeKey];\n\n const [isVisible, setIsVisible] = useState(true);\n\n const toggleVisibility = () => setIsVisible(!isVisible);\n\n let CoverageMainStatisticsComponent = CoverageMainStatisticsContent;\n\n if (baseParams.crossingEnabled || ruralPropertyCode || geometry) {\n CoverageMainStatisticsComponent = CoverageMainStatisticsContentCustom;\n }\n\n return (\n <div id=\"statistics\" className={ classnames(styles.wrapper, {\n [styles.wrapperWithHeader]: headerIsVisible,\n [styles.wrapperIsHidden]: isMobile,\n }) }>\n <header className={ styles.header }>\n <h2 className={ styles.title }>\n <span><FormattedMessage id=\"mapbiomas.statistics.title\" /></span>\n { titleTooltip && <InfoTooltip text={ titleTooltip } /> }\n </h2>\n <IconButton\n className={ classnames(styles.closeButton, {\n [styles.closeButtonCollapse]: isVisible\n }) }\n onClick={ toggleVisibility }\n id=\"statistics-toggle\"\n >\n <ExpandLessIcon />\n </IconButton>\n </header>\n <Collapse id=\"statistics-graphics\" in={ isVisible } timeout={ 500 } className={ styles.collapseWrapper }>\n <div className={ styles.content }>\n { activeModuleContent === 'sentinel:sentinel_coverage' &&\n <div className={ styles.fireModeContentBoxExtra }>\n <h2 className={ styles.fireModeContentBoxTitle }><FormattedMessage id=\"mapbiomas.warning.sentinel_coverage.extra_note.title\" /></h2>\n <div\n className={ styles.fireModeContentBoxTextWrapper }\n dangerouslySetInnerHTML={{\n __html: intl.formatMessage({id: 'mapbiomas.warning.sentinel_coverage.extra_note.content'})\n }}\n />\n </div>\n }\n\n { _.includes(activeModuleContent, 'mining') && <AnnualStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'quality_of_pasture_data') && <AnnualStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'irrigation') && <AnnualStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'temporal_analysis') && <NumberOfClassesStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'deforestation') && classTreeKey === 'deforestation_annual_by_class' && <AnnualStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'deforestation') && classTreeKey === 'deforestation_accumulated_by_class' && <FireAccumulatedStatisticsContent localeKey=\"deforestation\" { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'deforestation') && classTreeKey === 'deforestation_frequency_main' && <FrequencyStatisticsContent deforestationMode { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'regeneration') && classTreeKey === 'regeneration_annual_by_class' && <AnnualStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'regeneration') && classTreeKey === 'regeneration_accumulated_by_class' && <AccumulatedStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'regeneration') && classTreeKey === 'regeneration_age_main' && <NumberOfClassesStatisticsContent orderByLabelName localeKey=\"regeneration_number_of_classes_content\" { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_monthly' && <FireMonthlyStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_frequency' && <FrequencyStatisticsContent fireMode { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_accumulated_by_total_burned' && <FireAccumulatedStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_accumulated_by_class' && <AccumulatedDistributedStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_accumulated_by_natural_anthropic' && <AccumulatedDistributedStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_annual_by_total_burned' && <FireAnnualTotalBurnedStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_annual_by_class' && <CoverageMainStatisticsContent chartType=\"bar\" { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_annual_by_natural_anthropic' && <CoverageMainStatisticsContent chartType=\"bar\" { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_last' && <FrequencyByYearStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'fire') && classTreeKey === 'fire_size' && <CoverageMainStatisticsContent chartType=\"bar\" { ...defaultContentParams } /> }\n { activeModuleContent === 'coverage:coverage_main' && <CoverageMainStatisticsComponent { ...defaultContentParams } /> }\n { activeModuleContent === 'sentinel:sentinel_coverage' && <CoverageMainStatisticsContent { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'soil') && classTreeKey === 'soil_total_carbon' && <CoverageMainStatisticsContent hasSingleHistoricalData hasCustomCOSValues valueMantissa={ 1 } { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'soil') && classTreeKey === 'soil_by_class' && <CoverageMainStatisticsContent unit=\"GtCOS\" valueMantissa={ 1 } chartType=\"bar\" { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'soil') && classTreeKey === 'soil_natural_or_anthropic' && <CoverageMainStatisticsContent unit=\"GtCOS\" valueMantissa={ 1 } { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'degradation') && !isOnDegradationCrossingMode && <DegradationFragmentationEdgeArea { ...defaultContentParams } /> }\n { _.includes(activeModuleContent, 'degradation') && isOnDegradationCrossingMode && <DegradationMultipleContent { ...defaultContentParams } /> }\n </div>\n </Collapse>\n </div>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CATEGORIES_OF_OBJECT_TREE_NODES = gql`\n query GetCategoriesOfObjectTreeNodes($objectTreeNodeIds: [Int!]!) {\n geospatialObjectCategoryTreeNodesList(ids: $objectTreeNodeIds) {\n id\n categoryId\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData(\n $territoryIds: [Int!]!,\n $classTreeKey: String!,\n $activeClassTreeNodeIds: [Int!]!,\n $hasObjectFilter: Boolean!,\n $activeObjectCategoryIds: [Int!],\n $bufferId: Int\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n i18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\n mvClassTreeLevelsUi (ids: $activeClassTreeNodeIds) {\n id\n classId\n color\n positionInTree\n level\n childrenIds\n parentId\n defaultName\n i18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n }\n\n classTreeNode {\n coverageClassificationDataByTree(territoryId: $territoryIds) @skip(if: $hasObjectFilter) {\n territoryId\n year\n areaInHa\n }\n\n coverageClassificationDataByTreeListWithObjectIntersection: coverageClassificationDataByTree(\n territoryId: $territoryIds,\n\t\t\t\t\t\tobjectCategoryId: $activeObjectCategoryIds,\n\t\t\t\t\t\tbufferId: $bufferId\n ) @include(if: $hasObjectFilter) {\n territoryId\n year\n areaInHa\n }\n }\n }\n }\n }\n`\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\nimport { FormattedMessage } from 'react-intl';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport LineChart from '../../../StatisticsBox/components/LineChart';\nimport PieChart from '../../../StatisticsBox/components/PieChart';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport styles from '../../InfrastructureStatisticsBox.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CATEGORIES_OF_OBJECT_TREE_NODES,\n} from './query';\n\nconst formatNumber = (value) => {\n return numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n};\n\nexport default function InfrastructureMainStatisticsContent({\n activeYear,\n baseParams,\n statisticsDataIsVisible,\n onShowData,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n\n const [chartsData, setChartsData] = useState(null);\n\n const territories = _.get(baseParams, 'territories');\n const yearRange = _.map(_.split(_.get(baseParams, 'yearRange'), '-'), Number);\n const years = _.range(_.first(yearRange), _.last(yearRange) + 1);\n const territoryIds = _.map(territories, 'id');\n const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const activeClassTreeOptionValue = _.get(baseParams, 'activeClassTreeOptionValue');\n const activeObjectTreeNodeIds = _.get(baseParams, 'activeObjectTreeNodeIds');\n const bufferId = _.get(baseParams, 'buffer');\n const objectTreeNodesData = useQuery(GET_CATEGORIES_OF_OBJECT_TREE_NODES, {\n variables: {\n objectTreeNodeIds: activeObjectTreeNodeIds\n }\n });\n const activeObjectCategoryIds = _.map(_.get(objectTreeNodesData, 'data.geospatialObjectCategoryTreeNodesList'), 'categoryId');\n\n if (!activeObjectCategoryIds) {\n return null;\n }\n\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryIds,\n activeClassTreeNodeIds,\n hasObjectFilter: true,\n activeObjectCategoryIds,\n bufferId,\n classTreeKey: activeClassTreeOptionValue,\n },\n skip: _.isEmpty(territoryIds) || !activeClassTreeOptionValue,\n });\n\n const classTree = _.get(baseData, 'classTreeByKey');\n const isEmpty = _(_.get(baseData, 'classTreeByKey[0].mvClassTreeLevelsUi'))\n .map('classTreeNode.coverageClassificationDataByTreeListWithObjectIntersection')\n .flatten()\n .compact()\n .value().length === 0;\n\n const parseChartsData = () => {\n const classTreeLevelsList = _.get(classTree, '[0].mvClassTreeLevelsUi');\n const activeClassTreeLevelsList = _.filter(classTreeLevelsList, (item) => {\n return _.includes(activeClassTreeNodeIds, item.id);\n });\n const classTreeLevelsListOnLevel1 = _.filter(activeClassTreeLevelsList, { level: 1 });\n\n const classViewChartData = _.map(classTreeLevelsListOnLevel1, (classTree) => {\n const stringList = _.get(classTree, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const valueItems = _.get(classTree, 'classTreeNode.coverageClassificationDataByTreeListWithObjectIntersection');\n const filteredValueItems = _.filter(valueItems, { year: activeYear });\n const value = _.sumBy(filteredValueItems, 'areaInHa');\n\n return {\n name: _.get(selectedString, 'stringValue'),\n value,\n itemStyle: {\n color: _.get(classTree, 'color')\n }\n }\n });\n\n const historicalSeriesChartData = _.map(activeClassTreeLevelsList, (classTree) => {\n const stringList = _.get(classTree, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const name = `${ _.join(_.get(classTree, 'positionInTree'), '.') }. ${ _.get(selectedString, 'stringValue') }`;\n const color = _.get(classTree, 'color');\n const level = _.get(classTree, 'level');\n const valueItems = _.get(classTree, 'classTreeNode.coverageClassificationDataByTreeListWithObjectIntersection');\n const data = _.map(years, (year) => {\n const filteredValueItems = _.filter(valueItems, { year: year });\n const value = _.sumBy(filteredValueItems, 'areaInHa');\n\n return !_.isEmpty(filteredValueItems) ? value : null;\n });\n\n return {\n name,\n color,\n data,\n level,\n padding: level * 12,\n };\n });\n\n return {\n years,\n classViewChartData,\n historicalSeriesChartData,\n };\n };\n\n useEffect(() => {\n if (!loadingBaseData && baseData) {\n // parseChartsData();\n setChartsData(parseChartsData());\n }\n // }, [baseData, loadingBaseData, loadingClassTreeData, activeClassesLevelsListItems, activeYear]);\n }, [baseData, loadingBaseData, activeYear]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const renderClassViewChart = () => {\n // const { classViewChartData } = parseChartsData();\n // const data = classViewChartData;\n const data = _.get(chartsData, 'classViewChartData');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title\" values={{ year: activeYear }} /></h2>\n <PieChart\n serie={{\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.unit'),\n data\n }}\n />\n </div>\n );\n };\n\n const renderHistoricalSeriesChart = () => {\n const years = _.get(chartsData, 'years');\n const data = _.get(chartsData, 'historicalSeriesChartData');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title\" /></h2>\n <LineChart\n categories={ years }\n series={ data }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const classViewChartData = _.get(chartsData, 'classViewChartData');\n const classViewChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title', { year: activeYear }),\n columns: ['Total'],\n rows: _.map(classViewChartData, (item) => {\n return {\n name: _.get(item, 'name'),\n data: [_.get(item, 'value')],\n };\n }),\n };\n\n const years = _.get(chartsData, 'years');\n const historicalSeriesChartData = _.get(chartsData, 'historicalSeriesChartData');\n const historicalSeriesChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title'),\n columns: years,\n rows: historicalSeriesChartData,\n };\n\n onShowData([\n classViewChart,\n historicalSeriesChart,\n ]);\n };\n\n return (\n <Fragment>\n { loadingBaseData &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { !isEmpty &&\n <Fragment>\n { renderClassViewChart() }\n { renderHistoricalSeriesChart() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div>\n </Fragment>\n }\n { isEmpty &&\n <div className={ styles.infoBox }>\n <p>Nenhum resultado encontrado.</p>\n </div>\n }\n </Fragment>\n );\n}\n","import React, { useState } from 'react';\nimport classnames from 'classnames';\nimport _ from 'lodash';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport Collapse from '@material-ui/core/Collapse';\nimport IconButton from '@material-ui/core/IconButton';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\n\nimport InfrastructureMainStatisticsContent from './content/InfrastructureMainStatisticsContent';\n\nimport styles from './InfrastructureStatisticsBox.module.scss';\n\nexport default function InfrastructureStatisticsBox({\n activeYear,\n baseParams,\n statisticsDataIsVisible,\n onShowData = () => {},\n headerIsVisible,\n}) {\n const activeObjectTreeNodeIds = _.get(baseParams, 'activeObjectTreeNodeIds');\n const bufferId = _.get(baseParams, 'buffer');\n\n if (_.isEmpty(activeObjectTreeNodeIds) || bufferId === 0) {\n return null;\n }\n\n const isMobile = useMediaQuery('(max-width: 768px)');\n\n const defaultContentParams = {\n activeYear,\n baseParams,\n statisticsDataIsVisible,\n onShowData\n };\n\n const [isVisible, setIsVisible] = useState(true);\n\n const toggleVisibility = () => setIsVisible(!isVisible);\n\n return (\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperWithHeader]: headerIsVisible,\n [styles.wrapperIsHidden]: isMobile,\n }) }>\n <header className={ styles.header }>\n <h2 className={ styles.title }>\n <span><FormattedMessage id=\"mapbiomas.statistics.title\" /></span>\n </h2>\n <IconButton\n className={ classnames(styles.closeButton, {\n [styles.closeButtonCollapse]: isVisible\n }) }\n onClick={ toggleVisibility }\n >\n <ExpandLessIcon />\n </IconButton>\n </header>\n <Collapse in={ isVisible } timeout={ 500 } className={ styles.collapseWrapper }>\n <div className={ styles.content }>\n <InfrastructureMainStatisticsContent { ...defaultContentParams } />\n </div>\n </Collapse>\n </div>\n );\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport { CSVLink } from 'react-csv';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Fade from '@material-ui/core/Fade';\nimport IconButton from '@material-ui/core/IconButton';\n\nimport StickyTable from '../DashboardDialog/components/StickyTable';\n\nimport styles from './StatisticsDataTableBox.module.scss';\n\nfunction DataTableBox({\n title,\n columns,\n rows,\n mantissa,\n}) {\n const renderDownloadTableLink = () => {\n if (_.isEmpty(columns) || _.isEmpty(rows)) {\n return null;\n }\n\n let headers = [\n { key: 'class', label: 'Classe' },\n ];\n\n _.each(columns, (column) => {\n headers.push({ key: _.toString(column), label: _.toString(column) });\n });\n\n const parsedData = _(rows)\n .map((serie) => {\n let rowData = { class: _.get(serie, 'name') };\n\n _.each(_.get(serie, 'data'), (value, index) => {\n rowData[_.toString([columns[index]])] = value;\n });\n\n return rowData;\n })\n .flatten()\n .value();\n\n return (\n <CSVLink\n data={ parsedData }\n headers={ headers }\n className={ styles.csvDownloadLink }\n filename=\"MapBiomas - Tabela de Dados.csv\"\n >\n <CloudDownloadIcon />\n <span>Download</span>\n </CSVLink>\n );\n };\n\n return (\n <div className={ styles.dataTableWrapper }>\n <div className={ styles.tableHeader }>\n <h3 className={ styles.tableTitle }>\n <b>{ title }</b>\n </h3>\n { renderDownloadTableLink() }\n </div>\n <StickyTable\n columns={ columns }\n rows={ rows }\n mantissa={ mantissa }\n />\n </div>\n );\n}\n\nexport default function StatisticsDataTableBox({\n headerIsVisible,\n data,\n onClose = () => {}\n}) {\n return (\n <Fade in={ !!data }>\n <div className={ classnames(styles.wrapper, {\n [styles.wrapperWithHeader]: headerIsVisible,\n }) }>\n <header className={ styles.header }>\n <h2 className={ styles.title }>\n <span><FormattedMessage id=\"mapbiomas.dashboard.generic.data_table.title\" /></span>\n </h2>\n <IconButton\n className={ styles.closeButton }\n onClick={ onClose }\n >\n <CloseIcon />\n </IconButton>\n </header>\n <div className={ styles.content }>\n { _.map(data, (item, index) => {\n return (\n <DataTableBox\n key={ `data-table-${ _.kebabCase(_.get(item, 'title')) }-${ index }` }\n title={ _.get(item, 'title') }\n columns={ _.get(item, 'columns') }\n rows={ _.get(item, 'rows') }\n mantissa={ _.get(item, 'mantissa') }\n />\n );\n }) }\n </div>\n </div>\n </Fade>\n );\n}\n","import React from 'react'\nimport Joyride from 'react-joyride';\nimport { FormattedMessage, injectIntl } from 'react-intl';\n\nclass TutorialTour extends React.Component {\n // TODO: Update tutorial steps\n state = {\n steps: [\n {\n target: '#modules',\n content: <FormattedMessage id=\"mapbiomas.tutorial.modules\" />,\n disableBeacon: true,\n },\n {\n target: '#module-main-options',\n content: <FormattedMessage id=\"mapbiomas.tutorial.module-main-options\" />,\n disableBeacon: true,\n },\n {\n target: '#translation-button',\n content: <FormattedMessage id=\"mapbiomas.tutorial.translation-button\" />,\n disableBeacon: true,\n },\n {\n target: '#logo',\n content: <FormattedMessage id=\"mapbiomas.tutorial.logo\" />,\n disableBeacon: true,\n },\n {\n target: '#toggle-header-button',\n content: <FormattedMessage id=\"mapbiomas.tutorial.toggle-header-button\" />,\n disableBeacon: true,\n },\n {\n target: '#coverage_main',\n content: <FormattedMessage id=\"mapbiomas.tutorial.coverage-main\" />,\n disableBeacon: true,\n },\n {\n target: '#coverage_changes',\n content: <FormattedMessage id=\"mapbiomas.tutorial.coverage-changes\" />,\n disableBeacon: true,\n },\n {\n target: '#coverage_quality',\n content: <FormattedMessage id=\"mapbiomas.tutorial.coverage-quality\" />,\n disableBeacon: true,\n },\n {\n target: '#territorial-cut',\n content: <FormattedMessage id=\"mapbiomas.tutorial.territorial-cut\" />,\n disableBeacon: true\n },\n {\n target: '#landowner-cut',\n content: <FormattedMessage id=\"mapbiomas.tutorial.landowner-cut\" />,\n disableBeacon: true\n },\n {\n target: '#multiple-territory-checkbox',\n content: <FormattedMessage id=\"mapbiomas.tutorial.multiple-territory\" />,\n disableBeacon: true\n },\n {\n target: '#legend-t-0',\n content: <FormattedMessage id=\"mapbiomas.tutorial.legend-class\" />,\n disableBeacon: true\n },\n {\n target: '#legend-t-1',\n content: <FormattedMessage id=\"mapbiomas.tutorial.legend-natural-use\" />,\n disableBeacon: true\n },\n {\n target: '#share-button',\n content: <FormattedMessage id=\"mapbiomas.tutorial.share-button\" />,\n disableBeacon: true\n },\n {\n target: '.leaflet-control-zoom-in',\n content: <FormattedMessage id=\"mapbiomas.tutorial.control-zoom-in\" />,\n disableBeacon: true\n },\n {\n target: '.leaflet-control-zoom-out',\n content: <FormattedMessage id=\"mapbiomas.tutorial.control-zoom-out\" />,\n disableBeacon: true\n },\n {\n target: '#box-zoom-button',\n content: <FormattedMessage id=\"mapbiomas.tutorial.box-zoom\" />,\n disableBeacon: true\n },\n {\n target: '#info-point',\n content: <FormattedMessage id=\"mapbiomas.tutorial.info-point\" />,\n disableBeacon: true\n },\n {\n target: '#opacity-box',\n content: <FormattedMessage id=\"mapbiomas.tutorial.opacity-box\" />,\n disableBeacon: true\n },\n {\n target: '#layers-box',\n content: <FormattedMessage id=\"mapbiomas.tutorial.layers-box\" />,\n disableBeacon: true\n },\n {\n target: '#basemap-box',\n content: <FormattedMessage id=\"mapbiomas.tutorial.basemap-box\" />,\n disableBeacon: true\n },\n // {\n // target: '#coordinates-search',\n // content: <FormattedMessage id=\"mapbiomas.tutorial.coordinate-search\" />,\n // disableBeacon: true\n // },\n {\n target: '#year-timeline',\n content: <FormattedMessage id=\"mapbiomas.tutorial.year-timeline\" />,\n disableBeacon: true\n },\n {\n target: '#statistics',\n content: <FormattedMessage id=\"mapbiomas.tutorial.statistics\" />,\n disableBeacon: true\n },\n {\n target: '#statistics-toggle',\n content: <FormattedMessage id=\"mapbiomas.tutorial.statistics-toggle\" />,\n disableBeacon: true\n },\n {\n target: '#statistics-graphics',\n content: <FormattedMessage id=\"mapbiomas.tutorial.statistics-graphics\" />,\n disableBeacon: true\n },\n {\n target: '#data-view-button',\n content: <FormattedMessage id=\"mapbiomas.tutorial.data-view-button\" />,\n disableBeacon: true,\n },\n ],\n disableScrolling: true,\n };\n\n\n\n render () {\n const { steps } = this.state\n\n return (\n <div className=\"app\">\n <Joyride\n steps={steps}\n callback={({action, index}) => {\n index === 26 && this.setState({\n ...this.state,\n disableScrolling: false,\n })\n action === \"reset\" && this.props.closeTutorial()\n }}\n run={this.props.coverageTutorial}\n showSkipButton={true}\n disableScrolling={this.state.disableScrolling}\n floaterProps={{\n disableAnimation: true\n }}\n locale={{\n close: <FormattedMessage id=\"mapbiomas.tutorial.controls.next\" />,\n skip: <FormattedMessage id=\"mapbiomas.tutorial.controls.skip\" />,\n back: <FormattedMessage id=\"mapbiomas.tutorial.controls.back\" />\n }}\n styles={{\n options: {\n primaryColor: \"#16a085\",\n zIndex: 4000\n },\n buttonClose: {\n display: \"none\"\n },\n buttonBack:{\n marginRight: 16\n }\n }}\n />\n </div>\n );\n }\n}\n\nexport default injectIntl(TutorialTour)\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n app @client {\n activeYear\n activeModule\n activeModuleContent\n baseParams {\n groupType\n degradationType\n degradationFragmentationIsolationValue\n degradationCrossingValues {\n degradation_fragmentation_edge_area\n degradation_fragmentation_fragment_size\n degradation_fragmentation_isolation_medium_size\n degradation_fragmentation_isolation_distance\n degradation_fragmentation_isolation_big_size\n degradation_fire_frequency\n degradation_fire_time\n degradation_secondary_vegetation_age\n parsedParams\n }\n territory\n territories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n classesViewMode\n activeClassTreeNodeIds\n activeBaseClassTreeNodeIds\n activeClassTreeOptionValue\n activeObjectTreeNodeIds\n activeSubmodule\n activeClassesLevelsListItems\n activeTransitionsClassesListItems\n activePastureQualityQualityClassesListItems\n yearRange\n buffer\n crossingEnabled\n crossingTerritoryType\n crossingTerritories {\n id\n label\n territoryTypeId\n territoryTypeLabel\n territoryBBox\n }\n }\n headerIsVisible\n mapFlyTo\n mapPointInfo {\n latlng\n parsedBBox\n }\n mapPosition\n mapboxMode\n showClassInfo\n showDashboardInfo\n timelineLimitsRange\n showBeforeAndAfterMosaic\n transitionClassTreeNodeId\n ruralPropertyCode\n carFeature\n geometry\n geometryMode\n }\n }\n`;\n\nexport const GET_TERRITORIES_CATEGORIES_LIST = gql`\n query TerritoriesCategoriesList {\n territoryCategoriesList {\n id\n key\n parentId\n i18nStrings {\n language\n stringValue\n }\n }\n }\n`;\n\nexport const GET_TERRITORIES_LIST = gql`\n query TerritoriesList($categoryId: Int!) {\n territoriesList(categoryId: $categoryId) {\n id\n i18nStrings {\n language\n stringValue\n }\n }\n }\n`;\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport { useApolloClient, useLazyQuery, useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport qs from 'qs';\n\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\n\nimport CARBox from './components/CARBox';\nimport ClassLegendDialog from './components/ClassLegendDialog';\nimport CoordinatesBox from './components/CoordinatesBox';\nimport DashboardDialog from './components/DashboardDialog';\nimport MapCanvas from './components/MapCanvas';\nimport MapboxCanvas from './components/MapboxCanvas';\nimport MapboxControl from './components/MapboxControl';\nimport MapControls from './components/MapControls';\nimport MapPointDialog from './components/MapPointDialog';\nimport YearTimeline from './components/YearTimeline';\nimport YearTimelineMultiple from './components/YearTimelineMultiple';\nimport ShareControl from './components/ShareControl';\nimport StatisticsBox from './components/StatisticsBox';\nimport InfrastructureStatisticsBox from './components/InfrastructureStatisticsBox';\nimport StatisticsDataTableBox from './components/StatisticsDataTableBox';\nimport TutorialTour from '../../../../components/tutorial/TutorialTour';\n\nimport {\n GET_BASE_DATA,\n GET_TERRITORIES_CATEGORIES_LIST,\n GET_TERRITORIES_LIST,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nimport useFormatMessage from '../../../../hooks/useFormatMessage';\nimport usePrevious from '../../../../hooks/usePrevious';\n\nimport parseQueryParamsToState from '../../../../helpers/parseQueryParamsToState';\n\nimport toast from '../../../../utils/toast';\n\nimport styles from '../../LandingPage.module.scss';\n\nconst MODULES_WITH_INITIAL_YEAR_FIXED = [\n 'fire:fire_accumulated',\n 'deforestation:deforestation_accumulated',\n];\n\nexport default function Map({\n activeBaseMap,\n activeLayers,\n layersOpacity,\n location,\n}) {\n const client = useApolloClient();\n const formatMessage = useFormatMessage();\n const isMobile = useMediaQuery('(max-width: 768px)');\n const [coverageTutorial, setCoverageTutorial] = useState(true);\n const [statisticsData, setStatisticsData] = useState(null);\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA);\n const { data: territoriesCategoriesListData } = useQuery(\n GET_TERRITORIES_CATEGORIES_LIST\n );\n const { data: defaultClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'default',\n },\n });\n const defaultClassTreeLevelsList = _.get(\n defaultClassTreeData,\n 'classTreeByKey[0].mvClassTreeLevelsUi'\n );\n const [loadCountryTerritoryData, { data: countryTerritoryListData }] =\n useLazyQuery(GET_TERRITORIES_LIST);\n const prevLoadingBaseData = usePrevious(loadingBaseData);\n const activeModule = _.get(baseData, 'app.activeModule');\n const activeModuleContent = _.get(baseData, 'app.activeModuleContent');\n const prevActiveModuleContent = usePrevious(activeModuleContent);\n const activeClassTreeOptionValue = _.get(\n baseData,\n 'app.baseParams.activeClassTreeOptionValue'\n );\n const degradationType = _.get(baseData, 'app.baseParams.degradationType');\n const isOnDegradationCrossingMode = degradationType === 'crossing';\n const activeYear = _.get(baseData, 'app.activeYear');\n const baseParams = _.get(baseData, 'app.baseParams');\n const mapboxMode = _.get(baseData, 'app.mapboxMode');\n const transitionClassTreeNodeId = _.get(\n baseData,\n 'app.transitionClassTreeNodeId'\n );\n const territoryCategoriesList = _.get(\n territoriesCategoriesListData,\n 'territoryCategoriesList'\n );\n\n const headerIsVisible = _.get(baseData, 'app.headerIsVisible');\n const mapFlyTo = _.get(baseData, 'app.mapFlyTo');\n const mapPointInfo = _.get(baseData, 'app.mapPointInfo');\n const showClassInfo = _.get(baseData, 'app.showClassInfo');\n const showDashboardInfo = _.get(baseData, 'app.showDashboardInfo');\n const showBeforeAndAfterMosaic = _.get(\n baseData,\n 'app.showBeforeAndAfterMosaic'\n );\n const timelineLimitsRange = _.get(baseData, 'app.timelineLimitsRange');\n const mapPosition = _.get(baseData, 'app.mapPosition');\n const ruralPropertyCode = _.get(baseData, 'app.ruralPropertyCode');\n const carFeature = JSON.parse(_.get(baseData, 'app.carFeature'));\n const geometry = JSON.parse(_.get(baseData, 'app.geometry'));\n const geometryMode = _.get(baseData, 'app.geometryMode');\n\n let blockModuleWarningIsVisible = false;\n\n // Add conditions to show block module warning dialog below\n // if (activeClassTreeOptionValue === 'fire_annual_by_class') {\n // blockModuleWarningIsVisible = true;\n // }\n\n const [lat, lng, zoom] = _.split(mapPosition, ',');\n let mapConfigOptions = {};\n\n if (mapPosition) {\n mapConfigOptions = {\n lat: Number(lat),\n lng: Number(lng),\n zoom: Number(zoom),\n };\n }\n\n let urlQueryParams = {};\n\n if (location && location.search) {\n const queryString = location.search.replace('?', '');\n const queryObject = qs.parse(queryString, { comma: true });\n\n if (queryObject) {\n urlQueryParams = parseQueryParamsToState(queryObject);\n }\n }\n\n const isOnInitialRenderingWithQueryParams =\n loadingBaseData ||\n (prevLoadingBaseData && !loadingBaseData && !_.isEmpty(urlQueryParams));\n\n useEffect(() => {\n const confirmation = new URL(window.location.href).searchParams.get(\n 'confirmation'\n );\n const login = new URL(window.location.href).searchParams.get('login');\n const passwordUpdate = new URL(window.location.href).searchParams.get(\n 'password_update'\n );\n\n if (confirmation) {\n toast(formatMessage('mapbiomas.toast.account_confirmed'));\n }\n\n if (login) {\n toast(formatMessage('mapbiomas.toast.login_success'));\n }\n\n if (passwordUpdate) {\n toast(formatMessage('mapbiomas.toast.password_update'));\n }\n }, []);\n\n useEffect(() => {\n if (activeModuleContent !== 'coverage:coverage_changes') {\n updateClientAppState({\n showBeforeAndAfterMosaic: false,\n });\n }\n\n const checkModuleKeyCondition = (moduleKey) => {\n if (_.isUndefined(prevActiveModuleContent)) {\n return activeModuleContent === moduleKey;\n } else {\n return (\n activeModuleContent === moduleKey &&\n !isOnInitialRenderingWithQueryParams\n );\n }\n };\n\n if (checkModuleKeyCondition('coverage:coverage_main')) {\n updateClientAppState({\n activeBaseMap: 9,\n layersOpacity: 70,\n activeLayers: [],\n });\n } else if (\n checkModuleKeyCondition(\n 'quality_of_pasture_data:quality_of_pasture_data_main'\n )\n ) {\n updateClientAppState({\n activeBaseMap: 1,\n layersOpacity: 100,\n activeLayers: ['state'],\n });\n } else if (\n checkModuleKeyCondition('regeneration:regeneration_annual') ||\n checkModuleKeyCondition('deforestation:deforestation_annual')\n ) {\n updateClientAppState({\n activeBaseMap: 1,\n });\n } else if (checkModuleKeyCondition('irrigation:irrigation_main')) {\n updateClientAppState({\n activeBaseMap: 1,\n activeLayers: ['state'],\n });\n } else if (checkModuleKeyCondition('infrastructure:infrastructure_main')) {\n updateClientAppState({\n activeBaseMap: 1,\n activeYear: 2020,\n timelineLimitsRange: [1985, 2020],\n });\n } else if (checkModuleKeyCondition('fire:fire_accumulated')) {\n updateClientAppState({\n activeBaseMap: 1,\n activeYear: [1985, 2023],\n timelineLimitsRange: [1985, 2023],\n });\n } else if (checkModuleKeyCondition('fire:fire_annual')) {\n updateClientAppState({\n activeBaseMap: 1,\n activeYear: [1985, 2023],\n timelineLimitsRange: [1985, 2023],\n });\n } else if (checkModuleKeyCondition('fire:fire_frequency')) {\n updateClientAppState({\n activeBaseMap: 1,\n activeYear: [1985, 2023],\n timelineLimitsRange: [1985, 2023],\n });\n } else if (checkModuleKeyCondition('fire:fire_monthly')) {\n updateClientAppState({\n activeBaseMap: 1,\n activeYear: 2023,\n timelineLimitsRange: [1985, 2023],\n });\n } else if (checkModuleKeyCondition('fire:fire_last')) {\n updateClientAppState({\n activeBaseMap: 1,\n activeYear: 2023,\n timelineLimitsRange: [1986, 2023],\n });\n } else if (checkModuleKeyCondition('fire:fire_size')) {\n updateClientAppState({\n activeBaseMap: 1,\n activeYear: 2023,\n timelineLimitsRange: [1985, 2023],\n });\n } else if (\n checkModuleKeyCondition(\n 'temporal_analysis:temporal_analysis_number_of_classes'\n )\n ) {\n updateClientAppState({\n activeBaseMap: 1,\n activeYear: [1985, 2023],\n timelineLimitsRange: [1985, 2023],\n });\n } else if (\n checkModuleKeyCondition('deforestation:deforestation_accumulated')\n ) {\n updateClientAppState({\n activeYear: [1986, 2023],\n timelineLimitsRange: [1986, 2023],\n });\n } else if (\n checkModuleKeyCondition('deforestation:deforestation_frequency')\n ) {\n updateClientAppState({\n activeYear: [1986, 2023],\n timelineLimitsRange: [1986, 2023],\n });\n }\n\n const parsedModuleContentKey = _.last(_.split(activeModuleContent, ':'));\n\n if (parsedModuleContentKey) {\n updateClientAppState({\n activeNoteKey: parsedModuleContentKey,\n });\n }\n\n setStatisticsData(null);\n }, [activeModuleContent]);\n\n useEffect(() => {\n if (isOnInitialRenderingWithQueryParams) {\n return;\n }\n\n if (showBeforeAndAfterMosaic) {\n updateClientAppState({\n activeBaseMap: 8,\n layersOpacity: 50,\n });\n } else {\n updateClientAppState({\n layersOpacity: 100,\n });\n }\n }, [showBeforeAndAfterMosaic]);\n\n useEffect(() => {\n if (activeModule !== 'coverage' && mapboxMode) {\n toggleMapbox();\n }\n }, [activeModule]);\n\n useEffect(() => {\n const minYear = _.first(timelineLimitsRange);\n const maxYear = _.last(timelineLimitsRange);\n\n if (\n !_.isArray(activeYear) &&\n (activeYear < minYear || activeYear > maxYear)\n ) {\n updateClientAppState({\n activeYear: maxYear,\n });\n }\n }, [timelineLimitsRange]);\n\n useEffect(() => {\n if (isMobile) {\n updateClientAppState({\n headerIsVisible: false,\n });\n }\n }, [isMobile]);\n\n useEffect(() => {\n if (territoryCategoriesList) {\n const countryTerritoryCategory = _.find(territoryCategoriesList, {\n key: 'country',\n });\n const countryTerritoryId = _.get(countryTerritoryCategory, 'id');\n loadCountryTerritoryData({\n variables: {\n categoryId: countryTerritoryId,\n },\n });\n }\n }, [territoryCategoriesList]);\n\n const updateClientAppState = (params) => {\n client.writeData({\n data: {\n app: {\n __typename: 'AppState',\n ...params,\n },\n },\n });\n };\n\n const closeClassLegendDialog = () => {\n updateClientAppState({ showClassInfo: null });\n };\n\n const closeDashboardDialog = () => {\n updateClientAppState({\n showDashboardInfo: null,\n transitionClassTreeNodeId: null,\n });\n };\n\n const closeMapInfoDialog = () => {\n updateClientAppState({ mapPointInfo: null });\n };\n\n const handleMapPointSearchClick = (mapPointInfo) => {\n updateClientAppState({ mapPointInfo });\n };\n\n const handleYearTimelineChange = (year) => {\n updateClientAppState({ activeYear: year });\n };\n\n const handleFlyToPointSubmit = (coordinates) => {\n updateClientAppState({ mapFlyTo: coordinates });\n };\n\n const handleFlyToReset = () => {\n updateClientAppState({ mapFlyTo: null });\n };\n\n const handleControlsChange = (paramKey, paramValue) => {\n updateClientAppState({ [paramKey]: paramValue });\n };\n\n const handleMoveEnd = (value) => {\n if (value !== mapPosition) {\n updateClientAppState({ mapPosition: value });\n }\n };\n\n const handleGeometryChange = (value) => {\n if (value) {\n updateClientAppState({\n geometry: JSON.stringify(value),\n geometryMode: null,\n });\n }\n };\n\n const openCoverageTutorial = () => {\n setCoverageTutorial(true);\n };\n\n const closeTutorial = () => {\n setCoverageTutorial(false);\n };\n\n const handleStatisticsShowData = (data) => {\n setStatisticsData(data);\n };\n\n const handleStatisticsCloseData = () => {\n setStatisticsData(null);\n };\n\n const toggleMapbox = () => {\n if (!mapboxMode) {\n updateClientAppState({\n activeBaseMap: 9,\n layersOpacity: 70,\n activeLayers: [],\n mapboxMode: !mapboxMode,\n });\n } else {\n updateClientAppState({\n mapboxMode: !mapboxMode,\n });\n }\n };\n\n const TimelineComponent =\n 'temporal_analysis' === activeModule ||\n [\n 'deforestation:deforestation_accumulated',\n 'deforestation:deforestation_frequency',\n ].includes(activeModuleContent)\n ? YearTimelineMultiple\n : YearTimeline;\n\n return (\n <Fragment>\n {!mapboxMode && (\n <MapCanvas\n activeBaseMap={ activeBaseMap }\n activeModule={ activeModule }\n activeModuleContent={ activeModuleContent }\n activeYear={ activeYear }\n baseParams={ baseParams }\n carFeature={ carFeature }\n geometry={ geometry }\n geometryMode={ geometryMode }\n configOptions={ mapConfigOptions }\n countryTerritoryId={ _.get(countryTerritoryListData, 'territoriesList[0].id') }\n defaultClassTreeLevelsList={ defaultClassTreeLevelsList }\n flyTo={ mapFlyTo }\n isMobile={ isMobile }\n mapPointInfo={ mapPointInfo }\n activeLayers={ activeLayers }\n layersOpacity={ layersOpacity }\n headerIsVisible={ headerIsVisible }\n onControlsChange={ handleControlsChange }\n onSearchPointClick={ handleMapPointSearchClick }\n showBeforeAndAfterMosaic={ showBeforeAndAfterMosaic }\n showDashboardInfo={ showDashboardInfo }\n setCoverageTutorial={ setCoverageTutorial }\n onMoveEnd={ handleMoveEnd }\n onFlyToReset={ handleFlyToReset }\n mapboxMode={ mapboxMode }\n transitionClassTreeNodeId={ transitionClassTreeNodeId }\n ruralPropertyCode={ ruralPropertyCode }\n onCreateGeometry={ handleGeometryChange }\n />\n )}\n {mapboxMode && (\n <MapboxCanvas\n activeLayers={activeLayers}\n activeYear={activeYear}\n baseParams={baseParams}\n configOptions={mapConfigOptions}\n flyTo={mapFlyTo}\n headerIsVisible={headerIsVisible}\n isMobile={isMobile}\n layersOpacity={layersOpacity}\n onSearchPointClick={handleMapPointSearchClick}\n onMoveEnd={handleMoveEnd}\n geometry={ geometry }\n ruralPropertyCode={ ruralPropertyCode }\n />\n )}\n {!(showDashboardInfo && isMobile) && (\n <MapControls\n activeBaseMap={activeBaseMap}\n showBeforeAndAfterMosaic={showBeforeAndAfterMosaic}\n activeLayers={activeLayers}\n headerIsVisible={headerIsVisible}\n layersOpacity={layersOpacity}\n onChange={handleControlsChange}\n />\n )}\n {!showBeforeAndAfterMosaic && !(showDashboardInfo && isMobile) && (\n <TimelineComponent\n activeModule={activeModule}\n firstYearFixed={_.includes(\n MODULES_WITH_INITIAL_YEAR_FIXED,\n activeModuleContent\n )}\n headerIsVisible={headerIsVisible}\n value={activeYear}\n onChange={handleYearTimelineChange}\n />\n )}\n <CARBox\n headerIsVisible={ headerIsVisible }\n showBeforeAndAfterMosaic={ showBeforeAndAfterMosaic }\n onFlyTo={ handleFlyToPointSubmit }\n onFeatureChange={ () => {} }\n updateClientAppState={ updateClientAppState }\n />\n <CoordinatesBox\n headerIsVisible={headerIsVisible}\n showBeforeAndAfterMosaic={showBeforeAndAfterMosaic}\n onSubmit={handleFlyToPointSubmit}\n />\n {activeModuleContent === 'coverage:coverage_main' && (\n <MapboxControl\n isActive={mapboxMode}\n onToggle={toggleMapbox}\n headerIsVisible={headerIsVisible}\n showBeforeAndAfterMosaic={showBeforeAndAfterMosaic}\n />\n )}\n <ShareControl\n headerIsVisible={headerIsVisible}\n showBeforeAndAfterMosaic={showBeforeAndAfterMosaic}\n />\n <ClassLegendDialog\n headerIsVisible={headerIsVisible}\n isOpen={!!showClassInfo}\n classId={showClassInfo}\n onClose={closeClassLegendDialog}\n />\n <MapPointDialog\n activeModule={activeModule}\n headerIsVisible={headerIsVisible}\n isOpen={!!mapPointInfo}\n pointInfo={mapPointInfo}\n updateClientAppState={updateClientAppState}\n onClose={closeMapInfoDialog}\n />\n <DashboardDialog\n activeModuleContent={activeModuleContent}\n activeYear={activeYear}\n baseParams={baseParams}\n classTreeKey={activeClassTreeOptionValue}\n headerIsVisible={headerIsVisible}\n isOpen={showDashboardInfo}\n onClose={closeDashboardDialog}\n onUpdateClientAppState={updateClientAppState}\n />\n {(activeModule === 'fire' ||\n activeModule === 'deforestation' ||\n activeModule === 'regeneration' ||\n activeModule === 'temporal_analysis' ||\n activeModule === 'degradation' ||\n activeModuleContent === 'coverage:coverage_main' ||\n activeModuleContent === 'coverage:coverage_stable_areas' ||\n activeModuleContent === 'coverage:coverage_number_of_classes' ||\n activeModuleContent === 'mining:mining_main' ||\n activeModuleContent ===\n 'quality_of_pasture_data:quality_of_pasture_data_main' ||\n activeModuleContent === 'irrigation:irrigation_main' ||\n activeModuleContent === 'sentinel:sentinel_coverage' ||\n activeModuleContent === 'soil:soil_main') && (\n <StatisticsBox\n activeModule={activeModule}\n activeModuleContent={activeModuleContent}\n activeYear={activeYear}\n baseParams={baseParams}\n classTreeKey={activeClassTreeOptionValue}\n statisticsDataIsVisible={!!statisticsData}\n headerIsVisible={headerIsVisible}\n onShowData={handleStatisticsShowData}\n ruralPropertyCode={ ruralPropertyCode }\n geometry={ geometry }\n />\n )}\n {activeModuleContent === 'infrastructure:infrastructure_main' && (\n <InfrastructureStatisticsBox\n activeYear={activeYear}\n baseParams={baseParams}\n statisticsDataIsVisible={!!statisticsData}\n headerIsVisible={headerIsVisible}\n onShowData={handleStatisticsShowData}\n />\n )}\n <StatisticsDataTableBox\n headerIsVisible={headerIsVisible}\n data={statisticsData}\n onClose={handleStatisticsCloseData}\n />\n\n {/* <TutorialTour currentModule={activeModule} closeTutorial={closeTutorial} runTutorial={runTutorial} /> */}\n\n <Dialog onClose={() => {}} open={blockModuleWarningIsVisible}>\n <div className={styles.tempDialog}>\n <p>Os dados estão sendo atualizados.</p>\n <Button\n variant='contained'\n size='small'\n onClick={() => (window.location.href = '/')}\n >\n <span>Voltar para página inicial</span>\n </Button>\n </div>\n </Dialog>\n </Fragment>\n );\n}\n","import React from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\nimport { ThemeProvider } from '@material-ui/core/styles';\n\nimport { GET_BASE_DATA } from './query';\n\nimport BasePage from './layout/BasePage';\n\nimport MapView from './views/Map';\n\nconst mapThemePaletteByProduct = {\n 'scenarios': {\n dark: '#3a5269',\n light: '#3a5269',\n main: '#34495e',\n contrastText: '#FFF'\n },\n 'irrigation': {\n dark: '#ac2ec2',\n light: '#bb3dd1',\n main: '#b731ce',\n contrastText: '#FFF'\n },\n 'fire': {\n dark: '#e5412e',\n light: '#e95949',\n main: '#e74c3c',\n contrastText: '#FFF'\n },\n 'infrastructure': {\n dark: '#5c5c5c',\n light: '#5c5c5c',\n main: '#555',\n contrastText: '#FFF'\n },\n 'regeneration': {\n dark: '#25a259',\n light: '#2abb67',\n main: '#27ae60',\n contrastText: '#FFF'\n },\n 'deforestation': {\n dark: '#CD6130',\n light: '#CD6136',\n main: '#cd6133',\n contrastText: '#FFF'\n },\n 'coverage': {\n dark: '#14947b',\n light: '#18af91',\n main: '#16a085',\n contrastText: '#FFF'\n },\n 'quality_of_pasture_data': {\n dark: '#ef970c',\n light: '#f3a220',\n main: '#f39c12',\n contrastText: '#FFF'\n },\n 'mining': {\n dark: '#ef970c',\n light: '#f3a220',\n main: '#f39c12',\n contrastText: '#FFF'\n },\n 'coverage_quality': {\n dark: '#1c313a',\n light: '#718792',\n main: '#455a64',\n contrastText: '#FFF'\n },\n 'temporal_analysis': {\n dark: '#4a0072',\n light: '#ae52d4',\n main: '#7b1fa2',\n contrastText: '#FFF'\n },\n 'sentinel': {\n dark: '#0e1d35',\n light: '#344055',\n main: '#1f2942',\n contrastText: '#FFF'\n },\n 'soil': {\n dark: '#6c5440',\n light: '#a0826d',\n main: '#886956',\n contrastText: '#FFF'\n },\n 'degradation': {\n dark: '#845923',\n light: '#a36f2f',\n main: '#936327',\n contrastText: '#FFF'\n },\n 'coral_reef': {\n dark: '#0b678c',\n light: '#0979a5',\n main: '#066F9A',\n contrastText: '#FFF'\n },\n};\n\nconst defaultThemeColor = {\n dark: '#16a085',\n light: '#18af91',\n main: '#16a085',\n contrastText: '#FFF'\n};\n\nexport default function LandingPage({\n history,\n location,\n}) {\n const { data: baseData } = useQuery(GET_BASE_DATA);\n const activeModule = _.get(baseData, 'app.activeModule');\n const activeBaseMap = _.get(baseData, 'app.activeBaseMap') || 5;\n const activeLayers = _.get(baseData, 'app.activeLayers') ;\n const layersOpacity = _.get(baseData, 'app.layersOpacity');\n\n return (\n <ThemeProvider\n theme={(outerTheme) => ({\n ...outerTheme,\n palette: {\n ...outerTheme.palette,\n primary: mapThemePaletteByProduct[activeModule] || defaultThemeColor,\n },\n })}\n >\n <BasePage\n history={ history }\n location={ location }\n >\n <MapView\n activeBaseMap={ activeBaseMap }\n activeLayers={ activeLayers }\n layersOpacity={ layersOpacity }\n location={ location }\n />\n </BasePage>\n </ThemeProvider>\n )\n}\n","import { Box } from \"@material-ui/core\";\nimport React from \"react\";\nimport { FormattedMessage, useIntl } from \"react-intl\";\nimport { Link } from \"react-router-dom\";\n\nimport styles from './FormFooter.module.scss'\n\nexport default function FormFooter() {\n const intl = useIntl()\n return(\n <Box className={ styles.wrapper }>\n <a className={ styles.helperLink } href=\"https://mapbiomas.org/\"><FormattedMessage id=\"mapbiomas.user.login.footer.links.mapbiomas\" /></a>\n {/* <Link className={ styles.helperLink } to=\"/esqueci-minha-senha\"><FormattedMessage id=\"mapbiomas.user.login.footer.links.help\" /></Link>\n <a className={ styles.helperLink } href={ intl.formatMessage({id:'mapbiomas.user.login.create_acount.privacy_policy.link'}) } target=\"_blank\"><FormattedMessage id=\"mapbiomas.user.login.footer.links.privacy_term\" /></a> */}\n </Box>\n )\n}","import React from 'react'\nimport { FormattedMessage } from 'react-intl'\n\nimport styles from './PageFooter.module.scss'\nimport logo from './logo-ecostage.svg';\n\nexport default function PageFooter() {\n return(\n <footer className={ styles.footer }>\n <small className={ styles.copyText }>© Copyright - MapBiomas - <FormattedMessage id=\"footer.copyright\" /></small>\n <div className={ styles.wrapper }>\n <small className={ styles.versionText }>{ process.env.GIT_TAG } · </small>\n <a href=\"http://www.ecostage.com.br/\" target=\"_blank\">\n <img className={ styles.ecostageImage } src={ logo } alt=\"Logo EcoStage\" />\n </a>\n </div>\n </footer>\n )\n}\n","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport Paper from '@material-ui/core/Paper';\nimport TextField from '@material-ui/core/TextField';\n\nimport toast from '../../utils/toast';\nimport { request } from '../../utils/api';\n\nimport parseToken from '../../helpers/parseToken';\nimport useFormatMessage from '../../hooks/useFormatMessage';\n\nimport logo from './logo.svg';\n\nimport styles from './MapBiomasLogin.module.scss';\nimport { FilledInput, InputLabel, OutlinedInput, Typography } from '@material-ui/core';\n\nimport FormFooter from './components/FormFooter';\nimport PageFooter from './components/PageFooter';\n\nconst initialState = {\n login: '',\n password: '',\n};\n\nexport default function MapBiomasLogin() {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n const [windowHeight, setWindowHeight] = useState(window.innerHeight);\n const isCreatedPassword = new URL(window.location.href).searchParams.get('created_password');\n\n const urlParams = location.search.substring(1) || \"\";\n let paramsToJSON = {}\n\n function updateHeight() {\n setWindowHeight(window.innerHeight);\n }\n const debouncedUpdateHeight = _.debounce(updateHeight, 500);\n\n useEffect(() => {\n window.addEventListener('resize', debouncedUpdateHeight);\n if(isCreatedPassword){\n toast(formatMessage('mapbiomas.toast.created_password'), 'success');\n }\n\n return () => {\n window.removeEventListener('resize', debouncedUpdateHeight)\n };\n }, []);\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const { login, password } = state;\n\n const API_URL = process.env.REACT_APP_MAPBIOMAS_LOGIN_API_BASE_URL;\n\n const callbackUrl = new URL(window.location.href).searchParams.get('request_params[callback_url]') ;\n const sso = new URL(window.location.href).searchParams.get('request_params[sso]') ;\n const sig = new URL(window.location.href).searchParams.get('request_params[sig]') ;\n\n if(!!urlParams){\n paramsToJSON = JSON.parse('{\"' + decodeURI(location.search.substring(1)).replace(/request_params\\[(.+?)(\\])/g, \"$1\").replace(/\"/g, '\\\\\"').replace(/&/g, '\",\"').replace(/=([a-zA-Z0-9_.-])/g,'\":\"$1') + '\"}')\n }\n\n const payload = {\n email: login,\n password,\n request_params: {\n ...paramsToJSON\n }\n };\n\n const customHeaders = { 'Content-Type': 'application/json' }\n\n const token = localStorage.getItem('token');\n let config = _.extend({}, {\n method: 'POST',\n body: JSON.stringify(payload)\n });\n let url = API_URL;\n\n\n if (token) {\n config.headers = _.extend(\n { 'Authorization': `Bearer ${ token }` },\n customHeaders\n );\n } else {\n config.headers = customHeaders;\n }\n\n fetch(`${url}/v1/tokens`, config)\n .then((response) => response.json())\n .then((data) => {\n if(data.success){\n const id = _.get(data, 'id');\n const token = _.get(data, 'token');\n if (token) {\n\n localStorage.setItem('tokenId', id);\n parseToken(token);\n if (callbackUrl) {\n let paramsToUrl = ''\n Object.keys(paramsToJSON).map(function(key, index) {\n paramsToUrl += `request_params[${key}]=${paramsToJSON[key]}&`\n });\n window.location.href = `${decodeURIComponent(callbackUrl)}/?${encodeURI(paramsToUrl)}token=${token}`;\n } else {\n window.location.href = '/?login=true';\n }\n }\n }else {\n toast(data.message, 'error');\n }\n\n })\n .catch((error) => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n return (\n <div className={ styles.wrapper } style={ { height: windowHeight } }>\n <div className={ styles.content }>\n <a href=\"https://mapbiomas.org/\">\n <img src={ logo } className={ styles.logo } alt=\"Logo MapBiomas\" />\n </a>\n <Paper className={ styles.box }>\n <div className={ styles.contentWrapper }>\n <h1 className={ styles.title }><FormattedMessage id=\"login_page.title\" /></h1>\n <Typography className={ styles.subtitle }><FormattedMessage id=\"login_page.subtitle\" /></Typography>\n <form className={ styles.formWrapper } onSubmit={ handleSubmit }>\n <FormControl fullWidth className={ `${styles.formControl} ${styles.emailField}` }>\n <TextField\n required\n id=\"login-field\"\n label={ formatMessage('mapbiomas.user.login.fields.email') }\n type=\"text\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.login }\n onChange={ handleTextChange.bind(this, 'login') }\n />\n </FormControl>\n <FormControl fullWidth className={ styles.formControl }>\n <TextField\n required\n id=\"password-field\"\n label={ formatMessage('mapbiomas.user.login.fields.password') }\n type=\"password\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.password }\n onChange={ handleTextChange.bind(this, 'password') }\n />\n </FormControl>\n <div className={ styles.actionsWrapper }>\n <Link className={ styles.helperLink } to={`/esqueci-minha-senha?${urlParams}`}><FormattedMessage id=\"mapbiomas.user.login.forgot_password\" /></Link>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n className={styles.button}\n >\n <FormattedMessage id=\"mapbiomas.user.login.buttons.login\" />\n </Button>\n </div>\n </form>\n <Typography className={styles.createAcountLegend}><FormattedMessage id=\"mapbiomas.user.create_account.helper_link.create_account_label\" /></Typography>\n <Link className={ styles.helperLink } to={`/criar-minha-conta?${urlParams}`}><FormattedMessage id=\"mapbiomas.user.create_account.helper_link.create_acount_title\" /></Link>\n </div>\n <FormFooter/>\n </Paper>\n </div>\n <PageFooter/>\n </div>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport Paper from '@material-ui/core/Paper';\nimport TextField from '@material-ui/core/TextField';\n\nimport toast from '../../utils/toast';\nimport { request } from '../../utils/api';\n\nimport parseToken from '../../helpers/parseToken';\nimport useFormatMessage from '../../hooks/useFormatMessage';\n\nimport logo from './logo.svg';\n\nimport styles from './MapBiomasPasswordRecovery.module.scss';\nimport { Typography } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport FormFooter from '../MapBiomasLogin/components/FormFooter';\nimport PageFooter from '../MapBiomasLogin/components/PageFooter';\n\nconst initialState = {\n email: '',\n};\n\nexport default function MapBiomasPasswordRecovery() {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n const [showInfo, setShowInfo] = useState(false);\n const [windowHeight, setWindowHeight] = useState(window.innerHeight);\n\n const callbackUrl = new URL(window.location.href).searchParams.get('callback_url');\n const urlParams = location.search.substring(1);\n let paramsToJSON = {}\n\n function updateHeight() {\n setWindowHeight(window.innerHeight);\n }\n const debouncedUpdateHeight = _.debounce(updateHeight, 500);\n\n useEffect(() => {\n window.addEventListener('resize', debouncedUpdateHeight);\n\n return () => {\n window.removeEventListener('resize', debouncedUpdateHeight)\n };\n }, []);\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const API_URL = process.env.REACT_APP_MAPBIOMAS_LOGIN_API_BASE_URL;\n if(!!urlParams){\n paramsToJSON = JSON.parse('{\"' + decodeURI(location.search.substring(1)).replace(/request_params\\[(.+?)(\\])/g, \"$1\").replace(/\"/g, '\\\\\"').replace(/&/g, '\",\"').replace(/=/g,'\":\"') + '\"}')\n }\n\n const {\n email,\n } = state;\n\n const payload = {\n email,\n request_params: { ...paramsToJSON }\n };\n\n fetch(`${API_URL}/v1/users/send_recovery_instructions`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify(payload)\n })\n .then((response) => response.json())\n .then((data) => {\n if (data.success) {\n handleStateChange(\"email\", \"\");\n toast(formatMessage('mapbiomas.toast.email_sent'), 'success');\n }else {\n toast(data.errors[0], 'error');\n }\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const renderInfo = () => {\n return (\n <p className={ styles.successText }><FormattedMessage id=\"mapbiomas.user.password_recovery.instructions\" /></p>\n );\n };\n\n const renderForm = () => {\n return (\n <form onSubmit={ handleSubmit }>\n <FormControl className={ styles.formControl }>\n <TextField\n id=\"email-field\"\n label={ formatMessage('mapbiomas.user.password_recovery.fields.email') }\n variant=\"outlined\"\n type=\"email\"\n className={ styles.filterFormInput }\n value={ state.email }\n onChange={ handleTextChange.bind(this, 'email') }\n required\n />\n </FormControl>\n <div className={ styles.actionsWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n className={ styles.button }\n >\n <FormattedMessage id=\"mapbiomas.user.password_recovery.buttons.confirm\" />\n </Button>\n </div>\n </form>\n );\n };\n\n return (\n <div className={ styles.wrapper } style={ { height: windowHeight } }>\n <div className={ styles.content }>\n <a href=\"https://mapbiomas.org/\">\n <img src={ logo } className={ styles.logo } alt=\"Logo MapBiomas\" />\n </a>\n <Paper className={ styles.box }>\n <div className={ styles.contentWrapper }>\n <h1 className={ styles.title }><FormattedMessage id=\"mapbiomas.user.password_recovery.title\" /></h1>\n <Typography className={ styles.subtitle }><FormattedMessage id=\"mapbiomas.user.password_recovery.instructions\" /></Typography>\n { showInfo && renderInfo() }\n { !showInfo && renderForm() }\n <Typography className={styles.accessAccountLegend}><FormattedMessage id=\"mapbiomas.user.password_recovery.access_account.legend\" /></Typography>\n <Link className={ styles.helperLink } to={`/login?${urlParams}`}><FormattedMessage id=\"mapbiomas.user.login.helper_link.title\" /></Link>\n </div>\n <FormFooter/>\n </Paper>\n </div>\n <PageFooter/>\n </div>\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport _ from 'lodash';\nimport { useIntl,FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport { FormControl, FormGroup, FormControlLabel, Checkbox } from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport TextField from '@material-ui/core/TextField';\n\nimport toast from '../../utils/toast';\nimport { request } from '../../utils/api';\n\nimport parseToken from '../../helpers/parseToken';\nimport useFormatMessage from '../../hooks/useFormatMessage';\n\nimport logo from './../MapBiomasLogin/logo.svg';\n\nimport styles from './MapbiomasCreateAccount.module.scss';\nimport { Typography } from '@material-ui/core';\nimport FormFooter from '../MapBiomasLogin/components/FormFooter';\nimport PageFooter from '../MapBiomasLogin/components/PageFooter';\n\nconst initialState = {\n name: '',\n login: '',\n password: '',\n organization: '',\n motivation: '',\n privacyCheck: true,\n};\n\nexport default function MapbiomasCreateAccount() {\n const formatMessage = useFormatMessage();\n const [state, setState] = useState(initialState);\n const [windowHeight, setWindowHeight] = useState(window.innerHeight);\n\n const urlParams = location.search.substring(1);\n let paramsToJSON = {}\n\n const intl = useIntl()\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n\n const API_URL = process.env.REACT_APP_MAPBIOMAS_LOGIN_API_BASE_URL;\n const { login, organization, name, motivation } = state;\n\n if(!!urlParams){\n paramsToJSON = JSON.parse('{\"' + decodeURI(location.search.substring(1)).replace(/request_params\\[(.+?)(\\])/g, \"$1\").replace(/\"/g, '\\\\\"').replace(/&/g, '\",\"').replace(/=/g,'\":\"') + '\"}')\n }\n\n const payload = {\n user:{\n email: login,\n organization,\n name,\n motivation,\n },\n request_params: {\n ...paramsToJSON\n }\n };\n\n fetch(`${API_URL}/v1/users`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify(payload)\n })\n .then((response) => response.json())\n //Then with the data from the response in JSON...\n .then((data) => {\n if(data.user){\n setState({\n name: '',\n login: '',\n password: '',\n organization: '',\n motivation: '',\n privacyCheck: true,\n })\n toast(formatMessage('mapbiomas.toast.confirm_account'), 'success');\n }else {\n toast(data.email, 'error');\n }\n\n })\n .catch((error) => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const handlePrivacyCheckChange = () => {\n setState({\n ...state,\n privacyCheck: !state.privacyCheck\n });\n }\n\n return (\n <div className={ styles.wrapper } style={ { height: windowHeight } }>\n <div className={ styles.content }>\n <a href=\"https://mapbiomas.org/\">\n <img src={ logo } className={ styles.logo } alt=\"Logo MapBiomas\" />\n </a>\n <Paper className={ styles.box }>\n <div className={ styles.contentWrapper }>\n <h1 className={ styles.title }><FormattedMessage id=\"mapbiomas.user.create_account.title\" /></h1>\n <Typography className={ styles.subtitle }><FormattedMessage id=\"mapbiomas.user.create_account.instructions\" /></Typography>\n <form className={ styles.formWrapper } onSubmit={ handleSubmit }>\n <FormControl fullWidth className={ `${styles.formControl} ${styles.mb}` }>\n <TextField\n required\n id=\"name-field\"\n label={ formatMessage('mapbiomas.user.create_account.fields.name') }\n type=\"text\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.name }\n onChange={ handleTextChange.bind(this, 'name') }\n />\n </FormControl>\n <FormControl fullWidth className={ `${styles.formControl} ${styles.mb}` }>\n <TextField\n required\n id=\"login-field\"\n label={ formatMessage('mapbiomas.user.login.fields.email') }\n type=\"text\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.login }\n onChange={ handleTextChange.bind(this, 'login') }\n />\n </FormControl>\n <FormControl fullWidth className={ `${styles.formControl} ${styles.mb}` }>\n <TextField\n id=\"organization-field\"\n label={ formatMessage('mapbiomas.user.create_account.fields.organization') }\n type=\"text\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.organization }\n onChange={ handleTextChange.bind(this, 'organization') }\n />\n </FormControl>\n <FormControl fullWidth className={ `${styles.formControl} ${styles.mb} ${styles.textArea}` }>\n <TextField\n id=\"motivation-field\"\n label={ formatMessage('mapbiomas.user.create_account.fields.motivation') }\n multiline\n type=\"text\"\n variant=\"outlined\"\n size=\"small\"\n value={ state.motivation }\n onChange={ handleTextChange.bind(this, 'motivation') }\n />\n </FormControl>\n {/* <FormGroup>\n <FormControlLabel\n control={<Checkbox color=\"#16a085\" className={styles.privacyCheck} checked={state.privacyCheck} />}\n onChange={ handlePrivacyCheckChange }\n label={\n <div className={styles.privacyLabel}>\n <span>{intl.formatMessage({id: 'mapbiomas.user.create_account.privacy_policy.text'})}</span>\n <Link className={styles.privacyLink} to={`${intl.formatMessage({id: 'mapbiomas.user.create_account.privacy_policy.link'})}`}>\n {intl.formatMessage({id: 'mapbiomas.user.create_account.privacy_policy.title'})}\n </Link>\n </div>\n }\n />\n </FormGroup> */}\n <div className={ styles.actionsWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n type=\"submit\"\n className={styles.button}\n disabled={!state.privacyCheck}\n >\n <FormattedMessage id=\"mapbiomas.user.create_account.title\" />\n </Button>\n </div>\n </form>\n <Typography className={styles.createAcountLegend}><FormattedMessage id=\"mapbiomas.user.login.helper_link.description\" /></Typography>\n <Link className={ styles.helperLink } to={`/login?${urlParams}`}><FormattedMessage id=\"mapbiomas.user.login.helper_link.title\" /></Link>\n </div>\n <FormFooter />\n </Paper>\n </div>\n <PageFooter />\n </div>\n );\n}\n","import React from 'react';\n\nconst LoginToForum = () => {\n fetch(`https://production.plataforma.mapbiomas.org/l/api/forum_login/${document.location.search}`, {\n headers: {\n 'Authorization': `Bearer ${localStorage.getItem('token')}`\n }\n }).then((res)=>res.json()).then((res)=>{\n window.location.assign(res['value']);\n })\n\n return (\n <div>Loading...</div>\n );\n}\n\nexport default LoginToForum;\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($territoryIds: [Int!]!, $classTreeId: Int!) {\n coverageClassificationDataList: coverageClassificationDataByTreeList(\n classTreeId: $classTreeId,\n\t\t\tbufferId: null,\n\t\t\tterritoryIds: $territoryIds\n ) {\n territoryId\n year\n classTreeNodeId\n areaInHa\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport LineChart from '../../../MapBiomasLandingPage/views/Map/components/StatisticsBox/components/LineChart';\nimport PieChart from '../../../MapBiomasLandingPage/views/Map/components/StatisticsBox/components/PieChart';\n\nimport useFormatMessage from '../../../../hooks/useFormatMessage';\n\nimport styles from '../../TerritoryDashboard.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nconst formatNumber = (value) => {\n return numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n};\n\nexport default function CoverageMainStatisticsContent({\n activeYear,\n territoryId,\n statisticsDataIsVisible = false,\n onShowData = () => {},\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n\n const intl = useIntl()\n\n const [chartsData, setChartsData] = useState(null);\n\n const classTreeKey = 'default';\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n }\n });\n const classTreeId = _.get(classTreeData, 'classTreeByKey[0].id');\n\n const territoryIds = [territoryId];\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const activeClassesLevelsListItems = _.map(_.filter(classesLevelsList, { level: 1 }), 'id');\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryIds,\n classTreeId: classTreeId\n },\n skip: _.isEmpty(territoryIds) || !classTreeId || loadingClassTreeData\n });\n\n const findFurthestParent = (node) => {\n const { parentId } = node;\n\n if (parentId) {\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const parentNode = _.find(classesLevelsList, { id: parentId });\n\n if (parentNode) {\n return _.get(parentNode, 'parentId') ? findFurthestParent(parentNode) : parentNode;\n }\n } else {\n return node;\n }\n };\n\n const findFurthestChildrenIds = (childrenIds = []) => {\n if (!_.isEmpty(childrenIds)) {\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const ids = _.map(childrenIds, (id) => {\n const node = _.find(classesLevelsList, { id });\n\n return findFurthestChildrenIds(_.get(node, 'childrenIds'));\n });\n\n return [\n ...childrenIds,\n ...(_.compact(_.flattenDeep(ids)))\n ]\n } else {\n return _.compact(_.flattenDeep(childrenIds));\n }\n };\n\n const parseChartsData = () => {\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n console.log('classesLevelsList', classesLevelsList);\n const activeClassesLevelsList = _.filter(classesLevelsList, (item) => _.includes(activeClassesLevelsListItems, item.id));\n const coverageClassificationDataList = _.get(baseData, 'coverageClassificationDataList');\n const aggregatedCoverageClassificationDataList = _.values(_.reduce(coverageClassificationDataList, (result, obj) => {\n const key = `${ obj.year }-${ obj.classTreeNodeId }`;\n const nextValue = result[key] ? result[key].areaInHa + obj.areaInHa : obj.areaInHa;\n\n result[key] = {\n ...obj,\n areaInHa: nextValue\n };\n\n return result;\n }, {}));\n\n const parsedData = _.filter(_.map(aggregatedCoverageClassificationDataList, (item) => {\n const classData = _.find(classesLevelsList, { id: item.classTreeNodeId });\n\n return {\n year: Number(_.replace(item.year, '_', '')),\n areaInHa: item.areaInHa,\n classData,\n };\n }), 'classData');\n const years = _.sortBy(_.uniq(_.map(parsedData, 'year')));\n\n const parsedClassesLevelsList = _.map(activeClassesLevelsList, (classData) => {\n const stringList = _.get(classData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const className = `${ _.join(_.get(classData, 'positionInTree'), '.') }. ${ _.get(selectedString, 'stringValue') }`;\n\n return {\n ...classData,\n name: className,\n data: _.map(years, (year) => {\n const coverageClassificationData = _.find(parsedData, (item) => {\n return item.year === year &&\n item.classData.id === classData.id;\n });\n\n return coverageClassificationData ? _.get(coverageClassificationData, 'areaInHa') : null\n })\n };\n });\n\n const classViewChartData = _(activeClassesLevelsList)\n .filter((node) => {\n const childrenIds = findFurthestChildrenIds(_.get(node, 'childrenIds'));\n const hasAtLeastOneChildrenActive = childrenIds.some(id => activeClassesLevelsListItems.indexOf(id) >= 0);\n\n return !hasAtLeastOneChildrenActive;\n })\n .map((node) => {\n const furthestParent = findFurthestParent(node);\n const currentData = _.find(parsedData, (item) => _.get(item, 'classData.id') === node.id && item.year === activeYear);\n\n return {\n ...currentData,\n furthestParentId: _.get(furthestParent, 'id'),\n furthestParent: furthestParent\n };\n })\n .groupBy('furthestParentId')\n .map((data) => {\n const sampleItem = _.first(data);\n const stringList = _.get(sampleItem, 'furthestParent.i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const totalValue = _.sumBy(data, 'areaInHa');\n\n return {\n name: _.get(selectedString, 'stringValue'),\n value: totalValue,\n itemStyle: {\n color: _.get(sampleItem, 'furthestParent.color')\n },\n }\n })\n .value();\n\n const historicalSeriesChartData = _.map(parsedClassesLevelsList, (item) => {\n return {\n name: item.name,\n color: item.color,\n data: item.data,\n level: item.level,\n padding: item.level * 12,\n };\n });\n\n return {\n years,\n classViewChartData,\n historicalSeriesChartData,\n };\n };\n\n useEffect(() => {\n if (!loadingClassTreeData && !loadingBaseData && baseData) {\n setChartsData(parseChartsData());\n }\n }, [baseData, loadingBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const renderClassViewChart = () => {\n const data = _.get(chartsData, 'classViewChartData');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle } style={ { marginTop: 0 } }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title\" values={{ year: activeYear }} /></h2>\n <PieChart\n serie={{\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.unit'),\n data\n }}\n />\n </div>\n );\n };\n\n const renderHistoricalSeriesChart = () => {\n const years = _.get(chartsData, 'years');\n const data = _.get(chartsData, 'historicalSeriesChartData');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title\" /></h2>\n <LineChart\n categories={ years }\n series={ data }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const classViewChartData = _.get(chartsData, 'classViewChartData');\n const classViewChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title', { year: activeYear }),\n columns: ['Total'],\n rows: _.map(classViewChartData, (item) => {\n return {\n name: _.get(item, 'name'),\n data: [_.get(item, 'value')],\n };\n }),\n };\n\n const years = _.get(chartsData, 'years');\n const historicalSeriesChartData = _.get(chartsData, 'historicalSeriesChartData');\n const historicalSeriesChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title'),\n columns: years,\n rows: historicalSeriesChartData,\n };\n\n onShowData([\n classViewChart,\n historicalSeriesChart,\n ]);\n };\n\n return (\n <Fragment>\n { loadingBaseData &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n <Grid container spacing={ 2 }>\n <Grid item xs={ 6 }></Grid>\n <Grid item xs={ 6 }>\n { renderClassViewChart() }\n </Grid>\n <Grid item xs={ 12 }>\n { renderHistoricalSeriesChart() }\n </Grid>\n </Grid>\n {/* <div id=\"data-view-button\" className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div> */}\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\nexport const GET_BASE_DATA = gql`\n query GetBaseData($territoryIds: [Int!]!, $classTreeId: Int!) {\n coverageClassificationDataList: coverageClassificationDataByTreeList(\n classTreeId: $classTreeId,\n\t\t\tbufferId: null,\n\t\t\tterritoryIds: $territoryIds\n ) {\n territoryId\n year\n classTreeNodeId\n areaInHa\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport Button from '@material-ui/core/Button';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport LineChart from '../../../MapBiomasLandingPage/views/Map/components/StatisticsBox/components/LineChart';\nimport PieChart from '../../../MapBiomasLandingPage/views/Map/components/StatisticsBox/components/PieChart';\n\nimport useFormatMessage from '../../../../hooks/useFormatMessage';\n\nimport styles from '../../TerritoryDashboard.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nconst formatNumber = (value) => {\n return numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n};\n\nexport default function CoveragePieChartContent({\n activeYear,\n classTreeKey = 'default',\n territoryId,\n statisticsDataIsVisible = false,\n onShowData = () => {},\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n const formatMessage = useFormatMessage();\n\n const intl = useIntl()\n\n const [chartsData, setChartsData] = useState(null);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n }\n });\n const classTreeId = _.get(classTreeData, 'classTreeByKey[0].id');\n\n const territoryIds = [territoryId];\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n console.log(' CoveragePieChartContent classesLevelsList', activeClassesLevelsListItems);\n const activeClassesLevelsListItems = _.map(_.filter(classesLevelsList, { level: 1 }), 'id');\n console.log('activeClassesLevelsListItems', activeClassesLevelsListItems);\n const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n territoryIds,\n classTreeId: classTreeId\n },\n skip: _.isEmpty(territoryIds) || !classTreeId || loadingClassTreeData\n });\n\n const findFurthestParent = (node) => {\n const { parentId } = node;\n\n if (parentId) {\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n const parentNode = _.find(classesLevelsList, { id: parentId });\n\n if (parentNode) {\n return _.get(parentNode, 'parentId') ? findFurthestParent(parentNode) : parentNode;\n }\n } else {\n return node;\n }\n };\n\n const findFurthestChildrenIds = (childrenIds = []) => {\n if (!_.isEmpty(childrenIds)) {\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n\n const ids = _.map(childrenIds, (id) => {\n const node = _.find(classesLevelsList, { id });\n\n return findFurthestChildrenIds(_.get(node, 'childrenIds'));\n });\n\n return [\n ...childrenIds,\n ...(_.compact(_.flattenDeep(ids)))\n ]\n } else {\n return _.compact(_.flattenDeep(childrenIds));\n }\n };\n\n const parseChartsData = () => {\n const classesLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n console.log('classesLevelsList', classesLevelsList);\n const activeClassesLevelsList = _.filter(classesLevelsList, (item) => _.includes(activeClassesLevelsListItems, item.id));\n const coverageClassificationDataList = _.get(baseData, 'coverageClassificationDataList');\n const aggregatedCoverageClassificationDataList = _.values(_.reduce(coverageClassificationDataList, (result, obj) => {\n const key = `${ obj.year }-${ obj.classTreeNodeId }`;\n const nextValue = result[key] ? result[key].areaInHa + obj.areaInHa : obj.areaInHa;\n\n result[key] = {\n ...obj,\n areaInHa: nextValue\n };\n\n return result;\n }, {}));\n\n const parsedData = _.filter(_.map(aggregatedCoverageClassificationDataList, (item) => {\n const classData = _.find(classesLevelsList, { id: item.classTreeNodeId });\n\n return {\n year: Number(_.replace(item.year, '_', '')),\n areaInHa: item.areaInHa,\n classData,\n };\n }), 'classData');\n const years = _.sortBy(_.uniq(_.map(parsedData, 'year')));\n\n const parsedClassesLevelsList = _.map(activeClassesLevelsList, (classData) => {\n const stringList = _.get(classData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const className = `${ _.join(_.get(classData, 'positionInTree'), '.') }. ${ _.get(selectedString, 'stringValue') }`;\n\n return {\n ...classData,\n name: className,\n data: _.map(years, (year) => {\n const coverageClassificationData = _.find(parsedData, (item) => {\n return item.year === year &&\n item.classData.id === classData.id;\n });\n\n return coverageClassificationData ? _.get(coverageClassificationData, 'areaInHa') : null\n })\n };\n });\n\n const classViewChartData = _(activeClassesLevelsList)\n .filter((node) => {\n const childrenIds = findFurthestChildrenIds(_.get(node, 'childrenIds'));\n const hasAtLeastOneChildrenActive = childrenIds.some(id => activeClassesLevelsListItems.indexOf(id) >= 0);\n\n return !hasAtLeastOneChildrenActive;\n })\n .map((node) => {\n const furthestParent = findFurthestParent(node);\n const currentData = _.find(parsedData, (item) => _.get(item, 'classData.id') === node.id && item.year === activeYear);\n\n return {\n ...currentData,\n furthestParentId: _.get(furthestParent, 'id'),\n furthestParent: furthestParent\n };\n })\n .groupBy('furthestParentId')\n .map((data) => {\n const sampleItem = _.first(data);\n const stringList = _.get(sampleItem, 'furthestParent.i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const totalValue = _.sumBy(data, 'areaInHa');\n\n return {\n name: _.get(selectedString, 'stringValue'),\n value: totalValue,\n itemStyle: {\n color: _.get(sampleItem, 'furthestParent.color')\n },\n }\n })\n .value();\n\n const historicalSeriesChartData = _.map(parsedClassesLevelsList, (item) => {\n return {\n name: item.name,\n color: item.color,\n data: item.data,\n level: item.level,\n padding: item.level * 12,\n };\n });\n\n return {\n years,\n classViewChartData,\n historicalSeriesChartData,\n };\n };\n\n useEffect(() => {\n if (!loadingClassTreeData && !loadingBaseData && baseData) {\n setChartsData(parseChartsData());\n }\n }, [baseData, loadingBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const renderClassViewChart = () => {\n const data = _.get(chartsData, 'classViewChartData');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title\" values={{ year: activeYear }} /></h2>\n <PieChart\n serie={{\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.unit'),\n data\n }}\n />\n </div>\n );\n };\n\n const renderHistoricalSeriesChart = () => {\n const years = _.get(chartsData, 'years');\n const data = _.get(chartsData, 'historicalSeriesChartData');\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title\" /></h2>\n <LineChart\n categories={ years }\n series={ data }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const classViewChartData = _.get(chartsData, 'classViewChartData');\n const classViewChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.classes_pie.title', { year: activeYear }),\n columns: ['Total'],\n rows: _.map(classViewChartData, (item) => {\n return {\n name: _.get(item, 'name'),\n data: [_.get(item, 'value')],\n };\n }),\n };\n\n const years = _.get(chartsData, 'years');\n const historicalSeriesChartData = _.get(chartsData, 'historicalSeriesChartData');\n const historicalSeriesChart = {\n title: formatMessage('mapbiomas.dashboard.coverage.coverage_main.charts.historical_line.title'),\n columns: years,\n rows: historicalSeriesChartData,\n };\n\n onShowData([\n classViewChart,\n historicalSeriesChart,\n ]);\n };\n\n return (\n <Fragment>\n { loadingBaseData &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { renderClassViewChart() }\n {/* { renderHistoricalSeriesChart() } */}\n {/* <div id=\"data-view-button\" className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div> */}\n </Fragment>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData(\n $classTreeKey: String!,\n ) {\n classTreeByKey(key: $classTreeKey) {\n id\n key\n \ti18nStrings {\n\t\t\t\tlanguage\n\t\t\t\tstringValue\n }\n\t\t\tmvClassTreeLevelsUi {\n id\n color\n classId\n childrenIds\n positionInTree\n level\n parentId\n defaultName\n classTreeId\n pixelValue\n\t\t\t\ti18nStrings {\n\t\t\t\t\tlanguage\n\t\t\t\t\tstringValue\n\t\t\t\t}\n }\n }\n }\n`;\n\n\nexport const GET_BASE_DATA = gql`\n query CalcCoverageByYear(\n $classTreeNodeIds: [Int!]!,\n $filteredActiveClassTreeNodeIds: [Int!]!,\n $activeParentClassTreeNodeIds: [Int!]!,\n $years: [Int!]!,\n $territoriesIds: [Int!]!,\n ) {\n getCalcCoverageWichYears(\n classTreeNodeIds: $activeParentClassTreeNodeIds,\n years: $years,\n territoriesIds: $territoriesIds\n ) {\n average\n maximun\n minimun\n percentage\n areaOccurrence\n distByYears {\n total\n year\n }\n }\n\n getCalcAcumCoverageByClasses(\n classTreeNodeIds: $classTreeNodeIds,\n years: $years,\n territoriesIds: $territoriesIds\n ) {\n acumYear {\n classTreeNodeId\n proporcionality\n total\n }\n year\n }\n\n getCalcAcumCoverageByClassesFiltered: getCalcAcumCoverageByClasses(\n classTreeNodeIds: $filteredActiveClassTreeNodeIds,\n years: $years,\n territoriesIds: $territoriesIds\n ) {\n acumYear {\n classTreeNodeId\n proporcionality\n total\n }\n year\n }\n }\n`;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport _ from 'lodash';\nimport { useQuery } from '@apollo/react-hooks';\nimport { useIntl, FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport Grid from '@material-ui/core/Grid';\nimport LinearProgress from '@material-ui/core/LinearProgress';\nimport TableChartIcon from '@material-ui/icons/TableChart';\n\nimport BarChart from '../../../MapBiomasLandingPage/views/Map/components/StatisticsBox/components/BarChart';\nimport BaseValuesChart from '../../../MapBiomasLandingPage/views/Map/components/StatisticsBox/components/BaseValuesChart';\n\nimport getCustomClient from '../../../../lib/getCustomClient';\n\nimport styles from '../../TerritoryDashboard.module.scss';\n\nimport {\n GET_BASE_DATA,\n GET_CLASS_TREE_DATA,\n} from './query';\n\nexport default function AnnualStatisticsContent({\n clientType,\n activeYear,\n baseParams,\n classTreeKey,\n territoryId,\n statisticsDataIsVisible = false,\n selectedClassTreeIds = [],\n onShowData = () => {},\n themeColor,\n}) {\n const locale = localStorage.getItem('locale') || 'es';\n\n const intl = useIntl()\n\n const mainYear = _.last(activeYear);\n const years = [_.first(activeYear), _.last(activeYear)];\n // const activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n const territoryIds = [territoryId];\n\n const [chartsData, setChartsData] = useState(null);\n const [emptyData, setEmptyData] = useState(false);\n\n const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey\n },\n client: getCustomClient(clientType)\n });\n const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n console.log('le classTreeLevelsList', classTreeLevelsList);\n let filteredActiveClassTreeNodeIds = _.map(_.filter(classTreeLevelsList, { level: 1 }), 'id');\n if (!_.isEmpty(selectedClassTreeIds)) {\n filteredActiveClassTreeNodeIds = _.filter(filteredActiveClassTreeNodeIds, (id) => _.includes(selectedClassTreeIds, id));\n }\n console.log('le filteredActiveClassTreeNodeIds', filteredActiveClassTreeNodeIds);\n const activeClassTreeNodeIds = filteredActiveClassTreeNodeIds;\n const activeParentClassTreeNodeIds = filteredActiveClassTreeNodeIds;\n console.log('filteredActiveClassTreeNodeIds', filteredActiveClassTreeNodeIds);\n // const filteredActiveClassTreeNodeIds = _.filter(activeClassTreeNodeIds, (nodeId) => {\n // const nodeData = _.find(classTreeLevelsList, { id: nodeId });\n // const childrenIds = _.get(nodeData, 'childrenIds');\n\n // if (_.isEmpty(childrenIds)) {\n // return true;\n // } else {\n // return !childrenIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n // }\n // });\n const getParentIds = (nodeId, ids = []) => {\n const nodeData = _.find(classTreeLevelsList, { id: nodeId });\n const parentId = _.get(nodeData, 'parentId');\n\n if (parentId) {\n return getParentIds(parentId, [...ids, parentId]);\n } else {\n return ids;\n }\n };\n // const activeParentClassTreeNodeIds = _.filter(activeClassTreeNodeIds, (nodeId) => {\n // const parentIds = getParentIds(nodeId);\n // const hasSomeParentActive = parentIds.some(id => activeClassTreeNodeIds.indexOf(id) >= 0);\n\n // return !hasSomeParentActive;\n // });\n\n const { data: baseData, loading, error: errorBaseData } = useQuery(GET_BASE_DATA, {\n variables: {\n classTreeNodeIds: activeClassTreeNodeIds,\n filteredActiveClassTreeNodeIds: filteredActiveClassTreeNodeIds,\n activeParentClassTreeNodeIds: activeParentClassTreeNodeIds,\n years: years,\n territoriesIds: territoryIds\n },\n skip: loadingClassTreeData,\n client: getCustomClient(clientType)\n });\n\n const getTotalAreaByClassesData = () => {\n const data = _.get(baseData, 'getCalcAcumCoverageByClasses');\n const years = _.map(data, 'year');\n\n const classTreeNodeData = {};\n\n _.each(activeClassTreeNodeIds, (nodeId) => {\n _.each(years, (year) => {\n const yearData = _.find(data, { year });\n const nodeData = _.find(_.get(yearData, 'acumYear'), { classTreeNodeId: nodeId });\n const value = _.get(nodeData, 'total') || null;\n const nodeValues = _.get(classTreeNodeData, nodeId);\n\n if (nodeValues) {\n _.set(classTreeNodeData, nodeId, [...nodeValues, value]);\n } else {\n _.set(classTreeNodeData, nodeId, [value]);\n }\n });\n });\n\n const parsedSeries = _.map(_.keys(classTreeNodeData), (nodeId) => {\n const parsedNodeId = Number(nodeId);\n const nodeData = _.find(classTreeLevelsList, { id: parsedNodeId });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n const prettyIndexOfNodeInTree = _.join(_.get(nodeData, 'positionInTree'), '.');\n\n return {\n nodeId: parsedNodeId,\n stack: 'year',\n name: `${ prettyIndexOfNodeInTree }. ${ label }`,\n color: _.get(nodeData, 'color') || '#e74c3c',\n data: _.get(classTreeNodeData, nodeId),\n };\n });\n const sortedSeries = _.sortBy(parsedSeries, 'name');\n const filteredSeries = _.filter(sortedSeries, ({ nodeId }) => _.includes(filteredActiveClassTreeNodeIds, nodeId));\n\n return {\n categories: years,\n series: sortedSeries,\n filteredSeries,\n };\n };\n\n const getPercentageAreaByClasses = () => {\n const data = _.get(baseData, 'getCalcAcumCoverageByClassesFiltered');\n const years = _.map(data, 'year');\n\n const classTreeNodeData = {};\n\n _.each(filteredActiveClassTreeNodeIds, (nodeId) => {\n _.each(years, (year) => {\n const yearData = _.find(data, { year });\n const nodeData = _.find(_.get(yearData, 'acumYear'), { classTreeNodeId: nodeId });\n const value = _.get(nodeData, 'proporcionality') || null;\n const nodeValues = _.get(classTreeNodeData, nodeId);\n\n if (nodeValues) {\n _.set(classTreeNodeData, nodeId, [...nodeValues, value]);\n } else {\n _.set(classTreeNodeData, nodeId, [value]);\n }\n });\n });\n\n const parsedSeries = _.map(_.keys(classTreeNodeData), (nodeId) => {\n const parsedNodeId = Number(nodeId);\n const nodeData = _.find(classTreeLevelsList, { id: parsedNodeId });\n const stringList = _.get(nodeData, 'i18nStrings');\n const selectedString = _.find(stringList, { language: locale });\n const label = _.get(selectedString, 'stringValue');\n const prettyIndexOfNodeInTree = _.join(_.get(nodeData, 'positionInTree'), '.');\n\n return {\n nodeId: parsedNodeId,\n stack: 'year',\n name: `${ prettyIndexOfNodeInTree }. ${ label }`,\n color: _.get(nodeData, 'color') || '#e74c3c',\n data: _.get(classTreeNodeData, nodeId),\n };\n });\n const sortedSeries = _.sortBy(parsedSeries, 'name');\n\n return {\n categories: years,\n series: sortedSeries,\n filteredSeries: sortedSeries\n };\n };\n\n useEffect(() => {\n const sampleData = _.get(baseData, 'getCalcCoverageWichYears[0].maximun');\n\n if ((!loading && errorBaseData) || _.isNull(sampleData)) {\n setEmptyData(true);\n } else {\n setEmptyData(false);\n }\n\n if (!loadingClassTreeData && !loading && baseData) {\n setChartsData({\n 'totalAreaByClasses': getTotalAreaByClassesData(),\n 'percentageAreaByClasses': getPercentageAreaByClasses(),\n });\n }\n }, [baseData, loading, loadingClassTreeData, errorBaseData]);\n\n useEffect(() => {\n if (statisticsDataIsVisible) {\n handleShowData();\n }\n }, [chartsData]);\n\n const areaByPeriod = () => {\n const data = _.get(baseData, 'getCalcCoverageWichYears[0]');\n const distByYears = _.get(data, 'distByYears') || [];\n const total = _.get(data, 'areaOccurrence') || 0;\n const maxValue = _.get(data, 'maximun') || 0;\n const maxYear = _.get(_.find(distByYears, { total: maxValue }), 'year');\n const averageValue = _.get(data, 'average') || 0;\n const minValue = _.get(data, 'minimun') || 0;\n const minYear = _.get(_.find(distByYears, { total: minValue }), 'year');\n const averagePercentage = (averageValue / maxValue) * 100;\n const minPercentage = (minValue / maxValue) * 100;\n\n const customTotal = _.get(_.find(distByYears, { year: mainYear }), 'total') || null;\n const isCustom = classTreeKey === 'mining_annual' ||\n classTreeKey === 'quality_of_pasture_main' ||\n classTreeKey === 'regeneration_annual_by_class' ||\n classTreeKey === 'irrigation_main' ||\n classTreeKey === 'deforestation_annual_by_class';\n\n return (\n <BaseValuesChart\n title={ !isCustom ? (intl.formatMessage({id: 'mapbiomas.statistics.area.period'})) : `${intl.formatMessage({id: 'mapbiomas.statistics.area.title'})} - ${ mainYear }` }\n totalTitle=\"Total\"\n total={ !isCustom ? total : customTotal }\n maxValue={ maxValue }\n maxYear={ maxYear }\n averageValue={ averageValue }\n averagePercentage={ averagePercentage }\n minValue={ minValue }\n minYear={ minYear }\n minPercentage={ minPercentage }\n color={ themeColor }\n />\n );\n };\n\n const totalAreaByClasses = () => {\n const categories = _.get(chartsData, 'totalAreaByClasses.categories') || [];\n const series = _.get(chartsData, 'totalAreaByClasses.filteredSeries') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.anual_statistics_content.area_title\" /></h2>\n <BarChart\n categories={ categories }\n series={ series }\n />\n </div>\n );\n };\n\n const percentageAreaByClasses = () => {\n const categories = _.get(chartsData, 'percentageAreaByClasses.categories') || [];\n const series = _.get(chartsData, 'percentageAreaByClasses.filteredSeries') || [];\n\n return (\n <div className={ styles.section }>\n <h2 className={ styles.secondaryTitle }><FormattedMessage id=\"mapbiomas.anual_statistics_content.proportion_title\" /></h2>\n <BarChart\n isPercentage\n categories={ categories }\n series={ series }\n />\n </div>\n );\n };\n\n const handleShowData = () => {\n const totalAreaByClassesChartData = _.get(chartsData, 'totalAreaByClasses');\n const totalAreaByClassesChartDataCategories = _.get(totalAreaByClassesChartData, 'categories') || [];\n const totalAreaByClassesChartDataSeries = _.get(totalAreaByClassesChartData, 'series') || [];\n\n const totalAreaByClassesChart = {\n title: <FormattedMessage id=\"mapbiomas.anual_statistics_content.area_title\" />,\n columns: totalAreaByClassesChartDataCategories,\n rows: totalAreaByClassesChartDataSeries\n };\n\n const percentageAreaByClassesChartData = _.get(chartsData, 'percentageAreaByClasses');\n const percentageAreaByClassesChartDataCategories = _.get(percentageAreaByClassesChartData, 'categories') || [];\n const percentageAreaByClassesChartDataSeries = _.get(percentageAreaByClassesChartData, 'series') || [];\n\n const percentageAreaByClassesChart = {\n title: <FormattedMessage id=\"mapbiomas.anual_statistics_content.proportion_title\" />,\n columns: percentageAreaByClassesChartDataCategories,\n rows: percentageAreaByClassesChartDataSeries\n };\n\n onShowData([\n totalAreaByClassesChart,\n percentageAreaByClassesChart\n ]);\n };\n\n const renderData = () => {\n if (emptyData) {\n return null;\n }\n\n return (\n <Fragment>\n <Grid container spacing={ 2 }>\n <Grid item xs={ 6 }></Grid>\n <Grid item xs={ 6 }>\n { areaByPeriod() }\n </Grid>\n <Grid item xs={ 12 }>\n { totalAreaByClasses() }\n </Grid>\n </Grid>\n {/* { percentageAreaByClasses() }\n <div className={ styles.actionWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"small\"\n onClick={ handleShowData }\n className={ styles.actionButton }\n >\n <TableChartIcon />\n <span><FormattedMessage id=\"mapbiomas.statistics.view_data\" /></span>\n </Button>\n </div> */}\n </Fragment>\n );\n };\n\n return (\n <Fragment>\n { loading &&\n <div className={ styles.progressWrapper }>\n <LinearProgress />\n </div>\n }\n { emptyData &&\n <div className={ styles.infoBox }>\n <p><FormattedMessage id=\"mapbiomas.statistics.processing_data\" /></p>\n </div>\n }\n { renderData() }\n </Fragment>\n );\n}\n","import React, { Fragment, useEffect, useState } from 'react';\nimport _ from 'lodash';\n\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\n\nimport TerritoryAutocomplete from '../MapBiomasLandingPage/layout/Header/components/BaseForm/components/TerritoryAutocomplete';\nimport ModuleIconComponent from '../MapBiomasLandingPage/layout/Header/ModuleIconComponent';\n\nimport PageFooter from '../MapBiomasLogin/components/PageFooter';\n\nimport CoverageMainStatisticsContent from './content/CoverageMainStatisticsContent';\nimport CoveragePieChartContent from './content/CoveragePieChartContent';\nimport AnnualStatisticsContent from './content/AnnualStatisticsContent';\n\nimport logo from './logo.svg';\n\nimport styles from './TerritoryDashboard.module.scss';\n\nconst baseParams = {\n \"groupType\": \"territorial\",\n \"territory\": 193,\n \"territories\": [\n {\n \"id\": 193,\n \"label\": \"Altamira (PA)\",\n \"territoryTypeId\": 4,\n \"territoryTypeLabel\": \"MunicÃpio\",\n \"territoryBBox\": [\n [\n -9.645178150999953,\n -55.623870985999986\n ],\n [\n -2.9887168529999784,\n -51.64753782599993\n ]\n ],\n \"__typename\": \"AppBaseParamsActiveTerritoryItemState\"\n }\n ],\n \"classesViewMode\": \"class\",\n \"activeClassTreeNodeIds\": [],\n \"activeClassTreeOptionValue\": null,\n \"activeObjectTreeNodeIds\": [],\n \"activeSubmodule\": null,\n \"activeClassesLevelsListItems\": [\n 1,\n 7,\n 8,\n 9,\n 10,\n 2,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 3,\n 17,\n 18,\n 27,\n 37,\n 38,\n 39,\n 40,\n 41,\n 28,\n 42,\n 43,\n 44,\n 19,\n 20,\n 4,\n 21,\n 22,\n 23,\n 24,\n 5,\n 25,\n 26,\n 6\n ],\n \"activeTransitionsClassesListItems\": null,\n \"activePastureQualityQualityClassesListItems\": null,\n \"yearRange\": \"1985-2021\",\n \"buffer\": 0,\n \"__typename\": \"AppBaseParamsState\"\n};\n\nconst COVERAGE_TREE_NODE_IDS = '1,7,8,9,10,2,11,12,13,14,15,16,3,17,18,27,37,38,39,40,41,28,42,43,44,19,20,4,21,22,23,24,5,25,26,6';\nconst COVERAGE_NATURAL_OR_ANTHROPIC_TREE_NODE_IDS = '48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,75,47';\nconst DEFORESTATION_TREE_NODE_IDS = '254,256,269,270,271,272,257,273,274,275,276,277,255,258,278,279,280,281,259,282,283,284,285,286';\nconst QUALITY_OF_PASTURE_TREE_NODE_IDS = '79,80,81';\nconst REGENERATION_TREE_NODE_IDS = '383,387,442,443,444,445,388,446,447,448,449,450,451,384,389,452,453,454,456,458,459,460,461,462,457,463,464,465,455';\nconst IRRIGATION_TREE_NODE_IDS = '181,184,189,190,191,252,185,192,193,194,182,186,195,196,197,253,187,198,199,200,183,188,201';\nconst MINING_TREE_NODE_IDS = '82,84,151,152,153,154,155,156,157,158,159,160,161,162,163,164,85,165,166,167,168,169,170,86,171,172,87,173,174,175,83,88,176,177,89,178,90,179,180';\nconst FIRE_TREE_NODE_IDS = '202,207,208,209,210,203,211,212,213,214,215,204,216,217,218,219,220,221,222,223,224,225,205,226,227,228,229,206,230,231';\n\nfunction Triangle({\n title,\n subtitle,\n color\n}) {\n return (\n <div className={ styles.sectionTitleBox }>\n <div className={ styles.triangleArrow } style={ { borderLeftColor: color } } />\n <div className={ styles.sectionTitleBoxTitleWrapper }>\n <h1 className={ styles.sectionTitleBoxTitle }>{ title }</h1>\n { subtitle &&\n <h2 className={ styles.sectionTitleBoxSubtitle }>{ subtitle }</h2>\n }\n </div>\n </div>\n );\n}\n\nconst MODULES = [\n { key: 'coverage', label: 'Cobertura' },\n // { key: 'coverage_quality', label: '' },\n // { key: 'temporal_analysis', label: '' },\n { key: 'quality_of_pasture_data', label: 'Pastagem' },\n { key: 'deforestation', label: 'Desmatamento' },\n { key: 'regeneration', label: 'Regeneração' },\n // { key: 'infrastructure', label: '' },\n { key: 'irrigation', label: 'Irrigação' },\n { key: 'fire', label: 'Fogo' },\n // { key: 'scenarios', label: '' },\n { key: 'water', label: 'Ãgua' },\n { key: 'mining', label: 'Mineração' },\n];\n\nexport default function TerritoryDashboard() {\n const [territory, setTerritory] = useState({\n \"id\": 193,\n \"label\": \"Altamira (PA)\",\n \"boundingBox\": [\n [\n -9.645178150999953,\n -55.623870985999986\n ],\n [\n -2.9887168529999784,\n -51.64753782599993\n ]\n ]\n });\n\n const bbox = _.get(territory, 'boundingBox');\n const territoryId = _.get(territory, 'id');\n const territoryBoundingBox = `${ _.get(bbox, '[0][1]') },${ _.get(bbox, '[0][0]') },${ _.get(bbox, '[1][1]') },${ _.get(bbox, '[1][0]') }`;\n\n const handleTerritoryChange = (data) => {\n console.log('territory change', data);\n setTerritory(data);\n };\n\n const renderTerritoryImage = (module, year, nodeIds) => {\n const wfsParams = [\n 'service=WMS',\n 'request=GetMap',\n `layers=${ module }`,\n 'format=image/png',\n 'transparent=true',\n 'version=1.1.1',\n `territory_ids=${ territoryId }`,\n `year=${ year }`,\n `class_tree_node_ids=${ nodeIds }`,\n 'width=220',\n 'height=220',\n 'srs=EPSG:4326',\n `bbox=${ territoryBoundingBox }`\n ];\n const params = wfsParams.join('&');\n\n return (\n <div className={ styles.imageBox }>\n <img src={ `https://production.alerta.mapbiomas.org/geoserver/mapbiomas-alertas/wms?service=WMS&request=GetMap&layers=mapbiomas-alertas:dashboard_cities-static-layer&format=image/png&transparent=true&version=1.1.1&width=220&height=220&srs=EPSG:4326&bbox=${ territoryBoundingBox }`} />\n <img src={ `https://brasil.mapserver.mapbiomas.org/wms/${ module }.map?${ params }`} />\n </div>\n );\n };\n\n const renderSectionTitle = (title, subtitle, color) => {\n return (\n <Triangle\n title={ title }\n subtitle={ subtitle }\n color={ color }\n />\n );\n };\n\n return (\n <div className={ styles.wrapper }>\n <div className={ styles.content }>\n <a href=\"https://mapbiomas.org/\">\n <img src={ logo } className={ styles.logo } alt=\"Logo MapBiomas\" />\n </a>\n <Paper className={ styles.formBox }>\n <TerritoryAutocomplete\n activeTerritories={ [territory] }\n categoryId={ 4 }\n label={ null }\n placeholder=\"Selecione um municÃpio...\"\n onChange={ handleTerritoryChange }\n />\n </Paper>\n <Paper className={ styles.contentBox }>\n <div className={ styles.contentWrapper }>\n <div className={ styles.contentTitleWrapper }>\n <h1 className={ styles.contentTitle }>Conheça os dados do<br />municÃpio de<br /><b>{ _.get(territory, 'label') }</b></h1>\n <p>Nesse relatório você terá dados sobre cobertura, desmatamento, regeneração, pastagem, irrigação, mineração, água e fogo</p>\n </div>\n <div className={ styles.modulesBlock }>\n <Grid container spacing={ 2 } alignItems=\"center\">\n { _.map(MODULES, (module) => {\n return (\n <Grid item xs={ 3 } key={ module.key }>\n <li className={ styles.moduleBlock }>\n <span className={ styles.moduleBlockIcon }>\n <ModuleIconComponent moduleKey={ module.key } />\n </span>\n <span className={ styles.moduleBlockTitle }>{ module.label }</span>\n </li>\n </Grid>\n );\n }) }\n </Grid>\n </div>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle(_.get(territory, 'label')) }\n </Grid>\n <Grid item xs={ 6 }>\n { renderTerritoryImage('coverage', 2021, COVERAGE_TREE_NODE_IDS) }\n </Grid>\n </Grid>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle('Cobertura e Uso da Terra', undefined, '#16a085') }\n </Grid>\n <Grid item xs={ 6 }>\n <p className={ styles.sectionTitleBoxInfo }>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque elementum turpis vitae condimentum. Proin venenatis metus dui, a tempus massa posuere sed.</p>\n </Grid>\n </Grid>\n <section className={ styles.moduleContentWrapper }>\n { renderTerritoryImage('coverage', 2021, COVERAGE_TREE_NODE_IDS) }\n <CoverageMainStatisticsContent\n activeYear={ 2021 }\n territoryId={ territoryId }\n />\n </section>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle('Cobertura e Uso da Terra', 'Natural e Antrópico', '#16a085') }\n </Grid>\n <Grid item xs={ 6 }>\n <p className={ styles.sectionTitleBoxInfo }>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque elementum turpis vitae condimentum. Proin venenatis metus dui, a tempus massa posuere sed.</p>\n </Grid>\n </Grid>\n <Grid container spacing={ 2 } alignItems=\"center\" justifyContent=\"space-evenly\">\n <Grid item xs={ 6 } className={ styles.yearBlockImage }>\n <h2 className={ styles.yearTitle }>1985</h2>\n { renderTerritoryImage('coverage', 1985, COVERAGE_NATURAL_OR_ANTHROPIC_TREE_NODE_IDS) }\n <CoveragePieChartContent\n activeYear={ 1985 }\n classTreeKey=\"natural_or_anthropic\"\n territoryId={ territoryId }\n />\n </Grid>\n <Grid item xs={ 6 } className={ styles.yearBlockImage }>\n <h2 className={ styles.yearTitle }>2021</h2>\n { renderTerritoryImage('coverage', 2021, COVERAGE_NATURAL_OR_ANTHROPIC_TREE_NODE_IDS) }\n <CoveragePieChartContent\n activeYear={ 2021 }\n classTreeKey=\"natural_or_anthropic\"\n territoryId={ territoryId }\n />\n </Grid>\n </Grid>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle('Desmatamento', undefined, '#e74c3c') }\n </Grid>\n <Grid item xs={ 6 }>\n <p className={ styles.sectionTitleBoxInfo }>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque elementum turpis vitae condimentum. Proin venenatis metus dui, a tempus massa posuere sed.</p>\n </Grid>\n </Grid>\n <section className={ styles.moduleContentWrapper }>\n { renderTerritoryImage('deforestation_annual', 2020, DEFORESTATION_TREE_NODE_IDS) }\n <AnnualStatisticsContent\n activeYear={ [1987, 2020] }\n classTreeKey=\"deforestation_annual_by_class\"\n territoryId={ territoryId }\n themeColor=\"#e74c3c\"\n />\n </section>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle('Vegetação Secundária', undefined, '#27ae60') }\n </Grid>\n <Grid item xs={ 6 }>\n <p className={ styles.sectionTitleBoxInfo }>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque elementum turpis vitae condimentum. Proin venenatis metus dui, a tempus massa posuere sed.</p>\n </Grid>\n </Grid>\n <section className={ styles.moduleContentWrapper }>\n { renderTerritoryImage('regeneration_annual', 2019, REGENERATION_TREE_NODE_IDS) }\n <AnnualStatisticsContent\n activeYear={ [1987, 2019] }\n classTreeKey=\"regeneration_annual_by_class\"\n territoryId={ territoryId }\n selectedClassTreeIds={ [383, 384] }\n themeColor=\"#27ae60\"\n />\n </section>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle('Qualidade da Pastagem', undefined, '#f39c12') }\n </Grid>\n <Grid item xs={ 6 }>\n <p className={ styles.sectionTitleBoxInfo }>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque elementum turpis vitae condimentum. Proin venenatis metus dui, a tempus massa posuere sed.</p>\n </Grid>\n </Grid>\n <section className={ styles.moduleContentWrapper }>\n { renderTerritoryImage('quality_of_pasture_data_main', 2021, QUALITY_OF_PASTURE_TREE_NODE_IDS) }\n <AnnualStatisticsContent\n activeYear={ [2000, 2021] }\n classTreeKey=\"quality_of_pasture_main\"\n territoryId={ territoryId }\n themeColor=\"#f39c12\"\n />\n </section>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle('Mineração', undefined, '#f39c12') }\n </Grid>\n <Grid item xs={ 6 }>\n <p className={ styles.sectionTitleBoxInfo }>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque elementum turpis vitae condimentum. Proin venenatis metus dui, a tempus massa posuere sed.</p>\n </Grid>\n </Grid>\n <section className={ styles.moduleContentWrapper }>\n { renderTerritoryImage('mining_main', 2021, MINING_TREE_NODE_IDS) }\n <AnnualStatisticsContent\n activeYear={ [1985, 2021] }\n classTreeKey=\"mining_main\"\n territoryId={ territoryId }\n themeColor=\"#f39c12\"\n />\n </section>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle('Fogo', undefined, '#e74c3c') }\n </Grid>\n <Grid item xs={ 6 }>\n <p className={ styles.sectionTitleBoxInfo }>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque elementum turpis vitae condimentum. Proin venenatis metus dui, a tempus massa posuere sed.</p>\n </Grid>\n </Grid>\n <section className={ styles.moduleContentWrapper }>\n { renderTerritoryImage('fire_annual', 2020, FIRE_TREE_NODE_IDS) }\n <AnnualStatisticsContent\n activeYear={ [1985, 2022] }\n classTreeKey=\"fire_annual\"\n territoryId={ territoryId }\n themeColor=\"#e74c3c\"\n />\n </section>\n <Grid container spacing={ 2 } alignItems=\"center\" className={ styles.sectionTitleGrid }>\n <Grid item xs={ 6 }>\n { renderSectionTitle('Irrigação', undefined, '#b731ce') }\n </Grid>\n <Grid item xs={ 6 }>\n <p className={ styles.sectionTitleBoxInfo }>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque elementum turpis vitae condimentum. Proin venenatis metus dui, a tempus massa posuere sed.</p>\n </Grid>\n </Grid>\n <section className={ styles.moduleContentWrapper }>\n { renderTerritoryImage('irrigation_main', 2021, IRRIGATION_TREE_NODE_IDS) }\n <AnnualStatisticsContent\n activeYear={ [1985, 2021] }\n classTreeKey=\"irrigation_main\"\n territoryId={ territoryId }\n themeColor=\"#b731ce\"\n />\n </section>\n </div>\n </Paper>\n </div>\n <PageFooter/>\n </div>\n );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_ACCURACIES = gql`\n query GetAccuracies($level: String!, $biome: String!, $year: Int!) {\n accuracies(level: $level, biome: $biome, year: $year) {\n quantityTot\n confusionUserRight {\n classId\n value\n }\n confusionUserLeft {\n classId\n idClassMap\n value\n }\n confusionProdRight {\n classId\n value\n }\n confusionProdLeft {\n classId\n idClassMap\n value\n }\n allocationTot\n globalAccuracy\n overallAccuracy {\n value\n year\n }\n producerAccuracy {\n classId\n statistics {\n value\n year\n }\n }\n userAccuracy {\n classId\n statistics {\n value\n year\n }\n }\n }\n }\n`;\n\nexport const GET_BIOMES = gql`\n query AccuracyBiomes {\n accuracyBiomes\n }\n`;\n\nexport const GET_LEVELS = gql`\n query AccuracyLevels {\n accuracyLevels\n }\n`;\n\nexport const GET_YEARS = gql`\n query AccuracyYears {\n accuracyYears\n }\n`;\n\nexport const GET_CLASS_TREE_DATA = gql`\n query GetClassTreeData($classTreeKey: String!) {\n classTreeByKey(key: $classTreeKey) {\n mvClassTreeLevelsUi {\n pixelValue\n classId\n defaultName\n color\n }\n }\n }\n`;\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\nimport numbro from 'numbro';\n\nfunction tooltipFormatter(params) {\n const colorSpan = (color) => `<br /><span style=\"display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:${ color }\"></span>`;\n let str = `<span>${ params[0].axisValue }</span>`;\n\n params.forEach((item) => {\n const value = _.isObject(item.data) ? item.data.value : item.data;\n\n if (value) {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n const paramValue = `<span>${ colorSpan(item.color) } ${ item.seriesName }: ${ valueLabel }</span>`;\n\n str += paramValue;\n }\n });\n\n return str;\n}\n\nexport default function LineChart({\n categories = [],\n series = [],\n}) {\n return (\n <ReactEcharts\n style={ { height: 380 } }\n option={ {\n tooltip: {\n confine: true,\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 13\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n trigger: \"axis\",\n // formatter: tooltipFormatter,\n },\n grid: {\n top: \"8%\",\n right: \"20px\",\n bottom: \"8%\",\n left: \"20px\",\n containLabel: true\n },\n xAxis: {\n type: \"category\",\n axisPointer: {\n type: \"shadow\"\n },\n axisLabel: {\n fontSize: 11,\n color: \"#767676\"\n },\n axisLine: {\n color: \"#DDD\"\n },\n boundaryGap: false,\n data: categories\n },\n legend: {\n show: false\n },\n yAxis: {\n axisTick: {\n show: false\n },\n axisLine: {\n color: \"#DDD\"\n },\n splitLine: {\n lineStyle: {\n color: \"rgba(0, 0, 0, 0.05)\"\n }\n },\n axisLabel: {\n formatter: (value) => {\n const valueLabel = numbro(value).format({\n thousandSeparated: true,\n mantissa: 0\n });\n \n return valueLabel;\n },\n fontSize: 11,\n color: \"#767676\"\n }\n },\n series: _.map(series, (serie) => {\n return {\n ...serie,\n type: 'line',\n // smooth: true,\n };\n }),\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download',\n }\n }\n },\n } }\n notMerge={ true }\n />\n );\n}\n","import React from 'react';\nimport ReactEcharts from 'echarts-for-react';\nimport _ from 'lodash';\n\nexport default function BarChart({\n categories = [],\n series = [],\n}) {\n return (\n <ReactEcharts\n style={ { height: 500 } }\n option={ {\n tooltip: {\n confine: true,\n textStyle: {\n align: \"left\",\n color: \"#444\",\n fontSize: 13\n },\n backgroundColor: \"#FFFFFF\",\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: 1,\n extraCssText: \"box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.05);\",\n trigger: \"axis\",\n },\n grid: {\n top: \"8%\",\n right: \"20px\",\n bottom: \"8%\",\n left: \"20px\",\n containLabel: true\n },\n xAxis: [\n {\n type: 'value'\n }\n ],\n legend: {\n show: false\n },\n yAxis: [\n {\n type: 'category',\n axisTick: {\n show: false\n },\n data: categories\n }\n ],\n series: _.map(series, (serie) => {\n return {\n ...serie,\n stack: 'classId',\n type: 'bar',\n smooth: true,\n };\n }),\n toolbox: {\n feature: {\n saveAsImage: {\n name: 'MapBiomas',\n title: 'Download',\n }\n }\n },\n } }\n notMerge={ true }\n />\n );\n}\n","import React from 'react';\n\nimport {\n BrowserRouter as Router,\n Route,\n Switch,\n} from 'react-router-dom';\n\nimport {\n Query\n} from 'react-apollo';\n\nimport {\n get,\n keys,\n map,\n concat,\n defaults,\n} from 'lodash';\n\nimport {\n GET_USER,\n GET_USER_ID,\n} from './queries';\n\nimport redirect from './redirect';\nimport AppContext from '../context/app-context';\n\nimport ConfirmationPage from '../../pages/ConfirmationPage';\nimport MapBiomasLandingPage from '../../pages/MapBiomasLandingPage';\nimport MapBiomasCreatePassword from '../../pages/MapBiomasCreatePassword';\nimport MapBiomasLogin from '../../pages/MapBiomasLogin';\nimport MapBiomasPasswordRecovery from '../../pages/MapBiomasPasswordRecovery';\nimport MapBiomasCreateAccount from '../../pages/MapbiomasCreateAccount';\nimport LoginToForum from '../../pages/LoginToForum';\nimport TerritoryDashboard from '../../pages/TerritoryDashboard';\nimport FireHotsitePage from '../../pages/FireHotsitePage';\n\nimport mapModuleToPathname from '../../data/mapModuleToPathname';\nimport Accuracy from '../../pages/Accuracy';\n\nconst modulesRoutes = map(keys(mapModuleToPathname), (pathname) => {\n return { path: pathname, component: MapBiomasLandingPage };\n});\n\nconst routes = {\n all: [\n { path: '/', component: MapBiomasLandingPage },\n { path: '/agua', component: MapBiomasLandingPage },\n { path: '/monitor-do-fogo', component: MapBiomasLandingPage },\n { path: '/hotsite-fogo', component: FireHotsitePage },\n { path: '/pistas-de-pouso', component: MapBiomasLandingPage },\n { path: '/dinamica-dos-pivos', component: MapBiomasLandingPage },\n { path: '/recifes-de-coral', component: MapBiomasLandingPage },\n\n // Modules pathname routes\n ...modulesRoutes,\n\n { path: '/recuperar-senha', component: MapBiomasCreatePassword },\n { path: '/login', component: MapBiomasLogin },\n { path: '/esqueci-minha-senha', component: MapBiomasPasswordRecovery },\n { path: '/criar-minha-conta', component: MapBiomasCreateAccount },\n { path: '/confirmar-conta', component: ConfirmationPage },\n { path: '/dashboard-territorio', component: TerritoryDashboard },\n { path: '/acuracia', component: Accuracy },\n ],\n unauthenticated: [\n ],\n authenticated: [\n { path: '/discourse/sso', component: LoginToForum },\n ],\n};\n\nconst renderRoutes = ({ data, _loading }) => {\n let user = get(data, 'user', localStorage.getItem('token'));\n let routesToRender = user ? routes.authenticated : routes.unauthenticated;\n routesToRender = concat(routesToRender, routes.all);\n\n return (\n <Router>\n <AppContext.Provider value={ user }>\n <Switch>\n {\n map(routesToRender, (route, i) => {\n let routeProps = defaults({}, route, { key: i, exact: true });\n if (route.redirect) {\n routeProps.component = redirect(route.redirect);\n }\n\n return <Route { ...routeProps } />;\n })\n }\n </Switch>\n </AppContext.Provider>\n </Router>\n );\n};\n\nconst Routes = () => (\n <Query query={ GET_USER_ID }>\n { ({ data, _loading }) => {\n return (\n <Query query={ GET_USER } variables={{ id: get(data, 'currentUserId', 0) }}>\n { renderRoutes }\n </Query>\n );\n } }\n </Query>\n);\n\nexport default Routes;\n","import React from 'react';\n\nexport default function FireHotsitePage() {\n return (\n <iframe\n width={ window.innerWidth }\n height={ window.innerHeight }\n frameBorder=\"0\"\n marginHeight=\"0\"\n marginWidth=\"0\"\n title=\"MapBiomas Hotsite Fogo\"\n src=\"https://mapbiomasfogocol3v1.netlify.app/\"\n />\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport Paper from '@material-ui/core/Paper';\nimport TextField from '@material-ui/core/TextField';\n\nimport toast from '../../utils/toast';\nimport { request } from '../../utils/api';\n\nimport validatePassword from '../../helpers/validatePassword';\n\nimport useFormatMessage from '../../hooks/useFormatMessage';\n\nimport logo from './logo.svg';\n\nimport styles from './MapBiomasCreatePassword.module.scss';\nimport { Typography } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport FormFooter from '../MapBiomasLogin/components/FormFooter';\nimport PageFooter from '../MapBiomasLogin/components/PageFooter';\n\nexport default function MapBiomasCreatePassword() {\n let recoveryToken = null;\n\n const callbackUrl = new URL(window.location.href).searchParams.get('callback_url');\n const urlToken = new URL(window.location.href).searchParams.get('token')\n !!urlToken\n ? recoveryToken = urlToken\n : window.location.href = '/';\n\n const formatMessage = useFormatMessage();\n const [state, setState] = useState({\n password: '',\n passwordConfirmation: '',\n paramsToJSON: {},\n });\n const [windowHeight, setWindowHeight] = useState(window.innerHeight);\n\n function updateHeight() {\n setWindowHeight(window.innerHeight);\n }\n const debouncedUpdateHeight = _.debounce(updateHeight, 500);\n\n useEffect(() => {\n if(!!location.search.substring(1).includes('request_params')){\n let paramsToJSONCopy = JSON.parse('{\"' + decodeURI(location.search.substring(1)).replace(/\"/g, '\\\\\"').replace(/&/g, '\",\"').replace(/=/g,'\":\"') + '\"}')\n delete paramsToJSONCopy[\"token\"]\n setState({\n ...state,\n paramsToJSON:{\n ...paramsToJSONCopy\n }\n })\n }\n window.addEventListener('resize', debouncedUpdateHeight);\n\n return () => {\n window.removeEventListener('resize', debouncedUpdateHeight)\n };\n }, []);\n\n const handleTextChange = (paramKey, event) => {\n handleStateChange(paramKey, event.target.value);\n };\n\n const handleStateChange = (paramKey, paramValue) => {\n setState({\n ...state,\n [paramKey]: paramValue\n });\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const {\n password,\n passwordConfirmation\n } = state;\n const API_URL = process.env.REACT_APP_MAPBIOMAS_LOGIN_API_BASE_URL;\n\n if (!validatePassword(password, passwordConfirmation)) { return; }\n\n const payload = {\n token: urlToken,\n password,\n request_params: { ...state.paramsToJSON }\n };\n fetch(`${API_URL}/v1/users/password_recovery`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify(payload)\n })\n .then((response) => response.json())\n .then((data) => {\n\n if (data.user) {\n window.location.href = `/login?${new URLSearchParams(state.paramsToJSON).toString()}`;\n }else {\n toast(data.errors[0], 'error');\n }\n })\n .catch(() => {\n toast(formatMessage('mapbiomas.toast.error'), 'error');\n });\n };\n\n const handleConfirmPassword = () => {\n if(\n (state.password == '' || state.passwordConfirmation == '') ||\n (state.password !== state.passwordConfirmation)\n ){\n return true\n }\n\n return false\n }\n\n const isCreatePasswordButtonDisabled = handleConfirmPassword()\n\n return (\n <div className={ styles.wrapper } style={ { height: windowHeight } }>\n <div className={ styles.content }>\n <img src={ logo } className={ styles.logo } alt=\"Logo MapBiomas\" />\n <Paper className={ styles.box }>\n <div className={ styles.contentWrapper }>\n <h1 className={ styles.title }><FormattedMessage id=\"mapbiomas.user.password_create.title\" /></h1>\n <Typography className={ styles.subtitle }><FormattedMessage id=\"mapbiomas.user.password_create.subtitle\" /></Typography>\n <form onSubmit={ handleSubmit }>\n <FormControl className={ styles.formControl }>\n <TextField\n id=\"password-field\"\n label={ formatMessage('mapbiomas.user.password_create.fields.password') }\n variant=\"outlined\"\n type=\"password\"\n className={ styles.filterFormInput }\n value={ state.password }\n onChange={ handleTextChange.bind(this, 'password') }\n required\n />\n </FormControl>\n <FormControl className={ styles.formControl }>\n <TextField\n id=\"password-confirmation-field\"\n label={ formatMessage('mapbiomas.user.password_create.fields.password_confirmation') }\n variant=\"outlined\"\n type=\"password\"\n className={ styles.filterFormInput }\n value={ state.passwordConfirmation }\n onChange={ handleTextChange.bind(this, 'passwordConfirmation') }\n required\n />\n </FormControl>\n <div className={ styles.actionsWrapper }>\n <Button\n variant=\"contained\"\n color=\"primary\"\n type=\"submit\"\n className={styles.button}\n disabled={isCreatePasswordButtonDisabled}\n >\n <FormattedMessage id=\"mapbiomas.user.password_create.buttons.confirm\" />\n </Button>\n </div>\n </form>\n <Typography className={styles.createAcountLegend}><FormattedMessage id=\"mapbiomas.user.password_create.helper_link.access_acount.label\" /></Typography>\n <Link className={ styles.helperLink } to={`/login?${new URLSearchParams(state.paramsToJSON).toString()}`}><FormattedMessage id=\"mapbiomas.user.password_create.helper_link.access_acount.title\" /></Link>\n </div>\n <FormFooter/>\n </Paper>\n </div>\n <PageFooter/>\n </div>\n );\n}\n","import toast from '../utils/toast';\n\nexport default function validatePassword(password, passwordConfirmation) {\n const specialCharacters = /[ `!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\n\n if (password.length < 8) {\n toast('A senha precisa de ao menos 8 caracteres', 'error');\n return false;\n }\n\n if (!password.match(specialCharacters)) {\n toast('A senha precisa conter pelo menos 1 caracter especial', 'error');\n return false;\n }\n\n if (!password.match(/[A-Z]/)) {\n toast('A senha precisa conter pelo menos 1 caracter maiúsculo', 'error');\n return false;\n }\n\n if (!password.match(/[a-z]/)) {\n toast('A senha precisa conter pelo menos 1 caracter minúsculo', 'error');\n return false;\n }\n\n if (!password.match(/\\d/)) {\n toast('A senha precisa conter pelo menos 1 número', 'error');\n return false;\n }\n\n if (password !== passwordConfirmation) {\n toast('As senhas precisam ser iguais', 'error');\n return false;\n }\n\n return true;\n}\n","import { useEffect } from 'react';\n\nimport { request } from '../../utils/api';\n\nexport default function ConfirmationPage() {\n let token = null;\n\n const urlToken = new URL(window.location.href).searchParams.get('token')\n !!urlToken\n ? token = urlToken\n : window.location.href = '/';\n\n useEffect(() => {\n const payload = { token: urlToken };\n\n request('/users/confirm_account', {\n method: 'POST',\n body: JSON.stringify(payload)\n })\n .then(() => {\n window.location.href = '/?confirmation=true';\n })\n .catch(() => {\n toast('Ocorreu um erro.', 'error');\n });\n }, [])\n\n return null;\n}\n","import React, { useEffect, useState } from 'react';\nimport { useLazyQuery, useQuery } from '@apollo/react-hooks';\nimport _ from 'lodash';\nimport styles from './Accuracy.module.scss';\nimport { GET_ACCURACIES, GET_BIOMES, GET_CLASS_TREE_DATA, GET_LEVELS, GET_YEARS } from './query';\nimport LineChart from './LineChart';\nimport numbro from 'numbro';\nimport BarChart from './BarChart';\n\nexport default function Accuracy() {\n const [state, setState] = useState({\n level: 'l1',\n biome: 'Brasil',\n year: 2022,\n });\n const { data: biomes } = useQuery(GET_BIOMES);\n const { data: levels } = useQuery(GET_LEVELS);\n const { data: years } = useQuery(GET_YEARS);\n const { data: classTree } = useQuery(GET_CLASS_TREE_DATA, {\n variables: {\n classTreeKey: 'default',\n },\n });\n const [getAccuracies, { data: accuracies, loading: loadingAccuracies }] = useLazyQuery(GET_ACCURACIES);\n\n useEffect(() => {\n getAccuracies({ variables: state });\n }, [state.year]);\n\n const handleSubmit = () => {\n getAccuracies({ variables: state });\n };\n\n const handleChange = (event) => {\n const { id, value } = event.target;\n setState({ ...state, [id]: id === 'year' ? Number(value) : value });\n };\n\n const legend = _.keyBy(_.get(classTree, 'classTreeByKey[0].mvClassTreeLevelsUi', []), 'pixelValue');\n const overallAccuracy = _.get(accuracies, 'accuracies.overallAccuracy', []);\n const userAccuracy = _.get(accuracies, 'accuracies.userAccuracy', []);\n const producerAccuracy = _.get(accuracies, 'accuracies.producerAccuracy', []);\n \n const confusionProdLeft = _.groupBy(_.get(accuracies, 'accuracies.confusionProdLeft', []), 'classId');\n const countProdLeftSeries = _.get(Object.values(confusionProdLeft), '[0].length', 0);\n const confusionProdRight = _.filter(_.get(accuracies, 'accuracies.confusionProdRight', []), (item) => item.classId !== -1);\n\n const confusionUserLeft = _.groupBy(_.get(accuracies, 'accuracies.confusionUserLeft', []), 'classId');\n const countUserLeftSeries = _.get(Object.values(confusionUserLeft), '[0].length', 0);\n const confusionUserRight = _.filter(_.get(accuracies, 'accuracies.confusionUserRight', []), (item) => item.classId !== -1);\n\n const omissionCategories = _.map(confusionProdRight, (item) => _.get(legend, `${item.classId}.defaultName`, item.classId));\n const insertionCategories = _.map(confusionUserRight, (item) => _.get(legend, `${item.classId}.defaultName`, item.classId));\n\n \n const omissionSeries = [\n {\n data: _.map(confusionProdRight, (item) => ({\n value: item.value,\n itemStyle: {\n color: _.get(legend, `${item.classId}.color`),\n }\n })),\n }\n ];\n for (let i = 0; i < countProdLeftSeries; i++) {\n omissionSeries.push({\n data: _.map(confusionProdLeft, (item) => ({\n value: item[i].value * -1,\n itemStyle: {\n color: _.get(legend, `${item[i].idClassMap}.color`),\n }\n })),\n });\n }\n\n const insertionSeries = [\n {\n data: _.map(confusionUserRight, (item) => ({\n value: item.value,\n itemStyle: {\n color: _.get(legend, `${item.classId}.color`),\n }\n })),\n }\n ];\n for (let i = 0; i < countUserLeftSeries; i++) {\n insertionSeries.push({\n data: _.map(confusionUserLeft, (item) => ({\n value: item[i].value * -1,\n itemStyle: {\n color: _.get(legend, `${item[i].idClassMap}.color`),\n }\n })),\n });\n }\n \n const overallYears = _.map(overallAccuracy, 'year');\n const overallData = [{ \n name: 'Valor',\n color: '#00A00D',\n data: _.map(overallAccuracy, 'value') \n }];\n const userYears = _.map(_.get(userAccuracy, '[0].statistics'), 'year');\n const userData = _.map(\n userAccuracy,\n (item) => ({\n name: _.get(legend, `${item.classId}.defaultName`, item.classId),\n color: _.get(legend, `${item.classId}.color`),\n data: _.map(item.statistics, 'value'),\n })\n );\n const producerYears = _.map(_.get(producerAccuracy, '[0].statistics'), 'year');\n const producerData = _.map(\n producerAccuracy,\n (item) => ({\n name: _.get(legend, `${item.classId}.defaultName`, item.classId),\n color: _.get(legend, `${item.classId}.color`),\n data: _.map(item.statistics, 'value'),\n })\n );\n \n return (\n <div className={ styles.container }>\n {\n loadingAccuracies && (\n <div className={ styles.loadingContainer }>\n <div className='lds-ring'>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>\n )\n }\n <p>Selecione o nÃvel e o bioma nas caixas abaixo para visualização dos resultados estatÃsticos de acurácia da Coleção 8</p>\n <div className={ styles.searchContainer }>\n <div className={ styles.formControl }>\n <label for='biome' className={ styles.label }>Bioma</label>\n <select id='biome' onChange={ handleChange } value={ state.biome } className={ styles.select }>\n {\n _.get(biomes, 'accuracyBiomes', []).map((biome) => (\n <option value={ biome }>{ biome }</option>\n ))\n }\n </select>\n </div>\n <div className={ styles.formControl }>\n <label for='level' className={ styles.label }>NÃvel</label>\n <select id='level' onChange={ handleChange } value={ state.level } className={ styles.select }>\n {\n _.get(levels, 'accuracyLevels', []).map((level) => (\n <option value={ level }>NÃvel { level.replace(/\\D/, '') }</option>\n ))\n }\n </select>\n </div>\n <div className={ styles.buttonContainer }>\n <button onClick={ handleSubmit } type='button' className={ styles.button }>Buscar</button>\n </div>\n </div>\n\n <div className={ styles.cards }>\n <div className={ styles.card }>\n <span>Acurácia geral</span>\n <span className={ styles.cardData }>{ numbro(_.get(accuracies, 'accuracies.globalAccuracy', 0)).format({ mantissa: 2}) }%</span>\n </div>\n <div className={ styles.card }>\n <span>Discordância de alocação</span>\n <span className={ styles.cardData }>{ numbro(_.get(accuracies, 'accuracies.allocationTot', 0)).format({ mantissa: 2}) }%</span>\n </div>\n <div className={ styles.card }>\n <span>Discordância de quantidade</span>\n <span className={ styles.cardData }>{ numbro(_.get(accuracies, 'accuracies.quantityTot', 0)).format({ mantissa: 2}) }%</span>\n </div>\n </div>\n\n <div className={ styles.lineCharts }>\n <div className={ styles.chart }>\n <p>Acurácia Global</p>\n <LineChart categories={ overallYears } series={ overallData } />\n </div>\n <div className={ styles.chart }>\n <p>Acurácia do Produtor</p>\n <LineChart categories={ userYears } series={ userData } />\n </div>\n <div className={ styles.chart }>\n <p>Acurácia do Usuário</p>\n <LineChart categories={ producerYears } series={ producerData } />\n </div>\n </div>\n\n <div className={ styles.formControl }>\n <label for='year' className={ styles.label }>Ano</label>\n <select id='year' onChange={ handleChange } value={ state.year } className={ styles.select }>\n {\n _.get(years, 'accuracyYears', []).map((year) => (\n <option value={ year }>{ year }</option>\n ))\n }\n </select>\n </div>\n\n <div className={ styles.barChart }>\n <p>Erros de inclusão</p>\n <BarChart categories={ insertionCategories } series={ insertionSeries } />\n </div>\n <div className={ styles.barChart }>\n <p>Erros de omissão</p>\n <BarChart categories={ omissionCategories } series={ omissionSeries } />\n </div>\n </div>\n );\n}","import React from 'react'\n\nimport {\n Redirect\n} from 'react-router-dom'\nimport _ from 'lodash'\n\nexport default (path, generateExtraProps = (_props) => ({})) => (\n (props) => {\n let redirectPath = path\n if (_.isFunction(path)) {\n redirectPath = path(props)\n }\n\n return <Redirect to={ redirectPath } { ...(generateExtraProps(props)) } />\n }\n)\n","export const primaryColor = '#16a085';\nexport const primaryColorLight = '#18af91';\nexport const primaryColorDark = '#14947b';\nexport const primaryColorContrastText = '#FFF';\n\nexport const secondaryColor = '#DCDCDC';\nexport const secondaryColorLight = '#E3E3E3';\nexport const secondaryColorDark = '#D4D4D4';\nexport const secondaryColorContrastText = '#555';\n\nexport const greys = {\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#EEEEEE',\n 300: '#E0E0E0',\n 400: '#BDBDBD',\n 500: '#9E9E9E',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\n","import { createMuiTheme } from '@material-ui/core/styles';\n\nimport {\n greys,\n primaryColor,\n primaryColorLight,\n primaryColorDark,\n primaryColorContrastText,\n secondaryColor,\n secondaryColorLight,\n secondaryColorDark,\n secondaryColorContrastText\n} from './variables';\n\nexport default createMuiTheme({\n props: {\n MuiButtonBase: {\n disableRipple: true\n },\n MuiFormControl: {\n fullWidth: true\n },\n MuiInputLabel: {\n shrink: true\n },\n MuiInput: {\n disableUnderline: true\n },\n MuiSelect: {\n disableUnderline: true\n }\n },\n\n overrides: {\n MuiOutlinedInput: {\n input: {\n padding: '12px 14px'\n },\n notchedOutline: {\n borderColor: 'transparent !important',\n },\n },\n MuiAutocomplete: {\n root: {\n '&.autocomplete-light': {\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: 'rgba(255, 255, 255, 0.5) !important'\n },\n '& .MuiAutocomplete-inputRoot .MuiAutocomplete-input': {\n color: 'white'\n },\n '& .MuiInputLabel-shrink': {\n paddingLeft: 0,\n color: 'white',\n backgroundColor: '#404040'\n },\n '& .MuiIconButton-root': {\n color: 'white',\n }\n }\n },\n inputRoot: {\n padding: 0,\n },\n noOptions: {\n fontSize: 14\n },\n option: {\n fontSize: 14\n },\n popper: {\n zIndex: 9999\n },\n },\n MuiButton: {\n root: {\n fontWeight: 400,\n },\n contained: {\n paddingBottom: '5px',\n paddingTop: '5px',\n paddingLeft: '20px',\n paddingRight: '20px',\n boxShadow: 'none',\n\n '&:hover': {\n boxShadow: 'none'\n },\n '&:focus': {\n boxShadow: 'none'\n }\n },\n containedSizeLarge: {\n paddingBottom: '6px',\n paddingTop: '6px',\n paddingLeft: '25px',\n paddingRight: '25px'\n },\n containedSizeSmall: {\n paddingBottom: '4px',\n paddingTop: '4px',\n paddingLeft: '15px',\n paddingRight: '15px'\n },\n startIcon: {\n marginRight: '16px'\n },\n text: {\n padding: '6px 16px'\n }\n },\n MuiDialog: {\n root: {\n zIndex: '5000 !important'\n }\n },\n MuiPopover: {\n root: {\n zIndex: '5000 !important'\n }\n },\n MuiFab: {\n root: {\n boxShadow: 'none'\n }\n },\n MuiFormControl: {\n root: {\n '&.input-label-gray': {\n '& .MuiInputLabel-shrink': {\n backgroundColor: '#F7F7F7'\n },\n }\n }\n },\n MuiInputLabel: {\n root: {\n color: '#555',\n fontWeight: 400\n },\n shrink: {\n padding: '0 6px',\n backgroundColor: 'white'\n },\n outlined: {\n transform: 'translate(8px, -18px) scale(0.75) !important',\n background: 'transparent !important',\n color: '#8E8E8E !important',\n }\n },\n MuiInput: {\n root: {\n },\n formControl: {\n 'label + &': {\n marginTop: 20\n }\n }\n },\n MuiInputBase: {\n root: {\n background: '#F5F5F5'\n },\n input: {\n padding: 0,\n fontSize: 14\n }\n },\n MuiMenuItem: {\n root: {\n minHeight: 40,\n fontSize: 14\n }\n },\n MuiSelect: {\n select: {\n '&:focus': {\n backgroundColor: 'transparent'\n }\n }\n },\n MuiTooltip: {\n tooltip: {\n fontWeight: 400,\n backgroundColor: '#656565',\n },\n tooltipArrow: {\n color: '#656565',\n },\n popper: {\n zIndex: 9999\n }\n },\n MuiFormLabel: {\n root: {\n // marginLeft: 10\n },\n },\n MuiExpansionPanel: {\n root: {\n backgroundColor: '#F7F7F7',\n borderBottom: '1px solid rgba(0, 0, 0, 0.15)',\n boxShadow: 'none',\n '&:before': {\n display: 'none',\n },\n '&.Mui-expanded': {\n margin: '0',\n }\n }\n },\n MuiExpansionPanelSummary: {\n root: {\n padding: '0 12px',\n minHeight: 35,\n '&.Mui-expanded': {\n minHeight: 35,\n backgroundColor: '#F5F5F5'\n }\n },\n content: {\n '&.Mui-expanded': {\n margin: '12px 0',\n }\n },\n expandIcon: {\n padding: 4,\n '& svg': {\n fontSize: 24\n }\n }\n },\n MuiPaper: {\n elevation1: {\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n }\n },\n MuiSnackbar: {\n root: {\n zIndex: 9999\n }\n },\n MuiFormControlLabel: {\n root: {\n color: '#8E8E8E',\n },\n label: {\n fontWeight: 400\n }\n },\n },\n\n palette: {\n background: {\n default: greys[100]\n },\n grey: greys,\n primary: {\n dark: primaryColorDark,\n light: primaryColorLight,\n main: primaryColor,\n contrastText: primaryColorContrastText\n },\n secondary: {\n dark: secondaryColorDark,\n light: secondaryColorLight,\n main: secondaryColor,\n contrastText: secondaryColorContrastText\n },\n text: {\n primary: greys[800],\n secondary: greys[500]\n }\n },\n\n typography: {\n fontFamily: '\"Inter\", \"Open-Sans\", sans-serif'\n }\n});\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n {\n toast @client {\n content\n severity\n visible\n }\n }\n`;\n","import React from 'react';\nimport { useApolloClient, useQuery } from '@apollo/react-hooks';\n\nimport Alert from '@material-ui/lab/Alert';\nimport Fade from '@material-ui/core/Fade';\nimport Snackbar from '@material-ui/core/Snackbar';\n\nimport {\n GET_BASE_DATA\n} from './query';\n\nexport default function ToastContainer() {\n const client = useApolloClient();\n const { data: baseData } = useQuery(GET_BASE_DATA);\n\n if (!baseData) { return null; }\n\n const handleClose = () => {\n client.writeData({\n data: {\n toast: {\n __typename: 'ToastState',\n visible: false\n }\n }\n });\n };\n\n const { content, severity, visible } = baseData.toast;\n\n return (\n <Snackbar\n anchorOrigin={ {\n vertical: 'bottom',\n horizontal: 'center'\n } }\n open={ visible }\n autoHideDuration={ 5000 }\n onClose={ handleClose }\n TransitionComponent={ Fade }\n >\n <Alert\n elevation={ 1 }\n onClose={ handleClose }\n severity={ severity || 'info' }\n >\n { content }\n </Alert>\n </Snackbar>\n );\n}\n","import React from 'react';\n\nimport { ApolloProvider } from 'react-apollo';\nimport { IntlProvider } from 'react-intl';\nimport flatten from 'flat';\nimport { StylesProvider, ThemeProvider } from '@material-ui/core/styles';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\nimport numbro from 'numbro';\n\nimport localeMessages from '../../locale_messages.yml';\nimport client from '../apollo-client';\nimport Routes from '../Routes';\nimport theme from '../themes/main';\n\nimport ToastContainer from '../../components/ToastContainer';\n\nnumbro.registerLanguage({\n languageTag: 'pt-BR',\n delimiters: {\n thousands: '.',\n decimal: ','\n },\n abbreviations: {\n thousand: 'mil',\n million: 'milhões',\n billion: 'b',\n trillion: 't'\n },\n ordinal: () => 'º',\n currency: {\n symbol: 'R$ ',\n position: 'prefix'\n }\n})\n\nnumbro.setLanguage('pt-BR');\n\nnumbro.setDefaults({\n thousandSeparated: true,\n mantissa: 2\n})\n\nnumbro.zeroFormat(' - ');\n\nclass Root extends React.Component {\n render() {\n const locale = localStorage.getItem('locale') || 'es';\n\n return (\n <ApolloProvider client={ client }>\n <ThemeProvider theme={ theme }>\n <StylesProvider injectFirst>\n <MuiPickersUtilsProvider utils={ MomentUtils }>\n <IntlProvider key={ locale } locale={ locale } messages={ flatten(localeMessages[locale]) }>\n <Routes />\n <ToastContainer />\n </IntlProvider>\n </MuiPickersUtilsProvider>\n </StylesProvider>\n </ThemeProvider>\n </ApolloProvider>\n );\n }\n}\n\nexport default Root;\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport 'react-toastify/dist/ReactToastify.min.css'\n\nimport 'leaflet/dist/leaflet.css';\nimport 'leaflet-draw/dist/leaflet.draw.css';\n\nimport Root from './core/Root'\nimport './index.css'\n\nimport '@formatjs/intl-pluralrules/polyfill'\nimport '@formatjs/intl-pluralrules/dist/locale-data/pt'\nimport '@formatjs/intl-pluralrules/dist/locale-data/en'\nimport '@formatjs/intl-relativetimeformat/polyfill'\nimport '@formatjs/intl-relativetimeformat/dist/locale-data/pt'\nimport '@formatjs/intl-relativetimeformat/dist/locale-data/en'\n\nReactDOM.render(<Root />, document.getElementById('root'))\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"StatisticsBox_wrapper__2j0xd\",\"wrapperIsHidden\":\"StatisticsBox_wrapperIsHidden__3gnsT\",\"header\":\"StatisticsBox_header__3uZ3K\",\"title\":\"StatisticsBox_title__1ZtiN\",\"closeButton\":\"StatisticsBox_closeButton__9F5hi\",\"closeButtonCollapse\":\"StatisticsBox_closeButtonCollapse__3AAPi\",\"collapseWrapper\":\"StatisticsBox_collapseWrapper__2hnvx\",\"content\":\"StatisticsBox_content__36hV4\",\"section\":\"StatisticsBox_section__OmOdZ\",\"sectionSmall\":\"StatisticsBox_sectionSmall__24KnK\",\"secondaryTitle\":\"StatisticsBox_secondaryTitle__1wt-B\",\"secondaryTitleExtraInfo\":\"StatisticsBox_secondaryTitleExtraInfo__396bn\",\"infoList\":\"StatisticsBox_infoList__2mMbK\",\"infoListItem\":\"StatisticsBox_infoListItem__x8jsq\",\"infoListItemValue\":\"StatisticsBox_infoListItemValue__17RPg\",\"infoListItemLabel\":\"StatisticsBox_infoListItemLabel__2pvhM\",\"progressWrapper\":\"StatisticsBox_progressWrapper__1kf5Y\",\"actionWrapper\":\"StatisticsBox_actionWrapper__1quOD\",\"actionButton\":\"StatisticsBox_actionButton__1zlxe\",\"infoBox\":\"StatisticsBox_infoBox__2d37C\",\"fireModeContentBox\":\"StatisticsBox_fireModeContentBox__1fAMQ\",\"fireModeContentBoxExtra\":\"StatisticsBox_fireModeContentBoxExtra__1ZOkE\",\"fireModeContentBoxTextWrapper\":\"StatisticsBox_fireModeContentBoxTextWrapper__2_ykY\",\"fireModeContentBoxTitle\":\"StatisticsBox_fireModeContentBoxTitle__3OkKp\",\"bigNumber\":\"StatisticsBox_bigNumber__2wBhp\",\"bigNumberInfo\":\"StatisticsBox_bigNumberInfo__1BoGL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"GeometryControl_wrapper__1Yva8\",\"formControl\":\"GeometryControl_formControl__24k_D\",\"actionButtonActive\":\"GeometryControl_actionButtonActive__3KVgG\",\"infoText\":\"GeometryControl_infoText__3JeoV\",\"infoTextSecondary\":\"GeometryControl_infoTextSecondary__1yXm9\",\"infoTextError\":\"GeometryControl_infoTextError__17qDF\",\"buttonsWrapper\":\"GeometryControl_buttonsWrapper__NLYH7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"CoordinatesBox_wrapper__2wBd1\",\"wrapperWithoutHeader\":\"CoordinatesBox_wrapperWithoutHeader__2f550\",\"wrapperWithBeforeAndAfterMosaic\":\"CoordinatesBox_wrapperWithBeforeAndAfterMosaic__3vAtW\",\"controlWrapper\":\"CoordinatesBox_controlWrapper__1YdxY\",\"searchButton\":\"CoordinatesBox_searchButton__35CnU\",\"title\":\"CoordinatesBox_title__3qp_J\",\"formWrapper\":\"CoordinatesBox_formWrapper__19YkW\",\"textInfo\":\"CoordinatesBox_textInfo__3iVGm\",\"formControl\":\"CoordinatesBox_formControl__ClNMW\",\"searchIconButton\":\"CoordinatesBox_searchIconButton__P6KMH\",\"infoIcon\":\"CoordinatesBox_infoIcon__3v0Xn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"StatisticsDataTableBox_wrapper__3gmaA\",\"header\":\"StatisticsDataTableBox_header__dEJtq\",\"title\":\"StatisticsDataTableBox_title__btjJt\",\"closeButton\":\"StatisticsDataTableBox_closeButton__2C3C7\",\"closeButtonCollapse\":\"StatisticsDataTableBox_closeButtonCollapse__1R8jR\",\"collapseWrapper\":\"StatisticsDataTableBox_collapseWrapper__2m_i-\",\"content\":\"StatisticsDataTableBox_content__32F6f\",\"dataTableWrapper\":\"StatisticsDataTableBox_dataTableWrapper__2ddGn\",\"tableHeader\":\"StatisticsDataTableBox_tableHeader__32aIl\",\"tableTitle\":\"StatisticsDataTableBox_tableTitle__2m9Nd\",\"csvDownloadLink\":\"StatisticsDataTableBox_csvDownloadLink__2pLbL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"Header_wrapper__1e-Og\",\"wrapperHidden\":\"Header_wrapperHidden__GVN77\",\"wrapperIframeMode\":\"Header_wrapperIframeMode__39Pzo\",\"logoBox\":\"Header_logoBox__2Xuwa\",\"menuContent\":\"Header_menuContent__3dW_o\",\"headerWrapper\":\"Header_headerWrapper__2m_a2\",\"headerWrapperHidden\":\"Header_headerWrapperHidden__3zyDf\",\"logoBoxCollapsed\":\"Header_logoBoxCollapsed__1lGrf\",\"versionTag\":\"Header_versionTag__2SCyI\",\"newTag\":\"Header_newTag__18z-s\",\"betaTag\":\"Header_betaTag__3z3ky\",\"menuBarListItemOldTag\":\"Header_menuBarListItemOldTag__2YNlE\",\"menuBarListItemNewTag\":\"Header_menuBarListItemNewTag__3SQLi\",\"menuBarListItemBetaTag\":\"Header_menuBarListItemBetaTag__iBcAw\",\"toggleButton\":\"Header_toggleButton__233g6\",\"toggleButtonExpand\":\"Header_toggleButtonExpand__2XD1L\",\"menuBar\":\"Header_menuBar__vI2mT\",\"linksContent\":\"Header_linksContent__y7J-N\",\"linksContentIsVisible\":\"Header_linksContentIsVisible__1HQk-\",\"linksContentIframeMode\":\"Header_linksContentIframeMode__35Gfa\",\"navOpenButton\":\"Header_navOpenButton__3-GcZ\",\"toggleButtonAlone\":\"Header_toggleButtonAlone__Ik_8I\",\"topContent\":\"Header_topContent__2FcC6\",\"contentWrapper\":\"Header_contentWrapper__YhT-7\",\"logo\":\"Header_logo__3bgzQ\",\"tabContent\":\"Header_tabContent__3B_La\",\"statisticsButtonWrapper\":\"Header_statisticsButtonWrapper__3bLak\",\"bottomContent\":\"Header_bottomContent__1_Vov\",\"navItemButtonBeta\":\"Header_navItemButtonBeta__18Vd-\",\"navItemButtonBetaAddon\":\"Header_navItemButtonBetaAddon__Ohe1D\",\"activeBlockIconBetaAddon\":\"Header_activeBlockIconBetaAddon__2nao3\",\"infrastructureClasses\":\"Header_infrastructureClasses__3dXrw\",\"menuBarList\":\"Header_menuBarList__3OqT8\",\"menuBarListItem\":\"Header_menuBarListItem__BaMY2\",\"menuBarListItemLine\":\"Header_menuBarListItemLine__1_GUA\",\"menuBarListItemButtonIcon\":\"Header_menuBarListItemButtonIcon__EyaSs\",\"moduleIcon\":\"Header_moduleIcon__1nhee\",\"moduleIconDegradation\":\"Header_moduleIconDegradation__3fQI1\",\"menuBarListItemCoverage\":\"Header_menuBarListItemCoverage__2RCR0\",\"menuBarListItemCoverageIsActive\":\"Header_menuBarListItemCoverageIsActive__3z_Lu\",\"menuBarListItemCoverageQuality\":\"Header_menuBarListItemCoverageQuality__I3M5B\",\"menuBarListItemCoverageQualityIsActive\":\"Header_menuBarListItemCoverageQualityIsActive__2sjL3\",\"menuBarListItemTrajectories\":\"Header_menuBarListItemTrajectories__2tF72\",\"menuBarListItemTrajectoriesIsActive\":\"Header_menuBarListItemTrajectoriesIsActive__2Vz5y\",\"menuBarListItemQualityOfPastureData\":\"Header_menuBarListItemQualityOfPastureData__AwF_l\",\"menuBarListItemQualityOfPastureDataIsActive\":\"Header_menuBarListItemQualityOfPastureDataIsActive__2gr3A\",\"menuBarListItemDeforestation\":\"Header_menuBarListItemDeforestation__3v-M1\",\"menuBarListItemDeforestationIsActive\":\"Header_menuBarListItemDeforestationIsActive__3yRKu\",\"menuBarListItemRegeneration\":\"Header_menuBarListItemRegeneration__EhqwS\",\"menuBarListItemRegenerationIsActive\":\"Header_menuBarListItemRegenerationIsActive__27YEX\",\"menuBarListItemInfrastructure\":\"Header_menuBarListItemInfrastructure__3dbA6\",\"menuBarListItemInfrastructureIsActive\":\"Header_menuBarListItemInfrastructureIsActive__3n3DX\",\"menuBarListItemIrrigation\":\"Header_menuBarListItemIrrigation__2qr08\",\"menuBarListItemIrrigationIsActive\":\"Header_menuBarListItemIrrigationIsActive__3e57v\",\"menuBarListItemFire\":\"Header_menuBarListItemFire__32LoY\",\"menuBarListItemFireIsActive\":\"Header_menuBarListItemFireIsActive__1Od-w\",\"menuBarListItemMining\":\"Header_menuBarListItemMining__2dZIb\",\"menuBarListItemMiningIsActive\":\"Header_menuBarListItemMiningIsActive__2oQm0\",\"menuBarListItemWater\":\"Header_menuBarListItemWater__uvJsl\",\"menuBarListItemWaterIsActive\":\"Header_menuBarListItemWaterIsActive__29eLB\",\"menuBarListItemSentinel\":\"Header_menuBarListItemSentinel__Nw2-F\",\"menuBarListItemSentinelIsActive\":\"Header_menuBarListItemSentinelIsActive__JTIEx\",\"menuBarListItemSoil\":\"Header_menuBarListItemSoil__2jlkh\",\"menuBarListItemSoilIsActive\":\"Header_menuBarListItemSoilIsActive__3QowX\",\"menuBarListItemDegradation\":\"Header_menuBarListItemDegradation__1aQ74\",\"menuBarListItemDegradationIsActive\":\"Header_menuBarListItemDegradationIsActive__Ynaxo\",\"menuBarListItemCoralReef\":\"Header_menuBarListItemCoralReef__37CHI\",\"menuBarListItemCoralReefIsActive\":\"Header_menuBarListItemCoralReefIsActive__3w6_k\",\"menuBarBottomContent\":\"Header_menuBarBottomContent__1q7Ep\",\"menuButton\":\"Header_menuButton__1vgrQ\",\"translateButton\":\"Header_translateButton__7F8uU\",\"actionButton\":\"Header_actionButton__3s1Ka\",\"fireModeContentWrapper\":\"Header_fireModeContentWrapper__3ReFo\",\"fireModeContent\":\"Header_fireModeContent__1jYQF\",\"fireModeContentBox\":\"Header_fireModeContentBox__1KYbk\",\"fireModeContentBoxExtra\":\"Header_fireModeContentBoxExtra__3Z6aw\",\"fireModeContentBoxTextWrapper\":\"Header_fireModeContentBoxTextWrapper__3w5M2\",\"fireModeContentBoxTitle\":\"Header_fireModeContentBoxTitle__3VccS\",\"fireModeContentBoxActions\":\"Header_fireModeContentBoxActions__3W5Mq\",\"customModeContentBoxButton\":\"Header_customModeContentBoxButton__2FHYO\",\"fireModeContentBoxButton\":\"Header_fireModeContentBoxButton__3GpsP\",\"infrastructureModeContentBoxButton\":\"Header_infrastructureModeContentBoxButton__59GXb\",\"irrigationModeContentBoxButton\":\"Header_irrigationModeContentBoxButton__1YXyG\",\"deforestationModeContentBoxButton\":\"Header_deforestationModeContentBoxButton__2l1l7\",\"headerImageLogoSentinel\":\"Header_headerImageLogoSentinel__3Qucr\",\"headerImageLogoDegradation\":\"Header_headerImageLogoDegradation__2GNbR\",\"degradationControls\":\"Header_degradationControls__1QVnH\",\"degradationControlsAction\":\"Header_degradationControlsAction__1rZXt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"DashboardDialog_wrapper__1S_fw\",\"wrapperWithHeader\":\"DashboardDialog_wrapperWithHeader__3wLws\",\"wrapperIsCollapsed\":\"DashboardDialog_wrapperIsCollapsed__2qPMg\",\"header\":\"DashboardDialog_header__2Da0s\",\"title\":\"DashboardDialog_title__1EPsa\",\"toggleButton\":\"DashboardDialog_toggleButton__2l4NO\",\"toggleButtonIsCollapsed\":\"DashboardDialog_toggleButtonIsCollapsed__3ZUKx\",\"closeButton\":\"DashboardDialog_closeButton__1gW8d\",\"content\":\"DashboardDialog_content__17dqb\",\"chartsWrapper\":\"DashboardDialog_chartsWrapper__1lgSx\",\"dataTableWrapper\":\"DashboardDialog_dataTableWrapper__1Zegm\",\"tableHeader\":\"DashboardDialog_tableHeader__3btOs\",\"tableTitle\":\"DashboardDialog_tableTitle__3oS-0\",\"tableWrapper\":\"DashboardDialog_tableWrapper__2mii3\",\"table\":\"DashboardDialog_table__c8_ec\",\"loadingWrapper\":\"DashboardDialog_loadingWrapper__170cT\",\"smallText\":\"DashboardDialog_smallText__2k6Zj\",\"alertInfo\":\"DashboardDialog_alertInfo__3kqx9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"classListItemBase\":\"ClassLegendList_classListItemBase__1qHxS\",\"classListItemHeader\":\"ClassLegendList_classListItemHeader__BS1VC\",\"classListItemCheckControl\":\"ClassLegendList_classListItemCheckControl__3fD2b\",\"classListItemTitle\":\"ClassLegendList_classListItemTitle__x3Hdd\",\"classListItemContentControl\":\"ClassLegendList_classListItemContentControl__3mZBI\",\"classListItemInfoControl\":\"ClassLegendList_classListItemInfoControl__2GxJL\",\"classNode\":\"ClassLegendList_classNode__1gMyE\",\"classChildNode\":\"ClassLegendList_classChildNode__N8RPi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleWrapper\":\"AccountMenu_titleWrapper__1_H52\",\"title\":\"AccountMenu_title__1C6sm\",\"wrapper\":\"AccountMenu_wrapper__3FzZR\",\"isVisible\":\"AccountMenu_isVisible__1lFRJ\",\"toggleButton\":\"AccountMenu_toggleButton__2Lbl6\",\"header\":\"AccountMenu_header__2-y3L\",\"myMapsContentWrapper\":\"AccountMenu_myMapsContentWrapper__F2rSU\",\"translation\":\"AccountMenu_translation__1_dit\",\"subtitle\":\"AccountMenu_subtitle__1f0aa\",\"content\":\"AccountMenu_content__1wUmU\",\"infoText\":\"AccountMenu_infoText__2yOQj\",\"navList\":\"AccountMenu_navList__1fys6\",\"userInfo\":\"AccountMenu_userInfo__2h9cc\",\"hideMenuButton\":\"AccountMenu_hideMenuButton__c7NH4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"ClassLegendDialog_wrapper__UX17J\",\"wrapperWithHeader\":\"ClassLegendDialog_wrapperWithHeader__3Kwek\",\"header\":\"ClassLegendDialog_header__27nTB\",\"title\":\"ClassLegendDialog_title__azrb5\",\"closeButton\":\"ClassLegendDialog_closeButton__tAA3m\",\"content\":\"ClassLegendDialog_content__2AuRd\",\"contentDescription\":\"ClassLegendDialog_contentDescription__2axeV\",\"imageList\":\"ClassLegendDialog_imageList__eNkMt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"DashboardDialogQualityContent_content__qWcEr\",\"chartsWrapper\":\"DashboardDialogQualityContent_chartsWrapper__3RDTm\",\"dataTableWrapper\":\"DashboardDialogQualityContent_dataTableWrapper__3ZJ5r\",\"tableHeader\":\"DashboardDialogQualityContent_tableHeader__2OEaI\",\"tableTitle\":\"DashboardDialogQualityContent_tableTitle__37ImO\",\"tableWrapper\":\"DashboardDialogQualityContent_tableWrapper__3TlNm\",\"table\":\"DashboardDialogQualityContent_table__2tnoS\",\"loadingWrapper\":\"DashboardDialogQualityContent_loadingWrapper__1BAJT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"DashboardDialogGenericClassesContent_content__nqZ0r\",\"chartsWrapper\":\"DashboardDialogGenericClassesContent_chartsWrapper__2Jg-2\",\"dataTableWrapper\":\"DashboardDialogGenericClassesContent_dataTableWrapper__1ZwLe\",\"tableHeader\":\"DashboardDialogGenericClassesContent_tableHeader__2b1Wm\",\"tableTitle\":\"DashboardDialogGenericClassesContent_tableTitle__3y-n7\",\"tableWrapper\":\"DashboardDialogGenericClassesContent_tableWrapper__1fiix\",\"table\":\"DashboardDialogGenericClassesContent_table__BLGOQ\",\"loadingWrapper\":\"DashboardDialogGenericClassesContent_loadingWrapper__3HHAe\",\"csvDownloadLink\":\"DashboardDialogGenericClassesContent_csvDownloadLink__2_gUh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navList\":\"TabList_navList__2rloQ\",\"navListSmall\":\"TabList_navListSmall__2AJut\",\"navListItem\":\"TabList_navListItem__1Scvk\",\"navListFullWidth\":\"TabList_navListFullWidth__8r1CO\",\"disabledItem\":\"TabList_disabledItem__36NPB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"TransitionClasses_title__3dBRZ\",\"classList\":\"TransitionClasses_classList__2qIA_\",\"classListLevel2\":\"TransitionClasses_classListLevel2__31-mL\",\"classListItemBase\":\"TransitionClasses_classListItemBase__tnZW7\",\"classListLevel3\":\"TransitionClasses_classListLevel3__1Shzz\",\"classListLevel4\":\"TransitionClasses_classListLevel4__3HYgk\",\"classListItemHeader\":\"TransitionClasses_classListItemHeader__3vdpK\",\"classListItemCheckControl\":\"TransitionClasses_classListItemCheckControl__3BBMs\",\"classListItemTitle\":\"TransitionClasses_classListItemTitle__298nL\",\"classListItemContentControl\":\"TransitionClasses_classListItemContentControl__tz3TU\",\"classListItemInfoControl\":\"TransitionClasses_classListItemInfoControl__1jWEb\",\"checkboxLabel\":\"TransitionClasses_checkboxLabel__3xZs-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"MapForm_title__1Lk2A\",\"formWrapper\":\"MapForm_formWrapper__Q70Ao\",\"textInfo\":\"MapForm_textInfo__3UedW\",\"formControl\":\"MapForm_formControl__C_bb5\",\"actionsWrapper\":\"MapForm_actionsWrapper__1MRhL\",\"checkboxRoot\":\"MapForm_checkboxRoot__2Wc1g\",\"checkboxLabel\":\"MapForm_checkboxLabel__3Trwg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"DegradationViewModeControl_wrapper__1t9Ur\",\"wrapperInline\":\"DegradationViewModeControl_wrapperInline__18OnP\",\"formControl\":\"DegradationViewModeControl_formControl__2IHrb\",\"radioGroup\":\"DegradationViewModeControl_radioGroup__1iIdx\",\"radioLabel\":\"DegradationViewModeControl_radioLabel__CUg25\",\"radioInput\":\"DegradationViewModeControl_radioInput__btkXr\",\"checkboxRoot\":\"DegradationViewModeControl_checkboxRoot__3F9_T\",\"checkboxControl\":\"DegradationViewModeControl_checkboxControl__2m0YZ\",\"checkboxLabel\":\"DegradationViewModeControl_checkboxLabel__2QcPk\",\"tooltipWrapper\":\"DegradationViewModeControl_tooltipWrapper__2yoRP\",\"yearRangeFormControl\":\"DegradationViewModeControl_yearRangeFormControl__2E1Fy\",\"groupList\":\"DegradationViewModeControl_groupList__RmEJM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialogWrapper\":\"WarningNoteDialog_dialogWrapper__2XnOR\",\"header\":\"WarningNoteDialog_header__nqPh0\",\"title\":\"WarningNoteDialog_title__1isuU\",\"closeButton\":\"WarningNoteDialog_closeButton__3On_I\",\"content\":\"WarningNoteDialog_content__-r0TE\",\"contentDescription\":\"WarningNoteDialog_contentDescription__2DU6n\",\"actions\":\"WarningNoteDialog_actions__1_o7p\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"DashboardDialogCoverageClassesContent_content__zWh7E\",\"chartsWrapper\":\"DashboardDialogCoverageClassesContent_chartsWrapper__FAZSM\",\"dataTableWrapper\":\"DashboardDialogCoverageClassesContent_dataTableWrapper__1zoVD\",\"tableHeader\":\"DashboardDialogCoverageClassesContent_tableHeader__3u7k0\",\"tableTitle\":\"DashboardDialogCoverageClassesContent_tableTitle__7vj7X\",\"tableWrapper\":\"DashboardDialogCoverageClassesContent_tableWrapper__1WBsD\",\"table\":\"DashboardDialogCoverageClassesContent_table__11ma4\",\"loadingWrapper\":\"DashboardDialogCoverageClassesContent_loadingWrapper__1R8rT\",\"csvDownloadLink\":\"DashboardDialogCoverageClassesContent_csvDownloadLink__13kax\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"DashboardDialogCoverageNaturalOrAnthropicContent_content__2dMbX\",\"chartsWrapper\":\"DashboardDialogCoverageNaturalOrAnthropicContent_chartsWrapper__3aHpH\",\"dataTableWrapper\":\"DashboardDialogCoverageNaturalOrAnthropicContent_dataTableWrapper__2deoN\",\"tableHeader\":\"DashboardDialogCoverageNaturalOrAnthropicContent_tableHeader__3zIhj\",\"tableTitle\":\"DashboardDialogCoverageNaturalOrAnthropicContent_tableTitle__3OGed\",\"tableWrapper\":\"DashboardDialogCoverageNaturalOrAnthropicContent_tableWrapper__BCYJ-\",\"table\":\"DashboardDialogCoverageNaturalOrAnthropicContent_table__2cR0U\",\"loadingWrapper\":\"DashboardDialogCoverageNaturalOrAnthropicContent_loadingWrapper__zy-Iw\",\"csvDownloadLink\":\"DashboardDialogCoverageNaturalOrAnthropicContent_csvDownloadLink__1mYRU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"DashboardDialogPastureQualityContent_content__14-IA\",\"chartsWrapper\":\"DashboardDialogPastureQualityContent_chartsWrapper__qbM_5\",\"dataTableWrapper\":\"DashboardDialogPastureQualityContent_dataTableWrapper__iSZlM\",\"tableHeader\":\"DashboardDialogPastureQualityContent_tableHeader__1rcIf\",\"tableTitle\":\"DashboardDialogPastureQualityContent_tableTitle__1m24E\",\"tableWrapper\":\"DashboardDialogPastureQualityContent_tableWrapper__4CK__\",\"table\":\"DashboardDialogPastureQualityContent_table__33Pe-\",\"loadingWrapper\":\"DashboardDialogPastureQualityContent_loadingWrapper__3jssV\",\"csvDownloadLink\":\"DashboardDialogPastureQualityContent_csvDownloadLink__3eBzV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mapWrapper\":\"MapCanvas_mapWrapper__2LD9g\",\"mapWrapperWithHeader\":\"MapCanvas_mapWrapperWithHeader__2kFj8\",\"mapSearchButton\":\"MapCanvas_mapSearchButton__1xXmk\",\"mapWrapperOnPointSearchMode\":\"MapCanvas_mapWrapperOnPointSearchMode__fHoB-\",\"mapActionButton\":\"MapCanvas_mapActionButton__oC75T\",\"tutorialButton\":\"MapCanvas_tutorialButton__2tmhx\",\"mapGeographicalReliefButton\":\"MapCanvas_mapGeographicalReliefButton__3gpmJ\",\"loadingWrapper\":\"MapCanvas_loadingWrapper__4TvGH\",\"opacityBox\":\"MapCanvas_opacityBox__15fVb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"YearTimelineMultiple_wrapper__2F2cS\",\"wrapperWithHeader\":\"YearTimelineMultiple_wrapperWithHeader__18c2G\",\"sliderWrapper\":\"YearTimelineMultiple_sliderWrapper__APNNB\",\"timelineMark\":\"YearTimelineMultiple_timelineMark__24jcs\",\"headerInfo\":\"YearTimelineMultiple_headerInfo__2xCBc\",\"headerInfoLabel\":\"YearTimelineMultiple_headerInfoLabel__3c2GL\",\"headerInfoValue\":\"YearTimelineMultiple_headerInfoValue__3gC-s\",\"headerInfoToggleButton\":\"YearTimelineMultiple_headerInfoToggleButton__C0PE7\",\"timelineInfo\":\"YearTimelineMultiple_timelineInfo__3xF_j\",\"valueText\":\"YearTimelineMultiple_valueText__2BD0l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MinimalBarData_wrapper__2bIMu\",\"bar\":\"MinimalBarData_bar__1I6VI\",\"backgroundBar\":\"MinimalBarData_backgroundBar__2ls0D\",\"mainBar\":\"MinimalBarData_mainBar__278wf\",\"info\":\"MinimalBarData_info__1OZwo\",\"infoLabel\":\"MinimalBarData_infoLabel__1uKMr\",\"infoValue\":\"MinimalBarData_infoValue__2IPhf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formWrapper\":\"CARBox_formWrapper__2dGiz\",\"formControl\":\"CARBox_formControl__tWHbX\",\"searchIconButton\":\"CARBox_searchIconButton__2NzIt\",\"loadingProgressWrapper\":\"CARBox_loadingProgressWrapper__1X3WO\",\"actionWrapper\":\"CARBox_actionWrapper__1Fg7K\",\"searchButton\":\"CARBox_searchButton__3hOJh\",\"removeButton\":\"CARBox_removeButton__2D9IS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"baseClassInfo\":\"DegradationIsolationClassTreeNodesControl_baseClassInfo__27PBf\",\"baseClassInfoSecondary\":\"DegradationIsolationClassTreeNodesControl_baseClassInfoSecondary__2cxrx\",\"formControl\":\"DegradationIsolationClassTreeNodesControl_formControl__M1jIo\",\"actionWrapper\":\"DegradationIsolationClassTreeNodesControl_actionWrapper__1hsje\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formWrapper\":\"PasswordRecoveryForm_formWrapper__2gMvT\",\"title\":\"PasswordRecoveryForm_title__ol0AM\",\"textInfo\":\"PasswordRecoveryForm_textInfo__25ute\",\"formControl\":\"PasswordRecoveryForm_formControl__WU0Eh\",\"actionsWrapper\":\"PasswordRecoveryForm_actionsWrapper__22Qo1\",\"helperLink\":\"PasswordRecoveryForm_helperLink__367p2\",\"successText\":\"PasswordRecoveryForm_successText__1otci\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"ShareBox_title__WiPG3\",\"boxWrapper\":\"ShareBox_boxWrapper__3TyNt\",\"textInfo\":\"ShareBox_textInfo__3FgL6\",\"formControl\":\"ShareBox_formControl__2hn95\",\"searchIconButton\":\"ShareBox_searchIconButton__29YgR\",\"socialList\":\"ShareBox_socialList__28h88\",\"socialItem\":\"ShareBox_socialItem__6JBJR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"TerritoryDashboard_wrapper__BEtBZ\",\"content\":\"TerritoryDashboard_content__1-DD3\",\"logo\":\"TerritoryDashboard_logo__yQRGp\",\"contentBox\":\"TerritoryDashboard_contentBox__K9_MO\",\"formBox\":\"TerritoryDashboard_formBox__2Hjf0\",\"contentWrapper\":\"TerritoryDashboard_contentWrapper__3SkZl\",\"contentTitleWrapper\":\"TerritoryDashboard_contentTitleWrapper__1c-6S\",\"contentTitle\":\"TerritoryDashboard_contentTitle__k1mBi\",\"imageBox\":\"TerritoryDashboard_imageBox__9CM5o\",\"moduleContentWrapper\":\"TerritoryDashboard_moduleContentWrapper__3oze5\",\"sectionTitleGrid\":\"TerritoryDashboard_sectionTitleGrid__RpFIa\",\"sectionTitleBox\":\"TerritoryDashboard_sectionTitleBox__1I7ux\",\"sectionTitleBoxTitle\":\"TerritoryDashboard_sectionTitleBoxTitle__-cWzy\",\"sectionTitleBoxSubtitle\":\"TerritoryDashboard_sectionTitleBoxSubtitle__2-yCx\",\"sectionTitleBoxInfo\":\"TerritoryDashboard_sectionTitleBoxInfo__3CRIo\",\"triangleArrow\":\"TerritoryDashboard_triangleArrow__11jfJ\",\"yearTitle\":\"TerritoryDashboard_yearTitle__2ZHrs\",\"yearBlockImage\":\"TerritoryDashboard_yearBlockImage__1zijy\",\"title\":\"TerritoryDashboard_title__LFE62\",\"subtitle\":\"TerritoryDashboard_subtitle__3WhyQ\",\"formControl\":\"TerritoryDashboard_formControl__1razK\",\"actionsWrapper\":\"TerritoryDashboard_actionsWrapper__39uWc\",\"footer\":\"TerritoryDashboard_footer__yao2f\",\"copyText\":\"TerritoryDashboard_copyText__2vYdg\",\"button\":\"TerritoryDashboard_button__UoIiE\",\"section\":\"TerritoryDashboard_section__1GwoO\",\"secondaryTitle\":\"TerritoryDashboard_secondaryTitle__21EJH\",\"secondaryTitleExtraInfo\":\"TerritoryDashboard_secondaryTitleExtraInfo__2YOl5\",\"progressWrapper\":\"TerritoryDashboard_progressWrapper__3E-NP\",\"actionWrapper\":\"TerritoryDashboard_actionWrapper__13QUZ\",\"actionButton\":\"TerritoryDashboard_actionButton__2m8gm\",\"infoBox\":\"TerritoryDashboard_infoBox__2RQOW\",\"modulesBlock\":\"TerritoryDashboard_modulesBlock__D9fsW\",\"moduleBlock\":\"TerritoryDashboard_moduleBlock__2RfVO\",\"moduleBlockIcon\":\"TerritoryDashboard_moduleBlockIcon__cMej7\",\"moduleBlockTitle\":\"TerritoryDashboard_moduleBlockTitle__l3QIU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formWrapper\":\"LoginForm_formWrapper__OLIBc\",\"textInfo\":\"LoginForm_textInfo__2FuLh\",\"formControl\":\"LoginForm_formControl__3VJs8\",\"actionsWrapper\":\"LoginForm_actionsWrapper__2SJUJ\",\"helperLink\":\"LoginForm_helperLink__2mJTf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialogWrapper\":\"MapEditDialog_dialogWrapper__KUWAP\",\"header\":\"MapEditDialog_header__3GwnH\",\"title\":\"MapEditDialog_title__3vwZC\",\"closeButton\":\"MapEditDialog_closeButton__3uw4U\",\"content\":\"MapEditDialog_content__3yTL_\",\"contentDescription\":\"MapEditDialog_contentDescription__1eDKV\",\"actions\":\"MapEditDialog_actions__LQWmm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"Footer_wrapper__3xouO\",\"versionText\":\"Footer_versionText__2JHZr\",\"copyText\":\"Footer_copyText__IoOT4\",\"alertText\":\"Footer_alertText__33vwr\",\"ecostageImage\":\"Footer_ecostageImage__2_p4l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tableWrapper\":\"StickyTable_tableWrapper__uzpqT\",\"categoriesTitle\":\"StickyTable_categoriesTitle__36aMz\",\"tableCategoriesList\":\"StickyTable_tableCategoriesList__3GJIc\",\"table\":\"StickyTable_table__3UD2t\",\"categoryCell\":\"StickyTable_categoryCell__2et1O\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentWrapper\":\"SankeyChartControl_contentWrapper__pX1PA\",\"sankeyWrapper\":\"SankeyChartControl_sankeyWrapper__2MaXr\",\"sankeyYears\":\"SankeyChartControl_sankeyYears__PM1JF\",\"autocompleteFormControl\":\"SankeyChartControl_autocompleteFormControl__27IHs\",\"downloadButton\":\"SankeyChartControl_downloadButton__3BXCA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MapboxControl_wrapper__176iZ\",\"wrapperHeader\":\"MapboxControl_wrapperHeader__37fUj\",\"controlWrapper\":\"MapboxControl_controlWrapper__2pvMD\",\"searchButton\":\"MapboxControl_searchButton__7T9k0\",\"title\":\"MapboxControl_title__ZPr38\",\"formWrapper\":\"MapboxControl_formWrapper__3Lf2q\",\"textInfo\":\"MapboxControl_textInfo__11CTa\",\"formControl\":\"MapboxControl_formControl__29F67\",\"searchIconButton\":\"MapboxControl_searchIconButton__1Q29S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"YearTimeline_wrapper__18l33\",\"wrapperWithHeader\":\"YearTimeline_wrapperWithHeader__1R49Z\",\"sliderWrapper\":\"YearTimeline_sliderWrapper__23thR\",\"timelineMark\":\"YearTimeline_timelineMark__3ofMN\",\"headerInfo\":\"YearTimeline_headerInfo__2PXu_\",\"headerInfoLabel\":\"YearTimeline_headerInfoLabel__37jPy\",\"headerInfoValue\":\"YearTimeline_headerInfoValue__35cuN\",\"headerInfoToggleButton\":\"YearTimeline_headerInfoToggleButton__1FLTX\",\"timelineInfo\":\"YearTimeline_timelineInfo__249ez\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"ShareControl_wrapper__vZQHo\",\"wrapperHeader\":\"ShareControl_wrapperHeader__1_znC\",\"controlWrapper\":\"ShareControl_controlWrapper__3JuA7\",\"searchButton\":\"ShareControl_searchButton__P3uKz\",\"title\":\"ShareControl_title__1m_gh\",\"formWrapper\":\"ShareControl_formWrapper__2V_gZ\",\"textInfo\":\"ShareControl_textInfo__3ojx6\",\"formControl\":\"ShareControl_formControl__2RWmT\",\"searchIconButton\":\"ShareControl_searchIconButton__3zU-V\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"PageFooter_wrapper__3X6EO\",\"versionText\":\"PageFooter_versionText__oqXsU\",\"copyText\":\"PageFooter_copyText__3PnkL\",\"alertText\":\"PageFooter_alertText__10g-N\",\"ecostageImage\":\"PageFooter_ecostageImage__19Zcu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"list\":\"ActiveOptionsList_list__2wFV_\",\"listItem\":\"ActiveOptionsList_listItem__1rcNQ\",\"listItemText\":\"ActiveOptionsList_listItemText__vbq6W\",\"listItemRemoveButton\":\"ActiveOptionsList_listItemRemoveButton__1RfQH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"CoordinatesInfo_wrapper__3JFHO\",\"wrapperWithoutHeader\":\"CoordinatesInfo_wrapperWithoutHeader__IYQtW\",\"controlWrapper\":\"CoordinatesInfo_controlWrapper__RBEi6\",\"mouseCoordinatesInfo\":\"CoordinatesInfo_mouseCoordinatesInfo__uZALW\"};","module.exports = __webpack_public_path__ + \"static/media/logo.b3a100e6.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"QualityClasses_title__2uKtU\",\"text\":\"QualityClasses_text__3RT4h\",\"legendGradient\":\"QualityClasses_legendGradient__wzR2p\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"boxWrapper\":\"TranslateOptionsBox_boxWrapper__1ShrY\",\"button\":\"TranslateOptionsBox_button__21_Bz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"InstitutionalMenu_title__3Gx6v\",\"navListWrapper\":\"InstitutionalMenu_navListWrapper__3EKN4\",\"navList\":\"InstitutionalMenu_navList__3-VpA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MapControls_wrapper__19yyu\",\"baseMapsItemWrapper\":\"MapControls_baseMapsItemWrapper__-sfxq\",\"baseMapsContentWrapper\":\"MapControls_baseMapsContentWrapper__1DHH8\",\"wrapperWithoutHeader\":\"MapControls_wrapperWithoutHeader__1szev\",\"wrapperWithBeforeAndAfterMosaic\":\"MapControls_wrapperWithBeforeAndAfterMosaic__3DQgB\",\"actionBox\":\"MapControls_actionBox__2hCcq\",\"actionBoxContent\":\"MapControls_actionBoxContent__3nUz4\",\"actionBoxContentOpacity\":\"MapControls_actionBoxContentOpacity__12buy\",\"actionButton\":\"MapControls_actionButton__3KZ41\",\"actionButtonDisabled\":\"MapControls_actionButtonDisabled__1aTbP\",\"switchControl\":\"MapControls_switchControl__FBSys\",\"radioGroupControl\":\"MapControls_radioGroupControl__1O4ce\",\"switchLabel\":\"MapControls_switchLabel__1yB2U\",\"radioGroupLabel\":\"MapControls_radioGroupLabel__3zcZs\",\"radioGroupInput\":\"MapControls_radioGroupInput__20zwy\",\"actionBoxContentScrollWrapper\":\"MapControls_actionBoxContentScrollWrapper__2c2IC\",\"actionBoxItemWrapper\":\"MapControls_actionBoxItemWrapper__-XhDL\",\"actionBoxItemHeader\":\"MapControls_actionBoxItemHeader__3ngvg\",\"actionBoxItemControl\":\"MapControls_actionBoxItemControl__2rC_9\",\"actionBoxControlButton\":\"MapControls_actionBoxControlButton__3UIMD\",\"actionBoxControlButtonToggle\":\"MapControls_actionBoxControlButtonToggle__3dKaT\",\"actionBoxItemLegend\":\"MapControls_actionBoxItemLegend__1K30g\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Accuracy_container__lWkBC\",\"searchContainer\":\"Accuracy_searchContainer__XRcM4\",\"formControl\":\"Accuracy_formControl__2Wssu\",\"buttonContainer\":\"Accuracy_buttonContainer__nBxtW\",\"label\":\"Accuracy_label__sLPx6\",\"select\":\"Accuracy_select__7_s4r\",\"button\":\"Accuracy_button__e3apE\",\"cards\":\"Accuracy_cards__2mR94\",\"loadingContainer\":\"Accuracy_loadingContainer__2O9G_\",\"card\":\"Accuracy_card__2nrt4\",\"cardData\":\"Accuracy_cardData__16tj9\",\"lineCharts\":\"Accuracy_lineCharts__2MoIX\",\"chart\":\"Accuracy_chart__3YLwm\",\"barChart\":\"Accuracy_barChart__3rJje\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"baseClassInfo\":\"BaseClassTreeNodesControl_baseClassInfo__2hZ7l\",\"formControl\":\"BaseClassTreeNodesControl_formControl__3j7x9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"GenericClasses_wrapper__2Xjmt\",\"loadingWrapper\":\"GenericClasses_loadingWrapper__G1DJp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"control\":\"DegradationVectorControl_control__3Rl0E\",\"groupList\":\"DegradationVectorControl_groupList__2wKR_\",\"removeButton\":\"DegradationVectorControl_removeButton__cu8yf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageWrapper\":\"BasePage_pageWrapper__616cZ\",\"contentWrapper\":\"BasePage_contentWrapper__1v1xU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"FormFooter_wrapper__VUzlm\",\"helperLink\":\"FormFooter_helperLink__DMiNk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"BaseForm_wrapper__3eOYV\",\"wrapperInline\":\"BaseForm_wrapperInline__2IdWk\",\"formControl\":\"BaseForm_formControl__3Kiop\",\"radioGroup\":\"BaseForm_radioGroup__2O0_O\",\"radioLabel\":\"BaseForm_radioLabel__3qMZO\",\"radioInput\":\"BaseForm_radioInput__1Pne0\",\"checkboxRoot\":\"BaseForm_checkboxRoot__3APgB\",\"checkboxControl\":\"BaseForm_checkboxControl__2ggWh\",\"checkboxLabel\":\"BaseForm_checkboxLabel__Xdn7x\",\"tooltipWrapper\":\"BaseForm_tooltipWrapper__16SVX\",\"yearRangeFormControl\":\"BaseForm_yearRangeFormControl__2ILjP\",\"groupList\":\"BaseForm_groupList__2Ld9y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MapbiomasCreateAccount_wrapper__T1zJA\",\"content\":\"MapbiomasCreateAccount_content__zyNUn\",\"logo\":\"MapbiomasCreateAccount_logo__37YTF\",\"box\":\"MapbiomasCreateAccount_box__3gqjf\",\"form\":\"MapbiomasCreateAccount_form__BBx4d\",\"MuiInputBase-root\":\"MapbiomasCreateAccount_MuiInputBase-root__2rCR6\",\"contentWrapper\":\"MapbiomasCreateAccount_contentWrapper__1W9ge\",\"title\":\"MapbiomasCreateAccount_title__3pByc\",\"subtitle\":\"MapbiomasCreateAccount_subtitle__d-rXG\",\"formControl\":\"MapbiomasCreateAccount_formControl__-03up\",\"mb\":\"MapbiomasCreateAccount_mb__2Es1d\",\"button\":\"MapbiomasCreateAccount_button__3YAXh\",\"createAcountLegend\":\"MapbiomasCreateAccount_createAcountLegend__13Wto\",\"actionsWrapper\":\"MapbiomasCreateAccount_actionsWrapper__16Waz\",\"helperLink\":\"MapbiomasCreateAccount_helperLink__1iM0V\",\"textArea\":\"MapbiomasCreateAccount_textArea__3tYaN\",\"privacyLink\":\"MapbiomasCreateAccount_privacyLink__1vwOJ\",\"privacyCheck\":\"MapbiomasCreateAccount_privacyCheck__2Bh_t\",\"privacyLabel\":\"MapbiomasCreateAccount_privacyLabel__1KTKQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"DashboardDialogTransitionContent_content__27Owu\",\"radioGroup\":\"DashboardDialogTransitionContent_radioGroup__1URZE\",\"radioLabel\":\"DashboardDialogTransitionContent_radioLabel__1BGSy\",\"radioGroupInput\":\"DashboardDialogTransitionContent_radioGroupInput__rHuYy\",\"tabListWrapper\":\"DashboardDialogTransitionContent_tabListWrapper__2wffs\",\"sankeyWrapper\":\"DashboardDialogTransitionContent_sankeyWrapper__3tssd\",\"sankeyYears\":\"DashboardDialogTransitionContent_sankeyYears__3x5O8\",\"loadingWrapper\":\"DashboardDialogTransitionContent_loadingWrapper__2iMC4\",\"categoryCell\":\"DashboardDialogTransitionContent_categoryCell__3uuJE\",\"tableContainer\":\"DashboardDialogTransitionContent_tableContainer__3QTdm\",\"matrixTable\":\"DashboardDialogTransitionContent_matrixTable__3kAHp\",\"tableWrapper\":\"DashboardDialogTransitionContent_tableWrapper__vqAtI\",\"tableLeftTag\":\"DashboardDialogTransitionContent_tableLeftTag__3ETu4\",\"tableTopTag\":\"DashboardDialogTransitionContent_tableTopTag__3qP67\",\"tableCategoriesList\":\"DashboardDialogTransitionContent_tableCategoriesList__35zP8\",\"tableHeader\":\"DashboardDialogTransitionContent_tableHeader__OKYbY\",\"tableTitle\":\"DashboardDialogTransitionContent_tableTitle__382Gq\",\"csvDownloadLink\":\"DashboardDialogTransitionContent_csvDownloadLink__rNDby\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputLabel\":\"CustomSelect_inputLabel__20BZg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"InfoTooltip_icon__2el5S\"};","module.exports = __webpack_public_path__ + \"static/media/logo.b3a100e6.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-mapbiomas-fogo.7c26b36a.png\";","module.exports = __webpack_public_path__ + \"static/media/10-metros-pt-br-horizontal.6993995c.svg\";","module.exports = __webpack_public_path__ + \"static/media/10-metros-en-horizontal.0ba31cfb.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-mapbiomas-degradation.7b570bfb.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-ecostage.116dc170.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mapWrapper\":\"MapboxCanvas_mapWrapper__PT5jt\",\"mapWrapperWithHeader\":\"MapboxCanvas_mapWrapperWithHeader__2vGvz\",\"mapSearchButton\":\"MapboxCanvas_mapSearchButton__27hVp\",\"mapWrapperOnPointSearchMode\":\"MapboxCanvas_mapWrapperOnPointSearchMode__2rnLU\",\"mapActionButton\":\"MapboxCanvas_mapActionButton__3ejUq\",\"tutorialButton\":\"MapboxCanvas_tutorialButton__10iX-\",\"mapGeographicalReliefButton\":\"MapboxCanvas_mapGeographicalReliefButton__3BCB_\",\"loadingWrapper\":\"MapboxCanvas_loadingWrapper__3LB3r\",\"opacityBox\":\"MapboxCanvas_opacityBox__2AFt3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialogWrapper\":\"LandingPage_dialogWrapper__2Fgjv\",\"closeButton\":\"LandingPage_closeButton__d9VIM\",\"alertText\":\"LandingPage_alertText__3rN40\",\"tempDialog\":\"LandingPage_tempDialog__NcfAt\"};","module.exports = __webpack_public_path__ + \"static/media/logo.b3a100e6.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-ecostage.116dc170.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo.b3a100e6.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo.b3a100e6.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MapPointDialog_wrapper__16jMJ\",\"wrapperWithHeader\":\"MapPointDialog_wrapperWithHeader__jp-PI\",\"header\":\"MapPointDialog_header__1IUMY\",\"title\":\"MapPointDialog_title__3Ibbd\",\"titleCar\":\"MapPointDialog_titleCar__13Owt\",\"closeButton\":\"MapPointDialog_closeButton__BGxPO\",\"dataList\":\"MapPointDialog_dataList__1oDcE\",\"dataListCar\":\"MapPointDialog_dataListCar__3xwQi\",\"dataListItem\":\"MapPointDialog_dataListItem__1BTS2\",\"dataListItemFull\":\"MapPointDialog_dataListItemFull__5Da3d\",\"dataListCarItemFull\":\"MapPointDialog_dataListCarItemFull__2wCqf\",\"dataListItemLabel\":\"MapPointDialog_dataListItemLabel__3q6h0\",\"dataListItemValue\":\"MapPointDialog_dataListItemValue__3gQwJ\",\"chartWrapper\":\"MapPointDialog_chartWrapper__1LITi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"InfrastructureStatisticsBox_wrapper__8bjOO\",\"wrapperIsHidden\":\"InfrastructureStatisticsBox_wrapperIsHidden__gX8Pk\",\"header\":\"InfrastructureStatisticsBox_header__ywkxh\",\"title\":\"InfrastructureStatisticsBox_title__2SD3y\",\"closeButton\":\"InfrastructureStatisticsBox_closeButton__3I1E5\",\"closeButtonCollapse\":\"InfrastructureStatisticsBox_closeButtonCollapse__MiryW\",\"collapseWrapper\":\"InfrastructureStatisticsBox_collapseWrapper__2EFKc\",\"content\":\"InfrastructureStatisticsBox_content__34aXz\",\"section\":\"InfrastructureStatisticsBox_section__3JilG\",\"secondaryTitle\":\"InfrastructureStatisticsBox_secondaryTitle__1xIGV\",\"secondaryTitleExtraInfo\":\"InfrastructureStatisticsBox_secondaryTitleExtraInfo__U25db\",\"infoList\":\"InfrastructureStatisticsBox_infoList__1-AKt\",\"infoListItem\":\"InfrastructureStatisticsBox_infoListItem__3UFWg\",\"infoListItemValue\":\"InfrastructureStatisticsBox_infoListItemValue__2KmqC\",\"infoListItemLabel\":\"InfrastructureStatisticsBox_infoListItemLabel__1Cnkw\",\"progressWrapper\":\"InfrastructureStatisticsBox_progressWrapper__26yBD\",\"actionWrapper\":\"InfrastructureStatisticsBox_actionWrapper__2YIbw\",\"actionButton\":\"InfrastructureStatisticsBox_actionButton__mAyXR\",\"infoBox\":\"InfrastructureStatisticsBox_infoBox__1y-_N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"CARBox_wrapper__3oKkG\",\"wrapperWithoutHeader\":\"CARBox_wrapperWithoutHeader__1mvAR\",\"wrapperWithBeforeAndAfterMosaic\":\"CARBox_wrapperWithBeforeAndAfterMosaic__1TSCM\",\"controlWrapper\":\"CARBox_controlWrapper__2tnpb\",\"searchButton\":\"CARBox_searchButton__aXfe6\",\"title\":\"CARBox_title__1hXRZ\",\"formWrapper\":\"CARBox_formWrapper__17W7I\",\"textInfo\":\"CARBox_textInfo__3S75g\",\"formControl\":\"CARBox_formControl__WNcn2\",\"searchIconButton\":\"CARBox_searchIconButton__2McjE\",\"infoIcon\":\"CARBox_infoIcon__2i4w6\",\"loadingProgressWrapper\":\"CARBox_loadingProgressWrapper__3BEU7\",\"carInfoWrapper\":\"CARBox_carInfoWrapper__16fCz\",\"carInfoWrapperWithoutHeader\":\"CARBox_carInfoWrapperWithoutHeader__RLNuJ\",\"header\":\"CARBox_header__2tJAh\",\"closeButton\":\"CARBox_closeButton__2vumz\",\"dataList\":\"CARBox_dataList__2rHIn\",\"dataListItem\":\"CARBox_dataListItem__3jEPx\",\"dataListItemLabel\":\"CARBox_dataListItemLabel__1_Zgt\",\"dataListItemValue\":\"CARBox_dataListItemValue__3fCEJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MapBiomasLogin_wrapper__1FUB5\",\"content\":\"MapBiomasLogin_content__19wh6\",\"logo\":\"MapBiomasLogin_logo__5VMyt\",\"box\":\"MapBiomasLogin_box__-9-Hv\",\"form\":\"MapBiomasLogin_form__1SLNp\",\"MuiInputBase-root\":\"MapBiomasLogin_MuiInputBase-root__2XY_I\",\"contentWrapper\":\"MapBiomasLogin_contentWrapper__2tJPG\",\"title\":\"MapBiomasLogin_title__6yiwI\",\"subtitle\":\"MapBiomasLogin_subtitle__2BivC\",\"formControl\":\"MapBiomasLogin_formControl__5EjXx\",\"emailField\":\"MapBiomasLogin_emailField__2Xafq\",\"actionsWrapper\":\"MapBiomasLogin_actionsWrapper__20rgd\",\"button\":\"MapBiomasLogin_button__14H6n\",\"createAcountLegend\":\"MapBiomasLogin_createAcountLegend__3u865\",\"helperLink\":\"MapBiomasLogin_helperLink__3-iIW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MapBiomasCreatePassword_wrapper__NQZv5\",\"content\":\"MapBiomasCreatePassword_content__2Qto-\",\"logo\":\"MapBiomasCreatePassword_logo__WIGAY\",\"box\":\"MapBiomasCreatePassword_box__3alGb\",\"form\":\"MapBiomasCreatePassword_form__11PQF\",\"MuiInputBase-root\":\"MapBiomasCreatePassword_MuiInputBase-root__348iE\",\"contentWrapper\":\"MapBiomasCreatePassword_contentWrapper__194NU\",\"title\":\"MapBiomasCreatePassword_title__psJzj\",\"subtitle\":\"MapBiomasCreatePassword_subtitle__2BKeP\",\"formControl\":\"MapBiomasCreatePassword_formControl__ky0wT\",\"actionsWrapper\":\"MapBiomasCreatePassword_actionsWrapper__Hh_u7\",\"button\":\"MapBiomasCreatePassword_button__3eHBB\",\"createAcountLegend\":\"MapBiomasCreatePassword_createAcountLegend__1blVw\",\"helperLink\":\"MapBiomasCreatePassword_helperLink__3MgY5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MapBiomasPasswordRecovery_wrapper__2wGFc\",\"content\":\"MapBiomasPasswordRecovery_content__3lac8\",\"logo\":\"MapBiomasPasswordRecovery_logo__1_c95\",\"box\":\"MapBiomasPasswordRecovery_box__3qXGT\",\"contentWrapper\":\"MapBiomasPasswordRecovery_contentWrapper__2OQ2Y\",\"title\":\"MapBiomasPasswordRecovery_title__2_UIe\",\"subtitle\":\"MapBiomasPasswordRecovery_subtitle__1QPPc\",\"formControl\":\"MapBiomasPasswordRecovery_formControl__2o5_c\",\"actionsWrapper\":\"MapBiomasPasswordRecovery_actionsWrapper__JjQ-q\",\"footer\":\"MapBiomasPasswordRecovery_footer__GI8xk\",\"copyText\":\"MapBiomasPasswordRecovery_copyText__1Kn7O\",\"accessAccountLegend\":\"MapBiomasPasswordRecovery_accessAccountLegend__1qvmS\",\"helperLink\":\"MapBiomasPasswordRecovery_helperLink__1QYxQ\",\"button\":\"MapBiomasPasswordRecovery_button__2ykXT\"};"],"sourceRoot":""}