{"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 \n dispatch(resetFontSizePage())}\n >\n A\n \n \n\n \n dispatch(increaseFontSizePage())}\n >\n A+\n \n \n\n \n dispatch(decreaseFontSizePage())}\n >\n A-\n \n \n \n )}\n \n dispatch(toggleHighContrast())}\n >\n \n \n \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 \n \n {icon}\n \n \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 \n {children}\n \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 => )``;\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 \n \n \n \n \n \n {breadcrumb.breadcrumb.map((item, index) =>\n breadcrumb.breadcrumbUri &&\n index === breadcrumb.breadcrumb.length - 2 ? (\n \n {item}\n \n ) : (\n {item}\n )\n )}\n \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 {\n if (event.keyCode === 13) handleToggle();\n }}\n onClick={handleToggle}\n className=\"collapseButton\"\n collapsed={collapsed}\n />\n ) : (\n {\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 {children}\n ) : (\n {children}\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 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 \n {!moduloFixo && (\n Limite.PDF}\n >\n Limite.PDF && handleLimitMessage(Limite.PDF)\n }\n placement=\"left\"\n >\n
\n \n PDF\n
\n \n \n )}\n\n Limite.CSV}>\n Limite.CSV && handleLimitMessage(Limite.CSV)\n }\n placement=\"left\"\n >\n
\n \n CSV\n
\n \n
\n\n Limite.XLSX}>\n Limite.XLSX && handleLimitMessage(Limite.XLSX)\n }\n placement=\"left\"\n >\n
\n \n XLSX\n
\n \n
\n\n Limite.TXT}>\n Limite.TXT && handleLimitMessage(Limite.TXT)\n }\n placement=\"left\"\n >\n
\n \n TXT\n
\n \n
\n\n {!'RefatorarRotina' && !moduloFixo && (\n Limite.JPG}>\n Limite.JPG && handleLimitMessage(Limite.JPG)\n }\n placement=\"left\"\n >\n
\n \n JPG\n
\n \n
\n )}\n\n Limite.XML}>\n Limite.XML && handleLimitMessage(Limite.XML)\n }\n placement=\"left\"\n >\n
\n \n XML\n
\n \n
\n\n {!semURI && (\n \n \n URI\n \n )}\n
\n );\n\n return (\n \n \n \n \n \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 \n \n \n \n \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 \n \n \n \n {endereco} - {bairro} - {cidade} - {cep}\n \n\n \n {telefone} - {atendimento}\n \n \n \n \n \n \n \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 {children};\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 => )`\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 \n {icon}\n {titulo}\n \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 \n \n \n \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 \n \n \n \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 {children};\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 0} delay={500}>\n {children}\n \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 {\n if (event.keyCode === 13) onClick();\n }}\n onClick={onClick}\n tabIndex={0}\n src={brasao}\n alt=\"Brasão\"\n >\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 \n \n \n \n \n \n {rua}\n \n \n \n \n );\n }\n\n if (data === null) {\n return Localização não encontrada.;\n }\n\n do {\n return Carregando;\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 => ,\n outlined: 'outlined',\n },\n {\n name: 'question',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'clock-circle',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'exclamation',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'message',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'bulb',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'bank',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'calendar',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'file-text',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'file-done',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'flag',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'home',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'mail',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'setting',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'schedule',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'smile',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'tags',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'wallet',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'dollar',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'link',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'shopping-cart',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'shopping',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'team',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'check',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'close',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'warning',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'stop',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'delete',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'area-chart',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'alert',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'api',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'cloud',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'contacts',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'container',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'idcard',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'global',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'safety',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'notification',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'environment',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'ordered-list',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'snippets',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'control',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'compass',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'dashboard',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'api-requests',\n value: style => ,\n filled: 'outlined',\n },\n {\n name: 'project',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'profile',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'info-circle',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'apartment',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'calculator',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'file-search',\n value: style => ,\n outlined: 'outlined',\n },\n {\n name: 'info-circle-filled',\n value: style => ,\n filled: 'filled',\n },\n {\n name: 'youtube',\n value: style => ,\n filled: 'filled',\n },\n {\n name: 'file-pdf',\n value: style => ,\n filled: 'filled',\n },\n {\n name: 'file-img',\n value: style => ,\n filled: 'filled',\n },\n {\n name: 'file-excel',\n value: style => ,\n filled: 'filled',\n },\n {\n name: 'line-chart',\n value: style => ,\n filled: 'outlined',\n },\n {\n name: 'folder-open',\n value: 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 = () => {Titulo};\n\n if (SubItens.length > 0) {\n return (\n \n \n {Icone && iconEnum.find(x => x.name === Icone)?.value()}\n \n \n \n
\n \n
\n \n \n }\n >\n {SubItens.map(subItem => renderMenuItem({ Titulo, ...subItem }))}\n \n );\n }\n return (\n \n 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 \n \n \n );\n }\n\n const handleMouseLeave = () => {\n setOpenKeys([]); // Fecha todos os submenus\n };\n\n return (\n <>\n \n {!collapsed ? (\n \n \n \n ) : null}\n \n {menus && searchResult.length > 0\n ? searchResult.map(renderMenuItem)\n : menus.map(renderMenuItem)}\n \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 \n {children}\n \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 \n {children}\n \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 \n {children}\n \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 {titulo};\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 \n ),\n link: TwitterSocials || null,\n ToolTip: 'Twitter',\n background: '#1DA1F2',\n },\n {\n icon: (\n \n ),\n link: FacebookSocials || null,\n ToolTip: 'Facebook',\n background: '#1877F2',\n },\n {\n icon: (\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 \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 \n ),\n link: YoutubeSocials || null,\n ToolTip: 'Youtube',\n background: '#CD201F',\n },\n {\n icon: (\n \n ),\n link: LinkedInSocials || null,\n ToolTip: 'LinkedIn',\n background: '#0A66C2',\n },\n {\n mail: true,\n icon: ,\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 \n {SocialsList &&\n SocialsList().map(\n item =>\n item.link && (\n \n window.open(item.link, '_blank') : null\n }\n background={item?.background}\n type=\"primary\"\n color=\"#fff\"\n icon={item?.icon}\n />\n \n )\n )}\n \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 \n \n \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 e.stopPropagation()}\n >\n {\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 \n handleSearch(selectedKeys, confirm)}\n icon={}\n size=\"small\"\n style={{\n width: 90,\n }}\n >\n Filtrar\n \n clearFilters && handleReset(clearFilters)}\n size=\"small\"\n style={{\n width: 90,\n }}\n >\n Limpar\n \n \n \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 \n Voltar para Home\n \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 \n {titulo}\n \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 \n {\n if (event.keyCode === 13) onClick();\n }}\n onClick={onClick}\n tabIndex={0}\n src={`data:image/png;base64, ${imagem}`}\n alt={alt}\n >\n \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 \n {\n if (event.keyCode === 13) onClick();\n }}\n onClick={onClick}\n tabIndex={0}\n >\n \n \n \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 \n Voltar\n \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 \n );\n}\nexport default ReCaptcha;","import React from 'react';\nimport { notification } from 'antd';\n\nconst PreserveBreakLine = ({ message }) => (\n
{message}
\n);\n\nfunction showSuccess(successMessage) {\n notification.success({\n message: 'Sucesso',\n description: ,\n });\n}\n\nfunction showWarning(warningMessage) {\n notification.warning({\n message: 'Alerta',\n description: ,\n });\n}\n\nfunction showError(errorMessage) {\n notification.error({\n message: 'Erro',\n description: ,\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 \n ) : (\n \n {isMobile ? (\n \n \n \n \n handleToggle(false)} />\n \n \n ) : (\n \n \n \n \n )}\n\n \n
\n \n \n \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 \n\n \n {imgSecretario != null && (\n \n \n \n )}\n\n \n \n \n Telefone:{' '}\n \n {estruturaOrganizacionalDetalhe.Telefone}\n \n \n\n
\n\n \n E-mail:{' '}\n \n {estruturaOrganizacionalDetalhe.Email}\n \n \n\n
\n\n \n Atendimento ao Publico:{' '}\n \n {estruturaOrganizacionalDetalhe.AtendimentoPublico}\n \n \n\n
\n
\n \n \n\n \n \n \n \n Endereço:{' '}\n \n {estruturaOrganizacionalDetalhe.Logradouro}\n {' '}\n \n \n Nº:{' '}\n \n {estruturaOrganizacionalDetalhe.Numero}\n \n \n\n
\n\n \n Bairro:{' '}\n \n {estruturaOrganizacionalDetalhe.Bairro}\n \n \n\n
\n \n Cidade:{' '}\n \n {estruturaOrganizacionalDetalhe.Cidade}\n \n \n\n
\n \n CEP:{' '}\n \n {estruturaOrganizacionalDetalhe.CEP}\n \n \n\n
\n \n \n \n \n
\n
\n\n \n \n \n \n \n {estruturaOrganizacionalDetalhe.NomeArquivo &&\n estruturaOrganizacionalDetalhe.UrlArquivo && (\n \n \n \n fileManagerPaiDownload(\n estruturaOrganizacionalDetalhe.UrlArquivo\n )\n }\n >\n \n \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 \n \n \n \n {estruturaOrganizacionalDetalhe.NomeArquivo}\n \n \n \n \n }\n />\n \n \n \n \n )}\n \n \n \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 \n {textoBotao}\n \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 \n {alfabeto.map(letra => (\n \n \n \n ))}\n \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 \n \n \n \n {Boolean(glossario?.length) &&\n glossario.map(({ Letra, PalavrasSignificados }) => (\n \n \n {Letra}\n \n\n \n\n {Boolean(PalavrasSignificados?.length) &&\n PalavrasSignificados.map(({ Palavra, Significado }) => (\n \n {Palavra}: {Significado}\n \n ))}\n \n ))}\n \n \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 \n {children}\n \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 && }\n\n {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 \n \n {totalizadores.map(item => (\n \n {item.DescricaoTotalizador}\n \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 \n \n ))}\n \n \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 \n
\n \n {\n return (\n

\n Total: \n {`${new Intl.NumberFormat('pt-BR').format(total)} registros`}\n

\n );\n }}\n onChange={pag => setPage(pag)}\n />\n\n {\n setPage(1);\n setQuantidadeRegistros(qtde);\n }}\n style={{ color: '#000' }}\n >\n {[5, 10, 20, 50, 100].map(quantidade => (\n \n {quantidade} registros\n \n ))}\n \n \n
\n\n
\n {dataUltimaAtualizacao && (\n \n )}\n
\n\n \n {moduloVisao != null && moduloVisao.Valores.length !== 0 && (\n \n )}\n \n
\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 \n {children}\n \n);\n\nexport default ButtonLinkFileManagerLinkAnexo;\n","import React from 'react';\n\nimport { Button, Tooltip, Icons } from '~/components';\n\nconst ButtonDownloadFileManager = ({ onClick }) => (\n \n }\n style={{ margin: '9px' }}\n />\n \n);\n\nexport default ButtonDownloadFileManager;\n","import React from 'react';\n\nimport { Button, Tooltip, Icons } from '~/components';\n\nconst ButtonLinkAnexo = ({ onClick }) => (\n \n }\n style={{ margin: '9px' }}\n />\n \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 {\n if (record?.IsLinkAnexo) {\n window.open(record.LinkAnexo, '_blank');\n } else {\n fileManagerPaiDownload(record.UrlArquivoDigital);\n }\n }}\n >\n {text}\n \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 {\n window.open(record.LinkAnexo, '_blank');\n }}\n />\n ) : (\n {\n fileManagerPaiDownload(record.UrlArquivoDigital);\n }}\n />\n ),\n props: {\n 'data-title': 'Ações',\n },\n };\n },\n },\n ];\n\n return (\n row.IdArquivoDigital || row.NomeArquivoDigital}\n pagination={false}\n scroll={{ x: 650 }}\n columns={columns}\n />\n );\n }\n\n return (\n \n
\n \n {showAnexos()}\n \n
\n
\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 \n window.open(value, '_blank')}\n icon={}\n shape=\"circle\"\n />\n \n );\n };\n\n const BotaoArquivoAnexo = props => {\n return (\n \n }\n shape=\"circle\"\n onClick={() => exibirAnexos(props)}\n />\n \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 50\n ? 'top'\n : 'right'\n }\n >\n {\n redirecionarDetalheVisaoAnalitica(\n valoresChavesPeriodicidade,\n exercicio,\n mes\n );\n }}\n >\n \n \n \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 \n {\n redirecionarRastreabilidade(row, visaoColuna.Rastreabilidade);\n }}\n >\n \n \n \n );\n };\n\n const BotaoRedirecionarVisaoAnalitica = ({ visaoColuna, value }) => {\n return (\n {\n redirecionarVisaoAnalitica(\n visaoColuna.FonteDados,\n value,\n visaoColuna.TipoValor\n );\n }}\n >\n \n \n );\n };\n\n const TextoValorBoolean = ({ value }) => {\n return {value === true ? 'Sim' : 'Não'};\n };\n\n const TextoValorString = ({ value, maxLength }) => {\n return (\n \n {value?.length > maxLength\n ? `${value?.substring(0, maxLength)}...`\n : value}\n \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 \n );\n }\n\n if (visaoColuna.Chave && configuracao.Tipo === TIPO_VISAO.AGRUPAMENTO) {\n return (\n \n );\n }\n\n if (\n visaoColuna.Rastreabilidade?.FonteDadosColunaLink ===\n visaoColuna.FonteDados\n ) {\n return (\n \n );\n }\n\n if (visaoColuna.TipoValor === TIPO_COLUNA.LINK) {\n return ;\n }\n\n if (visaoColuna.TipoValor === TIPO_COLUNA.BOOLEANO) {\n return ;\n }\n }\n\n return ;\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 row.Id}\n pagination={false}\n scroll={{ x: 1100 }}\n onChange={handleTableChange}\n footer={() => (\n \n )}\n >\n {configuracao.VisaoColunas?.filter(\n visaoColuna => !visaoColuna?.OcultoGridPortal\n )?.map(visaoColuna => (\n (\n \n )}\n render={(value, row) => {\n return {\n children: (\n \n ),\n props: {\n 'data-title': visaoColuna.NomeColuna,\n },\n };\n }}\n />\n ))}\n\n {possuiArquivoDigital && configuracao.Tipo === TIPO_VISAO.ANALITICO ? (\n {\n return {\n children: ,\n props: {\n 'data-title': 'Anexos',\n },\n };\n }}\n />\n ) : (\n ''\n )}\n \n {filtroPesquisaArquivosDigitais ? (\n {\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 \n \n \n 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 \n \n\n {isFiltroAvancadoHabilitado &&\n configuracao?.Tipo === TIPO_VISAO.ANALITICO && (\n \n \n }\n onClick={() => {\n empilhaUrl(window.location.hash.split('#')[1]);\n history.push({ pathname: `${configuracao.Uri}/busca` });\n }}\n >\n Busca Avançada\n \n \n \n )}\n\n {configuracao?.Tipo === TIPO_VISAO.AGRUPAMENTO ||\n configuracao?.Tipo === TIPO_VISAO.ANALITICO ? (\n <>\n \n \n }\n onClick={() => restaurarOrdenacao()}\n >\n Restaurar Ordenação\n \n \n \n \n ) : (\n \n )}\n\n {periodicidadeSelecionada && (\n <>\n \n \n {\n setPeriocidadeSelecionada(value);\n setPagina(1);\n }}\n style={{ width: '100%', color: '#000' }}\n >\n {listaPeriodicidades?.length &&\n listaPeriodicidades.map(value => (\n \n {value.Descricao}\n \n ))}\n \n \n \n\n \n \n {\n setPeriodoSelecionado(value);\n setPagina(1);\n }}\n style={{ width: '100%', color: '#000' }}\n >\n {listaPeriodos?.length &&\n listaPeriodos.map(p => (\n \n {p.Descricao}\n \n ))}\n \n \n \n\n \n \n setExercicioSelecionado(value)}\n style={{ width: '100%', color: '#000' }}\n >\n {listaExercicios.map(exerc => (\n \n {exerc.Exercicio}\n \n ))}\n \n \n \n \n )}\n \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 \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
\n\n {totalizadores?.length > 0 && (\n \n )}\n\n \n\n {Grid}\n\n \n \n \n \n );\n}\n\nconst ModuloDinamico = ({ history, match }) => {\n return (\n \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 \n \n {item.title}\n \n )\n :\n (<>\n \n \n {item.title}\n \n {item.ExibeDetalhes && (\n \n \n \n \n \n )}\n \n )\n }\n >\n {loop(item.children)}\n \n );\n }\n const fileExtension = item?.Link?.split('.', 2)[1].toLowerCase();\n if (item.Externo) {\n return (\n x.name === `file-${ChooseIconFile(fileExtension)}`\n )\n ?.value({ fontSize: '20px' })\n }\n title={\n <>\n \n \n fileManagerPaiDownload(item.Link)}\n role=\"link\"\n tabIndex=\"0\"\n aria-hidden=\"true\"\n >\n {item.title}\n - Baixar Arquivo\n \n \n \n \n }\n />\n );\n }\n return (\n \n fileManagerPaiDownload(item.Arquivo.Url)\n } />\n \n ) : (\n \n )\n }\n title={\n <>\n \n \n \n \n {item.title}\n \n \n \n \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 (\n toggleExpandNode(record.key)}\n style={{ display: 'inline-block', width: '100%', height: '100%' }}\n >\n {record.title}\n \n )}\n >\n {loop(treeData)}\n \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 \n onSearch(busca)}\n onChange={e => onChange(e)}\n allowClear\n value={searchValue}\n />\n {informacao?.Texto && (\n <>\n \n \n )}\n {treeView?.length > 0 && (\n <>\n \n \n \n \n )}\n \n \n \n \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 \n \n \n \n {` ${previous} `}\n \n \n\n \n \n {`${next} `}\n \n \n \n \n \n \n \n {`${current}`}\n \n \n \n \n ) : (\n <>\n \n \n \n \n {` ${previous} `}\n \n \n \n \n {`${current}`}\n \n \n \n \n {`${next} `}\n \n \n \n \n \n )}\n\n \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 \n
\n
\n \n {Descricao}:\n \n
\n
\n \n {typeof Valor === 'boolean' ? (\n \n ) : (\n Valor\n )}\n \n
\n
\n
\n );\n };\n\n const Grid = ({ tabela }) => {\n switch (tabela.Tipo) {\n case TIPO_DETALHE.CAMPO:\n return (\n \n \n \n {tabela.Grupo.Colunas.map((coluna, index) => (\n \n ))}\n \n \n \n );\n case TIPO_DETALHE.TOTAL:\n return (\n \n \n \n \n \n {tabela.Coluna.Descricao}:\n \n \n {tabela.Coluna.Valor}\n \n \n \n \n \n );\n case TIPO_DETALHE.CAMPO_TOTAL:\n return (\n <>\n \n \n \n {tabela.Grupo.Colunas.map((coluna, index) => (\n \n ))}\n \n \n \n {tabela.Coluna.Descricao}:\n \n\n \n {tabela.Coluna.Valor}\n \n \n \n \n \n );\n default:\n return <>;\n }\n };\n\n return (\n <>\n {detalheVisaoAnalitica.Dados.map((tabela, index) => (\n \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 \n \n Ações\n }\n >\n {anexos.length > 0\n ? anexos.map(arquivo => (\n \n \n {\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 \n \n \n {arquivo?.IsLinkAnexo ? (\n {\n window.open(arquivo.LinkAnexo, '_blank');\n }}\n />\n ) : (\n {\n fileManagerPaiDownload(arquivo.UrlArquivoDigital);\n }}\n />\n )}\n \n \n ))\n : 'Não há anexos disponíveis.'}\n \n \n \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 \n \n {detalheVisaoAnalitica.Descricao}\n \n\n \n {detalheVisaoAnalitica.Titulo}\n \n\n {detalheVisaoAnalitica.Dados && detalheVisaoAnalitica.Dados.length > 0 ? (\n <>\n \n \n \n \n \n \n \n {dataUltimaAtualizacao && (\n \n )}\n \n \n \n \n \n \n \n \n \n ) : (\n detalheVisaoAnalitica.Dados &&\n detalheVisaoAnalitica.Dados.length === 0 && (\n \n Não há dados para este período.\n \n )\n )}\n\n \n \n \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 \n {\n setValoresDoInputComoObjeto(coluna, event);\n }}\n >\n \n {getFieldDecorator(coluna.FonteDados)(\n \n )}\n \n \n \n );\n }\n\n function renderizaInputNumero(coluna) {\n return (\n \n {\n setValoresDoInputComoObjeto(coluna, event);\n }}\n >\n \n {getFieldDecorator(coluna.FonteDados)(\n \n )}\n \n \n \n );\n }\n\n function renderizaInputData(coluna) {\n return (\n \n \n \n {getFieldDecorator(coluna.FonteDados)(\n {\n setValoresDoInputComoObjeto(coluna, dateString);\n }}\n />\n )}\n \n \n \n );\n }\n\n function renderizaSelect(coluna) {\n return (\n \n \n \n {getFieldDecorator(coluna.FonteDados)(\n {\n setValoresDoInputComoObjeto(coluna, value);\n }}\n placeholder={coluna.NomePadrao}\n >\n Nenhum Selecionado\n {coluna.ColunaValores?.map(valoresSelect => (\n \n {valoresSelect.Valor}\n \n ))}\n \n )}\n \n \n \n );\n }\n\n function renderizaSelectBooleano(coluna) {\n return (\n \n \n \n {getFieldDecorator(coluna.FonteDados)(\n {\n setValoresDoInputComoObjeto(coluna, value);\n }}\n placeholder={coluna.NomePadrao}\n >\n Nenhum Selecionado\n Sim\n Não\n \n )}\n \n \n \n );\n }\n\n function transformaColunaEmInput(filtrosModulo) {\n setFiltrosTransformados([]);\n filtrosModulo.Grupos.forEach(grupo => {\n setFiltrosTransformados(arrayFiltros => [\n ...arrayFiltros,\n \n {grupo.Nome}\n ,\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 \n {nomePadrao}:\n removeFiltro(event, filtro.Campo)}\n color={corTema}\n >\n {valor}\n \n \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 \n Filtros Aplicados:\n {tags}\n \n \n \n removeTodosOsFiltros()}\n >\n Limpar\n Filtros\n \n \n \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 \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 \n {filtros.length === 0 ? (\n \n
\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n Filtrar\n \n \n \n \n
\n
\n ) : (\n <>\n )}\n\n {totalizadores?.length > 0 && (\n \n )}\n\n \n\n {Grid}\n\n {filtros.length > 0 ? (\n \n \n \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 {visaoItem?.Titulo}\n \n {visaoItem?.NomeArquivo && (\n \n \n fileManagerPaiDownload(visaoItem?.UrlArquivo)}>\n \n \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 \n \n \n \n {visaoItem?.NomeArquivo}\n \n \n \n }\n />\n \n \n \n \n )}\n \n \n \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 \n \n \n \n
\n \n \n \n \n {getFieldDecorator('Nome', {\n rules: [\n {\n required: true,\n message: 'Campo obrigatório.',\n },\n ],\n })(\n \n )}\n \n \n \n \n \n \n \n \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 \n )}\n \n \n \n \n \n \n \n \n {getFieldDecorator('Assunto', {\n rules: [\n {\n required: true,\n message: 'Campo obrigatório.',\n },\n ],\n })(\n \n )}\n \n \n \n \n \n \n \n \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 \n )}\n \n \n \n \n\n \n \n \n \n \n \n Enviar\n \n \n \n \n \n \n \n \n
\n
\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 ;\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 \n Documento dentro do Prazo de Validade\n \n );\n if (dadosValidacao?.Status === STATUS_AUTENTICIDADE.FORA_PRAZO)\n return (\n \n Documento com Prazo Vencido\n \n );\n\n return null;\n }\n\n return (\n <>\n \n \n \n Status:\n {renderTagFromStatusAutenticidade()}\n \n \n Informações do Documento\n \n \n \n Nome:\n {dadosValidacao?.NomeArquivo}\n \n \n Data/Hora:\n {dadosValidacao?.DataHoraExportacao}\n \n \n Válido até:\n {dadosValidacao?.DataHoraValidade}\n \n \n \n {aviso && (\n \n }\n />\n \n )}\n \n\n \n \n \n \n {dadosValidacao?.TituloRelatorio}\n \n \n \n \n window.open(dadosValidacao?.UrlExportacao, '_blank')\n }\n >\n \n \n \n \n \n \n\n {dadosValidacao.Status === STATUS_AUTENTICIDADE.DENTRO_PRAZO && (\n \n \n \n \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 \n {dadosValidacao?.NomeArquivo}\n \n \n \n \n fileManagerPaiDownload(dadosValidacao?.NomeArquivo)\n }\n >\n \n \n \n \n \n \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 \n {!hasSubmitted ? (\n \n {configuracoes?.Informacao && (\n \n \n \n )}\n \n \n
\n \n \n \n \n {getFieldDecorator('CodigoValidacao', {\n rules: [\n {\n required: true,\n message: 'Campo obrigatório.',\n },\n ],\n })(\n \n )}\n \n \n \n \n\n \n \n \n \n \n \n Validar\n \n \n \n \n \n
\n
\n ) : (\n \n )}\n {hasSubmitted && (\n \n \n \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 ;\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 \n {titulo}\n \n }\n extra={\n showEyeButton ? (\n \n \n \n \n \n ) : (\n ''\n )\n }\n size=\"small\"\n >\n \n \n \n \n \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
\n \n
\n ) : (\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
\n 'Acessos'}\n legendMaxRow={5}\n legendItemMarginBottom={8}\n legendItemSpacing={8}\n tooltipFormatter={tooltipFormatter}\n />\n
\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 \n \n \n Exercício\n \n \n \n {exercicios.map(ano => (\n \n {ano}\n \n ))}\n \n \n \n \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 \n \n handleChangeExercicio(value)}\n exercicios={exercicios}\n exercicio={exercicioSelcionado}\n />\n \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 {\n if (hasStatistics) handleStatistics(props.location.pathname);\n return (\n <>\n \n \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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default 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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\n\nReactDOM.render(, document.getElementById('root'));\n"],"sourceRoot":""}