{"version":3,"sources":["assets/Stolt.png","services/api.ts","styles/media.ts","components/Menu/styles.ts","components/Menu/index.tsx","components/Header/styles.ts","components/Header/index.tsx","components/Anp/styles.ts","components/Anp/index.tsx","components/Tooltip/styles.ts","components/Tooltip/index.tsx","components/Input/styles.ts","components/Input/index.tsx","components/ToastContainer/styles.ts","components/ToastContainer/Toast/styles.ts","components/ToastContainer/Toast/index.tsx","components/ToastContainer/index.tsx","context/Toast.tsx","utils/getValidationErrors.ts","components/Button/styles.ts","utils/reactSvgComponent.ts","components/Button/index.tsx","components/Select/styles.ts","components/Select/index.tsx","components/Textarea/styles.ts","components/Textarea/index.tsx","components/FaleConosco/styles.ts","components/FaleConosco/index.tsx","components/Foot/styles.ts","components/Foot/index.tsx","components/Checkbox/styles.ts","components/Checkbox/index.tsx","components/Radio/styles.ts","components/Radio/index.tsx","components/FormRequisicao/styles.ts","components/FormRequisicao/index.tsx","components/Fotos/styles.ts","components/Fotos/index.tsx","components/Historico/styles.ts","components/Historico/index.tsx","context/index.tsx","pages/assets/balanca2.jpg","pages/assets/comochegar.jpg","pages/assets/DJI_0293.jpg","pages/assets/DJI_0507.jpg","pages/assets/estrategia.jpg","pages/assets/fachada.jpg","pages/assets/faleconosco.jpg","pages/assets/historico.jpg","pages/assets/Img187.jpg","pages/assets/img188.jpg","pages/assets/Img200.jpg","pages/assets/informacoes.jpg","pages/assets/vista.jpg","pages/Internal/styles.ts","pages/Internal/index.tsx","components/Slide/assets/back1.jpg","components/Slide/assets/back2.jpg","components/Slide/assets/back3.jpg","components/Slide/styles.ts","components/Slide/index.tsx","pages/Main/styles.ts","pages/Main/index.tsx","utils/useGaTracker.ts","Routes/index.tsx","styles/global.ts","App.tsx","index.tsx"],"names":["api","axios","create","baseURL","headers","media","generateMedia","xs","sm","md","lg","xl","xxl","Navigation","styled","nav","props","isVisivel","css","between","lessThan","greaterThan","isFocus","position","Menu","useState","dataMenu","setDataMenu","focus","setIsFocus","fnWebstolt","useCallback","window","location","href","fnFocus","event","target","offsetLeft","fnBlur","fnClick","setVisivel","getMenu","a","get","response","menu","data","useEffect","Object","keys","map","idx","sub","length","to","link","title","titulo","className","onClick","onMouseEnter","onMouseLeave","key","Math","random","rel","type","Container","header","Cookie","div","isClosed","Content","Head","Linkedin","Header","visivel","notificacao","setNotificacao","useCookies","cookies","setCookie","mostraMenu","e","preventDefault","fechaCookie","d","Date","setTime","getTime","path","expires","notification","size","src","logoStolt","alt","ampliar","keyframes","Titulo","isSelected","Descricao","Item","Anp","dados","setDados","selected","setSelected","getContent","id","offsetTop","height","idElement","elemento","document","getElementById","setTimeout","scrollIntoView","behavior","block","inline","value","index","ReactHtmlParser","conteudo","span","Tooltip","children","isErrors","isFilled","Erro","Input","name","rest","useField","fieldName","defaultValue","error","registerField","inputRef","useRef","setIsFilled","fnFilled","current","ref","onFocus","onBlur","toastTypeVariations","info","success","animated","descricao","icones","Toast","mensagem","style","removeToast","useToast","timer","clearTimeout","undefined","description","ToastContainer","messages","msgComTransicao","useTransition","message","from","right","opacity","enter","leave","styles","item","ToastContext","createContext","ToastProvider","setMessage","addToast","toast","v4","state","filter","Provider","context","useContext","Error","getValidationErrors","err","validacao","inner","forEach","erro","Component","button","Button","Select","animacao","section","isSend","AnimationContent","shade","Atencao","Aguarde","FaleConosco","formRef","enviado","SetEnviado","fnEnviaDados","tx_site","tx_assunto","tx_mensagem","tx_nome","tx_email","tx_telefone","tx_empresa","tx_departamento","VAR_SUBMIT","formData","FormData","append","post","rs","fnSubimt","scroll","top","left","setErrors","Yup","shape","required","email","validate","abortEarly","reset","erros","onSubmit","placeholder","aria-autocomplete","autoComplete","maxLength","Textarea","footer","Termos","Foot","Checkbox","valor","currentTarget","checked","clearValue","onChange","htmlFor","Radio","options","getValue","setValue","option","Recebimento","p","CheckboxGroup","FormRequisicao","selectedFile","setSelectedFile","changeHandler","files","tx_cpf","tx_identificacao","tx_option","tx_tipo_recebimento","tx_foto","matches","min","nome","opcoes","i","campo","getFieldRef","accept","Fotos","fotos","values","element","codigo","foto","Ano","h4","Mes","positionLeft","positionTop","Meses","Periodo","Historico","historico","setHistorico","getHistorico","anp","getBoundingClientRect","clickInvalido","meses","useMemo","reverse","ano","mes","ix","onTouchEnd","arquivo","arquivo_xls","fill","AppProvider","Section","BreadCrumb","BreadCrumbContainer","Imagem","Internal","useParams","rota","origem","rotaFixa","push","pai","arrRotaFixa","slides","dataContent","setDataContent","param","dadosHome","pagina","replaceAll","paginas","padrao","stolthaven","servicos","oterminal","gestaointegradasgi","faleconosco","ideation","comochegar","historicodemovimentacoes","maisinformacoes","estrategia","vistaaereastolthaven","findIndex","tituloCadastro","fixoPai","fixo","console","log","transitions","config","duration","backgroundImage","Fragment","indexOf","Slide","bg1","bg2","bg3","set","qtd","t","setInterval","Bloco","FaAngleDoubleRight","encodeURIComponent","renderToStaticMarkup","createElement","Main","useGaTracker","useLocation","initialized","setInitialized","includes","ReactGA","initialize","pageview","pathname","search","Routes","exact","component","createGlobalStyle","App","basename","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.c16e6432.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/Stolt.4660a207.png\";","import axios from 'axios'\n\nconst api = axios.create({\n baseURL: 'https://www.stolthaven.com.br/json',\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n})\n\nexport default api\n","import {generateMedia} from 'styled-media-query'\n\nexport const BREAKPOINT_XS = 480\nexport const BREAKPOINT_SM = 576\nexport const BREAKPOINT_MD = 768\nexport const BREAKPOINT_LG = 992\nexport const BREAKPOINT_XL = 1200\nexport const BREAKPOINT_XXL = 1400\n\nexport const media = generateMedia({\n xs: `${BREAKPOINT_XS}px`,\n sm: `${BREAKPOINT_SM}px`,\n md: `${BREAKPOINT_MD}px`,\n lg: `${BREAKPOINT_LG}px`,\n xl: `${BREAKPOINT_XL}px`,\n xxl: `${BREAKPOINT_XXL}px`,\n})\n","import styled, {css} from 'styled-components'\nimport {media} from '../../styles/media'\n\ninterface Props {\n isFocus: boolean\n position: number\n isVisivel: boolean\n}\n\nexport const Navigation = styled.nav`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n margin-top: 15px;\n transition: all 0.7s ease-in-out;\n z-index: 10;\n margin-left: 0px;\n\n ${props =>\n props.isVisivel &&\n css`\n margin-left: 0px;\n `}\n\n ${props => media.between('xs', 'lg')`\n margin-left: ${!props.isVisivel ? '-2000px' : '0px'};\n background: ${props.isVisivel ? '#041e42' : 'none'};\n margin-top: 20px;\n z-index:200;\n `}\n\n ${props => media.lessThan('xs')`\n margin-left: ${!props.isVisivel ? '-2000px' : '0px'};\n background: ${props.isVisivel ? '#041e42' : 'none'};\n margin-top: 20px;\n z-index:200;\n `}\n\n \n \n li + li {\n margin-left: 30px;\n }\n\n .icone {\n display: none;\n padding-right: 6px;\n }\n\n ${media.between('xs', 'lg')`\n flex-direction: column;\n align-items: stretch;\n\n ul {\n display: block;\n width: 100%; \n }\n ul li {\n display: block;\n width: 100%;\n border-top: 1px solid #fff; \n }\n li + li {\n margin-left: 0px !important;\n }\n .icone {\n display: inline-block;\n }\n `}\n\n ${media.lessThan('xs')`\n flex-direction: column;\n align-items: stretch;\n\n ul {\n display: block;\n width: 100%;\n }\n ul li {\n display: block;\n width: 100%;\n border-top: 1px solid #fff;\n }\n li + li {\n margin-left: 0px !important;\n }\n .icone {\n display: inline-block;\n }\n `}\n\n .menu {\n display: inline-block;\n height: 45px;\n line-height: 45px;\n color: #fff;\n transition: all 0.5s;\n\n ${media.between('xs', 'lg')`\n padding-left: 10px; \n `}\n\n ${media.lessThan('xs')`\n padding-left: 10px; \n `}\n\n ${media.lessThan('xl')`\n display: block;\n width: 100%;\n height: 35px;\n line-height: 35px; \n `}\n\n &::after {\n transform-origin: 0% 50%;\n content: '';\n display: block;\n border-bottom: solid 3px #f2a900;\n transform: scaleX(0);\n transition: all 0.5s ease-in-out;\n padding-bottom: 5px;\n }\n\n &:hover {\n color: #f2a900 !important;\n transform: translateY(-5px);\n\n &::after {\n transform: scaleX(1);\n }\n }\n }\n\n .dropdown {\n z-index: 568;\n display: block;\n\n ${media.between('xs', 'lg')`\n padding-left: 15px;\n `}\n\n ${media.lessThan('xs')`\n padding-left: 15px;\n `}\n\n &::after {\n transform-origin: 0% 50%;\n }\n &:hover {\n & > a {\n color: #ff9900;\n transform: translateY(-5px);\n &::after {\n transform: scaleX(1);\n }\n }\n &::after {\n transform: scaleX(1);\n }\n .dropdown-content {\n opacity: 1;\n visibility: visible;\n\n ${props => media.greaterThan('xs')`\n opacity: ${!props.isFocus ? 0 : 1};\n visibility: ${!props.isFocus ? 'hidden' : 'visible'}; \n `}\n }\n }\n }\n\n .dropdown-content {\n opacity: 0;\n visibility: hidden;\n position: absolute;\n background-color: rgba(255, 255, 255, 0.78);\n width: 100%;\n min-height: 350px;\n z-index: 560;\n left: 0;\n transition: visibility 0s, opacity 0.5s linear;\n display: flex;\n flex-direction: column;\n margin-top: 3px;\n\n ${props => media.greaterThan('xl')`\n padding-left: ${props.isFocus && props.position}px;\n `}\n\n ${media.between('xs', 'lg')`\n opacity: 1;\n visibility: visible;\n position: relative;\n min-height: 37px !important;\n background:none;\n padding-left: 100px; \n `}\n\n ${media.lessThan('xs')`\n opacity: 1;\n visibility: visible;\n position: relative;\n min-height: 37px !important;\n background:none; \n `}\n\n \n\n a {\n color: #000;\n text-decoration: none;\n display: block;\n height: 33px;\n margin-left: 0px;\n position: relative;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n ${media.between('xs', 'lg')` \n color: #fff;\n line-height: 33px; \n `}\n\n ${media.lessThan('xs')` \n color: #fff;\n line-height: 33px; \n `}\n\n \n\n \n\n &:first-child {\n margin-top: 15px;\n }\n\n ${media.lessThan('xl')`\n margin-left: 20px;\n\n &:first-child {\n margin-top: 0px;\n }\n `}\n\n &::after {\n content: '';\n display: block;\n border-bottom: solid 3px #f2a900;\n transform: scaleX(0);\n transition: transform 1s ease-in-out;\n transform-origin: 0% 50%;\n }\n\n &:hover {\n transition: color 1s;\n color: #007dba !important;\n\n &::after {\n transform: scaleX(1);\n }\n }\n }\n }\n\n button {\n background: #f2a900;\n color: #041e42;\n padding: 10px;\n border-radius: 5px;\n transition: all 1s ease-in-out;\n font-size: 16px;\n\n ${media.lessThan('xl')` \n margin-top:20px;\n margin-bottom:20px;\n \n `}\n\n &:hover {\n background: #fff;\n color: #f2a900;\n }\n }\n`\n","import React, {Dispatch, SetStateAction, useCallback, useEffect, useState} from 'react'\nimport {FaAngleRight} from 'react-icons/fa'\nimport {Link} from 'react-router-dom'\nimport api from '../../services/api'\nimport {Navigation} from './styles'\n\ninterface ItemMenu {\n focus: boolean\n position: number\n}\n\ninterface SubMenu {\n titulo: string\n link: string\n}\n\ninterface ItemDados {\n titulo: string\n link: string\n sub: Array\n}\n\ninterface Dados {\n [menu: string]: ItemDados\n /* [menu: string]: Array<{\n titulo: string\n link: string\n sub: []\n }> */\n // [menu: string]: ItemDados -> funfa ok\n // [menu: string]: Record -> funfa ok\n //menu: [Record]\n //Record\n //Array\n //menu: Record\n}\n\ninterface VisivelMenu {\n isVisivel: boolean\n setVisivel: Dispatch>\n}\n\nconst Menu: React.FC = isVisivel => {\n const [dataMenu, setDataMenu] = useState()\n\n const [isFocus, setIsFocus] = useState({focus: false, position: 0})\n\n const fnWebstolt = useCallback(() => {\n window.location.href = '/webstolt'\n }, [])\n\n const fnFocus = useCallback(\n event => {\n setIsFocus({focus: true, position: event.target.offsetLeft})\n //console.log(event.target.children)\n //console.log(event)\n //console.log(event.target.offsetLeft)\n },\n [setIsFocus],\n )\n\n const fnBlur = useCallback(() => {\n setIsFocus({focus: false, position: 0})\n //console.log('fez blur')\n }, [setIsFocus])\n\n const fnClick = useCallback(() => {\n isVisivel.setVisivel(false)\n setIsFocus({focus: false, position: 0})\n //console.log('fez click menu')\n }, [isVisivel, setIsFocus])\n\n const getMenu = useCallback(async () => {\n try {\n const response = await api.get('menu.php')\n const menu = response.data.menu\n setDataMenu(menu)\n } catch (e) {\n //console.log(e)\n }\n }, [setDataMenu])\n\n useEffect(() => {\n /* const getMenu = async () => {\n try {\n const response = await api.get('menu.php')\n const menu = response.data.menu\n setDataMenu(menu)\n } catch (e) {\n console.log(e)\n }\n } */\n\n getMenu()\n }, [getMenu])\n\n return (\n \n
    \n {dataMenu &&\n Object.keys(dataMenu).map(idx =>\n dataMenu[idx].sub.length === 0 ? (\n
  • \n \n {dataMenu[idx].titulo}\n \n
  • \n ) : (\n
  • \n
    \n \n {dataMenu[idx].titulo}\n \n
    \n {dataMenu[idx].sub.length > 0 &&\n dataMenu[idx].sub.map(key => (\n \n \n {key.titulo}\n \n ))}\n
    \n
    \n
  • \n ),\n )}\n\n
  • \n \n Trabalhe Conosco\n \n
  • \n
  • \n \n Como Chegar\n \n
  • \n
  • \n \n Fale Conosco\n \n
  • \n
\n \n
\n )\n}\nexport default Menu\n","import styled, {css} from 'styled-components'\nimport {media} from '../../styles/media'\n\ninterface Props {\n isClosed: boolean\n}\n\nexport const Container = styled.header`\n display: flex;\n width: 100%;\n height: 143px;\n background: #041e42;\n color: #fff;\n justify-content: center;\n border-bottom: 3px solid #fff;\n\n img {\n max-width: 300px;\n }\n\n a {\n text-decoration: none;\n }\n\n li {\n display: inline-block;\n font-size: 1em;\n width: auto;\n z-index: 650;\n }\n`\n\nexport const Cookie = styled.div`\n position: absolute;\n z-index: 90;\n width: 100%;\n min-height: 220px;\n background: #f2a900;\n top: 142px;\n display: flex;\n justify-content: center;\n color: #000000;\n padding-bottom: 20px;\n\n ${props =>\n props.isClosed &&\n css`\n display: none;\n `}\n\n div {\n padding: 10px;\n }\n\n h1 {\n margin: 20px 0px 10px 0px;\n color: #041e42 !important;\n font-size: 20px;\n }\n\n p {\n margin: 10px 0px 0px 0px !important;\n line-height: 30px;\n }\n\n p a {\n text-decoration: underline;\n }\n\n button {\n background: #f2a900;\n border-radius: 8px;\n border: 2px solid #000;\n padding: 10px;\n margin-top: 20px;\n width: fit-content;\n }\n`\n\nexport const Content = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n\n .hamburguer {\n opacity: 0;\n position: absolute;\n right: 0px;\n top: 5px;\n color: #fff;\n visibility: hidden;\n\n ${media.lessThan('lg')`\n opacity: 1;\n visibility: visible;\n `};\n }\n\n ${media.greaterThan('sm')`\n max-width:540px\n `}\n ${media.greaterThan('md')`\n max-width:720px\n `}\n ${media.greaterThan('lg')`\n max-width:1190px\n `}\n ${media.greaterThan('xl')`\n max-width: 1180px\n `}\n ${media.greaterThan('xxl')`\n max-width: 1320px\n `}\n`\n\nexport const Head = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n flex-direction: row;\n\n ${media.lessThan('sm')`\n flex-direction:column;\n justify-content: left;\n `};\n`\n\nexport const Linkedin = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n padding-top: 13px;\n\n ${media.lessThan('sm')` \n justify-content: flex-end;\n \n `};\n\n a {\n color: #fff;\n }\n\n a:first-child {\n text-indent: -4000px;\n overflow: hidden;\n width: 50px;\n height: 30px;\n position: relative;\n\n ${media.lessThan('sm')` \n position: absolute;\n top: 70px;\n right: 5px;\n `};\n\n svg {\n top: 0px;\n right: 0px;\n position: absolute;\n }\n }\n .phone {\n height: 35px;\n display: flex;\n align-items: center;\n\n ${media.lessThan('sm')` \n position: absolute;\n top: 70px; \n left: 5px;\n `};\n\n svg {\n margin-right: 10px;\n }\n }\n`\n","import React, {useCallback, useEffect, useState} from 'react'\nimport {useCookies} from 'react-cookie'\nimport {BiMenu} from 'react-icons/bi'\nimport {FaLinkedin, FaPhoneAlt} from 'react-icons/fa'\nimport logoStolt from '../../assets/Stolt.png'\nimport Menu from '../Menu'\nimport {Container, Content, Cookie, Head, Linkedin} from './styles'\n\nconst Header: React.FC = () => {\n const [visivel, setVisivel] = useState(false)\n const [notificacao, setNotificacao] = useState(false)\n const [cookies, setCookie] = useCookies(['notification'])\n\n const mostraMenu = useCallback(\n e => {\n e.preventDefault()\n const menu = !visivel ? true : false\n setVisivel(menu)\n },\n [visivel],\n )\n\n const fechaCookie = useCallback(() => {\n setNotificacao(true)\n\n const d = new Date()\n\n d.setTime(d.getTime() + 8 * 60 * 60 * 1000)\n\n const expires = d\n\n setCookie('notification', true, {path: '/', expires})\n }, [setNotificacao, setCookie])\n\n useEffect(() => {\n if (cookies.notification) setNotificacao(true)\n }, [cookies.notification])\n\n return (\n \n \n mostraMenu(e)}>\n \n \n \n \n {`Stolthaven\n \n \n \n \n LinkedIn Stolthaven Santos\n \n \n \n +55 (13) 3295-9000\n \n \n \n \n \n \n \n

Política de cookies

\n

Para otimizar sua experiência durante a navegação, fazemos uso de cookies. Ao continuar no site, consideramos que você está de acordo com nossa Política de cookies.

\n

\n Consulte a{' '}\n \n Aviso de Privacidade\n {' '}\n para obter mais informações.\n

\n \n
\n
\n \n )\n}\nexport default Header\n","import styled, {css, keyframes} from 'styled-components'\n\ninterface Props {\n isSelected: boolean\n}\n\nconst ampliar = keyframes`\n from {\n left: 50px;\n }\n\n to {\n left: 0; \n }\n`\n\nexport const Container = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n`\n\nexport const Titulo = styled.div`\n width: 100%;\n padding: 15px;\n background: #041e42;\n color: #fff;\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n color: #f2a900;\n }\n\n .up {\n display: none;\n\n ${props =>\n props.isSelected &&\n css`\n display: inline-block;\n `}\n }\n\n .down {\n ${props =>\n props.isSelected &&\n css`\n display: none;\n `}\n }\n`\n\nexport const Descricao = styled.div`\n width: 100%;\n height: 0;\n overflow: hidden;\n padding: 20px 20px 5px 20px;\n position: relative;\n opacity: 0;\n transition: all 1s ease;\n\n ${props =>\n props.isSelected &&\n css`\n opacity: 1;\n height: auto;\n animation: ${ampliar} 1s forwards;\n `}\n`\n\nexport const Item = styled.div`\n width: 100%;\n`\n","import React, {useCallback, useEffect, useState} from 'react'\nimport ReactHtmlParser from 'react-html-parser'\nimport {FaArrowCircleDown, FaArrowCircleUp} from 'react-icons/fa'\nimport api from '../../services/api'\nimport {Container, Descricao, Item, Titulo} from './styles'\n\ninterface Info {\n id: number\n titulo: string\n conteudo: string\n}\n\ninterface Dados {\n [anp: string]: Info\n}\n\ninterface SelectedProp {\n selected: number\n height: number\n}\n\nconst Anp: React.FC = () => {\n const [dados, setDados] = useState()\n const [selected, setSelected] = useState()\n\n const getContent = useCallback(async () => {\n const response = await api.get(`anp.php`)\n const dados = response.data\n\n setDados(dados)\n }, [])\n\n const fnClick = useCallback((id: number, event) => {\n const position = event.target.offsetTop\n const selected = {selected: id, height: position}\n setSelected(selected)\n const idElement = event.target.id\n const elemento = document.getElementById(idElement)\n\n if (elemento) {\n setTimeout(function () {\n elemento.scrollIntoView({behavior: 'smooth', block: 'start', inline: 'start'})\n }, 200)\n }\n //console.log('ob position ================ ' + idElement)\n /* window.scroll({\n top: position,\n left: 0,\n behavior: 'smooth',\n }) */\n }, [])\n\n useEffect(() => {\n getContent()\n }, [getContent])\n\n return (\n \n {dados &&\n Object.keys(dados).map((value, index) => (\n \n {\n fnClick(dados[index].id, event)\n }}\n isSelected={selected?.selected == dados[index].id ? true : false}\n id={`titulo-${index}`}>\n {dados[index].titulo}\n \n \n \n \n {ReactHtmlParser(dados[index].conteudo)}\n \n \n ))}\n \n )\n}\n\nexport default Anp\n","import styled from 'styled-components'\n\nexport const Container = styled.span`\n position: relative;\n width: auto !important;\n\n span {\n position: absolute;\n background: #f2a900;\n padding: 8px;\n border-radius: 4px;\n font-size: 14px;\n font-weight: 500;\n opacity: 0;\n transition: opacity 0.2s;\n bottom: calc(100% + 12px);\n width: 160px;\n left: 50%;\n transform: translateX(-50%);\n color: #312e38;\n visibility: hidden;\n\n &::before {\n content: '';\n border-style: solid;\n border-width: 6px 6px 0 6px;\n border-color: #f2a900 transparent;\n top: 100%;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n &:hover span {\n visibility: visible;\n opacity: 1;\n }\n`\n","import React from 'react'\nimport {Container} from './styles'\n\ninterface PropsTool {\n title: string\n className?: string\n}\n\nconst Tooltip: React.FC = ({title, className = '', children}) => (\n \n {children}\n {title}\n \n)\n\nexport default Tooltip\n","import styled, {css} from 'styled-components'\nimport Tooltip from '../Tooltip'\n\ninterface Props {\n isFocus: boolean\n isFilled: boolean\n isErrors: boolean\n}\n\nexport const Container = styled.div`\n color: #666360;\n background: #eeeeee;\n border-radius: 15px;\n border: 2px solid #e0e0e0;\n padding: 16px;\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n\n ${props =>\n props.isErrors &&\n css`\n border-color: #cc0000;\n `}\n\n ${props =>\n props.isFocus &&\n css`\n border-color: #041e42;\n color: #041e42;\n `}\n\n ${props =>\n props.isFilled &&\n css`\n color: #041e42 !important;\n font-weight: 700;\n `}\n \n\n & + div {\n margin-top: 20px;\n }\n\n input {\n flex: 1;\n background-color: #232129;\n background: transparent;\n border: 0;\n color: #424242;\n\n &::placeholder {\n color: #041e42;\n }\n }\n\n /*input[type='file'] {\n opacity: 0;\n }*/\n\n input[type='file']::file-selector-button {\n opacity: 0;\n }\n\n svg {\n margin-right: 2px;\n }\n`\n\nexport const Erro = styled(Tooltip)`\n height: 20px;\n color: #cc0000;\n margin-left: 0px;\n width: 30px !important;\n\n svg {\n margin-right: 0px;\n }\n\n span {\n background: #cc0000;\n color: #fff;\n\n &::before {\n border-color: #cc0000 transparent;\n }\n }\n`\nexport const Titulo = styled.span>`\n width: 0px;\n height: 18px;\n opacity: 0;\n display: flex;\n overflow: hidden;\n\n ${props =>\n props.isFilled &&\n css`\n display: block;\n opacity: 1;\n width: 20%;\n transition: all 2s ease;\n `}\n\n ${props =>\n !props.isFilled &&\n css`\n opacity: 0;\n width: 0px;\n transition: all 2s ease;\n `}\n\n ${props =>\n props.isErrors &&\n css`\n color: red;\n `};\n`\n","import {useField} from '@unform/core'\nimport React, {InputHTMLAttributes, useCallback, useEffect, useRef, useState} from 'react'\nimport {FiAlertCircle} from 'react-icons/fi'\nimport {Container, Erro, Titulo} from './styles'\n\ninterface PropsInput extends InputHTMLAttributes {\n name: string\n}\n\nconst Input: React.FC = ({name, ...rest}) => {\n const {fieldName, defaultValue, error, registerField} = useField(name)\n const inputRef = useRef(null)\n const [isFocus, setIsFocus] = useState(false)\n const [isFilled, setIsFilled] = useState(false)\n\n const fnFocus = useCallback(() => {\n setIsFocus(true)\n }, [])\n\n const fnFilled = useCallback(() => {\n setIsFilled(!!inputRef.current?.value)\n setIsFocus(false)\n }, [])\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n })\n }, [fieldName, registerField])\n\n return (\n \n {inputRef.current?.type == 'file' ? (\n {inputRef.current?.title}\n ) : (\n \n {inputRef.current?.title}\n \n )}\n \n {error && (\n \n \n \n )}\n \n )\n}\n\nexport default Input\n","import styled from 'styled-components'\n\nexport const Container = styled.div`\n position: absolute;\n right: 0;\n top: 250px;\n padding: 30px;\n overflow: hidden;\n`\n","import {animated} from 'react-spring'\nimport styled, {css} from 'styled-components'\n\ninterface Tipos {\n descricao: string\n type?: 'info' | 'success' | 'error'\n}\nconst toastTypeVariations = {\n info: css`\n background: #ebf8ff;\n color: #3172b7;\n `,\n\n success: css`\n background: #e6fffa;\n color: #2e656a;\n `,\n\n error: css`\n background: #fddede;\n color: #c53030;\n `,\n}\nexport const Container = styled(animated.div)`\n width: 360px !important;\n position: relative;\n padding: 16px 30px 16px 16px;\n border-radius: 10px;\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);\n display: flex;\n & + div {\n margin-top: 8px;\n }\n > svg {\n margin-right: 6px;\n }\n ${props => toastTypeVariations[props.type || 'info']}\n div {\n flex: 1;\n p {\n margin-top: 4px;\n font-size: 14px;\n opacity: 0.8;\n line-height: 20px;\n }\n }\n button {\n position: absolute;\n right: 16px;\n top: 19px;\n opacity: 0.6;\n border: 0;\n background: transparent;\n color: inherit;\n }\n ${props =>\n props.descricao != '' &&\n css`\n align-items: center;\n svg {\n margin-top: 0;\n }\n `}\n`\n","import React, {useEffect} from 'react'\nimport ReactHtmlParser from 'react-html-parser'\nimport {FiAlertOctagon, FiCheckCircle, FiInfo, FiXCircle} from 'react-icons/fi'\nimport {ToastMessage, useToast} from '../../../context/Toast'\nimport {Container} from './styles'\n\ninterface Mensagem {\n mensagem: ToastMessage\n style: Record\n}\n\nconst icones = {\n info: ,\n success: ,\n error: ,\n}\n\nconst Toast: React.FC = ({mensagem, style}) => {\n const {removeToast} = useToast()\n\n useEffect(() => {\n const timer = setTimeout(() => {\n removeToast(mensagem.id)\n }, 10000)\n\n return () => {\n clearTimeout(timer)\n }\n }, [removeToast, mensagem.id])\n\n return (\n \n {icones[mensagem.type || 'info']}\n
\n {mensagem.title}\n {mensagem.description &&

{ReactHtmlParser(mensagem.description)}

}\n
\n \n
\n )\n}\n\nexport default Toast\n","import React from 'react'\nimport {useTransition} from 'react-spring'\nimport {ToastMessage} from '../../context/Toast'\nimport {Container} from './styles'\nimport Toast from './Toast'\n\ninterface Messages {\n messages: ToastMessage[]\n}\n\nconst ToastContainer: React.FC = ({messages}) => {\n const msgComTransicao = useTransition(messages, {\n keys: message => message.id,\n from: {right: '-120%', opacity: 0},\n enter: {right: '0%', opacity: 1},\n leave: {right: '-120%', opacity: 1},\n })\n\n return (\n \n {msgComTransicao((styles, item) => (\n \n ))}\n \n )\n}\n\nexport default ToastContainer\n","import React, {createContext, useCallback, useContext, useState} from 'react'\nimport {v4} from 'uuid'\nimport ToastContainer from '../components/ToastContainer'\n\nexport interface ToastMessage {\n id: string\n title: string\n description?: string\n type?: 'info' | 'error' | 'success'\n}\n\ninterface Dados {\n addToast(messages: Omit): void\n removeToast(id: string): void\n}\n\nexport const ToastContext = createContext({} as Dados)\n\nexport const ToastProvider: React.FC = ({children}) => {\n const [messages, setMessage] = useState([])\n\n const addToast = useCallback(({type, title, description}: Omit) => {\n const id = v4()\n\n const toast = {\n type,\n id,\n title,\n description,\n }\n\n setMessage(message => [...message, toast])\n }, [])\n\n const removeToast = useCallback((id: string) => {\n setMessage(state => state.filter(message => message.id !== id))\n }, [])\n\n return (\n \n {children}\n \n \n )\n}\n\nexport function useToast(): Dados {\n const context = useContext(ToastContext)\n\n if (!context) {\n throw new Error('useAuth must be used within an ToastProvider')\n }\n\n return context\n}\n","import {ValidationError} from 'yup'\n\ninterface retorno {\n [chave: string]: string\n}\n\nexport default function getValidationErrors(err: ValidationError): retorno {\n const validacao: retorno = {}\n\n err.inner.forEach(erro => {\n if (erro.path) validacao[erro.path] = erro.message\n })\n\n return validacao\n}\n","import styled from 'styled-components'\nimport {media} from '../../styles/media'\n\nexport const Container = styled.button`\n background: #041e42;\n border-radius: 10px;\n padding: 16px;\n color: #fff;\n font-weight: 500;\n margin-top: 16px;\n transition: background-color 0.2s;\n\n & :hover {\n background: #f2a900 !important;\n }\n\n ${media.lessThan('lg')`\n width: 100%;\n `}\n`\n","import {createElement} from 'react'\nimport {renderToStaticMarkup} from 'react-dom/server'\nimport {IconType} from 'react-icons'\n\nexport const reactSvgComponent = (Component: IconType): string => `data:image/svg+xml,${encodeURIComponent(renderToStaticMarkup(createElement(Component)))}`\n","import React, {ButtonHTMLAttributes} from 'react'\nimport {Container} from './styles'\n\ntype ButtonProps = ButtonHTMLAttributes\n\nconst Button: React.FC = ({children, ...rest}) => (\n \n {children}\n \n)\n\nexport default Button\n","import styled, {css} from 'styled-components'\nimport Tooltip from '../Tooltip'\n\ninterface Props {\n isFocus: boolean\n isFilled: boolean\n isErrors: boolean\n}\n\nexport const Container = styled.div`\n color: #666360;\n background: #eeeeee;\n border-radius: 15px;\n border: 2px solid #e0e0e0;\n padding: 16px;\n width: 100%;\n display: flex;\n align-items: center;\n\n ${props =>\n props.isErrors &&\n css`\n border-color: #cc0000;\n `}\n\n ${props =>\n props.isFocus &&\n css`\n border-color: #041e42;\n color: #041e42;\n `}\n\n ${props =>\n props.isFilled &&\n css`\n color: #ff9900;\n `}\n \n\n & + div {\n margin-top: 20px;\n }\n\n select {\n flex: 1;\n background-color: #232129;\n background: transparent;\n background-color: transparent;\n appearance: none;\n border: 0;\n color: #424242;\n\n &::placeholder {\n color: #041e42;\n }\n }\n svg {\n margin-right: 16px;\n }\n`\n\nexport const Erro = styled(Tooltip)`\n height: 20px;\n color: #cc0000;\n margin-left: 16px;\n\n svg {\n margin-right: 0px;\n }\n\n span {\n background: #cc0000;\n color: #fff;\n\n &::before {\n border-color: #cc0000 transparent;\n }\n }\n`\nexport const Titulo = styled.span>`\n width: 0px;\n height: 18px;\n opacity: 0;\n display: flex;\n overflow: hidden;\n\n ${props =>\n props.isFilled &&\n css`\n color: #333;\n display: block;\n opacity: 1;\n width: 20%;\n transition: all 2s ease;\n `}\n\n ${props =>\n !props.isFilled &&\n css`\n opacity: 0;\n width: 0px;\n transition: all 2s ease;\n `}\n\n ${props =>\n props.isErrors &&\n css`\n color: red;\n `};\n`\n","import {useField} from '@unform/core'\nimport React, {InputHTMLAttributes, useCallback, useEffect, useRef, useState} from 'react'\nimport {FiAlertCircle} from 'react-icons/fi'\nimport {Container, Erro} from './styles'\n\ninterface PropsInput extends InputHTMLAttributes {\n name: string\n}\n\nconst Select: React.FC = ({name, children}) => {\n const {fieldName, error, registerField} = useField(name)\n const inputRef = useRef(null)\n const [isFocus, setIsFocus] = useState(false)\n const [isFilled, setIsFilled] = useState(false)\n\n const fnFocus = useCallback(() => {\n setIsFocus(true)\n }, [])\n\n const fnFilled = useCallback(() => {\n setIsFilled(!!inputRef.current?.value)\n setIsFocus(false)\n }, [])\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n })\n }, [fieldName, registerField])\n\n return (\n \n \n {error && (\n \n \n \n )}\n \n )\n}\n\nexport default Select\n","import styled, {css} from 'styled-components'\nimport Tooltip from '../Tooltip'\n\ninterface Props {\n isFocus: boolean\n isFilled: boolean\n isErrors: boolean\n}\n\nexport const Container = styled.div`\n color: #666360;\n background: #eeeeee;\n border-radius: 15px;\n border: 2px solid #e0e0e0;\n padding: 16px;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n ${props =>\n props.isErrors &&\n css`\n border-color: #cc0000;\n `}\n\n ${props =>\n props.isFocus &&\n css`\n border-color: #041e42;\n color: #041e42;\n `}\n\n ${props =>\n props.isFilled &&\n css`\n color: #041e42 !important;\n font-weight: 700;\n `}\n \n\n & + div {\n margin-top: 20px;\n }\n\n textarea {\n background-color: #232129;\n background: transparent;\n background-color: transparent;\n appearance: none;\n border: 0;\n color: #424242;\n resize: vertical;\n min-height: 150px;\n width: 100%;\n\n &::placeholder {\n color: #041e42;\n }\n }\n svg {\n margin-right: 16px;\n }\n`\n\nexport const Erro = styled(Tooltip)`\n height: 20px;\n color: #cc0000;\n margin-left: 16px;\n\n svg {\n margin-right: 0px;\n }\n\n span {\n background: #cc0000;\n color: #fff;\n\n &::before {\n border-color: #cc0000 transparent;\n }\n }\n`\nexport const Titulo = styled.div>`\n width: 100%;\n height: 0px;\n opacity: 0;\n display: block;\n overflow: hidden;\n text-align: left;\n\n ${props =>\n props.isFilled &&\n css`\n display: block;\n opacity: 1;\n height: 32px;\n transition: all 2s ease;\n `}\n\n ${props =>\n !props.isFilled &&\n css`\n opacity: 0;\n height: 0px;\n transition: all 2s ease;\n `}\n\n ${props =>\n props.isErrors &&\n css`\n color: red;\n `};\n`\n","import {useField} from '@unform/core'\nimport React, {InputHTMLAttributes, useCallback, useEffect, useRef, useState} from 'react'\nimport {FiAlertCircle} from 'react-icons/fi'\nimport {Container, Erro, Titulo} from './styles'\n\ninterface PropsInput extends InputHTMLAttributes {\n name: string\n}\n\nconst Select: React.FC = ({name, ...rest}) => {\n const {fieldName, defaultValue, error, registerField} = useField(name)\n const inputRef = useRef(null)\n const [isFocus, setIsFocus] = useState(false)\n const [isFilled, setIsFilled] = useState(false)\n\n const fnFocus = useCallback(() => {\n setIsFocus(true)\n }, [])\n\n const fnFilled = useCallback(() => {\n setIsFilled(!!inputRef.current?.value)\n setIsFocus(false)\n }, [])\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n })\n }, [fieldName, registerField])\n\n return (\n \n \n {inputRef.current?.title}\n \n \n {error && (\n \n \n \n )}\n \n )\n}\n\nexport default Select\n","import {shade} from 'polished'\nimport styled, {css, keyframes} from 'styled-components'\n\ninterface Enviado {\n isSend: boolean\n}\n\nconst animacao = keyframes`from {\n opacity: 0;\n transform: translateX(50px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }`\n\nexport const Container = styled.section`\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n\n div {\n width: auto !important;\n }\n\n button {\n background: #041e42;\n transition: background-color 0.2s;\n\n ${props =>\n props.isSend &&\n css`\n opacity: 0;\n visibility: hidden;\n `}\n }\n\n button:hover {\n background: #f2a900 !important;\n }\n\n li {\n list-style-position: inside;\n }\n\n h1 {\n color: #041e42;\n font-size: 26px;\n }\n`\n\nexport const AnimationContent = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 480px;\n align-items: left;\n animation: ${animacao} 1s;\n margin: 20px 0px;\n padding: 0px;\n\n form {\n width: 100%;\n max-width: 480px;\n\n h1 {\n margin-bottom: 24px;\n }\n\n a {\n color: #f4ede8;\n display: block;\n margin-top: 24px;\n text-decoration: none;\n transition: color 0.2s;\n\n &:hover {\n color: ${shade(0.2, '#f4ede8')};\n }\n }\n }\n\n > a {\n color: #ff9000;\n display: block;\n margin-top: 24px;\n text-decoration: none;\n transition: color 0.2s;\n display: flex;\n align-items: center;\n\n &:hover {\n color: ${shade(0.2, '#ff9000')};\n }\n\n svg {\n margin-right: 16px;\n }\n }\n`\n\nexport const Atencao = styled.div`\n display: flex;\n width: 80%;\n padding: 20px;\n background: #e0e0e0;\n line-height: 30px;\n border-radius: 20px;\n`\n\nexport const Aguarde = styled.div`\n position: absolute;\n width: 560px !important;\n right: 0;\n top: 250px;\n padding: 30px;\n overflow: hidden;\n opacity: 0;\n visibility: hidden;\n\n ${props =>\n props.isSend &&\n css`\n opacity: 1;\n visibility: visible;\n `}\n\n div {\n width: 560px !important;\n position: relative;\n padding: 16px 30px 16px 16px;\n border-radius: 10px;\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);\n background: #ffcdd2;\n color: #ff0000;\n font-weight: 800;\n text-align: center;\n }\n`\n","import {FormHandles} from '@unform/core'\nimport {Form} from '@unform/web'\nimport React, {useCallback, useRef, useState} from 'react'\nimport * as Yup from 'yup'\nimport Input from '../../components/Input'\nimport {useToast} from '../../context/Toast'\nimport api from '../../services/api'\nimport getValidationErrors from '../../utils/getValidationErrors'\nimport Button from '../Button'\nimport Select from '../Select'\nimport Textarea from '../Textarea'\nimport {Aguarde, AnimationContent, Atencao, Container} from './styles'\n\ninterface Campos {\n tx_site: string\n tx_assunto: string\n tx_mensagem: string\n tx_nome: string\n tx_email: string\n tx_telefone: string\n tx_empresa: string\n tx_departamento: string\n}\n\ninterface Enviado {\n enviado: boolean\n}\n\nconst FaleConosco: React.FC = () => {\n const formRef = useRef(null)\n const {addToast} = useToast()\n const [enviado, SetEnviado] = useState({enviado: false})\n\n const fnEnviaDados = useCallback(async ({tx_site, tx_assunto, tx_mensagem, tx_nome, tx_email, tx_telefone, tx_empresa, tx_departamento}: Campos) => {\n const dados: Record = {tx_site, tx_assunto, tx_mensagem, tx_nome, tx_email, tx_telefone, tx_empresa, tx_departamento, VAR_SUBMIT: 'CONTATO'}\n\n /*const campos = Object.keys(dados)\n .map((key, index) => `${key}=${encodeURIComponent(dados[key])}`)\n .join('&') */\n\n const formData = new FormData()\n\n Object.keys(dados).forEach(key => formData.append(key, dados[key]))\n\n const rs = await api.post('contato.php', formData)\n\n return rs\n }, [])\n\n const fnSubimt = useCallback(\n async (data: Campos) => {\n try {\n SetEnviado({enviado: true})\n\n window.scroll({\n top: 750,\n left: 0,\n behavior: 'smooth',\n })\n\n formRef.current?.setErrors({})\n\n const validacao = Yup.object().shape({\n tx_email: Yup.string().required('E-mail obrigatório').email('Digite um e-mail válido'),\n tx_nome: Yup.string().required('Nome obrigatório'),\n tx_departamento: Yup.string().required('Departamento obrigatório'),\n })\n\n await validacao.validate(data, {abortEarly: false})\n\n const dados = {\n tx_site: data.tx_site,\n tx_assunto: data.tx_assunto,\n tx_mensagem: data.tx_mensagem,\n tx_nome: data.tx_nome,\n tx_email: data.tx_email,\n tx_telefone: data.tx_telefone,\n tx_empresa: data.tx_empresa,\n tx_departamento: data.tx_departamento,\n }\n\n const rs = await fnEnviaDados(dados)\n\n SetEnviado({enviado: false})\n\n if (rs.data.erro) {\n addToast({\n type: 'error',\n title: 'Erro ao enviar as informações',\n description: rs.data.mensagem,\n })\n } else {\n addToast({\n type: 'success',\n title: 'Dados enviados com sucesso',\n description: rs.data.mensagem,\n })\n\n formRef.current?.reset()\n }\n } catch (err) {\n // if (err instanceof Yup.ValidationError)\n // eslint-disable-next-line\n //console.log(err)\n\n if (err instanceof Yup.ValidationError) {\n const erros = getValidationErrors(err)\n // formRef.current?.setErrors({ nome: 'errrroooooo' });\n formRef.current?.setErrors(erros)\n\n SetEnviado({enviado: false})\n\n addToast({\n type: 'error',\n title: 'Erro ao enviar as informações',\n description: 'Verifique os dados',\n })\n }\n }\n\n // eslint-disable-next-line\n //console.log(data);\n },\n [addToast, SetEnviado, fnEnviaDados],\n )\n\n return (\n \n

