{"version":3,"sources":["styles/global.js","components/Accordion/Accordion.component.js","components/Button/Button.styled.js","components/Icons/Icons.component.js","components/Tooltip/Tooltip.component.js","components/Tooltip/Tooltip.styled.js","store/modules/configuration/configuration.reducer.js","components/Acessibility/Acessibility.component.js","store/modules/configuration/configuration.actions.js","components/BackTop/BackTop.styled.js","components/BackTop/BackTop.component.js","components/Button/Button.component.js","services/urls.js","store/createStore.js","store/persistReducer.js","store/modules/loader/loader.reducer.js","store/modules/rootReducer.js","store/modules/rootSaga.js","store/index.js","services/history.js","services/api.js","store/modules/loader/loader.actions.js","contexts/menu.context.js","modules/Helper/tipoMenuPortal.js","utils/breadcrumb.js","hooks/useBreadcrumb.js","components/Breadcrumb/Breadcrumb.styled.js","components/Breadcrumb/Breadcrumb.component.js","components/Card/Card.component.js","components/Card/Card.styled.js","components/Col/Col.component.js","components/Collapse/Collapse.component.js","components/Content/Content.styled.js","components/Content/Content.component.js","components/RangePicker/RangePicker.styled.js","components/RangePicker/RangePicker.component.js","components/Divider/Divider.component.js","components/Divider/Divider.styled.js","components/Drawer/Drawer.component.js","components/Drawer/Drawer.styled.js","modules/Helper/FileExportConstants.js","components/Exportacao/Exportacao.styled.js","components/Dropdown/Dropdown.component.js","components/Exportacao/Exportacao.component.js","components/Typography/Typography.styled.js","components/MapButton/MapButton.styled.js","components/MapButton/MapButton.component.js","components/Footer/Footer.styled.js","components/Footer/Footer.component.js","components/FormV3/FormV3.component.js","components/Header/Header.styled.js","components/Header/Header.component.js","components/Icon/Icon.styled.js","components/SectionTitle/SectionTitle.styled.js","components/SectionTitle/SectionTitle.component.js","components/Informacao/style.js","components/Informacao/Informacao.component.js","components/InformacaoFilter/style.js","hooks/removeDiacritic.js","components/InformacaoFilter/InformacaoFilter.component.js","components/Internationalization/Internationalization.component.js","components/Layout/Layout.component.js","components/Layout/Layout.styled.js","components/Loader/Loader.component.js","components/Logo/Logo.styled.js","components/Logo/Logo.component.js","components/Map/Map.styled.js","components/Map/Map.component.js","utils/keys.js","modules/Helper/iconEnum.js","modules/Helper/getUrl-helper.js","components/Input/Input.styled.js","components/Menu/Menu.styled.js","components/Menu/Menu.component.js","components/Modal/Modal.styled.js","components/Modal/Modal.component.js","components/Row/Row.component.js","components/Sider/Sider.styled.js","components/Sider/Sider.component.js","components/Theme/Theme.component.js","components/Tag/Tag.component.js","components/Tag/Tag.styled.js","components/Title/Title.styled.js","components/Title/Title.component.js","components/Typography/Typography.component.js","components/Input/Input.component.js","components/InputNumber/InputNumber.component.js","components/InputNumber/InputNumber.styled.js","components/Select/Select.component.js","components/Select/Select.styled.js","components/Socials/Socials.styled.js","components/Socials/SocialsList.js","components/Socials/Socials.component.js","components/Table/Table.styled.js","components/Table/Table.component.js","modules/Helper/tipo-visao.js","components/Table/Filter.component.js","components/Tree/Tree.component.js","components/Result/Result.component.js","components/NotFound/NotFound.component.js","components/PageTitle/PageTitle.styled.js","components/PageTitle/PageTitle.component.js","components/ImageLink/ImageLink.styled.js","components/ImageLink/ImageLink.component.js","components/ImageButton/ImageButton.styled.js","components/ImageButton/ImageButton.component.js","components/List/List.component.js","components/List/List.styled.js","components/ButtonGoBack/ButtonGoBack.styled.js","components/ButtonGoBack/ButtonGoBack.component.js","components/ReCaptcha/reCacptcha.component.js","components/Notification/Notification.component.js","services/apiFM.js","services/FileManager/file-manager.service.js","modules/_layouts/default/default.layout.js","components/InformacaoDashboard/style.js","components/InformacaoDashboard/InformacaoDashboard.component.js","modules/Helper/tipoAcesso.js","components/CardImagemDashboard/style.js","components/CardImagemDashboard/cardImagemDashboard.component.js","components/YoutubePlayer/style.js","components/YoutubePlayer/YoutubePlayer.component.js","components/Grafico/windowListener.component.js","modules/Helper/tamanhoHomeItemEnum.js","modules/Helper/calcularAlturaLargura.js","modules/Helper/calcularTamanhoFonte.js","modules/Dashboard/components/mediaStyle.js","components/Grafico/style.js","modules/ESic/services/esic.service.js","modules/ESic/context/listaGraficoContext.js","components/Popover/Popover.component.js","components/Grafico/Filter.component.js","modules/Dashboard/context/listaHomeGraficoContext.js","components/Grafico/ExercicioSelect.component.js","modules/Dashboard/services/dashboard.service.js","components/Grafico/DonutGraphic.component.js","components/Grafico/PieGraphic.component.js","components/Grafico/BarGraphic.component.js","components/Grafico/ColumnGraphic.component.js","components/Grafico/EmptyCardGraphic.component.js","modules/Dashboard/components/StatisticCard.component.js","modules/Dashboard/containers/dashboard.container.styled.js","modules/Dashboard/containers/dashboard.container.js","modules/FAQ/components/FaqItem/style.js","modules/FAQ/components/FaqItem/faqitem.component.js","modules/FAQ/containers/faq.container.js","modules/FAQ/services/faq.service.js","modules/DadosAbertos/components/style.js","modules/Modulos/components/Grid/Footer.styled.js","modules/Modulos/components/Grid/UltimaAtualizacao.component.js","modules/Modulos/services/moduloVisao.service.js","modules/DadosAbertos/components/dadosAbertos.component.js","modules/DadosAbertos/containers/dadosAbertos.container.js","modules/DadosAbertos/services/dadosAbertos.service.js","modules/Helper/FiltrosPeriodicidade.js","modules/ESic/components/FiltroExercicio.component.js","modules/ESic/components/visoes.component.js","modules/ESic/containers/esic.container.js","services/modulos.service.js","modules/Helper/chave-modulo-constants.js","modules/Sumario/containers/sumario.container.js","modules/EstruturaOrganizacional/components/styles.js","modules/EstruturaOrganizacional/components/treeViewEstruturaOrganizacional.component.js","modules/EstruturaOrganizacional/containers/estruturaOrganizacional.container.js","modules/EstruturaOrganizacional/services/estruturaOrganizacional.service.js","modules/EstruturaOrganizacional/containers/style.js","modules/Helper/chooseIconFile.js","modules/EstruturaOrganizacional/containers/estruturaOrganizacionalDetalhe.container.js","components/EmManutencao/EmManutencao.styled.js","components/EmManutencao/EmManutencao.component.js","modules/Glossario/componentes/style.js","modules/Glossario/constants/alfabeto.js","modules/Glossario/componentes/glossario-buttons.component.js","modules/Glossario/containers/style.js","modules/Glossario/containers/glossario.container.js","modules/Glossario/services/glossario.service.js","modules/Helper/querystring-helper.js","modules/Helper/modoVisao.js","modules/Helper/numeroQuantidadeRegistros.js","modules/Helper/searchParamsFilters.js","modules/Helper/searchString-helper.js","contexts/url.context.js","modules/Modulos/components/Grid/Header.component.js","modules/Helper/tipo-agrupamento.js","modules/Helper/tipoColuna.js","modules/Modulos/components/Totalizadores/Totalizadores.component.js","modules/Modulos/components/Grid/Footer.component.js","modules/BuscaAvancada/services/buscaAvancada.service.js","modules/Modulos/components/Grid/arquivos/ButtonLinkFileManager.js","modules/Modulos/components/Grid/arquivos/ButtonDowloadFileManager.js","modules/Modulos/components/Grid/arquivos/ButtonLinkAnexo.js","modules/Modulos/components/Grid/arquivos/arquivos.form.component.js","modules/Modulos/services/arquivos.service.js","modules/Modulos/components/Grid/TableDinamic.component.js","modules/Modulos/components/Grid/FiltroPeriodicidadeModuloDinamico.component.js","modules/Modulos/ModuloDinamico.component.js","modules/Helper/hooks/debounce.hook.js","modules/Modulos/ModuloFixo/styles.js","modules/Modulos/components/styles.js","modules/Modulos/components/treeViewModuloFixo.component.js","modules/Modulos/ModuloFixo/ModuloFixo.component.js","modules/Modulos/services/moduloFixo.service.js","modules/DetalheVisaoAnalitica/services/detalheVisaoAnalitica.service.js","modules/DetalheVisaoAnalitica/components/style.js","modules/DetalheVisaoAnalitica/components/periodicidadeNavigation.component.js","modules/Helper/tipoDetalheAnalitica.js","modules/DetalheVisaoAnalitica/components/Tabela.component.js","modules/DetalheVisaoAnalitica/components/listaAnexos.component.js","modules/DetalheVisaoAnalitica/containers/detalheVisaoAnalitica.container.js","modules/Helper/tipoFiltro.js","modules/BuscaAvancada/components/FiltrosAvancados/FiltrosAvancados.styled.js","modules/BuscaAvancada/components/FiltrosAvancados/FiltrosAvancados.component.js","modules/Helper/transformaDataParaAmericano-helper.js","modules/BuscaAvancada/components/ShowFiltros/ShowFiltros.component.js","modules/BuscaAvancada/containers/buscaAvancada.container.js","modules/Modulos/containers/visaoItem.container.js","modules/Modulos/services/visaoItem.service.js","modules/FaleConosco/components/faleConosco.form.component.js","modules/FaleConosco/services/faleconosco.service.js","modules/FaleConosco/containers/faleConosco.js","modules/Autenticidade/components/autenticidadeValidacao.styled.js","modules/Helper/statusAutenticidade.js","modules/Autenticidade/components/autenticidadeValidacao.component.js","modules/Autenticidade/components/autenticidade.styled.js","modules/Autenticidade/components/autenticidade.form.component.js","modules/Autenticidade/services/autenticidade.service.js","modules/Autenticidade/containers/autenticidade.js","components/Grafico/LineGraphic.component.js","modules/Estatisticas/components/GraficoAnos.component.js","modules/Estatisticas/services/Estatisticas.service.js","modules/Estatisticas/components/GraficoVisoes.component.js","modules/Estatisticas/components/FiltroExercicio.component.js","modules/Estatisticas/containers/Estatisticas.js","routes/Route.js","routes/routes.service.js","routes/index.js","App.js","index.js"],"names":["highContrastColors","GlobalStyle","createGlobalStyle","props","theme","highContrast","Accordion","styled","_Collapse","_ref","zoomFonte","Button","_Button","ml","_ref2","mr","_ref3","color","Icons","Tooltip","_Tooltip","INITIAL_STATE","titulo","corFonteTituloPortal","corFonte","corFundoGrid","corFonteGrid","corFonteRodape","corTema","brasao","brasaoPB","banner","bgImageHome","bgImageTelas","RazaoSocial","endereco","bairro","cidade","cep","telefone","atendimento","EmailSocials","FacebookSocials","InstagramSocials","LinkedInSocials","TwitterSocials","WhatsAppSocials","YoutubeSocials","graficHighContrastStyle","fill","shadowColor","stroke","shadowBlur","lineWidth","strokeOpacity","graficDefaultStyle","configurationReducer","state","arguments","length","undefined","action","type","produce","draft","payload","Titulo","CorFonteTituloPortal","corFonteTituloTelas","CorFonteTituloTelas","CorFonteRodape","CorTema","CorFonte","CorFundoGrid","corFundoTituloGrid","CorFundoTituloGrid","corTituloGrid","CorTituloGrid","BrasaoUrl","BrasaoPretoBrancoUrl","BannerUrl","ImagemFundoHomeUrl","ImagemFundoTelasUrl","Endereco","Bairro","Cidade","CEP","Telefone","Atendimento","Acessibility","dispatch","useDispatch","useSelector","configuration","botaoAumentarDesabilitado","botaoDiminuirDesabilitado","exibeBotoesZoom","useMediaQuery","query","useEffect","React","createElement","Fragment","title","destroyTooltipOnHide","tabIndex","style","width","padding","height","fontSize","marginRight","textAlign","fontWeight","onClick","disabled","BulbOutlined","BackTop","_BackTop","BackTopStyle","div","backgroundColor","BackTopPage","icon","S","defaultProps","protocol","host","hostname","window","location","SMARAPD_PAI_DOMAIN","SMARAPD_FILEMANAGER_DOMAIN","getUrl","resource","create","reducers","middlewares","enhancer","applyMiddleware","createStore","persist","persistReducer","key","storage","whitelist","count","loaderReducer","rootReducer","combineReducers","loader","rootSaga","all","sagaMiddleware","createSagaMiddleware","sagaMonitor","store","persistReducers","persistor","persistStore","run","history","createHashHistory","api","axios","baseURL","interceptors","request","use","config","error","Promise","reject","response","status","push","MenuContext","createContext","MenuProvider","children","menuSelecionado","setMenuSelecionado","useState","menus","setMenus","isLoading","setIsLoading","async","responseMenu","get","data","getMenus","Provider","value","isLoadingMenus","resetMenuSelecionado","useMenus","useContext","TIPO_MENU_PORTAL","breadcrumbEstruturaOrganizacional","uri","breadcrumb","breadcrumbHome","breadcrumbFaq","breadcrumbDadosAbertos","breadcrumbEsic","breadcrumbSumario","breadcrumbGlossario","breadcrumbFaleConosco","breadcrumbEstatisticas","breadcrumbAutenticidade","useBreadcrumb","breadcrumbs","setBreadcrumbs","newBreadcrumb","processarItens","itens","caminhoAnterior","forEach","item","novoBreadcrumb","tipoMenuPortal","TipoMenuPortal","URI","id","Id","includes","breadcrumbUri","SubItens","obterBreadcrumbPorUri","params","find","x","modulo","visao","uriComparacao","replace","Breadcrumb","_Breadcrumb","Item","_Icon","master","match","path","Link","to","HomeOutlined","map","index","Math","random","_Card","_Col","Collapse","collapsed","handleToggle","MenuUnfoldOutlined","onKeyDown","event","keyCode","className","MenuFoldOutlined","Content","_Layout","src","useLocation","pathname","bgImage","RangePicker","_DatePicker","StyledRangePicker","RangePickerComponent","onCalendarChange","valorPadrao","format","defaultValue","moment","Divider","_Divider","_Drawer","attrs","bodyStyle","Limite","Container","_Dropdown","Exportacao","QuantidadeRegistros","semURI","moduloFixo","handleLimitMessage","limite","menuExportacao","_Menu","e","placement","FilePdfOutlined","FileExcelOutlined","FileTextOutlined","LinkOutlined","Dropdown","trigger","overlay","DownOutlined","Typography","Text","_Typography","Title","level","originalFontSize","Paragraph","Icon","ImageButton","MapButton","rua","numero","shape","open","Footer","MapButtonWrapper","_Row","justifyContent","marginBottom","lg","xs","display","alignItems","FormV3","Header","pl","pr","SectionTitle","Informacao","informacao","dangerouslySetInnerHTML","__html","RemoveDiacritic","stringValue","toLowerCase","normalize","InformacaoFilter","forwardRef","ref","setSearchValue","html","setHtml","tagsPermitidas","regexToRemoveHtmlTag","useImperativeHandle","filterElements","buscaSemAcentos","newDocumentHTML","DOMParser","parseFromString","elementos","body","getElementsByTagName","hasMatchWord","string","_RemoveDiacritic","indexOf","ultimoElementoPermitido","i","elemento","elementoSemAcento","innerHTML","IndexFound","isTagPermitida","tagName","novoHtml","onChangeInfo","target","Internationalization","_ConfigProvider","locale","ptBR","Loader","_Spin","size","tip","spinning","delay","Logo","img","withRouter","alt","Map","LeafletMap","PopupStyles","PopupLink","a","MapTextCard","Card","Geocode","setApiKey","setLanguage","setRegion","MapContainer","discardCompleFromRua","split","redirect","setData","fromAddress","then","results","geometry","loadMap","center","zoom","TileLayer","attribution","url","Marker","position","iconUrl","markerIconPng","iconSize","iconAnchor","Popup","iconEnum","name","QuestionCircleOutlined","outlined","QuestionOutlined","ClockCircleOutlined","ExclamationOutlined","MessageOutlined","BankOutlined","CalendarOutlined","FileDoneOutlined","FlagOutlined","MailOutlined","SettingOutlined","ScheduleOutlined","SmileOutlined","TagsOutlined","WalletOutlined","DollarOutlined","ShoppingCartOutlined","ShoppingOutlined","TeamOutlined","CheckOutlined","CloseOutlined","WarningOutlined","StopOutlined","DeleteOutlined","AreaChartOutlined","AlertOutlined","ApiOutlined","CloudOutlined","ContactsOutlined","ContainerOutlined","IdcardOutlined","GlobalOutlined","SafetyOutlined","NotificationOutlined","EnvironmentOutlined","OrderedListOutlined","SnippetsOutlined","ControlOutlined","CompassOutlined","DashboardOutlined","ClusterOutlined","filled","ProjectOutlined","ProfileOutlined","InfoCircleOutlined","ApartmentOutlined","CalculatorOutlined","FileSearchOutlined","InfoCircleFilled","YoutubeFilled","FileImageOutlined","LineChartOutlined","FolderOpenOutlined","getUrlComDominio","href","Input","_Input","Search","Menu","menuTitulo","css","SubMenu","MenuItem","SearchMenu","MenuStyles","openKeys","setOpenKeys","setCollapsed","searchValue","searchResult","setSearchResult","useHistory","handleRedirect","subItens","newUri","startsWith","tratarTextoBusca","texto","renderMenuItem","menu","_iconEnum$find2","Icone","IdMenuItem","handleSubMenuTitleClick","handleSubMenuIconClick","idMenuItem","findItemAndLevels","items","targetId","levels","found","menuLevels","filter","newOpenKeys","handleTitleClick","TitleMenu","_iconEnum$find","overlayClassName","onMouseEnter","flexDirection","gap","cursor","flexGrow","margin","ArrowRightOutlined","subItem","handleSubMenuTitleClick2","preventDefault","placeholder","maxLength","onChange","searchTerm","findMatchingSubItems","subItems","matchedList","concat","reduce","acc","ChaveModulo","menuTitle","matchFound","matchedItem","mode","inlineIndent","forceSubMenuRender","onMouseLeave","handleMouseLeave","Modal","_Modal","maxHeight","minHeight","overflow","visible","onCancel","destroyOnClose","maskClosable","footer","confirm","Sider","collapsible","Theme","ThemeProvider","_Tag","_InputNumber","_Select","SocialsContainer","ButtonStyled","background","SocialsList","retornaWpp","input","TwitterOutlined","marginTop","link","ToolTip","FacebookFilled","InstagramOutlined","WhatsAppOutlined","LinkedinFilled","mail","MailFilled","Socials","MailGo","Table","_Table","TableResize","section","_ref4","_ref5","_ref6","_ref7","TIPO_VISAO","FilterHeaderTable","setSelectedKeys","selectedKeys","clearFilters","close","visaoColuna","setDataFilterHeader","dataFilterHeader","configuracao","obterColunaChave","obterColunaLink","setFiltro","filtro","setPagina","searchInput","useRef","valorChave","setValorChave","campoAlterado","setCampoAlterado","NomeColuna","FonteDados","TipoValor","KeyVisao","VisaoColunas","Tipo","handleSearch","Campo","Valor","dataFilter","Filtros","stopPropagation","verificaValor","valor","onPressEnter","_e$target","_Space","SearchOutlined","handleReset","_Tree","_Result","NotFound","Result","extra","voltarParaHome","PageTitle","corTitulo","ImageLink","imagem","tooltip","Image","L","_List","ButtonGoBack","OnClick","MarginLeft","marginLeft","ReCaptcha","handleOnCaptchaChange","ReCAPTCHA","sitekey","PreserveBreakLine","message","whiteSpace","showSuccess","successMessage","_notification","success","description","showWarning","warningMessage","warning","showError","errorMessage","apiFM","fileManagerPaiDownload","fileName","defaults","assign","getFullUrl","nomeArquivo","DefaultLayout","backTopBgColor","setBackTopBgColor","isMobile","responseConfiguracao","responseCliente","CorFundoRodape","setConfiguration","less","modifyVars","getConfiguracao","Layout","Drawer","closable","onClose","top","right","UpOutlined","fundoTransparente","InformacaoDashboard","TIPO_ACESSO","Imagem","CardImagemDashboard","urlImagem","valorLink","tipoAcesso","Redirecionar","Youtube","YouTube","YouTubePlayer","videoId","opts","playerVars","rel","tiposDevice","useWindowListener","isClient","widthWindow","setWidthWindow","getSize","innerWidth","innerHeight","device","handleResize","addEventListener","removeEventListener","TAMANHO_HOME_ITEM_ENUM","calcularAlturaLargura","tamanho","calcularAlturaLarguraIconeMedio","tamanhoFonteDescricaoDestaqueMedio","sizes","Mobile","Desktop","Object","keys","label","FilterButton","CardWrapper","Visualizar","span","DescricaoLinkExternoDiv","DescricaoLinkExternoDivMedio","IconeDiv","media","StatisticSpan","StyledCol","Col","StatisticSpanMedio","ValorDescricaoSpan","ValorDestaqueDiv","IconeMedioDiv","tamanhoFonteIconeMedio","IconeMedioImg","ValorDescricaoDestaqueMedioDiv","ValorDestaqueMedioDiv","tamanhoFonteDestaqueMedio","ValorSecundarioMedioSpan","_ref8","GraficoMedio","_ref9","_ref10","DescricaoGrafico","p","_ref11","tamanhoFonteDescricaoGrafico","GraficoDonut","GraficoPie","GraficoLine","GraficoBar","GraficoColumn","NoDataContainer","getGraficos","exercicio","GraficoContext","ListaGraficoContext","listaGrafico","setListaGrafico","eSic","setESic","_Popover","Filter","idGrafico","contentFilter","setVisible","onFilter","values","Periodo","periodo","filtrarGrafico","findIndex","newLista","graficoAtual","componenteAtualizado","component","cloneElement","Dados","filterDescription","DescricaoPeriodo","content","_Form","initialValues","remember","Periodicidade","onFinish","htmlType","Popover","onVisibleChange","visibleEvent","FilterOutlined","left","HomeGraficoContext","ListaHomeGraficoContext","setItem","home","setHome","setExercicio","anoAtual","Date","getFullYear","ExercicioSelect","exercicios","Array","from","_","ano","prevState","getHomeItemService","updatedHome","ListaHomeItem","Select","Option","DonutGraphic","legenda","tootltipTitle","ValorLink","hasFilter","showEyeButton","showExercicioSelect","donut","setDonut","windowListener","getConfigStyle","legend","maxItemWidth","text","itemName","formatter","v","trim","substring","autoFit","radius","innerRadius","autoHide","percent","toFixed","statistic","colorField","angleField","showTitle","EixoX","EixoY","Intl","NumberFormat","element","document","getElementById","donutRender","Pie","render","update","hasNoData","EyeOutlined","Row","flex","PieGraphic","legendPosition","tooltipFormatter","legendMaxRow","legendItemMarginBottom","legendItemSpacing","pie","setPie","maxRow","itemMarginBottom","itemSpacing","pieRender","BarGraphic","cor","legendaEixoX","legendaEixoY","bar","setBar","NumberFormatter","newNum","suffix","suffixNum","trunc","xField","yField","xAxis","yAxis","barRender","Bar","ColumnGraphic","column","setColumn","alignTo","rotate","offsetX","offsetY","offset","columnRender","Column","EmptyCardGrafico","_Empty","image","PRESENTED_IMAGE_SIMPLE","imageStyle","StatisticCard","_iconEnum$find3","Tamanho","IconePersonalizado","IconeCor","TipoAcesso","ValorDestaque","DescricaoValorDestaque","ExibirValorSecundario","ValorSecundario","DescricaoValorSecundario","ExibirGraficoPorcentagem","DescricaoLinkExterno","PorcentagemValorDestaque","PorcentagemValorSecundario","donutData","parseFloat","flipPage","round","triggerOn","triggerOff","hrefFunction","hoverable","CardNoConfigHome","IconNoConfigHome","TextNoConfigHome","Dashboard","ResponsiveReactGridLayout","WidthProvider","Responsive","menuIsCollapsed","setMenuIsCollapsed","forceComponentReRender","setTimeout","addButtonListeners","buttonNode","removeButtonListeners","collapseButton","getElementsByClassName","updateButtonOnResize","layouts","setLayouts","noConfigError","setNoConfigError","getHome","layoutDefault","el","static","sm","previousItemY","newItem","y","h","md","listaHomeItem","homeItem","_homeItem$HomeItemBot","ExibirExercicio","HomeItemBotao","_homeItem$HomeItemBot2","_homeItem$HomeItemBot3","_homeItem$HomeItemBot4","Posicao","UrlIconePersonalizado","ValorExterno","HomeItemTexto","FundoTransparente","HomeItemVideo","YoutubePlayer","VideoId","HomeItemCardImagem","UrlImagem","HomeItemGrafico","TipoGrafico","LegendaCampoReferencia","LegendaCampoValor","CorGrafico","subTitulo","itemHome","getListaGrafico","backgroundSize","breakpoints","cols","rowHeight","Panel","FaqItem","pergunta","resposta","accordion","forceRender","header","Faq","setInformacao","listaFaqItem","setListaFaqItem","getFaq","Texto","Boolean","TituloPergunta","TextoResposta","ContainerExportar","NumberRegistersArea","ButtonsArea","UltimaAtualizacaoArea","UltimaAtualizacao","dataHora","toLocaleDateString","horas","toLocaleTimeString","obterConfiguracoes","obterConfiguracoesGerais","exportarVisao","tipoExportacao","post","obterTotalizadores","DadosAbertosList","_visaoAnalitica$Exerc","chaveModulo","visaoAnalitica","periodicidades","Periodicidades","dataUltimaAtualizacao","DataUltimaSicronizacaoModulo","periodicidadeSelecionada","setPeriodicidadeSelecionada","periodicidadeDescricao","setPeriodicidadeDescricao","exercicioSelecionado","setExercicioSelecionado","periodoSelecionado","setPeriodoSelecionado","periodoDescricao","setperiodoDescricao","existePeriodicidade","periodicidadeUnica","Descricao","Nome","parsedValue","JSON","parse","periodicidadeId","periodicidade","stringify","periodoId","_periodicidade$Period","Periodos","Exercicios","Exercicio","Number","NomeVisao","NomeVisaoAnalitica","UrlExportacao","Notification","DadosAbertos","listaModulos","setListaModulos","Modulos","getDadosAbertos","VisaoAnalitica","FILTRO_DEFAULT","periodicidadeAnual","periodicidadeBimestral","periodos","periodicidadeSemestral","FiltroExercicio","handleChangeExercicio","CardInfo","dados","informacoes","Arquivo","form","Url","DownloadOutlined","EsicCard","formularios","cards","card","formularioentidade","forms","Entidade","orientation","plain","showFormulario","Fomulario","ESicVisoes","gutter","ESicMemoized","memo","_eSic$Informacao","visoesESic","setVisoesESic","formularioESIC","setFormularioESIC","setPeriodicidade","exercicioSelcionado","setExercicios","gridContainer","useMemo","gridBackground","useCallback","anoSelecionado","atualizarGraficos","listaGraficoParam","criarConfigBase","graficoESic","filterContent","exibicao","_periodicidade$","_periodicidade$$Perio","_periodicidade$2","_periodicidade$3","_periodicidade$3$Peri","_periodicidade$4","_periodicidade$5","_periodicidade$5$Peri","_periodicidade$6","getFilterContent","Exibicao","componentesGrafico","1","2","3","4","listaGraficosESic","configGrafico","criarComponente","data-grid","isDraggable","goBack","exerciciosResponse","eSicResponse","periodicidadeResponse","Habilitado","UrlArquivoPessoaFisicaReclamacao","UrlArquivoPessoaFisicaRecurso","UrlArquivoPessoaFisicaeSIC","UrlArquivoPessoaJuridicaReclamacao","UrlArquivoPessoaJuridicaRecurso","UrlArquivoPessoaJuridicaeSIC","obterUrlFormulario","loadInitialData","visoesResponse","graficosResponse","loadVisoesEGraficos","TituloPagina","UrlAplicacao","every","verificaModuloHabilitado","CHAVES_MODULO","Sumario","menusTransformados","setMenusTransformados","ModuloService","novosSubItens","extrairSubItens","List","itemLayout","dataSource","renderItem","borderBottom","Meta","borderTop","listStyleType","paddingInlineStart","sub","TreeTransparente","Tree","TreeViewEstruturaOrganizacional","treeView","TreeNode","loop","outline","Externo","IdDetalhe","role","aria-hidden","isLeaf","draggable","defaultExpandAll","blockNode","autoExpandParent","selectable","EstruturaOrganizacional","estruturaOrganizacionalConfiguracao","setEstruturaOrganizacionalConfiguracao","getEstruturaOrganizacionalConfiguracao","ExibicaoLegislacao","UrlLegislacao","paddingLeft","ExibicaoFluxograma","UrlFluxograma","ListaEstruturaOrganizacional","ChooseIconFile","fileExtension","fileIcon","EstruturaOrganizacionalDetalhe","estruturaOrganizacionalDetalhe","setEstruturaOrganizacionalDetalhe","imgSecretario","setImgSecretario","UrlImagemSecretario","SecretarioResponsavel","fontStyle","maxWidth","borderRadius","Email","AtendimentoPublico","Logradouro","Numero","TextoInformativo","NomeArquivo","UrlArquivo","_estruturaOrganizacio","float","InfoManutencao","EmManutencao","URLSearchParams","search","moduloApi","visaoApi","botaoDisabled","setBotaoDisabled","ModuloVisaoService","ModoVisao","voltarParaVisao","textoBotao","tituloPagina","subTituloPagina","subTitle","ContainerButtons","alfabeto","GlossarioButtons","letrasAtivas","verificaBotaoDesabilitado","letra","flexWrap","HashLink","ItemGlossarioArea","Glossario","setLetrasAtivas","glossario","setGlossario","obterGlossario","_response$data","_response$data$Itens","Itens","letras","Letra","paddingBottom","PalavrasSignificados","Palavra","Significado","parseToQueryString","urlSearchParams","isArray","append","toString","MODO_VISAO","NUMERO_QUANTIDADE_REGISTROS","PARAMS_FILTERS_GRID","PARAMS_FILTERS_DETALHE","PARAMS_FILTERS_GRID_BUSCA_AVANCADA","getAndFormatSearchParams","filtersArray","searchParams","filtersArrayLowwer","entries","UrlContext","UrlProvider","urls","setUrls","empilhaUrl","u","obterUrlPaginaAnterior","valorDefault","urlCompleta","urlBase","queryParam","urlAnterior","String","novasUrls","useUrls","_configuracao$Informa","TIPO_AGRUPAMENTO","TIPO_COLUNA","Totalizadores","totalizadores","DescricaoTotalizador","TipoAgrupamento","Total","toLocaleString","currency","moduloVisao","quantidadeRegistros","setQuantidadeRegistros","page","setPage","filtroExportacao","filtroOrdenacaoExportacao","colunaFiltroRedirecionaVisao","valorFiltroRedirecionaVisao","tipoValorFiltroRedirecionaVisao","buscaAvancada","tipo","setTipo","setNewTipo","_Pagination","current","showSizeChanger","pageSize","total","showTotal","pag","qtde","quantidade","Valores","navigator","clipboard","writeText","dtoExportacao","Ordenacao","Pagina","FiltroRedirecionaVisao","exportarBuscaAvancada","res","ButtonLinkFileManagerLinkAnexo","block","wordWrap","ButtonDownloadFileManager","ButtonLinkAnexo","ArquivosForm","filtroPesquisaArquivosDigitais","arquivosAnexados","setArquivosAnexados","obterAnexos","buscarAnexos","Form","columns","dataIndex","record","IdArquivoDigital","IsLinkAnexo","LinkAnexo","UrlArquivoDigital","align","bordered","rowKey","row","NomeArquivoDigital","pagination","scroll","showAnexos","TableDinamic","_configuracao$VisaoCo","_configuracao$VisaoCo2","handleTableChange","pagina","redirecionarDetalheVisaoAnalitica","urlVisaoAnalitica","urlVisaoAgrupamento","listaColunaOrdem","obterValoresChavesPeriodicidadePorLinha","redirecionarVisaoAnalitica","redirecionarRastreabilidade","possuiArquivoDigital","exibirAnexos","exibirArquivosForm","setFiltroPesquisaArquivosDigitais","setExibirArquivosForm","tableKey","BotaoLink","substr","BotaoArquivoAnexo","FileOutlined","BotaoRedirecionarDetalheVisaoAnalitica","valoresChavesPeriodicidade","mes","dadosColuna","wordBreak","TextoValorString","BotaoRedirecionarRastreabilidade","valorRow","Rastreabilidade","TituloVisaoDestino","BotaoRedirecionarVisaoAnalitica","TextoValorBoolean","Columns","_visaoColuna$Rastreab","ColunaLink","Mes","Chave","FonteDadosColunaLink","ordenacao","_ordenacao$Ordem","ColunaOrdem","compare","b","multiple","Ordem","tipoOrdenacaoPadrao","TipoOrdem","OcultoGridPortal","sorter","defaultSortOrder","tipoValor","filterDropdown","ArquivoForm","FiltroPeriodicidadeModuloDinamico","_filtro$","InputCarregando","setPeriocidadeSelecionada","listaPeriodicidades","periodoDesabilitado","listaPeriodos","listaExercicios","isFiltroAvancadoHabilitado","obterOrdenacaoPadrao","tiposValorString","tiposValorData","tiposValorNumber","inputType","textoPlaceholder","verificaTipoInputEPlaceholder","loading","minWidth","FilterFilled","hash","Uri","UndoOutlined","colunaChave","restaurarOrdenacao","toUpperCase","exerc","ModuloDinamicoPage","_routeParams$get","_routeParams$get2","browserHistory","createBrowserHistory","routeParams","periodicidadeParam","periodoParam","exercicioParam","paginacaoGridParam","quantidadeRegistrosParam","valorFiltroRedirecionaVisaoParam","colunaFiltroRedirecionaVisaoParam","tipoValorFiltroRedirecionaVisaoParam","listaColunaOrdemParam","setDataUltimaAtualizacao","setConfiguracao","setListaPeriodicidades","setListaPeriodos","setListaExercicios","setPossuiArquivoDigital","setModuloVisao","setUrlVisaoAnalitica","setUrlVisaoAgrupamento","setPeriodoDesabilitado","setInputCarregando","filtroDebounce","debouncedValue","setDebouncedValue","time","clearTimeout","useDebounce","setTotalizadores","filtroDefault","setFiltroDefaultEnum","setFiltroExportacao","setFiltroOrdenacaoExportacao","setColunaFiltroRedirecionaVisao","setValorFiltroRedirecionaVisao","setTipoValorFiltroRedirecionaVisao","setListaColunaOrdem","setTableKey","now","setIsFiltroAvancadoHabiltado","chavesPeriodicidade","setChavesPeriodicidade","obterVisaoColunas","propriedade","obterChaveUnicaModulo","_configuracao$VisaoCo3","_configuracao$VisaoCo4","ordenacoes","TipoOrdenacao","filters","field","order","maxOrdem","max","novaListaOrdenacaoColuna","s","itemOrdenacao","idx","columnKey","linhaGrid","colunaGrid","campo","colunasChave","ChaveUnicaModulo","chavePesquisa","coluna","validaPeriodicidade","periodoAnualValido","periodoValidoParaPeriodicidade","some","colunasPeriodicidadeCampoValor","queryString","colunaSelecionada","valorSelecionada","tipoValorColunaSelecionada","chaveSelecionada","isFromAgrupamento","listacolunaordem","visaoRastreabilidade","rastreabilidade","FonteDadosColunaDestino","FonteDadosColunaOrigem","TipoValorColunaDestino","LinkVisaoDestino","buscaDadosGrid","indexFiltro","mergeFiltro","_filtroDebounce$","quantidaderegistros","colunafiltroredirecionavisao","valorfiltroredirecionavisao","tipovalorfiltroredirecionavisao","filtrarModuloVisao","dataFiltro","catch","QuantidadePaginas","obterExerciciosEVisaoAnalitica","responseConfiguracoesGerais","NomeVisaoAgrupamento","PossuiArquivoDigital","FiltroHabilitado","FiltroDefaultEnum","exercicioParamExisteArray","periodicidadeDoParam","carregarPagina","tipoOrdem","quantidadeRegistrosHistory","colunaFiltroRedirecionaVisaoHistory","valorFiltroRedirecionaVisaoHistory","tipoValorFiltroRedirecionaVisaoHistory","colunaOrdem","colunaOrdemHistory","filtroHistory","configuraPeriodo","ex","IdsPeriodicidadePeriodoUltimoMes","IdPeriodicidadePeriodoSelecionado","IdPeriodicidade","IdPeriodo","periodoValido","configuraPeriodoPorTipoPeriodicidade","colunasPeriodicidade","ChavesPeriodicidades","arrayAnterior","obterChavesPeriocidadeDaConfiguracao","_history$location$sta","_history$location$sta2","Grid","ColunasTotalizadoras","ModuloDinamico","SearchTool","LinkArquivo","TreeViewModuloFixo","expandedKeys","setExpandedKeys","setAutoExpandParent","treeData","setTreeData","_item$Link","_item$Arquivo","PrimeiroNivel","ExibeDetalhes","switcherIcon","onSearch","busca","searchWithoutAccents","stringWithoutAccents","filterData","arr","_filterData","filteredData","n","dataItem","onExpand","titleRender","toggleExpandNode","prev","outArr","ModuloFixo","setTreeView","setTitulo","treeViewMethods","createRef","infoMethods","getModuloFixoService","VisaoItens","getModuloFixo","allowClear","getPeriodoDetalheVisaoAnaliticaService","NextPrevButton","ButtonArquivoDigital","PeriodicidadeNavigation","previous","previousFunction","next","nextFunction","LeftOutlined","RightOutlined","TIPO_DETALHE","Tabelas","detalheVisaoAnalitica","CamposGrid","fonte","fundo","gridStyle","gridColumn","strong","tabela","headStyle","Grupo","CorFonteTitulo","CorFundoTitulo","gridTemplateColumns","CorFundo","Colunas","Coluna","listaAnexos","anexos","arquivo","DetalheVisaoAnalitica","setDetalheVisaoAnalitica","Anexos","periodoAnterior","setPeriodoAnterior","periodoPosterior","setPeriodoPosterior","periodoAtual","setPeriodoAtual","exercicioAnterior","setExercicioAnterior","exercicioPosterior","setExercicioPosterior","exercicioAtual","setExercicioAtual","filtroAnterior","setFiltroAnterior","exercicioFilter","setExercicioFilter","periodicidadeFilter","setPeriodicidadeFilter","periodoFilter","setPeriodoFilter","setColunaOrdem","queryParamsDefault","setQueryParamsDefault","obterDetalheVisao","detalheVisao","getDetalheVisaoAnaliticaService","obterPeriodoDetalheVisaoAnalitica","_responsePeriodo$data","_responsePeriodo$data2","_responsePeriodo$data3","_responsePeriodo$data4","_responsePeriodo$data5","_responsePeriodo$data6","responsePeriodo","PeriodoAnterior","PeriodoAtual","PeriodoPosterior","ExercicioAnterior","ExercicioAtual","ExercicioPosterior","ChavesPeriodicidade","queryParamData","getPeriodo","_responsePeriodo$data7","_responsePeriodo$data8","_responsePeriodo$data9","_responsePeriodo$data10","_responsePeriodo$data11","_responsePeriodo$data12","campos","_history$location$sta3","_history$location$sta4","_history$location$sta5","_history$location$sta6","_history$location$sta7","_history$location$sta8","obterDataUltimaAlteracao","_params$get","_params$get2","Tabela","ListaAnexos","exportarDetalheVisao","TIPO_FILTRO","StyledDivider","FiltrosAccordion","filtros","paramsFiltros","handlePesquisa","getFieldDecorator","setFieldsValue","filtrosTransformados","setFiltrosTransformados","setValoresDoInputComoObjeto","isParam","dataFormatada","datas","dataAux","transformaDataParaAmericano","TipoFiltro","objetoForm","renderizaInputTexto","NomePadrao","colon","renderizaInputNumero","InputNumber","keyboard","decimalSeparator","renderizaInputData","dateString","renderizaSelect","_coluna$ColunaValores","showSearch","optionFilterProp","onSelect","ColunaValores","valoresSelect","renderizaSelectBooleano","fazerPesquisaParams","filtrosModulo","Grupos","grupo","arrayFiltros","ShowFiltros","setFiltros","removeTodosOsFiltros","colunasFiltro","tags","setTags","transformaFiltrosEmTags","arrayTags","nomePadrao","pos","lastIndexOf","aux","Tag","novosFiltros","resetFields","removeFiltro","ClearOutlined","setColunasFiltro","configuracoesVisao","setConfiguracoesVisao","setFiltroHabilitado","arrayFonteDados","valoresParamsFiltros","setValoresParamsFiltros","obterConfiguracoesVisao","obterDadosFiltroAvancado","valuesFiltro","getAndFormatSearchParamsBuscaAvancada","getColunas","nomeModulo","getColunasFiltro","validateFields","err","filtrosRequisicao","valores","chavesFiltro","novoFiltro","montaNovoFiltro","isBool","transformaFormEmObjetoRequisicao","_colunasFiltro$Grupos","getFonteDadosColunas","array","arrayAuxiliar","fonteDados","valorParam","objetoFiltro","getParamsUrlFonteDadosColunas","BuscaAvancada","onSubmit","layout","FiltrosAvancados","VisaoItem","visaoItem","setVisaoItem","itemVisao","uriVisao","idVisaoItemDetalhe","parseInt","getItemVisao","_visaoItem$NomeArquiv","captcha","SetCaptcha","recaptchaInputRef","Assunto","Mensagem","faleConosco","grecaptcha","reset","rules","required","minLength","min","TextArea","rows","autoComplete","FaleConosco","FaleConoscoForm","CardWithTitleStyled","InfosContainer","SubInfosContainer","ContainerAviso","STATUS_AUTENTICIDADE","AutenticidadeValidacao","dadosValidacao","aviso","Status","DataHoraExportacao","DataHoraValidade","TituloRelatorio","_dadosValidacao$NomeA","ContainerInformacao","_configuracoes$Inform","_configuracoes$Inform2","hasSubmitted","setHasSubmitted","setDadosValidacao","configuracoes","setConfiguracoes","resp","NomeModulo","Aviso","justify","CodigoValidacao","codigoValidacao","obterAutenticidade","Autenticidade","AutenticidadeForm","LineGraphic","seriesField","onLineClick","onPointClick","line","setLine","point","smooth","lineRender","Line","events","GraficoAnos","acessosAnos","setAcessosAnos","GraficoVisoes","acessosVisoes","setAcessosVisoes","Acessos","Estatiscas","Route","Component","hasStatistics","handleStatistics","Rota","ReactRoute","exact","Routes","Router","Switch","ItemVisao","ESic","Estatisticas","App","PersistGate","VLibras","ReactDOM"],"mappings":"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","file":"static/js/main.22d85115.chunk.js","sourcesContent":["import { createGlobalStyle } from 'styled-components';\n\nconst highContrastColors = {\n  background: 'black',\n  color: 'yellow',\n};\n\nconst GlobalStyle = createGlobalStyle`\n  * {\n    font-family: 'Segoe UI' !important;\n\n    ::placeholder {\n      color: ${props =>\n        props.theme.highContrast && highContrastColors.color} !important;  \n    }\n\n    ::selection {\n      background-color: ${props =>\n        props.theme.highContrast && highContrastColors.color} !important;\n    }\n\n    background-color: ${props =>\n      props.theme.highContrast && highContrastColors.background} !important;\n\n    border-color: ${props =>\n      props.theme.highContrast && highContrastColors.color} !important;\n\n    color: ${props =>\n      props.theme.highContrast && highContrastColors.color} !important;\n  }\n  \n  .ant-table-footer{\n    padding: 14px 14px;\n  }\n\n  &&.access-button{\n    width: 23.5% !important\n  }\n\n  .maxHeight500 {\n    max-height: 500px;\n  }\n\n  // Barra de rolagem com fundo transparente\n  \n  /* Estilo para navegadores baseados em WebKit (Chrome, Edge, Safari) */\n  ::-webkit-scrollbar {\n    width: 8px; /* Largura da barra de rolagem */\n    height: 8px; /* Altura da barra de rolagem (para rolagem horizontal) */\n  }\n\n  ::-webkit-scrollbar-track {\n    background: transparent; /* Fundo sempre transparente */\n  }\n\n  ::-webkit-scrollbar-thumb {\n    background: rgba(0, 0, 0, 0.5); /* \"Polegar\" da barra sem fundo branco */\n    border-radius: 4px; /* Bordas arredondadas */\n  }\n\n  ::-webkit-scrollbar-thumb:hover {\n    background: rgba(0, 0, 0, 0.5); /* Mesma cor ao passar o mouse */\n  }\n\n  /* Estilo para navegadores Firefox */\n  * {\n    scrollbar-width: thin; /* Faz a barra de rolagem ficar fina */\n    scrollbar-color: rgba(0, 0, 0, 0.5) transparent; /* \"Polegar\" com cor e trilha transparente */\n  }\n\n`;\n\nexport default GlobalStyle;\n","import styled from 'styled-components';\nimport { Collapse } from 'antd';\n\nconst Accordion = styled(Collapse)`\n  div.ant-collapse-content,\n  div.ant-collapse-content > .ant-collapse-content-box {\n    background-color: transparent !important;\n  }\n  div.ant-collapse-header {\n    font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n  }\n`;\n\nexport default Accordion;\n","import styled from 'styled-components';\nimport { Button as AntDesignButton } from 'antd';\n\nexport const Button = styled(AntDesignButton)`\n  && {\n    margin-left: ${({ ml }) => ml}px;\n    margin-right: ${({ mr }) => mr}px;\n    color: ${({ color }) => color};\n  }\n`;\n","import * as Icons from '@ant-design/icons';\n\nexport default Icons;\n","import { Tooltip } from './Tooltip.styled';\n\nexport default Tooltip;\n","import { Tooltip as AntdTooltip } from 'antd';\nimport styled from 'styled-components';\n\nexport const Tooltip = styled(AntdTooltip)``;\n","/* eslint-disable no-param-reassign */\nimport produce from 'immer';\n\nexport const MIN_ZOOM_FONTE = -5;\nexport const MAX_ZOOM_FONTE = 5;\n\nconst INITIAL_STATE = {\n  titulo: '',\n  corFonteTituloPortal: '#000',\n  corFonte: '#fff',\n  corFundoGrid: '#fff',\n  corFonteGrid: '#fff',\n  corFonteRodape: '#000',\n  corTema: '',\n\n  brasao: '',\n  brasaoPB: '',\n  banner: '',\n  bgImageHome: '',\n  bgImageTelas: '',\n\n  RazaoSocial: '',\n  endereco: '',\n  bairro: '',\n  cidade: '',\n  cep: '',\n  telefone: '',\n  atendimento: '',\n\n  EmailSocials: '',\n  FacebookSocials: '',\n  InstagramSocials: '',\n  LinkedInSocials: '',\n  TwitterSocials: '',\n  WhatsAppSocials: '',\n  YoutubeSocials: '',\n\n  zoomFonte: 0,\n  highContrast: false,\n\n  graficHighContrastStyle: {\n    fill: 'yellow',\n    shadowColor: 'yellow',\n    stroke: 'yellow',\n    shadowBlur: 0,\n    lineWidth: 0.3,\n    strokeOpacity: 0,\n  },\n  graficDefaultStyle: {\n    fill: 'black',\n    shadowColor: 'black',\n    stroke: 'black',\n    shadowBlur: 0,\n    lineWidth: 0.3,\n    strokeOpacity: 0,\n  },\n};\n\nfunction configurationReducer(state = INITIAL_STATE, action) {\n  switch (action.type) {\n    case '@configuration/TOGGLE_HIGHCONTRAST':\n      return produce(state, draft => {\n        draft.highContrast = !state.highContrast;\n      });\n\n    case '@configuration/SET_CONFIGURATION':\n      return produce(state, draft => {\n        draft.titulo = action.payload.Titulo;\n        draft.corFonteTituloPortal = action.payload.CorFonteTituloPortal;\n        draft.corFonteTituloTelas = action.payload.CorFonteTituloTelas;\n        draft.corFonteRodape = action.payload.CorFonteRodape;\n        draft.corTema = action.payload.CorTema;\n        draft.corFonte = action.payload.CorFonte;\n        draft.corFundoGrid = action.payload.CorFundoGrid;\n        draft.corFundoTituloGrid = action.payload.CorFundoTituloGrid;\n        draft.corTituloGrid = action.payload.CorTituloGrid;\n\n        draft.brasao = action.payload.BrasaoUrl;\n        draft.brasaoPB = action.payload.BrasaoPretoBrancoUrl;\n        draft.banner = action.payload.BannerUrl;\n        draft.bgImageHome = action.payload.ImagemFundoHomeUrl;\n        draft.bgImageTelas = action.payload.ImagemFundoTelasUrl;\n\n        draft.RazaoSocial = action.payload.RazaoSocial;\n        draft.endereco = action.payload.Endereco;\n        draft.bairro = action.payload.Bairro;\n        draft.cidade = action.payload.Cidade;\n        draft.cep = action.payload.CEP;\n        draft.telefone = action.payload.Telefone;\n        draft.atendimento = action.payload.Atendimento;\n        draft.graficHighContrastStyle = INITIAL_STATE.graficHighContrastStyle;\n        draft.graficDefaultStyle = INITIAL_STATE.graficDefaultStyle;\n        draft.EmailSocials = action.payload.EmailSocials;\n        draft.FacebookSocials = action.payload.FacebookSocials;\n        draft.InstagramSocials = action.payload.InstagramSocials;\n        draft.LinkedInSocials = action.payload.LinkedInSocials;\n        draft.TwitterSocials = action.payload.TwitterSocials;\n        draft.WhatsAppSocials = action.payload.WhatsAppSocials;\n        draft.YoutubeSocials = action.payload.YoutubeSocials;\n      });\n\n    case '@configuration/DECREASE_FONTSIZE_PAGE':\n      return produce(state, draft => {\n        if (draft.zoomFonte > MIN_ZOOM_FONTE) {\n          draft.zoomFonte -= 1;\n        }\n      });\n\n    case '@configuration/INCREASE_FONTSIZE_PAGE':\n      return produce(state, draft => {\n        if (draft.zoomFonte < MAX_ZOOM_FONTE) {\n          draft.zoomFonte += 1;\n        }\n      });\n\n    case '@configuration/RESET_FONTSIZE_PAGE':\n      return produce(state, draft => {\n        draft.zoomFonte = INITIAL_STATE.zoomFonte;\n      });\n\n    default:\n      return state;\n  }\n}\n\nexport default configurationReducer;\n","import React, { useEffect } from 'react';\nimport { useMediaQuery } from 'react-responsive';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n  toggleHighContrast,\n  increaseFontSizePage,\n  decreaseFontSizePage,\n  resetFontSizePage,\n} from '~/store/modules/configuration/configuration.actions';\nimport { Button } from '../Button/Button.styled';\nimport Icons from '../Icons/Icons.component';\nimport Tooltip from '../Tooltip/Tooltip.component';\nimport {\n  MIN_ZOOM_FONTE,\n  MAX_ZOOM_FONTE,\n} from '~/store/modules/configuration/configuration.reducer';\n\nfunction Acessibility() {\n  const dispatch = useDispatch();\n\n  const { zoomFonte } = useSelector(state => state.configuration);\n\n  const botaoAumentarDesabilitado = zoomFonte >= MAX_ZOOM_FONTE;\n  const botaoDiminuirDesabilitado = zoomFonte <= MIN_ZOOM_FONTE;\n\n  // se a tela tiver menos de 1024px,\n  // remove os botões de zoom de fonte\n  // e reseta o font-size da página para o origial\n  const exibeBotoesZoom = useMediaQuery({ query: '(min-width: 1024px)' });\n\n  useEffect(() => {\n    dispatch(resetFontSizePage());\n  }, [exibeBotoesZoom]);\n\n  return (\n    <>\n      {exibeBotoesZoom && (\n        <>\n          <Tooltip title=\"Tamanho Original\" destroyTooltipOnHide>\n            <Button\n              tabIndex={0}\n              type=\"primary\"\n              style={{\n                width: 25,\n                padding: 0,\n                height: 25,\n                fontSize: 14,\n                marginRight: '10px',\n                textAlign: 'center',\n                fontWeight: 'bold',\n              }}\n              onClick={() => dispatch(resetFontSizePage())}\n            >\n              A\n            </Button>\n          </Tooltip>\n\n          <Tooltip title=\"Aumentar Fonte\" destroyTooltipOnHide>\n            <Button\n              tabIndex={0}\n              type=\"primary\"\n              style={{\n                width: 25,\n                padding: 0,\n                height: 25,\n                fontSize: 14,\n                marginRight: '10px',\n                textAlign: 'center',\n                fontWeight: 'bold',\n              }}\n              disabled={botaoAumentarDesabilitado}\n              onClick={() => dispatch(increaseFontSizePage())}\n            >\n              A+\n            </Button>\n          </Tooltip>\n\n          <Tooltip title=\"Diminuir Fonte\" destroyTooltipOnHide>\n            <Button\n              tabIndex={0}\n              type=\"primary\"\n              style={{\n                width: 25,\n                padding: 0,\n                height: 25,\n                fontSize: 14,\n                marginRight: '10px',\n                textAlign: 'center',\n                fontWeight: 'bold',\n              }}\n              disabled={botaoDiminuirDesabilitado}\n              onClick={() => dispatch(decreaseFontSizePage())}\n            >\n              A-\n            </Button>\n          </Tooltip>\n        </>\n      )}\n      <Tooltip title=\"Alto Contraste\">\n        <Button\n          tabIndex={0}\n          type=\"primary\"\n          style={{\n            width: 25,\n            padding: 0,\n            height: 25,\n            fontSize: 14,\n            marginRight: '40px',\n            textAlign: 'center',\n            fontWeight: 'bold',\n          }}\n          onClick={() => dispatch(toggleHighContrast())}\n        >\n          <Icons.BulbOutlined style={{ fontSize: 16 }}></Icons.BulbOutlined>\n        </Button>\n      </Tooltip>\n    </>\n  );\n}\n\nexport default Acessibility;\n","function toggleHighContrast() {\n  return {\n    type: '@configuration/TOGGLE_HIGHCONTRAST',\n  };\n}\n\nfunction decreaseFontSizePage() {\n  return {\n    type: '@configuration/DECREASE_FONTSIZE_PAGE',\n  };\n}\n\nfunction increaseFontSizePage() {\n  return {\n    type: '@configuration/INCREASE_FONTSIZE_PAGE',\n  };\n}\n\nfunction resetFontSizePage() {\n  return {\n    type: '@configuration/RESET_FONTSIZE_PAGE',\n  };\n}\n\nfunction setConfiguration({\n  BannerUrl,\n  BrasaoUrl,\n  BrasaoPretoBrancoUrl,\n  ImagemFundoHomeUrl,\n  ImagemFundoTelasUrl,\n  CorTema,\n  Titulo,\n  CorFonte,\n  CorFonteTituloPortal,\n  CorFonteTituloTelas,\n  CorFonteRodape,\n  RazaoSocial,\n  Endereco,\n  Bairro,\n  Cidade,\n  CEP,\n  Telefone,\n  Atendimento,\n  CorFundoGrid,\n  CorFundoTituloGrid,\n  CorTituloGrid,\n  EmailSocials,\n  FacebookSocials,\n  InstagramSocials,\n  LinkedInSocials,\n  TwitterSocials,\n  WhatsAppSocials,\n  YoutubeSocials,\n}) {\n  return {\n    type: '@configuration/SET_CONFIGURATION',\n    payload: {\n      BannerUrl,\n      BrasaoUrl,\n      BrasaoPretoBrancoUrl,\n      ImagemFundoHomeUrl,\n      ImagemFundoTelasUrl,\n      CorTema,\n      Titulo,\n      CorFonte,\n      CorFonteTituloPortal,\n      CorFonteTituloTelas,\n      CorFonteRodape,\n      RazaoSocial,\n      Endereco,\n      Bairro,\n      Cidade,\n      CEP,\n      Telefone,\n      Atendimento,\n      CorFundoGrid,\n      CorFundoTituloGrid,\n      CorTituloGrid,\n      EmailSocials,\n      FacebookSocials,\n      InstagramSocials,\n      LinkedInSocials,\n      TwitterSocials,\n      WhatsAppSocials,\n      YoutubeSocials,\n    },\n  };\n}\n\nexport {\n  toggleHighContrast,\n  increaseFontSizePage,\n  decreaseFontSizePage,\n  resetFontSizePage,\n  setConfiguration,\n};\n","import { BackTop as BackTopAntd } from 'antd';\nimport styled from 'styled-components';\n\nexport const BackTop = styled(BackTopAntd)`\n  right: 70px;\n  bottom: 40px;\n`;\n\nexport const BackTopStyle = styled.div`\n  height: 40px;\n  width: 40px;\n  line-height: 40px;\n  border-radius: 50px;\n  background-color: ${({ backgroundColor }) => `${backgroundColor}`};\n  color: ${({ color }) => `${color}`};\n  text-align: center;\n  font-size: 14px;\n`;","import React from 'react';\nimport * as S from './BackTop.styled';\n\nfunction BackTopPage({ icon, backgroundColor, color }) {\n  return (\n    <S.BackTop>\n      <S.BackTopStyle backgroundColor={backgroundColor} color={color}>\n        {icon}\n      </S.BackTopStyle>\n    </S.BackTop>\n  );\n}\n\nexport default BackTopPage;\n\nBackTopPage.defaultProps = {\n  icon: 'UP',\n  backgroundColor: '#009688',\n  color: '#fff',\n};\n","import * as S from './Button.styled';\n\nexport default S.Button;\n","const { protocol, host, hostname } = window.location;\n\nlet SMARAPD_PAI_DOMAIN, SMARAPD_FILEMANAGER_DOMAIN;\n\nfunction getUrl(resource) {\n   if (process.env.NODE_ENV === 'development') {\n      return `${protocol}//${hostname}/${resource}`;\n   } else {\n      return `${protocol}//${host}/${resource}`;\n   } \n}\n\nSMARAPD_PAI_DOMAIN = getUrl('paiportalserver');\nSMARAPD_FILEMANAGER_DOMAIN = getUrl('fileserver');\n\nexport { SMARAPD_PAI_DOMAIN, SMARAPD_FILEMANAGER_DOMAIN };\n","import { createStore, compose, applyMiddleware } from 'redux';\n\nfunction create(reducers, middlewares) {\n  const enhancer =\n    process.env.NODE_ENV === 'development'\n      ? compose(\n          console.tron.createEnhancer(),\n          applyMiddleware(...middlewares)\n        )\n      : applyMiddleware(...middlewares);\n\n  return createStore(reducers, enhancer);\n}\n\nexport default create;\n","import storage from 'redux-persist/lib/storage';\nimport { persistReducer } from 'redux-persist';\n\nfunction persist(reducers) {\n  const persistedReducers = persistReducer(\n    {\n      key: 'smarapd-pai-portal',\n      storage,\n      whitelist: ['configuration'],\n    },\n    reducers\n  );\n\n  return persistedReducers;\n}\n\nexport default persist;\n","import produce from 'immer';\n\nconst INITIAL_STATE = {\n  count: 0,\n};\n\nfunction loaderReducer(state = INITIAL_STATE, action) {\n  switch (action.type) {\n    case '@loader/ADD_REQUEST':\n      return produce(state, draft => {\n        draft.count = state.count + 1;\n      });\n\n    case '@loader/REMOVE_REQUEST':\n      return produce(state, draft => {\n        draft.count = state.count - 1;\n      });\n\n    default:\n      return state;\n  }\n}\n\nexport default loaderReducer;\n","import { combineReducers } from 'redux';\nimport loaderReducer from './loader/loader.reducer';\nimport configurationReducer from './configuration/configuration.reducer';\n\nfunction rootReducer() {\n  return combineReducers({\n    loader: loaderReducer,\n    configuration: configurationReducer,\n  });\n}\n\nexport default rootReducer();\n","import { all } from 'redux-saga/effects';\n\nfunction* rootSaga() {\n  return yield all([]);\n}\n\nexport default rootSaga;\n","import { persistStore } from 'redux-persist';\nimport createSagaMiddleware from 'redux-saga';\nimport createStore from './createStore';\nimport persistReducers from './persistReducer';\n\nimport rootReducer from './modules/rootReducer';\nimport rootSaga from './modules/rootSaga';\n\nconst sagaMonitor =\n  process.env.NODE_ENV === 'development'\n    ? console.tron.createSagaMonitor()\n    : null;\n\nconst sagaMiddleware = createSagaMiddleware({ sagaMonitor });\n\nconst middlewares = [sagaMiddleware];\n\nconst store = createStore(persistReducers(rootReducer), middlewares);\nconst persistor = persistStore(store);\n\nsagaMiddleware.run(rootSaga);\n\nexport default store;\nexport { persistor };\n","import { createHashHistory } from 'history';\n\nconst history = createHashHistory();\n\nexport default history;\n","import axios from 'axios';\nimport {\n  addRequest,\n  removeRequest,\n} from '~/store/modules/loader/loader.actions';\nimport { SMARAPD_PAI_DOMAIN } from '~/services/urls';\nimport store from '~/store';\nimport history from './history';\n\nconst api = axios.create({\n  baseURL: SMARAPD_PAI_DOMAIN,\n});\n\napi.interceptors.request.use(\n  function handleRequest(config) {\n    store.dispatch(addRequest());\n    return config;\n  },\n  function handleError(error) {\n    return Promise.reject(error);\n  }\n);\n\napi.interceptors.response.use(\n  function handleResponse(response) {\n    store.dispatch(removeRequest());\n    return response;\n  },\n  function handleError(error) {\n    store.dispatch(removeRequest());\n    return Promise.reject(error);\n  }\n);\n\napi.interceptors.response.use(\n  function handleResponse(response) {\n    return response;\n  },\n  function handleError(error) {\n    if (error && error.response) {\n      store.dispatch(removeRequest());\n      const { status } = error.response;\n\n      if (status === 404) history.push('/notfound');\n    }\n    return Promise.reject(error);\n  }\n);\n\nexport default api;\n","function addRequest() {\n  return {\n    type: '@loader/ADD_REQUEST',\n  };\n}\n\nfunction removeRequest() {\n  return {\n    type: '@loader/REMOVE_REQUEST',\n  };\n}\n\nexport { addRequest, removeRequest };\n","import React, { createContext, useContext, useEffect, useState } from 'react';\nimport api from '~/services/api';\n\nexport const MenuContext = createContext();\n\nexport default function MenuProvider({ children }) {\n  const [menuSelecionado, setMenuSelecionado] = useState(undefined);\n  const [menus, setMenus] = useState([]);\n  const [isLoading, setIsLoading] = useState(true);\n\n  function resetMenuSelecionado() {\n    setMenuSelecionado(undefined);\n  }\n\n  useEffect(() => {\n    const getMenus = async () => {\n      const responseMenu = await api.get('MenuPortal');\n      setMenus(responseMenu.data);\n      setIsLoading(false);\n    };\n\n    getMenus();\n  }, []);\n\n  return (\n    <MenuContext.Provider\n      value={{\n        menus,\n        menuSelecionado,\n        setMenuSelecionado,\n        isLoadingMenus: isLoading,\n        resetMenuSelecionado,\n      }}\n    >\n      {children}\n    </MenuContext.Provider>\n  );\n}\n\nexport function useMenus() {\n  const {\n    menus,\n    menuSelecionado,\n    setMenuSelecionado,\n    isLoadingMenus,\n    resetMenuSelecionado,\n  } = useContext(MenuContext);\n\n  return {\n    menus,\n    menuSelecionado,\n    setMenuSelecionado,\n    isLoadingMenus,\n    resetMenuSelecionado,\n  };\n}\n","export const TIPO_MENU_PORTAL = {\n    ITEM_MENU: 1,\n    EXTERNO: 2,\n    MODULO_FIXO: 3,\n    MODULO_DINAMICO: 4,\n    MODULO_ESPECIAL: 5,\n  };","export const breadcrumbEstruturaOrganizacional = [\n  {\n    uri: '/estrutura_organizacional',\n    breadcrumb: ['Estrutura Organizacional'],\n  },\n  {\n    uri: '/estrutura_organizacional/detalhe/:id/',\n    breadcrumb: [\n      {\n        breadcrumb: 'Estrutura Organizacional',\n        uri: '/estrutura_organizacional',\n      },\n      'Detalhes',\n    ],\n  },\n];\n\nexport const breadcrumbHome = [{ uri: '/', breadcrumb: ['Home'] }];\n\nexport const breadcrumbFaq = [{ uri: '/faq', breadcrumb: ['FAQ'] }];\n\nexport const breadcrumbDadosAbertos = [\n  { uri: '/dados_abertos', breadcrumb: ['Dados Abertos'] },\n];\n\nexport const breadcrumbEsic = [{ uri: '/esic', breadcrumb: ['e-SIC'] }];\n\nexport const breadcrumbSumario = [{ uri: '/sumario', breadcrumb: ['Sumário'] }];\n\nexport const breadcrumbGlossario = [\n  { uri: '/glossario', breadcrumb: ['Glossário'] },\n];\n\nexport const breadcrumbFaleConosco = [\n  { uri: '/faleconosco', breadcrumb: ['Fale Conosco'] },\n];\n\nexport const breadcrumbEstatisticas = [\n  { uri: '/estatisticas', breadcrumb: ['Estatísticas'] },\n];\n\nexport const breadcrumbAutenticidade = [\n  { uri: '/autenticidade', breadcrumb: ['Autenticidade'] },\n];\n","import { useEffect, useState } from 'react';\nimport { useMenus } from '~/contexts/menu.context';\nimport { TIPO_MENU_PORTAL } from '~/modules/Helper/tipoMenuPortal';\nimport {\n  breadcrumbEstruturaOrganizacional,\n  breadcrumbEsic,\n  breadcrumbFaq,\n  breadcrumbDadosAbertos,\n  breadcrumbGlossario,\n  breadcrumbHome,\n  breadcrumbSumario,\n  breadcrumbFaleConosco,\n  breadcrumbEstatisticas,\n  breadcrumbAutenticidade,\n} from '~/utils/breadcrumb';\n\nexport function useBreadcrumb() {\n  const [breadcrumbs, setBreadcrumbs] = useState([]);\n  const { menus, menuSelecionado, setMenuSelecionado } = useMenus();\n\n  function obterBreadcrumbModulos() {\n    // eslint-disable-next-line no-shadow\n    function processarItens(itens, caminhoAnterior = [], breadcrumbs = []) {\n      itens.forEach(item => {\n        const novoBreadcrumb = [...caminhoAnterior, item.Titulo];\n\n        if (\n          item.tipoMenuPortal !== TIPO_MENU_PORTAL.EXTERNO &&\n          item.TipoMenuPortal !== TIPO_MENU_PORTAL.ITEM_MENU &&\n          item.URI\n        ) {\n          breadcrumbs.push({\n            id: item.Id,\n            uri: item.URI,\n            breadcrumb: novoBreadcrumb,\n          });\n          if (item.URI.includes('/dinamico')) {\n            breadcrumbs.push({\n              id: item.Id,\n              uri: `${item.URI}/detalhevisao`,\n              breadcrumb: [...novoBreadcrumb, 'Detalhe Visão Analítica'],\n              breadcrumbUri: item.URI,\n            });\n            breadcrumbs.push({\n              id: item.Id,\n              uri: `${item.URI}/busca`,\n              breadcrumb: [...novoBreadcrumb, 'Busca Avançada'],\n              breadcrumbUri: item.URI,\n            });\n          }\n        }\n\n        if (item.SubItens && item.SubItens.length) {\n          processarItens(item.SubItens, novoBreadcrumb, breadcrumbs);\n        }\n      });\n\n      return breadcrumbs;\n    }\n\n    return processarItens(menus);\n  }\n\n  useEffect(() => {\n    const breadcrumbModulos = obterBreadcrumbModulos();\n\n    const newBreadcrumb = [\n      ...breadcrumbModulos,\n      ...breadcrumbEstruturaOrganizacional,\n      ...breadcrumbFaq,\n      ...breadcrumbDadosAbertos,\n      ...breadcrumbEsic,\n      ...breadcrumbSumario,\n      ...breadcrumbGlossario,\n      ...breadcrumbHome,\n      ...breadcrumbFaleConosco,\n      ...breadcrumbEstatisticas,\n      ...breadcrumbAutenticidade,\n    ];\n\n    setBreadcrumbs(newBreadcrumb);\n  }, [menus]);\n\n  function obterBreadcrumbPorUri(uri, params) {\n    //\n    if (!breadcrumbs?.length) return undefined;\n\n    //\n    if (menuSelecionado) {\n      const breadcrumb = breadcrumbs.find(x => {\n        return x.id === menuSelecionado.Id;\n      });\n      setMenuSelecionado(null);\n      return breadcrumb;\n    }\n\n    //\n    const { modulo, visao } = params;\n    let uriComparacao = uri;\n    if (uri.includes('/dinamico/') || uri.includes('/fixo/')) {\n      uriComparacao = uri.replace(':modulo', modulo).replace(':visao', visao);\n    }\n    return breadcrumbs.find(x => {\n      return x.uri === uriComparacao;\n    });\n  }\n\n  return { breadcrumbs, obterBreadcrumbPorUri };\n}\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Breadcrumb as AntDesignBreadcrumb, Icon as AntDesignIcon } from 'antd';\n\nexport const Breadcrumb = styled(AntDesignBreadcrumb)`\n  && {\n    padding: 8px 0px;\n    height: 50px;\n  }\n  a {\n    text-decoration-line: underline;\n  }\n`;\n\nexport const BreadcrumbItem = styled(AntDesignBreadcrumb.Item)``;\n\nexport const Icon = styled(props => <AntDesignIcon {...props} />)``;\n","/* eslint-disable no-undef */\n/* eslint-disable no-console */\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport { HomeOutlined } from '@ant-design/icons';\nimport { useBreadcrumb } from '~/hooks/useBreadcrumb';\nimport * as S from './Breadcrumb.styled';\n\nfunction Breadcrumb({ master, match }) {\n  //\n  const { params, path } = match;\n  const { obterBreadcrumbPorUri } = useBreadcrumb();\n  const breadcrumb = obterBreadcrumbPorUri(path, params);\n\n  if (!breadcrumb?.breadcrumb) return null;\n\n  return (\n    <S.Breadcrumb>\n      <S.Breadcrumb.Item>\n        <Link to={master}>\n          <HomeOutlined />\n        </Link>\n      </S.Breadcrumb.Item>\n      {breadcrumb.breadcrumb.map((item, index) =>\n        breadcrumb.breadcrumbUri &&\n        index === breadcrumb.breadcrumb.length - 2 ? (\n          <S.Breadcrumb.Item key={Math.random()}>\n            <Link to={breadcrumb.breadcrumbUri}>{item}</Link>\n          </S.Breadcrumb.Item>\n        ) : (\n          <S.Breadcrumb.Item key={Math.random()}>{item}</S.Breadcrumb.Item>\n        )\n      )}\n    </S.Breadcrumb>\n  );\n}\n\nexport default Breadcrumb;\n\nBreadcrumb.defaultProps = {\n  breadcrumb: [],\n};\n","import * as S from './Card.styled';\n\nexport default S.Card;\n","import styled from 'styled-components';\nimport { Card as AntDesignCard } from 'antd';\n\nexport const Card = styled(AntDesignCard)`\n  && {\n    background: rgba(255, 255, 255, 0.9);\n\n    .ant-card-head-title,\n    .ant-card-body {\n      font-size: ${({ theme }) => `${16 + 2 * theme.zoomFonte}px`};\n    }\n  }\n`;\n","import { Col } from 'antd';\n\nexport default Col;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport Icons from '../Icons/Icons.component';\n\nfunction Collapse({ collapsed, handleToggle }) {\n  const corFonteTituloPortal = useSelector(\n    state => state.configuration.corFonteTituloPortal\n  );\n\n  return collapsed ? (\n    <Icons.MenuUnfoldOutlined\n      tabIndex={0}\n      style={{ fontSize: 18, padding: 32, color: corFonteTituloPortal }}\n      onKeyDown={event => {\n        if (event.keyCode === 13) handleToggle();\n      }}\n      onClick={handleToggle}\n      className=\"collapseButton\"\n      collapsed={collapsed}\n    />\n  ) : (\n    <Icons.MenuFoldOutlined\n      tabIndex={0}\n      style={{ fontSize: 18, padding: 32, color: corFonteTituloPortal }}\n      onKeyDown={event => {\n        if (event.keyCode === 13) handleToggle();\n      }}\n      className=\"collapseButton\"\n      collapsed={collapsed}\n      onClick={handleToggle}\n    />\n  );\n}\n\nexport default Collapse;\n","import styled from 'styled-components';\nimport { Layout } from 'antd';\n\nexport const Content = styled(Layout.Content)`\n  min-height: auto;\n  padding: 24px 32px;\n  background: url(${({ src }) => `'${src}'`}) no-repeat;\n  background-size: 100% 100%;\n  background-position: center center;\n`;\n","import React from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport * as S from './Content.styled';\n\nfunction Content({ children }) {\n  const location = useLocation().pathname;\n\n  const bgImage = useSelector(state =>\n    location === '/'\n      ? state.configuration.bgImageHome\n      : state.configuration.bgImageTelas\n  );\n\n  return bgImage ? (\n    <S.Content src={bgImage}>{children}</S.Content>\n  ) : (\n    <S.Content>{children}</S.Content>\n  );\n}\n\nexport default Content;\n","import styled from 'styled-components';\nimport { DatePicker } from 'antd';\n\nconst { RangePicker } = DatePicker;\n\nexport const StyledRangePicker = styled(RangePicker)`\n  &&.ant-picker {\n    width: 100%;\n  }\n`;\n","import React from 'react';\nimport moment from 'moment';\n\nimport * as S from './RangePicker.styled';\n\nconst dateFormat = 'DD/MM/YYYY';\n\nfunction RangePickerComponent({ onCalendarChange, valorPadrao }) {\n  return (\n    <S.StyledRangePicker\n      onCalendarChange={onCalendarChange}\n      format={dateFormat}\n      defaultValue={\n        valorPadrao?.length > 1 && [\n          moment(valorPadrao[0], dateFormat),\n          moment(valorPadrao[1], dateFormat),\n        ]\n      }\n    />\n  );\n}\n\nexport default RangePickerComponent;\n","import {Divider} from './Divider.styled';\n\nexport default Divider;\n","import styled from 'styled-components';\nimport { Divider as antdDivider} from 'antd';\n\nexport const Divider = styled(antdDivider)`\n    &&{\n        .ant-divider-inner-text{\n            font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n        }\n    }\n        \n`;","import * as S from './Drawer.styled';\n\nexport default S.Drawer;\n","import styled from 'styled-components';\nimport { Drawer as AntDesignDrawer } from 'antd';\n\nexport const Drawer = styled(AntDesignDrawer).attrs(() => ({\n  bodyStyle: { padding: 0 },\n}))``;\n","export const Limite = {\n  PDF: 60000,\n  XML: 60000,\n  TXT: 60000,\n  XLSX: 60000,\n  CSV: 60000,\n  JPG: 1500,\n};\n","import styled from 'styled-components';\nimport Button from '../Button/Button.component';\n\nexport const Container = styled.div`\n  display: flex;\n  align-items: center;\n  justify-content: flex-end;\n\n  ${Button} {\n    padding: 2px;\n    margin-left: 8px;\n  }\n`;\n","import {Dropdown} from 'antd';\n\nexport default Dropdown;\n","import React from 'react';\nimport { Menu } from 'antd';\nimport { Limite } from '~/modules/Helper/FileExportConstants';\nimport { Container } from './Exportacao.styled';\n\nimport Tooltip from '../Tooltip/Tooltip.component';\nimport Dropdown from '../Dropdown/Dropdown.component';\nimport Icons from '../Icons/Icons.component';\nimport Button from '../Button/Button.component';\n\nfunction Exportacao({ onClick, QuantidadeRegistros, semURI, moduloFixo }) {\n  function handleMenuClick(e) {\n    onClick(e.key);\n  }\n\n  function handleLimitMessage(limite) {\n    return `${`Não é possível exportar acima de ${limite} registros`}`;\n  }\n\n  const menuExportacao = (\n    <Menu onClick={handleMenuClick}>\n      {!moduloFixo && (\n        <Menu.Item\n          key=\"pdflandscape\"\n          disabled={QuantidadeRegistros > Limite.PDF}\n        >\n          <Tooltip\n            title={\n              QuantidadeRegistros > Limite.PDF && handleLimitMessage(Limite.PDF)\n            }\n            placement=\"left\"\n          >\n            <div>\n              <Icons.FilePdfOutlined style={{ fontSize: 20, marginRight: 5 }} />\n              PDF\n            </div>\n          </Tooltip>\n        </Menu.Item>\n      )}\n\n      <Menu.Item key=\"csv\" disabled={QuantidadeRegistros > Limite.CSV}>\n        <Tooltip\n          title={\n            QuantidadeRegistros > Limite.CSV && handleLimitMessage(Limite.CSV)\n          }\n          placement=\"left\"\n        >\n          <div>\n            <Icons.FileExcelOutlined style={{ fontSize: 20, marginRight: 5 }} />\n            CSV\n          </div>\n        </Tooltip>\n      </Menu.Item>\n\n      <Menu.Item key=\"xlsx\" disabled={QuantidadeRegistros > Limite.XLSX}>\n        <Tooltip\n          title={\n            QuantidadeRegistros > Limite.XLSX && handleLimitMessage(Limite.XLSX)\n          }\n          placement=\"left\"\n        >\n          <div>\n            <Icons.FileExcelOutlined style={{ fontSize: 20, marginRight: 5 }} />\n            XLSX\n          </div>\n        </Tooltip>\n      </Menu.Item>\n\n      <Menu.Item key=\"txt\" disabled={QuantidadeRegistros > Limite.TXT}>\n        <Tooltip\n          title={\n            QuantidadeRegistros > Limite.TXT && handleLimitMessage(Limite.TXT)\n          }\n          placement=\"left\"\n        >\n          <div>\n            <Icons.FileTextOutlined style={{ fontSize: 20, marginRight: 5 }} />\n            TXT\n          </div>\n        </Tooltip>\n      </Menu.Item>\n\n      {!'RefatorarRotina' && !moduloFixo && (\n        <Menu.Item key=\"jpg\" disabled={QuantidadeRegistros > Limite.JPG}>\n          <Tooltip\n            title={\n              QuantidadeRegistros > Limite.JPG && handleLimitMessage(Limite.JPG)\n            }\n            placement=\"left\"\n          >\n            <div>\n              <Icons.FileJpgOutlined style={{ fontSize: 20, marginRight: 5 }} />\n              JPG\n            </div>\n          </Tooltip>\n        </Menu.Item>\n      )}\n\n      <Menu.Item key=\"xml\" disabled={QuantidadeRegistros > Limite.XML}>\n        <Tooltip\n          title={\n            QuantidadeRegistros > Limite.XML && handleLimitMessage(Limite.XML)\n          }\n          placement=\"left\"\n        >\n          <div>\n            <Icons.FileTextOutlined style={{ fontSize: 20, marginRight: 5 }} />\n            XML\n          </div>\n        </Tooltip>\n      </Menu.Item>\n\n      {!semURI && (\n        <Menu.Item key=\"uri\">\n          <Icons.LinkOutlined style={{ fontSize: 20, marginRight: 5 }} />\n          URI\n        </Menu.Item>\n      )}\n    </Menu>\n  );\n\n  return (\n    <Container>\n      <Dropdown trigger={['click']} overlay={menuExportacao}>\n        <Button style={{ padding: '0px 10px 0px 10px' }}>\n          Exportar para <Icons.DownOutlined />\n        </Button>\n      </Dropdown>\n    </Container>\n  );\n}\n\nexport default Exportacao;\n","import styled from 'styled-components';\nimport { Typography as AntDesignTypography } from 'antd';\n\nexport const Text = styled(AntDesignTypography.Text)`\n  font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n`;\n\nexport const Link = styled(AntDesignTypography.Link)``;\n\nexport const Title = styled(AntDesignTypography.Title)`\n  &.ant-typography {\n    font-size: ${({ theme, level }) => {\n      let originalFontSize = 0;\n      switch (level) {\n        case 1:\n          originalFontSize = 38;\n          break;\n\n        case 2:\n          originalFontSize = 30;\n          break;\n\n        case 3:\n          originalFontSize = 24;\n          break;\n\n        case 4:\n          originalFontSize = 20;\n          break;\n\n        case 5:\n          originalFontSize = 16;\n          break;\n\n        default:\n          originalFontSize = 38;\n      }\n\n      return `${originalFontSize + 2 * theme.zoomFonte}px`;\n    }};\n  }\n`;\n\nexport const Paragraph = styled(AntDesignTypography.Paragraph)`\n  font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n`;\n\nexport const Typography = {\n  Text,\n  Link,\n  Title,\n  Paragraph,\n};\n","import styled from 'styled-components';\nimport { Button } from 'antd';\nimport * as Icons from '@ant-design/icons';\n\nexport const Icon = styled(Icons.EnvironmentOutlined)`\n  font-size: 14px;\n`;\n\nexport const ImageButton = styled(Button)`\n  && {\n    display: flex;\n    align-items: center;\n    height: 40px;\n    width: 40px;\n    padding: 12px;\n  }\n`;\n","import React from 'react';\nimport { Tooltip } from 'antd';\nimport * as S from './MapButton.styled';\n\nfunction MapButton({ rua, numero, bairro, cidade }) {\n  let query = `${rua || ' '} ${numero || ''} ${bairro || ''} ${cidade || ''}`;\n  query = query.replace(/\\s/g, '+');\n\n  function redirect() {\n    window.open(`https://www.google.com/maps/search/?api=1&query=${query}`);\n  }\n\n  return (\n    <Tooltip title=\"Clique Para Visualizar o Mapa\">\n      <S.ImageButton shape=\"round\" type=\"primary\" onClick={redirect}>\n        <S.Icon />\n      </S.ImageButton>\n    </Tooltip>\n  );\n}\nexport default MapButton;\n","import styled from 'styled-components';\nimport { Layout, Col } from 'antd';\n\nexport const Footer = styled(Layout.Footer)`\n  && {\n    text-align: center;\n  }\n`;\n\nexport const MapButtonWrapper = styled(Col)`\n  margin-top: 5px;\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Row, Col } from 'antd';\nimport { Typography } from '../Typography/Typography.styled';\nimport MapButton from '~/components/MapButton/MapButton.component';\nimport * as S from './Footer.styled';\n\nfunction Footer() {\n  const configuration = useSelector(state => state.configuration);\n  const {\n    corFonteRodape,\n    endereco,\n    bairro,\n    cidade,\n    cep,\n    telefone,\n    atendimento,\n  } = configuration;\n\n  return (\n    <S.Footer>\n      <Row style={{ justifyContent: 'Center' }}>\n        <Col>\n          <Typography.Paragraph style={{ color: corFonteRodape }}>\n            {endereco} - {bairro} - {cidade} - {cep}\n          </Typography.Paragraph>\n\n          <Typography.Paragraph\n            style={{ marginBottom: 0, color: corFonteRodape }}\n          >\n            {telefone} - {atendimento}\n          </Typography.Paragraph>\n        </Col>\n        <S.MapButtonWrapper\n          lg={2}\n          xs={3}\n          style={{\n            display: 'Flex',\n            justifyContent: 'Center',\n            alignItems: 'Center',\n          }}\n        >\n          <MapButton rua={endereco} bairro={bairro} cidade={cidade} />\n        </S.MapButtonWrapper>\n      </Row>\n    </S.Footer>\n  );\n}\n\nexport default Footer;\n","import { Form as FormV3 } from '@ant-design/compatible';\nimport '@ant-design/compatible/assets/index.css';\n\nexport default FormV3;\n","import styled from 'styled-components';\nimport { Layout } from 'antd';\n\nexport const Header = styled(Layout.Header)`\n  && {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 0;\n    height: 160px;\n    background: url(${({ src }) => `'${src}'`}) no-repeat;\n    background-size: 100% 100%;\n    background-position: center center;\n    background-color: #fff;\n  }\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport * as S from './Header.styled';\n\nfunction Header({ children }) {\n  const banner = useSelector(state => state.configuration.banner);\n\n  return <S.Header src={banner}>{children}</S.Header>;\n}\n\nexport default Header;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Icon as AntDesignIcon } from 'antd';\n\nexport const Icon = styled(props => <AntDesignIcon {...props} />)`\n  && {\n    padding: ${props => props.padding}px;\n    padding-left: ${props => props.pl}px;\n    padding-right: ${props => props.pr}px;\n    font-size: ${props => props.fontSize}px;\n    color: ${props => props.color};\n  }\n`;\n","import styled from 'styled-components';\nimport { Typography } from '../Typography/Typography.styled';\n\nexport const Paragraph = styled(Typography.Paragraph)`\n  && {\n    color: ${({ color }) => color};\n    font-weight: bold;\n    font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n  }\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport * as S from './SectionTitle.styled';\n\nfunction SectionTitle({ titulo, icon }) {\n  const corTema = useSelector(state => state.configuration.corTema);\n\n  return (\n    <S.Paragraph color={corTema}>\n      {icon}\n      {titulo}\n    </S.Paragraph>\n  );\n}\n\nexport default SectionTitle;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n  margin-bottom: 10px;\n  background: rgba(255, 255, 255, 0.9);\n`;\n\nexport const IconSection = styled.div`\n  margin-right: 5px;\n`;\n\nexport const Content = styled.div`\n  padding: 10px;\n  font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n`;\n","import React from 'react';\nimport SectionTitle from '../SectionTitle/SectionTitle.component';\nimport { Container, Content, IconSection } from './style';\n\nfunction Informacao({ titulo, informacao, icon}) {\n  return (\n    <>\n      <SectionTitle titulo={titulo} icon={icon} />\n      <Container>\n        <Content dangerouslySetInnerHTML={{ __html: informacao }} />\n      </Container>\n    </>\n  );\n}\n\nexport default Informacao;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n  margin-bottom: 10px;\n  background: rgba(255, 255, 255, 0.9);\n`;\n\nexport const IconSection = styled.div`\n  margin-right: 5px;\n`;\n\nexport const Content = styled.div`\n  padding: 10px;\n  font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n\n  & #highlighted {\n    font-style: normal;\n    background: yellow;\n  }\n`;\n","import React from 'react';\r\n\r\nexport default function RemoveDiacritic(stringValue) {\r\n\r\n  return stringValue\r\n    .toLowerCase()\r\n    .normalize('NFD')\r\n    .replace(/\\p{Diacritic}/gu, '');\r\n}\r\n","import React, {\n  useEffect,\n  useState,\n  forwardRef,\n  useImperativeHandle,\n} from 'react';\nimport SectionTitle from '../SectionTitle/SectionTitle.component';\nimport { Container, Content } from './style';\nimport RemoveDiacritic from '../../hooks/removeDiacritic';\n\nconst InformacaoFilter = forwardRef(\n  ({ titulo, informacao, icon, setSearchValue }, ref) => {\n    const [html, setHtml] = useState();\n    const tagsPermitidas = ['LI', 'P', 'BODY'];\n    const regexToRemoveHtmlTag = /(<([^>]+)>)/gi;\n\n    useImperativeHandle(ref, () => ({\n      filterElements(value) {\n        const buscaSemAcentos = RemoveDiacritic(value);\n        if (buscaSemAcentos) {\n\n          const newDocumentHTML = new DOMParser().parseFromString(\n            informacao,\n            'text/html'\n          );\n\n          const elementos = newDocumentHTML.body.getElementsByTagName('*');\n\n          const hasMatchWord = string => {\n            return RemoveDiacritic(string)?.indexOf(buscaSemAcentos) !== -1;\n          };\n\n          let ultimoElementoPermitido; \n\n          for(let i = 0; i < elementos.length; i++) {\n            let elemento = elementos[i];\n            \n            let elementoSemAcento = elemento.innerHTML.replace(regexToRemoveHtmlTag, '');\n            elementoSemAcento = RemoveDiacritic(elementoSemAcento);\n            \n            let IndexFound = hasMatchWord(elementoSemAcento);\n            let isTagPermitida = tagsPermitidas.includes(elemento.tagName);\n\n            //Nesse if verificamos se encontramos o termo na busca e se ele é uma das tags permitidas definidas nas consts no começo\n            //da classe, caso encontrado ele define o display como block, caso encontre e não seja uma tag permitida, definimos como\n            // '', e caso não encontre colocamos 'none'.\n\n            if(IndexFound && isTagPermitida) {\n              ultimoElementoPermitido = elemento;\n              elemento.style.display= \"block\";\n            }\n            \n            else if(IndexFound || (!isTagPermitida && ultimoElementoPermitido)) \n              elemento.style.display= \"\";\n            \n            else {\n              elemento.style.display= \"none\";\n            }\n          };\n\n        const novoHtml = newDocumentHTML.body.innerHTML;\n        return setHtml(novoHtml);\n        } else {\n          setSearchValue('');\n        }\n      },\n      onChangeInfo(e) {\n        setSearchValue(e.target.value);\n        if (!e.target.value) {\n          setHtml(informacao);\n        }\n      },\n    }));\n\n    useEffect(() => {\n      setSearchValue('');\n      setHtml(informacao);\n    }, [informacao]);\n\n    return (\n      <>\n        <SectionTitle titulo={titulo} icon={icon} />\n        <Container>\n          <Content dangerouslySetInnerHTML={{ __html: html }} />\n        </Container>\n      </>\n    );\n  }\n);\n\nexport default InformacaoFilter;\n","import React from 'react';\nimport { ConfigProvider } from 'antd';\nimport ptBR from 'antd/es/locale/pt_BR';\n\nfunction Internationalization({ children }) {\n  return <ConfigProvider locale={ptBR}>{children}</ConfigProvider>;\n}\n\nexport default Internationalization;\n","import * as S from './Layout.styled';\n\nexport default S.Layout;\n","import styled from 'styled-components';\nimport { Layout as AntDesignLayout } from 'antd';\n\nexport const Layout = styled(AntDesignLayout)`\n  min-height: 100vh;\n  overflow-y: hidden;\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Spin } from 'antd';\n\nfunction Loader({ children }) {\n  const count = useSelector(state => state.loader.count);\n\n  return (\n    <Spin size=\"large\" tip=\"Carregando...\" spinning={count > 0} delay={500}>\n      {children}\n    </Spin>\n  );\n}\n\nexport default Loader;\n","import styled from 'styled-components';\n\nexport const Logo = styled.img`\n  display: block;\n  height: 60px;\n  margin: 16px auto;\n  cursor: pointer;\n`;\n","/* eslint-disable react/self-closing-comp */\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport * as S from './Logo.styled';\n\nfunction Logo({ history: { push } }) {\n  const brasao = useSelector(state =>\n    state.configuration.highContrast\n      ? state.configuration.brasaoPB\n      : state.configuration.brasao\n  );\n\n  function onClick() {\n    push('/');\n  }\n\n  return (\n    <S.Logo\n      onKeyDown={event => {\n        if (event.keyCode === 13) onClick();\n      }}\n      onClick={onClick}\n      tabIndex={0}\n      src={brasao}\n      alt=\"Brasão\"\n    ></S.Logo>\n  );\n}\n\nexport default withRouter(Logo);\n","import styled, { createGlobalStyle } from 'styled-components';\nimport { Map as LeafletMap } from 'react-leaflet';\nimport { Card } from '~/components';\n\nexport const Map = styled(LeafletMap)`\n  width: 100%;\n  height: 459px;\n  z-index: 0;\n`;\n\nexport const PopupStyles = createGlobalStyle`\n  .leaflet-zoom-animated{\n    bottom: 35px !important;\n  }\n`;\n\nexport const PopupLink = styled.a`\n  font-size: 14px;\n  text-decoration: underline;\n  &:hover{\n    text-decoration: underline;\n  }\n`;\n\nexport const MapTextCard = styled(Card)`\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  height: 459px;\n`;\n","import React, { useEffect, useState } from 'react';\nimport { Icon } from 'leaflet';\nimport { TileLayer, Marker, Popup } from 'react-leaflet';\nimport markerIconPng from 'leaflet/dist/images/marker-icon.png';\nimport Geocode from 'react-geocode';\nimport * as S from './Map.styled';\nimport { geocodeKey } from '~/utils/keys';\n\nGeocode.setApiKey(geocodeKey);\nGeocode.setLanguage('cs');\nGeocode.setRegion('br');\n\nfunction MapContainer({ rua, numero, bairro, cidade, corFonte }) {\n  const discardCompleFromRua = rua?.split('-')[0];\n  let query = `${discardCompleFromRua || ' '} ${numero || ''} ${bairro ||\n    ''} ${cidade || ''}`;\n  query = query.replace(/\\s/g, '+');\n\n  function redirect() {\n    window.open(`https://www.google.com/maps/search/?api=1&query=${query}`);\n  }\n\n  const [data, setData] = useState(false);\n\n  useEffect(() => {\n    Geocode.fromAddress(\n      `${discardCompleFromRua || ' '} ${bairro || ' '} ${cidade || ' '}`\n    ).then(\n      response => {\n        setData(response.results[0].geometry.location);\n      },\n      error => {\n        setData(null);\n      }\n    );\n  }, []);\n\n  const loadMap = () => {\n    if (data) {\n      return (\n        <S.Map center={data} zoom={17}>\n          <TileLayer\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          />\n          <Marker\n            position={data}\n            icon={\n              new Icon({\n                iconUrl: markerIconPng,\n                iconSize: [25, 41],\n                iconAnchor: [13, 40],\n              })\n            }\n          >\n            <S.PopupStyles />\n            <Popup>\n              <S.PopupLink onClick={redirect} style={{ color: corFonte }}>\n                {rua}\n              </S.PopupLink>\n            </Popup>\n          </Marker>\n        </S.Map>\n      );\n    }\n\n    if (data === null) {\n      return <S.MapTextCard>Localização não encontrada.</S.MapTextCard>;\n    }\n\n    do {\n      return <S.MapTextCard>Carregando</S.MapTextCard>;\n    } while (!data);\n  };\n\n  return <>{loadMap()}</>;\n}\n\nexport default MapContainer;\n","export const geocodeKey = 'AIzaSyAHkNa_EIXh3UTRwtbJxtbHxc3mL2Cp47g';\n","import React from 'react';\nimport Icons from '../../components/Icons/Icons.component';\n\nexport const iconEnum = [\n  {\n    name: 'question-circle',\n    value: style => <Icons.QuestionCircleOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'question',\n    value: style => <Icons.QuestionOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'clock-circle',\n    value: style => <Icons.ClockCircleOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'exclamation',\n    value: style => <Icons.ExclamationOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'message',\n    value: style => <Icons.MessageOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'bulb',\n    value: style => <Icons.BulbOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'bank',\n    value: style => <Icons.BankOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'calendar',\n    value: style => <Icons.CalendarOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'file-text',\n    value: style => <Icons.FileTextOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'file-done',\n    value: style => <Icons.FileDoneOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'flag',\n    value: style => <Icons.FlagOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'home',\n    value: style => <Icons.HomeOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'mail',\n    value: style => <Icons.MailOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'setting',\n    value: style => <Icons.SettingOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'schedule',\n    value: style => <Icons.ScheduleOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'smile',\n    value: style => <Icons.SmileOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'tags',\n    value: style => <Icons.TagsOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'wallet',\n    value: style => <Icons.WalletOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'dollar',\n    value: style => <Icons.DollarOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'link',\n    value: style => <Icons.LinkOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'shopping-cart',\n    value: style => <Icons.ShoppingCartOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'shopping',\n    value: style => <Icons.ShoppingOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'team',\n    value: style => <Icons.TeamOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'check',\n    value: style => <Icons.CheckOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'close',\n    value: style => <Icons.CloseOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'warning',\n    value: style => <Icons.WarningOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'stop',\n    value: style => <Icons.StopOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'delete',\n    value: style => <Icons.DeleteOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'area-chart',\n    value: style => <Icons.AreaChartOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'alert',\n    value: style => <Icons.AlertOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'api',\n    value: style => <Icons.ApiOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'cloud',\n    value: style => <Icons.CloudOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'contacts',\n    value: style => <Icons.ContactsOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'container',\n    value: style => <Icons.ContainerOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'idcard',\n    value: style => <Icons.IdcardOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'global',\n    value: style => <Icons.GlobalOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'safety',\n    value: style => <Icons.SafetyOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'notification',\n    value: style => <Icons.NotificationOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'environment',\n    value: style => <Icons.EnvironmentOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'ordered-list',\n    value: style => <Icons.OrderedListOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'snippets',\n    value: style => <Icons.SnippetsOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'control',\n    value: style => <Icons.ControlOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'compass',\n    value: style => <Icons.CompassOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'dashboard',\n    value: style => <Icons.DashboardOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'api-requests',\n    value: style => <Icons.ClusterOutlined style={style} />,\n    filled: 'outlined',\n  },\n  {\n    name: 'project',\n    value: style => <Icons.ProjectOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'profile',\n    value: style => <Icons.ProfileOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'info-circle',\n    value: style => <Icons.InfoCircleOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'apartment',\n    value: style => <Icons.ApartmentOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'calculator',\n    value: style => <Icons.CalculatorOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'file-search',\n    value: style => <Icons.FileSearchOutlined style={style} />,\n    outlined: 'outlined',\n  },\n  {\n    name: 'info-circle-filled',\n    value: style => <Icons.InfoCircleFilled style={style} />,\n    filled: 'filled',\n  },\n  {\n    name: 'youtube',\n    value: style => <Icons.YoutubeFilled style={style} />,\n    filled: 'filled',\n  },\n  {\n    name: 'file-pdf',\n    value: style => <Icons.FilePdfOutlined style={style} />,\n    filled: 'filled',\n  },\n  {\n    name: 'file-img',\n    value: style => <Icons.FileImageOutlined style={style} />,\n    filled: 'filled',\n  },\n  {\n    name: 'file-excel',\n    value: style => <Icons.FileExcelOutlined style={style} />,\n    filled: 'filled',\n  },\n  {\n    name: 'line-chart',\n    value: style => <Icons.LineChartOutlined style={style} />,\n    filled: 'outlined',\n  },\n  {\n    name: 'folder-open',\n    value: style => <Icons.FolderOpenOutlined  style={style} />,\n    filled: 'outlined',\n  },\n];\n","export function getUrlSemDominio() {\n  const url = window.location.href;\n\n  return url.slice(url.indexOf('#') + 1);\n}\n\nexport function getUrlComDominio() {\n  return window.location.href;\n}\n\nexport function getUrlDominio() {\n  const url = window.location.href;\n\n  return url.split('#')[0];\n}\n\nexport default { getUrlSemDominio, getUrlComDominio };\n","import styled from 'styled-components';\nimport { Input as AntDesignInput } from 'antd';\n\nexport const Input = styled(AntDesignInput)``;\n","import styled, { createGlobalStyle, css } from 'styled-components';\nimport { Menu as AntDesignMenu } from 'antd';\nimport { Input } from '../Input/Input.styled';\n\nconst { Search } = Input;\n\nexport const Menu = styled(AntDesignMenu)`\n  height: calc(100svh - 156px);\n  overflow-y: auto;\n  overflow-x: hidden;\n\n  // Adicionando padding no último item do menu\n  .ant-menu-item:last-child,\n  .ant-menu-submenu:last-child {\n    margin-bottom: 24px !important;\n    padding-bottom: 24px !important;\n  }\n`;\n\nconst menuTitulo = css`\n  font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n  display: inline-block;\n  word-wrap: break-word;\n  white-space: break-spaces;\n  line-height: 1.6;\n`;\n\nexport const SubMenu = styled(AntDesignMenu.SubMenu)`\n  .menu-titulo {\n    ${menuTitulo}\n  }\n\n  .ant-menu-submenu-arrow {\n    display: none;\n  }\n\n  .ant-menu-submenu-title {\n    padding: 0px 20px;\n  }\n\n  .anticon-arrow-right {\n    border: 1px solid;\n    border-radius: 50%;\n    padding: 3px;\n\n    svg {\n      width: 12px;\n      height: 12px;\n      cursor: pointer;\n    }\n  }\n`;\n\nexport const MenuItem = styled(AntDesignMenu.Item)`\n  .menu-titulo {\n    ${menuTitulo}\n  }\n`;\n\nexport const SearchMenu = styled(Search)`\n  margin: 16px;\n  display: flex;\n  width: auto;\n`;\n\nexport const MenuStyles = createGlobalStyle`\n\n  .ant-menu-title-content, .ant-menu-item-active {\n    color: #fff !important;\n    text-decoration-color: none !important;\n    text-emphasis-color: none !important;\n  }\n\n  .ant-menu-item:hover, .ant-menu-submenu-open {\n        text-decoration: underline;\n  }\n\n  .ant-menu-dark .ant-menu-inline. ant-menu-sub {\n    box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.45);\n  }\n\n  .ant-layout-sider-children {\n    position: fixed;\n    width:inherit;\n  }\n\n  .ant-menu-vertical > .ant-menu-submenu > .ant-menu-submenu-title{\n    line-height:normal;\n    height:auto;\n    margin: 12px 0px;\n    text-wrap: auto;\n  }\n\n  .ant-menu-inline-collapsed-tooltip { \n    display: none;\n  }\n\n  .ant-tooltip { \n    opacity: 0.8; \n  }\n`;\n","/* eslint-disable no-restricted-syntax */\n/* eslint-disable no-shadow */\n/* eslint-disable react/jsx-no-bind */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { useState } from 'react';\nimport { withRouter, useHistory } from 'react-router-dom';\nimport { iconEnum } from '~/modules/Helper/iconEnum';\nimport { TIPO_MENU_PORTAL } from '~/modules/Helper/tipoMenuPortal';\nimport { useMenus } from '~/contexts/menu.context';\nimport { useSelector } from 'react-redux';\nimport { getUrlDominio } from '~/modules/Helper/getUrl-helper';\n\nimport * as S from './Menu.styled';\nimport Tooltip from '../Tooltip/Tooltip.component';\nimport Icons from '../Icons/Icons.component';\n\nfunction Menu({ openKeys, setOpenKeys, setCollapsed, collapsed }) {\n  const { menus, setMenuSelecionado } = useMenus();\n  const { highContrast } = useSelector(state => state.configuration);\n  const [searchValue, setSearchValue] = useState('');\n  const [searchResult, setSearchResult] = useState([]);\n  const history = useHistory();\n\n  function handleTitleClick(name, idMenuItem) {\n\n    // Função auxiliar para encontrar o item e seus níveis\n    const findItemAndLevels = (items, targetId, levels = []) => {\n      for (const item of items) {\n        if (item.Id === targetId) {\n          return [...levels, item.Titulo];\n        }\n\n        if (item.SubItens && item.SubItens.length > 0) {\n          const found = findItemAndLevels(item.SubItens, targetId, [\n            ...levels,\n            item.Titulo,\n          ]);\n          if (found) return found;\n        }\n      }\n      return null;\n    };\n\n    // Encontra todos os níveis até o item clicado\n    const menuLevels = findItemAndLevels(menus, idMenuItem);\n\n    if (menuLevels) {\n      // Se encontrou o item, atualiza openKeys\n      if (openKeys.includes(name)) {\n        // Se o item já está aberto, mantém apenas os níveis até ele\n        setOpenKeys(openKeys.filter(key => menuLevels.includes(key)));\n      } else {\n        // Se o item está fechado, mantém apenas os níveis necessários\n        const newOpenKeys = openKeys.filter(key => menuLevels.includes(key));\n        setOpenKeys([...newOpenKeys, name]);\n      }\n    } else {\n      // 1º nivel é aqui\n      setOpenKeys([name]);\n    }\n  }\n\n  function formatUrl(url) {\n    if (!url.startsWith('http://') && !url.startsWith('https://')) {\n      return `http://${url}`;\n    }\n    return url;\n  }\n\n  function handleRedirect(tipoMenuPortal, uri, subItens) {\n    if (tipoMenuPortal === TIPO_MENU_PORTAL.EXTERNO) {\n      // externo\n      let newUri = '';\n      if (subItens !== null) newUri = formatUrl(uri);\n      else newUri = getUrlDominio() + uri;\n      window.open(newUri);\n    } else {\n      history.replace(`/`);\n      history.push(uri);\n    }\n    setOpenKeys([]);\n  }\n\n  function tratarTextoBusca(texto) {\n    return texto\n      .toLowerCase()\n      .normalize('NFD')\n      .replace(/[\\u0300-\\u036f]/g, '');\n  }\n\n  function handleSearchChange(event) {\n    const { value } = event.target;\n    setSearchValue(value);\n\n    if (value === '') {\n      setSearchResult([]);\n      setOpenKeys([]);\n      return;\n    }\n\n    const searchTerm = tratarTextoBusca(value);\n\n    const findMatchingSubItems = (subItems, searchTerm) => {\n      let matchedList = [];\n\n      subItems.forEach(subItem => {\n        const subItemTitle = tratarTextoBusca(subItem.Titulo);\n\n        if (subItemTitle.includes(searchTerm)) {\n          matchedList.push(subItem);\n        }\n\n        if (subItem.SubItens && subItem.SubItens.length > 0) {\n          matchedList = matchedList.concat(\n            findMatchingSubItems(subItem.SubItens, searchTerm)\n          );\n        }\n      });\n\n      return matchedList;\n    };\n\n    const results = menus.reduce((acc, menu) => {\n      const {\n        Id,\n        Titulo,\n        TipoMenuPortal,\n        SubItens,\n        Icone,\n        URI,\n        ChaveModulo,\n      } = menu;\n\n      const menuTitle = tratarTextoBusca(Titulo);\n      let matchFound = menuTitle.includes(searchTerm);\n      let matchedList = [];\n\n      if (SubItens && SubItens.length > 0) {\n        matchedList = findMatchingSubItems(SubItens, searchTerm);\n        if (matchedList.length > 0) {\n          matchFound = true;\n        }\n      } else if (menuTitle.includes(searchTerm)) {\n        matchFound = true;\n        matchedList.push(menu);\n      }\n\n      if (matchFound) {\n        if (matchedList.length > 0) {\n          matchedList.forEach(matchedItem => acc.push(matchedItem));\n        } else {\n          acc.push({\n            Id,\n            Titulo,\n            TipoMenuPortal,\n            SubItens,\n            Icone,\n            URI,\n            ChaveModulo,\n          });\n        }\n      }\n\n      return acc;\n    }, []);\n\n    setSearchResult(results);\n  }\n\n  function renderMenuItem(menu) {\n    const { Titulo, TipoMenuPortal, SubItens, Icone, URI, IdMenuItem } = menu;\n\n    const handleSubMenuTitleClick = () => {\n      if (URI) {\n        handleRedirect(TipoMenuPortal, URI, SubItens);\n        setMenuSelecionado(menu);\n      }\n    };\n\n    const handleSubMenuTitleClick2 = () => {\n      if (URI) {\n        handleRedirect(TipoMenuPortal, URI, SubItens);\n        setMenuSelecionado(menu);\n      }\n    };\n\n    const handleMenuClick = () => {\n      handleRedirect(TipoMenuPortal, URI, SubItens);\n      setMenuSelecionado(menu);\n      if (setCollapsed) setCollapsed(false);\n    };\n\n    const handleSubMenuIconClick = () => {\n      handleTitleClick(Titulo, IdMenuItem);\n    };\n\n    const TitleMenu = () => <span>{Titulo}</span>;\n\n    if (SubItens.length > 0) {\n      return (\n        <S.SubMenu\n          key={Titulo}\n          tabIndex={0}\n          title={\n            <Tooltip\n              title={`⌂ / ${menu.Breadcrumb}`}\n              placement=\"top\"\n              overlayClassName={\n                !collapsed ? 'ant-menu-inline-collapsed-tooltip' : ''\n              }\n            >\n              <div\n                onMouseEnter={handleSubMenuIconClick}\n                onClick={handleSubMenuTitleClick}\n                style={{\n                  display: 'flex',\n                  alignItems: 'center',\n                  flexDirection: 'row',\n                  gap: 12,\n                  cursor: `${!menu.URI && 'default'}`,\n                }}\n              >\n                {Icone && iconEnum.find(x => x.name === Icone)?.value()}\n                <span style={{ flexGrow: 1, margin: 0 }}>\n                  <TitleMenu />\n                </span>\n                <div onClick={handleSubMenuIconClick}>\n                  <Icons.ArrowRightOutlined />\n                </div>\n              </div>\n            </Tooltip>\n          }\n        >\n          {SubItens.map(subItem => renderMenuItem({ Titulo, ...subItem }))}\n        </S.SubMenu>\n      );\n    }\n    return (\n      <Tooltip\n        title={`⌂ / ${menu.Breadcrumb}`}\n        placement=\"top\"\n        overlayClassName={!collapsed ? 'ant-menu-inline-collapsed-tooltip' : ''}\n      >\n        <S.MenuItem\n          key={Titulo}\n          onMouseEnter={handleSubMenuIconClick}\n          onClick={handleSubMenuTitleClick2}\n          tabIndex={0}\n          icon={Icone && iconEnum.find(x => x.name === Icone)?.value()}\n          style={!collapsed ? { padding: '0px 20px' } : {}}\n          onKeyDown={event => {\n            if (event.key === 'Enter') {\n              event.preventDefault();\n              handleMenuClick();\n            }\n          }}\n        >\n          <TitleMenu />\n        </S.MenuItem>\n      </Tooltip>\n    );\n  }\n\n  const handleMouseLeave = () => {\n    setOpenKeys([]); // Fecha todos os submenus\n  };\n\n  return (\n    <>\n      <S.MenuStyles />\n      {!collapsed ? (\n        <Tooltip title=\"Pesquisar itens do menu\">\n          <S.SearchMenu\n            placeholder=\"Pesquisar\"\n            maxLength={50}\n            value={searchValue}\n            type=\"text\"\n            onChange={handleSearchChange}\n          />\n        </Tooltip>\n      ) : null}\n      <S.Menu\n        theme={!highContrast ? 'dark' : 'light'}\n        mode=\"vertical\"\n        inlineIndent={16}\n        forceSubMenuRender\n        openKeys={openKeys}\n        onMouseLeave={handleMouseLeave}\n      >\n        {menus && searchResult.length > 0\n          ? searchResult.map(renderMenuItem)\n          : menus.map(renderMenuItem)}\n      </S.Menu>\n    </>\n  );\n}\n\nexport default withRouter(Menu);\n","import styled from 'styled-components';\nimport { Modal as ModalAntDesign } from 'antd';\n\nexport const Modal = styled(ModalAntDesign).attrs(props => ({\n  bodyStyle: {\n    maxHeight: props.maxHeight,\n    minHeight: props.minHeight,\n    overflow: 'auto',\n  },\n}))`\n  .ant-modal-title {\n    color: ${({ corFonteTituloTelas }) => `${corFonteTituloTelas}`};\n    font-size: ${({ theme }) => `${16 + 2 * theme.zoomFonte}px`};\n  }\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport * as S from './Modal.styled';\n\nfunction Modal({\n  title,\n  width,\n  visible,\n  onCancel,\n  maxHeight,\n  minHeight,\n  children,\n}) {\n  const configuration = useSelector(state => state.configuration);\n  const { corFonteTituloTelas } = configuration;\n\n  return (\n    <S.Modal\n      title={title}\n      width={width}\n      visible={visible}\n      onCancel={onCancel}\n      maxHeight={maxHeight}\n      destroyOnClose\n      maskClosable={false}\n      footer={null}\n      minHeight={minHeight}\n      corFonteTituloTelas={corFonteTituloTelas}\n    >\n      {children}\n    </S.Modal>\n  );\n}\n\nexport default Modal;\n\nModal.defaultProps = {\n  width: 520,\n  visible: false,\n  maxHeight: '70vh',\n};\n\nModal.confirm = S.Modal.confirm;\n","import { Row } from 'antd';\n\nexport default Row;\n","import styled from 'styled-components';\nimport { Layout } from 'antd';\n\nexport const Sider = styled(Layout.Sider)`\n  min-height: 100vh;\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport * as S from './Sider.styled';\n\nfunction Sider({ collapsed, children }) {\n  const corTema = useSelector(state => state.configuration.corTema);\n\n  return (\n    <S.Sider trigger={null} width={256} collapsed={collapsed} collapsible>\n      {children}\n    </S.Sider>\n  );\n}\n\nexport default Sider;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { ThemeProvider } from 'styled-components';\n\nfunction Theme({ children }) {\n  const { highContrast, zoomFonte } = useSelector(state => state.configuration);\n\n  return (\n    <ThemeProvider theme={{ highContrast, zoomFonte }}>\n      {children}\n    </ThemeProvider>\n  );\n}\n\nexport default Theme;\n","import * as S from './Tag.styled';\n\nexport default S.Tag;\n","import styled from 'styled-components';\nimport { Tag as TagComponent } from 'antd';\n\nexport const Tag = styled(TagComponent)``;\n","import styled from 'styled-components';\nimport { Typography } from 'antd';\n\nexport const Title = styled(Typography.Title)`\n  && {\n    display: inline;\n    font-size: ${({ theme }) => `${22 + 2 * theme.zoomFonte}px`};\n    color: ${({ color }) => color};\n  }\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport * as S from './Title.styled';\n\nfunction Title() {\n  const configuration = useSelector(state => state.configuration);\n  const { corFonteTituloPortal, titulo } = configuration;\n\n  return <S.Title color={corFonteTituloPortal}>{titulo}</S.Title>;\n}\n\nexport default Title;\n","import * as S from './Typography.styled';\n\nexport default S.Typography;\n","import * as S from './Input.styled';\n\nexport default S.Input;\n","import * as S from './InputNumber.styled';\n\nexport default S.InputNumber;\n","import styled from 'styled-components';\nimport { InputNumber as InputNumero } from 'antd';\n\nexport const InputNumber = styled(InputNumero)`\n  && .ant-input-number-handler-wrap {\n    display: none;\n  }\n`;\n","import * as S from './Select.styled';\n\nexport default S.Select;\n","import styled from 'styled-components';\nimport { Select as AntDesignSelect } from 'antd';\n\nexport const Select = styled(AntDesignSelect)``;\n","import styled from 'styled-components';\n// eslint-disable-next-line import/no-cycle\nimport { Button } from '../index';\n\nexport const SocialsContainer = styled.div`\n  z-index: 999;\n  position: fixed;\n  display: flex;\n  right: 10px;\n  bottom: 0;\n  flex-direction: column;\n`;\n\nexport const ButtonStyled = styled(Button)`\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: ${({ background }) => background} !important;\n  border: none !important;\n  margin-bottom: 10px;\n  width: 32.89px;\n  height: 32.89px;\n  border-radius: 12px !important;\n  box-shadow: 0px 5px 11px -2px rgba(0, 0, 0, 0.2),\n    0px 4px 12px -7px rgba(0, 0, 0, 0.2) !important;\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\n// eslint-disable-next-line import/no-cycle\nimport { Icons } from '../index';\n\nexport function SocialsList() {\n  const {\n    RazaoSocial,\n    EmailSocials,\n    FacebookSocials,\n    InstagramSocials,\n    LinkedInSocials,\n    TwitterSocials,\n    WhatsAppSocials,\n    YoutubeSocials,\n  } = useSelector(state => state?.configuration);\n\n  function retornaWpp() {\n    const { input } = WhatsAppSocials?.replace(/\\D/g, '').match(\n      /(\\d{0,3})(\\d{0,3})(\\d{0,4})/\n    );\n    return input;\n  }\n\n  const ArraySocials = [\n    {\n      icon: (\n        <Icons.TwitterOutlined style={{ fontSize: '20px', marginTop: '6px' }} />\n      ),\n      link: TwitterSocials || null,\n      ToolTip: 'Twitter',\n      background: '#1DA1F2',\n    },\n    {\n      icon: (\n        <Icons.FacebookFilled style={{ fontSize: '20px', marginTop: '6px' }} />\n      ),\n      link: FacebookSocials || null,\n      ToolTip: 'Facebook',\n      background: '#1877F2',\n    },\n    {\n      icon: (\n        <Icons.InstagramOutlined\n          style={{ fontSize: '20px', marginTop: '5px' }}\n        />\n      ),\n      link: InstagramSocials || null,\n      ToolTip: 'Instagram',\n      background:\n        'linear-gradient(45deg, #f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%)',\n    },\n    {\n      icon: (\n        <Icons.WhatsAppOutlined\n          style={{ fontSize: '20px', marginTop: '5px' }}\n        />\n      ),\n      link:\n        (WhatsAppSocials &&\n          retornaWpp() &&\n          `https://wa.me/55${retornaWpp()}/?text=Olá ${RazaoSocial}. Gostaria de informações sobre o Portal de Transparência.`) ||\n        null,\n      ToolTip: 'WhatsApp',\n      background: '#1A9447',\n    },\n    {\n      icon: (\n        <Icons.YoutubeFilled style={{ fontSize: '20px', marginTop: '6px' }} />\n      ),\n      link: YoutubeSocials || null,\n      ToolTip: 'Youtube',\n      background: '#CD201F',\n    },\n    {\n      icon: (\n        <Icons.LinkedinFilled style={{ fontSize: '20px', marginTop: '6px' }} />\n      ),\n      link: LinkedInSocials || null,\n      ToolTip: 'LinkedIn',\n      background: '#0A66C2',\n    },\n    {\n      mail: true,\n      icon: <Icons.MailFilled style={{ fontSize: '20px', marginTop: '6px' }} />,\n      link: (EmailSocials && `mailto:${EmailSocials}`) || null,\n      ToolTip: 'E-mail',\n      background: '#0061FF',\n    },\n  ];\n  return ArraySocials;\n}\n","import React from 'react';\nimport MailGo from 'mailgo';\n// eslint-disable-next-line import/no-cycle\nimport * as S from './Socials.styled';\n// eslint-disable-next-line import/no-cycle\nimport { Tooltip } from '../index';\nimport { SocialsList } from './SocialsList';\n\nexport default function Socials() {\n  MailGo();\n  return (\n    <S.SocialsContainer>\n      {SocialsList &&\n        SocialsList().map(\n          item =>\n            item.link && (\n              <Tooltip title={item.ToolTip} placement=\"leftTop\">\n                <S.ButtonStyled\n                  href={item?.mail ? item.link : null}\n                  onClick={\n                    !item.mail ? () => window.open(item.link, '_blank') : null\n                  }\n                  background={item?.background}\n                  type=\"primary\"\n                  color=\"#fff\"\n                  icon={item?.icon}\n                />\n              </Tooltip>\n            )\n        )}\n    </S.SocialsContainer>\n  );\n}\n","import styled from 'styled-components';\nimport { Table as AntDesignTable } from 'antd';\n\nexport const Table = styled(AntDesignTable)`\n  .ant-table-thead > tr > th.ant-table-column-has-sorters:hover {\n    opacity: 0.9;\n  }\n  .ant-table-tbody > tr.ant-table-row-level-0:hover > td {\n    background: unset;\n    opacity: 0.9;\n  }\n  .ant-table-thead > tr > th,\n  .ant-table-tbody > tr > td,\n  .ant-table tfoot > tr > th,\n  .ant-table tfoot > tr > td {\n    padding: 6px 6px;\n  }\n  .ant-table-thead th.ant-table-column-has-sorters {\n    padding: 14px 14px;\n  }\n  .ant-empty-img-simple-g {\n    stroke: #d9d9d9;\n  }\n  .ant-empty-img-simple-path {\n    fill: #fafafa;\n  }\n  .ant-empty-description,\n  .ant-empty-img-simple-ellipse {\n    color: #c9c9c9;\n  }\n\n  .ant-table-column-sorters-with-tooltip {\n    text-align: center;\n\n    .ant-table-column-title,\n    .ant-table-cell,\n    .btn-chave-visao,\n    .btn-link-externo {\n      font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n    }\n  }\n`;\n\nexport const TableResize = styled.section`\n  @media only screen and (max-width: 1200px) {\n    .ant-table-expanded-row-fixed {\n      width: auto !important;\n    }\n\n    .ant-table-placeholder td {\n      padding-left: 0px !important;\n    }\n\n    .ant-table {\n      background: #ffff !important;\n    }\n\n    .ant-pagination {\n      overflow-wrap: break-word;\n      flex-wrap: wrap;\n    }\n\n    div.dates {\n      flex-wrap: wrap;\n    }\n\n    table,\n    thead,\n    tbody,\n    th,\n    td,\n    tr {\n      display: block !important;\n    }\n\n    table {\n      width: auto !important;\n    }\n\n    thead tr {\n      position: absolute !important;\n      top: -9999px !important;\n      left: -9999px !important;\n    }\n\n    tr:first-child {\n      margin-top: -2px;\n    }\n\n    tr {\n      border: 1px solid #ccc !important;\n      border-bottom: 2px solid #eee !important;\n    }\n\n    tr:nth-child(even) {\n      background: ${({ theme }) => `${theme.corFundoGrid}`} !important;\n\n      & td.ant-table-cell {\n        background: ${({ theme }) => `${theme.corFundoGrid}`} !important;\n      }\n\n      & td.ant-table-column-sort {\n        background: ${({ theme }) => `${theme.corFundoGrid}`} !important;\n      }\n    }\n\n    tr:nth-child(odd) {\n      background: ${({ theme }) => `${theme.corFundoGrid}70`} !important;\n\n      & td.ant-table-cell {\n        background: ${({ theme }) => `${theme.corFundoGrid}70`} !important;\n      }\n\n      & td.ant-table-column-sort {\n        background: ${({ theme }) => `${theme.corFundoGrid}70`} !important;\n      }\n    }\n\n    td {\n      border: none !important;\n      border-bottom: 1px solid #eee !important;\n      min-height: 1.25em !important;\n      white-space: normal !important;\n      text-align: left !important;\n      display: flex !important;\n    }\n\n    td:before {\n      width: 45% !important;\n      padding-right: 10px !important;\n      font-weight: bold !important;\n      color: #006b76 !important;\n    }\n\n    td:before {\n      content: attr(data-title);\n    }\n\n    button.btn-chave-visao {\n      padding: 0 !important;\n      height: auto !important;\n      flex: 1 !important;\n      white-space: normal !important;\n    }\n\n    td > span {\n      width: 50% !important;\n    }\n  }\n\n  @media only screen and (max-width: 820px) and (min-width: 700px) {\n    ul.ant-pagination {\n      justify-content: center !important;\n    }\n\n    ul.ant-pagination > li.ant-pagination-total-text {\n      white-space: nowrap !important;\n      min-width: 90%;\n    }\n  }\n\n  @media only screen and (max-width: 580px) and (min-width: 440px) {\n    ul.ant-pagination {\n      justify-content: center !important;\n    }\n\n    ul.ant-pagination > li.ant-pagination-total-text {\n      white-space: nowrap !important;\n      min-width: 90%;\n    }\n  }\n\n  @media only screen and (max-width: 440px) {\n    .ant-table-footer > div:first-child {\n      display: contents !important;\n    }\n\n    ul.ant-pagination {\n      flex-direction: column !important;\n      align-items: center !important;\n      width: 100% !important;\n    }\n  }\n`;\n","import React from 'react';\nimport * as S from './Table.styled';\nimport { useSelector } from 'react-redux';\n\nexport default function Table(props) {\n  const theme = useSelector(state => state.configuration);\n\n  return (\n    <S.TableResize theme={theme}>\n      <S.Table {...props} />\n    </S.TableResize>\n  );\n}\n","export const TIPO_VISAO = {\n  PRINCIPAL: 1,\n  AGRUPAMENTO: 2,\n  ANALITICO: 3,\n  EXTERNO: 4,\n  INTERNO: 5,\n  MODULOFIXO: 6,\n  MODULODINAMICO: 7,\n};\n","import React, { useRef, useState } from 'react';\nimport { TIPO_VISAO } from '~/modules/Helper/tipo-visao';\nimport { Input, Button, Space } from 'antd';\nimport { SearchOutlined } from '@ant-design/icons';\n\nconst FilterHeaderTable = ({\n  setSelectedKeys,\n  selectedKeys,\n  confirm,\n  clearFilters,\n  close,\n  visaoColuna,\n  setDataFilterHeader,\n  dataFilterHeader,\n  configuracao,\n  obterColunaChave,\n  obterColunaLink,\n  setFiltro,\n  filtro,\n  setPagina\n}) => {\n  const searchInput = useRef(null);\n\n  const [valorChave, setValorChave] = useState('');\n  const [campoAlterado, setCampoAlterado] = useState(false);\n\n  const { NomeColuna, FonteDados, TipoValor } = visaoColuna;\n\n  let KeyVisao = null;\n  if (configuracao && configuracao.VisaoColunas) {\n    const visaoColuna =\n      configuracao.Tipo === TIPO_VISAO.AGRUPAMENTO\n        ? obterColunaChave()\n        : obterColunaLink();\n\n    KeyVisao = visaoColuna?.FonteDados;\n  }\n\n  const handleSearch = (selectedKeys, confirm, valorChave) => {\n    confirm();\n    if (KeyVisao && KeyVisao == FonteDados) {\n      setValorChave(valorChave);\n      setFiltro([\n        {\n          Campo: FonteDados,\n          Valor: selectedKeys[0],\n          TipoValor,\n        },\n      ]);\n      setSelectedKeys(['']);\n    } else {\n      let dataFilter = { ...dataFilterHeader };\n      dataFilter.Filtros ? dataFilter.Filtros = dataFilter.Filtros.filter(x => x.Campo != FonteDados) : dataFilter.Filtros = [];\n      dataFilter.Filtros.push({\n        Campo: FonteDados,\n        Valor: selectedKeys[0],\n        TipoValor,\n      });\n      setDataFilterHeader(dataFilter);\n    }\n    setCampoAlterado(false);\n    setPagina(1);\n  };\n\n  const handleReset = clearFilters => {\n    clearFilters();\n    if (KeyVisao && KeyVisao == FonteDados) setFiltro([]);\n    else {\n      let dataFilter = {\n        ...dataFilterHeader,\n        Filtros: dataFilterHeader.Filtros.filter(x => x.Campo != FonteDados),\n      };\n      setDataFilterHeader(dataFilter);\n    }\n    setValorChave('');\n  };\n\n  const verificaValor = () => {\n    let valor = selectedKeys[0] || '';\n    if (KeyVisao && KeyVisao == FonteDados) {\n      if (valor == valorChave && campoAlterado) {\n        setCampoAlterado(false);\n      } else if (\n        filtro?.length > 0 &&\n        filtro[0].Campo == KeyVisao &&\n        filtro[0].Valor != valorChave &&\n        !campoAlterado\n      ) {\n        valor = filtro[0].Valor;\n        setValorChave(valor);\n      } else {\n        valor =\n          (valor != valorChave || valorChave) && campoAlterado\n            ? valor\n            : valorChave;\n      }\n    }\n    return valor;\n  };\n\n  return (\n    <div\n      style={{\n        padding: 8,\n      }}\n      onKeyDown={e => e.stopPropagation()}\n    >\n      <Input\n        ref={searchInput}\n        placeholder={`Buscar ${NomeColuna}`}\n        value={verificaValor()}\n        onChange={e => {\n          setCampoAlterado(true);\n          setSelectedKeys(e.target.value ? [e.target.value] : ['']);\n        }}\n        onPressEnter={e => {\n          handleSearch(selectedKeys, confirm, e.target?.value);\n        }}\n        style={{\n          marginBottom: 8,\n          display: 'block',\n        }}\n      />\n      <Space>\n        <Button\n          type=\"primary\"\n          onClick={() => handleSearch(selectedKeys, confirm)}\n          icon={<SearchOutlined />}\n          size=\"small\"\n          style={{\n            width: 90,\n          }}\n        >\n          Filtrar\n        </Button>\n        <Button\n          onClick={() => clearFilters && handleReset(clearFilters)}\n          size=\"small\"\n          style={{\n            width: 90,\n          }}\n        >\n          Limpar\n        </Button>\n      </Space>\n    </div>\n  );\n};\n\nexport default FilterHeaderTable;\n","import { Tree } from 'antd';\n\nexport default Tree;\n","import { Result } from 'antd';\n\nexport default Result;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport Result from '../Result/Result.component';\nimport { Button } from '../Button/Button.styled';\n\nfunction NotFound() {\n  const history = useHistory();\n\n  const voltarParaHome = () => {\n    history.push('/');\n  };\n\n  const tituloPagina = 'Página não Encontrada';\n\n  return (\n    <>\n      <Result\n        status=\"warning\"\n        title={tituloPagina}\n        extra={\n          <Button type=\"primary\" onClick={voltarParaHome}>\n            Voltar para Home\n          </Button>\n        }\n      />\n    </>\n  );\n}\n\nexport default NotFound;\n","import styled from 'styled-components';\nimport { Typography } from '../Typography/Typography.styled';\n\nexport const Title = styled(Typography.Title)`\n  && {\n    color: ${({ color }) => color};\n    font-weight: bold;\n    font-size: ${({ theme }) => `${20 + 2 * theme.zoomFonte}px`};\n  }\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport * as S from './PageTitle.styled';\n\nfunction PageTitle({ titulo }) {\n  const { corFonteTituloTelas: corTitulo, corTema } = useSelector(\n    state => state.configuration\n  );\n\n  return (\n    <S.Title level={4} color={corTitulo || corTema}>\n      {titulo}\n    </S.Title>\n  );\n}\n\nexport default PageTitle;\n","import styled from 'styled-components';\n\nexport const ImageLink = styled.img`\n  display: flex;\n  height: 60px;\n  margin: 20px 0px;\n  cursor: pointer;\n`;\n","import { Tooltip } from 'antd';\nimport React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport * as S from './ImageLink.styled';\n\nfunction ImageLink({ imagem, uri, alt, tooltip }) {\n  function onClick() {\n    if (uri) {\n      const redirect = !uri.match(/http(s)*:\\/\\//g) ? `http://${uri}` : uri;\n      window.open(redirect);\n    }\n  }\n\n  return (\n    <Tooltip title={tooltip}>\n      <S.ImageLink\n        onKeyDown={event => {\n          if (event.keyCode === 13) onClick();\n        }}\n        onClick={onClick}\n        tabIndex={0}\n        src={`data:image/png;base64, ${imagem}`}\n        alt={alt}\n      ></S.ImageLink>\n    </Tooltip>\n  );\n}\n\nexport default withRouter(ImageLink);\n","import styled from 'styled-components';\nimport { Button } from 'antd';\n\nexport const Image = styled.img`\n  display: block;\n  width: 100%;\n  height: 100%;\n`;\n\nexport const ImageButton = styled(Button)`\n  && {\n    display: inline-block;\n    vertical-align: top;\n    height: 90px;\n    width: 180px;\n    padding: 12px;\n    margin-bottom: 20px;\n  }\n`;\n","import { Tooltip } from 'antd';\nimport React from 'react';\nimport { withRouter } from 'react-router-dom';\nimport * as S from './ImageButton.styled';\n\nfunction ImageButton({ type, shape, imagem, uri, alt, tooltip }) {\n  function onClick() {\n    if (uri) {\n      const redirect = !uri.match(/http(s)*:\\/\\//g) ? `http://${uri}` : uri;\n      window.open(redirect);\n    }\n  }\n\n  return (\n    <Tooltip title={tooltip}>\n      <S.ImageButton\n        type={type || 'primary'}\n        shape={shape}\n        onKeyDown={event => {\n          if (event.keyCode === 13) onClick();\n        }}\n        onClick={onClick}\n        tabIndex={0}\n      >\n        <S.Image src={`data:image/png;base64, ${imagem}`} alt={alt}></S.Image>\n      </S.ImageButton>\n    </Tooltip>\n  );\n}\n\nexport default withRouter(ImageButton);\n","import * as L from './List.styled';\n\nexport default L.List;\n","import styled from 'styled-components';\nimport { List as antdList } from 'antd';\n\nexport const List = styled(antdList)`\n    .ant-list-item, .ant-list-item-meta-content h4 {\n        font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n    }\n`;","import styled from 'styled-components';\nimport { Button as AntDesignButton } from 'antd';\n\nexport const ButtonGoBack = styled(AntDesignButton)`\nfloat: left;\nmargin: 10px 20px 0 0;\n  && {\n    margin-left: ${({ ml }) => ml}px;\n    margin-right: ${({ mr }) => mr}px;\n    color: ${({ color }) => color};\n  }\n`;\n","import * as S from './ButtonGoBack.styled';\nimport React from 'react';\nfunction ButtonGoBack({ OnClick, MarginLeft = '0px' }) {\n  return (\n    <>\n      <S.ButtonGoBack style={{ marginLeft: MarginLeft }} onClick={OnClick}>\n        Voltar\n      </S.ButtonGoBack>\n    </>\n  );\n}\n\nexport default ButtonGoBack;\n","import React from 'react';\nimport ReCAPTCHA from \"react-google-recaptcha\";\n\nfunction ReCaptcha({ handleOnCaptchaChange }) {\n  return (\n    <ReCAPTCHA\n      sitekey=\"6LeSHQETAAAAACjgu00LxcbscsmkkwMIqhfd1-Gh\"\n      onChange={handleOnCaptchaChange}\n    />\n  );\n}\nexport default ReCaptcha;","import React from 'react';\nimport { notification } from 'antd';\n\nconst PreserveBreakLine = ({ message }) => (\n  <div style={{ whiteSpace: 'pre-wrap' }}>{message}</div>\n);\n\nfunction showSuccess(successMessage) {\n  notification.success({\n    message: 'Sucesso',\n    description: <PreserveBreakLine message={successMessage} />,\n  });\n}\n\nfunction showWarning(warningMessage) {\n  notification.warning({\n    message: 'Alerta',\n    description: <PreserveBreakLine message={warningMessage} />,\n  });\n}\n\nfunction showError(errorMessage) {\n  notification.error({\n    message: 'Erro',\n    description: <PreserveBreakLine message={errorMessage} />,\n  });\n}\n\nexport { showSuccess, showWarning, showError };\n","import axios from 'axios';\nimport {\n  addRequest,\n  removeRequest,\n} from '~/store/modules/loader/loader.actions';\nimport { SMARAPD_FILEMANAGER_DOMAIN } from '~/services/urls';\nimport store from '~/store';\nimport history from './history';\n\nconst apiFM = axios.create({\n  baseURL: SMARAPD_FILEMANAGER_DOMAIN,\n});\n\napiFM.interceptors.request.use(\n  function handleRequest(config) {\n    store.dispatch(addRequest());\n    return config;\n  },\n  function handleError(error) {\n    return Promise.reject(error);\n  }\n);\n\napiFM.interceptors.response.use(\n  function handleResponse(response) {\n    store.dispatch(removeRequest());\n    return response;\n  },\n  function handleError(error) {\n    store.dispatch(removeRequest());\n    return Promise.reject(error);\n  }\n);\n\napiFM.interceptors.response.use(\n  function handleResponse(response) {\n    return response;\n  },\n  function handleError(error) {\n    if (error && error.response) {\n      store.dispatch(removeRequest());\n      const { status } = error.response;\n      if (status === 404) history.push('/notfound');\n    }\n    return Promise.reject(error);\n  }\n);\n\nexport default apiFM;\n","import apiFM from '../apiFM';\n\nconst paiBaseService = '/filemanager/pai';\n\nexport async function fileManagerPaiDownload(fileName) {\n  const url = `${apiFM.defaults.baseURL}${paiBaseService}/download?nomeArquivo=${fileName}`;\n  window.location.assign(url);\n}\n\nexport function getFullUrl(nomeArquivo) {\n  return `${apiFM.defaults.baseURL}${paiBaseService}/download?nomeArquivo=${nomeArquivo}`;\n}\n","import React, { useState, useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\n\nimport { setConfiguration } from '~/store/modules/configuration/configuration.actions';\n\nimport api from '~/services/api';\n\nimport {\n  Layout,\n  Drawer,\n  Sider,\n  Logo,\n  Menu,\n  Header,\n  Collapse,\n  Title,\n  Acessibility,\n  Content,\n  Footer,\n  BackTopPage,\n  Icons,\n  Socials,\n} from '~/components';\nimport { getFullUrl } from '~/services/FileManager/file-manager.service';\nimport { useMenus } from '~/contexts/menu.context';\n\nfunction DefaultLayout({ children }) {\n  const { isLoadingMenus } = useMenus();\n  const [isLoading, setIsLoading] = useState(true);\n  const [collapsed, setCollapsed] = useState(false);\n  const [openKeys, setOpenKeys] = useState([]);\n  const [backTopBgColor, setBackTopBgColor] = useState();\n\n  const dispatch = useDispatch();\n\n  const isMobile = useMediaQuery({ query: '(max-width: 700px)' });\n\n  useEffect(() => {\n    async function getConfiguracao() {\n      const [responseConfiguracao, responseCliente] = await Promise.all([\n        api.get('configuracaoaparencia'),\n        api.get('cliente'),\n      ]);\n\n      const {\n        BannerUrl,\n        BrasaoUrl,\n        BrasaoPretoBrancoUrl,\n        ImagemFundoHomeUrl,\n        ImagemFundoTelasUrl,\n        CorTema,\n        Titulo,\n        CorFonteTituloPortal,\n        CorFonteTituloTelas,\n        CorFonte,\n        CorFonteRodape,\n        CorFundoRodape,\n        CorFundoGrid,\n        CorFundoTituloGrid,\n        CorTituloGrid,\n      } = responseConfiguracao.data;\n\n      const {\n        RazaoSocial,\n        Endereco,\n        Bairro,\n        Cidade,\n        CEP,\n        Telefone,\n        Atendimento,\n        EmailSocials,\n        FacebookSocials,\n        InstagramSocials,\n        LinkedInSocials,\n        TwitterSocials,\n        WhatsAppSocials,\n        YoutubeSocials,\n      } = responseCliente.data;\n\n      dispatch(\n        setConfiguration({\n          BannerUrl: getFullUrl(BannerUrl),\n          BrasaoUrl: getFullUrl(BrasaoUrl),\n          BrasaoPretoBrancoUrl: getFullUrl(BrasaoPretoBrancoUrl),\n          ImagemFundoHomeUrl: getFullUrl(ImagemFundoHomeUrl),\n          ImagemFundoTelasUrl: getFullUrl(ImagemFundoTelasUrl),\n          CorTema,\n          Titulo,\n          CorFonteTituloPortal,\n          CorFonteTituloTelas,\n          CorFonte,\n          CorFonteRodape,\n          RazaoSocial,\n          Endereco,\n          Bairro,\n          Cidade,\n          CEP,\n          Telefone,\n          Atendimento,\n          CorFundoGrid,\n          CorFundoTituloGrid,\n          CorTituloGrid,\n          EmailSocials,\n          FacebookSocials,\n          InstagramSocials,\n          LinkedInSocials,\n          TwitterSocials,\n          WhatsAppSocials,\n          YoutubeSocials,\n        })\n      );\n\n      setBackTopBgColor(CorTema);\n\n      window.less\n        .modifyVars({\n          '@primary-color': CorTema || 'rgba(0, 0, 0, 0.1);',\n          '@icon-color-hover': '#f5f5f5',\n          '@link-hover-decoration': '#ffffff',\n          '@layout-sider-background': CorTema || '#036f5a',\n          '@menu-dark-bg': `${CorTema} !important` || '#036f5a',\n          '@layout-footer-background': CorFundoRodape || '#fff',\n          '@heading-color': `${CorFonte}` || '#000',\n          '@text-color': `${CorFonte}` || '#000',\n          '@text-color-secondary': `${CorFonte}` || '#000',\n          '@disabled-color': `${CorFonte}` || '#000',\n          '@link-color': '#1890ff',\n          // Titulo Grid\n          '@table-header-color': CorTituloGrid || '#000',\n          '@table-footer-color': CorTituloGrid || '#000',\n          // Fundo Grid\n          '@table-bg': CorFundoGrid || '#f2f2f2',\n          '@table-body-sort-bg': CorFundoGrid || '#f2f2f2',\n          // Fundo Titulo Grid\n          '@table-header-bg': CorFundoTituloGrid || '#fff2f2',\n          '@table-header-sort-bg': CorFundoTituloGrid || '#f2f2f2',\n          '@table-header-sort-active-bg': CorFundoTituloGrid || '#f2f2f2',\n          '@table-footer-bg': CorFundoTituloGrid || '#f2f2f2',\n        })\n        .then(() => setIsLoading(false));\n    }\n\n    getConfiguracao();\n  }, [dispatch]);\n\n  function handleToggle() {\n    setOpenKeys([]);\n    setCollapsed(!collapsed);\n  }\n\n  return isLoading || isLoadingMenus ? (\n    <Layout />\n  ) : (\n    <Layout>\n      {isMobile ? (\n        <Drawer\n          placement=\"left\"\n          visible={collapsed}\n          closable={false}\n          onClose={handleToggle}\n        >\n          <Sider>\n            <Logo />\n            <Menu\n              openKeys={openKeys}\n              setOpenKeys={setOpenKeys}\n              setCollapsed={setCollapsed}\n            />\n            <Menu onClick={() => handleToggle(false)} />\n          </Sider>\n        </Drawer>\n      ) : (\n        <Sider collapsed={collapsed}>\n          <Logo />\n          <Menu\n            openKeys={openKeys}\n            setOpenKeys={setOpenKeys}\n            collapsed={collapsed}\n          />\n        </Sider>\n      )}\n\n      <Layout id=\"layout\">\n        <Header>\n          <span>\n            <Collapse collapsed={collapsed} handleToggle={handleToggle} />\n            <Title />\n          </span>\n\n          <span style={{ position: 'absolute', top: 0, right: 0 }}>\n            <Acessibility />\n          </span>\n        </Header>\n        <Content>{children}</Content>\n        <Socials />\n        <Footer />\n        <BackTopPage\n          icon={<Icons.UpOutlined />}\n          backgroundColor={backTopBgColor || 'rgba(0, 0, 0, 0.1);'}\n        />\n      </Layout>\n    </Layout>\n  );\n}\n\nexport default DefaultLayout;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n  padding: 20px;\n  height: 100%;\n  padding: 20px;\n  background: ${({ fundoTransparente }) =>\n    fundoTransparente ? 'transparent' : 'rgba(255, 255, 255, 0.9)'};\n`;\n\nexport const Content = styled.div`\n  font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n`;","import React from 'react';\nimport { Container, Content } from './style';\n\nfunction InformacaoDashboard({ informacao, fundoTransparente }) {\n  return (\n    <>\n      <Container fundoTransparente={fundoTransparente}>\n        <Content dangerouslySetInnerHTML={{ __html: informacao }} />\n      </Container>\n    </>\n  );\n}\n\nexport default InformacaoDashboard;\n","export const TIPO_ACESSO = {\n  INTERNO: 1,\n  EXTERNO: 2,\n};\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n  width: 100%;\n  height: 100%;\n  cursor: pointer;\n`;\n\nexport const Imagem = styled.img`\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n`;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { TIPO_ACESSO } from '~/modules/Helper/tipoAcesso';\nimport { Container, Imagem } from './style';\n\nfunction CardImagemDashboard({ urlImagem, valorLink, tipoAcesso }) {\n  const history = useHistory();\n\n  function Redirecionar(link) {\n    if (tipoAcesso === TIPO_ACESSO.INTERNO) return history.push(link);\n\n    window.open(link, '_blank');\n  }\n\n  return (\n    <Container onClick={() => Redirecionar(valorLink)}>\n      <Imagem src={urlImagem} alt=\"Imagem Card\" />\n    </Container>\n  );\n}\n\nexport default CardImagemDashboard;\n","import styled from 'styled-components';\nimport YouTube from 'react-youtube';\n\nexport const Container = styled.div`\n  padding: 20px;\n  height: 100%;\n  position: relative;\n  background: rgba(255, 255, 255, 0.9);\n`;\n\nexport const Youtube = styled(YouTube)`\n  width: 100%;\n  height: 100%;\n\n  iframe {\n    width: 100%;\n    height: 100%;\n  }\n`;","import React from 'react';\nimport { Container, Youtube } from './style';\n\nfunction YouTubePlayer({ videoId }) {\n  const optionsYoutubePlayer = {\n    playerVars: {\n      rel: 0,\n    },\n  };\n\n  return (\n    <>\n      <Container>\n        <Youtube videoId={videoId} opts={optionsYoutubePlayer} />\n      </Container>\n    </>\n  );\n}\n\nexport default YouTubePlayer;\n","import { useState, useEffect } from 'react';\n\nexport const tiposDevice = {\n  mobile: 'Mobile',\n  desktop: 'Desktop',\n};\n\nexport function useWindowListener() {\n  const isClient = typeof window === 'object';\n  const [widthWindow, setWidthWindow] = useState(getSize());\n\n  function getSize() {\n    return {\n      width: isClient ? window.innerWidth : 0,\n      height: isClient ? window.innerHeight : 0,\n      device:\n        isClient && window.innerWidth && window.innerWidth < 990\n          ? tiposDevice.mobile\n          : tiposDevice.desktop,\n    };\n  }\n\n  useEffect(() => {\n    if (!isClient) {\n      return;\n    }\n\n    const handleResize = () => {\n      const size = getSize();\n      setWidthWindow(size);\n    };\n\n    window.addEventListener('resize', handleResize);\n\n    return () => window.removeEventListener('resize', handleResize);\n  }, [getSize, isClient, widthWindow]);\n\n  return widthWindow;\n}\n","export const TAMANHO_HOME_ITEM_ENUM = {\n  T_1x3: 1,\n  T_2x6: 2,\n  T_2x12: 3,\n  T_2x9: 4,\n  T_3x6: 5,\n  T_3x9: 6,\n  T_3x12: 7,\n  T_4x12: 8,\n  T_5x12: 9,\n  T_6x12: 10,\n  T_05x12: 11,\n  T_1x12: 12,\n};\n","import { TAMANHO_HOME_ITEM_ENUM } from '~/modules/Helper/tamanhoHomeItemEnum';\n\nexport const calcularAlturaLargura = tamanho => {\n  switch (tamanho) {\n    case TAMANHO_HOME_ITEM_ENUM.T_3x6:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x9:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x12:\n      return '225px';\n    case TAMANHO_HOME_ITEM_ENUM.T_4x12:\n      return '300px';\n    case TAMANHO_HOME_ITEM_ENUM.T_5x12:\n      return '375px';\n    case TAMANHO_HOME_ITEM_ENUM.T_6x12:\n      return '450px';\n    default:\n      return '150px';\n  }\n};\n\nexport const calcularAlturaLarguraIconeMedio = tamanho => {\n  switch (tamanho) {\n    case TAMANHO_HOME_ITEM_ENUM.T_1x3:\n      return '70px';\n    case TAMANHO_HOME_ITEM_ENUM.T_3x6:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x9:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x12:\n      return '130px';\n    case TAMANHO_HOME_ITEM_ENUM.T_4x12:\n      return '180px';\n    case TAMANHO_HOME_ITEM_ENUM.T_5x12:\n      return '200px';\n    case TAMANHO_HOME_ITEM_ENUM.T_6x12:\n      return '210px';\n    default:\n      return '100px';\n  }\n};\n","import { TAMANHO_HOME_ITEM_ENUM } from '~/modules/Helper/tamanhoHomeItemEnum';\n\nexport const tamanhoFonteDescricaoGrafico = tamanho => {\n  switch (tamanho) {\n    case TAMANHO_HOME_ITEM_ENUM.T_3x6:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x9:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x12:\n      return '1.35rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_4x12:\n      return '1.7rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_5x12:\n      return '2.05rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_6x12:\n      return '2.40rem';\n    default:\n      return '1rem';\n  }\n};\n\nexport const tamanhoFonteDescricaoDestaqueMedio = tamanho => {\n  switch (tamanho) {\n    case TAMANHO_HOME_ITEM_ENUM.T_3x6:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x9:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x12:\n      return '24px';\n    case TAMANHO_HOME_ITEM_ENUM.T_4x12:\n      return '34px';\n    case TAMANHO_HOME_ITEM_ENUM.T_5x12:\n      return '44px';\n    case TAMANHO_HOME_ITEM_ENUM.T_6x12:\n      return '54px';\n    default:\n      return '22px';\n  }\n};\n\nexport const tamanhoFonteDestaqueMedio = tamanho => {\n  switch (tamanho) {\n    case TAMANHO_HOME_ITEM_ENUM.T_3x6:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x9:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x12:\n      return '2.30rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_4x12:\n      return '3.5rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_5x12:\n      return '4.7rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_6x12:\n      return '5.9rem';\n    default:\n      return '2.15rem';\n  }\n};\n\nexport const tamanhoFonteIconeMedio = tamanho => {\n  switch (tamanho) {\n    case TAMANHO_HOME_ITEM_ENUM.T_3x6:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x9:\n    case TAMANHO_HOME_ITEM_ENUM.T_3x12:\n      return '9rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_4x12:\n      return '12rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_5x12:\n      return '15rem';\n    case TAMANHO_HOME_ITEM_ENUM.T_6x12:\n      return '18rem';\n    default:\n      return '7rem';\n  }\n};\n","import { css } from 'styled-components';\n\nconst sizes = {\n  Mobile: 700,\n  Desktop: 2600,\n};\nexport default Object.keys(sizes).reduce((acc, label) => {\n  acc[label] = (...args) => css`\n    @media (max-width: ${sizes[label]}px) {\n      ${css(...args)};\n    }\n  `;\n  return acc;\n}, {});\n","import styled from 'styled-components';\nimport Button from '~/components/Button/Button.component';\nimport Card from '~/components/Card/Card.component';\nimport Col from '~/components/Col/Col.component';\nimport {\n  calcularAlturaLargura,\n  calcularAlturaLarguraIconeMedio,\n} from '~/modules/Helper/calcularAlturaLargura';\nimport {\n  tamanhoFonteDescricaoGrafico,\n  tamanhoFonteDescricaoDestaqueMedio,\n  tamanhoFonteIconeMedio,\n  tamanhoFonteDestaqueMedio,\n} from '~/modules/Helper/calcularTamanhoFonte';\nimport media from '../../modules/Dashboard/components/mediaStyle';\n\nexport const FilterButton = styled(Button)`\n  width: 35px !important;\n  height: 30px !important;\n  cursor: pointer;\n  background-color: #efefef !important;\n  display: block;\n  float: right;\n  opacity: 0.5;\n`;\n\nexport const CardWrapper = styled(Card)`\n  height: 100% !important;\n\n  .ant-card-body {\n    padding: 0 10px;\n    height: calc(100% - 50px) !important;\n    background-color: transparent !important;\n    align-content: center;\n  }\n\n  .ant-card-body > div:nth-child(2),\n  .ant-card-body > div:nth-child(2) > div,\n  .ant-card-body > div:nth-child(2) > div > div,\n  canvas {\n    height: 100% !important;\n    width: 100% !important;\n  }\n\n  .ant-card-extra {\n    display: flex;\n  }\n\n  .ant-select {\n    margin-right: 15px;\n  }\n\n  &:hover ${FilterButton} {\n    opacity: 1;\n    transition: 300ms;\n  }\n`;\n\nexport const TituloSpan = styled.span`\n  margin-bottom: 20px;\n  font-size: 25px;\n`;\n\nexport const Visualizar = styled.div`\n  margin-top: 5px;\n  cursor: pointer;\n  font-size: 18px;\n`;\n\nexport const DescricaoLinkExternoDiv = styled.div`\n  margin: 15px;\n  font-size: 1.8rem;\n`;\n\nexport const DescricaoLinkExternoDivMedio = styled.div`\n  font-size: 1.8rem;\n  margin-top: 16%;\n`;\n\nexport const IconeDiv = styled.div`\n  text-align: center;\n  font-size: 55px;\n  margin-right: 20px;\n\n  ${media.Mobile`\n    float: 'left'\n  `};\n`;\n\nexport const StatisticSpan = styled.div`\n  ${media.Desktop`\n    position: relative;\n    top: -5px;\n  `}\n\n  ${media.Mobile`\n    position: relative;\n    top: -5px;\n  `}\n`;\n\nexport const StyledCol = styled(Col)`\n  background-color: transparent !important;\n`;\n\nexport const StatisticSpanMedio = styled.div`\n  background-color: transparent !important;\n\n  ${media.Desktop`\n    position: relative;\n    top: 15px;\n    padding-left: 15px;\n  `} ${media.Mobile`\n    position: relative;\n    top: 0px;\n  `};\n`;\n\nexport const ValorDescricaoSpan = styled.span`\n  font-size: 15px;\n  font-weight: 500;\n`;\n\nexport const ValorDestaqueDiv = styled.div`\n  font-size: 25px;\n`;\n\nexport const ValorSecundarioSpan = styled.span`\n  font-size: 15px;\n\n  span {\n    font-weight: 700;\n  }\n`;\n\nexport const Grafico = styled.span`\n  display: table;\n  margin: auto;\n`;\n\nexport const IconeMedioDiv = styled.div`\n  ${media.Desktop`\n    font-size: ${({ tamanho }) => tamanhoFonteIconeMedio(tamanho)};\n    margin-top: 15px;\n  `}\n\n  ${media.Mobile`\n    text-align: center;\n    font-size: 65px;\n  `}\n`;\n\nexport const IconeMedioImg = styled.img`\n  ${media.Desktop`\n    height: ${({ tamanho }) => calcularAlturaLarguraIconeMedio(tamanho)};\n    width: ${({ tamanho }) => calcularAlturaLarguraIconeMedio(tamanho)};\n  `}\n\n  ${media.Mobile`\n    height: 60px;\n    width: 60px;\n  `}\n`;\n\nexport const ValorDescricaoDestaqueMedioDiv = styled.div`\n  ${media.Desktop`\n    margin-top: 15px;\n    font-size: ${({ tamanho }) => tamanhoFonteDescricaoDestaqueMedio(tamanho)};\n    color: ${({ corFonte }) => `${corFonte}`};\n  `}\n\n  ${media.Mobile`\n    font-size: 15px;\n    font-weight: 500;\n  `}\n`;\n\nexport const ValorDestaqueMedioDiv = styled.span`\n  ${media.Desktop`\n    font-size: ${({ tamanho }) => tamanhoFonteDestaqueMedio(tamanho)};\n    color: ${({ corFonte }) => `${corFonte}`};\n    font-weight: 500;\n  `}\n\n  ${media.Mobile`\n    div{\n      font-size: 25px;\n    }\n  `}\n`;\n\nexport const ValorSecundarioMedioSpan = styled.span`\n  span {\n    font-weight: 700;\n  }\n\n  ${media.Desktop`\n    font-size: ${({ tamanho }) => tamanhoFonteDescricaoDestaqueMedio(tamanho)};\n  `}\n\n  ${media.Mobile`\n    font-size: 15px;\n  `}\n`;\n\nexport const GraficoMedio = styled.div`\n  div.g2plot-htmlStatistic,\n  div.g2plot-htmlStatistic > div.ring-guide-html,\n  div.g2-html-annotation {\n    background-color: transparent !important;\n  }\n\n  font-size: 25px;\n  height: ${({ tamanho }) => calcularAlturaLargura(tamanho)};\n  width: ${({ tamanho }) => calcularAlturaLargura(tamanho)};\n\n  div.g2plot-htmlStatistic > div.ring-guide-html > span.ring-guide-name {\n    position: relative;\n    top: 5px;\n  }\n\n  div.g2plot-htmlStatistic > div.ring-guide-html > span.ring-guide-value {\n    font-size: 1.3rem !important;\n  }\n\n  ${media.Mobile`\n      display: table;\n      margin: auto;\n      width: 125px;\n      height: 125px;\n\n      div.g2plot-htmlStatistic > div.ring-guide-html > span.ring-guide-name{\n        position: relative;\n        top: 5px\n      }\n\n      div.g2plot-htmlStatistic > div.ring-guide-html > span.ring-guide-value{\n        font-size: 1.3rem !important;\n      }\n  `}\n`;\n\nexport const DescricaoGrafico = styled.p`\n  font-size: ${({ tamanho }) => tamanhoFonteDescricaoGrafico(tamanho)};\n  font-weight: 700;\n  margin: 0;\n  padding: 0;\n`;\n\nexport const GraficoDonut = styled.div`\n  padding: 0.625em 0;\n  ${media.Mobile``}\n`;\n\nexport const GraficoPie = styled.div`\n  padding: 0.625em 0;\n  ${media.Mobile``}\n`;\n\nexport const GraficoLine = styled.div`\n  ${media.Mobile``}\n`;\n\nexport const GraficoBar = styled.div`\n  ${media.Mobile``}\n`;\n\nexport const GraficoColumn = styled.div`\n  ${media.Mobile``}\n`;\n\nexport const NoDataContainer = styled.div`\n  width: 100%;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  min-height: inherit;\n`;\n","import api from '~/services/api';\nimport history from '~/services/history';\n\nfunction redirectNotFound() {\n  history.push('/notfound');\n}\n\nfunction getPeriodicidade() {\n  return api.get('periodicidade/periodos');\n}\n\nfunction getConfiguracao() {\n  return api.get('esic/configuracoes');\n}\n\nfunction getExercicios() {\n  return api.get('esic/exercicios');\n}\nfunction getVisoes(exercicio) {\n  return api.get(`esic/visoes/exercicio/${exercicio}`);\n}\n\nfunction getGraficos(exercicio) {\n  return api.get(`esic/grafico/exercicio/${exercicio}`);\n}\n\nfunction filtrarGrafico(id, exercicio, periodo) {\n  return api.get(`esic/grafico/${id}/filtrar/${exercicio}/${periodo}`);\n}\n\nexport {\n  getConfiguracao,\n  redirectNotFound,\n  getVisoes,\n  filtrarGrafico,\n  getGraficos,\n  getExercicios,\n  getPeriodicidade\n};\n","import React, { useState } from 'react';\n\nconst GraficoContext = React.createContext({});\n\nfunction ListaGraficoContext({ children }) {\n  const [listaGrafico, setListaGrafico] = useState([]);\n  const [eSic, setESic] = useState(null);\n  return (\n    <GraficoContext.Provider\n      value={{ listaGrafico, setListaGrafico, eSic, setESic }}\n    >\n      {children}\n    </GraficoContext.Provider>\n  );\n}\n\nexport { ListaGraficoContext, GraficoContext };\n","import { Popover } from 'antd';\n\nexport default Popover;\n","import React, { useState, useContext } from 'react';\nimport { Form } from 'antd';\nimport { filtrarGrafico } from '~/modules/ESic/services/esic.service';\nimport { GraficoContext } from '~/modules/ESic/context/listaGraficoContext';\nimport Popover from '~/components/Popover/Popover.component';\nimport Button from '~/components/Button/Button.component';\nimport Icons from '~/components/Icons/Icons.component';\nimport { FilterButton } from './style';\n\nfunction Filter({ idGrafico, contentFilter, exercicio }) {\n  const { listaGrafico, setListaGrafico } = useContext(GraficoContext);\n  const [visible, setVisible] = useState(false);\n\n  async function onFilter(Id, values) {\n    const { Periodo } = values;\n    const response = await filtrarGrafico(Id, exercicio, Periodo);\n\n    const index = listaGrafico.findIndex(item => item.id === Id);\n\n    if (index !== -1) {\n      const newLista = [...listaGrafico];\n\n      const graficoAtual = newLista[index];\n\n      // Criar um novo componente com os dados atualizados\n      // Precisamos preservar a posição e o id, mas atualizar o componente\n      const componenteAtualizado = {\n        ...graficoAtual,\n        component: React.cloneElement(graficoAtual.component, {\n          data: response.data.Dados,\n          filterDescription: response.data.DescricaoPeriodo,\n        }),\n      };\n\n      newLista[index] = componenteAtualizado;\n\n      setListaGrafico(newLista);\n    }\n  }\n\n  const content = (\n    <>\n      <Form\n        name=\"filter\"\n        initialValues={{\n          remember: true,\n          Periodo: contentFilter.Periodicidade,\n        }}\n        onFinish={values => onFilter(idGrafico, values)}\n      >\n        {contentFilter.Content}\n        <Button\n          type=\"primary\"\n          htmlType=\"submit\"\n          onClick={() => setVisible(false)}\n        >\n          Filtrar\n        </Button>\n      </Form>\n    </>\n  );\n\n  const handleVisibleChange = visibleEvent => setVisible(visibleEvent);\n\n  return (\n    <>\n      <Popover\n        visible={visible}\n        onVisibleChange={handleVisibleChange}\n        content={content}\n        trigger=\"click\"\n      >\n        <FilterButton>\n          <Icons.FilterOutlined\n            style={{ position: 'relative', top: 1, left: -7, fontSize: 16 }}\n          />\n        </FilterButton>\n      </Popover>\n    </>\n  );\n}\n\nexport default Filter;\n","import React, { useState } from 'react';\n\nconst HomeGraficoContext = React.createContext({});\n\nfunction ListaHomeGraficoContext({ children }) {\n  const [item, setItem] = useState([]);\n  const [home, setHome] = useState(null);\n  const [exercicio, setExercicio] = useState({});\n  const anoAtual = new Date().getFullYear();\n\n  return (\n    <HomeGraficoContext.Provider\n      value={{\n        item,\n        setItem,\n        home,\n        setHome,\n        anoAtual,\n        exercicio,\n        setExercicio,\n      }}\n    >\n      {children}\n    </HomeGraficoContext.Provider>\n  );\n}\n\nexport { ListaHomeGraficoContext, HomeGraficoContext };\n","import React, { useContext } from 'react';\nimport { Select, Tooltip } from '~/components';\nimport { HomeGraficoContext } from '~/modules/Dashboard/context/listaHomeGraficoContext';\nimport { getHomeItemService } from '~/modules/Dashboard/services/dashboard.service';\n\nfunction ExercicioSelect({ id }) {\n  const { anoAtual, home, setHome, exercicio, setExercicio } = useContext(\n    HomeGraficoContext\n  );\n  const exercicios = Array.from({ length: 5 }, (_, i) => anoAtual - i);\n\n  async function onChange(ano) {\n    if (ano) {\n      setExercicio(prevState => ({ ...prevState, [id]: ano }));\n      const response = await getHomeItemService(id, ano);\n      if (response && response.data) {\n        const updatedHome = home?.ListaHomeItem.map(item => {\n          if (item.Id == response.data.Id) item = response.data;\n\n          return item;\n        });\n        setHome({ ListaHomeItem: updatedHome });\n      }\n    }\n  }\n\n  return (\n    <Tooltip title=\"Exercício\">\n      <Select\n        value={exercicio[id]}\n        defaultValue={anoAtual}\n        onChange={ano => onChange(ano)}\n        style={{ width: '80px', marginLeft: '5px' }}\n      >\n        {exercicios.map(ano => (\n          <Select.Option key={ano} Option value={ano}>\n            {ano}\n          </Select.Option>\n        ))}\n      </Select>\n    </Tooltip>\n  );\n}\n\nexport default ExercicioSelect;\n","import api from '~/services/api';\n\nfunction getHomeService(exercicio) {\n  const response = api.get(`/home/${exercicio}`);\n  return response;\n}\n\nfunction getHomeItemService(id, exercicio) {\n  const response = api.get(`/home/${id}/${exercicio}`);\n  return response;\n}\n\nexport { getHomeService, getHomeItemService };\n","import React, { useEffect, useState } from 'react';\nimport { Pie } from '@antv/g2plot';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { Row, Col, Icons, Typography } from '~/components';\nimport { useWindowListener, tiposDevice } from './windowListener.component';\nimport {\n  GraficoDonut,\n  Visualizar,\n  CardWrapper,\n  NoDataContainer,\n} from './style';\nimport Filter from './Filter.component';\nimport ExercicioSelect from './ExercicioSelect.component';\n\nfunction DonutGraphic({\n  id,\n  titulo,\n  data,\n  legenda,\n  tootltipTitle,\n  ValorLink,\n  hasFilter,\n  filterDescription,\n  contentFilter,\n  showEyeButton = false,\n  corFonte,\n  showExercicioSelect,\n  exercicio,\n}) {\n  const [donut, setDonut] = useState(null);\n  const windowListener = useWindowListener();\n  const {\n    graficHighContrastStyle,\n    highContrast,\n    graficDefaultStyle,\n    zoomFonte,\n  } = useSelector(state => state.configuration);\n  const getConfigStyle = highContrast\n    ? graficHighContrastStyle\n    : graficDefaultStyle;\n  const legend = {\n    visible: true,\n    position: 'left',\n    maxItemWidth: 160,\n    title: {\n      visible: true,\n      text: legenda,\n      style: getConfigStyle,\n    },\n    itemName: {\n      formatter: v => {\n        return v.trim().length >= 27 ? `${v.substring(0, 27)}...` : v.trim();\n      },\n      style: getConfigStyle,\n    },\n  };\n  const [config] = useState({\n    title: false,\n    legend,\n    autoFit: true,\n    radius: 0.8,\n    innerRadius: 0.65,\n    label: {\n      autoHide: true,\n      type: 'spider',\n      formatter: ({ percent }) => `${(percent * 100).toFixed(2)}%`,\n      style: getConfigStyle,\n    },\n    statistic: {\n      title: false,\n      content: false,\n    },\n    colorField: 'EixoX',\n    angleField: 'EixoY',\n    color: [\n      '#30BBAA',\n      '#F39366',\n      '#876AB0',\n      '#FDF25B',\n      '#77C966',\n      '#EE7B80',\n      '#7F8BB2',\n      '#F9D04F',\n      '#D85B81',\n      '#D3E045',\n      '#2DA0D7',\n      '#FBB141',\n    ],\n    tooltip: {\n      showTitle: true,\n      title: tootltipTitle,\n      formatter: ({ EixoX, EixoY }) => {\n        return {\n          name: EixoX,\n          value: new Intl.NumberFormat('pt-BR').format(EixoY),\n        };\n      },\n    },\n  });\n\n  useEffect(() => {\n    if (donut) return;\n\n    const element = document.getElementById(id);\n    if (element) {\n      const donutRender = new Pie(element, { data, ...config });\n      setDonut(donutRender);\n      donutRender.render();\n    }\n  }, [config, data, donut, id]);\n\n  useEffect(() => {\n    if (windowListener && windowListener.device && donut) {\n      const visible = windowListener.device === tiposDevice.desktop;\n      donut.update({\n        legend: visible ? legend : false,\n        label: {\n          ...config.label,\n          style: getConfigStyle,\n        },\n      });\n    }\n\n    if (donut) donut.render();\n  }, [\n    donut,\n    windowListener,\n    highContrast,\n    config.text,\n    config.label,\n    getConfigStyle,\n    zoomFonte,\n  ]);\n\n  useEffect(() => {\n    if (donut) {\n      donut.update({\n        data,\n      });\n      donut.render();\n    }\n  }, [data, donut]);\n\n  const hasNoData = !data || data.length === 0;\n\n  return (\n    <>\n      <CardWrapper\n        title={\n          <span\n            style={{ fontSize: `${18 + 2 * zoomFonte}px`, fontWeight: 500 }}\n          >\n            {titulo}\n          </span>\n        }\n        extra={\n          <>\n            {showExercicioSelect && <ExercicioSelect id={id} />}\n            {showEyeButton && (\n              <Visualizar>\n                <Link to={ValorLink} style={{ color: corFonte }}>\n                  <Icons.EyeOutlined />\n                </Link>\n              </Visualizar>\n            )}\n          </>\n        }\n        size=\"small\"\n        style={{ height: '100%' }}\n      >\n        <Row>\n          {hasFilter && (\n            <Col flex=\"45px\" style={{ display: 'flex' }}>\n              <Filter\n                idGrafico={id}\n                contentFilter={contentFilter}\n                exercicio={exercicio}\n              />\n            </Col>\n          )}\n          {filterDescription && (\n            <Col flex=\"auto\">\n              <Typography.Text\n                style={{\n                  position: 'relative',\n                  top: -6,\n                }}\n              >\n                {filterDescription}\n              </Typography.Text>\n            </Col>\n          )}\n        </Row>\n        <Row style={{ flex: 1, minHeight: 'inherit' }}>\n          {hasNoData ? (\n            <NoDataContainer>\n              <Typography.Text>\n                Não há dados disponíveis para exibição\n              </Typography.Text>\n            </NoDataContainer>\n          ) : (\n            <GraficoDonut id={id} />\n          )}\n        </Row>\n      </CardWrapper>\n    </>\n  );\n}\n\nexport default DonutGraphic;\n","import React, { useEffect, useState } from 'react';\nimport { Pie } from '@antv/g2plot';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { Row, Col, Icons, Typography } from '~/components';\nimport { GraficoPie, Visualizar, CardWrapper, NoDataContainer } from './style';\nimport { useWindowListener, tiposDevice } from './windowListener.component';\nimport Filter from './Filter.component';\nimport ExercicioSelect from './ExercicioSelect.component';\n\nfunction PieGraphic({\n  id,\n  titulo,\n  data,\n  legenda,\n  tootltipTitle,\n  ValorLink,\n  hasFilter,\n  filterDescription,\n  contentFilter,\n  showEyeButton = false,\n  corFonte,\n  colorField = 'EixoX',\n  angleField = 'EixoY',\n  legendPosition = 'left',\n  tooltipFormatter,\n  legendMaxRow,\n  legendItemMarginBottom,\n  legendItemSpacing,\n  showExercicioSelect,\n  exercicio,\n}) {\n  const [pie, setPie] = useState(null);\n  const windowListener = useWindowListener();\n  const {\n    graficHighContrastStyle,\n    highContrast,\n    graficDefaultStyle,\n    zoomFonte,\n  } = useSelector(state => state.configuration);\n  const getConfigStyle = highContrast\n    ? graficHighContrastStyle\n    : graficDefaultStyle;\n  const legend = {\n    visible: true,\n    maxRow: legendMaxRow,\n    itemMarginBottom: legendItemMarginBottom,\n    itemSpacing: legendItemSpacing,\n    position: legendPosition,\n    maxItemWidth: 160,\n    title: {\n      visible: true,\n      text: legenda,\n      style: getConfigStyle,\n    },\n    itemName: {\n      formatter: v => {\n        return v.trim().length >= 27 ? `${v.substring(0, 27)}...` : v.trim();\n      },\n      style: getConfigStyle,\n    },\n  };\n  const [config] = useState({\n    title: false,\n    legend,\n    autoFit: true,\n    radius: 0.8,\n    label: {\n      autoHide: true,\n      type: 'spider',\n      formatter: ({ percent }) => `${(percent * 100).toFixed(2)}%`,\n      style: getConfigStyle,\n    },\n    statistic: {\n      visible: false,\n    },\n    colorField,\n    angleField,\n    color: [\n      '#30BBAA',\n      '#F39366',\n      '#876AB0',\n      '#FDF25B',\n      '#77C966',\n      '#EE7B80',\n      '#7F8BB2',\n      '#F9D04F',\n      '#D85B81',\n      '#D3E045',\n      '#2DA0D7',\n      '#FBB141',\n    ],\n    tooltip: {\n      showTitle: true,\n      title: tootltipTitle,\n      formatter:\n        tooltipFormatter ||\n        (({ EixoX, EixoY }) => {\n          return {\n            name: EixoX,\n            value: new Intl.NumberFormat('pt-BR').format(EixoY),\n          };\n        }),\n    },\n  });\n\n  useEffect(() => {\n    if (pie) return;\n\n    const element = document.getElementById(id);\n    if (element) {\n      const pieRender = new Pie(element, { data, ...config });\n      setPie(pieRender);\n      pieRender.render();\n    }\n  }, [config, data, id, pie]);\n\n  useEffect(() => {\n    if (pie) {\n      pie.update({\n        data,\n      });\n      pie.render();\n    }\n  }, [data, pie]);\n\n  useEffect(() => {\n    if (windowListener && windowListener.device && pie) {\n      const visible = windowListener.device === tiposDevice.desktop;\n      pie.update({\n        legend: visible ? legend : false,\n        label: {\n          ...config.label,\n          style: getConfigStyle,\n        },\n      });\n    }\n\n    if (pie) pie.render();\n  }, [\n    pie,\n    windowListener,\n    highContrast,\n    config.title,\n    config.text,\n    config.label,\n    getConfigStyle,\n    zoomFonte,\n  ]);\n\n  const hasNoData = !data || data.length === 0;\n\n  return (\n    <>\n      <CardWrapper\n        title={\n          <span\n            style={{ fontSize: `${18 + 2 * zoomFonte}px`, fontWeight: 500 }}\n          >\n            {titulo}\n          </span>\n        }\n        extra={\n          <>\n            {showExercicioSelect && <ExercicioSelect id={id} />}\n            {showEyeButton && (\n              <Visualizar>\n                <Link to={ValorLink || 'notfound'} style={{ color: corFonte }}>\n                  <Icons.EyeOutlined />\n                </Link>\n              </Visualizar>\n            )}\n          </>\n        }\n        size=\"small\"\n      >\n        <Row>\n          {hasFilter && (\n            <Col flex=\"45px\" style={{ display: 'flex' }}>\n              <Filter\n                idGrafico={id}\n                contentFilter={contentFilter}\n                exercicio={exercicio}\n              />\n            </Col>\n          )}\n          {filterDescription && (\n            <Col flex=\"auto\">\n              <Typography.Text\n                style={{\n                  position: 'relative',\n                  top: -6,\n                }}\n              >\n                {filterDescription}\n              </Typography.Text>\n            </Col>\n          )}\n        </Row>\n        <Row style={{ flex: 1, minHeight: 'inherit' }}>\n          {hasNoData ? (\n            <NoDataContainer>\n              <Typography.Text>\n                Não há dados disponíveis para exibição\n              </Typography.Text>\n            </NoDataContainer>\n          ) : (\n            <GraficoPie id={id} />\n          )}\n        </Row>\n      </CardWrapper>\n    </>\n  );\n}\n\nexport default PieGraphic;\n","import React, { useEffect, useState } from 'react';\nimport { Bar } from '@antv/g2plot';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { Row, Col, Icons, Typography } from '~/components';\nimport { GraficoBar, Visualizar, CardWrapper, NoDataContainer } from './style';\nimport Filter from './Filter.component';\nimport ExercicioSelect from './ExercicioSelect.component';\n\nfunction BarGraphic({\n  id,\n  titulo,\n  data,\n  cor,\n  legendaEixoX,\n  legendaEixoY,\n  ValorLink,\n  hasFilter,\n  filterDescription,\n  contentFilter,\n  showEyeButton = false,\n  corFonte,\n  showExercicioSelect,\n  exercicio,\n}) {\n  const [bar, setBar] = useState(null);\n  const {\n    graficHighContrastStyle,\n    highContrast,\n    graficDefaultStyle,\n    zoomFonte,\n  } = useSelector(state => state.configuration);\n  const getConfigStyle = highContrast\n    ? graficHighContrastStyle\n    : graficDefaultStyle;\n\n  const NumberFormatter = function NumberFormatter(value) {\n    let newNum = value;\n    const suffix = ['', ' Mil', ' Mi', ' Bi', ' Tri'];\n    let suffixNum = 0;\n    if (newNum > 10000) {\n      while (newNum >= 1000) {\n        newNum /= 1000;\n        suffixNum += 1;\n      }\n      return Math.trunc(newNum) + suffix[suffixNum];\n    }\n    return newNum;\n  };\n\n  const [config] = useState({\n    padding: [15, 20, 55, 70],\n    title: false,\n    autoFit: true,\n    data,\n    xField: 'EixoY',\n    yField: 'EixoX',\n    color: cor,\n    xAxis: {\n      title: {\n        visible: legendaEixoX || false,\n        text: legendaEixoX || '',\n        style: getConfigStyle,\n      },\n      label: {\n        formatter: v => {\n          return NumberFormatter(v);\n        },\n        style: getConfigStyle,\n      },\n    },\n    yAxis: {\n      title: {\n        visible: false,\n        text: '',\n        style: getConfigStyle,\n      },\n      label: {\n        formatter: v => {\n          return v.length >= 7 ? `${v.substring(0, 7)}...` : v;\n        },\n        style: getConfigStyle,\n      },\n    },\n    label: {\n      visible: true,\n      formatter: ({ EixoY }) => {\n        return NumberFormatter(EixoY);\n      },\n      position: 'right',\n      style: getConfigStyle,\n    },\n    tooltip: {\n      showTitle: true,\n      title: legendaEixoY,\n      formatter: ({ EixoX, EixoY }) => {\n        return {\n          name: EixoX,\n          value: new Intl.NumberFormat('pt-BR').format(EixoY),\n        };\n      },\n    },\n  });\n\n  useEffect(() => {\n    if (bar) return;\n\n    const element = document.getElementById(id);\n    if (element) {\n      const barRender = new Bar(element, { data, ...config });\n      setBar(barRender);\n      barRender.render();\n    }\n  }, [bar, config, data, id]);\n\n  useEffect(() => {\n    if (bar) {\n      bar.update({\n        label: {\n          ...config.label,\n          style: getConfigStyle,\n        },\n        xAxis: {\n          ...config.xAxis,\n          title: {\n            ...config.xAxis.title,\n            style: getConfigStyle,\n          },\n          label: {\n            ...config.xAxis.label,\n            style: getConfigStyle,\n          },\n        },\n        yAxis: {\n          ...config.yAxis,\n          title: {\n            ...config.yAxis.title,\n            style: getConfigStyle,\n          },\n          label: {\n            ...config.yAxis.label,\n            style: getConfigStyle,\n          },\n        },\n      });\n    }\n\n    if (bar) bar.render();\n  }, [\n    bar,\n    config.label,\n    config.xAxis,\n    config.yAxis,\n    getConfigStyle,\n    highContrast,\n    zoomFonte,\n  ]);\n\n  useEffect(() => {\n    if (bar) {\n      bar.update({\n        data,\n      });\n      bar.render();\n    }\n  }, [data, bar]);\n\n  const hasNoData = !data || data.length === 0;\n\n  return (\n    <>\n      <CardWrapper\n        title={\n          <span\n            style={{ fontSize: `${18 + 2 * zoomFonte}px`, fontWeight: 500 }}\n          >\n            {titulo}\n          </span>\n        }\n        extra={\n          <>\n            {showExercicioSelect && <ExercicioSelect id={id} />}\n            {showEyeButton && (\n              <Visualizar>\n                <Link to={ValorLink} style={{ color: corFonte }}>\n                  <Icons.EyeOutlined />\n                </Link>\n              </Visualizar>\n            )}\n          </>\n        }\n        size=\"small\"\n      >\n        <Row>\n          {hasFilter && (\n            <Col flex=\"45px\" style={{ display: 'flex' }}>\n              <Filter\n                idGrafico={id}\n                contentFilter={contentFilter}\n                exercicio={exercicio}\n              />\n            </Col>\n          )}\n          {filterDescription && (\n            <Col flex=\"auto\">\n              <Typography.Text\n                style={{\n                  position: 'relative',\n                  top: -6,\n                }}\n              >\n                {filterDescription}\n              </Typography.Text>\n            </Col>\n          )}\n        </Row>\n        <Row style={{ flex: 1, minHeight: 'inherit' }}>\n          {hasNoData ? (\n            <NoDataContainer>\n              <Typography.Text>\n                Não há dados disponíveis para exibição\n              </Typography.Text>\n            </NoDataContainer>\n          ) : (\n            <GraficoBar id={id} />\n          )}\n        </Row>\n      </CardWrapper>\n    </>\n  );\n}\n\nexport default BarGraphic;\n","import React, { useEffect, useState } from 'react';\nimport { Column } from '@antv/g2plot';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { Row, Col, Icons, Typography } from '~/components';\nimport {\n  GraficoColumn,\n  Visualizar,\n  CardWrapper,\n  NoDataContainer,\n} from './style';\nimport Filter from './Filter.component';\nimport ExercicioSelect from './ExercicioSelect.component';\n\nconst NumberFormatter = function NumberFormatter(value) {\n  let newNum = value;\n  const suffix = ['', ' Mil', ' Mi', ' Bi', ' Tri'];\n  let suffixNum = 0;\n  if (newNum > 10000) {\n    while (newNum >= 1000) {\n      newNum /= 1000;\n      suffixNum += 1;\n    }\n    return newNum + suffix[suffixNum];\n  }\n  return newNum;\n};\n\nfunction ColumnGraphic({\n  id,\n  titulo,\n  cor,\n  data,\n  legendaEixoX,\n  legendaEixoY,\n  ValorLink,\n  hasFilter,\n  filterDescription,\n  contentFilter,\n  showEyeButton = false,\n  corFonte,\n  showExercicioSelect,\n  exercicio,\n}) {\n  const [column, setColumn] = useState(null);\n  const {\n    graficHighContrastStyle,\n    highContrast,\n    graficDefaultStyle,\n    zoomFonte,\n  } = useSelector(state => state.configuration);\n  const getConfigStyle = highContrast\n    ? graficHighContrastStyle\n    : graficDefaultStyle;\n\n  const [config] = useState({\n    padding: [20, 20, 100, 70],\n    title: {\n      visible: false,\n      text: legendaEixoX,\n      alignTo: 'middle',\n      style: getConfigStyle,\n    },\n    showTitle: false,\n    autoFit: true,\n    color: cor,\n    data,\n    xField: 'EixoX',\n    yField: 'EixoY',\n    xAxis: {\n      visible: true,\n      title: {\n        visible: legendaEixoX || false,\n        text: legendaEixoX || '',\n        style: getConfigStyle,\n      },\n      label: {\n        formatter: v => {\n          return v.trim().length >= 7 ? `${v.substring(0, 7)}...` : v.trim();\n        },\n        rotate: -20,\n        offsetX: -30,\n        offsetY: -6,\n        style: getConfigStyle,\n      },\n    },\n    yAxis: {\n      visible: true,\n      title: {\n        visible: legendaEixoY || false,\n        text: legendaEixoY || '',\n        offset: 60,\n        style: getConfigStyle,\n      },\n      label: {\n        formatter: v => {\n          return NumberFormatter(v);\n        },\n        style: getConfigStyle,\n      },\n    },\n    tooltip: {\n      showTitle: true,\n      title: legendaEixoY,\n      formatter: ({ EixoX, EixoY }) => {\n        return {\n          name: EixoX,\n          value: new Intl.NumberFormat('pt-BR').format(EixoY),\n        };\n      },\n    },\n  });\n\n  useEffect(() => {\n    if (column) return;\n    const element = document.getElementById(id);\n\n    if (element) {\n      const columnRender = new Column(element, { data, ...config });\n      setColumn(columnRender);\n      columnRender.render();\n    }\n  }, [column, config, data, id]);\n\n  useEffect(() => {\n    if (column) {\n      column.update({\n        title: {\n          ...config.title,\n          style: getConfigStyle,\n        },\n        xAxis: {\n          ...config.xAxis,\n\n          title: {\n            ...config.xAxis.title,\n            style: getConfigStyle,\n          },\n          label: {\n            ...config.xAxis.label,\n            style: getConfigStyle,\n          },\n        },\n        yAxis: {\n          ...config.yAxis,\n          title: {\n            ...config.yAxis.title,\n            style: getConfigStyle,\n          },\n          label: {\n            ...config.yAxis.label,\n            style: getConfigStyle,\n          },\n        },\n      });\n\n      column.render();\n    }\n  }, [\n    highContrast,\n    config.text,\n    config.label,\n    getConfigStyle,\n    column,\n    config.title,\n    config.xAxis,\n    config.yAxis,\n    zoomFonte,\n  ]);\n\n  useEffect(() => {\n    if (column) {\n      column.update({\n        data,\n      });\n      column.render();\n    }\n  }, [data, column]);\n\n  const hasNoData = !data || data.length === 0;\n\n  return (\n    <>\n      <CardWrapper\n        title={\n          <span\n            style={{ fontSize: `${18 + 2 * zoomFonte}px`, fontWeight: 500 }}\n          >\n            {titulo}\n          </span>\n        }\n        extra={\n          <>\n            {showExercicioSelect && <ExercicioSelect id={id} />}\n            {showEyeButton && (\n              <Visualizar>\n                <Link to={ValorLink} style={{ color: corFonte }}>\n                  <Icons.EyeOutlined />\n                </Link>\n              </Visualizar>\n            )}\n          </>\n        }\n        size=\"small\"\n      >\n        <Row>\n          {hasFilter && (\n            <Col flex=\"45px\" style={{ display: 'flex' }}>\n              <Filter\n                idGrafico={id}\n                contentFilter={contentFilter}\n                exercicio={exercicio}\n              />\n            </Col>\n          )}\n          {filterDescription && (\n            <Col flex=\"auto\">\n              <Typography.Text\n                style={{\n                  position: 'relative',\n                  top: -6,\n                }}\n              >\n                {filterDescription}\n              </Typography.Text>\n            </Col>\n          )}\n        </Row>\n        <Row style={{ flex: 1, minHeight: 'inherit' }}>\n          {hasNoData ? (\n            <NoDataContainer>\n              <Typography.Text>\n                Não há dados disponíveis para exibição\n              </Typography.Text>\n            </NoDataContainer>\n          ) : (\n            <GraficoColumn id={id} />\n          )}\n        </Row>\n      </CardWrapper>\n    </>\n  );\n}\n\nexport default ColumnGraphic;\n","import React, { useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Empty } from 'antd';\nimport { useSelector } from 'react-redux';\nimport { Icons } from '~/components';\nimport { Visualizar, CardWrapper } from './style';\nimport ExercicioSelect from './ExercicioSelect.component';\n\nfunction EmptyCardGrafico({\n  id,\n  titulo,\n  valorLink,\n  tamanho,\n  corFonte,\n  showEyeButton = false,\n  showExercicioSelect,\n}) {\n  const { zoomFonte } = useSelector(state => state.configuration);\n\n  useEffect(() => {}, [zoomFonte]);\n  return (\n    <CardWrapper\n      title={\n        <span style={{ fontSize: `${18 + 2 * zoomFonte}px`, fontWeight: 500 }}>\n          {titulo}\n        </span>\n      }\n      extra={\n        <>\n          {showExercicioSelect && <ExercicioSelect id={id} />}\n          {showEyeButton && (\n            <Visualizar>\n              <Link to={valorLink} style={{ color: corFonte }}>\n                <Icons.EyeOutlined />\n              </Link>\n            </Visualizar>\n          )}\n        </>\n      }\n      size=\"small\"\n      style={{\n        height: '100%',\n        fontSize: '25px',\n      }}\n    >\n      <Empty\n        description=\"Nenhum registro encontrado\"\n        image={Empty.PRESENTED_IMAGE_SIMPLE}\n        style={{ margin: 0, color: '#c9c9c9' }}\n        imageStyle={{\n          maxHeight: tamanho > 1 ? 'auto' : '3rem',\n          marginTop: tamanho > 1 ? '4rem' : 0,\n        }}\n      />\n    </CardWrapper>\n  );\n}\n\nexport default EmptyCardGrafico;\n","/* eslint-disable jsx-a11y/interactive-supports-focus */\nimport React, { useState, useEffect } from 'react';\nimport { Tooltip } from 'antd';\nimport { useSelector } from 'react-redux';\nimport { Pie } from '@antv/g2plot';\nimport { useHistory } from 'react-router-dom';\nimport { Row, Col } from '~/components';\nimport { iconEnum } from '~/modules/Helper/iconEnum';\nimport {\n  ValorDestaqueDiv,\n  IconeDiv,\n  StatisticSpan,\n  ValorDescricaoSpan,\n  IconeMedioDiv,\n  IconeMedioImg,\n  ValorDescricaoDestaqueMedioDiv,\n  ValorDestaqueMedioDiv,\n  ValorSecundarioMedioSpan,\n  GraficoMedio,\n  DescricaoGrafico,\n  CardWrapper,\n  DescricaoLinkExternoDiv,\n  DescricaoLinkExternoDivMedio,\n  StatisticSpanMedio,\n  StyledCol,\n} from '~/components/Grafico/style';\n\nimport {\n  useWindowListener,\n  tiposDevice,\n} from '~/components/Grafico/windowListener.component';\nimport ExercicioSelect from '~/components/Grafico/ExercicioSelect.component';\nimport { TIPO_ACESSO } from '../../Helper/tipoAcesso';\n\nfunction StatisticCard({\n  id,\n  Tamanho,\n  Titulo,\n  IconePersonalizado,\n  Icone,\n  IconeCor,\n  TipoAcesso,\n  ValorDestaque,\n  DescricaoValorDestaque,\n  ExibirValorSecundario,\n  ValorSecundario,\n  DescricaoValorSecundario,\n  ExibirGraficoPorcentagem,\n  DescricaoLinkExterno,\n  PorcentagemValorDestaque,\n  PorcentagemValorSecundario,\n  ValorLink,\n  corFonte,\n  showExercicioSelect,\n}) {\n  const windowListener = useWindowListener();\n\n  const donutData = [\n    {\n      type: DescricaoValorDestaque,\n      value: parseFloat(PorcentagemValorDestaque),\n    },\n    {\n      type: DescricaoValorSecundario,\n      value: parseFloat(PorcentagemValorSecundario),\n    },\n  ];\n\n  const [donut, setDonut] = useState(null);\n  const { zoomFonte } = useSelector(state => state.configuration);\n  const [config] = useState({\n    title: false,\n    description: false,\n    label: {\n      visible: false,\n    },\n    legend: {\n      visible: false,\n      flipPage: false,\n    },\n    autoFit: true,\n    radius: 0.8,\n    statistic: {\n      visible: true,\n      title: {\n        content: 'Total',\n        style: {\n          fontSize: 15,\n        },\n      },\n      content: {\n        content: `${Math.round(parseFloat(PorcentagemValorDestaque))}%`,\n        style: {\n          fontSize: 18,\n        },\n      },\n      triggerOn: null,\n      triggerOff: null,\n    },\n    colorField: 'type',\n    angleField: 'value',\n    color: ['#5AD8A6', '#D9D9D9'],\n    innerRadius: 1.2,\n  });\n\n  const history = useHistory();\n\n  useEffect(() => {\n    if (\n      windowListener &&\n      windowListener.device === tiposDevice.mobile &&\n      donut\n    ) {\n      setDonut(null);\n    } else if (\n      windowListener &&\n      windowListener.device === tiposDevice.desktop &&\n      !donut\n    ) {\n      const element = document.getElementById(id);\n      if (element) {\n        const donutRender = new Pie(element, { data: donutData, ...config });\n        setDonut(donutRender);\n        donutRender.render();\n      }\n    }\n  }, [config, donut, donutData, id, windowListener, zoomFonte]);\n\n  function hrefFunction(link) {\n    if (TipoAcesso === TIPO_ACESSO.INTERNO) return history.push(link);\n\n    window.open(link, '_blank');\n  }\n\n  return (\n    <>\n      {Tamanho === 1 ? (\n        <Tooltip title=\"Clique para mais detalhes\">\n          <CardWrapper\n            title={\n              <span\n                style={{ fontSize: `${18 + 2 * zoomFonte}px`, fontWeight: 500 }}\n              >\n                {Titulo}\n              </span>\n            }\n            extra={showExercicioSelect && <ExercicioSelect id={id} />}\n            hoverable\n            size=\"small\"\n            style={{\n              fontSize: '25px',\n              backgroundColor: 'rgba(255, 255, 255, 0.9)',\n              maxHeight: '99.5%',\n              cursor: 'default',\n            }}\n          >\n            <div\n              onClick={() => hrefFunction(ValorLink)}\n              style={{ cursor: 'pointer' }}\n            >\n              <Row>\n                <Col\n                  lg={8}\n                  xs={8}\n                  style={{\n                    display: 'flex',\n                    alignItems: 'center',\n                  }}\n                >\n                  <IconeDiv>\n                    {Icone &&\n                      iconEnum\n                        .find(x => x.name === Icone)\n                        ?.value({ color: IconeCor })}\n                  </IconeDiv>\n                  {!Icone && (\n                    <IconeMedioImg\n                      tamanho={Tamanho}\n                      src={IconePersonalizado}\n                      alt=\"Icone personalizado\"\n                    />\n                  )}\n                </Col>\n                <Col\n                  lg={16}\n                  xs={16}\n                  style={{ display: 'flex', alignItems: 'center' }}\n                >\n                  {TipoAcesso === TIPO_ACESSO.INTERNO ? (\n                    <StatisticSpan>\n                      <Row>\n                        <Col lg={24}>\n                          <ValorDescricaoSpan>\n                            {DescricaoValorDestaque}\n                          </ValorDescricaoSpan>\n                        </Col>\n                      </Row>\n                      <Row>\n                        <Col lg={24}>\n                          <ValorDestaqueDiv>{ValorDestaque}</ValorDestaqueDiv>\n                        </Col>\n                      </Row>\n                    </StatisticSpan>\n                  ) : (\n                    <DescricaoLinkExternoDiv>\n                      {DescricaoLinkExterno}\n                    </DescricaoLinkExternoDiv>\n                  )}\n                </Col>\n              </Row>\n            </div>\n          </CardWrapper>\n        </Tooltip>\n      ) : (\n        <Tooltip title=\"Clique para mais detalhes\">\n          <CardWrapper\n            title={\n              <span\n                style={{ fontSize: `${18 + 2 * zoomFonte}px`, fontWeight: 500 }}\n              >\n                {Titulo}\n              </span>\n            }\n            extra={showExercicioSelect && <ExercicioSelect id={id} />}\n            hoverable\n            size=\"small\"\n            style={{\n              height: '100%',\n              fontSize: '25px',\n              backgroundColor: 'rgba(255, 255, 255, 0.9)',\n              cursor: 'default',\n            }}\n          >\n            <div\n              onClick={() => hrefFunction(ValorLink)}\n              style={{ cursor: 'pointer', height: '100%' }}\n            >\n              {windowListener &&\n              windowListener.device === tiposDevice.mobile &&\n              id ? (\n                <>\n                  <Row\n                    style={{\n                      display: 'flex',\n                      alignItems: 'center',\n                      height: '100%',\n                    }}\n                  >\n                    <Col\n                      lg={6}\n                      xs={10}\n                      style={{ display: 'flex', justifyContent: 'center' }}\n                    >\n                      <IconeMedioDiv tamanho={Tamanho}>\n                        {Icone &&\n                          iconEnum\n                            .find(x => x.name === Icone)\n                            ?.value({ color: IconeCor })}\n                      </IconeMedioDiv>\n                      {!Icone && (\n                        <IconeMedioImg\n                          tamanho={Tamanho}\n                          src={IconePersonalizado}\n                          alt=\"Icone personalizado\"\n                        />\n                      )}\n                    </Col>\n                    <StyledCol lg={11} xs={14}>\n                      {TipoAcesso === TIPO_ACESSO.INTERNO ? (\n                        <StatisticSpanMedio>\n                          <Row>\n                            <Col lg={24}>\n                              <ValorDescricaoDestaqueMedioDiv\n                                corFonte={corFonte}\n                                tamanho={Tamanho}\n                              >\n                                {DescricaoValorDestaque}\n                                <br />\n                                <ValorDestaqueMedioDiv\n                                  corFonte={corFonte}\n                                  tamanho={Tamanho}\n                                >\n                                  {ValorDestaque}\n                                </ValorDestaqueMedioDiv>\n                              </ValorDescricaoDestaqueMedioDiv>\n                            </Col>\n                          </Row>\n                          {ExibirValorSecundario && (\n                            <>\n                              <Row>\n                                <Col lg={24}>\n                                  <ValorSecundarioMedioSpan tamanho={Tamanho}>\n                                    {`${DescricaoValorSecundario}: `}\n                                    <span>{`${ValorSecundario}`}</span>\n                                  </ValorSecundarioMedioSpan>\n                                </Col>\n                              </Row>\n                            </>\n                          )}\n                        </StatisticSpanMedio>\n                      ) : (\n                        <DescricaoLinkExternoDiv>\n                          {DescricaoLinkExterno}\n                        </DescricaoLinkExternoDiv>\n                      )}\n                    </StyledCol>\n                  </Row>\n                </>\n              ) : (\n                <Row\n                  style={{\n                    display: 'flex',\n                    alignItems: 'center',\n                    height: '100%',\n                  }}\n                >\n                  <Col\n                    lg={6}\n                    xs={12}\n                    style={{ display: 'flex', justifyContent: 'center' }}\n                  >\n                    <IconeMedioDiv tamanho={Tamanho}>\n                      {Icone &&\n                        iconEnum\n                          .find(x => x.name === Icone)\n                          ?.value({ color: IconeCor })}\n                    </IconeMedioDiv>\n                    {!Icone && (\n                      <IconeMedioImg\n                        tamanho={Tamanho}\n                        src={IconePersonalizado}\n                        alt=\"Icone personalizado\"\n                      />\n                    )}\n                  </Col>\n                  <StyledCol lg={11} xs={14}>\n                    {TipoAcesso === TIPO_ACESSO.INTERNO ? (\n                      <StatisticSpanMedio>\n                        <Row>\n                          <Col lg={24}>\n                            <ValorDescricaoDestaqueMedioDiv tamanho={Tamanho}>\n                              {DescricaoValorDestaque}\n                              <br />\n                              <ValorDestaqueMedioDiv tamanho={Tamanho}>\n                                {ValorDestaque}\n                              </ValorDestaqueMedioDiv>\n                            </ValorDescricaoDestaqueMedioDiv>\n                          </Col>\n                        </Row>\n                        {ExibirValorSecundario && (\n                          <>\n                            <Row>\n                              <Col lg={24}>\n                                <ValorSecundarioMedioSpan tamanho={Tamanho}>\n                                  {`${DescricaoValorSecundario} `}\n                                  <span>{`${ValorSecundario}`}</span>\n                                </ValorSecundarioMedioSpan>\n                              </Col>\n                            </Row>\n                          </>\n                        )}\n                      </StatisticSpanMedio>\n                    ) : (\n                      <DescricaoLinkExternoDivMedio>\n                        {DescricaoLinkExterno}\n                      </DescricaoLinkExternoDivMedio>\n                    )}\n                  </StyledCol>\n                  <StyledCol\n                    lg={6}\n                    xs={8}\n                    style={{ display: 'flex', justifyContent: 'flex-end' }}\n                  >\n                    {ExibirGraficoPorcentagem && (\n                      <div>\n                        <GraficoMedio id={id} tamanho={Tamanho} />\n                        <DescricaoGrafico tamanho={Tamanho}>\n                          {`Percentual de ${DescricaoValorDestaque} sobre ${DescricaoValorSecundario}`}\n                        </DescricaoGrafico>\n                      </div>\n                    )}\n                  </StyledCol>\n                </Row>\n              )}\n            </div>\n          </CardWrapper>\n        </Tooltip>\n      )}\n    </>\n  );\n}\n\nexport default StatisticCard;\n","import styled from 'styled-components';\nimport { Card, Icons, Typography } from '~/components';\n\nexport const CardNoConfigHome = styled(Card)`\n  && {\n    justify-content: center;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    margin: 10px;\n  }\n  .ant-card-body {\n    display: flex;\n    flex-direction: column;\n    margin: 100px 0px;\n  }\n`;\n\nexport const IconNoConfigHome = styled(Icons.SettingOutlined)`\n  && {\n    font-size: 25px;\n    margin-bottom: 10px;\n    color: rgb(201, 201, 201);\n  }\n`;\n\nexport const TextNoConfigHome = styled(Typography.Text)`\n  && {\n    font-weight: 400;\n    font-size: 14px;\n    margin-bottom: 0;\n    text-align: center;\n    color: rgb(201, 201, 201);\n  }\n`;\n","import React, { useState, useEffect, useContext } from 'react';\nimport { useSelector } from 'react-redux';\nimport { WidthProvider, Responsive } from 'react-grid-layout';\nimport InformacaoDashboard from '~/components/InformacaoDashboard/InformacaoDashboard.component';\nimport CardImagemDashboard from '~/components/CardImagemDashboard/cardImagemDashboard.component';\nimport YoutubePlayer from '~/components/YoutubePlayer/YoutubePlayer.component';\nimport DonutGraphic from '~/components/Grafico/DonutGraphic.component';\nimport PieGraphic from '~/components/Grafico/PieGraphic.component';\nimport BarGraphic from '~/components/Grafico/BarGraphic.component';\nimport ColumnGraphic from '~/components/Grafico/ColumnGraphic.component';\nimport EmptyCardGrafico from '~/components/Grafico/EmptyCardGraphic.component';\nimport { useMenus } from '~/contexts/menu.context';\nimport { getFullUrl } from '~/services/FileManager/file-manager.service';\nimport { getHomeService } from '../services/dashboard.service';\nimport StatisticCard from '../components/StatisticCard.component';\n\nimport {\n  CardNoConfigHome,\n  IconNoConfigHome,\n  TextNoConfigHome,\n} from './dashboard.container.styled';\n\nimport {\n  ListaHomeGraficoContext,\n  HomeGraficoContext,\n} from '../context/listaHomeGraficoContext';\nimport { TIPO_ACESSO } from '../../Helper/tipoAcesso';\n\nfunction Dashboard() {\n  const ResponsiveReactGridLayout = WidthProvider(Responsive);\n  const { resetMenuSelecionado } = useMenus();\n\n  const [menuIsCollapsed, setMenuIsCollapsed] = useState(false);\n\n  useEffect(() => {\n    function forceComponentReRender() {\n      setTimeout(() => setMenuIsCollapsed(!menuIsCollapsed), 800);\n    }\n\n    function addButtonListeners(buttonNode) {\n      buttonNode.addEventListener('click', forceComponentReRender);\n      buttonNode.addEventListener('keydown', forceComponentReRender);\n    }\n\n    function removeButtonListeners(buttonNode) {\n      buttonNode.removeEventListener('click', forceComponentReRender);\n      buttonNode.removeEventListener('keydown', forceComponentReRender);\n    }\n\n    let collapseButton = document.getElementsByClassName('collapseButton');\n\n    function updateButtonOnResize() {\n      removeButtonListeners(collapseButton[0]);\n      collapseButton = document.getElementsByClassName('collapseButton');\n      addButtonListeners(collapseButton[0]);\n    }\n\n    addButtonListeners(collapseButton[0]);\n    window.addEventListener('resize', updateButtonOnResize);\n\n    return () => {\n      removeButtonListeners(collapseButton[0]);\n      window.removeEventListener('resize', updateButtonOnResize);\n    };\n  }, [menuIsCollapsed]);\n\n  const [layouts, setLayouts] = useState();\n  const { item, setItem, home, setHome, anoAtual } = useContext(\n    HomeGraficoContext\n  );\n  const [noConfigError, setNoConfigError] = useState('');\n\n  const gridContainer = {\n    overflow: 'hidden',\n    left: -10,\n  };\n\n  const gridBackground = {\n    width: '100%',\n    height: '100%',\n    left: '0px',\n    right: '0px',\n    backgroundSize: '3% 3%',\n  };\n\n  const { corFonte } = useSelector(state => state.configuration);\n\n  useEffect(() => {\n    async function getHome() {\n      const response = await getHomeService(anoAtual);\n      if (response && response.data) setHome(response.data);\n    }\n    getHome();\n  }, []);\n\n  useEffect(() => {\n    if (item) {\n      const layoutDefault = item.map(el => ({\n        i: el.id,\n        ...el.position,\n        static: true,\n      }));\n\n      const sm = [];\n      let previousItemY = 0;\n\n      item.forEach(el => {\n        const newItem = {\n          i: el.id,\n          ...el.position,\n          x: 0,\n          y: previousItemY,\n          static: true,\n        };\n        sm.push(newItem);\n        previousItemY += el.position.h;\n      });\n\n      const newlayouts = {\n        sm,\n        md: layoutDefault,\n        lg: layoutDefault,\n      };\n      setLayouts(newlayouts);\n    }\n  }, [item]);\n\n  useEffect(() => {\n    async function getListaGrafico() {\n      const listaHomeItem = home?.ListaHomeItem.map(homeItem => {\n        const titulo =\n          homeItem.Titulo &&\n          anoAtual &&\n          !homeItem.ExibirExercicio &&\n          homeItem.HomeItemBotao?.TipoAcesso !== TIPO_ACESSO.EXTERNO\n            ? `${homeItem.Titulo} - Ano ${anoAtual}`\n            : homeItem.Titulo || '';\n\n        if (homeItem.HomeItemBotao) {\n          return {\n            id: homeItem.Id,\n            position: homeItem.Posicao,\n            component: (\n              <StatisticCard\n                id={homeItem.Id}\n                Tamanho={homeItem.Tamanho}\n                Titulo={titulo}\n                Icone={homeItem.HomeItemBotao?.Icone}\n                IconePersonalizado={getFullUrl(\n                  homeItem.HomeItemBotao?.UrlIconePersonalizado\n                )}\n                IconeCor={homeItem.HomeItemBotao?.IconeCor}\n                TipoAcesso={homeItem.HomeItemBotao.TipoAcesso}\n                DescricaoValorDestaque={\n                  homeItem.HomeItemBotao.DescricaoValorDestaque\n                }\n                ValorDestaque={homeItem.HomeItemBotao.ValorDestaque}\n                ExibirValorSecundario={\n                  homeItem.HomeItemBotao.ExibirValorSecundario\n                }\n                ExibirGraficoPorcentagem={\n                  homeItem.HomeItemBotao.ExibirGraficoPorcentagem\n                }\n                DescricaoValorSecundario={\n                  homeItem.HomeItemBotao.DescricaoValorSecundario\n                }\n                ValorSecundario={homeItem.HomeItemBotao.ValorSecundario}\n                DescricaoLinkExterno={homeItem.HomeItemBotao.ValorExterno}\n                PorcentagemValorDestaque={\n                  homeItem.HomeItemBotao.PorcentagemValorDestaque\n                }\n                PorcentagemValorSecundario={\n                  homeItem.HomeItemBotao.PorcentagemValorSecundario\n                }\n                ValorLink={homeItem.Link}\n                corFonte={corFonte}\n                showExercicioSelect={homeItem.ExibirExercicio}\n              />\n            ),\n          };\n        }\n        if (homeItem.HomeItemTexto) {\n          return {\n            id: homeItem.Id,\n            position: homeItem.Posicao,\n            component: (\n              <InformacaoDashboard\n                informacao={homeItem.HomeItemTexto.Informacao}\n                fundoTransparente={homeItem.HomeItemTexto.FundoTransparente}\n              />\n            ),\n          };\n        }\n        if (homeItem.HomeItemVideo) {\n          return {\n            id: homeItem.Id,\n            position: homeItem.Posicao,\n            component: (\n              <YoutubePlayer videoId={homeItem.HomeItemVideo.VideoId} />\n            ),\n          };\n        }\n        if (homeItem.HomeItemCardImagem) {\n          return {\n            id: homeItem.Id,\n            position: homeItem.Posicao,\n            component: (\n              <CardImagemDashboard\n                urlImagem={getFullUrl(homeItem.HomeItemCardImagem.UrlImagem)}\n                valorLink={homeItem.HomeItemCardImagem.Link}\n                tipoAcesso={homeItem.HomeItemCardImagem.TipoAcesso}\n              />\n            ),\n          };\n        }\n        if (homeItem.HomeItemGrafico) {\n          switch (homeItem.HomeItemGrafico.TipoGrafico) {\n            case 1:\n              return {\n                id: homeItem.Id,\n                position: homeItem.Posicao,\n                component: (\n                  <PieGraphic\n                    id={homeItem.Id}\n                    titulo={titulo}\n                    data={homeItem.HomeItemGrafico.Dados}\n                    legenda={homeItem.HomeItemGrafico.LegendaCampoReferencia}\n                    tootltipTitle={homeItem.HomeItemGrafico.LegendaCampoValor}\n                    ValorLink={homeItem.Link}\n                    corFonte={corFonte}\n                    showEyeButton\n                    showExercicioSelect={homeItem.ExibirExercicio}\n                  />\n                ),\n              };\n            case 2:\n              return {\n                id: homeItem.Id,\n                position: homeItem.Posicao,\n                component: (\n                  <ColumnGraphic\n                    id={homeItem.Id}\n                    titulo={titulo}\n                    cor={homeItem.HomeItemGrafico.CorGrafico}\n                    data={homeItem.HomeItemGrafico.Dados}\n                    legendaEixoX={\n                      homeItem.HomeItemGrafico.LegendaCampoReferencia\n                    }\n                    legendaEixoY={homeItem.HomeItemGrafico.LegendaCampoValor}\n                    subTitulo={homeItem.HomeItemGrafico.Periodo}\n                    ValorLink={homeItem.Link}\n                    corFonte={corFonte}\n                    showEyeButton\n                    showExercicioSelect={homeItem.ExibirExercicio}\n                  />\n                ),\n              };\n            case 3:\n              return {\n                id: homeItem.Id,\n                position: homeItem.Posicao,\n                component: (\n                  <BarGraphic\n                    id={homeItem.Id}\n                    titulo={titulo}\n                    cor={homeItem.HomeItemGrafico.CorGrafico}\n                    data={homeItem.HomeItemGrafico.Dados}\n                    legendaEixoX={\n                      homeItem.HomeItemGrafico.LegendaCampoReferencia\n                    }\n                    legendaEixoY={homeItem.HomeItemGrafico.LegendaCampoValor}\n                    ValorLink={homeItem.Link}\n                    corFonte={corFonte}\n                    showEyeButton\n                    showExercicioSelect={homeItem.ExibirExercicio}\n                  />\n                ),\n              };\n            case 4:\n              return {\n                id: homeItem.Id,\n                position: homeItem.Posicao,\n                component: (\n                  <DonutGraphic\n                    id={homeItem.Id}\n                    titulo={titulo}\n                    data={homeItem.HomeItemGrafico.Dados}\n                    legenda={homeItem.HomeItemGrafico.LegendaCampoReferencia}\n                    tootltipTitle={homeItem.HomeItemGrafico.LegendaCampoValor}\n                    ValorLink={homeItem.Link}\n                    corFonte={corFonte}\n                    showEyeButton\n                    showExercicioSelect={homeItem.ExibirExercicio}\n                  />\n                ),\n              };\n            default:\n              return {\n                id: homeItem.Id,\n                position: homeItem.Posicao,\n                component: (\n                  <EmptyCardGrafico\n                    id={homeItem.Id}\n                    titulo={titulo}\n                    valorLink={homeItem.Link}\n                    tamanho={homeItem.Tamanho}\n                    corFonte={corFonte}\n                    showExercicioSelect={homeItem.ExibirExercicio}\n                  />\n                ),\n              };\n          }\n        } else {\n          return {\n            id: homeItem.Id,\n            position: homeItem.Posicao,\n            component: (\n              <EmptyCardGrafico\n                id={homeItem.Id}\n                titulo={homeItem.Titulo}\n                valorLink={homeItem.Link}\n                tamanho={homeItem.Tamanho}\n                corFonte={corFonte}\n                showExercicioSelect={homeItem.ExibirExercicio}\n              />\n            ),\n          };\n        }\n      });\n      if (listaHomeItem) {\n        if (!listaHomeItem.itemHome)\n          setNoConfigError(\n            <CardNoConfigHome>\n              <IconNoConfigHome />\n              <TextNoConfigHome>\n                Nenhuma Configuração Realizada na Home\n              </TextNoConfigHome>\n            </CardNoConfigHome>\n          );\n        setItem(\n          listaHomeItem.filter(itemHome => {\n            return itemHome;\n          })\n        );\n      }\n    }\n\n    getListaGrafico();\n  }, [home, setHome]);\n\n  useEffect(() => {\n    resetMenuSelecionado();\n  }, []);\n\n  return (\n    <div style={gridContainer}>\n      <div style={gridBackground} />\n      {item?.length ? (\n        <ResponsiveReactGridLayout\n          breakpoints={{ lg: 1440, md: 1024, sm: 768 }}\n          cols={{ lg: 12, md: 12, sm: 1 }}\n          layouts={layouts}\n          rowHeight={75}\n        >\n          {item?.length &&\n            item.map(el => <div key={el.id}>{el.component}</div>)}\n        </ResponsiveReactGridLayout>\n      ) : (\n        <>{noConfigError}</>\n      )}\n    </div>\n  );\n}\n\nfunction Container() {\n  return (\n    <ListaHomeGraficoContext>\n      <Dashboard />\n    </ListaHomeGraficoContext>\n  );\n}\n\nexport default Container;\n","import styled from 'styled-components';\n\nexport const Content = styled.div`\n  background: transparent;\n  font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n`;\n","import React from 'react';\nimport { Accordion } from '~/components';\nimport { Content } from './style';\n\nconst { Panel } = Accordion;\n\nfunction FaqItem({ pergunta, resposta }) {\n  return (\n    <>\n      <Accordion\n        accordion\n        style={{\n          marginBottom: 5,\n          background: 'rgba(255, 255, 255, 0.9)',\n        }}\n      >\n        <Panel forceRender header={pergunta} key=\"1\">\n          <Content dangerouslySetInnerHTML={{ __html: resposta }} />\n        </Panel>\n      </Accordion>\n    </>\n  );\n}\n\nexport default FaqItem;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { getFaqService } from '../services/faq.service';\nimport { Informacao, PageTitle, Row, ButtonGoBack } from '~/components';\nimport FaqItem from '../components/FaqItem/faqitem.component';\n\nfunction Faq() {\n  const [informacao, setInformacao] = useState({ __html: null });\n  const [listaFaqItem, setListaFaqItem] = useState([]);\n  const history = useHistory();\n\n  useEffect(() => {\n    async function getFaq() {\n      const response = await getFaqService();\n      if (response && response.data) {\n        setListaFaqItem(response.data.FaqItem);\n        setInformacao(response.data.Informacao);\n      }\n    }\n\n    getFaq();\n  }, []);\n\n  function goBack() {\n    history.push('/');\n  }\n\n  return (\n    <>\n      <PageTitle titulo=\"FAQ\" />\n      {informacao?.Texto && (\n        <Informacao titulo={informacao.Titulo} informacao={informacao.Texto} />\n      )}\n\n      {Boolean(listaFaqItem?.length) &&\n        listaFaqItem.map(el => (\n          <FaqItem\n            key={el.TituloPergunta}\n            pergunta={el.TituloPergunta}\n            resposta={el.TextoResposta}\n          />\n        ))}\n\n      <Row>\n        <ButtonGoBack OnClick={goBack} />\n      </Row>\n    </>\n  );\n}\n\nexport default Faq;\n","import api from '~/services/api';\n\nfunction getFaqService() {\n  return api.get('faq');\n}\n\nexport { getFaqService };\n","import styled from 'styled-components';\n\nexport const Content = styled.div`\n  background: white;\n  font-size: ${({ theme }) => `${16 + 2 * theme.zoomFonte}px`};\n  padding: 14px;\n  margin-top: 10px;\n`;\n\nexport const ContainerExportar = styled.div`\n  display: inline-flex;\n  width: 120px;\n  margin-bottom: 10px;\n  margin-left: 5px;\n  position: relative;\n  top: -1px;\n`;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  flex-wrap: wrap;\n`;\n\nexport const NumberRegistersArea = styled.div`\n  display: flex;\n  flex-wrap: wrap;\n\n  .ant-pagination {\n    display: flex;\n    margin-top: 5px;\n    margin-bottom: 5px;\n  }\n\n  .ant-select {\n    margin-left: 15px;\n    margin-top: 5px;\n    margin-bottom: 5px;\n  }\n\n  .ant-pagination-item-active a,\n  .ant-pagination-item,\n  .ant-pagination-item a,\n  .ant-select,\n  .ant-pagination-prev svg,\n  .ant-pagination-next svg,\n  .ant-select-arrow svg,\n  .ant-pagination-item:focus a {\n    color: ${({ corTituloGrid }) => `${corTituloGrid}`};\n  }\n\n  .ant-pagination-item-active,\n  .ant-pagination-item:hover,\n  .ant-select:not(.ant-select-disabled):hover .ant-select-selector,\n  .ant-pagination-item:focus {\n    border-color: ${({ corTituloGrid }) => `${corTituloGrid}`};\n  }\n\n  .ant-pagination-item-active:focus a,\n  .ant-pagination-item-active:hover a,\n  .ant-pagination-item:hover a,\n  .ant-pagination-prev:hover .ant-pagination-item-link,\n  .ant-pagination-next:hover .ant-pagination-item-link {\n    border-color: ${({ corTituloGrid }) => `${corTituloGrid}`};\n    color: ${({ corTituloGrid }) => `${corTituloGrid}`};\n  }\n\n  @media (max-width: 795px) {\n    width: 100%;\n    .ant-select {\n      width: 100%;\n      margin-right: 0px;\n    }\n  }\n\n  @media (max-width: 700px) and (min-width: 545px) {\n    .ant-select {\n      width: auto;\n      margin-right: 15px;\n    }\n  }\n\n  .ant-select-selection--single .ant-select-selection__rendered {\n    margin-right: 30px;\n  }\n`;\n\nexport const ButtonsArea = styled.div`\n  display: flex;\n  margin-top: 5px;\n  margin-bottom: 5px;\n\n  .ant-typography {\n    color: ${({ corTituloGrid }) => `${corTituloGrid}`};\n  }\n\n  @media (max-width: 700px) {\n    width: 100%;\n  }\n`;\n\nexport const UltimaAtualizacaoArea = styled.div`\n  display: flex;\n  justify-content: flex-start;\n  flex-direction: row;\n  font-size: ${({ theme }) => `${12 + 2 * theme.zoomFonte}px`};\n\n  .title {\n    font-weight: bold;\n    margin-top: auto;\n    margin-bottom: auto;\n  }\n\n  .dates {\n    display: flex;\n    justify-content: space-between;\n    margin-top: auto;\n    margin-bottom: auto;\n\n    p {\n      margin-left: 10px;\n      margin-bottom: 0;\n    }\n  }\n`;\n","import React from 'react';\nimport { ClockCircleOutlined } from '@ant-design/icons';\nimport { UltimaAtualizacaoArea } from './Footer.styled';\n\nexport function UltimaAtualizacao({ dataHora, corTituloGrid }) {\n  const data = new Date(dataHora).toLocaleDateString('pt-Br');\n  const horas = new Date(dataHora).toLocaleTimeString('pt-Br');\n\n  return (\n    <UltimaAtualizacaoArea corTituloGrid={corTituloGrid}>\n      <div className=\"title\">Última Atualização:</div>\n      <div className=\"dates\">\n        <p>{data}</p>\n        <p>\n          <ClockCircleOutlined style={{ marginRight: 3 }} />\n          {horas}\n        </p>\n      </div>\n    </UltimaAtualizacaoArea>\n  );\n}\n","import api from '~/services/api';\n\nexport async function obterConfiguracoes(modulo, visao) {\n  return api.get(`modulovisao/${modulo}/${visao}/configuracao`);\n}\n\nexport async function obterConfiguracoesGerais(modulo) {\n  return api.get(`modulo/${modulo}/configuracoes`);\n}\n\nexport async function filtrar(data) {\n  return api.post('modulovisao/filter', data);\n}\n\nexport async function exportarVisao(tipoExportacao, data) {\n  return api.post(`modulovisao/exportacaogrid/${tipoExportacao}`, data);\n}\n\nexport async function obterTotalizadores(data) {\n  return api.post(`modulovisao/colunasTotalizadoras`, data);\n}\n","/* eslint-disable no-shadow */\nimport React, { useState, useEffect } from 'react';\nimport { Accordion, Select, Exportacao, Notification } from '~/components';\nimport { useSelector } from 'react-redux';\nimport { getUrlComDominio } from '~/modules/Helper/getUrl-helper';\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\nimport { Content, ContainerExportar } from './style';\nimport { UltimaAtualizacao } from '../../Modulos/components/Grid/UltimaAtualizacao.component';\nimport { exportarVisao } from '../../Modulos/services/moduloVisao.service';\n\nconst { Panel } = Accordion;\nconst { Option } = Select;\n\nfunction DadosAbertosList({ chaveModulo, visaoAnalitica, modulo }) {\n  const periodicidades =\n    visaoAnalitica && visaoAnalitica.Periodicidades\n      ? visaoAnalitica.Periodicidades\n      : [];\n  const configuration = useSelector(state => state.configuration);\n  const { corTituloGrid } = configuration;\n  const dataUltimaAtualizacao = visaoAnalitica.DataUltimaSicronizacaoModulo;\n\n  const [periodicidadeSelecionada, setPeriodicidadeSelecionada] = useState(\n    null\n  );\n  const [periodicidadeDescricao, setPeriodicidadeDescricao] = useState(null);\n  const [exercicioSelecionado, setExercicioSelecionado] = useState(null);\n  const [periodoSelecionado, setPeriodoSelecionado] = useState(null);\n  const [periodoDescricao, setperiodoDescricao] = useState(null);\n\n  const existePeriodicidade = periodicidades.length > 0;\n  const periodicidadeUnica = periodicidades.length === 1;\n\n  useEffect(() => {\n    if (periodicidadeUnica) {\n      setPeriodicidadeSelecionada(periodicidades[0].Id);\n      setPeriodicidadeDescricao(periodicidades[0].Descricao);\n    }\n  }, [visaoAnalitica]);\n\n  const handlePeriodicidadeChange = value => {\n    const parsedValue = JSON.parse(value);\n    const { periodicidadeId, periodicidadeDescricao } = parsedValue;\n\n    setPeriodicidadeSelecionada(periodicidadeId);\n    setPeriodicidadeDescricao(periodicidadeDescricao);\n    setExercicioSelecionado(null);\n    setperiodoDescricao(null);\n  };\n\n  const handleExercicioChange = value => {\n    const parsedValue = JSON.parse(value);\n    const { exercicio } = parsedValue;\n\n    setExercicioSelecionado(exercicio);\n  };\n\n  const handlePeriodoChange = value => {\n    const parsedValue = JSON.parse(value);\n    const { periodoId, periodoDescricao } = parsedValue;\n\n    setPeriodoSelecionado(periodoId);\n    setperiodoDescricao(periodoDescricao);\n  };\n\n  async function exportar(tipoExportacao) {\n    const payload = {\n      ChaveModulo: chaveModulo,\n      Exercicio: existePeriodicidade ? Number(exercicioSelecionado) : null,\n      Periodicidade: periodicidadeSelecionada,\n      Periodo: periodoSelecionado,\n      NomeVisao: visaoAnalitica.NomeVisaoAnalitica,\n      UrlExportacao: getUrlComDominio(),\n    };\n\n    if (\n      !payload.Periodicidade ||\n      (existePeriodicidade &&\n        periodicidadeSelecionada !== 'ANUAL' &&\n        !payload.Periodo) ||\n      (existePeriodicidade && !payload.Exercicio)\n    ) {\n      Notification.showError('Selecione os filtros antes de exportar.');\n      return;\n    }\n\n    try {\n      const res = await exportarVisao(tipoExportacao, payload);\n      fileManagerPaiDownload(res.data);\n    } catch (error) {\n      Notification.showError(error.response.data);\n    }\n  }\n\n  return (\n    <>\n      <Content>\n        <Panel\n          forceRender\n          header={modulo.Nome}\n          key=\"1\"\n          style={{ marginBottom: '14px' }}\n        >\n          <Content dangerouslySetInnerHTML={{ __html: visaoAnalitica }} />\n        </Panel>\n\n        <Select\n          disabled={!existePeriodicidade || periodicidadeUnica}\n          style={{ width: 240, marginBottom: 10 }}\n          onChange={handlePeriodicidadeChange}\n          placeholder=\"Periodicidade\"\n          value={periodicidadeDescricao}\n        >\n          {periodicidades &&\n            periodicidades.map(periodicidade => (\n              <Option\n                key={periodicidade.Id}\n                value={JSON.stringify({\n                  periodicidadeId: periodicidade.Id,\n                  periodicidadeDescricao: periodicidade.Descricao,\n                })}\n              >\n                {periodicidade.Descricao}\n              </Option>\n            ))}\n        </Select>\n\n        {existePeriodicidade && periodicidadeSelecionada !== 'ANUAL' && (\n          <>\n            <Select\n              style={{ width: 120, marginBottom: 10, marginLeft: 10 }}\n              onChange={handlePeriodoChange}\n              placeholder=\"Período\"\n              disabled={!periodicidadeSelecionada}\n              value={periodoDescricao}\n            >\n              {periodicidades\n                .filter(p => p.Id === periodicidadeSelecionada)\n                .map(periodicidade =>\n                  periodicidade.Periodos?.map(periodo => (\n                    <Option\n                      key={periodo.Id}\n                      value={JSON.stringify({\n                        periodoId: periodo.Id,\n                        periodoDescricao: periodo.Descricao,\n                      })}\n                    >\n                      {periodo.Descricao}\n                    </Option>\n                  ))\n                )}\n            </Select>\n          </>\n        )}\n\n        <Select\n          style={{ width: 120, marginBottom: 10, marginLeft: 10 }}\n          onChange={handleExercicioChange}\n          disabled={!periodicidadeSelecionada}\n          placeholder=\"Exercício\"\n          value={exercicioSelecionado}\n        >\n          {visaoAnalitica?.Exercicios?.map(exercicio => (\n            <Option\n              key={exercicio.Exercicio}\n              value={JSON.stringify({ exercicio: exercicio.Exercicio })}\n            >\n              {exercicio.Exercicio}\n            </Option>\n          ))}\n        </Select>\n        <ContainerExportar>\n          <Exportacao onClick={exportar} semURI />\n        </ContainerExportar>\n        <div style={{ marginTop: '10px' }}>\n          {dataUltimaAtualizacao && (\n            <UltimaAtualizacao\n              dataHora={dataUltimaAtualizacao}\n              corTituloGrid={corTituloGrid}\n            />\n          )}\n        </div>\n      </Content>\n    </>\n  );\n}\n\nexport default DadosAbertosList;\n","import React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { Informacao, PageTitle, Row, ButtonGoBack } from '~/components';\nimport { getDadosAbertosService } from '../services/dadosAbertos.service';\nimport DadosAbertosList from './../components/dadosAbertos.component';\n\nfunction DadosAbertos() {\n  const [informacao, setInformacao] = useState({ __html: null });\n  const [listaModulos, setListaModulos] = useState([]);\n  const history = useHistory();\n\n  useEffect(() => {\n    async function getDadosAbertos() {\n\n      const response = await getDadosAbertosService();\n      if (response && response.data.Informacao) {\n        setListaModulos(response.data.Modulos);\n        setInformacao(response.data.Informacao);\n      }\n\n    }\n\n    getDadosAbertos();\n  }, []);\n\n  function goBack() {\n    history.push('/');\n  }\n\n  return (\n    <>\n      <PageTitle titulo=\"Dados Abertos\" />\n      {informacao?.Texto && (\n        <Informacao titulo={informacao.Titulo} informacao={informacao.Texto} />\n      )}\n\n      {Boolean(listaModulos?.length) &&\n        listaModulos.map(el => (\n          <DadosAbertosList\n            key={el.ChaveModulo}\n            modulo={el}\n            chaveModulo={el.ChaveModulo}\n            visaoAnalitica={el.VisaoAnalitica}\n          />\n        ))}\n\n      <Row>\n        <ButtonGoBack OnClick={goBack} />\n      </Row>\n    </>\n  );\n}\n\nexport default DadosAbertos;\n","import api from '~/services/api';\n\nfunction getDadosAbertosService() {\n  return api.get('DadosAbertos');\n}\n\nexport { getDadosAbertosService };\n","import React from 'react';\nimport { Form } from 'antd';\nimport { Select, Typography } from '~/components';\n\nconst { Option } = Select;\n\nconst listaMes = [\n  { name: 'Janeiro', value: 1 },\n  { name: 'Fevereiro', value: 2 },\n  { name: 'Março', value: 3 },\n  { name: 'Abril', value: 4 },\n  { name: 'Maio', value: 5 },\n  { name: 'Junho', value: 6 },\n  { name: 'Julho', value: 7 },\n  { name: 'Agosto', value: 8 },\n  { name: 'Setembro', value: 9 },\n  { name: 'Outubro', value: 10 },\n  { name: 'Novembro', value: 11 },\n  { name: 'Dezembro', value: 12 },\n];\n\nconst listaBimestral = [\n  {\n    name: '1º Bimestre',\n    value: 1,\n  },\n  {\n    name: '2º Bimestre',\n    value: 2,\n  },\n  {\n    name: '3º Bimestre',\n    value: 3,\n  },\n  {\n    name: '4º Bimestre',\n    value: 4,\n  },\n];\n\nconst listaSemestral = [\n  {\n    name: '1º Semestre',\n    value: 1,\n  },\n  {\n    name: '2º Semestre',\n    value: 2,\n  },\n];\n\nexport const FILTRO_DEFAULT = {\n  MENSAL: 1,\n  ANUAL: 2,\n  SEM_FILTRO: 3,\n};\n\nexport const periodicidadeAnual = (\n  <>\n    <div style={{ marginBottom: 10 }}>\n      <Typography.Text style={{ fontWeight: 'bold' }}>\n        Por Exercício\n      </Typography.Text>\n    </div>\n    <Form.Item label=\"Exercício\" name=\"Periodo\">\n      <Select\n        value={new Date().getFullYear()}\n        defaultValue={new Date().getFullYear()}\n        style={{ width: 120 }}\n      >\n        <Option value={new Date().getFullYear()}>\n          {new Date().getFullYear()}\n        </Option>\n        <Option value={new Date().getFullYear() - 1}>\n          {new Date().getFullYear() - 1}\n        </Option>\n        <Option value={new Date().getFullYear() - 2}>\n          {new Date().getFullYear() - 2}\n        </Option>\n        <Option value={new Date().getFullYear() - 3}>\n          {new Date().getFullYear() - 3}\n        </Option>\n        <Option value={new Date().getFullYear() - 4}>\n          {new Date().getFullYear() - 4}\n        </Option>\n      </Select>\n    </Form.Item>\n  </>\n);\n\nexport const periodicidadeMensal = periodos => {\n  return (\n    <>\n      <div style={{ marginBottom: 10 }}>\n        <Typography.Text style={{ fontWeight: 'bold' }}>\n          Por Mês\n        </Typography.Text>\n      </div>\n      <Form.Item label=\"Mês\" name=\"Periodo\">\n        <Select defaultValue=\"Janeiro\" style={{ width: 120 }}>\n          {periodos.map(({ Id, Descricao }) => {\n            return <Option value={Id}>{Descricao}</Option>;\n          })}\n        </Select>\n      </Form.Item>\n    </>\n  );\n};\n\nexport const periodicidadeBimestral = periodos => {\n  return (\n    <>\n      <div style={{ marginBottom: 10 }}>\n        <Typography.Text style={{ fontWeight: 'bold' }}>\n          Por Bimestre\n        </Typography.Text>\n      </div>\n      <Form.Item label=\"Bimestre\" name=\"Periodo\">\n        <Select defaultValue={1} style={{ width: 120 }}>\n          {periodos.map(({ Id, Descricao }) => {\n            return <Option value={Id}>{Descricao}</Option>;\n          })}\n        </Select>\n      </Form.Item>\n    </>\n  );\n};\n\nexport const periodicidadeSemestral = periodos => {\n  return (\n    <>\n      <div style={{ marginBottom: 10 }}>\n        <Typography.Text style={{ fontWeight: 'bold' }}>\n          Por Semestre\n        </Typography.Text>\n      </div>\n      {periodos && (\n        <Form.Item label=\"Semestre\" name=\"Periodo\">\n          <Select defaultValue={periodos[0].Id} style={{ width: 120 }}>\n            {periodos.map(({ Id, Descricao }) => {\n              return <Option value={Id}>{Descricao}</Option>;\n            })}\n          </Select>\n        </Form.Item>\n      )}\n    </>\n  );\n};\n","import React from 'react';\nimport { Select, Tooltip, Row, Typography, Card } from '~/components';\n\nexport default function FiltroExercicio({\n  handleChangeExercicio,\n  exercicios,\n  exercicio,\n}) {\n  return (\n    <Row style={{ justifyContent: 'flex-start', marginBottom: '16px' }}>\n      <Card\n        style={{ width: '100%' }}\n        bodyStyle={{\n          display: 'flex',\n          alignItems: 'center',\n          padding: 12,\n        }}\n      >\n        <Typography.Title\n          level={3}\n          style={{ fontSize: 18, fontWeight: 500, marginBottom: 0 }}\n        >\n          Exercício\n        </Typography.Title>\n        <Tooltip title=\"Exercício\">\n          <Select\n            value={exercicio}\n            defaultValue={exercicio}\n            onChange={handleChangeExercicio}\n            style={{ width: '80px', marginLeft: '5px' }}\n          >\n            {exercicios.map(ano => (\n              <Select.Option key={ano} value={ano}>\n                {ano === 0 ? 'Todos' : ano}\n              </Select.Option>\n            ))}\n          </Select>\n        </Tooltip>\n      </Card>\n    </Row>\n  );\n}\n","import React from 'react';\nimport {\n  Typography,\n  Row,\n  Col,\n  Card,\n  Divider,\n  Tooltip,\n  Button,\n  Icons,\n} from '~/components';\n\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\n\nconst TotalEntidadeESic = 3;\n\nfunction CardInfo({ dados }) {\n  return (\n    <Col style={{ minHeight: 70 }}>\n      {dados.map(informacoes => (\n        <Typography.Text key={informacoes} style={{ display: 'block' }}>\n          {informacoes}\n        </Typography.Text>\n      ))}\n    </Col>\n  );\n}\n\nfunction Arquivo({ form }) {\n  return (\n    <Row style={{ marginBottom: '10px', justifyContent: 'space-between' }}>\n      <Col lg={20}>\n        <Typography.Text style={{ display: 'block', padding: '0 1.25em' }}>\n          {form.Descricao}\n        </Typography.Text>\n      </Col>\n      <Col>\n        <Tooltip title=\"Download\">\n          <Button\n            key={form.Url}\n            onClick={() => {\n              fileManagerPaiDownload(form.Url);\n            }}\n            type=\"primary\"\n            size=\"small\"\n            icon={<Icons.DownloadOutlined />}\n          />\n        </Tooltip>\n      </Col>\n    </Row>\n  );\n}\n\nfunction showFormulario(formularios) {\n  return (\n    <>\n      <Divider orientation=\"center\" plain style={{ fontWeight: '600' }}>\n        Formulários SIC\n      </Divider>\n      {formularios.map(form =>\n        form.Url ? <Arquivo key={form.Descricao} form={form} /> : null\n      )}\n    </>\n  );\n}\n\nfunction EsicCard({ dados, formularios }) {\n  const cards = dados; // dados.filter(card => card.Dados.length > 0);\n\n  return cards.map(card => {\n    const formularioentidade = formularios.find(\n      forms => forms.Entidade === card.Entidade\n    );\n\n    return (\n      <Col\n        key={card.Entidade}\n        flex={cards.length / TotalEntidadeESic}\n        style={{ marginBottom: 10 }}\n      >\n        <Card\n          title={<strong>{card.Entidade}</strong>}\n          size=\"small\"\n          style={{\n            minHeight: 248,\n            backgroundColor: 'rgba(255, 255, 255, 0.9)',\n          }}\n        >\n          <CardInfo dados={card.Dados} />\n          {formularioentidade && showFormulario(formularioentidade.Fomulario)}\n        </Card>\n      </Col>\n    );\n  });\n}\n\nfunction ESicVisoes({ dados, formularios }) {\n  return (\n    <>\n      <Row gutter={16}>\n        <EsicCard dados={dados} formularios={formularios} />\n      </Row>\n    </>\n  );\n}\n\nexport default ESicVisoes;\n","/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable no-use-before-define */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable no-inner-declarations */\n/* eslint-disable react/jsx-no-bind */\nimport React, {\n  useState,\n  useEffect,\n  useContext,\n  useCallback,\n  useMemo,\n  memo,\n} from 'react';\nimport { WidthProvider, Responsive } from 'react-grid-layout';\nimport { useHistory } from 'react-router-dom';\nimport _ from 'lodash';\nimport DonutGraphic from '~/components/Grafico/DonutGraphic.component';\nimport PieGraphic from '~/components/Grafico/PieGraphic.component';\nimport BarGraphic from '~/components/Grafico/BarGraphic.component';\nimport ColumnGraphic from '~/components/Grafico/ColumnGraphic.component';\n\nimport {\n  periodicidadeBimestral,\n  periodicidadeAnual,\n  periodicidadeMensal,\n  periodicidadeSemestral,\n} from '~/modules/Helper/FiltrosPeriodicidade';\n\nimport {\n  Informacao,\n  PageTitle,\n  ImageButton,\n  Row,\n  ButtonGoBack,\n} from '~/components';\nimport FiltroExercicio from '../components/FiltroExercicio.component';\nimport {\n  ListaGraficoContext,\n  GraficoContext,\n} from '../context/listaGraficoContext';\n\nimport {\n  redirectNotFound,\n  getConfiguracao,\n  getVisoes,\n  getGraficos,\n  getExercicios,\n  getPeriodicidade,\n} from '../services/esic.service';\n\nimport ESicVisoes from '../components/visoes.component';\n\nfunction ESic() {\n  const showEyeButton = false;\n\n  const history = useHistory();\n  const [visoesESic, setVisoesESic] = useState(null);\n  const [formularioESIC, setFormularioESIC] = useState(null);\n  const [periodicidade, setPeriodicidade] = useState(null);\n  const [exercicioSelcionado, setExercicioSelecionado] = useState(null);\n  const [exercicios, setExercicios] = useState([]);\n\n  const ResponsiveReactGridLayout = WidthProvider(Responsive);\n  const { eSic, setESic, listaGrafico, setListaGrafico } = useContext(\n    GraficoContext\n  );\n\n  // useMemo\n  const gridContainer = useMemo(\n    () => ({\n      overflow: 'hidden',\n      marginLeft: '-10px',\n    }),\n    []\n  );\n\n  const gridBackground = useMemo(\n    () => ({\n      width: '100%',\n      height: '100%',\n      left: '0px',\n      right: '0px',\n      backgroundSize: '3% 3%',\n    }),\n    []\n  );\n\n  const handleChangeExercicio = useCallback(anoSelecionado => {\n    setExercicioSelecionado(anoSelecionado);\n  }, []);\n\n  function obterUrlFormulario({\n    UrlArquivoPessoaFisicaReclamacao,\n    UrlArquivoPessoaFisicaRecurso,\n    UrlArquivoPessoaFisicaeSIC,\n    UrlArquivoPessoaJuridicaReclamacao,\n    UrlArquivoPessoaJuridicaRecurso,\n    UrlArquivoPessoaJuridicaeSIC,\n  }) {\n    const data = [\n      {\n        Entidade: 'e-SIC',\n        Fomulario: [\n          {\n            Descricao: 'Arquivo Pessoa Física',\n            Url: UrlArquivoPessoaFisicaeSIC,\n          },\n          {\n            Descricao: 'Arquivo Pessoa Jurídica',\n            Url: UrlArquivoPessoaJuridicaeSIC,\n          },\n        ],\n      },\n      {\n        Entidade: 'Reclamações',\n        Fomulario: [\n          {\n            Descricao: 'Arquivo Pessoa Física',\n            Url: UrlArquivoPessoaFisicaReclamacao,\n          },\n          {\n            Descricao: 'Arquivo Pessoa Jurídica',\n            Url: UrlArquivoPessoaJuridicaReclamacao,\n          },\n        ],\n      },\n      {\n        Entidade: 'Recursos',\n        Fomulario: [\n          {\n            Descricao: 'Arquivo Pessoa Física',\n            Url: UrlArquivoPessoaFisicaRecurso,\n          },\n          {\n            Descricao: 'Arquivo Pessoa Jurídica',\n            Url: UrlArquivoPessoaJuridicaRecurso,\n          },\n        ],\n      },\n    ];\n\n    setFormularioESIC(data);\n  }\n\n  function getFilterContent(exibicao) {\n    switch (exibicao) {\n      case 1:\n        return {\n          Periodicidade: periodicidade[0]?.Periodos[0]?.Id,\n          Content: periodicidadeMensal(periodicidade[0]?.Periodos),\n        };\n      case 2:\n        return {\n          Periodicidade: periodicidade[1]?.Periodos[0]?.Id,\n          Content: periodicidadeBimestral(periodicidade[1]?.Periodos),\n        };\n      case 5:\n        return {\n          Periodicidade: periodicidade[4]?.Periodos[0]?.Id,\n          Content: periodicidadeSemestral(periodicidade[4]?.Periodos),\n        };\n      case 6:\n        return {\n          Periodicidade: 2021,\n          Content: periodicidadeAnual,\n        };\n      default:\n        return null;\n    }\n  }\n\n  function atualizarGraficos(listaGraficoParam) {\n    if (!periodicidade || !listaGraficoParam?.length) return;\n\n    const criarConfigBase = graficoESic => {\n      const filterContent = getFilterContent(graficoESic.Exibicao);\n      if (!filterContent) return null;\n\n      return {\n        id: graficoESic.Id,\n        titulo: graficoESic.Titulo,\n        data: graficoESic.Dados,\n        height: '370px',\n        filterDescription: graficoESic.DescricaoPeriodo,\n        hasFilter: true,\n        contentFilter: filterContent,\n        showEyeButton,\n        exercicio: exercicioSelcionado,\n        legenda: graficoESic.LegendaCampoValor,\n        key: graficoESic.Id,\n      };\n    };\n\n    // Mapa de componentes para simplificar o switch\n    const componentesGrafico = {\n      1: config => <PieGraphic {...config} />,\n      2: config => <ColumnGraphic {...config} />,\n      3: config => <BarGraphic {...config} />,\n      4: config => <DonutGraphic {...config} />,\n    };\n\n    const listaGraficosESic = listaGraficoParam\n      .map(graficoESic => {\n        //\n        const configGrafico = criarConfigBase(graficoESic);\n        const criarComponente = componentesGrafico[graficoESic.TipoGrafico];\n        if (!criarComponente) return null;\n        return {\n          id: graficoESic.Id,\n          position: graficoESic.Posicao,\n          component: criarComponente(configGrafico),\n        };\n      })\n      .filter(Boolean);\n\n    setListaGrafico(listaGraficosESic);\n  }\n\n  const createElement = useCallback(el => {\n    return (\n      <div\n        key={el.id}\n        data-grid={{ ...el.position, isDraggable: false, static: true }}\n      >\n        {el.component}\n      </div>\n    );\n  }, []);\n\n  const goBack = useCallback(() => {\n    history.push('/');\n  }, [history]);\n\n  useEffect(() => {\n    async function loadInitialData() {\n      const [\n        exerciciosResponse,\n        eSicResponse,\n        periodicidadeResponse,\n      ] = await Promise.all([\n        getExercicios(),\n        getConfiguracao(),\n        getPeriodicidade(),\n      ]);\n\n      // Verifica e atualiza periodicidade primeiro\n      if (periodicidadeResponse?.data) {\n        setPeriodicidade(periodicidadeResponse.data);\n      }\n\n      // Verifica e atualiza eSic\n      if (eSicResponse?.data) {\n        if (!eSicResponse.data.Habilitado) {\n          redirectNotFound();\n          return;\n        }\n        setESic(eSicResponse.data);\n        obterUrlFormulario(eSicResponse.data);\n      }\n\n      // Verifica e atualiza exercícios e seta o maior exercício\n      if (exerciciosResponse?.data) {\n        setExercicios(exerciciosResponse.data);\n        // const maiorExercicio = Math.max(...exerciciosResponse.data);\n        setExercicioSelecionado(0); // Zero representa 'Todos'\n      }\n    }\n\n    loadInitialData();\n  }, []);\n\n  useEffect(() => {\n    async function loadVisoesEGraficos() {\n      //\n      const [visoesResponse, graficosResponse] = await Promise.all([\n        getVisoes(exercicioSelcionado),\n        getGraficos(exercicioSelcionado),\n      ]);\n\n      if (visoesResponse?.data) {\n        setVisoesESic(visoesResponse.data);\n      }\n\n      if (graficosResponse?.data) {\n        atualizarGraficos(graficosResponse.data);\n      }\n    }\n\n    if (!exercicioSelcionado) setExercicioSelecionado(0);\n    if (periodicidade) loadVisoesEGraficos();\n  }, [exercicioSelcionado, periodicidade]);\n\n  return (\n    <>\n      {eSic && (\n        <>\n          <PageTitle titulo={eSic.TituloPagina} />\n          <ImageButton\n            type=\"default\"\n            shape=\"round\"\n            imagem={eSic.Icone}\n            uri={eSic.UrlAplicacao || null}\n            tooltip=\"Acesse o Portal do e-SIC\"\n          />\n\n          {eSic?.Informacao?.Texto && (\n            <Informacao\n              titulo={eSic.Informacao.Titulo}\n              informacao={eSic.Informacao.Texto}\n            />\n          )}\n\n          <FiltroExercicio\n            handleChangeExercicio={handleChangeExercicio}\n            exercicios={exercicios}\n            exercicio={exercicioSelcionado}\n          />\n\n          {visoesESic != null && formularioESIC != null && (\n            <ESicVisoes dados={visoesESic} formularios={formularioESIC} />\n          )}\n        </>\n      )}\n\n      {listaGrafico?.length > 0 && listaGrafico.every(item => item?.component) && (\n        <div style={gridContainer}>\n          <div style={gridBackground} />\n          <ResponsiveReactGridLayout\n            breakpoints={{ lg: 1440, md: 1024, sm: 768 }}\n            cols={{ lg: 12, md: 12, sm: 1 }}\n          >\n            {_.map(listaGrafico, el => createElement(el))}\n          </ResponsiveReactGridLayout>\n        </div>\n      )}\n\n      <Row>\n        <ButtonGoBack OnClick={goBack} />\n      </Row>\n    </>\n  );\n}\n\nconst ESicMemoized = memo(ESic);\n\nfunction Container() {\n  return (\n    <ListaGraficoContext>\n      <ESicMemoized />\n    </ListaGraficoContext>\n  );\n}\n\nexport default Container;\n","import api from './api';\n\nexport async function verificaModuloHabilitado(chaveModulo) {\n  const response = await api.get(`Modulo/habilitado/${chaveModulo}`);\n\n  return response.status === 200;\n}\n","export const CHAVES_MODULO = {\n  ESIC: 'esic',\n  FAQ: 'faq',\n  ESTRUTURA_ORGANIZACIONAL: 'estrutura_organizacional',\n  ESTATISTICAS: 'estatisticas',\n  SUMARIO: 'sumario',\n  FALE_CONOSCO: 'faleconosco',\n  GLOSSARIO: 'glossario',\n  HOME: 'home',\n  AUTENTICIDADE: 'autenticidade',\n  DADOS_ABERTOS: 'dados_abertos',\n};\n","import React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport {\n  PageTitle,\n  Divider,\n  List,\n  Card,\n  Col,\n  Row,\n  ButtonGoBack,\n} from '~/components';\nimport { useMenus } from '~/contexts/menu.context';\nimport { TIPO_MENU_PORTAL } from '~/modules/Helper/tipoMenuPortal';\nimport * as ModuloService from '../../../services/modulos.service';\nimport { CHAVES_MODULO } from '../../Helper/chave-modulo-constants';\n\nfunction transformarJson(menu) {\n  return menu.map(item => {\n    const novosSubItens = [];\n\n    function extrairSubItens(subItens) {\n      subItens.forEach(subItem => {\n        novosSubItens.push({ ...subItem, SubItens: [] });\n        if (subItem.SubItens.length > 0) {\n          extrairSubItens(subItem.SubItens);\n        }\n      });\n    }\n\n    extrairSubItens(item.SubItens);\n    return { ...item, SubItens: novosSubItens };\n  });\n}\n\nfunction Sumario() {\n  const history = useHistory();\n  const { menus } = useMenus();\n  const corTema = useSelector(state => state.configuration.corTema);\n  const [menusTransformados, setMenusTransformados] = useState([]);\n\n  function handleRedirect(item) {\n    if (!item.URI) return;\n    if (item.TipoMenuPortal === TIPO_MENU_PORTAL.EXTERNO) {\n      window.open(item.URI);\n    } else {\n      history.push(item.URI);\n    }\n  }\n\n  function goBack() {\n    history.push('/');\n  }\n\n  useEffect(() => {\n    ModuloService.verificaModuloHabilitado(CHAVES_MODULO.SUMARIO);\n    setMenusTransformados(transformarJson(menus));\n  }, [menus]);\n\n  return (\n    <>\n      <PageTitle titulo=\"Sumário\" />\n      <Col>\n        <Card>\n          <List\n            itemLayout=\"horizontal\"\n            dataSource={menusTransformados}\n            renderItem={item => (\n              <List.Item style={{ display: 'list-item', borderBottom: '0px' }}>\n                <List.Item.Meta\n                  title={\n                    item.URI ? (\n                      <a\n                        onClick={() => {\n                          handleRedirect(item);\n                        }}\n                      >\n                        {item.Titulo}\n                      </a>\n                    ) : (\n                      item.Titulo\n                    )\n                  }\n                />\n                <Divider\n                  style={{\n                    margin: '0px',\n                    color: corTema,\n                    borderTop: '1px solid',\n                    width: '95%',\n                  }}\n                />\n                {item.SubItens.length > 0 && (\n                  <ul\n                    style={{ listStyleType: 'none', paddingInlineStart: '0px' }}\n                  >\n                    {item.SubItens.map(sub => (\n                      <li key={sub.Id} style={{ color: corTema }}>\n                        {sub.URI ? (\n                          <a\n                            style={{ color: corTema }}\n                            onClick={() => {\n                              handleRedirect(sub);\n                            }}\n                          >\n                            {sub.Titulo}\n                          </a>\n                        ) : (\n                          <span style={{ color: corTema }}>{sub.Titulo}</span>\n                        )}\n                      </li>\n                    ))}\n                  </ul>\n                )}\n              </List.Item>\n            )}\n          />\n        </Card>\n      </Col>\n      <Row>\n        <ButtonGoBack OnClick={goBack} />\n      </Row>\n    </>\n  );\n}\n\nexport default Sumario;\n","import styled from 'styled-components';\nimport { Tree } from '~/components';\n\nexport const TreeTransparente = styled(Tree)`\n  &&.draggable-tree {\n    background: transparent !important;\n  }\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { TreeTransparente } from './styles';\nimport { Tree, Tooltip, Typography } from '~/components';\n\nfunction TreeViewEstruturaOrganizacional({ treeView, history }) {\n\n  const { TreeNode } = Tree;\n  const { corTema } = useSelector(state => state.configuration);\n\n  const loop = data =>\n    data.map(item => {\n      if (item.children && item.children.length && item.Habilitado) {\n        return (\n          <TreeNode\n            key={item.key}\n            title={\n              <>\n                <Tooltip title=\"Acesso\" placement=\"topLeft\">\n                  <Typography.Text\n                    style={{ display: 'block', width: '100%', outline: 0 }}\n                  >\n                    <span\n                      style={{\n                        color: corTema,\n                        cursor: 'pointer',\n                        width: '100%',\n                        display: 'block',\n                        outline: 0,\n                      }}\n                      onClick={() => {\n                        if (item.Externo) window.open(item.Link);\n                        else\n                          history.push(\n                            `/estrutura_organizacional/detalhe/${item.IdDetalhe}`\n                          );\n                      }}\n                      role=\"link\"\n                      tabIndex=\"0\"\n                      aria-hidden=\"true\"\n                    >\n                      {item.title}\n                    </span>\n                  </Typography.Text>\n                </Tooltip>\n              </>\n            }\n          >\n            {loop(item.children)}\n          </TreeNode>\n        );\n      }\n      if (item.Habilitado) {\n        return (\n          <TreeNode\n            key={item.key}\n            isLeaf\n            title={\n              <>\n                <Tooltip title=\"Acesso\" placement=\"topLeft\">\n                  <Typography.Text\n                    style={{ display: 'block', width: '100%', outline: 0 }}\n                  >\n                    <span\n                      style={{\n                        color: corTema,\n                        cursor: 'pointer',\n                        width: '100%',\n                        display: 'block',\n                        outline: 0,\n                      }}\n                      onClick={() => {\n                        if (item.Externo) window.open(item.Link);\n                        else\n                          history.push(\n                            `/estrutura_organizacional/detalhe/${item.IdDetalhe}`\n                          );\n                      }}\n                      role=\"link\"\n                      tabIndex=\"0\"\n                      aria-hidden=\"true\"\n                    >\n                      {item.title}\n                    </span>\n                  </Typography.Text>\n                </Tooltip>\n              </>\n            }\n          />\n        );\n      }\n      return null;\n    });\n\n  return (\n    <TreeTransparente\n      className=\"draggable-tree\"\n      draggable={false}\n      defaultExpandAll={false}\n      blockNode\n      autoExpandParent={false}\n      selectable\n    >\n      {loop(treeView)}\n    </TreeTransparente>\n  );\n}\n\nexport default TreeViewEstruturaOrganizacional;\n","import React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { getEstruturaOrganizacionalConfiguracaoService } from '../services/estruturaOrganizacional.service';\nimport TreeViewEstruturaOrganizacional from '../components/treeViewEstruturaOrganizacional.component';\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\n\nimport { Typography, Tooltip, Row, Col, Card, PageTitle, ButtonGoBack } from '~/components';\n\nfunction EstruturaOrganizacional({ history }) {\n  const { corTema } = useSelector(state => state.configuration);\n\n  const [\n    estruturaOrganizacionalConfiguracao,\n    setEstruturaOrganizacionalConfiguracao,\n  ] = useState(null);\n\n  useEffect(() => {\n    async function getEstruturaOrganizacionalConfiguracao() {\n      const response = await getEstruturaOrganizacionalConfiguracaoService();\n      if (response.data) setEstruturaOrganizacionalConfiguracao(response.data);\n    }\n    getEstruturaOrganizacionalConfiguracao();\n  }, []);\n\n  function goBack() {\n    history.push('/');\n  }\n\n  return (\n    <>\n      {estruturaOrganizacionalConfiguracao && (\n        <>\n          <Row gutter={16} style={{ marginBottom: 16 }}>\n            <Col md={24}>\n              <PageTitle titulo=\"Estrutura Organizacional\" />\n            </Col>\n          </Row>\n          <Row gutter={16} style={{ marginBottom: 16 }}>\n            {estruturaOrganizacionalConfiguracao.ExibicaoLegislacao &&\n              estruturaOrganizacionalConfiguracao.UrlLegislacao && (\n                <Col\n                  md={\n                    estruturaOrganizacionalConfiguracao.ExibicaoLegislacao &&\n                      estruturaOrganizacionalConfiguracao.UrlLegislacao\n                      ? 12\n                      : 24\n                  }\n                  xs={24}\n                >\n                  <Card\n                    title={<Typography.Text>Legislação</Typography.Text>}\n                    size=\"small\"\n                  >\n                    <Tooltip title=\"Acesso\">\n                      <Typography.Text style={{ paddingLeft: 4 }}>\n                        <span\n                          style={{\n                            color: corTema,\n                            cursor: 'pointer',\n                          }}\n                          onClick={() => {\n                            fileManagerPaiDownload(\n                              estruturaOrganizacionalConfiguracao.UrlLegislacao\n                            );\n                          }}\n                          role=\"link\"\n                          tabIndex=\"0\"\n                          aria-hidden=\"true\"\n                        >\n                          {\n                            estruturaOrganizacionalConfiguracao.ExibicaoLegislacao\n                          }\n                        </span>\n                      </Typography.Text>\n                    </Tooltip>\n                  </Card>\n                </Col>\n              )}\n\n            {estruturaOrganizacionalConfiguracao.ExibicaoFluxograma &&\n              estruturaOrganizacionalConfiguracao.UrlFluxograma && (\n                <Col\n                  md={\n                    estruturaOrganizacionalConfiguracao.ExibicaoLegislacao &&\n                      estruturaOrganizacionalConfiguracao.UrlLegislacao\n                      ? 12\n                      : 24\n                  }\n                  xs={24}\n                >\n                  <Card\n                    title={<Typography.Text>Fluxograma</Typography.Text>}\n                    size=\"small\"\n                  >\n                    <Tooltip title=\"Acesso\">\n                      <Typography.Text style={{ paddingLeft: 4 }}>\n                        <span\n                          style={{\n                            color: corTema,\n                            cursor: 'pointer',\n                          }}\n                          onClick={() => {\n                            fileManagerPaiDownload(\n                              estruturaOrganizacionalConfiguracao.UrlFluxograma\n                            );\n                          }}\n                          role=\"link\"\n                          tabIndex=\"0\"\n                          aria-hidden=\"true\"\n                        >\n                          {\n                            estruturaOrganizacionalConfiguracao.ExibicaoFluxograma\n                          }\n                        </span>\n                      </Typography.Text>\n                    </Tooltip>\n                  </Card>\n                </Col>\n              )}\n          </Row>\n\n          <Row gutter={16}>\n            <Col xs={24}>\n              <Card\n                title={\n                  <Typography.Text>Estrutura Organizacional</Typography.Text>\n                }\n                size=\"small\"\n              >\n                <TreeViewEstruturaOrganizacional\n                  treeView={\n                    estruturaOrganizacionalConfiguracao.ListaEstruturaOrganizacional\n                  }\n                  history={history}\n                />\n              </Card>\n            </Col>\n          </Row>\n          <Row>\n            <ButtonGoBack\n              OnClick={goBack}\n            />\n          </Row>\n        </>\n      )}\n    </>\n  );\n}\n\nexport default EstruturaOrganizacional;\n","import api from '~/services/api';\n\nfunction getEstruturaOrganizacionalConfiguracaoService() {\n  return api.get(`estruturaOrganizacional`);\n}\n\nfunction getEstruturaOrganizacionalDetalheService(id) {\n  return api.get(`estruturaOrganizacional/${id}/detalhe`);\n}\n\nexport {\n  getEstruturaOrganizacionalConfiguracaoService,\n  getEstruturaOrganizacionalDetalheService,\n};\n","import styled from 'styled-components';\n\nexport const Title = styled.div`\n  margin: 0px 20px 0px 20px;\n`;\n\nexport const Content = styled.div`\n  margin: 15px;\n  margin-right: 20px;\n  margin-left: 20px;\n`;\n\nexport const Section = styled.div`\n  margin-bottom: 15px;\n`;\n","export const ChooseIconFile = fileExtension => {\n  let fileIcon = 'pdf';\n  if (fileExtension) {\n    switch (fileExtension) {\n      case 'pdf':\n        break;\n      case 'png':\n      case 'jpg':\n      case 'jpeg':\n        fileIcon = 'img';\n        break;\n      case 'csv':\n      case 'xls':\n      case 'xlsx':\n        fileIcon = 'excel';\n        break;\n      default:\n        fileIcon = 'text';\n    }\n  }\n  return fileIcon;\n};\n","import React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { getEstruturaOrganizacionalDetalheService } from '../services/estruturaOrganizacional.service';\nimport {\n  fileManagerPaiDownload,\n  getFullUrl,\n} from '~/services/FileManager/file-manager.service';\n\nimport {\n  Card,\n  Typography,\n  Button,\n  Tooltip,\n  Icons,\n  Row,\n  Col,\n  MapButton,\n  ButtonGoBack,\n} from '~/components/';\nimport { Title, Content } from './style';\nimport { ChooseIconFile } from '~/modules/Helper/chooseIconFile';\nimport { iconEnum } from '~/modules/Helper/iconEnum';\n\nfunction EstruturaOrganizacionalDetalhe({ match }) {\n  const corTema = useSelector(state => state.configuration.corTema);\n  const [\n    estruturaOrganizacionalDetalhe,\n    setEstruturaOrganizacionalDetalhe,\n  ] = useState();\n  const [imgSecretario, setImgSecretario] = useState();\n  const history = useHistory();\n\n  async function getUrl(response) {\n    return getFullUrl(response);\n  }\n  useEffect(() => {\n    async function getEstruturaOrganizacionalConfiguracao() {\n      const response = await getEstruturaOrganizacionalDetalheService(\n        Number(match.params.id)\n      );\n      setEstruturaOrganizacionalDetalhe(response.data);\n\n      const { UrlImagemSecretario } = response.data;\n      let img = null;\n\n      if (UrlImagemSecretario) {\n        img = await getUrl(UrlImagemSecretario);\n      }\n      setImgSecretario(img);\n    }\n    getEstruturaOrganizacionalConfiguracao();\n  }, [match]);\n\n  function goBack() {\n    history.goBack();\n  }\n  return (\n    <>\n      {estruturaOrganizacionalDetalhe && (\n        <>\n          <Title>\n            <Typography.Title\n              level={1}\n              style={{\n                color: corTema,\n                fontWeight: 'bold',\n                textAlign: 'center',\n              }}\n            >\n              {estruturaOrganizacionalDetalhe.Nome}\n            </Typography.Title>\n\n            <Typography.Title level={4} style={{ color: corTema }}>\n              {estruturaOrganizacionalDetalhe.SecretarioResponsavel}\n            </Typography.Title>\n\n            <Typography.Text\n              level={4}\n              style={{ color: '#000', fontStyle: 'italic' }}\n            >\n              Secretário/Responsável\n            </Typography.Text>\n          </Title>\n\n          <Row\n            style={{\n              margin: '20px',\n              alignItems: 'center',\n            }}\n          >\n            {imgSecretario != null && (\n              <Col style={{ marginRight: '1%', width: '19%' }}>\n                <img\n                  src={imgSecretario}\n                  alt=\"Foto do Secretário / Responsável\"\n                  style={{\n                    maxWidth: '300px',\n                    maxHeight: '250px',\n                    borderRadius: '2px',\n                    width: '100%',\n                    height: 'auto',\n                  }}\n                />\n              </Col>\n            )}\n\n            <Col style={{ width: imgSecretario != null ? '80%' : '100%' }}>\n              <Card title=\"Informação\">\n                <Typography.Text style={{ color: '#000' }}>\n                  Telefone:{' '}\n                  <Typography.Text style={{ color: corTema }}>\n                    {estruturaOrganizacionalDetalhe.Telefone}\n                  </Typography.Text>\n                </Typography.Text>\n\n                <br />\n\n                <Typography.Text style={{ color: '#000' }}>\n                  E-mail:{' '}\n                  <Typography.Text style={{ color: corTema }}>\n                    {estruturaOrganizacionalDetalhe.Email}\n                  </Typography.Text>\n                </Typography.Text>\n\n                <br />\n\n                <Typography.Text style={{ color: '#000' }}>\n                  Atendimento ao Publico:{' '}\n                  <Typography.Text style={{ color: corTema }}>\n                    {estruturaOrganizacionalDetalhe.AtendimentoPublico}\n                  </Typography.Text>\n                </Typography.Text>\n\n                <br />\n              </Card>\n            </Col>\n          </Row>\n\n          <Card title=\"Endereço\" style={{ margin: 20 }}>\n            <Row>\n              <Col>\n                <Typography.Text style={{ color: '#000' }}>\n                  Endereço:{' '}\n                  <Typography.Text style={{ color: corTema }}>\n                    {estruturaOrganizacionalDetalhe.Logradouro}\n                  </Typography.Text>{' '}\n                </Typography.Text>\n                <Typography.Text style={{ color: '#000' }}>\n                  Nº:{' '}\n                  <Typography.Text style={{ color: corTema }}>\n                    {estruturaOrganizacionalDetalhe.Numero}\n                  </Typography.Text>\n                </Typography.Text>\n\n                <br />\n\n                <Typography.Text style={{ color: '#000' }}>\n                  Bairro:{' '}\n                  <Typography.Text style={{ color: corTema }}>\n                    {estruturaOrganizacionalDetalhe.Bairro}\n                  </Typography.Text>\n                </Typography.Text>\n\n                <br />\n                <Typography.Text style={{ color: '#000' }}>\n                  Cidade:{' '}\n                  <Typography.Text style={{ color: corTema }}>\n                    {estruturaOrganizacionalDetalhe.Cidade}\n                  </Typography.Text>\n                </Typography.Text>\n\n                <br />\n                <Typography.Text style={{ color: '#000' }}>\n                  CEP:{' '}\n                  <Typography.Text style={{ color: corTema }}>\n                    {estruturaOrganizacionalDetalhe.CEP}\n                  </Typography.Text>\n                </Typography.Text>\n\n                <br />\n              </Col>\n              <Col\n                style={{\n                  display: 'flex',\n                  alignItems: 'center',\n                  marginLeft: '25px',\n                }}\n              >\n                <MapButton\n                  rua={estruturaOrganizacionalDetalhe.Logradouro}\n                  numero={estruturaOrganizacionalDetalhe.Numero}\n                  bairro={estruturaOrganizacionalDetalhe.Bairro}\n                  cidade={estruturaOrganizacionalDetalhe.Cidade}\n                />\n              </Col>\n            </Row>\n          </Card>\n\n          <Card title=\"O que fazemos\" style={{ margin: 20 }}>\n            <Typography.Text style={{ color: '#000' }}>\n              <Content\n                dangerouslySetInnerHTML={{\n                  __html: estruturaOrganizacionalDetalhe.TextoInformativo,\n                }}\n              />\n            </Typography.Text>\n          </Card>\n          {estruturaOrganizacionalDetalhe.NomeArquivo &&\n            estruturaOrganizacionalDetalhe.UrlArquivo && (\n              <Card\n                title=\"Arquivo Anexo\"\n                style={{\n                  margin: 20,\n                }}\n              >\n                <Tooltip title=\"Baixar Arquivo\" placement=\"topRight\">\n                  <Row\n                    style={{ display: 'flex', alignItems: 'center' }}\n                    onClick={() =>\n                      fileManagerPaiDownload(\n                        estruturaOrganizacionalDetalhe.UrlArquivo\n                      )\n                    }\n                  >\n                    <Col style={{ marginRight: 8 }}>\n                      <Typography.Text style={{ cursor: 'pointer' }}>\n                        {iconEnum\n                          .find(\n                            x =>\n                              x.name ===\n                              `file-${ChooseIconFile(\n                                estruturaOrganizacionalDetalhe?.NomeArquivo?.split(\n                                  '.',\n                                  2\n                                )[1].toLowerCase()\n                              )}`\n                          )\n                          ?.value({ fontSize: '20px' })}\n                      </Typography.Text>\n                    </Col>\n                    <Col lg={22}>\n                      <Typography.Link>\n                        {estruturaOrganizacionalDetalhe.NomeArquivo}\n                      </Typography.Link>\n                    </Col>\n                    <Col lg={1}>\n                      <Button\n                        shape=\"circle\"\n                        style={{ float: 'right', backgroundColor: corTema }}\n                        icon={\n                          <Icons.DownloadOutlined style={{ color: '#FFF' }} />\n                        }\n                      />\n                    </Col>\n                  </Row>\n                </Tooltip>\n              </Card>\n            )}\n          <Row>\n            <ButtonGoBack MarginLeft=\"22px\" OnClick={goBack} />\n          </Row>\n        </>\n      )}\n    </>\n  );\n}\n\nexport default EstruturaOrganizacionalDetalhe;\n","import styled from 'styled-components';\nimport Result from '../Result/Result.component';\n\nexport const InfoManutencao = styled(Result)` \n  justify-content: center;\n  height: 70%;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 1rem;\n\n  .ant-result-subtitle {\n    font-size: 1.25rem;\n  }\n`;\n","import React, { useEffect, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { InfoManutencao } from './EmManutencao.styled';\nimport { Button } from '../Button/Button.styled';\nimport * as ModuloVisaoService from '../../modules/Modulos/services/moduloVisao.service';\n\nfunction EmManutencao() {\n  const history = useHistory();\n  const location = useLocation();\n  const params = new URLSearchParams(location.search);\n\n  const visao = params.get('visao');\n  const titulo = params.get('titulo');\n  const [moduloApi, visaoApi] = visao.split('/');\n  const [botaoDisabled, setBotaoDisabled] = useState(true);\n\n  useEffect(() => {\n    const voltarParaVisao = async () => {\n      const responseConfiguracao = await ModuloVisaoService.obterConfiguracoes(\n        moduloApi,\n        visaoApi\n      );\n\n      const modoVisao = responseConfiguracao.data.ModoVisao;\n      if (modoVisao !== 3) {\n        setBotaoDisabled(false);\n      }\n    };\n\n    voltarParaVisao();\n  }, [moduloApi, visaoApi]);\n\n  const voltarParaVisao = () => {\n    if (botaoDisabled) history.push('/');\n    else history.push(`/${visao}`);\n  };\n\n  const textoBotao = botaoDisabled\n    ? 'Voltar para a Home'\n    : 'Voltar para a Visão';\n\n  const tituloPagina = botaoDisabled\n    ? `Visão '${titulo}' em manutenção temporária.`\n    : `Visão '${titulo}' sofreu uma alteração.`;\n\n  const subTituloPagina = botaoDisabled\n    ? 'Tente novamente mais tarde.'\n    : 'Clique aqui para atualizar';\n\n  return (\n    <>\n      <InfoManutencao\n        status=\"info\"\n        title={tituloPagina}\n        subTitle={subTituloPagina}\n        extra={\n          <Button type=\"primary\" onClick={voltarParaVisao}>\n            {textoBotao}\n          </Button>\n        }\n      />\n    </>\n  );\n}\n\nexport default EmManutencao;\n","import styled from 'styled-components';\nimport { Button, Card } from '~/components';\n\nexport const ContainerButtons = styled(Card)`\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  position: sticky;\n  width: 100%;\n  top: 0;\n  padding: 1em 0 1em 0.35em;\n  z-index: 1;\n  margin-bottom: 1em;\n\n  ${Button} {\n    width: 2.8em;\n    height: 2.5em;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    margin: 0 0.35em 0.35em 0;\n    padding: 1.2em;\n\n    @media (max-width: 1440px) {\n      width: 2.5em;\n      height: 2.5em;\n      font-size: 12px;\n    }\n\n    @media (max-width: 815px) {\n      font-size: 10px;\n    }\n\n    @media (max-width: 768px) {\n      font-size: 9px;\n    }\n\n    @media (max-width: 450px) {\n      font-size: 8px;\n    }\n\n    @media (max-width: 313px) {\n      font-size: 7px;\n    }\n  }\n`;\n","export const alfabeto = [\n  'A',\n  'B',\n  'C',\n  'D',\n  'E',\n  'F',\n  'G',\n  'H',\n  'I',\n  'J',\n  'K',\n  'L',\n  'M',\n  'N',\n  'O',\n  'P',\n  'Q',\n  'R',\n  'S',\n  'T',\n  'U',\n  'V',\n  'W',\n  'X',\n  'Y',\n  'Z',\n];\n","import React from 'react';\nimport { HashLink } from 'react-router-hash-link';\nimport { Button } from '~/components';\nimport { ContainerButtons } from './style';\nimport { alfabeto } from '../constants/alfabeto';\n\nfunction GlossarioButtons({ letrasAtivas = [] }) {\n  const verificaBotaoDesabilitado = letra =>\n    letrasAtivas.includes(letra) === false;\n\n  return (\n    <ContainerButtons\n      bodyStyle={{\n        padding: 0,\n        display: 'flex',\n        justifyContent: 'flex-start',\n        alignItems: 'center',\n        flexWrap: 'wrap',\n      }}\n    >\n      {alfabeto.map(letra => (\n        <HashLink to={`#${letra}`} key={letra}>\n          <Button type=\"primary\" disabled={verificaBotaoDesabilitado(letra)}>\n            {letra}\n          </Button>\n        </HashLink>\n      ))}\n    </ContainerButtons>\n  );\n}\n\nexport default GlossarioButtons;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n  height: 80vh;\n  overflow-y: scroll;\n\n  ::-webkit-scrollbar {\n    width: 8px;\n  }\n\n  ::-webkit-scrollbar-track {\n    background: #f1f1f1;\n  }\n\n  ::-webkit-scrollbar-thumb {\n    background: #888;\n    border-radius: 5px;\n  }\n\n  ::-webkit-scrollbar-thumb:hover {\n    background: #555;\n  }\n`;\n\nexport const ItemGlossarioArea = styled.div`\n  padding-top: 5em;\n\n  @media (max-width: 1244px) {\n    padding-top: 6.6em;\n  }\n`;\n","import React, { useState, useEffect } from 'react';\nimport { Divider, Typography, PageTitle, Card } from '~/components';\nimport GlossarioButtons from '../componentes/glossario-buttons.component';\nimport { getGlossario } from '../services/glossario.service';\nimport { Container, ItemGlossarioArea } from './style';\n\nfunction Glossario() {\n  const [letrasAtivas, setLetrasAtivas] = useState([]);\n  const [glossario, setGlossario] = useState([]);\n\n  async function obterGlossario() {\n    const response = await getGlossario();\n    if (response?.data?.Itens?.length) setGlossario(response.data.Itens);\n  }\n\n  useEffect(() => {\n    obterGlossario();\n  }, []);\n\n  useEffect(() => {\n    const letras = glossario.map(item => item.Letra);\n\n    setLetrasAtivas(letras);\n  }, [glossario]);\n\n  return (\n    <>\n      <PageTitle titulo=\"Glossário\" />\n      <Container>\n        <GlossarioButtons letrasAtivas={letrasAtivas} />\n        <Card style={{ width: '100%' }} bodyStyle={{ paddingBottom: '6rem' }}>\n          {Boolean(glossario?.length) &&\n            glossario.map(({ Letra, PalavrasSignificados }) => (\n              <ItemGlossarioArea key={Letra} id={Letra}>\n                <Typography.Title style={{ marginBottom: 0 }}>\n                  {Letra}\n                </Typography.Title>\n\n                <Divider style={{ margin: '.2em 0 1em 0' }} />\n\n                {Boolean(PalavrasSignificados?.length) &&\n                  PalavrasSignificados.map(({ Palavra, Significado }) => (\n                    <Typography.Paragraph\n                      key={Palavra}\n                      style={{ marginBottom: '2em' }}\n                    >\n                      <strong>{Palavra}:</strong> {Significado}\n                    </Typography.Paragraph>\n                  ))}\n              </ItemGlossarioArea>\n            ))}\n        </Card>\n      </Container>\n    </>\n  );\n}\n\nexport default Glossario;\n","import api from '~/services/api';\n\nfunction getGlossario() {\n  return api.get('glossario');\n}\n\nexport { getGlossario };\n","export function parseToQueryString(data) {\n  if (!data) return '';\n\n  const urlSearchParams = new URLSearchParams();\n\n  Object.keys(data).forEach(key => {\n    // remove props null ou undefined\n    if (data[key] === null || data[key] === undefined) {\n    } else if (Array.isArray(data[key])) {\n      data[key].forEach(item => urlSearchParams.append(key, item));\n    } else {\n      urlSearchParams.append(key, data[key]);\n    }\n  });\n\n  const queryString = urlSearchParams.toString();\n  return queryString;\n}\n","export const MODO_VISAO = {\n  GridCarregada: 1,\n  GridVazia: 2,\n  Manutencao: 3,\n};\n","export const NUMERO_QUANTIDADE_REGISTROS = ['5', '10', '20', '50', '100'];\n","export const PARAMS_FILTERS_GRID = [\n  'periodicidade',\n  'exercicio',\n  'pagina',\n  'periodo',\n  'quantidaderegistros',\n  'colunafiltroRedirecionaVisao',\n  'valorfiltroRedirecionaVisao',\n  'tipovalorfiltroRedirecionaVisao',\n  'colunaordem',\n  'tipoordem',\n  'listacolunaordem',\n];\n\nexport const PARAMS_FILTERS_DETALHE = [\n  'periodicidade',\n  'exercicio',\n  'periodo',\n  'pagina',\n  'chavesPeriodicidade',\n];\n\nexport const PARAMS_FILTERS_GRID_BUSCA_AVANCADA = [\n  'pagina',\n  'quantidaderegistros',\n  'listacolunaordem',\n  'filtros',\n];\n","export function getAndFormatSearchParams(data, filtersArray) {\n  let searchParams = new URLSearchParams();\n  const filtersArrayLowwer = filtersArray.map(item => item.toLowerCase());\n\n  Object.entries(data).forEach(key => {\n    const values = key.filter(\n      () => filtersArrayLowwer.includes(key[0].toLowerCase()) && key[1]\n    );\n\n    if (values.length > 0) searchParams.append(values[0], values[1]);\n  });\n\n  const queryString = searchParams.toString();\n  return queryString;\n}\n\nexport function getAndFormatSearchParamsBuscaAvancada(data, filtersArray) {\n  let searchParams = new URLSearchParams();\n  const filtersArrayLowwer = filtersArray.map(item => item.toLowerCase());\n\n  Object.entries(data).forEach(key => {\n    const values = key.filter(() => {\n      if (key[0].toLowerCase() !== 'filtros')\n        return filtersArrayLowwer.includes(key[0].toLowerCase()) && key[1];\n    });\n\n    if (values.length > 0) searchParams.append(values[0], values[1]);\n  });\n\n  const chavesFiltro = Object.keys(data.filtros);\n\n  chavesFiltro.forEach(filtro => {\n    const valuesFiltro = [];\n\n    if (data.filtros[`${filtro}`] !== undefined) {\n      valuesFiltro.push(data.filtros[`${filtro}`].Campo);\n      valuesFiltro.push(data.filtros[`${filtro}`].Valor);\n      valuesFiltro.push(data.filtros[`${filtro}`].TipoValor);\n\n      if (valuesFiltro.length > 0) {\n        searchParams.append(\n          valuesFiltro[0],\n          `${valuesFiltro[1]},${valuesFiltro[2]}`\n        );\n      }\n    }\n  });\n\n  const queryString = searchParams.toString();\n  return queryString;\n}\n","import React, { createContext, useContext, useState } from 'react';\n\nexport const UrlContext = createContext();\n\nexport function UrlProvider({ children }) {\n  const [urls, setUrls] = useState([]);\n\n  function empilhaUrl(url) {\n    setUrls(u => [...u, url]);\n  }\n\n  function obterUrlPaginaAnterior() {\n    const valorDefault = {\n      urlCompleta: null,\n      urlBase: null,\n      queryParam: null,\n    };\n\n    if (!urls?.length) {\n      return valorDefault;\n    }\n\n    const urlAnterior = String(urls[urls.length - 1]);\n\n    if (urlAnterior) {\n      const novasUrls = urls.filter(item => item !== urlAnterior);\n\n      setUrls(novasUrls);\n\n      const [urlBase, queryParam] = urlAnterior.split('?');\n\n      return {\n        urlCompleta: urlAnterior,\n        urlBase,\n        queryParam,\n      };\n    }\n\n    return valorDefault;\n  }\n\n  return (\n    <UrlContext.Provider\n      value={{\n        urls,\n        empilhaUrl,\n        obterUrlPaginaAnterior,\n      }}\n    >\n      {children}\n    </UrlContext.Provider>\n  );\n}\n\nexport function useUrls() {\n  const { urls, empilhaUrl, obterUrlPaginaAnterior } = useContext(UrlContext);\n\n  return {\n    urls,\n    empilhaUrl,\n    obterUrlPaginaAnterior,\n  };\n}\n","import React from 'react';\nimport { PageTitle, Informacao } from '~/components';\n\nfunction Header({ configuracao }) {\n  return (\n    <>\n      {configuracao?.Titulo && <PageTitle titulo={configuracao.Titulo} />}\n\n      {configuracao?.Informacao?.Texto && (\n        <Informacao\n          titulo={configuracao.Informacao.Titulo}\n          informacao={configuracao.Informacao.Texto}\n        />\n      )}\n    </>\n  );\n}\n\nexport default Header;\n","export const TIPO_AGRUPAMENTO = {\n  CONTADOR: 1,\n  SOMA: 2,\n  AGRUPADOR: 3,\n  MAXIMO: 4,\n};\n","export const TIPO_COLUNA = {\n  TEXTO_50: 1,\n  TEXTO_100: 2,\n  INTEIRO: 3,\n  DECIMAL: 4,\n  DATA: 5,\n  LINK: 6,\n  BOOLEANO: 7,\n  TEXTO: 8,\n};\n","import React from 'react';\nimport { Row, Col, Divider } from '~/components';\nimport { TIPO_AGRUPAMENTO } from '~/modules/Helper/tipo-agrupamento';\nimport { TIPO_COLUNA } from '~/modules/Helper/tipoColuna';\n\nfunction Totalizadores({ totalizadores }) {\n  return (\n    <>\n      <Divider style={{ marginBottom: '-10px', paddingBottom: '20px' }} />\n      <Row\n        gutter={[8, 10]}\n        style={{\n          display: 'flex',\n          justifyContent: 'center',\n        }}\n      >\n        {totalizadores.map(item => (\n          <Col\n            lg={{ span: 6 }}\n            key={Math.random()}\n            style={{\n              textAlign: 'center',\n              display: 'grid',\n              marginBottom: '10px',\n            }}\n          >\n            <span>{item.DescricaoTotalizador}</span>\n            <b>\n              {item.TipoValor === TIPO_COLUNA.DECIMAL &&\n              item.TipoAgrupamento !== TIPO_AGRUPAMENTO.CONTADOR\n                ? item.Total.toLocaleString('pt-br', {\n                    style: 'currency',\n                    currency: 'BRL',\n                  })\n                : item.Total}\n            </b>\n          </Col>\n        ))}\n      </Row>\n      <Divider style={{ marginTop: '0' }} />\n    </>\n  );\n}\n\nexport default Totalizadores;\n","import React, { useState, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Pagination, notification } from 'antd';\nimport { Select, Exportacao } from '~/components';\nimport { UltimaAtualizacao } from './UltimaAtualizacao.component';\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\nimport { Container, NumberRegistersArea, ButtonsArea } from './Footer.styled';\nimport { exportarVisao } from '../../services/moduloVisao.service';\nimport { exportarBuscaAvancada } from '~/modules/BuscaAvancada/services/buscaAvancada.service';\nimport { getUrlComDominio } from '~/modules/Helper/getUrl-helper';\n\nfunction Footer({\n  moduloVisao,\n  quantidadeRegistros,\n  setQuantidadeRegistros,\n  page,\n  setPage,\n  configuracao,\n  modulo,\n  visao,\n  filtroExportacao,\n  filtroOrdenacaoExportacao,\n  periodicidade,\n  periodo,\n  exercicio,\n  colunaFiltroRedirecionaVisao,\n  valorFiltroRedirecionaVisao,\n  tipoValorFiltroRedirecionaVisao,\n  dataUltimaAtualizacao,\n  buscaAvancada,\n}) {\n  const [tipo, setTipo] = useState(null);\n\n  const configuration = useSelector(state => state.configuration);\n  const { corFundoTituloGrid, corTituloGrid } = configuration;\n\n  function setNewTipo() {\n    if (configuracao.Tipo !== tipo) {\n      setTipo(configuracao.Tipo);\n    }\n  }\n\n  useEffect(() => {\n    setTipo(configuracao.Tipo);\n    setNewTipo();\n  }, [configuracao.Tipo, setNewTipo]);\n\n  function exportar(tipoExportacao) {\n    if (tipoExportacao === 'uri') {\n      navigator.clipboard.writeText(window.location.href);\n      notification.success({\n        message: 'URI Copiada com Sucesso!',\n      });\n    } else {\n      const FiltroRedirecionaVisao = {\n        Campo: colunaFiltroRedirecionaVisao,\n        Valor: valorFiltroRedirecionaVisao,\n        TipoValor: tipoValorFiltroRedirecionaVisao,\n      };\n\n      const dtoExportacao = {\n        ChaveModulo: modulo,\n        NomeVisao: visao,\n        Filtros: filtroExportacao,\n        Periodicidade: periodicidade,\n        Periodo: periodo,\n        Exercicio: exercicio,\n        Ordenacao: filtroOrdenacaoExportacao,\n        Pagina: page,\n        QuantidadeRegistros: quantidadeRegistros,\n        FiltroRedirecionaVisao,\n        UrlExportacao: getUrlComDominio(),\n      };\n\n      if (buscaAvancada) {\n        exportarBuscaAvancada(tipoExportacao, dtoExportacao).then(res => {\n          fileManagerPaiDownload(res.data);\n        });\n      } else {\n        exportarVisao(tipoExportacao, dtoExportacao).then(res => {\n          fileManagerPaiDownload(res.data);\n        });\n      }\n    }\n  }\n\n  return (\n    <Container>\n      <div>\n        <NumberRegistersArea\n          corFundoTituloGrid={corFundoTituloGrid}\n          corTituloGrid=\"#000\"\n        >\n          <Pagination\n            current={page}\n            showSizeChanger={false}\n            pageSize={quantidadeRegistros}\n            total={moduloVisao.QuantidadeRegistros}\n            showTotal={total => {\n              return (\n                <p style={{ color: corTituloGrid }}>\n                  <b>Total: </b>\n                  {`${new Intl.NumberFormat('pt-BR').format(total)} registros`}\n                </p>\n              );\n            }}\n            onChange={pag => setPage(pag)}\n          />\n\n          <Select\n            placeholder=\"Quantidade de Registros\"\n            value={quantidadeRegistros}\n            onChange={qtde => {\n              setPage(1);\n              setQuantidadeRegistros(qtde);\n            }}\n            style={{ color: '#000' }}\n          >\n            {[5, 10, 20, 50, 100].map(quantidade => (\n              <Select.Option\n                key={quantidade}\n                value={String(quantidade)}\n                style={{ color: '#000' }}\n              >\n                {quantidade} registros\n              </Select.Option>\n            ))}\n          </Select>\n        </NumberRegistersArea>\n      </div>\n\n      <div style={{ marginTop: 'auto', marginBottom: 'auto' }}>\n        {dataUltimaAtualizacao && (\n          <UltimaAtualizacao\n            dataHora={dataUltimaAtualizacao}\n            corTituloGrid={corTituloGrid}\n          />\n        )}\n      </div>\n\n      <ButtonsArea corTituloGrid={corTituloGrid}>\n        {moduloVisao != null && moduloVisao.Valores.length !== 0 && (\n          <Exportacao\n            onClick={exportar}\n            QuantidadeRegistros={moduloVisao.QuantidadeRegistros}\n          />\n        )}\n      </ButtonsArea>\n    </Container>\n  );\n}\n\nexport default Footer;\n","import api from '~/services/api';\n\nasync function getColunasFiltro(nomeModulo) {\n  const response = await api.get(`Modulo/${nomeModulo}/colunasfiltro`);\n  return response.data;\n}\n\nasync function obterDadosFiltroAvancado(data) {\n  const response = await api.post(`ModuloVisao/filtroavancado`, data);\n  return response;\n}\n\nasync function exportarBuscaAvancada(tipoExportacao, data) {\n  const response = await api.post(\n    `Modulovisao/exportacaogridfiltroavancado/${tipoExportacao}`,\n    data\n  );\n  return response;\n}\n\nexport { getColunasFiltro, exportarBuscaAvancada, obterDadosFiltroAvancado };\n","import React from 'react';\n\nimport { Button } from '~/components';\n\nconst ButtonLinkFileManagerLinkAnexo = ({ children, onClick }) => (\n  <Button\n    onClick={onClick}\n    type=\"link\"\n    block\n    style={{\n      wordWrap: 'anywhere',\n      whiteSpace: 'normal',\n      textAlign: 'left',\n    }}\n  >\n    {children}\n  </Button>\n);\n\nexport default ButtonLinkFileManagerLinkAnexo;\n","import React from 'react';\n\nimport { Button, Tooltip, Icons } from '~/components';\n\nconst ButtonDownloadFileManager = ({ onClick }) => (\n  <Tooltip title=\"Download\">\n    <Button\n      shape=\"circle\"\n      onClick={onClick}\n      type=\"primary\"\n      icon={<Icons.DownloadOutlined />}\n      style={{ margin: '9px' }}\n    />\n  </Tooltip>\n);\n\nexport default ButtonDownloadFileManager;\n","import React from 'react';\n\nimport { Button, Tooltip, Icons } from '~/components';\n\nconst ButtonLinkAnexo = ({ onClick }) => (\n  <Tooltip title=\"Acessar\">\n    <Button\n      shape=\"circle\"\n      onClick={onClick}\n      type=\"primary\"\n      icon={<Icons.LinkOutlined />}\n      style={{ margin: '9px' }}\n    />\n  </Tooltip>\n);\n\nexport default ButtonLinkAnexo;\n","import React, { useState, useEffect } from 'react';\n\nimport { Modal, FormV3 as Form, Row, Col, Table } from '~/components';\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\n\nimport { obterAnexos } from '~/modules/Modulos/services/arquivos.service';\nimport ButtonLinkFileManagerLinkAnexo from './ButtonLinkFileManager';\nimport ButtonDownloadFileManager from './ButtonDowloadFileManager';\nimport ButtonLinkAnexo from './ButtonLinkAnexo';\n\nfunction ArquivosForm({\n  visible,\n  onCancel,\n  chaveModulo,\n  filtroPesquisaArquivosDigitais,\n}) {\n  const [arquivosAnexados, setArquivosAnexados] = useState([]);\n  const titulo = 'Listagem dos Anexos';\n\n  useEffect(() => {\n    async function buscarAnexos() {\n      if (filtroPesquisaArquivosDigitais) {\n        const response = await obterAnexos(filtroPesquisaArquivosDigitais);\n        setArquivosAnexados(response);\n      }\n    }\n    if (visible) buscarAnexos();\n  }, [chaveModulo, filtroPesquisaArquivosDigitais, visible]);\n\n  function onCloseModal() {\n    onCancel();\n  }\n\n  function showAnexos() {\n    const columns = [\n      {\n        title: 'Anexos',\n        dataIndex: 'NomeArquivoDigital',\n        key: 'NomeArquivoDigital',\n        render: (text, record) => {\n          return {\n            children: (\n              <ButtonLinkFileManagerLinkAnexo\n                key={record.IdArquivoDigital}\n                onClick={() => {\n                  if (record?.IsLinkAnexo) {\n                    window.open(record.LinkAnexo, '_blank');\n                  } else {\n                    fileManagerPaiDownload(record.UrlArquivoDigital);\n                  }\n                }}\n              >\n                {text}\n              </ButtonLinkFileManagerLinkAnexo>\n            ),\n            props: {\n              'data-title': 'Anexos',\n            },\n          };\n        },\n      },\n      {\n        title: 'Ações',\n        dataIndex: 'Acao',\n        align: 'center',\n        key: 'Acao',\n        width: 100,\n        render: (text, record) => {\n          return {\n            children: record?.IsLinkAnexo ? (\n              <ButtonLinkAnexo\n                key={record.IdArquivoDigital}\n                onClick={() => {\n                  window.open(record.LinkAnexo, '_blank');\n                }}\n              />\n            ) : (\n              <ButtonDownloadFileManager\n                key={record.IdArquivoDigital}\n                onClick={() => {\n                  fileManagerPaiDownload(record.UrlArquivoDigital);\n                }}\n              />\n            ),\n            props: {\n              'data-title': 'Ações',\n            },\n          };\n        },\n      },\n    ];\n\n    return (\n      <Table\n        bordered\n        dataSource={arquivosAnexados}\n        rowKey={row => row.IdArquivoDigital || row.NomeArquivoDigital}\n        pagination={false}\n        scroll={{ x: 650 }}\n        columns={columns}\n      />\n    );\n  }\n\n  return (\n    <Modal title={titulo} width={750} visible={visible} onCancel={onCloseModal}>\n      <Form>\n        <Row gutter={8}>\n          <Col span={24}>{showAnexos()}</Col>\n        </Row>\n      </Form>\n    </Modal>\n  );\n}\n\nexport default ArquivosForm;\n","import api from '~/services/api';\n\nasync function obterAnexos(params) {\n  const response = await api.post(`ModuloArquivoDigital/arquivos`, params);\n\n  return response.data;\n}\n\nexport { obterAnexos };\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useState } from 'react';\nimport { Button, Tooltip, Icons, Table, FilterHeaderTable } from '~/components';\n\nimport { TIPO_COLUNA } from '~/modules/Helper/tipoColuna';\nimport { TIPO_VISAO } from '~/modules/Helper/tipo-visao';\nimport Footer from './Footer.component';\nimport ArquivoForm from './arquivos/arquivos.form.component';\n\nfunction TableDinamic({\n  dataUltimaAtualizacao,\n  moduloVisao,\n  handleTableChange,\n  configuracao,\n  quantidadeRegistros,\n  setQuantidadeRegistros,\n  pagina,\n  setPagina,\n  modulo,\n  visao,\n  filtroExportacao,\n  filtroOrdenacaoExportacao,\n  filtro,\n  setFiltro,\n  periodicidadeSelecionada,\n  periodoSelecionado,\n  exercicioSelecionado,\n  colunaFiltroRedirecionaVisao,\n  valorFiltroRedirecionaVisao,\n  tipoValorFiltroRedirecionaVisao,\n  redirecionarDetalheVisaoAnalitica,\n  urlVisaoAnalitica,\n  urlVisaoAgrupamento,\n  listaColunaOrdem,\n  obterValoresChavesPeriodicidadePorLinha,\n  redirecionarVisaoAnalitica,\n  redirecionarRastreabilidade,\n  possuiArquivoDigital,\n  exibirAnexos,\n  filtroPesquisaArquivosDigitais,\n  exibirArquivosForm,\n  setFiltroPesquisaArquivosDigitais,\n  setExibirArquivosForm,\n  buscaAvancada,\n  tableKey,\n  setDataFilterHeader,\n  dataFilterHeader,\n  obterColunaChave,\n  obterColunaLink,\n}) {\n  function verificaAlinhamentoColuna(tipoValor) {\n    if (tipoValor === TIPO_COLUNA.DECIMAL) {\n      return 'right';\n    }\n    if (tipoValor === TIPO_COLUNA.LINK) {\n      return 'center';\n    }\n    return 'left';\n  }\n\n  const BotaoLink = ({ value }) => {\n    return (\n      <Tooltip title={value && `${value.substr(0, 50)}...`}>\n        <Button\n          className=\"btn-link-externo\"\n          type=\"primary\"\n          onClick={() => window.open(value, '_blank')}\n          icon={<Icons.LinkOutlined />}\n          shape=\"circle\"\n        />\n      </Tooltip>\n    );\n  };\n\n  const BotaoArquivoAnexo = props => {\n    return (\n      <Tooltip title=\"Anexos\">\n        <Button\n          type=\"primary\"\n          icon={<Icons.FileOutlined />}\n          shape=\"circle\"\n          onClick={() => exibirAnexos(props)}\n        />\n      </Tooltip>\n    );\n  };\n\n  const BotaoRedirecionarDetalheVisaoAnalitica = ({\n    valoresChavesPeriodicidade,\n    value,\n    exercicio,\n    mes,\n  }) => {\n    const dadosColuna = Object.values(valoresChavesPeriodicidade)[0].valor;\n\n    return (\n      <Tooltip\n        title=\"Visualizar Detalhes\"\n        placement={\n          typeof dadosColuna === 'string' && dadosColuna.length > 50\n            ? 'top'\n            : 'right'\n        }\n      >\n        <Button\n          className=\"btn-chave-visao\"\n          type=\"link\"\n          style={{\n            whiteSpace: 'none',\n            display: 'flex',\n            alignItems: 'center',\n            wordBreak: 'break-word',\n            textAlign: 'left',\n          }}\n          onClick={() => {\n            redirecionarDetalheVisaoAnalitica(\n              valoresChavesPeriodicidade,\n              exercicio,\n              mes\n            );\n          }}\n        >\n          <TextoValorString value={value} maxLength={100} />\n        </Button>\n      </Tooltip>\n    );\n  };\n\n  const BotaoRedirecionarRastreabilidade = ({ row, visaoColuna, value }) => {\n    const valoresRow = Object.values(row);\n    const valorRow = valoresRow.filter(\n      valor => typeof valor === 'string' && valor.length > 50\n    )[0];\n\n    return (\n      <Tooltip\n        title={`Visualizar \"${visaoColuna.Rastreabilidade.TituloVisaoDestino}\"`}\n        placement={valorRow ? 'top' : 'right'}\n      >\n        <Button\n          className=\"btn-chave-visao\"\n          type=\"link\"\n          style={{\n            whiteSpace: 'none',\n            display: 'flex',\n            alignItems: 'center',\n            wordBreak: 'break-word',\n            textAlign: 'left',\n          }}\n          onClick={() => {\n            redirecionarRastreabilidade(row, visaoColuna.Rastreabilidade);\n          }}\n        >\n          <TextoValorString value={value} maxLength={100} />\n        </Button>\n      </Tooltip>\n    );\n  };\n\n  const BotaoRedirecionarVisaoAnalitica = ({ visaoColuna, value }) => {\n    return (\n      <Button\n        className=\"btn-chave-visao\"\n        type=\"link\"\n        style={{\n          whiteSpace: 'initial',\n          wordBreak: 'break-word',\n          textAlign: 'left',\n        }}\n        onClick={() => {\n          redirecionarVisaoAnalitica(\n            visaoColuna.FonteDados,\n            value,\n            visaoColuna.TipoValor\n          );\n        }}\n      >\n        <TextoValorString value={value} maxLength={100} />\n      </Button>\n    );\n  };\n\n  const TextoValorBoolean = ({ value }) => {\n    return <span>{value === true ? 'Sim' : 'Não'}</span>;\n  };\n\n  const TextoValorString = ({ value, maxLength }) => {\n    return (\n      <span>\n        {value?.length > maxLength\n          ? `${value?.substring(0, maxLength)}...`\n          : value}\n      </span>\n    );\n  };\n\n  const Columns = ({ row, value, visaoColuna }) => {\n    const valoresChavesPeriodicidade = obterValoresChavesPeriodicidadePorLinha(\n      row\n    );\n    if (value !== null && value !== undefined && value !== '') {\n      if (\n        visaoColuna.ColunaLink &&\n        (urlVisaoAnalitica || urlVisaoAgrupamento) &&\n        configuracao.Tipo !== TIPO_VISAO.AGRUPAMENTO &&\n        periodicidadeSelecionada\n      ) {\n        return (\n          <BotaoRedirecionarDetalheVisaoAnalitica\n            valoresChavesPeriodicidade={valoresChavesPeriodicidade}\n            value={value}\n            exercicio={row.Exercicio}\n            mes={row.Mes}\n          />\n        );\n      }\n\n      if (visaoColuna.Chave && configuracao.Tipo === TIPO_VISAO.AGRUPAMENTO) {\n        return (\n          <BotaoRedirecionarVisaoAnalitica\n            visaoColuna={visaoColuna}\n            value={value}\n          />\n        );\n      }\n\n      if (\n        visaoColuna.Rastreabilidade?.FonteDadosColunaLink ===\n        visaoColuna.FonteDados\n      ) {\n        return (\n          <BotaoRedirecionarRastreabilidade\n            row={row}\n            visaoColuna={visaoColuna}\n            value={value}\n          />\n        );\n      }\n\n      if (visaoColuna.TipoValor === TIPO_COLUNA.LINK) {\n        return <BotaoLink value={value} />;\n      }\n\n      if (visaoColuna.TipoValor === TIPO_COLUNA.BOOLEANO) {\n        return <TextoValorBoolean value={value} />;\n      }\n    }\n\n    return <TextoValorString value={value} maxLength={100} />;\n  };\n\n  function ordenacao(visaoColuna) {\n    if (visaoColuna.TipoValor !== TIPO_COLUNA.LINK && visaoColuna.Ordenacao) {\n      const ordenacao = listaColunaOrdem?.find(\n        item => item.ColunaOrdem === visaoColuna.FonteDados\n      );\n      return {\n        compare: (a, b) =>\n          a[visaoColuna.FonteDados] - b[visaoColuna.FonteDados],\n        multiple: ordenacao?.Ordem ?? visaoColuna.Ordenacao.Ordem,\n      };\n    }\n\n    return visaoColuna.TipoValor !== TIPO_COLUNA.LINK;\n  }\n\n  function tipoOrdenacaoPadrao(visaoColuna) {\n    const ordenacao = listaColunaOrdem?.find(\n      item => item.ColunaOrdem === visaoColuna.FonteDados\n    );\n\n    if (ordenacao) return ordenacao.TipoOrdem;\n\n    return null;\n  }\n\n  return (\n    <>\n      <Table\n        key={tableKey}\n        dataSource={moduloVisao.Valores}\n        rowKey={row => row.Id}\n        pagination={false}\n        scroll={{ x: 1100 }}\n        onChange={handleTableChange}\n        footer={() => (\n          <Footer\n            configuracao={configuracao}\n            moduloVisao={moduloVisao}\n            quantidadeRegistros={quantidadeRegistros}\n            setQuantidadeRegistros={setQuantidadeRegistros}\n            page={pagina}\n            setPage={setPagina}\n            modulo={modulo}\n            visao={visao}\n            filtroExportacao={filtroExportacao}\n            filtroOrdenacaoExportacao={filtroOrdenacaoExportacao}\n            periodicidade={periodicidadeSelecionada}\n            periodo={periodoSelecionado}\n            exercicio={exercicioSelecionado}\n            colunaFiltroRedirecionaVisao={colunaFiltroRedirecionaVisao}\n            valorFiltroRedirecionaVisao={valorFiltroRedirecionaVisao}\n            tipoValorFiltroRedirecionaVisao={tipoValorFiltroRedirecionaVisao}\n            dataUltimaAtualizacao={dataUltimaAtualizacao}\n            buscaAvancada={buscaAvancada}\n          />\n        )}\n      >\n        {configuracao.VisaoColunas?.filter(\n          visaoColuna => !visaoColuna?.OcultoGridPortal\n        )?.map(visaoColuna => (\n          <Table.Column\n            key={visaoColuna?.FonteDados}\n            title={visaoColuna.NomeColuna}\n            dataIndex={visaoColuna?.FonteDados}\n            sorter={ordenacao(visaoColuna)}\n            defaultSortOrder={tipoOrdenacaoPadrao(visaoColuna)}\n            align={verificaAlinhamentoColuna(visaoColuna.TipoValor)}\n            filterDropdown={props => (\n              <FilterHeaderTable\n                {...props}\n                visaoColuna={visaoColuna}\n                setDataFilterHeader={setDataFilterHeader}\n                dataFilterHeader={dataFilterHeader}\n                configuracao={configuracao}\n                obterColunaChave={obterColunaChave}\n                obterColunaLink={obterColunaLink}\n                setFiltro={setFiltro}\n                filtro={filtro}\n                setPagina={setPagina}\n              />\n            )}\n            render={(value, row) => {\n              return {\n                children: (\n                  <Columns row={row} value={value} visaoColuna={visaoColuna} />\n                ),\n                props: {\n                  'data-title': visaoColuna.NomeColuna,\n                },\n              };\n            }}\n          />\n        ))}\n\n        {possuiArquivoDigital && configuracao.Tipo === TIPO_VISAO.ANALITICO ? (\n          <Table.Column\n            title=\"Anexos\"\n            key=\"Anexos\"\n            align=\"center\"\n            render={props => {\n              return {\n                children: <BotaoArquivoAnexo {...props} />,\n                props: {\n                  'data-title': 'Anexos',\n                },\n              };\n            }}\n          />\n        ) : (\n          ''\n        )}\n      </Table>\n      {filtroPesquisaArquivosDigitais ? (\n        <ArquivoForm\n          visible={exibirArquivosForm}\n          onCancel={() => {\n            setFiltroPesquisaArquivosDigitais([]);\n            setExibirArquivosForm(false);\n          }}\n          filtroPesquisaArquivosDigitais={filtroPesquisaArquivosDigitais}\n          chaveModulo={modulo}\n        />\n      ) : (\n        <></>\n      )}\n    </>\n  );\n}\n\nexport default TableDinamic;\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable prefer-const */\nimport React from 'react';\nimport { Row, Col, Tooltip, Input, Select, Button, Icons } from '~/components';\nimport { TIPO_VISAO } from '~/modules/Helper/tipo-visao';\nimport { TIPO_COLUNA } from '~/modules/Helper/tipoColuna';\nimport { useUrls } from '~/contexts/url.context';\n\nconst { Search } = Input;\n\nfunction FiltroPeriodicidadeModuloDinamico({\n  filtro,\n  pagina,\n  setPagina,\n  configuracao,\n  obterColunaChave,\n  obterColunaLink,\n  setFiltro,\n  InputCarregando,\n  periodicidadeSelecionada,\n  setPeriocidadeSelecionada,\n  listaPeriodicidades,\n  periodoDesabilitado,\n  periodoSelecionado,\n  setPeriodoSelecionado,\n  listaPeriodos,\n  exercicioSelecionado,\n  setExercicioSelecionado,\n  listaExercicios,\n  isFiltroAvancadoHabilitado,\n  history,\n  obterOrdenacaoPadrao,\n  setDataFilterHeader,\n  dataFilterHeader\n}) {\n  const { empilhaUrl } = useUrls();\n  const tiposValorString = [\n    TIPO_COLUNA.TEXTO_50,\n    TIPO_COLUNA.TEXTO_100,\n    TIPO_COLUNA.LINK,\n    TIPO_COLUNA.BOOLEANO,\n  ];\n\n  const tiposValorData = [TIPO_COLUNA.DATA];\n\n  const tiposValorNumber = [TIPO_COLUNA.INTEIRO, TIPO_COLUNA.DECIMAL];\n\n  function verificaTipoInputEPlaceholder() {\n    let inputType = 'text';\n    let textoPlaceholder = 'Filtro';\n    if (configuracao && configuracao.VisaoColunas) {\n      const visaoColuna =\n        configuracao.Tipo === TIPO_VISAO.AGRUPAMENTO\n          ? obterColunaChave()\n          : obterColunaLink();\n\n      if (visaoColuna) {\n        const { TipoValor, NomeColuna } = visaoColuna;\n        \n        if (TipoValor) {\n          if (tiposValorString.includes(TipoValor)) {\n            inputType = 'text';\n          } else if (tiposValorNumber.includes(TipoValor)) {\n            inputType = 'number';\n          } else if (tiposValorData.includes(TipoValor)) {\n            inputType = 'date';\n          }\n        }\n\n        textoPlaceholder = `Filtro por ${NomeColuna}`;\n      }\n    }\n\n    return { inputType, textoPlaceholder };\n  }\n\n  const {\n    inputType,\n    textoPlaceholder\n  } = verificaTipoInputEPlaceholder();\n\n  function restaurarOrdenacao() {\n    const colunaChave =\n      configuracao?.Tipo === TIPO_VISAO.AGRUPAMENTO\n        ? obterColunaChave()\n        : obterColunaLink();\n\n    if (colunaChave) obterOrdenacaoPadrao(colunaChave);\n\n    let dataFilter = {\n      ...dataFilterHeader,\n      Filtros: null,\n    };\n    setDataFilterHeader(dataFilter);\n    setFiltro([]);\n  }\n\n  return (\n    <Row\n      gutter={[16, 16]}\n      style={{\n        display: 'flex',\n        alignItems: 'center',\n        marginTop: 32,\n        marginBottom: 18,\n      }}\n    >\n      <Col\n        lg={6}\n        style={{\n          display: 'flex',\n          justifyContent: 'center',\n          alignItems: 'center',\n        }}\n      >\n        <Tooltip title=\"Filtro\">\n          <Search\n            placeholder={textoPlaceholder}\n            maxLength={50}\n            value={filtro?.length > 0 ? filtro[0]?.Valor : ''}\n            type={inputType}\n            onChange={event => {\n              if (pagina !== 1) setPagina(1);\n\n              const { FonteDados, TipoValor } =\n                configuracao.Tipo === TIPO_VISAO.AGRUPAMENTO\n                  ? obterColunaChave()\n                  : obterColunaLink();\n\n              setFiltro([\n                {\n                  Campo: FonteDados,\n                  Valor: event.target.value,\n                  TipoValor,\n                },\n              ]);\n            }}\n            loading={InputCarregando}\n          />\n        </Tooltip>\n      </Col>\n\n      {isFiltroAvancadoHabilitado &&\n        configuracao?.Tipo === TIPO_VISAO.ANALITICO && (\n          <Col\n            lg={3}\n            style={{\n              display: 'flex',\n              flexDirection: 'column',\n              minWidth: '170px',\n            }}\n          >\n            <Tooltip title=\"Busca Avançada\">\n              <Button\n                type=\"primary\"\n                icon={<Icons.FilterFilled />}\n                onClick={() => {\n                  empilhaUrl(window.location.hash.split('#')[1]);\n                  history.push({ pathname: `${configuracao.Uri}/busca` });\n                }}\n              >\n                Busca Avançada\n              </Button>\n            </Tooltip>\n          </Col>\n        )}\n\n      {configuracao?.Tipo === TIPO_VISAO.AGRUPAMENTO ||\n      configuracao?.Tipo === TIPO_VISAO.ANALITICO ? (\n        <>\n          <Col\n            lg={3}\n            style={{\n              flexDirection: 'column',\n              minWidth: '185px',\n            }}\n          >\n            <Tooltip title=\"Restaurar Ordenação Padrão\">\n              <Button\n                type=\"primary\"\n                icon={<Icons.UndoOutlined />}\n                onClick={() => restaurarOrdenacao()}\n              >\n                Restaurar Ordenação\n              </Button>\n            </Tooltip>\n          </Col>\n        </>\n      ) : (\n        <Col lg={3} />\n      )}\n\n      {periodicidadeSelecionada && (\n        <>\n          <Col lg={{ span: 3, offset: 2 }}>\n            <Tooltip title=\"Periodicidade\">\n              <Select\n                placeholder=\"Periodicidade\"\n                value={periodicidadeSelecionada}\n                defaultValue={periodicidadeSelecionada || 'MENSAL'}\n                onChange={value => {\n                  setPeriocidadeSelecionada(value);\n                  setPagina(1);\n                }}\n                style={{ width: '100%', color: '#000' }}\n              >\n                {listaPeriodicidades?.length &&\n                  listaPeriodicidades.map(value => (\n                    <Select.Option\n                      key={value.Id}\n                      value={value.Id}\n                      style={{ color: '#000' }}\n                    >\n                      {value.Descricao}\n                    </Select.Option>\n                  ))}\n              </Select>\n            </Tooltip>\n          </Col>\n\n          <Col lg={3}>\n            <Tooltip title=\"Período\">\n              <Select\n                placeholder=\"Período\"\n                disabled={periodoDesabilitado}\n                value={periodoSelecionado && periodoSelecionado.toUpperCase()}\n                onChange={value => {\n                  setPeriodoSelecionado(value);\n                  setPagina(1);\n                }}\n                style={{ width: '100%', color: '#000' }}\n              >\n                {listaPeriodos?.length &&\n                  listaPeriodos.map(p => (\n                    <Select.Option\n                      key={p.Id}\n                      value={p.Id}\n                      style={{ color: '#000' }}\n                    >\n                      {p.Descricao}\n                    </Select.Option>\n                  ))}\n              </Select>\n            </Tooltip>\n          </Col>\n\n          <Col lg={3}>\n            <Tooltip title=\"Exercício\">\n              <Select\n                placeholder=\"Exercício\"\n                defaultValue={new Date().getFullYear()}\n                value={exercicioSelecionado}\n                onChange={value => setExercicioSelecionado(value)}\n                style={{ width: '100%', color: '#000' }}\n              >\n                {listaExercicios.map(exerc => (\n                  <Select.Option\n                    key={exerc.Exercicio}\n                    value={exerc.Exercicio}\n                    style={{ color: '#000' }}\n                  >\n                    {exerc.Exercicio}\n                  </Select.Option>\n                ))}\n              </Select>\n            </Tooltip>\n          </Col>\n        </>\n      )}\n    </Row>\n  );\n}\n\nexport default FiltroPeriodicidadeModuloDinamico;\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable prefer-const */\nimport React, { useState, useEffect, useMemo, useCallback } from 'react';\nimport { createBrowserHistory } from 'history';\nimport { Row, ButtonGoBack } from '~/components';\nimport { parseToQueryString } from '~/modules/Helper/querystring-helper';\n\nimport { TIPO_VISAO } from '~/modules/Helper/tipo-visao';\nimport { MODO_VISAO } from '~/modules/Helper/modoVisao';\nimport { NUMERO_QUANTIDADE_REGISTROS } from '~/modules/Helper/numeroQuantidadeRegistros';\nimport { PARAMS_FILTERS_GRID } from '~/modules/Helper/searchParamsFilters';\nimport { getAndFormatSearchParams } from '~/modules/Helper/searchString-helper';\nimport { useUrls } from '~/contexts/url.context';\nimport * as ModuloVisaoService from './services/moduloVisao.service';\n\nimport Header from './components/Grid/Header.component';\nimport Totalizadores from './components/Totalizadores/Totalizadores.component';\nimport TableDinamic from './components/Grid/TableDinamic.component';\nimport FiltroPeriodicidadeModuloDinamico from './components/Grid/FiltroPeriodicidadeModuloDinamico.component';\n\nimport { useDebounce } from '../Helper/hooks/debounce.hook';\n\nimport { FILTRO_DEFAULT } from '../Helper/FiltrosPeriodicidade';\n\nfunction ModuloDinamicoPage({ match, history }) {\n  const browserHistory = createBrowserHistory();\n\n  const { empilhaUrl, obterUrlPaginaAnterior } = useUrls();\n\n  const routeParams = new URLSearchParams(history.location.search);\n\n  const periodicidadeParam = routeParams.get('periodicidade')?.toUpperCase();\n  const periodoParam = routeParams.get('periodo')?.toUpperCase();\n  const exercicioParam = Number(routeParams.get('exercicio'));\n  const paginacaoGridParam = Number(routeParams.get('pagina'));\n  const quantidadeRegistrosParam = routeParams.get('quantidaderegistros');\n\n  const valorFiltroRedirecionaVisaoParam = routeParams.get(\n    'valorfiltroredirecionavisao'\n  );\n\n  const colunaFiltroRedirecionaVisaoParam = routeParams.get(\n    'colunafiltroredirecionavisao'\n  );\n\n  const tipoValorFiltroRedirecionaVisaoParam = routeParams.get(\n    'tipovalorfiltroredirecionavisao'\n  );\n\n  const listaColunaOrdemParam = JSON.parse(routeParams.get('listacolunaordem'));\n\n  const [dataUltimaAtualizacao, setDataUltimaAtualizacao] = useState(null);\n  const [configuracao, setConfiguracao] = useState(null);\n  const [listaPeriodicidades, setListaPeriodicidades] = useState([]);\n  const [listaPeriodos, setListaPeriodos] = useState([]);\n  const [listaExercicios, setListaExercicios] = useState([]);\n  const [possuiArquivoDigital, setPossuiArquivoDigital] = useState(false);\n  const [moduloVisao, setModuloVisao] = useState(null);\n  const [urlVisaoAnalitica, setUrlVisaoAnalitica] = useState(null);\n  const [urlVisaoAgrupamento, setUrlVisaoAgrupamento] = useState(null);\n  const [periodoDesabilitado, setPeriodoDesabilitado] = useState(false);\n  const [InputCarregando, setInputCarregando] = useState(false);\n  const [filtro, setFiltro] = useState([]);\n  const filtroDebounce = useDebounce(filtro, 500);\n  const [totalizadores, setTotalizadores] = useState([]);\n  const [filtroDefault, setFiltroDefaultEnum] = useState();\n  const [filtroExportacao, setFiltroExportacao] = useState([]);\n  const [filtroOrdenacaoExportacao, setFiltroOrdenacaoExportacao] = useState([]);\n\n  const [dataFilterHeader, setDataFilterHeader] = useState([]);\n\n  // filtros da visão agrupamento\n  const [\n    colunaFiltroRedirecionaVisao,\n    setColunaFiltroRedirecionaVisao,\n  ] = useState(null);\n  const [\n    valorFiltroRedirecionaVisao,\n    setValorFiltroRedirecionaVisao,\n  ] = useState(null);\n  const [\n    tipoValorFiltroRedirecionaVisao,\n    setTipoValorFiltroRedirecionaVisao,\n  ] = useState(null);\n\n  const [periodicidadeSelecionada, setPeriocidadeSelecionada] = useState(null);\n  const [periodoSelecionado, setPeriodoSelecionado] = useState(null);\n  const [exercicioSelecionado, setExercicioSelecionado] = useState(null);\n  const [pagina, setPagina] = useState(1);\n  const [quantidadeRegistros, setQuantidadeRegistros] = useState();\n  const [listaColunaOrdem, setListaColunaOrdem] = useState([]);\n  const [tableKey, setTableKey] = useState(Date.now());\n  const [exibirArquivosForm, setExibirArquivosForm] = useState(false);\n  const [\n    filtroPesquisaArquivosDigitais,\n    setFiltroPesquisaArquivosDigitais,\n  ] = useState(null);\n  const [isFiltroAvancadoHabilitado, setIsFiltroAvancadoHabiltado] = useState(\n    false\n  );\n\n  const { modulo, visao } = match.params;\n  const [chavesPeriodicidade, setChavesPeriodicidade] = useState([]);\n\n  const obterVisaoColunas = propriedade => {\n    return (\n      configuracao?.VisaoColunas?.find(\n        x => x.OcultoGridPortal !== true && x[propriedade] // A coluna OcultoGridPortal não deve ser utilizada\n      ) || null\n    );\n  };\n\n  const obterColunaChave = useCallback(() => {\n    return (\n      obterVisaoColunas('Chave') ||\n      obterVisaoColunas('ChaveUnicaModulo') ||\n      obterVisaoColunas('ColunaLink') ||\n      configuracao?.VisaoColunas?.[0] ||\n      null\n    );\n  }, [configuracao]);\n\n  const obterChaveUnicaModulo = useCallback(() => {\n    return obterVisaoColunas('ChaveUnicaModulo') || obterColunaChave();\n  }, [configuracao, obterColunaChave]);\n\n  const obterColunaLink = useCallback(() => {\n    return obterVisaoColunas('ColunaLink') || obterChaveUnicaModulo();\n  }, [configuracao, obterChaveUnicaModulo]);\n\n  const obterOrdenacaoPadrao = useCallback(\n    colunaChave => {\n      const ordenacoes = configuracao.VisaoColunas?.map(item => {\n        if (item.Ordenacao)\n          return {\n            ColunaOrdem: item.FonteDados,\n            TipoOrdem: item.Ordenacao.TipoOrdenacao,\n            Ordem: item.Ordenacao.Ordem,\n          };\n        return null;\n      })?.filter(Boolean);\n\n      if (ordenacoes?.length) setListaColunaOrdem(ordenacoes);\n      else\n        setListaColunaOrdem([\n          {\n            ColunaOrdem: colunaChave.FonteDados,\n            TipoOrdem: 'ascend',\n            Ordem: 1,\n          },\n        ]);\n\n      setTableKey(Date.now());\n    },\n    [configuracao]\n  );\n\n  function handleTableChange(pagination, filters, sorter) {\n    if (!Array.isArray(sorter))\n      return setListaColunaOrdem([\n        {\n          ColunaOrdem: sorter.field,\n          TipoOrdem: sorter.order,\n          Ordem: 1,\n        },\n      ]);\n    const maxOrdem = Math.max(...listaColunaOrdem?.map(item => item.Ordem));\n\n    const novaListaOrdenacaoColuna = sorter?.map((s, index) => {\n      const itemOrdenacao = listaColunaOrdem.find(\n        (ordenacao, idx) =>\n          s.columnKey === ordenacao.ColunaOrdem && index === idx\n      );\n      if (itemOrdenacao) {\n        return {\n          ...itemOrdenacao,\n          TipoOrdem: s.order,\n        };\n      }\n      return {\n        ColunaOrdem: s.field,\n        TipoOrdem: s.order,\n        Ordem: maxOrdem ? maxOrdem + 1 : 1,\n      };\n    });\n\n    setListaColunaOrdem(novaListaOrdenacaoColuna);\n  }\n\n  function obterValoresChavesPeriodicidadePorLinha(linhaGrid) {\n    const valores = chavesPeriodicidade.map(colunaGrid => ({\n      campo: colunaGrid.FonteDados,\n      valor: linhaGrid[colunaGrid.FonteDados],\n      tipo: colunaGrid.TipoValor,\n    }));\n    return valores;\n  }\n\n  const exibirAnexos = useCallback(row => {\n    const colunasChave = configuracao?.VisaoColunas.filter(\n      colunaGrid => colunaGrid.ChaveUnicaModulo\n    );\n\n    const chavePesquisa = {\n      ChaveModulo: modulo,\n      Chave: colunasChave.map(coluna => ({\n        Campo: coluna.FonteDados,\n        Valor: row[coluna.FonteDados],\n        TipoValor: coluna.TipoValor,\n      })),\n    };\n\n    setFiltroPesquisaArquivosDigitais(chavePesquisa);\n    setExibirArquivosForm(true);\n  });\n\n  const validaPeriodicidade = useCallback(() => {\n    if (!periodicidadeSelecionada) return false;\n\n    const periodoAnualValido =\n      periodicidadeSelecionada === 'ANUAL' && !periodoSelecionado;\n\n    let periodoValidoParaPeriodicidade;\n    if (periodicidadeSelecionada === null) {\n      periodoValidoParaPeriodicidade = listaPeriodicidades;\n    } else {\n      periodoValidoParaPeriodicidade = listaPeriodicidades.some(\n        p =>\n          p.Id === periodicidadeSelecionada &&\n          p.Periodos &&\n          p.Periodos.length &&\n          p.Periodos.some(x => x.Id === periodoSelecionado)\n      );\n    }\n\n    return periodoAnualValido || periodoValidoParaPeriodicidade;\n  }, [periodicidadeSelecionada, listaPeriodicidades, periodoSelecionado]);\n\n  function redirecionarDetalheVisaoAnalitica(valoresChavesPeriodicidade) {\n    let colunasPeriodicidadeCampoValor = {};\n\n    valoresChavesPeriodicidade.forEach(item => {\n      colunasPeriodicidadeCampoValor[item.campo] = item.valor;\n    });\n\n    const data = {\n      exercicio: exercicioSelecionado,\n      periodicidade: periodicidadeSelecionada,\n      periodo: periodoSelecionado,\n\n      ...colunasPeriodicidadeCampoValor,\n    };\n\n    const queryString = parseToQueryString(data);\n\n    empilhaUrl(window.location.hash.split('#')[1]);\n\n    history.push({\n      pathname: `${urlVisaoAnalitica}/detalhevisao`,\n      state: {\n        pagina,\n        quantidadeRegistros,\n        colunaFiltroRedirecionaVisao,\n        valorFiltroRedirecionaVisao,\n        tipoValorFiltroRedirecionaVisao,\n        listaColunaOrdem,\n        filtro,\n      },\n      search: queryString,\n    });\n  }\n\n  function redirecionarVisaoAnalitica(\n    colunaSelecionada,\n    valorSelecionada,\n    tipoValorColunaSelecionada\n  ) {\n    setColunaFiltroRedirecionaVisao(colunaSelecionada);\n    setValorFiltroRedirecionaVisao(valorSelecionada);\n    setTipoValorFiltroRedirecionaVisao(tipoValorColunaSelecionada);\n\n    empilhaUrl(window.location.hash.split('#')[1]);\n\n    history.push({\n      pathname: urlVisaoAnalitica,\n      state: {\n        colunaSelecionada,\n        chaveSelecionada: valorSelecionada,\n        tipoValorColunaSelecionada,\n        exercicio: exercicioSelecionado,\n        periodicidade: periodicidadeSelecionada,\n        periodo: periodoSelecionado,\n        quantidadeRegistros,\n        valorFiltroRedirecionaVisao,\n        tipoValorFiltroRedirecionaVisao,\n        isFromAgrupamento: true,\n        listacolunaordem: listaColunaOrdem\n          ? JSON.stringify(listaColunaOrdem)\n          : null,\n      },\n    });\n  }\n\n  async function redirecionarRastreabilidade(row, visaoRastreabilidade) {\n    const rastreabilidade = {\n      campo: visaoRastreabilidade.FonteDadosColunaDestino,\n      valor: row[visaoRastreabilidade.FonteDadosColunaOrigem],\n      tipo: visaoRastreabilidade.TipoValorColunaDestino,\n      link: visaoRastreabilidade.LinkVisaoDestino,\n    };\n\n    empilhaUrl(window.location.hash.split('#')[1]);\n\n    history.push({\n      pathname: `${rastreabilidade.link}?${window.location.hash.split('#')[1]\n        }&colunafiltroredirecionavisao=${rastreabilidade.campo\n        }&valorfiltroredirecionavisao=${rastreabilidade.valor\n        }&tipovalorfiltroredirecionavisao=${rastreabilidade.tipo}`,\n      state: {\n        colunaSelecionada: rastreabilidade.campo,\n        chaveSelecionada: rastreabilidade.valor,\n        tipoValorColunaSelecionada: rastreabilidade.tipo,\n        exercicio: exercicioSelecionado,\n        periodicidade: periodicidadeSelecionada,\n        periodo: periodoSelecionado,\n        quantidadeRegistros,\n        valorFiltroRedirecionaVisao: null,\n        tipoValorFiltroRedirecionaVisao: null,\n        isFromAgrupamento: true,\n        listacolunaordem: listaColunaOrdem\n          ? JSON.stringify(listaColunaOrdem)\n          : null,\n      },\n    });\n  }\n\n  function voltarPaginaAnterior() {\n    if (configuracao.Tipo === TIPO_VISAO.AGRUPAMENTO) {\n      history.push(`/`);\n    }\n\n    const { urlBase, queryParam } = obterUrlPaginaAnterior();\n\n    if (urlBase && queryParam) {\n      history.push({ pathname: urlBase, search: queryParam });\n    } else {\n      history.push(`/`);\n    }\n  }\n\n  const buscaDadosGrid = useCallback(() => {\n    if (!filtroDefault) return;\n\n    if (\n      filtroDefault !== FILTRO_DEFAULT.SEM_FILTRO &&\n      (!validaPeriodicidade() || !exercicioSelecionado)\n    ) {\n      return;\n    }\n\n    if (!configuracao || !listaColunaOrdem?.length) {\n      return;\n    }\n    const FiltroRedirecionaVisao = {\n      Campo: colunaFiltroRedirecionaVisao,\n      Valor: valorFiltroRedirecionaVisao,\n      TipoValor: tipoValorFiltroRedirecionaVisao,\n    };\n\n    let mergeFiltro = [];\n    let indexFiltro;\n    if (dataFilterHeader?.Filtros && dataFilterHeader?.Filtros.length > 0) {\n      mergeFiltro = dataFilterHeader.Filtros;\n\n      if (filtroDebounce) {\n        indexFiltro = mergeFiltro.findIndex(\n          x => x.Campo == filtroDebounce[0]?.Campo\n        );\n\n        if (indexFiltro >= 0) {\n          mergeFiltro = mergeFiltro.filter(\n            item => item.Campo !== mergeFiltro[indexFiltro].Campo\n          );\n        }\n\n        if (filtroDebounce.length > 0 && filtroDebounce[0].Valor !== '') {\n          mergeFiltro.push(filtroDebounce[0]);\n        }\n      }\n\n      if (filtroDebounce === -1 || filtroDebounce === undefined) {\n        mergeFiltro = dataFilterHeader.Filtros;\n      }\n    } else {\n      mergeFiltro =\n        Array.isArray(dataFilterHeader?.Filtros) &&\n          dataFilterHeader?.Filtros.length > 0\n          ? dataFilterHeader?.Filtros\n          : filtroDebounce;\n    }\n\n    let data = {\n      ChaveModulo: modulo,\n      NomeVisao: visao,\n      Filtros: mergeFiltro,\n      Periodicidade: periodicidadeSelecionada,\n      Periodo: periodoSelecionado,\n      Exercicio: exercicioSelecionado,\n      Pagina: pagina,\n      QuantidadeRegistros: quantidadeRegistros,\n      Ordenacao: listaColunaOrdem,\n      FiltroRedirecionaVisao,\n    };\n    const dataQueryString = {\n      periodicidade: periodicidadeSelecionada,\n      periodo: periodoSelecionado,\n      exercicio: exercicioSelecionado,\n      pagina,\n      quantidaderegistros: quantidadeRegistros,\n      colunafiltroredirecionavisao: colunaFiltroRedirecionaVisao,\n      valorfiltroredirecionavisao: valorFiltroRedirecionaVisao,\n      tipovalorfiltroredirecionavisao: tipoValorFiltroRedirecionaVisao,\n      listacolunaordem: listaColunaOrdem\n        ? JSON.stringify(listaColunaOrdem)\n        : null,\n    };\n    const searchParams = getAndFormatSearchParams(\n      dataQueryString,\n      PARAMS_FILTERS_GRID\n    );\n\n    setDataFilterHeader(data);\n\n    function filtrarModuloVisao(dataFiltro) {\n      setInputCarregando(true);\n\n      setFiltroExportacao(dataFiltro.Filtros.length > 0 ? dataFiltro.Filtros : []);\n      setFiltroOrdenacaoExportacao(dataFiltro.Ordenacao.length > 0 ? dataFiltro.Ordenacao : []);\n\n      ModuloVisaoService.filtrar(dataFiltro)\n        .then(res => {\n          setModuloVisao(res.data);\n          setInputCarregando(false);\n        })\n        .catch(() => {\n          setModuloVisao({\n            QuantidadePaginas: 0,\n            QuantidadeRegistros: 0,\n            Valores: [],\n          });\n          setInputCarregando(false);\n        });\n    }\n\n    if (configuracao) {\n      if (configuracao.ModoVisao === MODO_VISAO.GridVazia) {\n        if (data?.Filtros.length > 0) {\n          filtrarModuloVisao(data);\n        } else {\n          setModuloVisao({\n            QuantidadePaginas: 0,\n            QuantidadeRegistros: 0,\n            Valores: [],\n          });\n        }\n        return;\n      }\n\n      if (configuracao.ModoVisao === MODO_VISAO.Manutencao) {\n        history.push(\n          `/manutencao?visao=dinamico/${modulo}/${visao}&titulo=${configuracao.Titulo}`\n        );\n      } else {\n        browserHistory.replace(\n          `/#/dinamico/${modulo}/${visao}?${searchParams}`,\n          history.location.state\n        );\n        filtrarModuloVisao(data);\n      }\n    }\n  }, [\n    valorFiltroRedirecionaVisao,\n    colunaFiltroRedirecionaVisao,\n    tipoValorFiltroRedirecionaVisao,\n    periodoDesabilitado,\n    exercicioSelecionado,\n    filtroDebounce,\n    modulo,\n    pagina,\n    periodicidadeSelecionada,\n    periodoSelecionado,\n    quantidadeRegistros,\n    validaPeriodicidade,\n    visao,\n    listaColunaOrdem,\n    configuracao,\n    filtroDefault,\n  ]);\n\n  const obterConfiguracoes = useCallback(async () => {\n    const responseConfiguracao = await ModuloVisaoService.obterConfiguracoes(\n      modulo,\n      visao\n    );\n\n    if (responseConfiguracao?.data) setConfiguracao(responseConfiguracao.data);\n  }, [modulo, visao]);\n\n  const obterExerciciosEVisaoAnalitica = useCallback(async () => {\n    const responseConfiguracoesGerais = await ModuloVisaoService.obterConfiguracoesGerais(\n      modulo\n    );\n\n    if (responseConfiguracoesGerais?.data) {\n      const {\n        NomeVisaoAnalitica,\n        NomeVisaoAgrupamento,\n        Exercicios,\n        PossuiArquivoDigital,\n        DataUltimaSicronizacaoModulo,\n        Periodicidades,\n        FiltroHabilitado,\n        FiltroDefaultEnum,\n      } = responseConfiguracoesGerais?.data;\n\n      if (NomeVisaoAnalitica) setUrlVisaoAnalitica(NomeVisaoAnalitica);\n\n      if (NomeVisaoAgrupamento) setUrlVisaoAgrupamento(NomeVisaoAgrupamento);\n\n      if (DataUltimaSicronizacaoModulo)\n        setDataUltimaAtualizacao(DataUltimaSicronizacaoModulo);\n\n      if (FiltroHabilitado) setIsFiltroAvancadoHabiltado(FiltroHabilitado);\n\n      if (FiltroDefaultEnum) setFiltroDefaultEnum(FiltroDefaultEnum);\n\n      if (Exercicios?.length) {\n        await setListaExercicios(Exercicios);\n\n        const exercicioParamExisteArray = Exercicios.find(\n          x => x.Exercicio === exercicioParam\n        );\n\n        await setExercicioSelecionado(\n          exercicioParamExisteArray === undefined\n            ? Exercicios[0].Exercicio\n            : exercicioParam\n        );\n      }\n\n      if (Periodicidades?.length) {\n        await setListaPeriodicidades(Periodicidades);\n\n        const periodicidadeDoParam = Periodicidades.find(\n          x => x.Id === periodicidadeParam\n        );\n\n        await setPeriocidadeSelecionada(\n          periodicidadeDoParam === undefined\n            ? Periodicidades[0].Id\n            : periodicidadeParam\n        );\n      }\n\n      if (PossuiArquivoDigital !== null && PossuiArquivoDigital !== undefined)\n        setPossuiArquivoDigital(PossuiArquivoDigital);\n    }\n  }, [modulo]);\n\n  function setSearchParams() {\n    setTipoValorFiltroRedirecionaVisao(\n      tipoValorFiltroRedirecionaVisaoParam || null\n    );\n    setColunaFiltroRedirecionaVisao(colunaFiltroRedirecionaVisaoParam || null);\n    setValorFiltroRedirecionaVisao(valorFiltroRedirecionaVisaoParam || null);\n    setPeriodoSelecionado(periodoParam || null);\n    setExercicioSelecionado(exercicioParam || null);\n    setPagina(paginacaoGridParam || 1);\n    setQuantidadeRegistros(\n      NUMERO_QUANTIDADE_REGISTROS.includes(quantidadeRegistrosParam)\n        ? quantidadeRegistrosParam\n        : '10'\n    );\n\n    if (listaColunaOrdemParam?.length)\n      setListaColunaOrdem(listaColunaOrdemParam);\n  }\n\n  function obterChavesPeriocidadeDaConfiguracao() {\n    const colunasPeriodicidade = configuracao.ChavesPeriodicidades;\n\n    setChavesPeriodicidade(arrayAnterior => [\n      ...arrayAnterior,\n      ...colunasPeriodicidade,\n    ]);\n  }\n\n  const carregarPagina = useCallback(() => {\n    if (visao !== urlVisaoAnalitica && visao !== urlVisaoAgrupamento) {\n      setColunaFiltroRedirecionaVisao(null);\n      setValorFiltroRedirecionaVisao(null);\n      setTipoValorFiltroRedirecionaVisao(null);\n      if (filtro?.length) {\n        setFiltro([]);\n      }\n    } else if (history.location.state) {\n      const {\n        chaveSelecionada,\n        colunaSelecionada,\n        tipoValorColunaSelecionada,\n        exercicio,\n        periodicidade,\n        periodo,\n        tipoOrdem,\n        isFromAgrupamento,\n        // váriaveis com o mesmo nome já existem no escopo acima\n        quantidadeRegistros: quantidadeRegistrosHistory,\n        colunaFiltroRedirecionaVisao: colunaFiltroRedirecionaVisaoHistory,\n        valorFiltroRedirecionaVisao: valorFiltroRedirecionaVisaoHistory,\n        tipoValorFiltroRedirecionaVisao: tipoValorFiltroRedirecionaVisaoHistory,\n        colunaOrdem: colunaOrdemHistory,\n        filtro: filtroHistory,\n      } = history.location.state;\n\n      if (colunaFiltroRedirecionaVisaoHistory) {\n        setColunaFiltroRedirecionaVisao(colunaFiltroRedirecionaVisaoHistory);\n      } else {\n        setColunaFiltroRedirecionaVisao(colunaSelecionada);\n      }\n\n      if (valorFiltroRedirecionaVisaoHistory) {\n        setValorFiltroRedirecionaVisao(valorFiltroRedirecionaVisaoHistory);\n      } else if (isFromAgrupamento) {\n        setValorFiltroRedirecionaVisao(chaveSelecionada);\n      }\n\n      if (tipoValorFiltroRedirecionaVisaoHistory) {\n        setTipoValorFiltroRedirecionaVisao(\n          tipoValorFiltroRedirecionaVisaoHistory\n        );\n      } else {\n        setTipoValorFiltroRedirecionaVisao(tipoValorColunaSelecionada);\n      }\n\n      setFiltro(filtroHistory);\n\n      if (listaColunaOrdem && tipoOrdem) {\n        setListaColunaOrdem([\n          {\n            ColunaOrdem: colunaOrdemHistory,\n            TipoOrdem: tipoOrdem,\n          },\n        ]);\n      }\n      setExercicioSelecionado(exercicio);\n\n      setPeriocidadeSelecionada(periodicidade);\n      setPeriodoSelecionado(periodo);\n      setQuantidadeRegistros(quantidadeRegistrosHistory || '10');\n\n      // eslint-disable-next-line no-param-reassign\n      history.location.state = null;\n    }\n  }, [history.location.state, urlVisaoAnalitica, urlVisaoAgrupamento, visao]);\n\n  function desabilitarPeriodo() {\n    setPeriodoDesabilitado(true);\n    setPeriodoSelecionado(null);\n    carregarPagina();\n  }\n\n  function configuraPeriodoPorTipoPeriodicidade() {\n    setPeriodoDesabilitado(false);\n    const exercicio = listaExercicios.find(\n      ex => ex.Exercicio === exercicioSelecionado\n    );\n\n    if (exercicio) {\n      const { IdsPeriodicidadePeriodoUltimoMes } = exercicio;\n\n      if (IdsPeriodicidadePeriodoUltimoMes?.length) {\n        const IdPeriodicidadePeriodoSelecionado = IdsPeriodicidadePeriodoUltimoMes.find(\n          p => p.IdPeriodicidade === periodicidadeSelecionada\n        );\n        if (IdPeriodicidadePeriodoSelecionado?.IdPeriodo) {\n          const periodoValido = listaPeriodicidades.some(\n            e =>\n              e.Id === periodicidadeSelecionada &&\n              e.Periodos.some(p => p.Id === periodoSelecionado)\n          );\n          setPeriodoSelecionado(\n            periodoValido\n              ? periodoSelecionado\n              : IdPeriodicidadePeriodoSelecionado.IdPeriodo\n          );\n          carregarPagina();\n        }\n      }\n    }\n  }\n\n  function configuraPeriodo() {\n    if (periodicidadeSelecionada === 'ANUAL') {\n      desabilitarPeriodo();\n    } else if (\n      listaExercicios?.length &&\n      exercicioSelecionado &&\n      periodicidadeSelecionada\n    ) {\n      configuraPeriodoPorTipoPeriodicidade();\n    }\n  }\n\n  // set exercicios, exercicio e visao analitica\n  useEffect(() => {\n    obterExerciciosEVisaoAnalitica();\n    obterConfiguracoes();\n    setSearchParams();\n  }, [obterExerciciosEVisaoAnalitica, obterConfiguracoes]);\n\n  // set ordem inicial\n  useEffect(() => {\n    const colunaChave =\n      configuracao?.Tipo === 2 ? obterColunaChave() : obterColunaLink();\n\n    if (colunaChave && !listaColunaOrdem?.length) {\n      obterOrdenacaoPadrao(colunaChave);\n    }\n    if (configuracao) obterChavesPeriocidadeDaConfiguracao();\n  }, [obterColunaLink, obterColunaChave, configuracao]);\n\n  // set periodos\n  useEffect(() => {\n    if (listaPeriodicidades?.length && periodicidadeSelecionada) {\n      const periodicidade = listaPeriodicidades.find(\n        x => x.Id === periodicidadeSelecionada\n      );\n\n      setListaPeriodos(periodicidade?.Periodos || []);\n    }\n  }, [periodicidadeSelecionada, listaPeriodicidades]);\n\n  // set periodo\n  useEffect(() => {\n    configuraPeriodo();\n  }, [\n    exercicioSelecionado,\n    listaExercicios,\n    carregarPagina,\n    periodicidadeSelecionada,\n    periodoSelecionado,\n    urlVisaoAnalitica,\n    urlVisaoAgrupamento,\n    visao,\n    listaPeriodicidades,\n    configuracao,\n  ]);\n\n  // search da grid\n  useEffect(() => {\n    buscaDadosGrid();\n  }, [buscaDadosGrid]);\n\n  useEffect(() => {\n    if (history.location.state?.pagina) {\n      setPagina(history.location.state?.pagina);\n    }\n  }, [pagina]);\n\n  const Grid = useMemo(() => {\n    return configuracao?.VisaoColunas && moduloVisao?.Valores ? (\n      <TableDinamic\n        moduloVisao={moduloVisao}\n        handleTableChange={handleTableChange}\n        configuracao={configuracao}\n        quantidadeRegistros={quantidadeRegistros}\n        setQuantidadeRegistros={setQuantidadeRegistros}\n        pagina={pagina}\n        setPagina={setPagina}\n        modulo={modulo}\n        visao={visao}\n        filtroExportacao={filtroExportacao}\n        filtroOrdenacaoExportacao={filtroOrdenacaoExportacao}\n        filtro={filtro}\n        setFiltro={setFiltro}\n        periodicidadeSelecionada={periodicidadeSelecionada}\n        periodoSelecionado={periodoSelecionado}\n        exercicioSelecionado={exercicioSelecionado}\n        colunaFiltroRedirecionaVisao={colunaFiltroRedirecionaVisao}\n        valorFiltroRedirecionaVisao={valorFiltroRedirecionaVisao}\n        tipoValorFiltroRedirecionaVisao={tipoValorFiltroRedirecionaVisao}\n        redirecionarDetalheVisaoAnalitica={redirecionarDetalheVisaoAnalitica}\n        urlVisaoAnalitica={urlVisaoAnalitica}\n        urlVisaoAgrupamento={urlVisaoAgrupamento}\n        listaColunaOrdem={listaColunaOrdem}\n        obterValoresChavesPeriodicidadePorLinha={\n          obterValoresChavesPeriodicidadePorLinha\n        }\n        dataUltimaAtualizacao={dataUltimaAtualizacao}\n        redirecionarVisaoAnalitica={redirecionarVisaoAnalitica}\n        redirecionarRastreabilidade={redirecionarRastreabilidade}\n        possuiArquivoDigital={possuiArquivoDigital}\n        exibirAnexos={exibirAnexos}\n        filtroPesquisaArquivosDigitais={filtroPesquisaArquivosDigitais}\n        exibirArquivosForm={exibirArquivosForm}\n        setFiltroPesquisaArquivosDigitais={setFiltroPesquisaArquivosDigitais}\n        setExibirArquivosForm={setExibirArquivosForm}\n        tableKey={tableKey}\n        setDataFilterHeader={setDataFilterHeader}\n        dataFilterHeader={dataFilterHeader}\n        obterColunaChave={obterColunaChave}\n        obterColunaLink={obterColunaLink}\n      />\n    ) : (\n      <></>\n    );\n  }, [\n    valorFiltroRedirecionaVisao,\n    colunaFiltroRedirecionaVisao,\n    listaColunaOrdem,\n    configuracao,\n    exercicioSelecionado,\n    possuiArquivoDigital,\n    filtro,\n    modulo,\n    moduloVisao,\n    pagina,\n    periodicidadeSelecionada,\n    periodoSelecionado,\n    quantidadeRegistros,\n    urlVisaoAnalitica,\n    urlVisaoAgrupamento,\n    visao,\n    filtroPesquisaArquivosDigitais,\n    exibirArquivosForm,\n    exibirAnexos,\n    dataUltimaAtualizacao,\n  ]);\n\n  useEffect(() => {\n    async function obterTotalizadores() {\n      const FiltroRedirecionaVisao = {\n        Campo: colunaFiltroRedirecionaVisao,\n        Valor: valorFiltroRedirecionaVisao,\n        TipoValor: tipoValorFiltroRedirecionaVisao,\n      };\n\n      const data = {\n        ChaveModulo: modulo,\n        NomeVisao: visao,\n        Filtros: filtro,\n        Periodicidade: periodicidadeSelecionada,\n        Periodo: periodoSelecionado,\n        Exercicio: exercicioSelecionado,\n        FiltroRedirecionaVisao,\n      };\n\n      const ColunasTotalizadoras = await ModuloVisaoService.obterTotalizadores(\n        data\n      );\n\n      setTotalizadores(ColunasTotalizadoras.data);\n    }\n\n    if (!validaPeriodicidade() || !exercicioSelecionado || !configuracao) {\n      return;\n    }\n\n    obterTotalizadores();\n  }, [\n    colunaFiltroRedirecionaVisao,\n    valorFiltroRedirecionaVisao,\n    tipoValorFiltroRedirecionaVisao,\n    modulo,\n    visao,\n    configuracao,\n    filtroDebounce,\n    periodicidadeSelecionada,\n    periodoSelecionado,\n    exercicioSelecionado,\n  ]);\n\n  return (\n    <>\n      <Header configuracao={configuracao} />\n\n      {totalizadores?.length > 0 && (\n        <Totalizadores totalizadores={totalizadores} />\n      )}\n\n      <FiltroPeriodicidadeModuloDinamico\n        filtro={filtro}\n        pagina={pagina}\n        setPagina={setPagina}\n        configuracao={configuracao}\n        obterColunaChave={obterColunaChave}\n        obterColunaLink={obterColunaLink}\n        setFiltro={setFiltro}\n        InputCarregando={InputCarregando}\n        periodicidadeSelecionada={periodicidadeSelecionada}\n        setPeriocidadeSelecionada={setPeriocidadeSelecionada}\n        listaPeriodicidades={listaPeriodicidades}\n        periodoDesabilitado={periodoDesabilitado}\n        periodoSelecionado={periodoSelecionado}\n        setPeriodoSelecionado={setPeriodoSelecionado}\n        listaPeriodos={listaPeriodos}\n        exercicioSelecionado={exercicioSelecionado}\n        setExercicioSelecionado={setExercicioSelecionado}\n        listaExercicios={listaExercicios}\n        isFiltroAvancadoHabilitado={isFiltroAvancadoHabilitado}\n        history={history}\n        obterOrdenacaoPadrao={obterOrdenacaoPadrao}\n        setDataFilterHeader={setDataFilterHeader}\n        dataFilterHeader={dataFilterHeader}\n      />\n\n      {Grid}\n\n      <Row>\n        <ButtonGoBack OnClick={voltarPaginaAnterior} />\n      </Row>\n    </>\n  );\n}\n\nconst ModuloDinamico = ({ history, match }) => {\n  return (\n    <ModuloDinamicoPage key={Math.random()} history={history} match={match} />\n  );\n};\n\nexport default ModuloDinamico;\n","import { useState, useEffect } from 'react';\n\nexport function useDebounce(text, delay) {\n  const [debouncedValue, setDebouncedValue] = useState(text);\n\n  useEffect(() => {\n    const time = setTimeout(() => {\n      setDebouncedValue(text);\n    }, delay);\n\n    return () => {\n      clearTimeout(time);\n    };\n  }, [delay, text]);\n\n  return debouncedValue;\n}\n","import styled from 'styled-components';\nimport { Input } from '~/components';\n\nconst { Search } = Input;\n\nexport const Row = styled.div`\n  display: flex;\n  align-items: flex-end;\n  justify-content: space-between;\n`;\n\nexport const SearchTool = styled(Search)`\n  margin-bottom: 8px;\n  width: 50%;\n`;\n","import styled from 'styled-components';\nimport { Tree } from '~/components';\n\nexport const TreeTransparente = styled(Tree)`\n  &&.draggable-tree {\n    background: transparent !important;\n  }\n\n  .ant-tree-list-scrollbar-show {\n    display: initial !important;\n  }\n`;\n\nexport const LinkArquivo = styled.a`\n  font-style: italic;\n  margin-left: 5px;\n`;\n","import React, {\n  useState,\n  useEffect,\n  forwardRef,\n  useImperativeHandle,\n} from 'react';\nimport { useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { Tree, Tooltip, Typography, Icons } from '~/components';\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\nimport { TreeTransparente, LinkArquivo } from './styles';\nimport { iconEnum } from '~/modules/Helper/iconEnum';\nimport { ChooseIconFile } from '~/modules/Helper/chooseIconFile';\nimport RemoveDiacritic from '../../../hooks/removeDiacritic';\n\nconst TreeViewModuloFixo = forwardRef(\n  ({ treeView, visao, setSearchValue }, ref) => {\n    const { TreeNode } = Tree;\n    const { corTema } = useSelector(state => state.configuration);\n    const [expandedKeys, setExpandedKeys] = useState([]);\n    const [autoExpandParent, setAutoExpandParent] = useState(true);\n    const [treeData, setTreeData] = useState(treeView);\n\n    useEffect(() => {\n      setSearchValue('');\n      setTreeData(treeView);\n    }, [treeView]);\n\n    const loop = data =>\n      data.map(item => {\n        if (\n          (item.children && item.children.length) ||\n          item.PrimeiroNivel\n        ) {\n          return (\n            <TreeNode\n              key={item.key}\n              title={\n                item.PrimeiroNivel ?\n                  (<>\n                    <Typography.Text\n                      style={{\n                        display: 'block',\n                        width: '100%',\n                        outline: 0,\n                        cursor: 'default',\n                        marginRight: -15,\n                      }}\n                    >\n                      {item.title}\n                    </Typography.Text>\n                  </>)\n                  :\n                  (<>\n                    <Typography.Text\n                      style={{\n                        display: 'flex',\n                        alignItems: 'center',\n                        width: '100%',\n                        gap: '0.5rem',\n                        outline: 0,\n                        cursor: 'default',\n                      }}\n                    >\n                      <span>\n                        {item.title}\n                      </span>\n                      {item.ExibeDetalhes && (\n                        <Tooltip title=\"Informações\" placement=\"top\">\n                          <Link to={`${visao}/${item.key}`} style={{ display: 'flex', cursor: 'pointer' }}>\n                            <Icons.InfoCircleOutlined style={{ fontSize: '18px', color: corTema }} />\n                          </Link>\n                        </Tooltip>\n                      )}\n                    </Typography.Text>\n                  </>)\n              }\n            >\n              {loop(item.children)}\n            </TreeNode>\n          );\n        }\n        const fileExtension = item?.Link?.split('.', 2)[1].toLowerCase();\n        if (item.Externo) {\n          return (\n            <TreeNode\n              key={item.key}\n              isLeaf\n              switcherIcon={\n                fileExtension &&\n                iconEnum\n                  .find(\n                    x => x.name === `file-${ChooseIconFile(fileExtension)}`\n                  )\n                  ?.value({ fontSize: '20px' })\n              }\n              title={\n                <>\n                  <Tooltip title=\"Baixar arquivo\" placement=\"topLeft\">\n                    <Typography.Text\n                      style={{\n                        display: 'flex',\n                        alignItems: 'center',\n                        width: '100%',\n                        outline: 0,\n                      }}\n                    >\n                      <span\n                        style={{\n                          color: corTema,\n                          cursor: 'pointer',\n                          display: 'flex',\n                          width: '100%',\n                          outline: 0,\n                        }}\n                        onClick={() => fileManagerPaiDownload(item.Link)}\n                        role=\"link\"\n                        tabIndex=\"0\"\n                        aria-hidden=\"true\"\n                      >\n                        {item.title}\n                        <LinkArquivo>- Baixar Arquivo</LinkArquivo>\n                      </span>\n                    </Typography.Text>\n                  </Tooltip>\n                </>\n              }\n            />\n          );\n        }\n        return (\n          <TreeNode\n            key={item.key}\n            isLeaf\n            switcherIcon={\n              item.Arquivo?.Url ? (\n                <Tooltip title=\"Download\" placement=\"left\">\n                  <Icons.LinkOutlined style={{ fontSize: '20px', cursor: 'pointer', color: corTema }} onClick={\n                    () => fileManagerPaiDownload(item.Arquivo.Url)\n                  } />\n                </Tooltip>\n              ) : (\n                <Icons.LinkOutlined style={{ fontSize: '20px' }} />\n              )\n            }\n            title={\n              <>\n                <Link to={`${visao}/${item.key}`}>\n                  <Tooltip title=\"Acessar\" placement=\"bottomLeft\">\n                    <Typography.Text\n                      style={{\n                        display: 'flex',\n                        width: '100%',\n                        outline: 0,\n                      }}\n                    >\n                      <span\n                        style={{\n                          color: corTema,\n                          cursor: 'pointer',\n                          display: 'block',\n                          width: '100%',\n                          outline: 0,\n                        }}\n                      >\n                        {item.title}\n                      </span>\n                    </Typography.Text>\n                  </Tooltip>\n                </Link>\n              </>\n            }\n          />\n        );\n      });\n\n    const toggleExpandNode = key => {\n      setExpandedKeys(prev => {\n        const outArr = [...prev];\n        if (outArr.includes(key)) {\n          return outArr.filter(e => e !== key);\n        } else {\n          outArr.push(key);\n          return outArr;\n        }\n      });\n      setAutoExpandParent(false);\n    };\n\n    const onExpand = keys => {\n      setExpandedKeys(keys);\n      setAutoExpandParent(false);\n    };\n\n    useImperativeHandle(ref, () => ({\n      onSearch(busca) {\n        const searchWithoutAccents = RemoveDiacritic(busca);\n        if (searchWithoutAccents) {\n          const hasMatchWord = string => {\n            const stringWithoutAccents = RemoveDiacritic(string);\n            return stringWithoutAccents?.indexOf(searchWithoutAccents) !== -1;\n          };\n          const filterData = arr =>\n            arr?.filter(\n              item =>\n                hasMatchWord(item.title) || filterData(item.children)?.length\n            );\n          const filteredData = filterData(treeView).map(n => {\n            return {\n              ...n,\n              children: filterData(n.children),\n            };\n          });\n\n          const expandedKeys = filteredData?.map(dataItem => dataItem.key);\n\n          setTreeData(filteredData);\n          setExpandedKeys(expandedKeys);\n          setAutoExpandParent(true);\n        } else {\n          setSearchValue('');\n          setTreeData(treeView);\n          setExpandedKeys([]);\n          setAutoExpandParent(false);\n        }\n      },\n      onChange(e) {\n        setSearchValue(e.target.value);\n        if (!e.target.value) {\n          setExpandedKeys([]);\n          setTreeData(treeView);\n        }\n      },\n    }));\n\n    return (\n      <>\n        <TreeTransparente\n          className=\"draggable-tree\"\n          draggable={false}\n          defaultExpandAll={false}\n          blockNode\n          selectable\n          height={600}\n          onExpand={onExpand}\n          expandedKeys={expandedKeys}\n          autoExpandParent={autoExpandParent}\n          titleRender={record => (\n            <span\n              key={record.key}\n              onClick={() => toggleExpandNode(record.key)}\n              style={{ display: 'inline-block', width: '100%', height: '100%' }}\n            >\n              {record.title}\n            </span>\n          )}\n        >\n          {loop(treeData)}\n        </TreeTransparente>\n      </>\n    );\n  }\n);\n\nexport default TreeViewModuloFixo;\n","import React, { createRef, useEffect, useState } from 'react';\nimport {\n  InformacaoFilter,\n  PageTitle,\n  Card,\n  ButtonGoBack,\n  Exportacao,\n} from '~/components';\nimport { notification } from 'antd';\nimport { getUrlComDominio } from '~/modules/Helper/getUrl-helper';\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\nimport * as S from './styles';\nimport TreeViewModuloFixo from '../components/treeViewModuloFixo.component';\nimport {\n  getModuloFixoService,\n  exportarVisao,\n} from '../services/moduloFixo.service';\n\nfunction ModuloFixo({ match, history }) {\n  const [informacao, setInformacao] = useState({ __html: null });\n  const [treeView, setTreeView] = useState([]);\n  const [titulo, setTitulo] = useState(null);\n  const [searchValue, setSearchValue] = useState('');\n  const treeViewMethods = createRef({});\n  const infoMethods = createRef({});\n\n  const { modulo, visao } = match.params;\n\n  useEffect(() => {\n    async function getModuloFixo() {\n      const response = await getModuloFixoService(modulo, visao);\n      if (response && response.data) {\n        setInformacao(response.data.Informacao);\n        setTreeView(response.data.VisaoItens);\n        setTitulo(response.data.Titulo);\n      }\n    }\n\n    getModuloFixo();\n  }, [modulo, visao]);\n\n  function goBack() {\n    history.push(`/`);\n  }\n\n  function onSearch(busca) {\n    if (informacao?.Texto) infoMethods.current.filterElements(busca);\n    if (treeView?.length > 0) treeViewMethods.current.onSearch(busca);\n  }\n\n  function onChange(e) {\n    if (informacao?.Texto) infoMethods.current.onChangeInfo(e);\n    if (treeView?.length > 0) treeViewMethods.current.onChange(e);\n  }\n\n  function exportar(tipoExportacao) {\n    if (tipoExportacao === 'uri') {\n      navigator.clipboard.writeText(window.location.href);\n      notification.success({\n        message: 'URI Copiada com Sucesso!',\n      });\n    } else {\n      const dtoExportacao = {\n        ChaveModulo: modulo,\n        NomeVisao: visao,\n        UrlExportacao: getUrlComDominio(),\n      };\n\n      exportarVisao(tipoExportacao, dtoExportacao).then(res => {\n        fileManagerPaiDownload(res.data);\n      });\n    }\n  }\n\n  return (\n    <>\n      <PageTitle titulo={titulo} />\n      <S.SearchTool\n        placeholder={`Filtrar ${titulo}`}\n        onSearch={busca => onSearch(busca)}\n        onChange={e => onChange(e)}\n        allowClear\n        value={searchValue}\n      />\n      {informacao?.Texto && (\n        <>\n          <InformacaoFilter\n            ref={infoMethods}\n            titulo={informacao.Titulo}\n            informacao={informacao.Texto}\n            setSearchValue={setSearchValue}\n          />\n        </>\n      )}\n      {treeView?.length > 0 && (\n        <>\n          <Card>\n            <TreeViewModuloFixo\n              ref={treeViewMethods}\n              setSearchValue={setSearchValue}\n              treeView={treeView}\n              history={history}\n              modulo={modulo}\n              visao={visao}\n            />\n          </Card>\n        </>\n      )}\n      <S.Row>\n        <ButtonGoBack OnClick={goBack} />\n        <Exportacao onClick={exportar} moduloFixo />\n      </S.Row>\n    </>\n  );\n}\n\nexport default ModuloFixo;\n","import api from '~/services/api';\n\nfunction getModuloFixoService(modulo, visao) {\n  return api.get(`modulovisao/fixo/${modulo}/${visao}`);\n}\n\nasync function exportarVisao(tipoExportacao, data) {\n  return api.post(`modulovisao/fixo/${tipoExportacao}`, data);\n}\n\nexport { getModuloFixoService, exportarVisao };\n","import api from '~/services/api';\n\nfunction getPeriodoDetalheVisaoAnaliticaService(\n  exercicio,\n  periodicidade,\n  periodo\n) {\n  let params = {};\n  if (periodo) params.periodo = periodo;\n\n  return api.get(\n    `detalhevisaoanalitica/periodos/${exercicio}/${periodicidade}`,\n    { params }\n  );\n}\n\nfunction getDetalheVisaoAnaliticaService(detalheVisaoAnalitica) {\n  return api.post('detalhevisaoanalitica/filter', detalheVisaoAnalitica);\n}\n\nfunction exportarDetalheVisao(tipoExportacao, data) {\n  return api.post(`detalhevisaoanalitica/exportar/${tipoExportacao}`, data);\n}\n\nexport {\n  getDetalheVisaoAnaliticaService,\n  getPeriodoDetalheVisaoAnaliticaService,\n  exportarDetalheVisao,\n};\n","import styled from 'styled-components';\nimport { Button } from '~/components';\n\nexport const NextPrevButton = styled.div`\n  font-size: ${({ theme }) => `${20 + 2 * theme.zoomFonte}px`};\n  border-radius: 3px;\n  cursor: pointer;\n  padding: 8px;\n  :hover {\n    background-color: #dedede;\n    transition: 0.2s;\n  }\n\n  -webkit-touch-callout: none; /* iOS Safari */\n  -webkit-user-select: none; /* Safari */\n  -khtml-user-select: none; /* Konqueror HTML */\n  -moz-user-select: none; /* Old versions of Firefox */\n  -ms-user-select: none; /* Internet Explorer/Edge */\n  user-select: none; /* Non-prefixed version, currently\n                                  supported by Chrome, Edge, Opera and Firefox */\n`;\n\nexport const ButtonArquivoDigital = styled(Button)`\n  font-size: ${({ theme }) => `${14 + 2 * theme.zoomFonte}px`};\n  padding-left: 0px;\n  word-wrap: anywhere;\n  white-space: normal;\n  text-align: left;\n`;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { Col, Row, Icons, Typography, Divider } from '~/components';\nimport { NextPrevButton } from './style';\n\nfunction PeriodicidadeNavigation({\n  previous,\n  previousFunction,\n  next,\n  nextFunction,\n  current,\n}) {\n  const corTema = useSelector(state => state.configuration.corTema);\n  const isMobile = useMediaQuery({ query: '(max-width: 900px)' });\n\n  return (\n    <>\n      {isMobile ? (\n        <>\n          <Row>\n            <Col xs={12}>\n              <NextPrevButton\n                onClick={previousFunction}\n                style={{ float: 'left', color: corTema }}\n              >\n                <Icons.LeftOutlined />\n                {` ${previous} `}\n              </NextPrevButton>\n            </Col>\n\n            <Col xs={12}>\n              <NextPrevButton\n                onClick={nextFunction}\n                style={{ float: 'right', color: corTema }}\n              >\n                {`${next} `}\n                <Icons.RightOutlined />\n              </NextPrevButton>\n            </Col>\n          </Row>\n          <Row>\n            <Col xs={24}>\n              <Typography.Title\n                level={4}\n                style={{ textAlign: 'center', marginTop: '1%' }}\n              >\n                {`${current}`}\n              </Typography.Title>\n            </Col>\n          </Row>\n        </>\n      ) : (\n        <>\n          <Row>\n            <Col xs={8}>\n              <NextPrevButton\n                onClick={previousFunction}\n                style={{ float: 'left', color: corTema }}\n              >\n                <Icons.LeftOutlined />\n                {` ${previous} `}\n              </NextPrevButton>\n            </Col>\n            <Col xs={8}>\n              <Typography.Title\n                level={4}\n                style={{ textAlign: 'center', marginTop: '1%' }}\n              >\n                {`${current}`}\n              </Typography.Title>\n            </Col>\n            <Col xs={8}>\n              <NextPrevButton\n                onClick={nextFunction}\n                style={{ float: 'right', color: corTema }}\n              >\n                {`${next} `}\n                <Icons.RightOutlined />\n              </NextPrevButton>\n            </Col>\n          </Row>\n        </>\n      )}\n\n      <Divider style={{ background: '#d0d0d0' }} />\n    </>\n  );\n}\n\nexport default PeriodicidadeNavigation;\n","export const TIPO_DETALHE = {\n  CAMPO: 1,\n  TOTAL: 2,\n  CAMPO_TOTAL: 3,\n};\n","/* eslint-disable react/no-array-index-key */\nimport React from 'react';\nimport { Row, Col, Typography, Card } from '~/components';\nimport { TIPO_DETALHE } from '~/modules/Helper/tipoDetalheAnalitica';\n\nfunction Tabelas({ detalheVisaoAnalitica }) {\n  const CamposGrid = ({ coluna, fonte, fundo, index }) => {\n    const gridStyle = {\n      width: '100%',\n      background: fundo,\n      gridColumn: index === 0 ? 1 : 'unset',\n    };\n\n    const TextoValorBoolean = ({ valor }) => {\n      return valor === true ? 'Sim' : 'Não';\n    };\n\n    const { Descricao, Valor } = coluna;\n\n    return (\n      <Card.Grid style={gridStyle}>\n        <div style={{ display: 'flex', justifyContent: 'flex-start' }}>\n          <div>\n            <Typography.Text style={{ color: fonte }} strong>\n              {Descricao}:\n            </Typography.Text>\n          </div>\n          <div style={{ marginLeft: '10px', wordBreak: 'break-word' }}>\n            <Typography.Text style={{ color: fonte }}>\n              {typeof Valor === 'boolean' ? (\n                <TextoValorBoolean valor={Valor} />\n              ) : (\n                Valor\n              )}\n            </Typography.Text>\n          </div>\n        </div>\n      </Card.Grid>\n    );\n  };\n\n  const Grid = ({ tabela }) => {\n    switch (tabela.Tipo) {\n      case TIPO_DETALHE.CAMPO:\n        return (\n          <Row style={{ marginBottom: '30px' }}>\n            <Col lg={24}>\n              <Card\n                headStyle={{\n                  color: tabela.Grupo.CorFonteTitulo,\n                  backgroundColor: tabela.Grupo.CorFundoTitulo,\n                }}\n                bodyStyle={{\n                  display: 'grid',\n                  gridTemplateColumns: '1fr 1fr',\n                  backgroundColor: tabela.Grupo.CorFundo,\n                }}\n                title={tabela.Grupo.Descricao}\n              >\n                {tabela.Grupo.Colunas.map((coluna, index) => (\n                  <CamposGrid\n                    key={index}\n                    coluna={coluna}\n                    fonte={tabela.Grupo.CorFonte}\n                    fundo={tabela.Grupo.CorFundo}\n                    index={index}\n                  />\n                ))}\n              </Card>\n            </Col>\n          </Row>\n        );\n      case TIPO_DETALHE.TOTAL:\n        return (\n          <Row style={{ marginBottom: '30px' }}>\n            <Col lg={24}>\n              <Card bodyStyle={{ backgroundColor: tabela.Coluna.CorFundo }}>\n                <Card.Grid\n                  style={{\n                    backgroundColor: tabela.Coluna.CorFundo,\n                    width: '100%',\n                  }}\n                >\n                  <Typography.Text\n                    style={{ color: tabela.Coluna.CorFonte }}\n                    strong\n                  >\n                    {tabela.Coluna.Descricao}:\n                  </Typography.Text>\n                  <Typography.Text\n                    style={{ color: tabela.Coluna.CorFonte, float: 'right' }}\n                    strong\n                  >\n                    {tabela.Coluna.Valor}\n                  </Typography.Text>\n                </Card.Grid>\n              </Card>\n            </Col>\n          </Row>\n        );\n      case TIPO_DETALHE.CAMPO_TOTAL:\n        return (\n          <>\n            <Row style={{ marginBottom: '30px' }}>\n              <Col lg={24}>\n                <Card\n                  title={tabela.Grupo.Descricao}\n                  headStyle={{\n                    color: tabela.Grupo.CorFonteTitulo,\n                    backgroundColor: tabela.Grupo.CorFundoTitulo,\n                  }}\n                  bodyStyle={{\n                    display: 'grid',\n                    gridTemplateColumns: '1fr 1fr',\n                    backgroundColor: tabela.Coluna.CorFundo,\n                  }}\n                >\n                  {tabela.Grupo.Colunas.map((coluna, index) => (\n                    <CamposGrid\n                      key={index}\n                      coluna={coluna}\n                      fonte={tabela.Grupo.CorFonte}\n                      fundo={tabela.Grupo.CorFundo}\n                      index={index}\n                    />\n                  ))}\n                </Card>\n                <Card.Grid\n                  style={{\n                    backgroundColor: tabela.Coluna.CorFundo,\n                    width: '100%',\n                  }}\n                >\n                  <Typography.Text\n                    style={{ color: tabela.Coluna.CorFonte }}\n                    strong\n                  >\n                    {tabela.Coluna.Descricao}:\n                  </Typography.Text>\n\n                  <Typography.Text\n                    style={{\n                      color: tabela.Coluna.CorFonte,\n                      float: 'right',\n                    }}\n                    strong\n                  >\n                    {tabela.Coluna.Valor}\n                  </Typography.Text>\n                </Card.Grid>\n              </Col>\n            </Row>\n          </>\n        );\n      default:\n        return <></>;\n    }\n  };\n\n  return (\n    <>\n      {detalheVisaoAnalitica.Dados.map((tabela, index) => (\n        <Grid key={index} tabela={tabela} />\n      ))}\n    </>\n  );\n}\n\nexport default Tabelas;\n","import React from 'react';\nimport { Row, Col, Card, Typography } from '~/components';\nimport { ButtonArquivoDigital } from './style';\n\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\nimport ButtonDownloadFileManager from '~/modules/Modulos/components/Grid/arquivos/ButtonDowloadFileManager';\nimport ButtonLinkAnexo from '~/modules/Modulos/components/Grid/arquivos/ButtonLinkAnexo';\n\nfunction listaAnexos({ anexos }) {\n  return (\n    <Row style={{ marginBottom: '25px' }}>\n      <Col lg={24}>\n        <Card\n          title=\"Anexos\"\n          extra={\n            <Typography.Text style={{ fontWeight: 500 }}>Ações</Typography.Text>\n          }\n        >\n          {anexos.length > 0\n            ? anexos.map(arquivo => (\n                <Row\n                  key={arquivo.IdArquivoDigital}\n                  style={{ marginBottom: '10px' }}\n                >\n                  <Col lg={23} style={{ textAlign: 'left' }}>\n                    <ButtonArquivoDigital\n                      onClick={() => {\n                        if (arquivo?.IsLinkAnexo) {\n                          window.open(arquivo.LinkAnexo, '_blank');\n                        } else {\n                          fileManagerPaiDownload(arquivo.UrlArquivoDigital);\n                        }\n                      }}\n                      type=\"link\"\n                      block\n                    >\n                      {arquivo.NomeArquivoDigital}\n                    </ButtonArquivoDigital>\n                  </Col>\n                  <Col lg={1} style={{ textAlign: 'right', margin: 'auto' }}>\n                    {arquivo?.IsLinkAnexo ? (\n                      <ButtonLinkAnexo\n                        key={arquivo.IdArquivoDigital}\n                        onClick={() => {\n                          window.open(arquivo.LinkAnexo, '_blank');\n                        }}\n                      />\n                    ) : (\n                      <ButtonDownloadFileManager\n                        key={arquivo.IdArquivoDigital}\n                        onClick={() => {\n                          fileManagerPaiDownload(arquivo.UrlArquivoDigital);\n                        }}\n                      />\n                    )}\n                  </Col>\n                </Row>\n              ))\n            : 'Não há anexos disponíveis.'}\n        </Card>\n      </Col>\n    </Row>\n  );\n}\n\nexport default listaAnexos;\n","/* eslint-disable prefer-const */\n/* eslint-disable no-else-return */\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport { notification } from 'antd';\nimport { createBrowserHistory } from 'history';\nimport {\n  Col,\n  Row,\n  Card,\n  Typography,\n  Exportacao,\n  ButtonGoBack,\n} from '~/components';\nimport {\n  getDetalheVisaoAnaliticaService,\n  getPeriodoDetalheVisaoAnaliticaService,\n  exportarDetalheVisao,\n} from '../services/detalheVisaoAnalitica.service';\nimport { useUrls } from '~/contexts/url.context';\n\nimport PeriodicidadeNavigation from '../components/periodicidadeNavigation.component';\nimport Tabela from '../components/Tabela.component';\nimport ListaAnexos from '../components/listaAnexos.component';\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\nimport { UltimaAtualizacao } from '~/modules/Modulos/components/Grid/UltimaAtualizacao.component';\nimport { PARAMS_FILTERS_DETALHE } from '~/modules/Helper/searchParamsFilters';\nimport { getAndFormatSearchParams } from '~/modules/Helper/searchString-helper';\nimport { getUrlComDominio } from '~/modules/Helper/getUrl-helper';\nimport {\n  obterConfiguracoes,\n  obterConfiguracoesGerais,\n} from '~/modules/Modulos/services/moduloVisao.service';\n\nfunction DetalheVisaoAnalitica({ match, history }) {\n  const [detalheVisaoAnalitica, setDetalheVisaoAnalitica] = useState({\n    Titulo: undefined,\n    Descricao: undefined,\n    Dados: undefined,\n    Anexos: [],\n  });\n\n  const { obterUrlPaginaAnterior } = useUrls();\n\n  const [periodoAnterior, setPeriodoAnterior] = useState(null);\n  const [periodoPosterior, setPeriodoPosterior] = useState(null);\n  const [periodoAtual, setPeriodoAtual] = useState(null);\n  const [exercicioAnterior, setExercicioAnterior] = useState(null);\n  const [exercicioPosterior, setExercicioPosterior] = useState(null);\n  const [exercicioAtual, setExercicioAtual] = useState(null);\n  const [dataUltimaAtualizacao, setDataUltimaAtualizacao] = useState(null);\n  const [filtroAnterior, setFiltroAnterior] = useState(null);\n\n  const { modulo, visao } = match.params;\n\n  const [exercicioFilter, setExercicioFilter] = useState(undefined);\n  const [periodicidadeFilter, setPeriodicidadeFilter] = useState(undefined);\n\n  // filtros da visão agrupamento\n  const [\n    colunaFiltroRedirecionaVisao,\n    setColunaFiltroRedirecionaVisao,\n  ] = useState(undefined);\n  const [\n    valorFiltroRedirecionaVisao,\n    setValorFiltroRedirecionaVisao,\n  ] = useState(undefined);\n  const [\n    tipoValorFiltroRedirecionaVisao,\n    setTipoValorFiltroRedirecionaVisao,\n  ] = useState(null);\n\n  const [periodoFilter, setPeriodoFilter] = useState(undefined);\n  const [chavesPeriodicidade, setChavesPeriodicidade] = useState([]);\n  const [configuracao, setConfiguracao] = useState(null);\n  const [pagina, setPagina] = useState(1);\n  const [quantidadeRegistros, setQuantidadeRegistros] = useState(10);\n  const [colunaOrdem, setColunaOrdem] = useState(null);\n\n  const browserHistory = createBrowserHistory();\n\n  const [queryParamsDefault, setQueryParamsDefault] = useState(\n    PARAMS_FILTERS_DETALHE\n  );\n\n  const corTema = useSelector(state => state.configuration.corTema);\n\n  async function obterDetalheVisao(detalheVisao) {\n    try {\n      const response = await getDetalheVisaoAnaliticaService(detalheVisao);\n      setDetalheVisaoAnalitica(response.data);\n    } catch (ex) {\n      setDetalheVisaoAnalitica({ ...detalheVisaoAnalitica, Dados: [] });\n    }\n  }\n\n  async function obterPeriodoDetalheVisaoAnalitica(\n    exercicio,\n    periodicidade,\n    periodo\n  ) {\n    const responsePeriodo = await getPeriodoDetalheVisaoAnaliticaService(\n      exercicio,\n      periodicidade,\n      periodo\n    );\n\n    if (responsePeriodo?.data?.PeriodoAnterior)\n      setPeriodoAnterior(responsePeriodo.data.PeriodoAnterior);\n    if (responsePeriodo?.data?.PeriodoAtual)\n      setPeriodoAtual(responsePeriodo.data.PeriodoAtual);\n    if (responsePeriodo?.data?.PeriodoPosterior)\n      setPeriodoPosterior(responsePeriodo.data.PeriodoPosterior);\n    if (responsePeriodo?.data?.ExercicioAnterior)\n      setExercicioAnterior(responsePeriodo.data.ExercicioAnterior);\n    if (responsePeriodo?.data?.ExercicioAtual)\n      setExercicioAtual(responsePeriodo.data.ExercicioAtual);\n    if (responsePeriodo?.data?.ExercicioPosterior)\n      setExercicioPosterior(responsePeriodo.data.ExercicioPosterior);\n\n    const detalheVisao = {\n      ChaveModulo: modulo,\n      Exercicio: exercicio,\n      Periodicidade: periodicidade,\n      Periodo: periodo,\n      ChavesPeriodicidade: chavesPeriodicidade,\n    };\n\n    if (configuracao && configuracao.VisaoColunas) {\n      const { VisaoColunas } = configuracao;\n      const visaoColuna = VisaoColunas.find(x => x.Chave);\n      if (visaoColuna) {\n        const { TipoValor } = visaoColuna;\n        if (TipoValor) {\n          detalheVisao.TipoValor = TipoValor;\n        }\n      }\n    }\n\n    obterDetalheVisao(detalheVisao);\n\n    let queryParamData = {\n      chaveModulo: modulo,\n      exercicio,\n      periodicidade,\n      periodo,\n    };\n\n    chavesPeriodicidade.forEach(item => {\n      queryParamData[item.Campo] = item.Valor;\n    });\n\n    const searchParams = getAndFormatSearchParams(\n      queryParamData,\n      queryParamsDefault\n    );\n\n    browserHistory.replace(\n      `/#/dinamico/${modulo}/${visao}/detalhevisao?${searchParams}`,\n      history.location.state\n    );\n  }\n\n  const getPeriodo = useCallback(\n    async (exercicio, periodicidade, periodo) => {\n      const [responsePeriodo, responseConfiguracao] = await Promise.all([\n        getPeriodoDetalheVisaoAnaliticaService(\n          exercicio,\n          periodicidade,\n          periodo\n        ),\n        obterConfiguracoes(modulo, visao),\n      ]);\n\n      if (responseConfiguracao.data) setConfiguracao(responseConfiguracao.data);\n      if (responsePeriodo?.data?.PeriodoAnterior)\n        setPeriodoAnterior(responsePeriodo.data.PeriodoAnterior);\n      if (responsePeriodo?.data?.PeriodoAtual)\n        setPeriodoAtual(responsePeriodo.data.PeriodoAtual);\n      if (responsePeriodo?.data?.PeriodoPosterior)\n        setPeriodoPosterior(responsePeriodo.data.PeriodoPosterior);\n      if (responsePeriodo?.data?.ExercicioAnterior)\n        setExercicioAnterior(responsePeriodo.data.ExercicioAnterior);\n      if (responsePeriodo?.data?.ExercicioAtual)\n        setExercicioAtual(responsePeriodo.data.ExercicioAtual);\n      if (responsePeriodo?.data?.ExercicioPosterior)\n        setExercicioPosterior(responsePeriodo.data.ExercicioPosterior);\n\n      const params = new URLSearchParams(history.location.search);\n\n      const ChavesPeriodicidade = responseConfiguracao.data.ChavesPeriodicidades.map(\n        item => {\n          const { TipoValor, FonteDados } = item;\n          const Valor = params.get(FonteDados);\n\n          return {\n            Campo: FonteDados,\n            Valor,\n            TipoValor,\n          };\n        }\n      );\n\n      const campos = ChavesPeriodicidade.map(x => x.Campo);\n\n      setQueryParamsDefault([...queryParamsDefault, ...campos]);\n\n      setChavesPeriodicidade(ChavesPeriodicidade);\n\n      const detalheVisao = {\n        ChaveModulo: modulo,\n        Exercicio: exercicio,\n        Periodicidade: periodicidade,\n        Periodo: periodo,\n        ChavesPeriodicidade,\n      };\n\n      if (\n        responseConfiguracao &&\n        responseConfiguracao.data &&\n        responseConfiguracao.data.VisaoColunas\n      ) {\n        const { VisaoColunas } = responseConfiguracao.data;\n        const visaoColuna = VisaoColunas.find(x => x.Chave);\n        if (visaoColuna) {\n          const { TipoValor } = visaoColuna;\n          if (TipoValor) {\n            detalheVisao.TipoValor = TipoValor;\n          }\n        }\n      }\n\n      obterDetalheVisao(detalheVisao);\n    },\n    [modulo, visao]\n  );\n\n  async function obterDataUltimaAlteracao() {\n    const response = await obterConfiguracoesGerais(modulo);\n\n    if (response?.data?.DataUltimaSicronizacaoModulo)\n      setDataUltimaAtualizacao(response.data.DataUltimaSicronizacaoModulo);\n  }\n\n  useEffect(() => {\n    setPagina(history.location.state?.pagina);\n    setQuantidadeRegistros(history.location.state?.quantidadeRegistros);\n    setColunaFiltroRedirecionaVisao(\n      history.location.state?.colunaFiltroRedirecionaVisao\n    );\n    setValorFiltroRedirecionaVisao(\n      history.location.state?.valorFiltroRedirecionaVisao\n    );\n    setTipoValorFiltroRedirecionaVisao(\n      history.location.state?.tipoValorFiltroRedirecionaVisao\n    );\n\n    setColunaOrdem({\n      colunaOrdem: history.location.state?.colunaOrdem,\n      tipoOrdem: history.location.state?.tipoOrdem,\n    });\n    setFiltroAnterior(history.location.state?.filtro);\n  }, []);\n\n  useEffect(() => {\n    if (modulo) obterDataUltimaAlteracao();\n  }, [modulo]);\n\n  useEffect(() => {\n    const params = new URLSearchParams(history.location.search);\n\n    const exercicio = Number(params.get('exercicio'));\n    const periodicidade = params.get('periodicidade')?.toUpperCase();\n    const periodo = params.get('periodo')?.toUpperCase();\n\n    setExercicioFilter(exercicio);\n    setPeriodicidadeFilter(periodicidade);\n\n    setPeriodoFilter(periodo);\n\n    getPeriodo(exercicio, periodicidade, periodo);\n  }, [getPeriodo, history.location.search, modulo, visao]);\n\n  function obterAnterior() {\n    if (periodoAnterior) {\n      obterPeriodoDetalheVisaoAnalitica(\n        periodoAnterior.Exercicio,\n        periodicidadeFilter,\n        periodoAnterior.Valor\n      );\n    } else {\n      obterPeriodoDetalheVisaoAnalitica(\n        exercicioAnterior,\n        periodicidadeFilter,\n        null\n      );\n    }\n  }\n\n  function obterProximo() {\n    if (periodoPosterior) {\n      obterPeriodoDetalheVisaoAnalitica(\n        periodoPosterior.Exercicio,\n        periodicidadeFilter,\n        periodoPosterior.Valor\n      );\n    } else {\n      obterPeriodoDetalheVisaoAnalitica(\n        exercicioPosterior,\n        periodicidadeFilter,\n        null\n      );\n    }\n  }\n\n  function exportar(tipoExportacao) {\n    let payload = {\n      ChaveModulo: modulo,\n      Exercicio: exercicioFilter,\n      Periodicidade: periodicidadeFilter,\n      Periodo: periodoAtual?.Valor,\n      ChavesPeriodicidade: chavesPeriodicidade,\n      UrlExportacao: getUrlComDominio(),\n    };\n\n    if (configuracao && configuracao.VisaoColunas) {\n      const { VisaoColunas } = configuracao;\n      const visaoColuna = VisaoColunas.find(x => x.Chave);\n      if (visaoColuna) {\n        const { TipoValor } = visaoColuna;\n        payload = { ...payload, TipoValor };\n      }\n    }\n\n    if (tipoExportacao === 'uri') {\n      navigator.clipboard.writeText(window.location.href);\n      notification.success({\n        message: 'URI Copiada com Sucesso!',\n      });\n    } else {\n      exportarDetalheVisao(tipoExportacao, payload).then(res => {\n        fileManagerPaiDownload(res.data);\n      });\n    }\n  }\n\n  const tituloVisaoAnalitica = () => {\n    if (periodoAtual)\n      return `${periodoAtual.Descricao}/${periodoAtual.Exercicio}`;\n    else if (exercicioAtual) return exercicioAtual;\n    else return '';\n  };\n\n  const tituloVisaoAnaliticaPosterior = () => {\n    if (periodoPosterior)\n      return `${periodoPosterior.Descricao}/${periodoPosterior.Exercicio}`;\n    else if (exercicioPosterior) return exercicioPosterior;\n    else return '';\n  };\n\n  const tituloVisaoAnaliticaAnterior = () => {\n    if (periodoAnterior)\n      return `${periodoAnterior.Descricao}/${periodoAnterior.Exercicio}`;\n    else if (exercicioAnterior) return exercicioAnterior;\n    else return '';\n  };\n\n  function voltarPaginaAnterior() {\n    const { urlBase, queryParam } = obterUrlPaginaAnterior();\n    if (urlBase && queryParam) {\n      history.push({ pathname: urlBase, search: queryParam });\n    } else {\n      history.push({\n        pathname: `/dinamico/${modulo}/${visao}`,\n        state: {\n          pagina,\n          periodicidade: periodicidadeFilter,\n          exercicio: exercicioFilter,\n          periodo: periodoFilter,\n          quantidadeRegistros,\n          valorFiltroRedirecionaVisao,\n          colunaFiltroRedirecionaVisao,\n          tipoValorFiltroRedirecionaVisao,\n          colunaOrdem: colunaOrdem.colunaOrdem,\n          tipoOrdem: colunaOrdem.tipoOrdem,\n          filtro: filtroAnterior,\n        },\n      });\n    }\n  }\n\n  return (\n    <>\n      <PeriodicidadeNavigation\n        current={tituloVisaoAnalitica()}\n        next={tituloVisaoAnaliticaPosterior()}\n        previous={tituloVisaoAnaliticaAnterior()}\n        nextFunction={obterProximo}\n        previousFunction={obterAnterior}\n      />\n      <Typography.Title\n        level={3}\n        style={{ textAlign: 'center', color: corTema }}\n      >\n        {detalheVisaoAnalitica.Descricao}\n      </Typography.Title>\n\n      <Typography.Title level={4} style={{ textAlign: 'center' }}>\n        {detalheVisaoAnalitica.Titulo}\n      </Typography.Title>\n\n      {detalheVisaoAnalitica.Dados && detalheVisaoAnalitica.Dados.length > 0 ? (\n        <>\n          <Tabela detalheVisaoAnalitica={detalheVisaoAnalitica} />\n          <ListaAnexos anexos={detalheVisaoAnalitica.Anexos} />\n          <Row\n            style={{\n              display: 'flex',\n              justifyContent: 'space-between',\n              alignItems: 'flex-end',\n            }}\n          >\n            <Col lg={24}>\n              <Card>\n                <Row>\n                  <Col lg={12} style={{ display: 'flex' }}>\n                    {dataUltimaAtualizacao && (\n                      <UltimaAtualizacao dataHora={dataUltimaAtualizacao} />\n                    )}\n                  </Col>\n                  <Col lg={12}>\n                    <Exportacao onClick={exportar} />\n                  </Col>\n                </Row>\n              </Card>\n            </Col>\n          </Row>\n        </>\n      ) : (\n        detalheVisaoAnalitica.Dados &&\n        detalheVisaoAnalitica.Dados.length === 0 && (\n          <Typography.Title level={4} style={{ textAlign: 'center' }}>\n            Não há dados para este período.\n          </Typography.Title>\n        )\n      )}\n\n      <Row>\n        <ButtonGoBack OnClick={voltarPaginaAnterior} />\n      </Row>\n    </>\n  );\n}\n\nexport default DetalheVisaoAnalitica;\n","export const TIPO_FILTRO = {\n  TEXTO: 1,\n  OPCOES: 2,\n};\n","import styled from 'styled-components';\nimport { Divider } from 'antd';\n\nexport const StyledDivider = styled(Divider)`\n  &&.ant-divider-horizontal.ant-divider-with-text-left::before {\n    width: 0px;\n  }\n  && .ant-divider-inner-text {\n    padding: 0 1em 0 0.5em;\n  }\n`;\n","import React, { useState, useEffect } from 'react';\nimport {\n  Tooltip,\n  Col,\n  RangePickerComponent,\n  FormV3 as Form,\n  Input,\n  InputNumber,\n  Select,\n} from '~/components';\n\nimport { TIPO_COLUNA } from '~/modules/Helper/tipoColuna';\nimport { TIPO_FILTRO } from '~/modules/Helper/tipoFiltro';\nimport transformaDataParaAmericano from '../../../Helper/transformaDataParaAmericano-helper';\n\nimport * as S from './FiltrosAvancados.styled';\n\nfunction FiltrosAccordion({ filtros, form, paramsFiltros, handlePesquisa }) {\n  const { getFieldDecorator, setFieldsValue } = form;\n  const [filtrosTransformados, setFiltrosTransformados] = useState([]);\n\n  function fazerPesquisaParams(){\n    if (paramsFiltros.length > 0) {\n      const objetoForm = {};\n\n      paramsFiltros.forEach(element => {\n        objetoForm[`${element.Campo}`] = {\n          Campo: element.Campo,\n          Valor: element.Valor,\n          TipoValor: element.TipoValor,\n        };\n\n        setFieldsValue(objetoForm);\n      });\n\n      handlePesquisa();\n    }\n  }\n\n  async function setValoresDoInputComoObjeto(coluna, event, isParam) {\n    let valor = event;\n\n    let dataFormatada;\n\n    if (coluna.TipoValor === TIPO_COLUNA.DATA) {\n      if (valor[0] !== '' && valor[1] !== '') {\n        valor = transformaDataParaAmericano(valor);\n        dataFormatada = `${valor[0]},${valor[1]}`;\n      }\n    }\n\n    if (\n      coluna.TipoFiltro === TIPO_FILTRO.TEXTO &&\n      coluna.TipoValor !== TIPO_COLUNA.DATA &&\n      !isParam\n    ) {\n      valor = valor.target.value;\n\n      if (coluna.TipoValor === TIPO_COLUNA.DECIMAL || TIPO_COLUNA.INTEIRO) {\n        valor = valor.replace(',', '.');\n      }\n    }\n\n    const objetoForm = {};\n\n    objetoForm[`${coluna.FonteDados}`] = {\n      Campo: coluna.FonteDados,\n      Valor: coluna.TipoValor === TIPO_COLUNA.DATA ? dataFormatada : valor,\n      TipoValor: coluna.TipoValor,\n    };\n\n    if (coluna.TipoValor === TIPO_COLUNA.DATA && dataFormatada === undefined) {\n      objetoForm[`${coluna.FonteDados}`] = undefined;\n    }\n\n    if (coluna.TipoValor === TIPO_FILTRO.OPCOES && valor === '') {\n      objetoForm[`${coluna.FonteDados}`] = undefined;\n    }\n\n    await setFieldsValue(objetoForm);\n  }\n\n  function renderizaInputTexto(coluna) {\n    return (\n      <Col lg={12} md={12} sm={12} xs={12}>\n        <Form.Item\n          label={coluna.NomePadrao}\n          name={coluna.NomePadrao}\n          colon={false}\n          onChange={event => {\n            setValoresDoInputComoObjeto(coluna, event);\n          }}\n        >\n          <Tooltip title={coluna.Tooltip}>\n            {getFieldDecorator(coluna.FonteDados)(\n              <Input placeholder={coluna.NomePadrao} />\n            )}\n          </Tooltip>\n        </Form.Item>\n      </Col>\n    );\n  }\n\n  function renderizaInputNumero(coluna) {\n    return (\n      <Col lg={12} md={12} sm={12} xs={12}>\n        <Form.Item\n          label={coluna.NomePadrao}\n          name={coluna.NomePadrao}\n          colon={false}\n          onChange={event => {\n            setValoresDoInputComoObjeto(coluna, event);\n          }}\n        >\n          <Tooltip title={coluna.Tooltip}>\n            {getFieldDecorator(coluna.FonteDados)(\n              <InputNumber\n                style={{ width: '100%' }}\n                placeholder={coluna.NomePadrao}\n                keyboard={false}\n                decimalSeparator=\",\"\n              />\n            )}\n          </Tooltip>\n        </Form.Item>\n      </Col>\n    );\n  }\n\n  function renderizaInputData(coluna) {\n    return (\n      <Col lg={12} md={12} sm={12} xs={12}>\n        <Form.Item\n          label={coluna.NomePadrao}\n          name={coluna.NomePadrao}\n          colon={false}\n        >\n          <Tooltip title={coluna.Tooltip}>\n            {getFieldDecorator(coluna.FonteDados)(\n              <RangePickerComponent\n                onCalendarChange={(event, dateString) => {\n                  setValoresDoInputComoObjeto(coluna, dateString);\n                }}\n              />\n            )}\n          </Tooltip>\n        </Form.Item>\n      </Col>\n    );\n  }\n\n  function renderizaSelect(coluna) {\n    return (\n      <Col lg={12} md={12} sm={12} xs={12}>\n        <Form.Item\n          label={coluna.NomePadrao}\n          name={coluna.NomePadrao}\n          colon={false}\n        >\n          <Tooltip title={coluna.Tooltip}>\n            {getFieldDecorator(coluna.FonteDados)(\n              <Select\n                showSearch\n                optionFilterProp=\"children\"\n                onSelect={value => {\n                  setValoresDoInputComoObjeto(coluna, value);\n                }}\n                placeholder={coluna.NomePadrao}\n              >\n                <Select.Option value=\"\">Nenhum Selecionado</Select.Option>\n                {coluna.ColunaValores?.map(valoresSelect => (\n                  <Select.Option value={valoresSelect.Valor}>\n                    {valoresSelect.Valor}\n                  </Select.Option>\n                ))}\n              </Select>\n            )}\n          </Tooltip>\n        </Form.Item>\n      </Col>\n    );\n  }\n\n  function renderizaSelectBooleano(coluna) {\n    return (\n      <Col lg={12} md={12} sm={12} xs={12}>\n        <Form.Item\n          label={coluna.NomePadrao}\n          name={coluna.NomePadrao}\n          colon={false}\n        >\n          <Tooltip title={coluna.Tooltip}>\n            {getFieldDecorator(coluna.FonteDados)(\n              <Select\n                showSearch\n                optionFilterProp=\"children\"\n                onSelect={value => {\n                  setValoresDoInputComoObjeto(coluna, value);\n                }}\n                placeholder={coluna.NomePadrao}\n              >\n                <Select.Option value=\"\">Nenhum Selecionado</Select.Option>\n                <Select.Option value={1}>Sim</Select.Option>\n                <Select.Option value={0}>Não</Select.Option>\n              </Select>\n            )}\n          </Tooltip>\n        </Form.Item>\n      </Col>\n    );\n  }\n\n  function transformaColunaEmInput(filtrosModulo) {\n    setFiltrosTransformados([]);\n    filtrosModulo.Grupos.forEach(grupo => {\n      setFiltrosTransformados(arrayFiltros => [\n        ...arrayFiltros,\n        <S.StyledDivider\n          style={{ marginTop: '0px', marginBottom: '10px' }}\n          orientation=\"left\"\n          plain\n        >\n          <b>{grupo.Nome}</b>\n        </S.StyledDivider>,\n      ]);\n\n      grupo.Colunas.forEach(coluna => {\n        if (\n          coluna.TipoFiltro === TIPO_FILTRO.TEXTO &&\n          coluna.TipoValor !== TIPO_COLUNA.DATA &&\n          coluna.TipoValor !== TIPO_COLUNA.INTEIRO &&\n          coluna.TipoValor !== TIPO_COLUNA.DECIMAL\n        ) {\n          setFiltrosTransformados(arrayFiltros => [\n            ...arrayFiltros,\n            renderizaInputTexto(coluna),\n          ]);\n        } else if (\n          (coluna.TipoFiltro === TIPO_FILTRO.TEXTO &&\n            coluna.TipoValor === TIPO_COLUNA.INTEIRO) ||\n          coluna.TipoValor === TIPO_COLUNA.DECIMAL\n        ) {\n          setFiltrosTransformados(arrayFiltros => [\n            ...arrayFiltros,\n            renderizaInputNumero(coluna),\n          ]);\n        }\n\n        if (\n          coluna.TipoFiltro === TIPO_FILTRO.TEXTO &&\n          coluna.TipoValor === TIPO_COLUNA.DATA\n        ) {\n          setFiltrosTransformados(arrayFiltros => [\n            ...arrayFiltros,\n            renderizaInputData(coluna),\n          ]);\n        }\n\n        if (\n          coluna.TipoFiltro === TIPO_FILTRO.OPCOES &&\n          coluna.TipoValor === TIPO_COLUNA.BOOLEANO\n        ) {\n          setFiltrosTransformados(arrayFiltros => [\n            ...arrayFiltros,\n            renderizaSelectBooleano(coluna),\n          ]);\n        } else if (coluna.TipoFiltro === TIPO_FILTRO.OPCOES) {\n          setFiltrosTransformados(arrayFiltros => [\n            ...arrayFiltros,\n            renderizaSelect(coluna),\n          ]);\n        }\n      });\n    });\n  }\n\n  useEffect(() => {\n    fazerPesquisaParams();\n  }, [paramsFiltros]);\n\n  useEffect(() => {\n    if (filtros) transformaColunaEmInput(filtros);\n  }, [filtros, paramsFiltros]);\n\n  return <>{filtrosTransformados}</>;\n}\n\nexport default FiltrosAccordion;\n","export default function transformaDataParaAmericano(datas) {\n  const dataFormatada = [];\n\n  datas.forEach((data, index) => {\n    const dataAux = datas[index].split('/');\n    dataFormatada.push(`${dataAux[2]}-${dataAux[1]}-${dataAux[0]}`);\n  });\n\n  return dataFormatada;\n}","import React, { useState, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Tag, Col, Row, Button, Icons, Tooltip } from '~/components';\nimport { TIPO_COLUNA } from '~/modules/Helper/tipoColuna';\n\nfunction ShowFiltros({\n  filtros,\n  setFiltros,\n  form,\n  removeTodosOsFiltros,\n  colunasFiltro,\n}) {\n  const { corTema } = useSelector(state => state.configuration);\n  const [tags, setTags] = useState(null);\n\n  function removeFiltro(event, campo) {\n    event.preventDefault();\n\n    const novosFiltros = filtros.filter(filtro => {\n      return filtro.Campo !== campo;\n    });\n\n    if (novosFiltros.length === 0) removeTodosOsFiltros();\n    else setFiltros(novosFiltros);\n\n    form.resetFields([campo]);\n  }\n\n  function transformaFiltrosEmTags() {\n    const arrayTags = [];\n\n    filtros.forEach(filtro => {\n      let nomePadrao;\n\n      colunasFiltro.Grupos.forEach(grupo => {\n        grupo.Colunas.forEach(coluna => {\n          if (coluna.FonteDados === filtro.Campo)\n            nomePadrao = coluna.NomePadrao;\n        });\n      });\n\n      let valor = `${filtro.Valor}`;\n\n      if (filtro.TipoValor === TIPO_COLUNA.DECIMAL) {\n        const pos = valor.lastIndexOf('.');\n        valor = `${valor.substring(0, pos)},${valor.substring(pos + 1)}`;\n      }\n\n      if (filtro.TipoValor === TIPO_COLUNA.DATA) {\n        let aux = filtro.Valor.replace(',', '-');\n        aux = aux.split('-');\n        valor = `De ${aux[2]}/${aux[1]}/${aux[0]} até ${aux[5]}/${aux[4]}/${aux[3]}`;\n      }\n\n      arrayTags.push(\n        <Col style={{ margin: '0 5px 5px 5px' }}>\n          <span style={{ marginRight: '5px' }}>{nomePadrao}:</span>\n          <Tag\n            closable\n            onClose={event => removeFiltro(event, filtro.Campo)}\n            color={corTema}\n          >\n            {valor}\n          </Tag>\n        </Col>\n      );\n    });\n\n    setTags(arrayTags);\n  }\n\n  useEffect(() => {\n    if (filtros.length > 0) transformaFiltrosEmTags();\n    else setTags([]);\n  }, [filtros]);\n\n  return (\n    <>\n      {tags && tags.length > 0 ? (\n        <>\n          <Row style={{ marginBottom: '5px' }}>\n            <strong style={{ marginRight: '10px' }}>Filtros Aplicados:</strong>\n            {tags}\n          </Row>\n          <Row style={{ display: 'flex', justifyContent: 'right' }}>\n            <Tooltip title=\"Remove Todos os Filtros\">\n              <Button\n                type=\"primary\"\n                style={{\n                  float: 'right',\n                  marginBottom: 16,\n                  fontSize: 14,\n                }}\n                onClick={() => removeTodosOsFiltros()}\n              >\n                <Icons.ClearOutlined style={{ fontSize: '15px' }} /> Limpar\n                Filtros\n              </Button>\n            </Tooltip>\n          </Row>\n        </>\n      ) : (\n        <></>\n      )}\n    </>\n  );\n}\n\nexport default ShowFiltros;\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { createBrowserHistory } from 'history';\nimport { notification } from 'antd';\nimport FiltrosAvancados from '../components/FiltrosAvancados/FiltrosAvancados.component';\nimport ShowFiltros from '../components/ShowFiltros/ShowFiltros.component';\nimport TableDinamic from '../../Modulos/components/Grid/TableDinamic.component';\nimport {\n  getColunasFiltro,\n  obterDadosFiltroAvancado,\n} from '../services/buscaAvancada.service';\nimport * as ModuloVisaoService from '../../Modulos/services/moduloVisao.service';\n\nimport {\n  obterConfiguracoes,\n  obterConfiguracoesGerais,\n} from '../../Modulos/services/moduloVisao.service';\nimport { PARAMS_FILTERS_GRID_BUSCA_AVANCADA } from '~/modules/Helper/searchParamsFilters';\nimport { NUMERO_QUANTIDADE_REGISTROS } from '~/modules/Helper/numeroQuantidadeRegistros';\nimport { getAndFormatSearchParamsBuscaAvancada } from '~/modules/Helper/searchString-helper';\nimport { parseToQueryString } from '~/modules/Helper/querystring-helper';\nimport {\n  Row,\n  Col,\n  Card,\n  PageTitle,\n  FormV3 as Form,\n  Button,\n  ButtonGoBack,\n} from '~/components';\nimport { useUrls } from '~/contexts/url.context';\nimport { TIPO_VISAO } from '~/modules/Helper/tipo-visao';\nimport { TIPO_COLUNA } from '~/modules/Helper/tipoColuna';\nimport Totalizadores from '../../Modulos/components/Totalizadores/Totalizadores.component';\n\nfunction BuscaAvancada({ match, history, form }) {\n  const { empilhaUrl, obterUrlPaginaAnterior } = useUrls();\n  const [colunasFiltro, setColunasFiltro] = useState();\n  const [configuracoesVisao, setConfiguracoesVisao] = useState(null);\n  const [filtros, setFiltros] = useState([]);\n  const [moduloVisao, setModuloVisao] = useState(null);\n\n  const [listaColunaOrdem, setListaColunaOrdem] = useState([]);\n  const [quantidadeRegistros, setQuantidadeRegistros] = useState(null);\n  const [pagina, setPagina] = useState(null);\n  const [urlVisaoAnalitica, setUrlVisaoAnalitica] = useState(null);\n  const [urlVisaoAgrupamento, setUrlVisaoAgrupamento] = useState(null);\n  const [dataUltimaAtualizacao, setDataUltimaAtualizacao] = useState(null);\n  const [possuiArquivoDigital, setPossuiArquivoDigital] = useState(false);\n  const [exibirArquivosForm, setExibirArquivosForm] = useState(false);\n  const [\n    filtroPesquisaArquivosDigitais,\n    setFiltroPesquisaArquivosDigitais,\n  ] = useState(null);\n  const [FiltroHabilitado, setFiltroHabilitado] = useState(null);\n  const [chavesPeriodicidade, setChavesPeriodicidade] = useState([]);\n\n  const { modulo, visao } = match.params;\n\n  const browserHistory = createBrowserHistory();\n\n  const routeParams = new URLSearchParams(history.location.search);\n\n  const arrayFonteDados = [];\n\n  const [valoresParamsFiltros, setValoresParamsFiltros] = useState([]);\n  const [totalizadores, setTotalizadores] = useState([]);\n\n  const paginacaoGridParam = Number(routeParams.get('pagina'));\n  const quantidadeRegistrosParam = routeParams.get('quantidaderegistros');\n  const listaColunaOrdemParam = JSON.parse(routeParams.get('listacolunaordem'));\n\n  function setSearchParams() {\n    setPagina(paginacaoGridParam || 1);\n    setQuantidadeRegistros(\n      NUMERO_QUANTIDADE_REGISTROS.includes(quantidadeRegistrosParam)\n        ? quantidadeRegistrosParam\n        : '10'\n    );\n    if (listaColunaOrdemParam?.length)\n      setListaColunaOrdem(listaColunaOrdemParam);\n  }\n\n  function voltarPaginaAnterior() {\n    const { urlBase, queryParam } = obterUrlPaginaAnterior();\n\n    if (urlBase && queryParam) {\n      history.push({ pathname: urlBase, search: queryParam });\n    } else {\n      history.push(`/`);\n    }\n  }\n\n  function handleTableChange(pagination, filters, sorter) {\n    if (!Array.isArray(sorter))\n      return setListaColunaOrdem([\n        {\n          ColunaOrdem: sorter.field,\n          TipoOrdem: sorter.order,\n          Ordem: 1,\n        },\n      ]);\n    const maxOrdem = Math.max(...listaColunaOrdem?.map(item => item.Ordem));\n\n    const novaListaOrdenacaoColuna = sorter?.map((s, index) => {\n      const itemOrdenacao = listaColunaOrdem.find(\n        (ordenacao, idx) =>\n          s.columnKey === ordenacao.ColunaOrdem && index === idx\n      );\n      if (itemOrdenacao) {\n        return {\n          ...itemOrdenacao,\n          TipoOrdem: s.order,\n        };\n      }\n      return {\n        ColunaOrdem: s.field,\n        TipoOrdem: s.order,\n        Ordem: maxOrdem ? maxOrdem + 1 : 1,\n      };\n    });\n\n    setListaColunaOrdem(novaListaOrdenacaoColuna);\n  }\n\n  const obterConfiguracoesVisao = useCallback(async () => {\n    const response = await obterConfiguracoes(modulo, visao);\n    if (response?.data) setConfiguracoesVisao(response.data);\n  }, [modulo, visao]);\n\n  function getFonteDadosColunas() {\n    if (colunasFiltro?.Grupos?.length > 0) {\n      colunasFiltro.Grupos.forEach(grupo => {\n        grupo.Colunas.forEach(coluna => {\n          arrayFonteDados.push(coluna.FonteDados);\n        });\n      });\n    }\n  }\n\n  const obterExerciciosEVisaoAnalitica = useCallback(async () => {\n    const responseConfiguracoesGerais = await obterConfiguracoesGerais(modulo);\n\n    if (responseConfiguracoesGerais?.data) {\n      const {\n        NomeVisaoAnalitica,\n        NomeVisaoAgrupamento,\n        PossuiArquivoDigital,\n        DataUltimaSicronizacaoModulo,\n        FiltroHabilitado,\n      } = responseConfiguracoesGerais?.data;\n\n      if (NomeVisaoAnalitica) setUrlVisaoAnalitica(NomeVisaoAnalitica);\n\n      if (NomeVisaoAgrupamento) setUrlVisaoAgrupamento(NomeVisaoAgrupamento);\n\n      if (DataUltimaSicronizacaoModulo)\n        setDataUltimaAtualizacao(DataUltimaSicronizacaoModulo);\n\n      if (FiltroHabilitado) setFiltroHabilitado(FiltroHabilitado);\n\n      if (PossuiArquivoDigital !== null && PossuiArquivoDigital !== undefined)\n        setPossuiArquivoDigital(PossuiArquivoDigital);\n    }\n  }, [modulo]);\n\n  function obterChavesPeriocidadeDaConfiguracao() {\n    const colunasPeriodicidade = configuracoesVisao.ChavesPeriodicidades;\n\n    setChavesPeriodicidade(arrayAnterior => [\n      ...arrayAnterior,\n      ...colunasPeriodicidade,\n    ]);\n  }\n\n  function obterValoresChavesPeriodicidadePorLinha(linhaGrid) {\n    const valores = chavesPeriodicidade.map(colunaGrid => ({\n      campo: colunaGrid.FonteDados,\n      valor: linhaGrid[colunaGrid.FonteDados],\n      tipo: colunaGrid.TipoValor,\n    }));\n    return valores;\n  }\n\n  const obterColunaLink = useCallback(() => {\n    if (!(configuracoesVisao && configuracoesVisao.VisaoColunas)) return null;\n\n    return configuracoesVisao.VisaoColunas.find(x => x.ColunaLink);\n  }, [configuracoesVisao]);\n\n  const exibirAnexos = useCallback(row => {\n    const valoresChavesPeriodicidade = obterValoresChavesPeriodicidadePorLinha(\n      row\n    );\n\n    const chavePesquisa = {\n      ChaveModulo: modulo,\n      Exercicio: row.Exercicio,\n      Periodicidade: 'MENSAL',\n      Periodo: row.Mes,\n      ChavesPeriodicidade: valoresChavesPeriodicidade.map(item => ({\n        Campo: item.campo,\n        Valor: item.valor,\n        TipoValor: item.tipo,\n      })),\n    };\n\n    setFiltroPesquisaArquivosDigitais(chavePesquisa);\n    setExibirArquivosForm(true);\n  });\n\n  function redirecionarDetalheVisaoAnalitica(\n    valoresChavesPeriodicidade,\n    exercicio,\n    mes\n  ) {\n    const colunasPeriodicidadeCampoValor = {};\n\n    valoresChavesPeriodicidade.forEach(item => {\n      colunasPeriodicidadeCampoValor[item.campo] = item.valor;\n    });\n\n    const data = {\n      exercicio,\n      periodicidade: 'MENSAL',\n      periodo: mes,\n\n      ...colunasPeriodicidadeCampoValor,\n    };\n\n    const queryString = parseToQueryString(data);\n\n    empilhaUrl(window.location.hash.split('#')[1]);\n\n    history.push({\n      pathname: `detalhevisao`,\n      state: {\n        pagina,\n        quantidadeRegistros,\n        listaColunaOrdem: listaColunaOrdem,\n      },\n      search: queryString,\n    });\n  }\n\n  const buscaDadosGrid = useCallback(() => {\n    if (!configuracoesVisao) {\n      return;\n    }\n\n    const data = {\n      ChaveModulo: modulo,\n      NomeVisao: visao,\n      Filtros: filtros,\n      Periodicidade: null,\n      Periodo: null,\n      Exercicio: null,\n      FiltroRedirecionaVisao: null,\n      Pagina: pagina,\n      QuantidadeRegistros: quantidadeRegistros,\n      Ordenacao: listaColunaOrdem,\n    };\n\n    obterDadosFiltroAvancado(data)\n      .then(res => {\n        setModuloVisao(res.data);\n        return null;\n      })\n      .catch(() => {\n        setModuloVisao({\n          QuantidadePaginas: 0,\n          QuantidadeRegistros: 0,\n          Valores: [],\n        });\n      });\n\n    const dataQueryString = {\n      filtros,\n      pagina,\n      quantidaderegistros: quantidadeRegistros,\n      listacolunaordem: listaColunaOrdem\n        ? JSON.stringify(listaColunaOrdem)\n        : null,\n    };\n\n    const searchParams = getAndFormatSearchParamsBuscaAvancada(\n      dataQueryString,\n      PARAMS_FILTERS_GRID_BUSCA_AVANCADA\n    );\n\n    browserHistory.replace(\n      `/#/dinamico/${modulo}/${visao}/busca?${searchParams}`,\n      history.location.state\n    );\n  }, [\n    modulo,\n    pagina,\n    quantidadeRegistros,\n    visao,\n    listaColunaOrdem,\n    configuracoesVisao,\n    filtros,\n  ]);\n\n  async function getColunas() {\n    const response = await getColunasFiltro(modulo);\n    setColunasFiltro(response);\n  }\n\n  function getParamsUrlFonteDadosColunas(array) {\n    const arrayAuxiliar = [];\n\n    array.forEach(fonteDados => {\n      let valorParam = routeParams.get(`${fonteDados}`);\n\n      if (valorParam !== null) {\n        valorParam = valorParam.split(',');\n\n        const objetoFiltro = {\n          Campo: fonteDados,\n          Valor:\n            valorParam[valorParam.length - 1] === '5'\n              ? `${valorParam[0]},${valorParam[1]}`\n              : valorParam[0],\n          TipoValor: valorParam[valorParam.length - 1],\n        };\n\n        arrayAuxiliar.push(objetoFiltro);\n      }\n    });\n\n    setValoresParamsFiltros(arrayAuxiliar);\n  }\n\n  function transformaFormEmObjetoRequisicao(valores) {\n    const chavesFiltro = Object.keys(valores);\n\n    const novoFiltro = [];\n\n    function montaNovoFiltro(filtro, isBool) {\n      novoFiltro.push({\n        Campo: valores[`${filtro}`].Campo,\n        // eslint-disable-next-line no-nested-ternary\n        Valor: isBool\n          ? valores[`${filtro}`].Valor === 1\n            ? 'Sim'\n            : 'Não'\n          : valores[`${filtro}`].Valor,\n        TipoValor: valores[`${filtro}`].TipoValor,\n      });\n    }\n\n    chavesFiltro.forEach(filtro => {\n      if (\n        valores[`${filtro}`] !== undefined &&\n        valores[`${filtro}`].TipoValor !== TIPO_COLUNA.BOOLEANO\n      ) {\n        if (valores[`${filtro}`].Valor.trim() !== '') {\n          montaNovoFiltro(filtro);\n        }\n      } else if (valores[`${filtro}`] !== undefined) {\n        if (valores[`${filtro}`].Valor !== '') {\n          montaNovoFiltro(filtro, true);\n        }\n      }\n    });\n\n    return novoFiltro;\n  }\n\n  function handlePesquisa() {\n    form.validateFields(async function _(err, values) {\n      if (!err) {\n        const filtrosRequisicao = transformaFormEmObjetoRequisicao(values);\n\n        if (filtrosRequisicao.length > 0) {\n          setFiltros(filtrosRequisicao);\n        } else {\n          notification.error({\n            message: 'Preencha ao menos um filtro para continuar',\n          });\n        }\n      }\n    });\n  }\n\n  function handleSubmit(event) {\n    event.preventDefault();\n    handlePesquisa();\n  }\n\n  function removeTodosOsFiltros() {\n    setFiltros([]);\n    setValoresParamsFiltros([]);\n    setTotalizadores([]);\n    setPagina(1);\n    setQuantidadeRegistros('10');\n    setListaColunaOrdem([]);\n\n    browserHistory.replace(\n      `/#/dinamico/${modulo}/${visao}/busca`,\n      history.location.state\n    );\n  }\n\n  async function obterTotalizadores() {\n    const data = {\n      ChaveModulo: modulo,\n      NomeVisao: visao,\n      Filtros: filtros,\n      Periodicidade: 'MENSAL',\n      BuscaAvancada: true,\n    };\n\n    const ColunasTotalizadoras = await ModuloVisaoService.obterTotalizadores(\n      data\n    );\n\n    setTotalizadores(ColunasTotalizadoras.data);\n  }\n\n  const Grid = useMemo(() => {\n    return configuracoesVisao?.VisaoColunas &&\n      moduloVisao?.Valores &&\n      filtros.length > 0 ? (\n      <TableDinamic\n        moduloVisao={moduloVisao}\n        handleTableChange={handleTableChange}\n        configuracao={configuracoesVisao}\n        quantidadeRegistros={quantidadeRegistros}\n        setQuantidadeRegistros={setQuantidadeRegistros}\n        pagina={pagina}\n        setPagina={setPagina}\n        modulo={modulo}\n        visao={visao}\n        filtro={filtros}\n        periodicidadeSelecionada={null}\n        periodoSelecionado={null}\n        exercicioSelecionado={null}\n        colunaFiltroRedirecionaVisao={null}\n        valorFiltroRedirecionaVisao={null}\n        tipoValorFiltroRedirecionaVisao={null}\n        redirecionarDetalheVisaoAnalitica={redirecionarDetalheVisaoAnalitica}\n        urlVisaoAnalitica={urlVisaoAnalitica}\n        urlVisaoAgrupamento={urlVisaoAgrupamento}\n        listaColunaOrdem={listaColunaOrdem}\n        obterValoresChavesPeriodicidadePorLinha={\n          obterValoresChavesPeriodicidadePorLinha\n        }\n        dataUltimaAtualizacao={dataUltimaAtualizacao}\n        redirecionarVisaoAnalitica={null}\n        possuiArquivoDigital={possuiArquivoDigital}\n        exibirAnexos={exibirAnexos}\n        filtroPesquisaArquivosDigitais={filtroPesquisaArquivosDigitais}\n        exibirArquivosForm={exibirArquivosForm}\n        setFiltroPesquisaArquivosDigitais={setFiltroPesquisaArquivosDigitais}\n        setExibirArquivosForm={setExibirArquivosForm}\n        buscaAvancada\n      />\n    ) : (\n      <></>\n    );\n  }, [\n    listaColunaOrdem,\n    configuracoesVisao,\n    possuiArquivoDigital,\n    filtros,\n    modulo,\n    moduloVisao,\n    pagina,\n    quantidadeRegistros,\n    urlVisaoAnalitica,\n    urlVisaoAgrupamento,\n    visao,\n    filtroPesquisaArquivosDigitais,\n    exibirArquivosForm,\n    exibirAnexos,\n    dataUltimaAtualizacao,\n  ]);\n\n  useEffect(() => {\n    if (\n      FiltroHabilitado === false ||\n      (configuracoesVisao && configuracoesVisao?.Tipo !== TIPO_VISAO.ANALITICO)\n    )\n      history.push('/notfound');\n  }, [FiltroHabilitado, configuracoesVisao]);\n\n  useEffect(() => {\n    getColunas();\n    obterConfiguracoesVisao();\n    obterExerciciosEVisaoAnalitica();\n    setSearchParams();\n  }, [obterConfiguracoesVisao, obterExerciciosEVisaoAnalitica]);\n\n  useEffect(() => {\n    getFonteDadosColunas();\n    getParamsUrlFonteDadosColunas(arrayFonteDados);\n  }, [colunasFiltro]);\n\n  useEffect(() => {\n    if (configuracoesVisao) obterChavesPeriocidadeDaConfiguracao();\n  }, [configuracoesVisao]);\n\n  useEffect(() => {\n    if (filtros.length > 0) {\n      buscaDadosGrid();\n      obterTotalizadores();\n    }\n  }, [buscaDadosGrid]);\n\n  return (\n    <>\n      <PageTitle\n        titulo={`Busca Avançada ${configuracoesVisao?.Titulo ? configuracoesVisao?.Titulo : ''\n          }`}\n      />\n      {filtros.length === 0 ? (\n        <Card>\n          <Form onSubmit={handleSubmit} layout=\"vertical\">\n            <Row>\n              <Col lg={24} md={24} sm={24} xs={24}>\n                <Row style={{ marginBottom: 16 }} gutter={16}>\n                  <FiltrosAvancados\n                    filtros={colunasFiltro}\n                    form={form}\n                    paramsFiltros={valoresParamsFiltros}\n                    handlePesquisa={handlePesquisa}\n                  />\n                </Row>\n              </Col>\n            </Row>\n\n            <Row>\n              <Col lg={12} md={12} sm={12} xs={12}>\n                <Row style={{ justifyContent: 'left' }}>\n                  <ButtonGoBack OnClick={voltarPaginaAnterior} />\n                </Row>\n              </Col>\n              <Col lg={12} md={12} sm={12} xs={12}>\n                <Row style={{ justifyContent: 'right' }}>\n                  <Button\n                    type=\"primary\"\n                    style={{\n                      float: 'right',\n                      width: '300px',\n                      marginBottom: 16,\n                    }}\n                    htmlType=\"submit\"\n                  >\n                    Filtrar\n                  </Button>\n                </Row>\n              </Col>\n            </Row>\n          </Form>\n        </Card>\n      ) : (\n        <></>\n      )}\n\n      {totalizadores?.length > 0 && (\n        <Totalizadores totalizadores={totalizadores} />\n      )}\n\n      <ShowFiltros\n        filtros={filtros}\n        colunasFiltro={colunasFiltro}\n        setFiltros={setFiltros}\n        form={form}\n        removeTodosOsFiltros={removeTodosOsFiltros}\n      />\n\n      {Grid}\n\n      {filtros.length > 0 ? (\n        <Row style={{ marginTop: '15px' }}>\n          <Button onClick={() => removeTodosOsFiltros()}>Voltar</Button>\n        </Row>\n      ) : (\n        <></>\n      )}\n    </>\n  );\n}\n\nexport default Form.create({\n  name: 'FormBuscaAvancada',\n})(BuscaAvancada);\n","import React, { useState, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { getItemVisaoService } from '../services/visaoItem.service';\nimport {\n  Informacao,\n  Typography,\n  Icons,\n  Row,\n  Col,\n  ButtonGoBack,\n  Card,\n  Button,\n  Tooltip,\n} from '~/components';\nimport { iconEnum } from '~/modules/Helper/iconEnum';\nimport { ChooseIconFile } from '~/modules/Helper/chooseIconFile';\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\n\nfunction VisaoItem({ match }) {\n  const history = useHistory();\n  const [visaoItem, setVisaoItem] = useState(null);\n\n  const { corTema } = useSelector(state => state.configuration);\n\n  useEffect(() => {\n    async function getItemVisao() {\n      const { modulo, visao, itemVisao } = match.params;\n      const response = await getItemVisaoService(modulo, visao, itemVisao);\n\n      if (response?.data) setVisaoItem(response.data);\n    }\n\n    getItemVisao();\n  }, [match.params]);\n\n  function goBack() {\n    history.goBack();\n  }\n\n  return (\n    <>\n      <Typography.Title level={3}>{visaoItem?.Titulo}</Typography.Title>\n      <Informacao\n        titulo=\"Informações\"\n        informacao={visaoItem?.TextoInformativo}\n      />\n      {visaoItem?.NomeArquivo && (\n        <Card\n          title=\"Arquivo\"\n          size=\"small\"\n          style={{\n            padding: 0,\n            color: corTema,\n            cursor: 'pointer',\n          }}\n        >\n          <Tooltip title=\"Baixar Arquivo\" placement=\"topRight\">\n            <Row onClick={() => fileManagerPaiDownload(visaoItem?.UrlArquivo)}>\n              <Col style={{ marginRight: 5 }}>\n                <Typography.Text>\n                  {iconEnum\n                    .find(\n                      x =>\n                        x.name ===\n                        `file-${ChooseIconFile(\n                          visaoItem?.NomeArquivo?.split('.', 2)[1].toLowerCase()\n                        )}`\n                    )\n                    ?.value({ fontSize: '20px' })}\n                </Typography.Text>\n              </Col>\n              <Col lg={22}>\n                <Typography.Text role=\"link\" tabIndex=\"0\" aria-hidden=\"true\">\n                  {visaoItem?.NomeArquivo}\n                </Typography.Text>\n              </Col>\n              <Col lg={1}>\n                <Button\n                  style={{ marginLeft: '10px' }}\n                  type=\"primary\"\n                  shape=\"circle\"\n                  icon={<Icons.DownloadOutlined />}\n                />\n              </Col>\n            </Row>\n          </Tooltip>\n        </Card>\n      )}\n      <Row>\n        <ButtonGoBack OnClick={goBack} />\n      </Row>\n    </>\n  );\n}\n\nexport default VisaoItem;\n","import api from '~/services/api';\n\nexport function getItemVisaoService(chaveModulo, uriVisao, idVisaoItemDetalhe) {\n  return api.get(\n    `ModuloVisaoItemDetalhe/${chaveModulo}/${uriVisao}/${parseInt(\n      idVisaoItemDetalhe,\n      10\n    )}`\n  );\n}\n","import React, { useState, useRef } from 'react';\nimport { useSelector } from 'react-redux';\nimport ReCaptcha from '~/components/ReCaptcha/reCacptcha.component';\n\nimport {\n  Tooltip,\n  Row,\n  Col,\n  Card,\n  PageTitle,\n  FormV3 as Form,\n  Input,\n  Button,\n  Notification,\n  Map,\n} from '~/components';\nimport { insertFaleConoscoService } from '../services/faleconosco.service';\n\nfunction FaleConoscoForm({ form }) {\n  const { endereco, bairro, cidade, corFonte } = useSelector(\n    state => state.configuration\n  );\n  const { getFieldDecorator } = form;\n  const [captcha, SetCaptcha] = useState(null);\n  const recaptchaInputRef = useRef({});\n\n  function handleOnCaptchaChange(value) {\n    SetCaptcha(value);\n  }\n\n  function resetForm() {\n    form.resetFields();\n    SetCaptcha(null);\n    window.grecaptcha.reset();\n  }\n\n  function handleSubmit(event) {\n    event.preventDefault();\n\n    form.validateFields(async function _(err, values) {\n      if (!err) {\n        const { Nome, Email, Assunto, Mensagem } = values;\n\n        const faleConosco = {\n          Nome,\n          Email,\n          Assunto,\n          Mensagem,\n          captcha,\n        };\n        await insertFaleConoscoService(faleConosco)\n          .then(x => {\n            Notification.showSuccess('Mensagem enviada com sucesso');\n            resetForm();\n          })\n          .catch(res => Notification.showError(res.response.data));\n      }\n    });\n  }\n\n  return (\n    <>\n      <PageTitle titulo=\"Fale Conosco\" />\n      <Card>\n        <Row gutter={16}>\n          <Col lg={12} md={24} sm={24} xs={24}>\n            <Form onSubmit={handleSubmit} layout=\"vertical\">\n              <Row style={{ marginBottom: 16 }}>\n                <Col lg={24} md={24} sm={24} xs={24}>\n                  <Form.Item label=\"Nome\" name=\"Nome\" colon={false}>\n                    <Tooltip title=\"Digite seu nome\">\n                      {getFieldDecorator('Nome', {\n                        rules: [\n                          {\n                            required: true,\n                            message: 'Campo obrigatório.',\n                          },\n                        ],\n                      })(\n                        <Input minLength={3} maxLength={100} placeholder=\"Nome\" />\n                      )}\n                    </Tooltip>\n                  </Form.Item>\n                </Col>\n              </Row>\n              <Row style={{ marginBottom: 16 }}>\n                <Col lg={24} md={24} sm={24} xs={24}>\n                  <Form.Item label=\"E-mail\" colon={false}>\n                    <Tooltip title=\"Digite seu e-mail\">\n                      {getFieldDecorator('Email', {\n                        rules: [\n                          {\n                            type: 'email',\n                            message: 'Email inválido',\n                          },\n                          {\n                            required: true,\n                            message: 'Campo obrigatório.',\n                          },\n                        ],\n                      })(\n                        <Input\n                          maxLength={100}\n                          type=\"email\"\n                          placeholder=\"E-Mail\"\n                        />\n                      )}\n                    </Tooltip>\n                  </Form.Item>\n                </Col>\n              </Row>\n              <Row style={{ marginBottom: 16 }}>\n                <Col lg={24} md={24} sm={24} xs={24}>\n                  <Form.Item label=\"Assunto\" colon={false}>\n                    <Tooltip title=\"Digite o Assunto\">\n                      {getFieldDecorator('Assunto', {\n                        rules: [\n                          {\n                            required: true,\n                            message: 'Campo obrigatório.',\n                          },\n                        ],\n                      })(\n                        <Input\n                          minLength={5}\n                          maxLength={100}\n                          placeholder=\"Assunto\"\n                        />\n                      )}\n                    </Tooltip>\n                  </Form.Item>\n                </Col>\n              </Row>\n              <Row style={{ marginBottom: 16 }}>\n                <Col lg={24} md={24} sm={24} xs={24}>\n                  <Form.Item label=\"Mensagem\" colon={false}>\n                    <Tooltip title=\"Digite a Mensagem\">\n                      {getFieldDecorator('Mensagem', {\n                        rules: [\n                          {\n                            required: true,\n                            message: 'Campo obrigatório.',\n                          },\n                          {\n                            min: 10,\n                            message:\n                              'O campo Mensagem deve ter no mínimo 10 caracteres',\n                          },\n                        ],\n                      })(\n                        <Input.TextArea\n                          rows={4}\n                          min={10}\n                          maxLength={500}\n                          placeholder=\"Mensagem\"\n                          autoComplete=\"off\"\n                        />\n                      )}\n                    </Tooltip>\n                  </Form.Item>\n                </Col>\n              </Row>\n\n              <Col\n                lg={24}\n                md={24}\n                sm={24}\n                xs={24}\n                style={{\n                  marginBottom: '24px',\n                  display: 'flex',\n                  justifyContent: 'center',\n                }}\n              >\n                <ReCaptcha\n                  ref={recaptchaInputRef}\n                  handleOnCaptchaChange={handleOnCaptchaChange}\n                />\n              </Col>\n              <Col lg={24} md={24} sm={24} xs={24}>\n                <Row>\n                  <Button\n                    type=\"primary\"\n                    style={{ float: 'right', width: '100%', marginBottom: 16 }}\n                    htmlType=\"submit\"\n                    disabled={captcha == null}\n                  >\n                    Enviar\n                  </Button>\n                </Row>\n              </Col>\n            </Form>\n          </Col>\n          <Col lg={12} md={24} sm={24} xs={24}>\n            <Map\n              rua={endereco}\n              bairro={bairro}\n              cidade={cidade}\n              corFonte={corFonte}\n            />\n          </Col>\n        </Row>\n      </Card>\n    </>\n  );\n}\nexport default Form.create({\n  name: 'FaleConosco',\n})(FaleConoscoForm);\n","import api from '~/services/api';\n\nexport function insertFaleConoscoService(data) {\n  return api.post('/faleconosco', data);\n}","import React, { useEffect } from 'react';\nimport * as ModuloService from '../../../services/modulos.service';\nimport { CHAVES_MODULO } from '../../Helper/chave-modulo-constants';\nimport FaleConoscoForm from '../components/faleConosco.form.component';\n\nfunction FaleConosco() {\n  useEffect(() => {\n    ModuloService.verificaModuloHabilitado(CHAVES_MODULO.FALE_CONOSCO);\n  }, []);\n\n  return <FaleConoscoForm />;\n}\n\nexport default FaleConosco;\n","import styled from 'styled-components';\nimport { Card } from '~/components';\n\nexport const CardWithTitleStyled = styled(Card)`\n  .ant-card-head {\n    font-weight: 700;\n  }\n\n  .ant-card-body {\n    padding-right: 24px;\n    padding-left: 24px;\n    padding-top: 16px;\n    padding-bottom: 16px;\n  }\n`;\n\nexport const InfosContainer = styled.div`\n  .info-autenticidade {\n    font-weight: 700;\n    margin-right: 10px;\n  }\n\n  .ant-tag-error {\n    background: #fff2f0 !important;\n  }\n`;\n\nexport const SubInfosContainer = styled.div`\n  margin-left: 15px;\n`;\n\nexport const ContainerAviso = styled.div`\n  margin-top: 12px;\n\n  p {\n    margin-bottom: 0px;\n  }\n\n  .anticon {\n    margin-right: 10px;\n  }\n\n  div.ant-typography {\n    margin-bottom: 0px;\n  }\n\n  div:nth-child(2) {\n    margin-left: 25px;\n    margin-bottom: 0px;\n  }\n\n  div:nth-child(2) div {\n    padding: 0px;\n  }\n`;\n","export const STATUS_AUTENTICIDADE = {\n  DENTRO_PRAZO: 1,\n  FORA_PRAZO: 2,\n};\n","import React from 'react';\n\nimport {\n  Tooltip,\n  Row,\n  Col,\n  Button,\n  Informacao,\n  Icons,\n  Tag,\n  Typography,\n  Card,\n} from '~/components';\n\nimport * as S from './autenticidadeValidacao.styled';\n\nimport { iconEnum } from '~/modules/Helper/iconEnum';\nimport { ChooseIconFile } from '~/modules/Helper/chooseIconFile';\n\nimport { fileManagerPaiDownload } from '~/services/FileManager/file-manager.service';\nimport { STATUS_AUTENTICIDADE } from '~/modules/Helper/statusAutenticidade';\n\nfunction AutenticidadeValidacao({ dadosValidacao, aviso }) {\n  function renderTagFromStatusAutenticidade() {\n    if (dadosValidacao?.Status === STATUS_AUTENTICIDADE.DENTRO_PRAZO)\n      return (\n        <Tag style={{ display: 'flex', alignItems: 'center' }} color=\"success\">\n          Documento dentro do Prazo de Validade\n        </Tag>\n      );\n    if (dadosValidacao?.Status === STATUS_AUTENTICIDADE.FORA_PRAZO)\n      return (\n        <Tag style={{ display: 'flex', alignItems: 'center' }} color=\"error\">\n          Documento com Prazo Vencido\n        </Tag>\n      );\n\n    return null;\n  }\n\n  return (\n    <>\n      <Card style={{ marginBottom: '16px' }}>\n        <S.InfosContainer>\n          <Row style={{ marginBottom: '18px' }}>\n            <span className=\"info-autenticidade\">Status:</span>\n            {renderTagFromStatusAutenticidade()}\n          </Row>\n          <Row style={{ marginBottom: '10px' }}>\n            <span className=\"info-autenticidade\">Informações do Documento</span>\n          </Row>\n          <S.SubInfosContainer>\n            <Row>\n              <span className=\"info-autenticidade\">Nome:</span>\n              {dadosValidacao?.NomeArquivo}\n            </Row>\n            <Row>\n              <span className=\"info-autenticidade\">Data/Hora:</span>\n              {dadosValidacao?.DataHoraExportacao}\n            </Row>\n            <Row>\n              <span className=\"info-autenticidade\">Válido até:</span>\n              {dadosValidacao?.DataHoraValidade}\n            </Row>\n          </S.SubInfosContainer>\n        </S.InfosContainer>\n        {aviso && (\n          <S.ContainerAviso>\n            <Informacao\n              titulo={aviso?.Titulo}\n              informacao={aviso?.Texto}\n              icon={<Icons.InfoCircleOutlined />}\n            />\n          </S.ContainerAviso>\n        )}\n      </Card>\n\n      <S.CardWithTitleStyled\n        style={{ marginBottom: '16px' }}\n        title=\"Página de Origem das Informações\"\n      >\n        <Row>\n          <Col xs={18} style={{ display: 'flex', alignItems: 'center' }}>\n            <Icons.LinkOutlined\n              style={{ marginRight: '10px', fontSize: '20px' }}\n            />\n            {dadosValidacao?.TituloRelatorio}\n          </Col>\n          <Col xs={6} style={{ justifyContent: 'right', display: 'flex' }}>\n            <Tooltip title=\"Acessar Url\">\n              <Button\n                shape=\"circle\"\n                type=\"primary\"\n                onClick={() =>\n                  window.open(dadosValidacao?.UrlExportacao, '_blank')\n                }\n              >\n                <Icons.EyeOutlined />\n              </Button>\n            </Tooltip>\n          </Col>\n        </Row>\n      </S.CardWithTitleStyled>\n\n      {dadosValidacao.Status === STATUS_AUTENTICIDADE.DENTRO_PRAZO && (\n        <S.CardWithTitleStyled title=\"Arquivo Original\">\n          <Row>\n            <Col xs={18} style={{ display: 'flex', alignItems: 'center' }}>\n              <Typography.Text style={{ marginRight: '10px' }}>\n                {iconEnum\n                  .find(\n                    x =>\n                      x.name ===\n                      `file-${ChooseIconFile(\n                        dadosValidacao?.NomeArquivo?.split(\n                          '.',\n                          2\n                        )[1].toLowerCase()\n                      )}`\n                  )\n                  ?.value({ fontSize: '20px' })}\n              </Typography.Text>\n              {dadosValidacao?.NomeArquivo}\n            </Col>\n            <Col xs={6} style={{ justifyContent: 'right', display: 'flex' }}>\n              <Tooltip title=\"Baixar Arquivo\">\n                <Button\n                  shape=\"circle\"\n                  type=\"primary\"\n                  onClick={() =>\n                    fileManagerPaiDownload(dadosValidacao?.NomeArquivo)\n                  }\n                >\n                  <Icons.DownloadOutlined />\n                </Button>\n              </Tooltip>\n            </Col>\n          </Row>\n        </S.CardWithTitleStyled>\n      )}\n    </>\n  );\n}\n\nexport default AutenticidadeValidacao;\n","import styled from 'styled-components';\n\nexport const ContainerInformacao = styled.div`\n  div.ant-typography {\n    margin-bottom: 0px;\n  }\n\n  div:nth-child(2) div {\n    padding: 0px;\n  }\n`;\n","import React, { useState, useRef, useEffect } from 'react';\nimport ReCaptcha from '~/components/ReCaptcha/reCacptcha.component';\n\nimport {\n  Tooltip,\n  Row,\n  Col,\n  Card,\n  PageTitle,\n  FormV3 as Form,\n  Input,\n  Button,\n  Notification,\n  Informacao,\n  ButtonGoBack,\n} from '~/components';\nimport {\n  obterAutenticidade,\n  obterConfiguracoes,\n} from '../services/autenticidade.service';\nimport AutenticidadeValidacao from './autenticidadeValidacao.component';\n\nimport * as S from './autenticidade.styled';\n\nfunction AutenticidadeForm({ form }) {\n  const { getFieldDecorator } = form;\n  const [captcha, SetCaptcha] = useState(null);\n  const recaptchaInputRef = useRef({});\n  const [hasSubmitted, setHasSubmitted] = useState(false);\n  const [dadosValidacao, setDadosValidacao] = useState();\n  const [configuracoes, setConfiguracoes] = useState();\n\n  function handleOnCaptchaChange(value) {\n    SetCaptcha(value);\n  }\n\n  function handleSubmit(event) {\n    event.preventDefault();\n\n    form.validateFields(async function _(err, values) {\n      if (!err) {\n        const { CodigoValidacao } = values;\n\n        await obterAutenticidade(CodigoValidacao, true)\n          .then(resp => {\n            setDadosValidacao(resp.data);\n            setHasSubmitted(true);\n          })\n          .catch(() => Notification.showError('Código de Validação Inválido'));\n      }\n    });\n  }\n\n  function goBack() {\n    SetCaptcha(null);\n    setHasSubmitted(false);\n  }\n\n  useEffect(() => {\n    obterConfiguracoes().then(resp => setConfiguracoes(resp.data));\n  }, []);\n\n  return (\n    <>\n      <PageTitle titulo={`${hasSubmitted ? 'Resultado ' : ''}${configuracoes?.NomeModulo}`} />\n      {!hasSubmitted ? (\n        <Card>\n          {configuracoes?.Informacao && (\n            <S.ContainerInformacao>\n              <Informacao\n                titulo={configuracoes?.Informacao?.Titulo}\n                informacao={configuracoes?.Informacao?.Texto}\n              />\n            </S.ContainerInformacao>\n          )}\n          <Row gutter={16} justify=\"center\">\n            <Col lg={8} md={24} sm={24} xs={24}>\n              <Form onSubmit={handleSubmit} layout=\"vertical\">\n                <Row style={{ marginBottom: 16 }}>\n                  <Col lg={24} md={24} sm={24} xs={24}>\n                    <Form.Item\n                      label=\"Código de Validação\"\n                      name=\"Código de Validação\"\n                      colon={false}\n                    >\n                      <Tooltip title=\"Código de Validação\">\n                        {getFieldDecorator('CodigoValidacao', {\n                          rules: [\n                            {\n                              required: true,\n                              message: 'Campo obrigatório.',\n                            },\n                          ],\n                        })(\n                          <Input\n                            maxLength={100}\n                            placeholder=\"Código de Validação\"\n                          />\n                        )}\n                      </Tooltip>\n                    </Form.Item>\n                  </Col>\n                </Row>\n\n                <Col\n                  lg={24}\n                  md={24}\n                  sm={24}\n                  xs={24}\n                  style={{\n                    marginBottom: '24px',\n                    display: 'flex',\n                    justifyContent: 'center',\n                  }}\n                >\n                  <ReCaptcha\n                    ref={recaptchaInputRef}\n                    handleOnCaptchaChange={handleOnCaptchaChange}\n                  />\n                </Col>\n                <Col lg={24} md={24} sm={24} xs={24}>\n                  <Row>\n                    <Button\n                      type=\"primary\"\n                      style={{\n                        float: 'right',\n                        width: '100%',\n                        marginBottom: 16,\n                      }}\n                      htmlType=\"submit\"\n                      disabled={captcha == null}\n                    >\n                      Validar\n                    </Button>\n                  </Row>\n                </Col>\n              </Form>\n            </Col>\n          </Row>\n        </Card>\n      ) : (\n        <AutenticidadeValidacao\n          dadosValidacao={dadosValidacao}\n          aviso={configuracoes?.Aviso}\n        />\n      )}\n      {hasSubmitted && (\n        <Row>\n          <ButtonGoBack OnClick={goBack} />\n        </Row>\n      )}\n    </>\n  );\n}\nexport default Form.create({\n  name: 'Autenticidade',\n})(AutenticidadeForm);\n","import api from '~/services/api';\n\nexport async function obterAutenticidade(codigoValidacao) {\n  return api.get(`/autenticidade/obter/${codigoValidacao}`);\n}\n\nexport async function obterConfiguracoes() {\n  return api.get('/autenticidade/configuracoes');\n}\n","import React, { useEffect } from 'react';\nimport * as ModuloService from '../../../services/modulos.service';\nimport { CHAVES_MODULO } from '../../Helper/chave-modulo-constants';\nimport AutenticidadeForm from '../components/autenticidade.form.component';\n\nfunction Autenticidade() {\n  useEffect(() => {\n    ModuloService.verificaModuloHabilitado(CHAVES_MODULO.AUTENTICIDADE);\n  }, []);\n\n  return <AutenticidadeForm />;\n}\n\nexport default Autenticidade;\n","import React, { useEffect, useState } from 'react';\nimport { Line } from '@antv/g2plot';\nimport { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { Row, Icons } from '~/components';\nimport { GraficoLine, Visualizar, CardWrapper } from './style';\n\nfunction LineGraphic({\n  id,\n  titulo,\n  data,\n  xField = 'EixoY',\n  yField = 'EixoX',\n  seriesField,\n  legendaEixoX,\n  legendaEixoY,\n  legenda,\n  ValorLink,\n  showEyeButton = false,\n  corFonte,\n  onLineClick,\n  onPointClick,\n}) {\n  const [line, setLine] = useState(null);\n\n  const NumberFormatter = function NumberFormatter(value) {\n    let newNum = value;\n    const suffix = ['', ' Mil', ' Mi', ' Bi', ' Tri'];\n    let suffixNum = 0;\n    if (newNum > 10000) {\n      while (newNum >= 1000) {\n        newNum /= 1000;\n        suffixNum += 1;\n      }\n      return Math.trunc(newNum) + suffix[suffixNum];\n    }\n    return newNum;\n  };\n\n  const {\n    graficHighContrastStyle,\n    highContrast,\n    graficDefaultStyle,\n    zoomFonte,\n  } = useSelector(state => state.configuration);\n\n  const getConfigStyle = highContrast\n    ? graficHighContrastStyle\n    : graficDefaultStyle;\n\n  const [config] = useState({\n    title: false,\n    autoFit: true,\n    data,\n    xField,\n    yField,\n    seriesField,\n    xAxis: {\n      title: {\n        visible: legendaEixoX || false,\n        text: legendaEixoX,\n        style: getConfigStyle,\n      },\n      label: {\n        style: getConfigStyle,\n        formatter: v => {\n          return v.length >= 7 ? `${v.substring(0, 7)}...` : v;\n        },\n      },\n    },\n    yAxis: {\n      title: {\n        visible: false,\n        text: legendaEixoY,\n        offset: 45,\n        style: getConfigStyle,\n      },\n      label: {\n        formatter: v => {\n          return NumberFormatter(v);\n        },\n        style: getConfigStyle,\n      },\n    },\n    color: [\n      '#30BBAA',\n      '#F39366',\n      '#876AB0',\n      '#FDF25B',\n      '#77C966',\n      '#EE7B80',\n      '#7F8BB2',\n      '#F9D04F',\n      '#D85B81',\n      '#D3E045',\n      '#2DA0D7',\n      '#FBB141',\n    ],\n    point: {\n      visible: true,\n      size: 5,\n      shape: 'circle',\n      style: {\n        lineWidth: 2,\n      },\n    },\n    legend: {\n      visible: true,\n      title: {\n        visible: true,\n        text: legenda,\n        style: getConfigStyle,\n      },\n      itemName: {\n        formatter: v => {\n          return v.trim().length >= 25 ? `${v.substring(0, 25)}...` : v.trim();\n        },\n        style: getConfigStyle,\n      },\n    },\n    tooltip: {\n      title: () => legendaEixoY,\n    },\n    smooth: true,\n  });\n\n  useEffect(() => {\n    if (line) return;\n\n    const element = document.getElementById(id);\n    if (element) {\n      const lineRender = new Line(element, {\n        data,\n        ...config,\n        events: {\n          onLineClick,\n          onPointClick,\n        },\n      });\n      setLine(lineRender);\n      lineRender.render();\n    }\n  }, [line, config, data, id]);\n\n  useEffect(() => {\n    if (line) {\n      line.update({\n        xAxis: {\n          ...config.xAxis,\n          title: {\n            ...config.xAxis.title,\n            style: getConfigStyle,\n          },\n          label: {\n            ...config.xAxis.label,\n            style: getConfigStyle,\n          },\n        },\n        yAxis: {\n          ...config.yAxis,\n          title: {\n            ...config.yAxis.title,\n            style: getConfigStyle,\n          },\n          label: {\n            ...config.yAxis.label,\n            style: getConfigStyle,\n          },\n        },\n        legend: {\n          ...config.legend,\n          itemName: {\n            ...config.itemName,\n            style: getConfigStyle,\n          },\n          title: {\n            ...config.label,\n            style: getConfigStyle,\n          },\n        },\n        smooth: config.smooth,\n        point: config.point,\n        tooltip: config.tooltip,\n      });\n    }\n\n    if (line) line.render();\n  }, [\n    line,\n    config.xAxis,\n    config.yAxis,\n    config.legend,\n    getConfigStyle,\n    highContrast,\n    zoomFonte,\n  ]);\n\n  useEffect(() => {\n    if (line) {\n      line.update({\n        data,\n      });\n      line.render();\n    }\n  }, [data, line]);\n\n  return (\n    <>\n      <CardWrapper\n        title={\n          <span\n            style={{ fontSize: `${18 + 2 * zoomFonte}px`, fontWeight: 500 }}\n          >\n            {titulo}\n          </span>\n        }\n        extra={\n          showEyeButton ? (\n            <Visualizar>\n              <Link to={ValorLink} style={{ color: corFonte }}>\n                <Icons.EyeOutlined />\n              </Link>\n            </Visualizar>\n          ) : (\n            ''\n          )\n        }\n        size=\"small\"\n      >\n        <Row />\n        <Row>\n          <GraficoLine id={id} />\n        </Row>\n      </CardWrapper>\n    </>\n  );\n}\n\nexport default LineGraphic;\n","import React, { useEffect, useState } from 'react';\nimport EmptyCardGrafico from '../../../components/Grafico/EmptyCardGraphic.component';\nimport LineGraphic from '../../../components/Grafico/LineGraphic.component';\nimport * as EstatisticasService from '../services/Estatisticas.service';\n\nexport default function GraficoAnos() {\n  const [acessosAnos, setAcessosAnos] = useState([]);\n\n  useEffect(() => {\n    EstatisticasService.getEstatisticasAcessoAno().then(({ data }) => {\n      if (data) setAcessosAnos(data);\n    });\n  }, []);\n\n  return acessosAnos?.length ? (\n    <div className=\"maxHeight500\">\n      <LineGraphic\n        id=\"acessosAnos\"\n        titulo=\"Histórico de Acessos por Mês\"\n        data={acessosAnos}\n        xField=\"Mes\"\n        yField=\"Acessos\"\n        seriesField=\"Ano\"\n        legendaEixoX=\"Mês\"\n        legendaEixoY=\"Acessos\"\n        legenda=\"\"\n      />\n    </div>\n  ) : (\n    <EmptyCardGrafico\n      id=\"acessosAnos\"\n      titulo=\"Histórico de Acessos por Mês\"\n      tamanho={2}\n    />\n  );\n}\n","import api from '~/services/api';\n\nfunction getEstatisticasAcessosVisao(exercicio) {\n  return api.get(`/estatistica/grafico/visao/portal/${exercicio}`); // DTO para o Gráfico de Pie\n}\n\nfunction getEstatisticasAcessoAno() {\n  return api.get('/estatistica/grafico/ano/portal'); // DTO para o Gráfico de Line\n}\n\nfunction getEstatisticasAnosComDados() {\n  return api.get('/estatistica/anos'); // DTO para o select de apenas Exercícios com dados.\n}\n\nexport {\n  getEstatisticasAcessosVisao,\n  getEstatisticasAcessoAno,\n  getEstatisticasAnosComDados,\n};\n","import React, { useEffect, useState } from 'react';\nimport PieGraphic from '../../../components/Grafico/PieGraphic.component';\nimport EmptyCardGrafico from '../../../components/Grafico/EmptyCardGraphic.component';\nimport * as EstatisticasService from '../services/Estatisticas.service';\n\nexport default function GraficoVisoes({ anoSelecionado }) {\n  const [acessosVisoes, setAcessosVisoes] = useState([]);\n\n  useEffect(() => {\n    EstatisticasService.getEstatisticasAcessosVisao(anoSelecionado).then(\n      ({ data }) => {\n        if (data) setAcessosVisoes(data);\n      }\n    );\n  }, [anoSelecionado]);\n\n  const tooltipFormatter = ({ Acessos, NomeVisao }) => {\n    return {\n      name: NomeVisao,\n      value: new Intl.NumberFormat('pt-BR').format(Acessos),\n    };\n  };\n\n  return acessosVisoes?.length ? (\n    <div className=\"maxHeight500\">\n      <PieGraphic\n        id=\"acessosVisoes\"\n        titulo=\"Acessos por Página\"\n        data={acessosVisoes}\n        colorField=\"NomeVisao\"\n        angleField=\"Acessos\"\n        legendPosition=\"bottom-left\"\n        legenda=\"Legenda\"\n        tootltipTitle={() => 'Acessos'}\n        legendMaxRow={5}\n        legendItemMarginBottom={8}\n        legendItemSpacing={8}\n        tooltipFormatter={tooltipFormatter}\n      />\n    </div>\n  ) : (\n    <EmptyCardGrafico\n      id=\"acessosVisoes\"\n      titulo=\"Acessos por Página\"\n      tamanho={2}\n    />\n  );\n}\n","import React from 'react';\nimport { Select, Tooltip, Row, Typography, Card } from '~/components';\n\nexport default function FiltroExercicio({\n  handleChangeExercicio,\n  exercicios,\n  exercicio,\n}) {\n  return (\n    <Row style={{ justifyContent: 'flex-start', marginTop: '10px' }}>\n      <Card\n        style={{ width: '100%' }}\n        bodyStyle={{\n          display: 'flex',\n          alignItems: 'center',\n          padding: 12,\n        }}\n      >\n        <Typography.Title\n          level={3}\n          style={{ fontSize: 18, fontWeight: 500, marginBottom: 0 }}\n        >\n          Exercício\n        </Typography.Title>\n        <Tooltip title=\"Exercício\">\n          <Select\n            value={exercicio}\n            defaultValue={exercicio}\n            onChange={handleChangeExercicio}\n            style={{ width: '80px', marginLeft: '5px' }}\n          >\n            {exercicios.map(ano => (\n              <Select.Option key={ano} Option value={ano}>\n                {ano}\n              </Select.Option>\n            ))}\n          </Select>\n        </Tooltip>\n      </Card>\n    </Row>\n  );\n}\n","import React, { useState, useEffect } from 'react';\nimport { PageTitle } from '~/components';\nimport GraficoAnos from '../components/GraficoAnos.component';\nimport GraficoVisoes from '../components/GraficoVisoes.component';\nimport FiltroExercicio from '../components/FiltroExercicio.component';\nimport * as EstatisticasService from '../services/Estatisticas.service';\n\nexport default function Estatiscas() {\n  const anoAtual = new Date().getFullYear();\n\n  const [exercicioSelcionado, setExercicioSelecionado] = useState(anoAtual);\n  const [exercicios, setExercicios] = useState([]);\n\n  useEffect(() => {\n    EstatisticasService.getEstatisticasAnosComDados().then(({ data }) => {\n      if (data) setExercicios(data);\n    });\n  }, []);\n\n  function handleChangeExercicio(anoSelecionado) {\n    setExercicioSelecionado(anoSelecionado);\n  }\n\n  return (\n    <>\n      <PageTitle titulo=\"Estatísticas de Acesso\" />\n      <GraficoAnos />\n      <FiltroExercicio\n        handleChangeExercicio={value => handleChangeExercicio(value)}\n        exercicios={exercicios}\n        exercicio={exercicioSelcionado}\n      />\n      <GraficoVisoes anoSelecionado={exercicioSelcionado} />\n    </>\n  );\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { Route as ReactRoute } from 'react-router-dom';\nimport { Breadcrumb } from '~/components';\nimport { salvaEstatistica } from './routes.service';\n\nfunction Route({ path, component: Component, hasStatistics }) {\n  function handleStatistics(url) {\n    const payload = {\n      Rota: url,\n    };\n\n    salvaEstatistica(payload);\n  }\n\n  return (\n    <ReactRoute\n      path={path}\n      exact\n      render={props => {\n        if (hasStatistics) handleStatistics(props.location.pathname);\n        return (\n          <>\n            <Breadcrumb master=\"/\" {...props} />\n            <Component {...props} />\n          </>\n        );\n      }}\n    />\n  );\n}\n\nexport default Route;\n","import api from '~/services/api';\n\nfunction salvaEstatistica(data) {\n  return api.post('Estatistica', data);\n}\n\nexport { salvaEstatistica };\n","import React from 'react';\nimport { Router, Switch } from 'react-router-dom';\nimport DefaultLayout from '~/modules/_layouts/default/default.layout';\nimport Dashboard from '~/modules/Dashboard/containers/dashboard.container';\nimport Faq from '~/modules/FAQ/containers/faq.container';\nimport DadosAbertos from '~/modules/DadosAbertos/containers/dadosAbertos.container';\nimport ESic from '~/modules/ESic/containers/esic.container';\nimport Sumario from '~/modules/Sumario/containers/sumario.container';\nimport EstruturaOrganizacional from '~/modules/EstruturaOrganizacional/containers/estruturaOrganizacional.container';\nimport EstruturaOrganizacionalDetalhe from '~/modules/EstruturaOrganizacional/containers/estruturaOrganizacionalDetalhe.container';\nimport NotFound from '~/components/NotFound/NotFound.component';\nimport EmManutencao from '~/components/EmManutencao/EmManutencao.component';\nimport Glossario from '~/modules/Glossario/containers/glossario.container';\nimport ModuloDinamico from '~/modules/Modulos/ModuloDinamico.component';\nimport ModuloFixo from '~/modules/Modulos/ModuloFixo/ModuloFixo.component';\nimport DetalheVisaoAnalitica from '~/modules/DetalheVisaoAnalitica/containers/detalheVisaoAnalitica.container';\nimport BuscaAvancada from '~/modules/BuscaAvancada/containers/buscaAvancada.container';\nimport ItemVisao from '~/modules/Modulos/containers/visaoItem.container';\n\nimport history from '~/services/history';\nimport FaleConosco from '~/modules/FaleConosco/containers/faleConosco';\nimport Autenticidade from '~/modules/Autenticidade/containers/autenticidade';\nimport Estatisticas from '~/modules/Estatisticas/containers/Estatisticas';\nimport Route from './Route';\n\nfunction Routes() {\n  return (\n    <Router history={history}>\n      <DefaultLayout>\n        <Switch>\n          <Route path=\"/\" exact component={Dashboard} hasStatistics />\n          <Route\n            path=\"/estrutura_organizacional/detalhe/:id/\"\n            exact\n            component={EstruturaOrganizacionalDetalhe}\n            hasStatistics\n          />\n          <Route\n            path=\"/estrutura_organizacional\"\n            exact\n            component={EstruturaOrganizacional}\n            hasStatistics\n          />\n          <Route\n            exact\n            path=\"/dinamico/:modulo/:visao\"\n            component={ModuloDinamico}\n            hasStatistics\n          />\n          <Route\n            exact\n            path=\"/dinamico/:modulo/:visao/detalhevisao\"\n            component={DetalheVisaoAnalitica}\n            hasStatistics\n          />\n          <Route\n            exact\n            path=\"/dinamico/:modulo/:visao/busca\"\n            component={BuscaAvancada}\n            hasStatistics\n          />\n          <Route\n            exact\n            path=\"/fixo/:modulo/:visao\"\n            component={ModuloFixo}\n            hasStatistics\n          />\n          <Route\n            exact\n            path=\"/fixo/:modulo/:visao/:itemVisao\"\n            component={ItemVisao}\n            hasStatistics\n          />\n          <Route path=\"/faq\" exact component={Faq} hasStatistics />\n          <Route path=\"/esic\" exact component={ESic} hasStatistics />\n          <Route path=\"/sumario\" exact component={Sumario} hasStatistics />\n          <Route path=\"/glossario\" exact component={Glossario} hasStatistics />\n          <Route\n            path=\"/dados_abertos\"\n            exact\n            component={DadosAbertos}\n            hasStatistics\n          />\n          <Route\n            path=\"/estatisticas\"\n            exact\n            component={Estatisticas}\n            hasStatistics\n          />\n          <Route\n            path=\"/faleconosco\"\n            exact\n            component={FaleConosco}\n            hasStatistics\n          />\n          <Route\n            path=\"/autenticidade\"\n            exact\n            component={Autenticidade}\n            hasStatistics\n          />\n          <Route path=\"/manutencao\" component={EmManutencao} />\n          <Route path=\"/notfound\" component={NotFound} />\n          <Route path=\"*\" component={NotFound} />\n        </Switch>\n      </DefaultLayout>\n    </Router>\n  );\n}\n\nexport default Routes;\n","/* eslint-disable import/no-extraneous-dependencies */\nimport 'react-grid-layout/css/styles.css';\nimport 'react-resizable/css/styles.css';\nimport 'leaflet/dist/leaflet.css';\n\nimport './config/reactotron';\n\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { PersistGate } from 'redux-persist/integration/react';\nimport VLibras from '@djpfs/react-vlibras';\n\nimport GlobalStyle from '~/styles/global';\nimport { Internationalization, Theme, Loader } from '~/components';\n\nimport Routes from './routes';\n\nimport store, { persistor } from './store';\nimport MenuProvider from '~/contexts/menu.context';\nimport { UrlProvider } from '~/contexts/url.context';\n\nfunction App() {\n  return (\n    <Provider store={store}>\n      <PersistGate persistor={persistor}>\n        <Internationalization>\n          <Theme>\n            <UrlProvider>\n              <MenuProvider>\n                <Loader>\n                  <VLibras />\n                  <Routes />\n                  <GlobalStyle />\n                </Loader>\n              </MenuProvider>\n            </UrlProvider>\n          </Theme>\n        </Internationalization>\n      </PersistGate>\n    </Provider>\n  );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\n\nReactDOM.render(<App />, document.getElementById('root'));\n"],"sourceRoot":""}