{"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='&amp;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='&amp;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='&amp;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='&amp;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='&amp;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='&amp;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='&amp;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='&amp;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='&amp;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":""}