Fale Conosco

\n

Para entrar em contato conosco, preencha o formulário abaixo:

\n

Antes de enviar sua mensagem, observe as funções de cada departamento. A correta seleção da área, agilizará as respostas.

\n\n \n
Por favor, aguarde...
\n
\n\n
    \n
  • \n ATENDIMENTO À CLIENTES – Para dúvidas, problemas ou sugestões de clientes da Stolthaven.\n
  • \n
  • \n COMERCIAL – Locação e serviços de armazenagem de granéis líquidos.\n
  • \n
  • \n GERÊNCIA E MARKETING – Atendimento à solicitações em geral, veículos de imprensa, e promotores de ações de marketing e endomarketing.\n
  • \n
  • \n OPERAÇÕES – Informações técnicas sobre armazenagem de líquidos.\n
  • \n
  • \n SHEQ – Assuntos de segurança e o meio ambiente.\n
  • \n
  • \n FINANCEIRO – Informações sobre a nossa área contábil.\n
  • \n
  • \n FORNECEDORES – Para fornecer produtos ou serviços à Stolthaven.\n
  • \n
\n\n \n
\n \n\n \n\n \n\n \n\n \n\n

Com qual departamento deseja falar? (obrigatório)

\n\n \n\n \n\n \n\n \n
\n
\n\n A coleta dos dados pessoais de pessoas físicas, solicitados no formulário acima, visa, exclusivamente, permitir à equipe da Stolthaven, fazer contato com a pessoa responsável pelo preenchimento do respectivo formulário, a qual manifestou interesse no estabelecimento de comunicação com a empresa.\n
\n )\n}\n\nexport default FaleConosco\n","import styled from 'styled-components'\nimport {media} from '../../styles/media'\n\nexport const Container = styled.footer`\n display: flex;\n width: 100%;\n min-height: 35px;\n color: #fff;\n background: #f2a900;\n justify-content: center;\n margin-top: 20px;\n\n ${media.lessThan('sm')` \n height: auto; \n padding:20px !important; \n `}\n`\nexport const Content = styled.div`\n display: flex;\n min-height: 35px;\n justify-content: space-between;\n width: 1320px;\n align-items: center;\n\n ${media.lessThan('sm')`\n flex-direction: column;\n height: auto; align-items: start; \n `}\n\n ${media.greaterThan('sm')`\n max-width:540px;\n padding:20px 0px 20px 0px !important;\n `}\n ${media.greaterThan('md')`\n max-width:720px\n `}\n ${media.greaterThan('lg')`\n max-width:1190px\n `}\n ${media.greaterThan('xl')`\n max-width: 1180px\n `}\n ${media.greaterThan('xxl')`\n max-width: 1320px\n `}\n`\n\nexport const Termos = styled.div`\n display: flex;\n justify-content: space-between;\n width: auto;\n min-height: 20px;\n line-height: 20px;\n\n ${media.lessThan('sm')`\n flex-direction: column;\n `}\n\n a {\n color: #fff;\n transition: color 2s;\n display: block;\n ${media.lessThan('sm')`\n margin-top:10px;\n `}\n }\n\n a + a {\n margin-left: 15px;\n border-left: 2px solid #fff;\n padding-left: 15px;\n\n ${media.lessThan('sm')`\n border-left:none;\n margin-left: 0px;\n padding-left: 0px;\n `}\n }\n\n & :hover {\n color: #041e42;\n }\n`\n","import React from 'react'\nimport {Link} from 'react-router-dom'\nimport {Container, Content, Termos} from './styles'\n\nconst Foot: React.FC = () => {\n return (\n \n \n
© 2021 Stolthaven Santos
\n \n Aviso de Privacidade\n Termos de uso\n Requisição do Titular dos Dados Pessoais\n \n
\n
\n )\n}\n\nexport default Foot\n","import styled, {css} from 'styled-components'\nimport Tooltip from '../Tooltip'\n\ninterface Props {\n isFilled: string\n isErrors: boolean\n value: string\n}\n\nexport const Container = styled.div`\n color: #666360;\n border-bottom: 2px solid #e0e0e0;\n padding: 16px;\n width: 100%;\n display: flex;\n align-items: center;\n margin-top: 10px !important;\n\n ${props =>\n props.isErrors &&\n css`\n border-color: #cc0000;\n `}\n\n ${props =>\n props.isFilled == props.value &&\n css`\n color: #666 !important;\n font-weight: 700 !important;\n `}\n \n\n \n input {\n background-color: #232129;\n background: transparent;\n border: 0;\n color: #424242;\n\n &::placeholder {\n color: #041e42;\n }\n }\n\n label {\n cursor: pointer;\n }\n\n input[type='file']::file-selector-button {\n opacity: 0;\n }\n\n svg {\n margin-right: 2px;\n }\n`\n\nexport const Erro = styled(Tooltip)`\n height: 20px;\n color: #cc0000;\n margin-left: 0px;\n width: 30px !important;\n\n svg {\n margin-right: 0px;\n }\n\n span {\n background: #cc0000;\n color: #fff;\n\n &::before {\n border-color: #cc0000 transparent;\n }\n }\n`\nexport const Titulo = styled.span`\n min-height: 18px;\n display: flex;\n overflow: hidden;\n margin-left: 15px;\n\n ${props =>\n props.isErrors &&\n css`\n color: red;\n `};\n`\n","import {useField} from '@unform/core'\nimport React, {InputHTMLAttributes, useCallback, useEffect, useRef, useState} from 'react'\nimport {FiAlertCircle} from 'react-icons/fi'\nimport {Container, Erro, Titulo} from './styles'\n\ninterface PropsInput extends InputHTMLAttributes {\n name: string\n}\n\nconst Checkbox: React.FC = ({name, value, ...rest}) => {\n const {fieldName, error, registerField} = useField(name)\n const inputRef = useRef(null)\n const [isFilled, setIsFilled] = useState('')\n\n const fnFilled = useCallback(event => {\n const valor = event.currentTarget.checked ? event.currentTarget.value : ''\n setIsFilled(valor)\n }, [])\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n path: 'value',\n clearValue: ref => {\n /**\n * If you want to change the default checked for false or true,\n * you can do so here. In this example, when resetting the form,\n * the checkbox goes back to its initial state.\n */\n ref.checked = false\n setIsFilled('')\n },\n })\n }, [fieldName, registerField])\n\n return (\n \n fnFilled(event)} />\n\n \n \n \n\n {error && (\n \n \n \n )}\n \n )\n}\n\nexport default Checkbox\n","import styled, {css} from 'styled-components'\nimport Tooltip from '../Tooltip'\n\ninterface Props {\n isFilled: string\n isErrors: boolean\n value: string\n}\n\nexport const Container = styled.div`\n color: #666360;\n background: #eeeeee;\n border-radius: 15px;\n border: 2px solid #e0e0e0;\n padding: 16px;\n width: 100%;\n display: flex;\n align-items: center;\n\n ${props =>\n props.isErrors &&\n css`\n border-color: #cc0000;\n `}\n\n ${props =>\n props.isFilled == props.value &&\n css`\n color: #041e42 !important;\n font-weight: 700;\n border-color: #041e42;\n `}\n \n\n & + div {\n margin-top: 20px;\n }\n\n input {\n background-color: #232129;\n background: transparent;\n color: #424242;\n margin-right: 20px;\n\n &::placeholder {\n color: #041e42;\n }\n }\n\n label {\n cursor: pointer;\n }\n\n svg {\n margin-right: 2px;\n }\n`\n\nexport const Erro = styled(Tooltip)`\n height: 20px;\n color: #cc0000;\n margin-left: 0px;\n width: 30px !important;\n\n svg {\n margin-right: 0px;\n }\n\n span {\n background: #cc0000;\n color: #fff;\n\n &::before {\n border-color: #cc0000 transparent;\n }\n }\n`\nexport const Titulo = styled.span>`\n height: 18px;\n display: flex;\n overflow: hidden;\n\n ${props =>\n props.isErrors &&\n css`\n color: red;\n `};\n`\n","import {useField} from '@unform/core'\nimport React, {InputHTMLAttributes, useCallback, useEffect, useRef, useState} from 'react'\nimport {FiAlertCircle} from 'react-icons/fi'\nimport {Container, Erro, Titulo} from './styles'\n\ninterface OptionsData {\n id: number\n option: string\n}\n\ninterface PropsInput extends InputHTMLAttributes {\n name: string\n options: OptionsData[]\n}\n\nconst Radio: React.FC = ({name, options, ...rest}) => {\n const {fieldName, error, registerField} = useField(name)\n const inputRef = useRef(null)\n\n const [isFilled, setIsFilled] = useState('Por meio eletrônico')\n\n const fnClick = useCallback(event => {\n const valor = event.currentTarget.value\n\n setIsFilled(valor)\n }, [])\n\n useEffect(() => {\n registerField({\n name: fieldName,\n ref: inputRef.current,\n getValue: () => {\n return isFilled\n },\n setValue: (ref, value) => {\n ref.checked = value\n },\n clearValue: () => {\n /**\n * If you want to change the default checked for false or true,\n * you can do so here. In this example, when resetting the form,\n * the checkbox goes back to its initial state.\n */\n setIsFilled('Por meio eletrônico')\n },\n })\n }, [fieldName, registerField, isFilled])\n\n return (\n <>\n {options.map(value => (\n \n fnClick(event)} checked={isFilled == value.option} />\n \n \n \n\n {error && (\n \n \n \n )}\n \n ))}\n \n )\n}\n\nexport default Radio\n","import {shade} from 'polished'\nimport styled, {css, keyframes} from 'styled-components'\n\ninterface Enviado {\n isSend: boolean\n}\n\nconst animacao = keyframes`from {\n opacity: 0;\n transform: translateX(50px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }`\n\nexport const Container = styled.section`\n display: flex;\n flex-direction: column;\n width: 100%;\n position: relative;\n\n div {\n width: auto !important;\n }\n\n button {\n background: #041e42;\n transition: background-color 0.2s;\n\n ${props =>\n props.isSend &&\n css`\n opacity: 0;\n visibility: hidden;\n `}\n }\n\n button:hover {\n background: #f2a900 !important;\n }\n\n li {\n list-style-position: inside;\n }\n\n h1 {\n color: #041e42;\n font-size: 26px;\n }\n`\n\nexport const AnimationContent = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 480px;\n align-items: left;\n animation: ${animacao} 1s;\n margin: 20px 0px;\n padding: 0px;\n\n form {\n width: 100%;\n max-width: 480px;\n\n h1 {\n margin-bottom: 24px;\n }\n\n h5 {\n margin: 30px 0px 30px 0px;\n font-size: 16px;\n color: #333;\n }\n\n a {\n color: #f4ede8;\n display: block;\n margin-top: 24px;\n text-decoration: none;\n transition: color 0.2s;\n\n &:hover {\n color: ${shade(0.2, '#f4ede8')};\n }\n }\n }\n\n > a {\n color: #ff9000;\n display: block;\n margin-top: 24px;\n text-decoration: none;\n transition: color 0.2s;\n display: flex;\n align-items: center;\n\n &:hover {\n color: ${shade(0.2, '#ff9000')};\n }\n\n svg {\n margin-right: 16px;\n }\n }\n`\n\nexport const Atencao = styled.div`\n display: flex;\n width: 80%;\n padding: 20px;\n background: #e0e0e0;\n line-height: 30px;\n border-radius: 20px;\n`\n\nexport const Aguarde = styled.div`\n position: absolute;\n width: 560px !important;\n right: 0;\n top: 250px;\n padding: 30px;\n overflow: hidden;\n opacity: 0;\n visibility: hidden;\n\n ${props =>\n props.isSend &&\n css`\n opacity: 1;\n visibility: visible;\n `}\n\n div {\n width: 560px !important;\n position: relative;\n padding: 16px 30px 16px 16px;\n border-radius: 10px;\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);\n background: #ffcdd2;\n color: #ff0000;\n font-weight: 800;\n text-align: center;\n }\n`\n\nexport const Recebimento = styled.p`\n color: #000;\n font-weight: 600;\n text-decoration: underline;\n`\n\nexport const CheckboxGroup = styled.div`\n margin-bottom: 50px;\n`\n","import {FormHandles} from '@unform/core'\nimport {Form} from '@unform/web'\nimport React, {useCallback, useRef, useState} from 'react'\nimport * as Yup from 'yup'\nimport Input from '../../components/Input'\nimport {useToast} from '../../context/Toast'\nimport api from '../../services/api'\nimport getValidationErrors from '../../utils/getValidationErrors'\nimport Button from '../Button'\nimport Checkbox from '../Checkbox'\nimport Radio from '../Radio'\nimport Select from '../Select'\nimport Textarea from '../Textarea'\nimport {Aguarde, AnimationContent, CheckboxGroup, Container, Recebimento} from './styles'\n\ninterface Campos {\n tx_cpf: string\n tx_mensagem: string\n tx_nome: string\n tx_email: string\n tx_telefone: string\n tx_empresa: string\n tx_identificacao: string\n tx_option: string\n tx_tipo_recebimento: string\n}\n\ninterface Enviado {\n enviado: boolean\n}\n\nconst FormRequisicao: React.FC = () => {\n const formRef = useRef(null)\n const {addToast} = useToast()\n const [enviado, SetEnviado] = useState({enviado: false})\n const [selectedFile, setSelectedFile] = useState()\n\n const changeHandler = useCallback(\n event => {\n setSelectedFile(event.target.files[0])\n },\n [setSelectedFile],\n )\n\n const fnEnviaDados = useCallback(\n async ({tx_cpf, tx_mensagem, tx_nome, tx_email, tx_telefone, tx_empresa, tx_identificacao, tx_option, tx_tipo_recebimento}: Campos) => {\n const dados: Record = {tx_cpf, tx_mensagem, tx_nome, tx_email, tx_telefone, tx_empresa, tx_identificacao, tx_option, tx_tipo_recebimento, VAR_SUBMIT: 'CONTATO'}\n\n /*const campos = Object.keys(dados)\n .map((key, index) => `${key}=${encodeURIComponent(dados[key])}`)\n .join('&') */\n\n const formData = new FormData()\n\n if (selectedFile) {\n formData.append('tx_foto', selectedFile)\n }\n\n Object.keys(dados).forEach(key => formData.append(key, dados[key]))\n\n const rs = await api.post('formRequisicao.php', formData)\n\n return rs\n },\n [selectedFile],\n )\n\n const fnSubimt = useCallback(\n async (data: Campos) => {\n try {\n SetEnviado({enviado: true})\n\n window.scroll({\n top: 750,\n left: 0,\n behavior: 'smooth',\n })\n\n formRef.current?.setErrors({})\n\n const validacao = Yup.object().shape({\n tx_email: Yup.string().required('E-mail obrigatório').email('Digite um e-mail válido'),\n tx_nome: Yup.string().required('Nome obrigatório'),\n tx_telefone: Yup.string().required('Telefone obrigatório'),\n tx_foto: Yup.string().required('Foto obrigatória'),\n tx_cpf: Yup.string()\n .matches(/^[0-9]+$/, 'Somente números')\n .min(11, 'Deve conter 11 números')\n .required('CPF obrigatório'),\n tx_identificacao: Yup.string().required('Identificação obrigatório'),\n })\n\n if (selectedFile) {\n if (selectedFile.size > 2000000) {\n addToast({\n type: 'error',\n title: 'Erro ao enviar as informações',\n description: 'Verifique o tamanho do arquivo',\n })\n formRef.current?.setErrors({nome: 'Verifique o tamanho do arquivo'})\n throw 'Verifique o tamanho do arquivo'\n }\n }\n\n const dados = {\n tx_cpf: data.tx_cpf,\n tx_mensagem: data.tx_mensagem,\n tx_nome: data.tx_nome,\n tx_email: data.tx_email,\n tx_telefone: data.tx_telefone,\n tx_empresa: data.tx_empresa,\n tx_identificacao: data.tx_identificacao,\n tx_tipo_recebimento: data.tx_tipo_recebimento,\n tx_option: '',\n }\n\n let opcoes = ''\n\n for (let i = 1; i < 13; i++) {\n const campo = formRef.current?.getFieldRef('ck_option_' + i)\n\n if (campo.checked) opcoes += campo.value + '|'\n }\n\n //formRef.current?.getFieldRef('ck_option_1').clearValue()\n\n dados.tx_option = opcoes\n\n if (opcoes == '') {\n addToast({\n type: 'error',\n title: 'Erro ao enviar as informações',\n description: 'Selecione pelo menos uma opção em: Solicitações previstas na Lei Geral de Proteção de Dados',\n })\n\n formRef.current?.setErrors({nome: 'Selecione pelo menos uma opção'})\n\n throw 'Selecione pelo menos uma opção'\n }\n\n await validacao.validate(data, {abortEarly: false})\n\n const rs = await fnEnviaDados(dados)\n\n SetEnviado({enviado: false})\n\n if (rs.data.erro) {\n addToast({\n type: 'error',\n title: 'Erro ao enviar as informações',\n description: rs.data.mensagem,\n })\n } else {\n addToast({\n type: 'success',\n title: 'Dados enviados com sucesso',\n description: rs.data.mensagem,\n })\n\n //formRef.current?.getFieldRef('ck_option_1').clearValue()\n formRef.current?.reset()\n setSelectedFile(undefined)\n\n //formRef.current?.clearField('ck_option_1')\n //formRef.current?.clearField('ck_option_3')\n }\n } catch (err) {\n // if (err instanceof Yup.ValidationError)\n // eslint-disable-next-line\n //console.log(err)\n SetEnviado({enviado: false})\n\n if (err instanceof Yup.ValidationError) {\n const erros = getValidationErrors(err)\n // formRef.current?.setErrors({ nome: 'errrroooooo' });\n formRef.current?.setErrors(erros)\n\n addToast({\n type: 'error',\n title: 'Erro ao enviar as informações',\n description: 'Verifique os dados',\n })\n }\n }\n\n // eslint-disable-next-line\n //console.log(data);\n },\n [addToast, SetEnviado, fnEnviaDados, selectedFile],\n )\n\n return (\n \n

