{"version":3,"sources":["pages/MapBiomasLandingPage/layout/Header/components/Classes/components/ClassLegendList/ClassLegendList.module.scss","pages/MapBiomasLandingPage/layout/Header/components/QualityBaseForm/QualityBaseForm.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/SignUpForm/SignUpForm.module.scss","pages/MapBiomasLandingPage/layout/Header/Header.module.scss","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/components/ClassTreesControl/ClassTreesControl.module.scss","pages/MapBiomasLandingPage/layout/Header/components/GeospatialObjects/GeospatialObjects.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/MapList/MapList.module.scss","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/StatisticsBox.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","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/useFormatMessage.js","hooks/usePrevious.js","data/mapGroupTypeToTerritoryCategoryKey.js","utils/locale.js","utils/toast.js","core/custom-apollo-client/custom-apollo-client.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/query.js","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/BaseForm.js","pages/MapBiomasLandingPage/layout/Header/components/Classes/components/ClassesControl/ClassesControl.js","components/InfoTooltip/InfoTooltip.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/TransitionBaseForm/TransitionBaseForm.js","pages/MapBiomasLandingPage/layout/Header/components/TransitionClasses/query.js","pages/MapBiomasLandingPage/layout/Header/components/TransitionClasses/TransitionClasses.js","pages/MapBiomasLandingPage/layout/Header/components/QualityBaseForm/QualityBaseForm.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/query.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/leaflet-side-by-side/leaflet-side-by-side.js","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/MapCanvas.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","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/NumberOfClassesStatisticsContent/query.js","pages/MapBiomasLandingPage/views/Map/components/StatisticsBox/content/NumberOfClassesStatisticsContent/NumberOfClassesStatisticsContent.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","core/Routes/Routes.js","pages/MapBiomasCreatePassword/MapBiomasCreatePassword.js","helpers/validatePassword.js","pages/ConfirmationPage/ConfirmationPage.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/layout/Header/components/Classes/components/ClassesControl/ClassesControl.module.scss","pages/MapBiomasLandingPage/views/Map/components/CoordinatesBox/CoordinatesBox.module.scss","pages/MapBiomasLandingPage/views/Map/components/StatisticsDataTableBox/StatisticsDataTableBox.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/DashboardDialog.module.scss","pages/MapBiomasLandingPage/layout/Header/components/Classes/components/NaturalOrAnthropicLegendList/NaturalOrAnthropicLegendList.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/PastureQualityCoverageClasses/PastureQualityCoverageClasses.module.scss","pages/MapBiomasLandingPage/layout/Header/components/AccountMenu/components/MapForm/MapForm.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/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/layout/Header/components/TranslateOptionsBox/TranslateOptionsBox.module.scss","pages/MapBiomasLandingPage/views/Map/components/MapCanvas/components/CoordinatesInfo/CoordinatesInfo.module.scss","pages/MapBiomasLandingPage/views/Map/components/MapControls/MapControls.module.scss","pages/MapBiomasLogin/logo.svg","pages/MapBiomasLandingPage/layout/Header/components/QualityClasses/QualityClasses.module.scss","pages/MapBiomasLandingPage/layout/Header/components/InstitutionalMenu/InstitutionalMenu.module.scss","pages/MapBiomasLandingPage/layout/BasePage/BasePage.module.scss","pages/MapBiomasLogin/components/FormFooter.module.scss","pages/MapbiomasCreateAccount/MapbiomasCreateAccount.module.scss","pages/MapBiomasLandingPage/views/Map/components/DashboardDialog/content/DashboardDialogTransitionContent/DashboardDialogTransitionContent.module.scss","pages/MapBiomasLandingPage/layout/Header/components/BaseForm/BaseForm.module.scss","pages/MapBiomasLandingPage/views/Map/components/CARBox/CARBox.module.scss","pages/MapBiomasLandingPage/components/CustomSelect/CustomSelect.module.scss","pages/MapBiomasLandingPage/layout/Header/components/Classes/Classes.module.scss","components/InfoTooltip/InfoTooltip.module.scss","pages/MapBiomasLandingPage/layout/Header/components/GenericClasses/GenericClasses.module.scss","pages/MapBiomasLandingPage/views/Map/components/MapPointDialog/MapPointDialog.module.scss","pages/MapBiomasLandingPage/layout/Header/bosque-atlantico-horizontal.png","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/Footer/logo-ecostage.svg","pages/MapBiomasLandingPage/views/Map/components/InfrastructureStatisticsBox/InfrastructureStatisticsBox.module.scss","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/layout/Header/components/TransitionBaseForm/TransitionBaseForm.module.scss","pages/MapBiomasLogin/MapBiomasLogin.module.scss","pages/MapBiomasCreatePassword/MapBiomasCreatePassword.module.scss","pages/MapBiomasPasswordRecovery/MapBiomasPasswordRecovery.module.scss"],"names":["module","exports","classList","classListLevel2","classListItemBase","classListLevel3","classListLevel4","classListItemHeader","classListItemCheckControl","classListItemTitle","classListItemContentControl","classListItemInfoControl","classListControlOnLeaf","classListControlDisabled","wrapper","wrapperInline","formControl","radioGroup","radioLabel","radioInput","checkboxRoot","checkboxLabel","tooltipWrapper","formWrapper","title","textInfo","actionsWrapper","helperLink","successText","wrapperHidden","wrapperIframeMode","logoBox","menuContent","headerWrapper","headerWrapperHidden","logoBoxCollapsed","versionTag","newTag","betaTag","menuBarListItemOldTag","menuBarListItemNewTag","menuBarListItemBetaTag","toggleButton","toggleButtonExpand","menuBar","linksContent","linksContentIsVisible","linksContentIframeMode","navOpenButton","toggleButtonAlone","topContent","contentWrapper","logo","tabContent","statisticsButtonWrapper","bottomContent","navItemButtonBeta","navItemButtonBetaAddon","activeBlockIconBetaAddon","infrastructureClasses","menuBarList","menuBarListItem","menuBarListItemLine","menuBarListItemButtonIcon","moduleIcon","menuBarListItemCoverage","menuBarListItemCoverageIsActive","menuBarListItemCoverageQuality","menuBarListItemCoverageQualityIsActive","menuBarListItemTrajectories","menuBarListItemTrajectoriesIsActive","menuBarListItemQualityOfPastureData","menuBarListItemQualityOfPastureDataIsActive","menuBarListItemDeforestation","menuBarListItemDeforestationIsActive","menuBarListItemRegeneration","menuBarListItemRegenerationIsActive","menuBarListItemInfrastructure","menuBarListItemInfrastructureIsActive","menuBarListItemIrrigation","menuBarListItemIrrigationIsActive","menuBarListItemFire","menuBarListItemFireIsActive","menuBarListItemMining","menuBarListItemMiningIsActive","menuBarListItemWater","menuBarListItemWaterIsActive","menuBarListItemSentinel","menuBarListItemSentinelIsActive","menuBarListItemSoil","menuBarListItemSoilIsActive","menuBarBottomContent","menuButton","translateButton","actionButton","fireModeContentWrapper","fireModeContent","fireModeContentBox","fireModeContentBoxExtra","fireModeContentBoxTextWrapper","fireModeContentBoxTitle","fireModeContentBoxActions","customModeContentBoxButton","fireModeContentBoxButton","infrastructureModeContentBoxButton","irrigationModeContentBoxButton","deforestationModeContentBoxButton","headerImageLogoSentinel","info","label","toggleButtons","toggleButtons2Items","toggleButtons3Items","levelControls","descriptionText","formControlSelectInput","classNode","classChildNode","actionBoxControlButton","mapList","mapItem","mapItemImage","mapItemTextContent","mapItemTitle","mapItemDescription","mapItemActionsContent","mapItemViewButton","mapItemViewButtonSecondary","wrapperIsHidden","header","closeButton","closeButtonCollapse","collapseWrapper","content","section","sectionSmall","secondaryTitle","secondaryTitleExtraInfo","infoList","infoListItem","infoListItemValue","infoListItemLabel","progressWrapper","actionWrapper","infoBox","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","territoryType","territorySubtype","territoryValueType","crossingEnabled","crossingTerritoryType","crossingTerritories","territory","territories","crossing","classesViewMode","activeClassTreeOptionValue","activeClassTreeNodeIds","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","mapModuleToPathname","/cobertura","/analises-temporais","/desmatamento","/regeneracao","/irrigacao","/infraestrutura","/pastagem","/fogo","/mineracao","/qualidade","/solo","/cobertura_10m","parseTerritories","_","territoryCode","_$split","_$split2","slicedToArray","id","territoryTypeId","territoryTypeLabel","bboxV1","bboxV2","bboxV3","bboxV4","parsedBBox","Number","__typename","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","toast","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$onClear","onClear","isEmpty","list","option","categoryText","listItem","listItemText","IconButton","listItemRemoveButton","Clear_default","CustomSelect","_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","disableClearable","loading","loadingText","noOptionsText","getOptionLabel","_event","reason","renderInput","params","TextField","variant","GET_TERRITORIES_AUTOCOMPLETE","TerritoryAutocomplete","activeTerritories","categoryId","territoryLabelFilter","locale","useApolloClient","currentValue","setCurrentValue","_useState3","_useState4","setOptions","_useState5","_useState6","setLoading","setDataFromExternalTerritories","first","boundingBox","useEffect","searchOptions","query","_yield$client$query","newOptions","parsedOptions","variables","stringList","selectedString","language","toConsumableArray","filter","kebabCase","debouncedSearchOptions","useMemo","debounce","filterOptions","x","autoComplete","includeInputInList","filterSelectedOptions","newValue","newInputValue","useFormatMessage","formatMessage","useIntl","values","usePrevious","ref","useRef","current","mapGroupTypeToTerritoryCategoryKey","default","territorial","land","simplified","onLocaleFunctionsCustom","mapValues","localeMessages","_messages","flow","property","partial","onCurrentLocaleCustom","multiLanguageStringObject","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","inline","showCrossing","_ref$onFlyTo","onFlyTo","intl","clientBaseData","useQuery","_useQuery2","customClient","baseData","loadingBaseData","_useQuery3","skip","transitionBaseData","loadingTransitionBaseData","_useLazyQuery","useLazyQuery","_useLazyQuery2","loadTerritoriesListData","_useLazyQuery2$","territoriesListData","loadingTerritoriesListData","loadTerritoryBoundingBox","territoriesIds","bbox","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","updateClientAppState","updateClientAppBaseParamsState","initialTerritoryType","isNumber","firstTerritory","firstTerritoryId","territoryOption","activeTerritoryIds","newTerritoryItem","handleInputChange","field","isObject","handleTerritoryChange","_field","baseOption","nextTerritories","RadioGroup","FormControlLabel","control","Radio","FormControl","components_TerritoryAutocomplete","territoriesClone","root","Checkbox","checked","BaseForm_CustomTooltip","Info_default","gb","yearRangeFormControl","ListSubheader","groupList","checkboxControl","activeButton","borderColor","InfoTooltip","_ref$placement","placement","InfoTooltip_CustomTooltip","dangerouslySetInnerHTML","__html","icon","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","legendTooltip","handleOptionChange","href","classTreeOption","renderOptions","levelId","isChecked","ClassLegendList","hideLegendIndex","classTreeNodes","onClassTreeNodeToggle","onClassTreeNodeShowTooltip","expandedNodeIds","setExpandedNodeIds","rootLevel","min","toggleTreeNode","node","without","renderClassTreeBranch","_ref2$parentId","parentNode","branchNodes","currentLevelShiftedToZeroBased","last","prettyIndexOfNodeInTree","positionInTree","indexText","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","GenericClasses","moduleId","uncurriedUpdateStateCache","classesTreesData","isOnInitialRenderingWithQueryParams","isUndefined","classTrees","classTreeKey","classTreeData","classTreeLevelsList","activeTreeIsInCurrentSubmoduleTrees","classTree","firstTree","firstTreeKey","nodeIds","defaultLevels","chain","nodesOfActiveClassTree","uniq","idsByLevel","level","idsByLevelActive","compact","classesControlTreeOptions","idsClone","nextIds","ClassLegendList_ClassLegendList","classTreeNode","nodeId","GET_COMPONENT_INITIALIZATION_DATA","MAP_POSITION_IN_TREE_TO_DOWNLOAD_URL","1.1.1","1.2.1","1.2.2","1.2.3","1.2.4","1.2.5","1.2.6","1.2.7","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.4.1","1.5.1","1.5.2","2.1.1","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.1.9","2.1.10","2.2.1","2.2.2","2.2.3.1","2.2.3.2","2.2.3.3","2.2.3.4","2.2.3.5","2.2.3.6","2.2.4.7","2.2.4.8","3.1","3.2","3.3","GeospatialObjects","_ref$objectTree","objectTree","apolloClient","_useQuery","appState","updateState","nodes","handleObjectTreeNodeToggle","objectTreeNode","downloadUrl","childrenIds","CloudDownload_default","transitionClassesData","TransitionClasses","_ref$onItemsChange","onItemsChange","activeItems","allClassesActive","handleItemsChange","itemIsActive","toggleActiveItem","itemsClone","itemId","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","initialState","login","password","LoginForm","_ref$onRecoveryPasswo","onRecoveryPassword","setState","handleTextChange","paramKey","paramValue","handleStateChange","onSubmit","preventDefault","payload","method","required","Button","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","Close_default","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","infoText","startIcon","Add_default","addButton","appData","snapshot","mapsClone","flyTo","territoryPoints","turf","mapData","mapId","GET_MODULE_DATA","customClientModules","ModuleIconComponent","xmlns","viewBox","fill","d","preserveAspectRatio","version","NEW_MODULE_KEYS","BETA_MODULE_KEYS","mapNewModuleListKeyToOldKey","getModuleItemClassName","scenarios","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","customModulesData","prevActiveModule","isFireIframe","isInfrastructureIframe","isIrrigationIframe","modulesList","customModulesList","activeModuleData","landUseAndCover","pastureQuality","submodulesList","handleActiveModuleChange","push","defaultParams","toggleNav","handleShowDashboardInfo","handleTabChange","handleMapFlyToChange","handleAddNewMap","handleShowMyMaps","hasStatisticsButton","parsedTabList","mapSubmoduleIdToTooltip","totalTabList","handleCustomModeClick","showFireIframeMode","showInfrastructureIframeMode","showIrrigationIframeMode","isActive","rgbColor","hex","m","r","g","b","result","exec","parseInt","hexToRgb","primaryColor","Header_CustomTooltip","AccountCircle_default","Menu_default","currentTarget","Translate_default","renderTabContent","BarChart_default","Bookmark_default","ViewList_default","component","mainLogo","logoImage","logoFire","logoSentinelPT","logoSentinelEN","src","alt","renderLogo","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","arrayFormat","customPathname","invert","pageWrapper","locale-en","Header_Header","minHeight","frameBorder","scrolling","marginHeight","marginWidth","GET_POINT_DATA","searchButtonActive","& svg","CustomTooltipSimple","code","CARForm","isVisible","_ref$onSearchPoint","onSearchPoint","_ref$onRuralPropertyC","onRuralPropertyCodeChange","_ref$updateClientAppS","isSearching","setIsSearching","carCode","wfsParams","resp","fetchCARCodeLayerData","feature","center","coordinates","point","lat","lng","searchIconButton","Search_default","loadingProgressWrapper","CircularProgress","CARInfo","_ref2$onClose","handleClose","carInfoWrapper","carInfoWrapperWithoutHeader","carInfoWrapperWithBeforeAndAfterMosaic","dataList","dataListItem","dataListItemLabel","dataListItemValue","CARBox","_ref3$onFlyTo","_ref3$onFeatureChange","onFeatureChange","_ref3$updateClientApp","showPointForm","setShowPointForm","CARData","setCARData","loadPointData","pointData","loadingPointData","getTerritoriesOnList","filteredTerritoryCategoriesList","_ref4","parsedData","category","territoryData","categoryStringList","categorySelectedString","territoryStringList","territorySelectedString","category_key","wrapperWithoutHeader","wrapperWithBeforeAndAfterMosaic","controlWrapper","searchButton","isVisibile","FlipToFront_default","_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","PointForm","parsedLat","parsedLng","CoordinatesBox_CustomTooltip","interactive","infoIcon","InputProps","inputComponent","Cleave","inputProps","numeral","MyLocation_default","CoordinatesBox","_ref2$onSubmit","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","alias","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","loadingWrapper","chartsWrapper","dataTableWrapper","tableHeader","tableTitle","each","rowData","class","flatten","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","uniqBy","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","props","transparent","layers","descriptionData","baseMaps","layerParams","noWrap","attribution","tileType","CoordinatesInfo","mouseCoordinates","mouseCoordinatesInfo","MapCustomEvents","_ref$onZoomStart","onZoomStart","_ref$onMoveStart","onMoveStart","_ref$onEsc","onEsc","useLeaflet","handleKeyDown","originalEvent","keyCode","on","off","mapWasDragEnabled","mapWasTapEnabled","el","types","fn","context","L","DomEvent","getRangeEvent","rangeInput","cancelMapDrag","_map","dragging","enabled","tap","disable","uncancelMapDrag","_refocusOnMap","enable","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","layer","hasLayer","setAttribute","Browser","touch","sideBySide","Icon","Default","_getIconUrl","mergeOptions","iconRetinaUrl","require","iconUrl","shadowUrl","mapButtonActive","EXTERNAL_ELEMENTS_HEIGHT","CONFIG_DEFAULT","zoom","minZoom","maxZoom","CUSTOM_MAP_URL","MapCanvas","leftSideMosaicLayer","rightSideMosaicLayer","sideBySideControl","carFeature","countryTerritoryId","_ref$configOptions","configOptions","_ref$isOnFreezeMode","isOnFreezeMode","_ref$onSearchPointCli","onSearchPointClick","onMoveEnd","setCoverageTutorial","_ref$onFlyToReset","onFlyToReset","MAP_URL","mapRef","zoomControlRef","setMouseCoordinates","isOnBoxZoomMode","setIsOnBoxZoomMode","isOnPointSearchMode","setIsOnPointSearchMode","activeBaseMapData","baseMapsData","mapboxModePrev","leafletElement","invalidateSize","handleBoxZoomClick","setTimeout","boxZoomButton","getElementById","fitBounds","panTo","layerName","firstYear","lastYear","classTreeLevelsListIds","tileLayer","wms","class_tree_node_ids","territory_ids","removeLayer","renderInfrastructureCoverageLayer","_ref2$opacityDenomina","opacityDenominator","_ref2$objectsMask","objectsMask","WMSTileLayer","buffer_id","object_tree_node_ids","opacity","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","ZoomControl","position","ScaleControl","imperial","index_es","sticky","border","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","outline","cursor","borderRadius","activeStyle","MapCanvas_CustomTooltip","mapActionButton","mapSearchButton","stopPropagation","NotListedLocation_default","TileLayer","renderBaseMap","classTreeNodeIds","renderCoverageLayer","_$split3","_$split4","transitionCategoryKeys","from_year","to_year","transition_category_keys","renderTransitionLayer","renderQualityLayer","enabledPixelValues","enabled_pixel_values","renderPastureQualityQualityLayer","mapPathname","yearParams","renderGenericLayer","layerData","baseLayersData","LayerComponent","GeoJSON","weight","Marker","mapboxgl","workerClass","MAPBOX_TOKEN","bearing","pitch","exaggeration","MapboxCanvas","CONFIG","reverse","esm","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","tileSize","tiles","sourceLayer","paint","raster-opacity","MapboxControl","_ref$onToggle","onToggle","wrapperHeader","MapboxControl_CustomTooltip","actionButtonActive","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","Fragment","baseMapsItemWrapper","radioGroupControl","radioGroupLabel","PointHistoryChart","yAxisNames","MapPointDialog","pointInfo","ruralProperties","setRuralProperties","chartData","setChartData","bboxString","generareSeriesItem","categoryIndex","parsedParams","round","urls","all","coverageData","classItemData","classification","linguage","parsePointData","parsedCoverageData","coverageItem","coverageItemParsed","features","carsList","chartWrapper","titleCar","dataListCar","ruralProperty","cod_imovel","dataListCarItemFull","headerInfoValue","popper","YearTimeline","_ref$firstYearFixed","firstYearFixed","initialValue","rangeLimits","rangeSpecificValues","uniqueId","updateKey","setUpdateKey","isRange","sliderItemsProps","marks","rsv","timelineInfo","DateRange_default","sliderWrapper","ValueLabelComponent","YearTimeline_CustomTooltip","timelineMark","intervals","YearTimelineMultiple","yearList","startYearsList","startValue","setStartValue","endValue","setEndValue","filteredIntervals","endYearsList","handleChange","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","yAxisMillionLabelFormatter","yAxisLabelPercentageFormatter","parsedValue","isPercentage","_ref$hideXAxisLabel","hideXAxisLabel","_ref$hasAvgMarkLine","hasAvgMarkLine","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","AnnualStatisticsContent","statisticsDataIsVisible","onShowData","mainYear","chartsData","setChartsData","emptyData","setEmptyData","loadingClassTreeData","filteredActiveClassTreeNodeIds","nodeData","activeParentClassTreeNodeIds","getParentIds","errorBaseData","getTotalAreaByClassesData","classTreeNodeData","yearData","nodeValues","parsedSeries","parsedNodeId","sortedSeries","filteredSeries","getPercentageAreaByClasses","totalAreaByClasses","percentageAreaByClasses","handleShowData","totalAreaByClassesChartData","totalAreaByClassesChartDataCategories","totalAreaByClassesChartDataSeries","totalAreaByClassesChart","percentageAreaByClassesChartData","percentageAreaByClassesChartDataCategories","percentageAreaByClassesChartDataSeries","percentageAreaByClassesChart","LinearProgress","distByYears","customTotal","isCustom","areaByPeriod","BarChart_BarChart_BarChart","TableChart_default","unit","_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","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","maximum","average","minimum","FireAccumulatedStatisticsContent","_ref$localeKey","localeKey","lastValue","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","CLASS_NAME_SUMMARY_MAPPER","2","3","4","5","> 5","> 6","NumberOfClassesStatisticsContent","parsedRows","numberOfClassesChart","numberOfClasses","sample","areaByNumberOfClasses","StatisticsBox","_ref$onShowData","mapClassTreeKeyToTooltip","fire_annual_total_burned","defaultContentParams","titleTooltip","setIsVisible","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","statisticsData","setStatisticsData","setCarFeature","territoriesCategoriesListData","loadCountryTerritoryData","countryTerritoryListData","prevLoadingBaseData","prevActiveModuleContent","mapConfigOptions","confirmation","URL","searchParams","passwordUpdate","checkModuleKeyCondition","parsedModuleContentKey","toggleMapbox","countryTerritoryCategory","handleMapPointSearchClick","handleFlyToPointSubmit","handleControlsChange","handleMoveEnd","handleStatisticsShowData","TimelineComponent","onControlsChange","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","modulesRoutes","MapBiomasLandingPage","routes","urlToken","passwordConfirmation","paramsToJSON","paramsToJSONCopy","decodeURI","isCreatePasswordButtonDisabled","box","Typography","match","validatePassword","request_params","URLSearchParams","errors","createAcountLegend","Link","to","isCreatedPassword","urlParams","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","unauthenticated","authenticated","renderRoutes","_loading","routesToRender","BrowserRouter","app_context","Provider","route","i","routeProps","defaults","exact","redirect","generateExtraProps","_props","redirectPath","isFunction","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","select","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","disabledButton","smallText","translation","tutorialButton","mapGeographicalReliefButton","opacityBox","headerInfo","headerInfoLabel","headerInfoToggleButton","alertText","actionButtonDisabled","__webpack_require__","p","form","MuiInputBase-root","privacyLink","privacyLabel","dataListItemFull"],"mappings":"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","file":"static/js/main.b08381ec.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"classList\":\"ClassLegendList_classList__1_luO\",\"classListLevel2\":\"ClassLegendList_classListLevel2__1QH3A\",\"classListItemBase\":\"ClassLegendList_classListItemBase__3nQGZ\",\"classListLevel3\":\"ClassLegendList_classListLevel3__4iDNz\",\"classListLevel4\":\"ClassLegendList_classListLevel4__14qgL\",\"classListItemHeader\":\"ClassLegendList_classListItemHeader__cOZBY\",\"classListItemCheckControl\":\"ClassLegendList_classListItemCheckControl__32oOL\",\"classListItemTitle\":\"ClassLegendList_classListItemTitle__3fpl5\",\"classListItemContentControl\":\"ClassLegendList_classListItemContentControl__2Vnjr\",\"classListItemInfoControl\":\"ClassLegendList_classListItemInfoControl__vMwfy\",\"classListControlOnLeaf\":\"ClassLegendList_classListControlOnLeaf__3qS5_\",\"classListControlDisabled\":\"ClassLegendList_classListControlDisabled__1E5MM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"QualityBaseForm_wrapper__2J_03\",\"wrapperInline\":\"QualityBaseForm_wrapperInline__2YAUp\",\"formControl\":\"QualityBaseForm_formControl__2m04h\",\"radioGroup\":\"QualityBaseForm_radioGroup__4qu1R\",\"radioLabel\":\"QualityBaseForm_radioLabel__fe5Rq\",\"radioInput\":\"QualityBaseForm_radioInput__VOsao\",\"checkboxRoot\":\"QualityBaseForm_checkboxRoot__Kl91a\",\"checkboxLabel\":\"QualityBaseForm_checkboxLabel__3qklk\",\"tooltipWrapper\":\"QualityBaseForm_tooltipWrapper__QOfiQ\"};","// 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\":\"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\",\"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\",\"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\"};","// 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\",\"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 = {\"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\"};","// 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\"};","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  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  activeObjectTreeNodeIds: [],\n  activeSubmodule: null,\n  activeClassesLevelsListItems: null,\n  activeTransitionsClassesListItems: null,\n  activePastureQualityQualityClassesListItems: null,\n  yearRange: '1985-2022',\n  buffer: 0,\n}\n","export default {\n  'coverage': {\n    activeModule: 'coverage',\n    activeModuleContent: 'coverage:coverage_main',\n    activeYear: 2022,\n    timelineSpecificValues: null,\n    timelineLimitsRange: [1985, 2022],\n    mapboxMode: false,\n  },\n  'temporal_analysis': {\n    activeModule: 'temporal_analysis',\n    activeModuleContent: 'temporal_analysis:temporal_analysis_number_of_classes',\n    activeYear: [1985, 2022],\n    timelineSpecificValues: null,\n    timelineLimitsRange: [1985, 2022],\n    mapboxMode: false,\n  },\n  'coverage_quality': {\n    activeModule: 'coverage_quality',\n    activeModuleContent: 'coverage_quality:coverage_quality_main',\n    activeYear: 2022,\n    timelineSpecificValues: null,\n    timelineLimitsRange: [1985, 2022],\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, 2022],\n    timelineSpecificValues: null,\n    timelineLimitsRange: [2000, 2022],\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: [1987, 2021],\n    timelineSpecificValues: null,\n    timelineLimitsRange: [1987, 2021],\n    mapboxMode: false,\n  },\n  'regeneration': {\n    activeModule: 'regeneration',\n    activeModuleContent: 'regeneration:regeneration_annual',\n    activeYear: [1986, 2021],\n    timelineSpecificValues: null,\n    timelineLimitsRange: [1986, 2021],\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, 2022],\n    timelineSpecificValues: null,\n    timelineLimitsRange: [1985, 2022],\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};\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};\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: 2022,\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, 2022],\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    },\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  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, 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  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\n      setInputValue('');\n      onChange(dataKey, option.id);\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=\"Buscar...\"\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 { 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=\"Buscar...\"\n      includeInputInList\n      filterSelectedOptions\n      value={ currentValue }\n      noOptionsText=\"Buscar...\"\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 { 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 { 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      'atlantic_forest_limit',\n      'country',\n      'political_level_1',\n      'political_level_2',\n      'watersheds',\n    ],\n    'land': [\n      'indigenous_territories',\n      'national_conservation_unit',\n      'international_conservation_unit',\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      'level_1_basin_pnhr',\n      'level_2_basin_pnhr',\n      'special_territories',\n      'biosphere_reserve',\n      'geoparks',\n    ],\n    'land': [\n      'settlement',\n      'quilombo',\n      'indigenous_land_new',\n      'federal_conservation_units_integral_protection',\n      'federal_conservation_units_sustainable_use',\n      'state_conservation_units_integral_protection',\n      'state_conservation_units_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      'level_1_basin_pnhr',\n      'level_2_basin_pnhr',\n      'special_territories',\n    ],\n    'land': [\n      'settlement',\n      'quilombo',\n      'indigenous_land_new',\n      'federal_conservation_units_integral_protection',\n      'federal_conservation_units_sustainable_use',\n      'state_conservation_units_integral_protection',\n      'state_conservation_units_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","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 { ApolloClient } from 'apollo-client';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { HttpLink } from 'apollo-link-http';\n\nconst cache = new InMemoryCache();\n\nconst link = new HttpLink({\n  uri: '/api/v7.1/graphql'\n});\n\nconst client = new ApolloClient({\n  cache,\n  link,\n});\n\nexport default client;\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        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 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 customClient from '../../../../../../core/custom-apollo-client/custom-apollo-client';\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  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: clientType === 'custom' ? customClient : undefined\n  });\n  const { data: transitionBaseData, loading: loadingTransitionBaseData } = useQuery(GET_TRANSITION_PERIOD_OPTIONS_DATA, {\n    skip: !isTransition,\n    client: clientType === 'custom' ? customClient : undefined\n  });\n  const [\n    loadTerritoriesListData,\n    {\n      data: territoriesListData,\n      loading: loadingTerritoriesListData\n    }\n  ] = useLazyQuery(GET_TERRITORIES_LIST, {\n    client: clientType === 'custom' ? customClient : undefined\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 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: 'atlantic_forest_limit' });\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(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      <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          </RadioGroup>\n        ) }\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      </div>\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      { false &&\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={ crossingTerritoryTypeOptions }\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    </div>\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 FormControlLabel from '@material-ui/core/FormControlLabel';\n\nimport useFormatMessage from '../../../../../../../../hooks/useFormatMessage';\n\nimport styles from './ClassesControl.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: `${ theme.palette.primary.main } !important`,\n  },\n}));\n\nexport default function ClassesControl({\n  activeClassificationLevels,\n  disabled = false,\n  viewMode,\n  levels = [],\n  hideLevelsToggle = false,\n  viewModeOptions,\n  showDescription = false,\n  onClassificationLevelToggle = () => {},\n  onViewModeChange = () => {},\n  titleKey,\n}) {\n  const formatMessage = useFormatMessage();\n  const classes = useStyles();\n\n  const intl = useIntl()\n\n  const renderLevelCheckboxesToggle = () => {\n    return _.map(levels, (levelId) => {\n      const isChecked = _.includes(activeClassificationLevels, levelId);\n\n      return (\n        <FormControlLabel\n          key={ `level-control-${ levelId }` }\n          disabled={ disabled }\n          classes={{\n            root: styles.checkboxRoot,\n            label: styles.checkboxLabel,\n          }}\n          control={\n            <Checkbox\n              checked={ isChecked }\n              onChange={ onClassificationLevelToggle.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 }><FormattedMessage id={ titleKey || 'mapbiomas.header.classes_control.title' } /></h2>\n      { showDescription && <p className={ styles.descriptionText }><FormattedMessage id=\"mapbiomas.header.classes_control.description.click\" /> <a href={intl.formatMessage({id: 'mapbiomas.header.classes_control.description.url'})} target=\"_blank\" className={ classes.link }><FormattedMessage id=\"mapbiomas.header.classes_control.description.here\" /></a> <FormattedMessage id=\"mapbiomas.header.classes_control.description.content\" /></p> }\n      { viewModeOptions &&\n        <Fragment>\n          <span className={ styles.label }><FormattedMessage id=\"mapbiomas.header.classes_control.view_mode.title\" /></span>\n          <div className={ styles.toggleButtons }>\n            { _.map(viewModeOptions, (option, index) => {\n              return (\n                <button\n                  id={`legend-t-${index}`}\n                  className={ classnames(styles.actionButton, {\n                    [classes.activeButton]: viewMode === option.id,\n                    [styles.disabledButton]: disabled,\n                  }) }\n                  key={ `view-mode-${ option.id }` }\n                  onClick={ onViewModeChange.bind(this, option.id) }\n                >\n                  <FormattedMessage id={ `mapbiomas.header.classes_control.view_mode.options.${ option.labelKey }` } />\n                </button>\n              );\n            }) }\n          </div>\n        </Fragment>\n      }\n      { !hideLevelsToggle &&\n        <div className={ styles.levelControls }>\n          { renderLevelCheckboxesToggle() }\n        </div>\n      }\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, { 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 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}) {\n  const classes = useStyles()\n  const formatMessage = useFormatMessage()\n  const legendTooltip = mapSubmoduleKeyToTooltip[submoduleKey];\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        }) }>\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      { !_.isEmpty(levels) && _.size(levels) > 1 && !hideLevelsControl && renderLevelsControl() }\n    </div>\n  )\n}\n","import React, { 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  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  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    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      }\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\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 } from 'react'\nimport _ from 'lodash'\nimport { useApolloClient, useQuery } from '@apollo/react-hooks'\nimport useMediaQuery from '@material-ui/core/useMediaQuery'\n\nimport ClassTreesControl from './components/ClassTreesControl'\nimport ClassLegendList from './components/ClassLegendList'\nimport { updateStateCache as uncurriedUpdateStateCache } from '../../../../../../utils/apollo'\n\nimport customClient from '../../../../../../core/custom-apollo-client/custom-apollo-client';\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\nexport default function GenericClasses({\n  clientType,\n  hideLegendIndex,\n  moduleId,\n  submoduleKey,\n  hideLevelsControl,\n}) {\n  const isMobile = useMediaQuery('(max-width: 768px)')\n  const locale = localStorage.getItem('locale') || 'es'\n  const client = useApolloClient()\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: clientType === 'custom' ? customClient : undefined\n  })\n\n  const activeClassTreeNodeIds = _.get(baseData, 'app.baseParams.activeClassTreeNodeIds')\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\n  const { data: classTreeData, loading: loadingClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n    variables: {\n      classTreeKey: activeClassTreeOptionValue\n    },\n    skip: !activeClassTreeOptionValue,\n    client: clientType === 'custom' ? customClient : undefined\n  });\n  const classTreeLevelsList = _.get(classTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi') || [];\n\n  useEffect(() => {\n    if (isOnInitialRenderingWithQueryParams) {\n      return;\n    }\n\n    const activeTreeIsInCurrentSubmoduleTrees = _.some(\n      classTrees,\n      { classTree: { key: activeClassTreeOptionValue }}\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    updateStateCache(\n      'app.baseParams',\n      [ 'activeClassTreeOptionValue', classTreeKey ],\n      [ 'activeClassTreeNodeIds', nodeIds ]\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 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  return (\n    <div className={ styles.wrapper }>\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      />\n      <ClassLegendList\n        hideLegendIndex={ hideLegendIndex }\n        classTreeNodes={ nodesOfActiveClassTree }\n        activeClassTreeNodeIds={ activeClassTreeNodeIds }\n        onClassTreeNodeToggle={ handleClassTreeNodeToggle }\n        onClassTreeNodeShowTooltip={ handleClassTreeNodeShowTooltip }\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/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_aerodromos.zip',\n  '1.2.1': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_eclusa.zip',\n  '1.2.2': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_estacao_transbordo_cargas.zip',\n  '1.2.3': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_hidrovia.zip',\n  '1.2.4': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_instalacao_portuaria_turismo.zip',\n  '1.2.5': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_instalacao_portuaria_sob_registro.zip',\n  '1.2.6': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_porto.zip',\n  '1.2.7': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_terminal_uso_privado.zip',\n  '1.3.1': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_aquaduto.zip',\n  '1.3.2': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_gasoduto.zip',\n  '1.3.3': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_mineroduto.zip',\n  '1.3.4': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_oleoduto.zip',\n  '1.3.5': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_poliduto.zip',\n  '1.3.6': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_duto_nao_identificado.zip',\n  '1.4.1': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_ferrovias.zip',\n  '1.5.1': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_trechos_rodoviarios.zip',\n  '1.5.2': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/transport/mapbiomas_infra_rodovias_federais.zip',\n  '2.1.1': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_refinarias_petroleo.zip',\n  '2.1.2': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_terminal_armazenamento_petroleo.zip',\n  '2.1.3': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_estacao_compressao.zip',\n  '2.1.4': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_ponto_entrega_gas.zip',\n  '2.1.5': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_processamento_gas_natural.zip',\n  '2.1.6': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_usina_biodiesel.zip',\n  '2.1.7': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_usina_biogas.zip',\n  '2.1.8': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_usina_etanol.zip',\n  '2.1.9': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_base_glp.zip',\n  '2.1.10': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_base_combustivel_liquido.zip',\n  '2.2.1': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_subestacao.zip',\n  '2.2.2': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_linhas_transmissao.zip',\n  '2.2.3.1': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_usinas_eolicas.zip',\n  '2.2.3.2': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_usinas_fotovoltaicas.zip',\n  '2.2.3.3': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_usinas_termeletricas_biomassa.zip',\n  '2.2.3.4': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_usinas_hidreletricas.zip',\n  '2.2.3.5': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_pequena_central_hidreletrica.zip',\n  '2.2.3.6': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_centrais_geradoras_hidreletricas.zip',\n  '2.2.4.7': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_termeletricas_combustivel_fossil.zip',\n  '2.2.4.8': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/energy/mapbiomas_infra_termonuclear.zip',\n  '3.1': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/mining/mapbiomas_infra_mina_energeticos.zip',\n  '3.2': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/mining/mapbiomas_infra_mina_metalicos.zip',\n  '3.3': 'https://storage.googleapis.com/mapbiomas-public/brasil/collection-6/lclu/downloads/infrastructure/mining/mapbiomas_infra_mina_outros_produtos.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 React, { useEffect } from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport { useApolloClient, useLazyQuery, useQuery } from '@apollo/react-hooks';\nimport { FormattedMessage } from 'react-intl';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\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 Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport InfoIcon from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport ActiveOptionsList from '../ActiveOptionsList';\n\nimport CustomSelect from '../../../../components/CustomSelect';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport mapGroupTypeToTerritoryCategoryKey from '../../../../../../data/mapGroupTypeToTerritoryCategoryKey';\n\nimport styles from './TransitionBaseForm.module.scss';\n\nimport {\n  GET_BASE_DATA,\n  GET_BASE_CLIENT_DATA,\n  GET_TERRITORIES_LIST,\n} from './query';\n\nconst CustomTooltip = withStyles(() => ({\n  tooltip: {\n    padding: '8px 12px',\n    fontSize: 14,\n    color: 'white',\n    backgroundColor: '#555',\n    boxShadow: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.12)',\n  },\n}))(Tooltip);\n\n// TODO: Remove this unused component\n\nexport default function TransitionBaseForm({\n  inline,\n  onFlyTo = () => {},\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: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA);\n  const [\n    loadTerritoriesListData,\n    {\n      data: territoriesListData,\n      loading: loadingTerritoriesListData\n    }\n  ] = useLazyQuery(GET_TERRITORIES_LIST);\n  const baseParams = _.get(clientBaseData, 'app.baseParams');\n  const showBeforeAndAfterMosaic = _.get(clientBaseData, 'app.showBeforeAndAfterMosaic');\n  const territoryCategoriesList = _.get(baseData, 'territoryCategoriesList');\n  const coverageTransitionPeriodOptionsList = _.get(baseData, 'coverageTransitionPeriodOptionsList');\n  const territoriesList = _.get(territoriesListData, 'territoriesList');\n\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 yearRange = _.get(baseParams, 'yearRange');\n  const territories = _.get(baseParams, 'territories');\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 territoryKeysByGroupType = mapGroupTypeToTerritoryCategoryKey[groupType];\n  const filteredTerritoryTypeOptions = _(parsedTerritoryTypeOptions)\n    .filter(({ key }) => _.includes(territoryKeysByGroupType, key) && key !== 'indigenous_land')\n    .sortBy(({ key }) => _.findIndex(territoryKeysByGroupType, (baseTerritoryKey) => baseTerritoryKey === key))\n    .value();\n  const parsedTerritoryOptions = _.map(territoriesList, (territory) => {\n    const stringList = _.get(territory, 'i18nStrings');\n    const selectedString = _.find(stringList, { language: locale });\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    client.writeData({\n      data: {\n        app: {\n          __typename: 'AppState',\n          baseParams: {\n            __typename: 'AppBaseParamsState',\n            ...params\n          }\n        }\n      }\n    });\n  };\n\n  useEffect(() => {\n    if (territoryType) {\n      loadTerritoriesListData({\n        variables: {\n          categoryId: territoryType\n        }\n      });\n    }\n  }, [territoryType]);\n\n  useEffect(() => {\n    if (territoryCategoriesList) {\n      const initialTerritoryType = _.find(territoryCategoriesList, { key: 'country' });\n      const territoryTypeId = territoryType || _.get(initialTerritoryType, 'id');\n      const params = {\n        territoryType: territoryTypeId,\n      };\n      loadTerritoriesListData({\n        variables: {\n          categoryId: territoryTypeId\n        }\n      });\n\n      updateClientAppBaseParamsState(params);\n    }\n  }, [territoryCategoriesList]);\n\n  useEffect(() => {\n    if (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        onFlyTo(_.get(territoryOption, 'boundingBox'));\n      }\n    }\n  }, [territoriesList]);\n\n  const handleEventChange = (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    updateClientAppBaseParamsState(params);\n  };\n\n  const toggleBeforeAndAfterMosaic = () => {\n    updateClientAppState({\n      showBeforeAndAfterMosaic: !showBeforeAndAfterMosaic,\n    });\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    const parsedValue = _.isObject(value) ? value.target.value : value;\n    const baseOption = _.find(parsedTerritoryOptions, { id: parsedValue });\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      onFlyTo(baseOption.boundingBox);\n    }\n\n    handleEventChange(field, value);\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  return (\n    <div className={ classnames(styles.wrapper, {\n      [styles.wrapperInline]: inline\n    }) }>\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        />\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        />\n      </RadioGroup>\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={ handleEventChange }\n          placeholder={ formatMessage(`mapbiomas.header.base_form.territory.placeholder`) }\n        />\n      </FormControl>\n      <FormControl\n        variant=\"outlined\"\n        className={ styles.formControl }\n      >\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          onChange={ handleTerritoryChange }\n          placeholder={ formatMessage(`mapbiomas.header.base_form.territory.placeholder`) }\n        />\n        { territoryIsMultiple &&\n          <ActiveOptionsList\n            categoryKey=\"territoryTypeLabel\"\n            options={ territories }\n            onClear={ handleRemoveTerritory }\n          />\n        }\n      </FormControl>\n      <FormControlLabel\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      <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={ handleEventChange.bind(this, 'yearRange') }\n          disabled={ loadingBaseData || loadingTerritoriesListData }\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    </div>\n  );\n}\n","import { gql } from 'graphql.macro';\n\nexport const GET_BASE_DATA = gql`\n  query {\n    app @client {\n      baseParams {\n        activeTransitionsClassesListItems\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    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    label: 'Transições que acrescem superfície de água',\n    color: '#3FACFF'\n  },\n  {\n    id: 'reduction_of_water_surface',\n    label: 'Transições que reduzem superfície de água',\n    color: '#FFA505'\n  },\n  {\n    id: 'gain_of_forest_plantations',\n    label: 'Transições com ganho de áreas de silvicultura.',\n    color: '#8A2BE2'\n  },\n  {\n    id: 'vegetated_areas_to_non_vegetated',\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    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.activeTransitionsClassesListItems') || [];\n  const allClassesActive = _.size(activeItems) === _.size(transitionClassesData);\n\n  const handleItemsChange = (ids) => {\n    onItemsChange({ activeTransitionsClassesListItems: ids });\n  };\n\n  useEffect(() => {\n    if (_.isEmpty(activeItems)) {\n      handleItemsChange(_.map(transitionClassesData, 'id'));\n    }\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, 'id'));\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.id }` }\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.id) }\n                >\n                  { itemIsActive(item.id) ? <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, { useEffect } from 'react';\nimport _ from 'lodash';\nimport classnames from 'classnames';\nimport { useApolloClient, useLazyQuery, useQuery } from '@apollo/react-hooks';\nimport { FormattedMessage } from 'react-intl';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport InfoIcon from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport ActiveOptionsList from '../ActiveOptionsList';\n\nimport CustomSelect from '../../../../components/CustomSelect';\n\nimport useFormatMessage from '../../../../../../hooks/useFormatMessage';\n\nimport mapGroupTypeToTerritoryCategoryKey from '../../../../../../data/mapGroupTypeToTerritoryCategoryKey';\n\nimport styles from './QualityBaseForm.module.scss';\n\nimport {\n  GET_BASE_DATA,\n  GET_TERRITORIES_LIST,\n} from './query';\n\nconst CustomTooltip = withStyles(() => ({\n  tooltip: {\n    padding: '8px 12px',\n    fontSize: 14,\n    color: 'white',\n    backgroundColor: '#555',\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 defaultCrossingKeys = [\n  'indigenous_territories',\n  'settlement',\n  'quilombo',\n  'state_conservation_units_integral_protection',\n  'federal_conservation_units_integral_protection',\n  'state_conservation_units_sustainable_use',\n  'federal_conservation_units_sustainable_use',\n];\n\nexport default function QualityBaseForm({\n  inline,\n  onFlyTo = () => {},\n}) {\n  const locale = localStorage.getItem('locale') || 'es';\n  const client = useApolloClient();\n  const formatMessage = useFormatMessage();\n  const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA);\n  const [\n    loadTerritoriesListData,\n    {\n      data: territoriesListData,\n      loading: loadingTerritoriesListData\n    }\n  ] = useLazyQuery(GET_TERRITORIES_LIST);\n  const baseParams = _.get(baseData, 'app.baseParams');\n  const territoryCategoriesList = _.get(baseData, 'territoryCategoriesList');\n  const territoriesList = _.get(territoriesListData, 'territoriesList');\n\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 territories = _.get(baseParams, 'territories');\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 territoryKeysByGroupType = mapGroupTypeToTerritoryCategoryKey[groupType];\n  const filteredTerritoryTypeOptions = _(parsedTerritoryTypeOptions)\n    .filter(({ key }) => _.includes(territoryKeysByGroupType, key))\n    .sortBy(({ key }) => _.findIndex(territoryKeysByGroupType, (baseTerritoryKey) => baseTerritoryKey === key))\n    .value();\n  const parsedTerritoryOptions = _.map(territoriesList, (territory) => {\n    const stringList = _.get(territory, 'i18nStrings');\n    const selectedString = _.find(stringList, { language: locale });\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 updateClientAppBaseParamsState = (params) => {\n    client.writeData({\n      data: {\n        app: {\n          __typename: 'AppState',\n          baseParams: {\n            __typename: 'AppBaseParamsState',\n            ...params\n          }\n        }\n      }\n    });\n  };\n\n  useEffect(() => {\n    if (territoryType) {\n      loadTerritoriesListData({\n        variables: {\n          categoryId: territoryType\n        }\n      });\n    }\n  }, [territoryType]);\n\n  useEffect(() => {\n    if (territoryCategoriesList) {\n      const initialTerritoryType = _.find(territoryCategoriesList, { key: 'atlantic_forest_limit' });\n      const territoryTypeId = _.get(initialTerritoryType, 'id');\n      const params = {\n        territoryType: territoryTypeId,\n      };\n      loadTerritoriesListData({\n        variables: {\n          categoryId: territoryTypeId\n        }\n      });\n\n      updateClientAppBaseParamsState(params);\n    }\n  }, [territoryCategoriesList]);\n\n  useEffect(() => {\n    if (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        onFlyTo(_.get(territoryOption, 'boundingBox'));\n      }\n    }\n  }, [territoriesList]);\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    updateClientAppBaseParamsState(params);\n  };\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    const parsedValue = _.isObject(value) ? value.target.value : value;\n    const baseOption = _.find(parsedTerritoryOptions, { id: parsedValue });\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      onFlyTo(baseOption.boundingBox);\n    }\n\n    handleInputChange(field, value);\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  return (\n    <div className={ classnames(styles.wrapper, {\n      [styles.wrapperInline]: inline\n    }) }>\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        />\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        />\n      </RadioGroup>\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      <FormControl\n        variant=\"outlined\"\n        className={ styles.formControl }\n      >\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          onChange={ handleTerritoryChange }\n          placeholder={ formatMessage(`mapbiomas.header.base_form.territory.placeholder`) }\n        />\n        { territoryIsMultiple &&\n          <ActiveOptionsList\n            categoryKey=\"territoryTypeLabel\"\n            options={ territories }\n            onClear={ handleRemoveTerritory }\n          />\n        }\n      </FormControl>\n      <FormControlLabel\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    </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              <button className={ styles.button } onClick={ handleLocaleChange.bind(this, 'pt-BR') }>PT-BR - { formatMessage('mapbiomas.header.locale_control.options.pt_br') }</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://bosqueatlantico.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://bosqueatlantico.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://bosqueatlantico.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://bosqueatlantico.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://bosqueatlantico.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://bosqueatlantico.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://bosqueatlantico.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://pampa.mapbiomas.org/analisis-de-exactitud/\">\n                  <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.accuracy_analysis\" />\n                </a>\n              </li> */}\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://bosqueatlantico.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://bosqueatlantico.mapbiomas.org/vision-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://bosqueatlantico.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://mapbiomas.org/metodo-desmatamento\">\n                  <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.deforestation_method\" />\n                </a>\n              </li> */}\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://bosqueatlantico.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://mapbiomas.org/google-earth-engine\">\n                  <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.methodology.links.google_earth\" />\n                </a>\n              </li> */}\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://bosqueatlantico.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://bosqueatlantico.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://bosqueatlantico.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://bosqueatlantico.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://pampa.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://pampa.mapbiomas.org/articulos-mapbiomas/\">\n                   <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.articles\" />\n                </a>\n              </li> */}\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://bosqueatlantico.mapbiomas.org/en/videos-2/\">\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://mapbiomas.org/oportunidades\">\n                  <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.opportunities\" />\n                </a>\n              </li>\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://mapbiomas.org/premio\">\n                  <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.award\" />\n                </a>\n              </li>\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://mapbiomas.org/relatorios\">\n                  <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.reports\" />\n                </a>\n              </li>\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://mapbiomas.org/nota-t\">\n                  <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.technical_notes\" />\n                </a>\n              </li> */}\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://bosqueatlantico.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=\"http://forum.mapbiomas.ecostage.com.br/\">\n                  <FormattedMessage id=\"mapbiomas.sidebar.institutional.menu.communication.links.forum\" />\n                </a>\n              </li> */}\n              <li>\n                <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://bosqueatlantico.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}","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}","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}","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        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_DATA = gql`\n  {\n    app @client {\n      activeModule\n      activeModuleContent\n      headerIsVisible\n      baseParams {\n        classesViewMode\n        activeClassTreeNodeIds\n        activeObjectTreeNodeIds\n        activeClassesLevelsListItems\n        activeClassTreeOptionValue\n        buffer\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","export default [\n  'fire',\n  'sentinel',\n  'soil',\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    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 Classes from './components/Classes';\nimport GenericClasses from './components/GenericClasses';\nimport GeospatialObjects from './components/GeospatialObjects';\nimport TransitionBaseForm from './components/TransitionBaseForm';\nimport TransitionClasses from './components/TransitionClasses';\nimport QualityBaseForm from './components/QualityBaseForm';\nimport QualityClasses from './components/QualityClasses';\nimport PastureQualityCoverageClasses from './components/PastureQualityCoverageClasses';\nimport TranslateOptionsBox from './components/TranslateOptionsBox';\nimport InstitutionalMenu from './components/InstitutionalMenu';\nimport AccountMenu from './components/AccountMenu';\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 logo from './bosque-atlantico-horizontal.png';\nimport logoFire from './logo-mapbiomas-fogo.png';\nimport logoSentinelPT from './10-metros-pt-br-horizontal.svg';\nimport logoSentinelEN from './10-metros-en-horizontal.svg';\n\nimport initialBaseParams from '../../../../data/initialBaseParams';\nimport mapActiveModuleToDefaultParams from '../../../../data/mapActiveModuleToDefaultParams';\nimport customClientModules from '../../../../data/customClientModules';\n\nimport customClient from '../../../../core/custom-apollo-client';\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];\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  };\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: customModulesData } = useQuery(GET_MODULE_DATA, {\n    client: customClient\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 buffer = _.get(baseData, 'app.baseParams.buffer');\n  const activeClassTreeOptionValue = _.get(baseData, 'app.baseParams.activeClassTreeOptionValue');\n  const isWaterIframe = activeModuleContent === 'water:water_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 customModulesList = _.get(customModulesData, 'modulesList');\n  const activeModuleData = _.find(modulesList, { key: mapOldModuleListKeyToNewKey(activeModule) });\n  const submodulesList = _.get(activeModuleData, 'submodules');\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  };\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 renderTabContent = () => {\n    const classesViewMode = _.get(baseData, 'app.baseParams.classesViewMode');\n\n    switch(activeModuleContent) {\n      case 'coverage:coverage_main': {\n        return (\n          <Fragment>\n            <BaseForm\n              showCrossing\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              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              onFlyTo={ handleMapFlyToChange }\n            />\n            <QualityClasses />\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=\"custom\"\n              territoryCategoriesGroup=\"fire\"\n              onFlyTo={ handleMapFlyToChange }\n            />\n            <GenericClasses\n              clientType=\"custom\"\n              moduleId={ _.get(_.find(customModulesList, { 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=\"custom\"\n              territoryCategoriesGroup=\"fire\"\n              onFlyTo={ handleMapFlyToChange }\n            />\n            <GenericClasses\n              clientType=\"custom\"\n              moduleId={ _.get(_.find(customModulesList, { 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=\"custom\"\n              territoryCategoriesGroup=\"fire\"\n              onFlyTo={ handleMapFlyToChange }\n            />\n            <GenericClasses\n              clientType=\"custom\"\n              hideLegendIndex\n              moduleId={ _.get(_.find(customModulesList, { 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=\"custom\"\n              territoryCategoriesGroup=\"fire\"\n              onFlyTo={ handleMapFlyToChange }\n            />\n            <GenericClasses\n              clientType=\"custom\"\n              moduleId={ _.get(_.find(customModulesList, { key: 'fire' }), 'id') }\n              submoduleKey={ 'fire_monthly' }\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=\"custom\"\n              onFlyTo={ handleMapFlyToChange }\n              territoryCategoriesGroup=\"soil\"\n              showMultipleTerritories={ false }\n            />\n            <GenericClasses\n              clientType=\"custom\"\n              moduleId={ _.get(_.find(customModulesList, { 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=\"custom\"\n              territoryCategoriesGroup=\"sentinel\"\n              onFlyTo={ handleMapFlyToChange }\n            />\n            <GenericClasses\n              clientType=\"custom\"\n              moduleId={ _.get(_.find(customModulesList, { key: 'sentinel' }), 'id') }\n              submoduleKey={ 'sentinel_coverage' }\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    };\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  const contentHeight = windowSize.height -\n    (totalTabList > 2 ? TOP_PADDING_LARGE : TOP_PADDING) -\n    (totalTabList === 2 ? 62 : 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    }\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        { _.size(parsedTabList) > 1 &&\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.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    }\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        }) }\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\n              const rgbColor = hexToRgb(item.primaryColor);\n\n              return (\n                <Fragment key={ `nav-list-item-${ item.key }` }>\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'], 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://pampa.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. 3.0</span> }\n          { ['fire','quality_of_pasture_data'].includes(_.get(activeModuleData, 'key')) && <span className={ styles.versionTag }>v. 2.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];\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-2021') {\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        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\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    }\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/7.901922/-65.533633/5.0/panAmazon/countryPanAmazon/1/departmentPanAmazon/surface/2000/2022\"\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      </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\nfunction fetchCARCodeLayerData(carCode) {\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    'outputFormat=application/json',\n    'srsName=EPSG:4326',\n    `cql_filter=cod_imovel='${carCode}'`,\n  ];\n\n  return fetch(`${geoserverBaseUrl}${wfsParams.join('&')}`)\n    .then((resp) => resp.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\n\n  const handleTextChange = (paramKey, event) => {\n    handleStateChange(paramKey, event.target.value);\n    \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, 'features[0]');\n\n          if (feature) {\n            const bbox = _.get(feature, 'bbox');\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={handleTextChange}\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\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    index: 0,\n    key: \"atlantic_forest_limit\",\n    labelKey: \"atlantic_forest_limit\",\n    color: \"#B14018\",\n    props: {\n      url: \"https://shared-geoserver.mapbiomas.org/geoserver/ows\",\n      transparent: true,\n      format: \"image/png\",\n      layers: \"mapbiomas-bosque-col3:atlantic_forest_limit\"\n    },\n    descriptionData: [\n      { labelKey: 'source', label: 'Fonte', value: 'Adaptada en base a datos Oficiales' },\n      { labelKey: 'year', label: 'Ano', value: '2023' },\n    ],\n    downloadUrl: 'https://storage.googleapis.com/mapbiomas-public/initiatives/bosque_atlantico/collection_3/download/layers/atlantic_forest_limit.zip'\n  },\n  {\n    index: 1,\n    key: \"country\",\n    labelKey: \"country\",\n    color: \"#B024E0\",\n    props: {\n      url: \"https://shared-geoserver.mapbiomas.org/geoserver/ows\",\n      transparent: true,\n      format: \"image/png\",\n      layers: \"mapbiomas-bosque-col3:country\"\n    },\n    descriptionData: [\n      { labelKey: 'source', label: 'Fonte', value: 'Adaptada en base a datos Oficiales' },\n      { labelKey: 'year', label: 'Ano', value: '2023' },\n    ],\n    downloadUrl: 'https://storage.googleapis.com/mapbiomas-public/initiatives/bosque_atlantico/collection_3/download/layers/country.zip'\n  },\n  {\n    index: 2,\n    key: \"political_level_1\",\n    labelKey: \"political_level_1\",\n    color: \"#3A3D3A\",\n    props: {\n      url: \"https://shared-geoserver.mapbiomas.org/geoserver/ows\",\n      transparent: true,\n      format: \"image/png\",\n      layers: \"mapbiomas-bosque-col3:political_level_1\"\n    },\n    descriptionData: [\n      { labelKey: 'source', label: 'Fonte', value: 'Adaptada en base a datos Oficiales' },\n      { labelKey: 'year', label: 'Ano', value: '2023' },\n    ],\n    downloadUrl: 'https://storage.googleapis.com/mapbiomas-public/initiatives/bosque_atlantico/collection_3/download/layers/state.zip'\n  },\n  {\n    index: 3,\n    key: \"political_level_2\",\n    labelKey: \"political_level_2\",\n    color: \"#F4B615\",\n    props: {\n      url: \"https://shared-geoserver.mapbiomas.org/geoserver/ows\",\n      transparent: true,\n      format: \"image/png\",\n      layers: \"mapbiomas-bosque-col3:political_level_2\"\n    },\n    descriptionData: [\n      { labelKey: 'source', label: 'Fonte', value: 'Adaptada en base a datos Oficiales' },\n      { labelKey: 'year', label: 'Ano', value: '2023' },\n    ],\n    downloadUrl: 'https://storage.googleapis.com/mapbiomas-public/initiatives/bosque_atlantico/collection_3/download/layers/city.zip'\n  },\n  {\n    index: 4,\n    key: \"watershed\",\n    labelKey: \"watershed\",\n    color: \"#16DFF2\",\n    props: {\n      url: \"https://shared-geoserver.mapbiomas.org/geoserver/ows\",\n      transparent: true,\n      format: \"image/png\",\n      layers: \"mapbiomas-bosque-col3:watershed\"\n    },\n    descriptionData: [\n      { labelKey: 'source', label: 'Fonte', value: 'Adaptada en base a datos Oficiales' },\n      { labelKey: 'year', label: 'Ano', value: '2023' },\n    ],\n    downloadUrl: 'https://storage.googleapis.com/mapbiomas-public/initiatives/bosque_atlantico/collection_3/download/layers/level_2_drainage_basin.zip'\n  },\n  {\n    index: 5,\n    key: \"indigenous_territories\",\n    labelKey: \"indigenous_territories\",\n    color: \"#FDAE61\",\n    props: {\n      url: \"https://shared-geoserver.mapbiomas.org/geoserver/ows\",\n      transparent: true,\n      format: \"image/png\",\n      layers: \"mapbiomas-bosque-col3:indigenous_territories\"\n    },\n    descriptionData: [\n      { labelKey: 'source', label: 'Fonte', value: 'Adaptada en base a datos Oficiales' },\n      { labelKey: 'year', label: 'Ano', value: '2023' },\n    ],\n    downloadUrl: 'https://storage.googleapis.com/mapbiomas-public/initiatives/bosque_atlantico/collection_3/download/layers/indigenous_land.zip'\n  },\n  {\n    index: 6,\n    key: \"national_conservation_unit\",\n    labelKey: \"national_conservation_unit\",\n    color: \"#1A7836\",\n    props: {\n      url: \"https://shared-geoserver.mapbiomas.org/geoserver/ows\",\n      transparent: true,\n      format: \"image/png\",\n      layers: \"mapbiomas-bosque-col3:national_conservation_unit\"\n    },\n    descriptionData: [\n      { labelKey: 'source', label: 'Fonte', value: 'Adaptada en base a datos Oficiales' },\n      { labelKey: 'year', label: 'Ano', value: '2023' },\n    ],\n    downloadUrl: 'https://storage.googleapis.com/mapbiomas-public/initiatives/bosque_atlantico/collection_3/download/layers/national_protected_areas.zip'\n  },\n  {\n    index: 7,\n    key: \"international_conservation_unit\",\n    labelKey: \"international_conservation_unit\",\n    color: \"#C51B7D\",\n    props: {\n      url: \"https://shared-geoserver.mapbiomas.org/geoserver/ows\",\n      transparent: true,\n      format: \"image/png\",\n      layers: \"mapbiomas-bosque-col3:international_conservation_unit\"\n    },\n    descriptionData: [\n      { labelKey: 'source', label: 'Fonte', value: 'Adaptada en base a datos Oficiales' },\n      { labelKey: 'year', label: 'Ano', value: '2023' },\n    ],\n    downloadUrl: 'https://storage.googleapis.com/mapbiomas-public/initiatives/bosque_atlantico/collection_3/download/layers/international_protected_areas.zip'\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 './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 { BoxZoomControl } from 'react-leaflet-box-zoom';\nimport _ from 'lodash';\nimport L from 'leaflet';\nimport classnames from 'classnames';\nimport numbro from 'numbro';\n\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';\nimport customClientModules from '../../../../../../data/customClientModules';\n\nimport CoordinatesInfo from './components/CoordinatesInfo';\nimport MapCustomEvents from './components/MapCustomEvents';\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.250000,\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  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}) {\n  const MAP_URL = !_.includes(customClientModules, activeModule) ? process.env.REACT_APP_WMS_BASE_URL : CUSTOM_MAP_URL;\n  const classes = useStyles();\n  let mapRef = useRef();\n  let zoomControlRef = useRef();\n  const formatMessage = useFormatMessage();\n  const [windowHeight, setWindowHeight] = useState(window.innerHeight - EXTERNAL_ELEMENTS_HEIGHT);\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 config = _.assign({}, CONFIG_DEFAULT, configOptions);\n  const activeBaseMapData = _.find(baseMapsData, { id: activeBaseMap });\n  const yearRange = _.get(baseParams, 'yearRange');\n  let leftSideMosaicLayer, rightSideMosaicLayer, sideBySideControl;\n  const mapboxModePrev = usePrevious(mapboxMode);\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 (mapboxModePrev && !mapboxMode && mapRef.current && !_.isEmpty(configOptions)) {\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      const classTreeLevelsListIds = _.join(_.map(defaultClassTreeLevelsList, 'id'), ',');\n\n      leftSideMosaicLayer = L.tileLayer\n        .wms(url, {\n          format: 'image/png',\n          layers: layerName,\n          transparent: true,\n          tileType: 'wms',\n          class_tree_node_ids: classTreeLevelsListIds,\n          territory_ids: countryTerritoryId,\n          year: parseInt(firstYear),\n          zIndex: 200,\n        })\n        .addTo(mapRef.current.leafletElement);\n\n      rightSideMosaicLayer = L.tileLayer\n        .wms(url, {\n          format: 'image/png',\n          layers: layerName,\n          transparent: true,\n          tileType: 'wms',\n          class_tree_node_ids: classTreeLevelsListIds,\n          territory_ids: countryTerritoryId,\n          year: parseInt(lastYear),\n          zIndex: 200,\n        })\n        .addTo(mapRef.current.leafletElement);\n\n      sideBySideControl = L.control.sideBySide(leftSideMosaicLayer, rightSideMosaicLayer)\n        .addTo(mapRef.current.leafletElement);\n\n      return () => {\n        mapRef.current.leafletElement.removeLayer(sideBySideControl.getLeftLayer());\n        mapRef.current.leafletElement.removeLayer(sideBySideControl.getRightLayer());\n        sideBySideControl.remove();\n      };\n    }\n  }, [activeBaseMapData, showBeforeAndAfterMosaic, layersOpacity, yearRange]);\n\n  const renderBaseMap = () => {\n    const classTreeLevelsListIds = _.join(_.map(defaultClassTreeLevelsList, 'id'), ',');\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.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    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 activeClassTreeNodeIds = _.get(baseParams, 'activeClassTreeNodeIds');\n\n    const classTreeNodeIds = _.join(activeClassTreeNodeIds, ',');\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=\"coverage\"\n        url={ `${MAP_URL}/wms/coverage.map` }\n        territory_ids={ territoryIds }\n        year={ activeYear }\n        class_tree_node_ids={ classTreeNodeIds }\n        zIndex={ 200 }\n        opacity={ layersOpacity / 100 }\n      />\n    );\n  };\n\n  const renderTransitionLayer = () => {\n    const territories = _.get(baseParams, 'territories');\n    const activeTransitionsClassesListItems = _.get(baseParams, 'activeTransitionsClassesListItems');\n\n    if (!territories || _.isEmpty(territories) || _.isEmpty(activeTransitionsClassesListItems)) {\n      return null;\n    }\n\n    const yearRange = _.get(baseParams, 'yearRange');\n\n    const [fromYear, toYear] = _.split(yearRange, '-');\n    const territoryIds = _.join(_.map(territories, 'id'), ',');\n    const transitionCategoryKeys = _.join(activeTransitionsClassesListItems, ',');\n\n    if (transitionClassTreeNodeId) {\n      return (\n        <WMSTileLayer\n          transparent\n          format=\"image/png\"\n          layers=\"class_transitions\"\n          url={ `${MAP_URL}/wms/class_transitions.map` }\n          territory_ids={ territoryIds }\n          from_year={ fromYear }\n          to_year={ toYear }\n          class_tree_node_ids={ transitionClassTreeNodeId }\n          zIndex={ 250 }\n          opacity={ layersOpacity / 100 }\n        />\n      );\n    }\n\n    return (\n      <WMSTileLayer\n        transparent\n        format=\"image/png\"\n        layers=\"transitions\"\n        url={ `${MAP_URL}/wms/transitions.map` }\n        territory_ids={ territoryIds }\n        from_year={ fromYear }\n        to_year={ toYear }\n        transition_category_keys={ transitionCategoryKeys }\n        zIndex={ 250 }\n        opacity={ layersOpacity / 100 }\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(baseParams, 'activePastureQualityQualityClassesListItems');\n\n    const enabledPixelValues = _.join(activePastureQualityQualityClassesListItems, ',');\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 = ({ opacityDenominator = 100, objectsMask = true } = {}) => {\n    const territories = _.get(baseParams, 'territories');\n    const bufferId = _.get(baseParams, 'buffer');\n    const activeObjectTreeNodeIds = _.join(_.get(baseParams, 'activeObjectTreeNodeIds'));\n    const activeClassTreeNodeIds = _.join(_.get(baseParams, 'activeClassTreeNodeIds'))\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(_.get(baseParams, 'activeObjectTreeNodeIds'))\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    const territories = _.get(baseParams, 'territories');\n    const activeSubmodule = _.get(baseParams, 'activeSubmodule');\n    const activeClassTreeNodeIds = _.join(_.get(baseParams, 'activeClassTreeNodeIds'));\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 === 'temporal_analysis:temporal_analysis_stable_areas' ||\n      activeModuleContent === 'temporal_analysis:temporal_analysis_number_of_changes' ||\n      activeModuleContent === '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 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 (activeModuleContent === 'infrastructure:infrastructure_main' && _.get(baseParams, 'buffer') === 0) {\n      return [ renderInfrastructureCoverageLayer({ opacityDenominator: 200, objectsMask: false }), renderObjectLayer() ]\n    } else if (activeModuleContent === 'infrastructure:infrastructure_main') {\n      return renderInfrastructureCoverageLayer()\n    } else {\n      return renderGenericLayer()\n    }\n  };\n\n  const renderBaseLayers = () => {\n    return _.map(activeLayers, (key) => {\n      const layerData = _.find(baseLayersData, { key });\n      const LayerComponent = layerData.key !== 'car' ? WMSTileLayer : TileLayer;\n\n      return (\n        <LayerComponent\n          key={ `additional-layer-${ layerData.key }` }\n          zIndex={ 300 + layerData.index }\n          { ...layerData.props }\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 = mapRef.current.leafletElement.layerPointToLatLng(point1);\n      const parsedPoint2 = 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(6) },${ zoom }`;\n\n      onMoveEnd(combinedValue);\n    }\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      { ...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: '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: '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: '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 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            id=\"info-point\"\n          >\n            <NotListedLocationIcon />\n          </button>\n        </CustomTooltip>\n      }\n      { !isMobile && false && (\n        <CustomTooltip arrow title={ formatMessage('mapbiomas.tutorial.title') } placement=\"right\">\n          <button\n            id=\"tutorial-icon\"\n            className={ classnames(styles.mapActionButton, styles.tutorialButton,) }\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)) &&\n        <Marker position={ flyTo } />\n      }\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    </Map>\n  );\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\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}) {\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\n    return (\n      <Source\n        id=\"mapbiomas-brasil-3d\"\n        type=\"raster\"\n        key={ `coverage-3d-${ territoryIds }-${ activeYear }` }\n        tiles={ [\n          `${process.env.REACT_APP_WMS_BASE_URL}/wms/coverage.map?service=WMS&request=GetMap&layers=coverage&styles=&format=image%2Fpng&transparent=true&version=1.1.1&territory_ids=${ territoryIds }&year=${ activeYear }&class_tree_node_ids=1%2C7%2C8%2C9%2C10%2C2%2C11%2C12%2C13%2C14%2C15%2C16%2C3%2C17%2C18%2C27%2C37%2C38%2C39%2C40%2C41%2C28%2C42%2C43%2C44%2C19%2C20%2C4%2C21%2C22%2C23%2C24%2C5%2C25%2C26%2C6&width=256&height=256&srs=EPSG%3A3857&bbox={bbox-epsg-3857}`\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': layersOpacity / 100\n          } }\n        />\n      </Source>\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': 1\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(baseLayersData, (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, fireData, sentinelData), 'year')));\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, fireItemParsed, sentinelItemParsed]);\n            return _.compact([coverageItemParsed]);\n          });\n          parsedCoverageData = _.flatten(parsedCoverageData);\n\n          let yAxisNames = [\n            formatMessage('mapbiomas.map.point_dialog.data_list.coverage'),\n            // formatMessage('mapbiomas.map.point_dialog.data_list.fire'),\n          ];\n\n          if (activeModule === 'sentinel') {\n            yAxisNames = [\n              // formatMessage('mapbiomas.map.point_dialog.data_list.sentinel'),\n              formatMessage('mapbiomas.map.point_dialog.data_list.coverage'),\n              // formatMessage('mapbiomas.map.point_dialog.data_list.fire'),\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 intervals = [\n  [1985, 1990],\n  [1990, 1995],\n  [1995, 2000],\n  [2000, 2005],\n  [2005, 2010],\n  [2010, 2015],\n  [2015, 2020],\n\n  [2000, 2010],\n  [2010, 2020],\n  [1990, 2000],\n\n  [1985, 2022],\n  [1985, 2000],\n\n  [2000, 2022],\n  [1992, 2002],\n  [2002, 2012],\n  [2012, 2022],\n];\n\nexport default function YearTimelineMultiple({\n  headerIsVisible,\n  value: initialValue,\n  onChange = () => {},\n}) {\n  const intl = useIntl()\n\n  const yearList = _.sortBy(_.uniq(_.flatten(intervals)));\n  const startYearsList = _.sortBy(_.uniq(_.map(intervals, (range) => _.first(range))));\n\n  const classes = useStyles();\n  const { data: baseData } = useQuery(GET_BASE_DATA);\n\n  const [startValue, setStartValue] = useState(1985);\n  const [endValue, setEndValue] = useState(2022);\n\n  const filteredIntervals = _.filter(intervals, (range) => _.first(range) === startValue);\n  const endYearsList = _.sortBy(_.uniq(_.map(filteredIntervals, (range) => _.last(range))));\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(intervals, (range) => _.first(range) === newValue);\n      const endYearsList = _.sortBy(_.uniq(_.map(filteredIntervals, (range) => _.last(range))));\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(intervals, (range) => _.first(range) === newValue);\n      const endYearsList = _.sortBy(_.uniq(_.map(filteredIntervals, (range) => _.last(range))));\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({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    step: null,\n    min: _.first(yearList),\n    max: _.last(yearList),\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      </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) }>{ startValue } - { endValue }</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(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 yAxisMillionLabelFormatter = (value) => {\n  return numbro(value / 1000000).format({\n    thousandSeparated: true,\n    mantissa: 0\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  isPercentage,\n  categories = [],\n  series = [],\n  vertical = true,\n  hideXAxisLabel = false,\n  hasAvgMarkLine = false,\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 = 'Hectares';\n\n  if (hasMillionValue) {\n    yAxisName = 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 = yAxis;\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: 200 } }\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,\n        },\n        grid: {\n          top: '8%',\n          right: !hasAvgMarkLine ? '10px' : '20px',\n          bottom: '8%',\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\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 customClient from '../../../../../../../../core/custom-apollo-client/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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_main' ||\n      classTreeKey === 'quality_of_pasture_data_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      />\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\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: 0\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          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) ? 35 : 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\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 customClient from '../../../../../../../../core/custom-apollo-client/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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(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 } (${ 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, 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\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 customClient from '../../../../../../../../core/custom-apollo-client/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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\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 customClient from '../../../../../../../../core/custom-apollo-client/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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 { 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\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 customClient from '../../../../../../../../core/custom-apollo-client/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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  const yAxisName = intl.formatMessage({id: 'mapbiomas.statistics.million_hectares'})\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: 25,\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) {\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: yAxisName ? '20px' : '10px',\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\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, 2022],\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 customClient from '../../../../../../../../core/custom-apollo-client/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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\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 customClient from '../../../../../../../../core/custom-apollo-client/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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\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 customClient from '../../../../../../../../core/custom-apollo-client/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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        const nodeData = _.find(classTreeLevelsList, { id: Number(id) });\n\n        if (nodeData && areas[id]) {\n          return {\n            value: areas[id] || null,\n            itemStyle: {\n              color: _.get(nodeData, 'color')\n            }\n          };\n        } else {\n          return areas[id] || null;\n        }\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\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  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        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, '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, { 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 FireAnnualTotalBurnedStatisticsContent from './content/FireAnnualTotalBurnedStatisticsContent';\nimport FireMonthlyStatisticsContent from './content/FireMonthlyStatisticsContent';\nimport FireAccumulatedStatisticsContent from './content/FireAccumulatedStatisticsContent';\nimport FrequencyStatisticsContent from './content/FrequencyStatisticsContent';\nimport NumberOfClassesStatisticsContent from './content/NumberOfClassesStatisticsContent';\nimport StableAreasStatisticsContent from './content/StableAreasStatisticsContent';\n\nimport InfoTooltip from '../../../../../../components/InfoTooltip';\n\nimport customClientModules from '../../../../../../data/customClientModules';\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}) {\n  const isMobile = useMediaQuery('(max-width: 768px)');\n\n  const intl = useIntl()\n\nconst 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 defaultContentParams = {\n    activeYear,\n    baseParams,\n    classTreeKey,\n    statisticsDataIsVisible,\n    onShowData,\n    clientType: !_.includes(customClientModules, activeModule) ? undefined : 'custom'\n  };\n  const titleTooltip = mapClassTreeKeyToTooltip[classTreeKey];\n\n  const [isVisible, setIsVisible] = useState(true);\n\n  const toggleVisibility = () => setIsVisible(!isVisible);\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 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          { activeModuleContent === 'coverage:coverage_main' && <CoverageMainStatisticsContent { ...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        </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        territory\n        territories {\n          id\n          label\n          territoryTypeId\n          territoryTypeLabel\n          territoryBBox\n        }\n        classesViewMode\n        activeClassTreeNodeIds\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    }\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\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 [carFeature, setCarFeature] = useState(null);\n  const { data: baseData, loading: loadingBaseData } = useQuery(GET_BASE_DATA);\n  const { data: territoriesCategoriesListData } = useQuery(GET_TERRITORIES_CATEGORIES_LIST);\n  const { data: defaultClassTreeData } = useQuery(GET_CLASS_TREE_DATA, {\n    variables: {\n      classTreeKey: 'default'\n    }\n  });\n  const defaultClassTreeLevelsList = _.get(defaultClassTreeData, 'classTreeByKey[0].mvClassTreeLevelsUi');\n  const [\n    loadCountryTerritoryData,\n    {\n      data: countryTerritoryListData,\n    }\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(baseData, 'app.baseParams.activeClassTreeOptionValue');\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(baseData, 'app.transitionClassTreeNodeId');\n  const territoryCategoriesList = _.get(territoriesCategoriesListData, 'territoryCategoriesList');\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(baseData, 'app.showBeforeAndAfterMosaic');\n  const timelineLimitsRange = _.get(baseData, 'app.timelineLimitsRange');\n  const mapPosition = _.get(baseData, 'app.mapPosition');\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 = loadingBaseData ||\n    (prevLoadingBaseData && !loadingBaseData && !_.isEmpty(urlQueryParams));\n\n  useEffect(() => {\n    const confirmation = new URL(window.location.href).searchParams.get('confirmation');\n    const login = new URL(window.location.href).searchParams.get('login');\n    const passwordUpdate = new URL(window.location.href).searchParams.get('password_update');\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 activeModuleContent === moduleKey &&\n          !isOnInitialRenderingWithQueryParams;\n      }\n    };\n\n    if (checkModuleKeyCondition('coverage:coverage_main')) {\n      updateClientAppState({\n        activeBaseMap: 9,\n        layersOpacity: 70,\n        activeLayers: [],\n      });\n    } else if (checkModuleKeyCondition('quality_of_pasture_data:quality_of_pasture_data_main')) {\n      updateClientAppState({\n        activeBaseMap: 1,\n        layersOpacity: 100,\n        activeLayers: ['estados']\n      });\n    } else if (checkModuleKeyCondition('regeneration:regeneration_annual') || checkModuleKeyCondition('deforestation:deforestation_annual')) {\n      updateClientAppState({\n        activeBaseMap: 1,\n      });\n    } else if (checkModuleKeyCondition('irrigation:irrigation_main')) {\n      updateClientAppState({\n        activeBaseMap: 1,\n        activeLayers: ['estados']\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, 2022],\n        timelineLimitsRange: [1985, 2022],\n      });\n    } else if (checkModuleKeyCondition('fire:fire_annual')) {\n      updateClientAppState({\n        activeBaseMap: 1,\n        activeYear: [1985, 2022],\n        timelineLimitsRange: [1985, 2022],\n      });\n    } else if (checkModuleKeyCondition('fire:fire_frequency')) {\n      updateClientAppState({\n        activeBaseMap: 1,\n        activeYear: [1985, 2022],\n        timelineLimitsRange: [1985, 2022],\n      });\n    } else if (checkModuleKeyCondition('fire:fire_monthly')) {\n      updateClientAppState({\n        activeBaseMap: 1,\n        activeYear: 2022,\n        timelineLimitsRange: [1985, 2022],\n      });\n    } else if (checkModuleKeyCondition('temporal_analysis:temporal_analysis_number_of_classes')) {\n      updateClientAppState({\n        activeBaseMap: 1,\n        activeYear: [1985, 2022],\n        timelineLimitsRange: [1985, 2022],\n      });\n    } else if (checkModuleKeyCondition('deforestation:deforestation_accumulated')) {\n      updateClientAppState({\n        activeYear: [1986, 2020],\n        timelineLimitsRange: [1986, 2020],\n      });\n    } else if (checkModuleKeyCondition('deforestation:deforestation_frequency')) {\n      updateClientAppState({\n        activeYear: [1986, 2020],\n        timelineLimitsRange: [1986, 2020],\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 (!_.isArray(activeYear) && (activeYear < minYear || activeYear > maxYear)) {\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, { key: 'atlantic_forest_limit' });\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 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 handleCarFeatureChange = (data) => {\n    setCarFeature(data);\n  };\n\n  const TimelineComponent = activeModule !== 'temporal_analysis' ? YearTimeline : YearTimelineMultiple;\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          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        />\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        />\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 &&\n        !(showDashboardInfo && isMobile) &&\n        <TimelineComponent\n          firstYearFixed={ _.includes(MODULES_WITH_INITIAL_YEAR_FIXED, activeModuleContent) }\n          headerIsVisible={ headerIsVisible }\n          value={ activeYear }\n          onChange={ handleYearTimelineChange }\n        />\n      }\n      <CARBox\n        headerIsVisible={ headerIsVisible }\n        showBeforeAndAfterMosaic={ showBeforeAndAfterMosaic }\n        onFlyTo={ handleFlyToPointSubmit }\n        onFeatureChange={ handleCarFeatureChange }\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         activeModuleContent === 'coverage:coverage_main' ||\n         activeModuleContent === 'coverage:coverage_stable_areas' ||\n         activeModuleContent === 'coverage:coverage_number_of_classes' ||\n         activeModuleContent === 'mining:mining_main' ||\n         activeModuleContent === '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      ) &&\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        />\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};\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\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\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\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 customClient from '../../../../core/custom-apollo-client';\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: clientType === 'custom' ? customClient : undefined\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: clientType === 'custom' ? customClient : undefined\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_data_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 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';\n\nimport mapModuleToPathname from '../../data/mapModuleToPathname';\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: '/pistas-de-pouso', component: MapBiomasLandingPage },\n    { path: '/dinamica-dos-pivos', 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  ],\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, { 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 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';\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\":\"ClassesControl_wrapper__4X943\",\"title\":\"ClassesControl_title__2lmgl\",\"info\":\"ClassesControl_info__1hEr8\",\"label\":\"ClassesControl_label__3hZ5E\",\"toggleButtons\":\"ClassesControl_toggleButtons__Fej-_\",\"levelControls\":\"ClassesControl_levelControls__1ubck\",\"checkboxRoot\":\"ClassesControl_checkboxRoot__1bIqX\",\"checkboxLabel\":\"ClassesControl_checkboxLabel__2ce1_\",\"actionButton\":\"ClassesControl_actionButton__3Z0hM\",\"descriptionText\":\"ClassesControl_descriptionText__3AQmH\",\"disabledButton\":\"ClassesControl_disabledButton__1fs-j\"};","// 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\":\"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 = {\"classList\":\"NaturalOrAnthropicLegendList_classList__2BiP5\",\"classListLevel2\":\"NaturalOrAnthropicLegendList_classListLevel2__N-geg\",\"classListItemBase\":\"NaturalOrAnthropicLegendList_classListItemBase__1vUQM\",\"classListLevel3\":\"NaturalOrAnthropicLegendList_classListLevel3__11j_1\",\"classListItemHeader\":\"NaturalOrAnthropicLegendList_classListItemHeader__ffC8T\",\"classListItemCheckControl\":\"NaturalOrAnthropicLegendList_classListItemCheckControl__17TpV\",\"classListItemTitle\":\"NaturalOrAnthropicLegendList_classListItemTitle__3HMQj\",\"classListItemContentControl\":\"NaturalOrAnthropicLegendList_classListItemContentControl__5tWKM\",\"classListItemInfoControl\":\"NaturalOrAnthropicLegendList_classListItemInfoControl__3fTZB\"};","// 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\":\"PastureQualityCoverageClasses_title__2vCtz\",\"classList\":\"PastureQualityCoverageClasses_classList__1elIe\",\"classListLevel2\":\"PastureQualityCoverageClasses_classListLevel2__283IQ\",\"classListItemBase\":\"PastureQualityCoverageClasses_classListItemBase__1z0KO\",\"classListLevel3\":\"PastureQualityCoverageClasses_classListLevel3__2OzVJ\",\"classListLevel4\":\"PastureQualityCoverageClasses_classListLevel4__3Iz_y\",\"classListItemHeader\":\"PastureQualityCoverageClasses_classListItemHeader__1ehkB\",\"classListItemCheckControl\":\"PastureQualityCoverageClasses_classListItemCheckControl__2HBFa\",\"classListItemTitle\":\"PastureQualityCoverageClasses_classListItemTitle__3ypf6\",\"classListItemContentControl\":\"PastureQualityCoverageClasses_classListItemContentControl__3ufSZ\",\"classListItemInfoControl\":\"PastureQualityCoverageClasses_classListItemInfoControl__1_gnH\",\"checkboxLabel\":\"PastureQualityCoverageClasses_checkboxLabel__260Cd\"};","// 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 = {\"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\":\"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 = {\"boxWrapper\":\"TranslateOptionsBox_boxWrapper__1ShrY\",\"button\":\"TranslateOptionsBox_button__21_Bz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"CoordinatesInfo_wrapper__3JFHO\",\"wrapperWithoutHeader\":\"CoordinatesInfo_wrapperWithoutHeader__IYQtW\",\"controlWrapper\":\"CoordinatesInfo_controlWrapper__RBEi6\",\"mouseCoordinatesInfo\":\"CoordinatesInfo_mouseCoordinatesInfo__uZALW\"};","// 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\"};","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 = {\"title\":\"InstitutionalMenu_title__3Gx6v\",\"navListWrapper\":\"InstitutionalMenu_navListWrapper__3EKN4\",\"navList\":\"InstitutionalMenu_navList__3-VpA\"};","// 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\":\"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 = {\"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\":\"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 = {\"inputLabel\":\"CustomSelect_inputLabel__20BZg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"Classes_wrapper__3L1Av\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"InfoTooltip_icon__2el5S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"GenericClasses_wrapper__2Xjmt\"};","// 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\"};","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAccAAACCCAMAAAAEwPPrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYBQTFRFxcVs3Nt3gIKD3+DgoKGi95Y/4Yg3v8DBweTPZ67Eo9e49/z5m9Sy9/f34PLnjM2mgcad5+foiIqL0evbz9DQ9vv9qdzszOTWj9LmsLGy6PXtmJqa5fT5xN3lkJKTbLbO4e7y7+/vfsvibKu/st7E9fn7x8jJgLbIqKmq9PTj+Pjlycl1ncfV8vHM3t2AuLm58Pjzk9Gs19jY5fLrgLya+/v20dBy0NCIy8tv54w51tZ0yejVqtO8uuHK6enIq9u+29uj9vv42O7hkcWn/fjy4+KR/evb449E555d+J1L/Ne39fnx+enZ6emqy+rzr9rB0dGA7/j37u7SyuTsjcLT1OndebbL0Ofu7fb5tuLv/f32os613dyO1O31iMGhoMvZs9fC1+zg7u3Ku9vJj8bX7/fy6/T2+/ruhcDT3t6tcbPJzujZ8/fv6+uzdrDE4/D07vbxmM+v77B3/N7Dwubx+Pjt4uK13e3k6ZNFvNzm+/Dmd7iTdcfgYqW7hMqg////EetX6AAAAIB0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wA4BUtnAAATbElEQVR42uzd52PjxpUAcC2AHJvYsdKSXDFLm0vTtmKS2r3cnYrlKHYuV9LOuZ5yvfd+R5n412865r0pALQS5XVmPiQWAILc+XHqmwEPspC+CukgZEFwDCk4hhQcQwqOwTGk4BhScAwpOAbHkIJjSMExpOAYHEMKjiG9jY7/XHTB06dFV/xlyPZHdzxqnBQwPntWADneXYZ8f2THo9vGFyd+xttbP+S429sGyMd1PLoljj5IyuiHHHd3vW2AfFRHwkgd3ZCc0QdJGKljgHxER8rIHF2QktENSRmZ4/byWyHzH8eRMXJHO2TO6IJkjNxx++0A+SiOnFE42iB1RjskZxSOAfJRHAWjdDQhIaMNUjBKxwD5CI6SUTliSMxoQkpG5Rgg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\"","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-ecostage.116dc170.svg\";","// 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 = {\"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\":\"TransitionBaseForm_wrapper__24b_m\",\"wrapperInline\":\"TransitionBaseForm_wrapperInline__311W5\",\"formControl\":\"TransitionBaseForm_formControl__1kCkY\",\"groupList\":\"TransitionBaseForm_groupList__3geIt\",\"yearRangeFormControl\":\"TransitionBaseForm_yearRangeFormControl___9_2R\",\"checkboxControl\":\"TransitionBaseForm_checkboxControl__ixbOP\",\"checkboxLabel\":\"TransitionBaseForm_checkboxLabel__1fLmX\",\"radioGroup\":\"TransitionBaseForm_radioGroup__2Iyi9\",\"radioLabel\":\"TransitionBaseForm_radioLabel__MCTUO\",\"radioInput\":\"TransitionBaseForm_radioInput__2F-XG\",\"checkboxRoot\":\"TransitionBaseForm_checkboxRoot__FQV2V\",\"tooltipWrapper\":\"TransitionBaseForm_tooltipWrapper__1Nufk\"};","// 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":""}