Requisição do Titular dos Dados Pessoais

\n

A coleta dos dados pessoais de pessoas físicas, solicitados no formulário abaixo, visa, exclusivamente, permitir à equipe da Stolt, fazer contato com a pessoa responsável pelo preenchimento do respectivo formulário, a qual solicitou informações quanto aos seus dados pessoais.

\n\n \n
Por favor, aguarde...
\n
\n\n \n
\n

Preencha as informações abaixo para sua identificação em nosso banco de dados:

\n\n \n\n \n\n \n\n \n\n \n\n \n\n

Identifique, no quadro a seguir, o tipo de solicitação desejada, quanto aos seus dados pessoais.

\n\n
Solicitações previstas na Lei Geral de Proteção de Dados
\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 \n\n Recebimento da Resposta\n\n \n\n

\n Para confirmação, por favor envie uma foto (máximo de 2mb) sua com seu documento ao lado do rosto:\n

\n\n {\n changeHandler(e)\n }}\n />\n\n \n \n
\n
\n )\n}\n\nexport default FormRequisicao\n","import styled from 'styled-components'\n\nexport const Container = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n\n ul.fotos {\n max-width: 1020px;\n }\n\n ul.fotos li {\n display: inline-block;\n margin: 0px 15px 15px 0px;\n }\n`\n","import React from 'react'\nimport {Container} from './styles'\n\ninterface Fotos {\n id: number\n titulo: string\n descricao: string\n album: string\n foto: string\n}\n\ninterface DadosProps {\n fotos: Record\n codigo: number\n}\n\nconst Fotos: React.FC = props => {\n return (\n \n

Fotos

\n {props.fotos[0] && (\n
    \n {Object.values(props.fotos[0] as Fotos).map((element, idx) => (\n
  • \n {element.titulo}\n
  • \n ))}\n
\n )}\n
\n )\n}\n\nexport default Fotos\n","import styled, {css} from 'styled-components'\n\ninterface Props {\n isFocus: boolean\n positionLeft: number\n positionTop: number\n}\n\nexport const Container = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n`\nexport const Ano = styled.h4`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px;\n background: #f2a900;\n color: #041e42;\n font-weight: bold;\n max-width: 135px;\n\n svg {\n margin-left: 12px;\n }\n`\nexport const Mes = styled.button`\n font-size: 14px;\n color: #fff;\n max-width: 180px !important;\n margin-bottom: 8px;\n margin-right: 10px;\n\n h1.mes {\n font-size: 14px !important;\n margin: 0px;\n width: 140px !important;\n height: 42px;\n\n a {\n display: flex;\n width: 140px !important;\n height: 42px;\n padding: 8px;\n background: #041e42;\n color: #fff !important;\n }\n\n & :hover {\n background: #f2a900 !important;\n color: #fff !important;\n }\n }\n .selectedClass {\n height: 120px;\n display: block;\n position: absolute;\n z-index: 99999;\n width: 250px !important;\n\n ${props =>\n props.isFocus &&\n css`\n left: ${props.positionLeft}px;\n top: ${props.positionTop}px;\n `}\n }\n .noSelected {\n height: 0px;\n width: 250px !important;\n display: none;\n }\n h1.invalido {\n background: rgba(4, 30, 66, 0.65) !important;\n cursor: not-allowed;\n font-size: 14px !important;\n padding: 8px;\n margin: 0px;\n width: 140px !important;\n height: 42px;\n color: #fff !important;\n }\n div {\n cursor: pointer;\n background: #d9d9d9;\n width: 250px !important;\n text-align: center;\n height: 120px;\n position: relative;\n padding: 6px;\n\n a {\n display: flex !important;\n min-width: 100% !important;\n border-bottom: 5px solid #007dba;\n color: #fff !important;\n background: #63666a;\n transition: all 0.5s ease;\n font-size: 12px;\n margin-bottom: 6px;\n justify-content: left;\n svg {\n margin-right: 10px;\n margin-left: 0px;\n fill: #fff !important;\n }\n }\n a.invalido {\n /*background: rgba(99, 102, 106, 0.55) !important;*/\n cursor: not-allowed;\n opacity: 0.25;\n /*color: #000 !important;*/\n }\n\n & :hover {\n background: #f2a900;\n color: #fff !important;\n }\n }\n\n /* Button {\n border-radius: 0px;\n min-width: 135px;\n z-index: 1;\n\n svg {\n margin-left: 12px;\n }\n } */\n\n svg {\n margin: 0px;\n }\n`\n\n/* export const Movimento = styled.div`\n max-width: 290px;\n height: 130px;\n background: #d9d9d9;\n z-index: 9999;\n display: none;\n position: absolute;\n\n ${props =>\n props.isFocus &&\n css`\n display: flex;\n flex-direction: column;\n left: ${props.positionLeft}px;\n top: ${props.positionTop}px;\n `}\n\n Button {\n background: #63666a;\n border-radius: 0px;\n text-align: left;\n border-bottom: 5px solid #007dba;\n margin: 5px;\n display: flex;\n align-items: center;\n\n svg {\n margin-right: 10px;\n }\n }\n` */\n\nexport const Meses = styled.div`\n display: flex;\n border-bottom: 8px solid #ccc;\n padding-bottom: 15px;\n margin-bottom: 20px;\n margin-top: 20px;\n max-width: 960px !important;\n flex-wrap: wrap;\n flex-direction: row;\n position: relative;\n\n a {\n display: inline-block;\n align-items: center;\n justify-content: center;\n padding: 12px;\n color: #fff;\n margin-bottom: 15px;\n margin-right: 18px;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n\n & :hover {\n background: #f2a900 !important;\n }\n\n svg {\n margin-left: 12px;\n }\n }\n a.invalido {\n background: rgba(4, 30, 66, 0.65);\n cursor: not-allowed;\n }\n`\nexport const Periodo = styled.div`\n width: 100%;\n`\n","import React, {useCallback, useEffect, useMemo, useState} from 'react'\nimport {AiOutlineTable} from 'react-icons/ai'\nimport {BiUnlink} from 'react-icons/bi'\nimport {BsClockHistory} from 'react-icons/bs'\nimport {GoCalendar} from 'react-icons/go'\nimport {RiDownloadCloud2Line} from 'react-icons/ri'\nimport api from '../../services/api'\nimport {Ano, Container, Mes, Meses, Periodo} from './styles'\n\ninterface Periodo {\n id: string\n mes: string\n arquivo: string\n arquivo_xls: string\n}\n\ninterface Dados {\n [dados: string]: Record\n}\n\ninterface ItemMenu {\n focus: boolean\n selected: string\n positionLeft: number\n positionTop: number\n}\n\nconst Historico: React.FC = () => {\n const [historico, setHistorico] = useState()\n\n const [isFocus, setIsFocus] = useState({focus: false, selected: '', positionLeft: 0, positionTop: 0})\n\n const getHistorico = useCallback(async () => {\n const anp = await api.get('historico.php')\n setHistorico(anp.data)\n }, [])\n\n const fnClick = useCallback(\n (id: string, event) => {\n setIsFocus({focus: true, positionLeft: event.target.getBoundingClientRect().offsetLeft, positionTop: event.target.getBoundingClientRect().offsetTop, selected: id})\n //console.log(event.target.children)\n\n //console.log(document.getElementById('btn-2022-11')?.getBoundingClientRect())\n //console.log(event.target.getBoundingClientRect())\n //if (nome) console.log(document.getElementById(nome).offsetTop)\n //console.log(event.pageX)\n //console.log(event.pageY)\n },\n [setIsFocus],\n )\n\n const fnBlur = useCallback(() => {\n setIsFocus({focus: false, selected: '', positionLeft: 0, positionTop: 0})\n //console.log('fez blur')\n }, [setIsFocus])\n\n const clickInvalido = useCallback(e => {\n e.preventDefault()\n }, [])\n\n const meses = useMemo(() => {\n return [\n {\n codigo: '01',\n titulo: 'Janeiro',\n },\n {\n codigo: '02',\n titulo: 'Fevereiro',\n },\n {\n codigo: '03',\n titulo: 'Março',\n },\n {\n codigo: '04',\n titulo: 'Abril',\n },\n {\n codigo: '05',\n titulo: 'Maio',\n },\n {\n codigo: '06',\n titulo: 'Junho',\n },\n {\n codigo: '07',\n titulo: 'Julho',\n },\n {\n codigo: '08',\n titulo: 'Agosto',\n },\n {\n codigo: '09',\n titulo: 'Setembro',\n },\n {\n codigo: '10',\n titulo: 'Outubro',\n },\n {\n codigo: '11',\n titulo: 'Novembro',\n },\n {\n codigo: '12',\n titulo: 'Dezembro',\n },\n ]\n }, [])\n\n useEffect(() => {\n getHistorico()\n }, [getHistorico])\n\n return (\n \n <>\n {historico &&\n Object.keys(historico)\n .reverse()\n .map((ano, index) => (\n \n \n {ano} \n \n \n <>\n {Object.values(meses).map((mes, ix) => (\n \n <>\n {historico[ano][mes.codigo] ? (\n /* \n {mes.titulo} \n */\n\n <>\n {\n fnClick(`${ano}-${mes.codigo}`, event)\n }}\n onTouchEnd={event => {\n fnClick(`${ano}-${mes.codigo}`, event)\n }}\n className=\"mes\">\n \n {mes.titulo} \n \n \n
\n \n \n Histórico dos Volumes\n \n {`${historico[ano][mes.codigo].arquivo_xls}` != '' && `${historico[ano][mes.codigo].arquivo_xls}` != 'undefined' ? (\n \n \n Tabela de Movimentação\n \n ) : (\n \n \n Tabela de Movimentação\n \n )}\n
\n \n ) : (\n {\n clickInvalido(e)\n }}>\n {mes.titulo} \n \n )}\n \n
\n ))}\n \n
\n
\n ))}\n \n
\n )\n}\n\nexport default Historico\n","import React from 'react'\nimport {ToastProvider} from './Toast'\n\nconst AppProvider: React.FC = ({children}) => {children}\n\nexport default AppProvider\n","export default __webpack_public_path__ + \"static/media/balanca2.38d4a78f.jpg\";","export default __webpack_public_path__ + \"static/media/comochegar.92546d04.jpg\";","export default __webpack_public_path__ + \"static/media/DJI_0293.3a50bc87.jpg\";","export default __webpack_public_path__ + \"static/media/DJI_0507.dfcbc3a1.jpg\";","export default __webpack_public_path__ + \"static/media/estrategia.2142d512.jpg\";","export default __webpack_public_path__ + \"static/media/fachada.1c06c654.jpg\";","export default __webpack_public_path__ + \"static/media/faleconosco.52c33d7b.jpg\";","export default __webpack_public_path__ + \"static/media/historico.eb60cd48.jpg\";","export default __webpack_public_path__ + \"static/media/Img187.ff7ff5f9.jpg\";","export default __webpack_public_path__ + \"static/media/img188.a2609545.jpg\";","export default __webpack_public_path__ + \"static/media/Img200.23183f58.jpg\";","export default __webpack_public_path__ + \"static/media/informacoes.050b7dbe.jpg\";","export default __webpack_public_path__ + \"static/media/vista.4e8860f1.jpg\";","import styled from 'styled-components'\nimport {media} from '../../styles/media'\n\nexport const Container = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n`\n\nexport const Content = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n margin-top: 20px;\n position: relative;\n padding: 8px;\n`\nexport const Section = styled.section`\n display: flex;\n width: 100%;\n flex-direction: column;\n\n * {\n font-family: 'Montserrat', sans-serif;\n }\n\n table,\n div,\n iframe {\n width: 100% !important;\n }\n\n iframe {\n max-width: 640px;\n }\n\n p {\n margin: 20px 0px 20px 0px;\n line-height: 26px;\n\n ::content {\n display: none;\n }\n }\n\n h1 {\n margin-bottom: 25px;\n color: #041e42;\n font-size: 28px;\n }\n\n h2 {\n margin-bottom: 25px;\n }\n\n h3,\n h4,\n h5,\n h6 {\n margin: 8px 0px 8px 0px;\n color: #000;\n\n & + h4 {\n margin-top: 25px;\n }\n\n & + h3 {\n margin-top: 25px;\n }\n\n & + h5 {\n margin-top: 25px;\n }\n\n & + h6 {\n margin-top: 25px;\n }\n }\n\n li {\n line-height: 26px;\n margin: 12px 0px 12px 0px;\n }\n\n a {\n color: #041e42;\n\n transition: color 2s;\n\n &: hover {\n color: #f2a900;\n }\n }\n\n div.row {\n display: flex;\n\n .col {\n width: 100%;\n }\n .col-10 {\n max-width: 10%;\n }\n .col-15 {\n max-width: 15%;\n }\n .col-20 {\n max-width: 20%;\n }\n .col-25 {\n max-width: 25%;\n }\n .col-30 {\n max-width: 30%;\n }\n .col-35 {\n max-width: 35%;\n }\n .col-40 {\n max-width: 40%;\n }\n .col-45 {\n max-width: 45%;\n }\n .col-50 {\n max-width: 50%;\n }\n .col-55 {\n max-width: 55%;\n }\n .col-60 {\n max-width: 60%;\n }\n .col-65 {\n max-width: 65%;\n }\n .col-70 {\n max-width: 70%;\n }\n .col-75 {\n max-width: 75%;\n }\n .col-80 {\n max-width: 80%;\n }\n .col-85 {\n max-width: 85%;\n }\n .col-90 {\n max-width: 90%;\n }\n .col-95 {\n max-width: 95%;\n }\n\n .col-10,\n .col-20,\n .col-30,\n .col-40,\n .col-50,\n .col-60,\n .col-70,\n .col-80,\n .col-90,\n .col-15,\n .col-25,\n .col-35,\n .col-45,\n .col-55,\n .col-65,\n .col-75,\n .col-85,\n .col-95 {\n padding: 10px;\n }\n\n ${media.lessThan('lg')`\n flex-direction:column;\n `}\n\n .col-10,.col-20,.col-30,.col-40,.col-50,.col-60,.col-70,.col-80,.col-90,\n .col-15,.col-25,.col-35,.col-45,.col-55,.col-65,.col-75,.col-85,.col-95 {\n ${media.lessThan('lg')`\n max-width: 100%;\n `}\n }\n }\n\n ${media.greaterThan('sm')`\n max-width:540px;\n `}\n ${media.greaterThan('md')`\n max-width:720px;\n `}\n ${media.greaterThan('lg')`\n max-width:1190px;\n `}\n ${media.greaterThan('xl')`\n max-width: 1180px;\n `}\n ${media.greaterThan('xxl')`\n max-width: 1320px;\n `}\n`\nexport const BreadCrumb = styled.div`\n display: flex;\n width: 100%;\n min-height: 35px;\n align-items: center;\n background: #041e42;\n justify-content: center;\n\n a {\n color: #fff;\n }\n\n svg {\n color: #fff;\n margin: 3px 12px 0px 12px;\n }\n`\n\nexport const BreadCrumbContainer = styled.div`\n display: flex;\n width: 1320px;\n align-items: center;\n padding: 6px;\n\n ${media.greaterThan('sm')`\n max-width:540px\n `}\n ${media.greaterThan('md')`\n max-width:720px\n `}\n ${media.greaterThan('lg')`\n max-width:1190px\n `}\n ${media.greaterThan('xl')`\n max-width: 1180px\n `}\n ${media.greaterThan('xxl')`\n max-width: 1320px\n `}\n`\nexport const Imagem = styled.div`\n display: flex;\n width: 100%;\n height: 330px;\n overflow: hidden;\n position: relative;\n background: #041e42;\n\n .bg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 330px; /* 100vh */\n background-size: cover;\n background-position: center;\n will-change: opacity;\n }\n`\n","import React, {useCallback, useEffect, useMemo, useState} from 'react'\nimport ReactHtmlParser from 'react-html-parser'\nimport {FaAngleDoubleRight} from 'react-icons/fa'\nimport {Link, useParams} from 'react-router-dom'\nimport {animated, useTransition} from 'react-spring'\nimport Anp from '../../components/Anp'\nimport FaleConosco from '../../components/FaleConosco'\nimport Foot from '../../components/Foot'\nimport FormRequisicao from '../../components/FormRequisicao'\nimport Fotos from '../../components/Fotos'\nimport Historico from '../../components/Historico'\nimport AppProvider from '../../context'\nimport api from '../../services/api'\nimport servicos from '../assets/balanca2.jpg'\nimport comochegar from '../assets/comochegar.jpg'\nimport padrao from '../assets/DJI_0293.jpg'\nimport gestaointegradasgi from '../assets/DJI_0507.jpg'\nimport estrategia from '../assets/estrategia.jpg'\nimport stolthaven from '../assets/fachada.jpg'\nimport faleconosco from '../assets/faleconosco.jpg'\nimport historicodemovimentacoes from '../assets/historico.jpg'\nimport anp from '../assets/Img187.jpg'\nimport ideation from '../assets/img188.jpg'\nimport oterminal from '../assets/Img200.jpg'\nimport maisinformacoes from '../assets/informacoes.jpg'\nimport vistaaereastolthaven from '../assets/vista.jpg'\nimport {BreadCrumb, BreadCrumbContainer, Container, Content, Imagem, Section} from './styles'\n\ninterface Rota {\n rota: string\n origem: string\n}\ninterface Pagina {\n [key: string]: string\n}\n\ninterface Dados {\n id: number\n titulo: string\n conteudo: string\n pai: string\n index: number\n slides: Array\n fotos: Record\n}\n\ninterface rotaFixaProps {\n rota: string\n titulo: string\n pai: string\n}\n\nconst Internal: React.FC = () => {\n const {rota, origem} = useParams()\n\n const rotaFixa: Array = useMemo(() => [], [])\n rotaFixa.push({rota: 'fale-conosco', titulo: 'Fale Conosco', pai: ''})\n //rotaFixa.push({rota: 'trabalhe-conosco', titulo: 'Trabalhe Conosco', pai: ''})\n rotaFixa.push({rota: 'requisicao-do-titular-dos-dados-pessoais', titulo: 'Requisição do Titular dos Dados Pessoais', pai: ''})\n //rotaFixa.push({rota: 'mais-informacoes', titulo: 'Mais Informações', pai: 'ANP'})\n\n const arrRotaFixa = useMemo((): Array => {\n return rotaFixa.map(value => {\n return value.rota\n })\n }, [rotaFixa])\n\n const [dataContent, setDataContent] = useState({\n id: 0,\n titulo: '',\n conteudo: '',\n pai: '',\n index: 0,\n slides: [],\n fotos: [],\n })\n\n //const slides = Object.values(paginas).map(element => element)\n\n const getContent = useCallback(\n async (rota: string, origem: string) => {\n try {\n const param = origem ? origem + '/' + rota : rota\n const response = await api.get(`conteudo.php?link=/${param}`)\n const dadosHome = response.data\n const pagina = rota.replaceAll('-', '')\n\n const paginas: Pagina = {\n padrao: padrao,\n stolthaven,\n servicos,\n oterminal,\n gestaointegradasgi, //gestao-integrada-sgi\n faleconosco,\n anp,\n ideation,\n comochegar,\n historicodemovimentacoes,\n maisinformacoes,\n estrategia,\n vistaaereastolthaven,\n }\n\n const slides = Object.values(paginas).map(element => element)\n\n let index = slides.findIndex(value => {\n if (paginas[pagina] == value) return true\n })\n\n index = index < 0 ? 0 : index\n\n const id = dadosHome ? dadosHome[0].id : 0\n\n const tituloCadastro = dadosHome ? dadosHome[0].titulo : 'Página não encontrada'\n\n const conteudo = dadosHome ? dadosHome[0].conteudo : 'Página não encontrada'\n const fotos = dadosHome ? dadosHome[0].fotos : []\n\n const fixoPai = Object.values(rotaFixa).filter(value => {\n if (value.rota == rota) {\n return value.pai\n }\n })\n\n const pai = dadosHome ? dadosHome[0].pai : fixoPai.length > 0 ? fixoPai[0].pai : ''\n\n const fixo = Object.values(rotaFixa).filter(value => {\n //console.log(rota + '===' + value.rota + '====' + value.titulo)\n if (value.rota == rota) {\n return value.titulo\n }\n })\n //console.log('fixo[0] ' + fixo.length + '======' + pai + '************' + pagina)\n const titulo = fixo.length > 0 ? fixo[0].titulo : tituloCadastro\n\n setDataContent({\n id,\n titulo,\n conteudo,\n index,\n slides,\n fotos,\n pai,\n })\n\n window.scroll({\n top: 140,\n left: 0,\n behavior: 'smooth',\n })\n } catch (e) {\n console.log('Erro ao acessar link: ' + e)\n }\n },\n [rotaFixa],\n )\n\n useEffect(() => {\n getContent(rota, origem)\n }, [rota, origem, getContent])\n\n const transitions = useTransition(dataContent.index, {\n key: dataContent.index,\n from: {opacity: 0, top: 330},\n enter: {opacity: 1, top: 0},\n leave: {opacity: 0, top: -330},\n config: {duration: 800},\n })\n // eslint-disable-next-line\n\n return (\n \n \n {transitions((style, idx) => (\n \n ))}\n \n \n \n \n Home\n \n \n {dataContent.pai != '' && (\n \n {dataContent.pai} \n \n )}\n {origem && {dataContent.titulo}}\n {!origem && {dataContent.titulo}}\n \n \n \n \n {arrRotaFixa.indexOf(rota) === -1 && dataContent && (\n
\n {dataContent.pai != '' ? (\n \n

{dataContent.pai}

{dataContent.titulo}

\n
\n ) : (\n

{dataContent.titulo}

\n )}\n\n
{ReactHtmlParser(dataContent.conteudo)}
\n\n {dataContent.fotos != '' && }\n\n {rota == 'mais-informacoes' && (\n
\n \n
\n )}\n\n {rota == 'historico-de-movimentacoes' && (\n
\n \n
\n )}\n
\n )}\n\n {rota == 'fale-conosco' && (\n
\n \n
\n )}\n\n {rota == 'requisicao-do-titular-dos-dados-pessoais' && (\n
\n \n
\n )}\n
\n
\n \n
\n )\n}\n\nexport default Internal\n","export default __webpack_public_path__ + \"static/media/back1.fd21cc8b.jpg\";","export default __webpack_public_path__ + \"static/media/back2.bc468df7.jpg\";","export default __webpack_public_path__ + \"static/media/back3.d6cb3b27.jpg\";","import styled from 'styled-components'\n\nexport const Container = styled.div`\n display: flex;\n width: 100%;\n height: 578px;\n overflow: hidden;\n position: relative;\n background: #041e42;\n\n .bg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100vw;\n height: 578px; /* 100vh */\n background-size: cover;\n background-position: center;\n will-change: opacity;\n }\n`\n","import React, {useEffect, useState} from 'react'\nimport {animated, useTransition} from 'react-spring'\nimport bg1 from './assets/back1.jpg'\nimport bg2 from './assets/back2.jpg'\nimport bg3 from './assets/back3.jpg'\nimport {Container} from './styles'\n\nconst Slide: React.FC = () => {\n const slides = [bg1, bg2, bg3]\n const [index, set] = useState(0)\n const qtd = slides.length\n\n const transitions = useTransition(index, {\n key: index,\n from: {opacity: 0, top: 578},\n enter: {opacity: 1, top: 0},\n leave: {opacity: 0, top: -578},\n config: {duration: 800},\n })\n useEffect(() => {\n const t = setInterval(() => set(state => (state + 1) % qtd), 10000)\n return () => clearTimeout(t)\n }, [qtd])\n\n return (\n \n {transitions((style, i) => (\n \n ))}\n \n )\n}\n\nexport default Slide\n","import {FaAngleDoubleRight} from 'react-icons/fa'\nimport styled from 'styled-components'\nimport {media} from '../../styles/media'\nimport {reactSvgComponent} from '../../utils/reactSvgComponent'\n\nexport const Container = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n h1 {\n font-size: 24px !important;\n }\n`\n\nexport const Content = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n`\nexport const Section = styled.section`\n display: flex;\n width: 1320px; \n margin-top: 20px;\n flex-direction: row;\n\n * {\n font-family: 'Montserrat', sans-serif;\n }\n\n h1 {\n margin-top: 10px !important;\n margin-bottom: 20px !important;\n color: #041e42;\n }\n\n h2 {\n margin-top: 20px !important;\n color: #041e42;\n }\n\n \n } \n \n \n ${media.lessThan('sm')`\n flex-direction: column\n `}\n\n ${media.greaterThan('sm')`\n max-width:540px\n `}\n ${media.greaterThan('md')`\n max-width:720px\n `}\n ${media.greaterThan('lg')`\n max-width:1190px\n `}\n ${media.greaterThan('xl')`\n max-width: 1180px\n `}\n ${media.greaterThan('xxl')`\n max-width: 1320px\n `}\n`\n\nexport const Bloco = styled.div`\n width: 33%;\n padding: 0px 20px 0px 20px;\n\n ${media.lessThan('sm')`\n width: 100%;\n `}\n\n h3,\n h4,\n h5,\n h6 {\n margin: 5px 0px 25px 0px;\n }\n\n li {\n list-style-position: inside;\n line-height: 35px;\n }\n\n p {\n width: 100%;\n margin: 8px 0px 8px 0px;\n line-height: 32px;\n\n a {\n color: #041e42;\n transition: color 2s;\n\n &: hover {\n color: #f2a900;\n }\n }\n\n a:last-child {\n margin: 20px 20px 0px 0px;\n position: relative;\n padding-right: 22px;\n\n ::after {\n content: url(${reactSvgComponent(FaAngleDoubleRight)});\n top: -3px;\n right: 0px;\n position: absolute;\n padding-left: 6px;\n }\n }\n }\n`\n","import React, {useCallback, useEffect, useState} from 'react'\nimport ReactHtmlParser from 'react-html-parser'\nimport Foot from '../../components/Foot'\nimport Slide from '../../components/Slide'\nimport api from '../../services/api'\nimport {Bloco, Container, Content, Section} from './styles'\n\ninterface Dados {\n id: number\n titulo: string\n conteudo: string\n}\n\ninterface DadosHome {\n [dadosHome: string]: Dados\n}\n\nconst Main: React.FC = () => {\n const [dataContent, setDataContent] = useState()\n\n const getContent = useCallback(async () => {\n try {\n const response = await api.get('home.php')\n const dadosHome = response.data\n setDataContent(dadosHome)\n } catch (e) {\n console.log('Erro ao acessar link: ' + e)\n }\n }, [])\n\n useEffect(() => {\n getContent()\n }, [getContent])\n\n return (\n \n \n \n
\n {dataContent && (\n \n

{dataContent[0] && ReactHtmlParser(dataContent[0].titulo)}

\n {dataContent[0] && ReactHtmlParser(dataContent[0].conteudo)}\n
\n )}\n\n {dataContent && (\n \n

{dataContent[1] && ReactHtmlParser(dataContent[1].titulo)}

\n {dataContent[1] && ReactHtmlParser(dataContent[1].conteudo)}\n
\n )}\n\n {dataContent && (\n \n

{dataContent[2] && ReactHtmlParser(dataContent[2].titulo)}

\n {dataContent[2] && ReactHtmlParser(dataContent[2].conteudo)}\n
\n )}\n
\n
\n \n
\n )\n}\n\nexport default Main\n","import {useEffect, useState} from 'react'\nimport ReactGA from 'react-ga'\nimport {useLocation} from 'react-router-dom'\n\nexport const useGaTracker = (): void => {\n const location = useLocation()\n const [initialized, setInitialized] = useState(false)\n\n useEffect(() => {\n if (!window.location.href.includes('localhost')) {\n ReactGA.initialize('UA-210689951-1')\n setInitialized(true)\n }\n }, [])\n\n useEffect(() => {\n if (initialized) {\n ReactGA.pageview(location.pathname + location.search)\n }\n }, [initialized, location])\n}\n\nexport default useGaTracker\n","import React from 'react'\nimport {Route, Switch} from 'react-router-dom'\nimport Internal from '../pages/Internal'\nimport Main from '../pages/Main'\nimport useGaTracker from '../utils/useGaTracker'\n\nconst Routes: React.FC = () => {\n useGaTracker()\n\n return (\n \n \n \n \n \n )\n}\n\nexport default Routes\n","import {createGlobalStyle} from 'styled-components'\n\nexport default createGlobalStyle`*{margin:0;\npadding:0;\nbox-sizing:border-box;outline:0;}\n\nbody { background: #FFF; color:#424242; -webkit-font-smoothing: antialiased;font-family: 'Montserrat', sans-serif;font-size: 0.875em; /* 14px/16=0.875em // 1em is 16px*/}\n\nimg{border:0;}\n\nbutton{font-family: 'Montserrat', sans-serif;font-size: 0.875em;border: none;font-weight: bold;cursor: pointer;}\n\n.responsive {width: 100%;height: auto;}`\n","import React from 'react'\nimport {BrowserRouter} from 'react-router-dom'\nimport Header from './components/Header'\nimport Routes from './Routes'\nimport GlobalStyle from './styles/global'\n\nconst App: React.FC = () => (\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(\n \n \n ,\n document.getElementById('root'),\n)\n"],"sourceRoot":""}