{"version":3,"sources":["imgs/termometro/termometro-20-30.png","usuarios/usuario.component.js","usuarios/usuarioedit.component.js","parametros/parametro.component.js","parametros/parametroedit.component.js","utils/masks.js","imgs/logo branco png.png","_components/appbarvisualization.js","visualization/visualization.component.js","visualization/GoogleMap.js","visualization/markerInfoWindow.component.js","imgs/rosa.png","imgs/android-app.png","imgs/seta.png","App.js","imgs/imagem1.png","imgs/estacoes.PNG","home/home.component.js","pagamentos/pagamento.component.js","recebimentos/recebimento.component.js","orientacoes/orientacao.component.js","_components/responsiveDrawer.js","imgs/index.js","imgs/Davis Vantage Pro 2.jpg","imgs/Davis Vantage Vue.jpg","imgs/Weatherlink Live.jpg","imgs/Wifilogger.jpg","imgs/WS-2902.jpg","imgs/Wrong1.png","imgs/Wrong2.png","imgs/maxresdefault.jpg","imgs/6250-6357_1400x500_VV_BradHickman.jpg","imgs/Cenario ideal DAVIS VANTAGE PRO 2.jpg","imgs/Cenario area urbana DAVIS VANTAGE PRO 2.jpg","imgs/021-640x385-640x385.jpg","imgs/WhatsApp Image 2020-05-28 at 17.15.11.jpeg","imgs/94138758_3604637852885376_3822128711386267648_o.jpg","_reducers/auth.reducer.js","_reducers/cidade.reducer.js","_reducers/estacao.reducer.js","_reducers/estado.reducer.js","_reducers/fonte.reducer.js","_reducers/pagamento.reducer.js","_reducers/pais.reducer.js","_reducers/parametro.reducer.js","_reducers/usuario.reducer.js","_reducers/visualization.reducer.js","_reducers/index.js","index.js","_components/PrivateRoute.jsx","_components/appbar.js","_helpers/history.js","_components/nav.js","login/cadastro.component.js","login/login.component.js","login/passwordReset.component.js","login/requestPasswordReset.component.js","_services/auth.service.js","_services/crud.service.js","_actions/auth.actions.js","_actions/checkout.actions.js","_actions/cidade.actions.js","_actions/estacao.actions.js","_actions/estado.actions.js","_actions/fonte.actions.js","_actions/pagamento.actions.js","_actions/parametro.actions.js","_actions/usuario.actions.js","_actions/visualization.actions.js","config/config.js","imgs/termometro/termometro-0-10.png","estacoes/estacao.component.js","estacoes/estacaoedit.component.js","estacoes/minhaEstacao.component.js","imgs/termometro/termometro-10-20.png"],"names":["module","exports","Usuario","state","isMobile","window","innerWidth","throttledHandleWindowResize","throttle","setState","forceUpdate","handleClick","event","id","dispatch","props","usuarioAction","deleteUsuarioById","this","getUsuario","addEventListener","classes","usuario","className","root","appFrame","style","display","content","toolbar","Grid","container","spacing","item","xs","justify","Typography","variant","Button","color","newButton","component","onClick","history","push","TableContainer","Paper","Table","table","TableHead","TableRow","TableCell","TableBody","map","n","key","scope","nome","email","phoneMask","telefone","IconButton","button","aria-label","Component","connectedUsuarioPage","withRouter","connect","pure","withStyles","theme","flexGrow","zIndex","overflow","position","width","appBar","marginLeft","marginRight","drawerPaper","mixins","backgroundColor","palette","background","default","padding","unit","paper","boxShadow","shadows","UsuarioEdit","handleChange","prop","onChangeProps","params","match","getUsuarioById","clear","Swal","fire","icon","title","text","senha","payload","split","join","replace","papel","log","editUsuarioInfo","createUsuario","InsertText","EditText","SegHeader","sm","contentRoot","elevation","gridItem","TextField","label","textField","value","onChange","margin","fullWidth","inputProps","maxLength","type","submitButton","connectedUsuarioEditPage","gutters","paddingTop","paddingBottom","alignSelf","Parametro","parametroAction","deleteParametroById","getParametro","parametro","chave","valor","descricao","connectedParametroPage","ParametroEdit","getParametroById","editParametroInfo","createParametro","multiline","connectedParametroEditPage","undefined","ReactGA","initialize","pageview","PermanentDrawer","alignContent","href","src","require","height","alt","logo","loginButton","open","React","connectedVisualizationPage","marginBottom","paperContainer","backgroundImage","Image","paperOpacity","fontWeight","borderRadius","mapFrame","clearButton","useDispatch","useState","selectedEstado","setSelectedEstado","selectedCidade","setSelectedCidade","selectedFonte","setSelectedFonte","selectedSituacao","setSelectedSituacao","selectedColumn","setSelectedColumn","selectedOrder","setSelectedOrder","view","setView","setIsMobile","isTabActive","setIsTabActive","onfocus","onblur","useEffect","refreshVisualization","setInterval","a","e","console","estadoAction","getEstadoSelect","cidadeAction","getCidadeSelect","fonteAction","getFonteSelect","authentication","user","usuarioId","pagamentoAction","getPagamentoAtivoUsuarioById","visualizationAction","getVisualization","pagamento","visualization","estacoes","estacoesFavoritas","showAlertPagamento","html","then","result","dismiss","handleClickFav","estacaoAction","favEstacao","handleClickUnfav","unfavEstacao","isFav","ret","length","forEach","fav","renderOptionsCidade","cidade","p","i","includes","estadoId","MenuItem","name","getNested","obj","reduce","myCompare","b","col","colAtiva","noValue","isNaN","localeCompare","shuffle","array","randomIndex","currentIndex","Math","floor","random","sort","disabled","md","lg","FormControl","InputLabel","htmlFor","Select","target","filter","input","Input","multiple","estado","paisId","fonte","ButtonGroup","Tooltip","align","cidadeId","fonteId","ativa","toString","tempScale","tempValue","parseFloat","temperatura","temperaturaMinima","temperaturaMaxima","scaleNumber","round","bgcolor","seconds","Date","dataAtualizacao","getTime","img","imgTermometro_0_10","imgTermometro_10_20","imgTermometro_20_30","toFixed","po","ventoVelocidade","rajadaVentoMaxima","totalChuvaDia","styles","transform","ventoGrau","transformOrigin","location","uf","cidadeNome","apelido","substring","link","codigo","rel","ura","chuva","pressao","format","val","slice","hours","minutes","displayTime","estacaoFavorita","Skeleton","marginTop","Wrapper","styled","main","GoogleMap","children","bootstrapURLKeys","process","defaultProps","mapStyles","InfoWindow","place","bottom","left","fontSize","atualizacao","Marker","show","border","cursor","verticalAlign","connectedMarkerInfoWindowPage","places","setPlaces","defaultZoom","defaultCenter","onChildClick","latLon","precision","multiplier","pow","objPlace","lat","x","lng","y","config","path","__dirname","createMuiTheme","primary","contrastText","secondary","typography","fontFamily","App","exact","Home","Login","Cadastro","PasswordReset","RequestPasswordReset","MinhaEstacao","Estacao","EstacaoEdit","Pagamento","Recebimento","Orientacao","Visualization","connectedHomePage","submitted","setTimeout","checkoutActions","createPreference","getPagamentoUsuarioById","dataInicioValidade","dataFimValidade","toLocaleString","navigator","language","minimumFractionDigits","dataPagamento","status","payButton","connectedPagamentoPage","getPagamento","connectedRecebimentoPage","imageContent","Link","connectedOrientacaoPage","maxWidth","ResponsiveDrawer","logout","authActions","mobileOpen","handleDrawerToggle","drawer","edge","smUp","implementation","anchor","onClose","ModalProps","keepMounted","closeMenuButton","xsDown","common","black","breakpoints","up","flexShrink","token","localStorage","getItem","auth","JSON","parse","initialState","loggedIn","ibge","estacao","aprovada","latitude","longitude","ddd","pais","url","formaPagamento","transacao","nomePt","iso2","iso3","bacen","rootReducer","combineReducers","action","loggingIn","store","createStore","reducer","applyMiddleware","thunk","ReactDOM","render","document","getElementById","PrivateRoute","rest","Route","Redirect","to","pathname","from","classNames","createBrowserHistory","Navigation","repeatPassword","handleChangeRepeatPassword","handleSubmit","ValidatorForm","addValidationRule","Container","CssBaseline","backButton","goBack","form","ref","onSubmit","autoComplete","validators","errorMessages","submit","connectedCadastroPage","flexDirection","alignItems","avatar","handleChangeBox","checked","username","password","login","showPassword","formData","image","square","Avatar","FormControlLabel","control","Checkbox","connectedLoginPage","Background","backgroundRepeat","backgroundSize","backgroundPosition","handleChangePassword","passwordReset","query","URLSearchParams","search","substr","indexOf","decodeURIComponent","connectedPasswordResetPage","requestPasswordReset","connectedRequestPasswordResetPage","authService","post","apiEndpoint","axios","baseUrl","response","catch","err","postWithToken","options","headers","crudService","get","getOptions","removeItem","put","deleteDetail","delete","data","setItem","stringify","lotes","statusText","preference","initPoint","getCidade","changeCidadesList","getEstacao","changeEstacoesList","getEstacaoById","_id","getEstacaoUsuarioById","handleOnChangeProps","editEstacaoInfo","request","responseText","createEstacao","testEstacao","deleteEstacaoById","buttons","showCancelButton","confirmButtonText","cancelButtonText","dangerMode","heightAuto","willDelete","getEstado","changeEstadosList","getFonte","changeFontesList","getFonteById","editFonteInfo","createFonte","deleteFonteById","changePagamentosList","changeUsuariosList","getUsuarioSelect","accept","situacao","lassName","connectedEstacaoPage","handleChangeChecked","renderOptionsEstado","dataValidadeToken","handleChangeSelectedFonte","renderOptionsFonte","handleChangeSelectedUsuario","renderOptionsUsuario","autocomplete","FormHelperText","handleChangeSelectedEstado","handleChangeSelectedCidade","Switch","connectedEstacaoEditPage","connectedMinhaEstacaoPage"],"mappings":"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","file":"static/js/main.9b61d5ee.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAZCAYAAAAIcL+IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEESURBVDiN3ZMhS0NhGIWfOxYsS/oDFuwia7bN5A0GwbS6fzDz2N9YstkmIls3mIbRNtcGhrXhEIbwGHwvXN2H1+yBE95zDu/7vXzfBwE1U3vqU7CnZvyEmqtL9TK4VPNUcKL2S3VfnRR1rZQ9BBalehHaTvBX/DlYT5z1DGgA26qOo2Dl6PeUngoarAwm8f+CcRtNYFXyVkAzPFBb6lrtqsfqs/oSeje8VqaOgA/gDrgH9qLjFrgAcqCOOlfP1Wt3cRPevMbXS1kD+4kdDsJr1IAZcArcJoLj8GaoHXWjHsU/eVAf1atYbqN2is2H6ps6UE+Cg9CG32aobXWqvganarvwPwHu0/Vi+vxR5QAAAABJRU5ErkJggg==\"","import { connect } from 'react-redux';\r\nimport { usuarioAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Nav from '../_components/nav';\r\nimport { Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { history } from '../_helpers';\r\nimport { phoneMask } from '../utils';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Usuario extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.getUsuario());\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (event, id) => {\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.deleteUsuarioById(id));\r\n };\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { usuario } = this.props.usuario;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Usuários'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n E-mail\r\n Telefone\r\n Ações\r\n \r\n \r\n \r\n {\r\n usuario.map(n => {\r\n return (\r\n \r\n \r\n {n.nome}\r\n \r\n {n.email}\r\n {phoneMask(n.telefone)}\r\n \r\n history.push(`/usuario/${n.id}`)}>\r\n \r\n \r\n this.handleClick(event, n.id)}>\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nUsuario.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n usuario: state.usuario\r\n };\r\n}\r\nconst connectedUsuarioPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Usuario)));\r\nexport { connectedUsuarioPage as Usuario };","import React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Nav from '../_components/nav';\r\nimport { Paper, Grid, Button, TextField, Typography } from '@material-ui/core';\r\nimport { connect } from 'react-redux';\r\nimport { usuarioAction } from '../_actions';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n contentRoot: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing.unit * 2,\r\n paddingBottom: theme.spacing.unit * 2,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n submitButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass UsuarioEdit extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n handleChange = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.onChangeProps(prop, event));\r\n };\r\n\r\n componentDidMount() {\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n if (params.id) {\r\n dispatch(usuarioAction.getUsuarioById(params.id));\r\n } else {\r\n dispatch(usuarioAction.clear());\r\n }\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n handleClick(event) {\r\n\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n\r\n if (this.props.usuario.email == null || this.props.usuario.email == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um E-mail válido!'\r\n })\r\n } else if (this.props.usuario.nome == null || this.props.usuario.nome == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Nome válido!'\r\n })\r\n } else if (this.props.usuario.senha == null || this.props.usuario.senha == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Senha válida!'\r\n })\r\n } else {\r\n\r\n let payload = {\r\n id: params.id,\r\n email: this.props.usuario.email,\r\n nome: this.props.usuario.nome,\r\n senha: this.props.usuario.senha,\r\n telefone: this.props.usuario.telefone.split(' ').join('').replace(/[()-]/g, ''),\r\n papel: 'usuario',\r\n log: this.props.usuario.log\r\n }\r\n\r\n if (params.id) {\r\n dispatch(usuarioAction.editUsuarioInfo(params.id, payload));\r\n } else {\r\n dispatch(usuarioAction.createUsuario(payload));\r\n }\r\n\r\n }\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { match: { params } } = this.props;\r\n function InsertText(props) {\r\n return {'Novo Usuário'};\r\n }\r\n\r\n function EditText(props) {\r\n return {'Editar Usuário'};\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nUsuarioEdit.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\n\r\nconst connectedUsuarioEditPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(UsuarioEdit)));\r\nexport { connectedUsuarioEditPage as UsuarioEdit };","import { connect } from 'react-redux';\r\nimport { parametroAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Nav from '../_components/nav';\r\nimport { Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { history } from '../_helpers';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Parametro extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(parametroAction.getParametro());\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (event, id) => {\r\n const { dispatch } = this.props;\r\n dispatch(parametroAction.deleteParametroById(id));\r\n };\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { parametro } = this.props.parametro;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Parâmetros'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n \r\n \r\n \r\n Chave\r\n Valor\r\n Descrição\r\n Ações\r\n \r\n \r\n \r\n {\r\n parametro.map(n => {\r\n return (\r\n \r\n \r\n {n.chave}\r\n \r\n {n.valor}\r\n {n.descricao}\r\n \r\n history.push(`/parametro/${n.id}`)}>\r\n \r\n \r\n this.handleClick(event, n.id)}>\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nParametro.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n parametro: state.parametro\r\n };\r\n}\r\nconst connectedParametroPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Parametro)));\r\nexport { connectedParametroPage as Parametro };","import React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Nav from '../_components/nav';\r\nimport { Paper, Grid, Button, TextField, Typography } from '@material-ui/core';\r\nimport { connect } from 'react-redux';\r\nimport { parametroAction } from '../_actions';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n contentRoot: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing.unit * 2,\r\n paddingBottom: theme.spacing.unit * 2,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n submitButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass ParametroEdit extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n\r\n handleChange = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(parametroAction.onChangeProps(prop, event));\r\n };\r\n\r\n\r\n componentDidMount() {\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n if (params.id) {\r\n dispatch(parametroAction.getParametroById(params.id));\r\n } else {\r\n dispatch(parametroAction.clear());\r\n }\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n handleClick(event) {\r\n\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n\r\n if (this.props.parametro.chave == null || this.props.parametro.chave == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Chave válida!'\r\n })\r\n } else if (this.props.parametro.valor == null || this.props.parametro.valor == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Valor válido!'\r\n })\r\n } else if (this.props.parametro.descricao == null || this.props.parametro.descricao == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Descrição válida'\r\n })\r\n } else {\r\n\r\n let payload = {\r\n id: params.id,\r\n chave: this.props.parametro.chave,\r\n valor: this.props.parametro.valor,\r\n descricao: this.props.parametro.descricao\r\n }\r\n\r\n if (params.id) {\r\n dispatch(parametroAction.editParametroInfo(params.id, payload));\r\n } else {\r\n dispatch(parametroAction.createParametro(payload));\r\n }\r\n\r\n }\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { match: { params } } = this.props;\r\n function InsertText(props) {\r\n return {'Novo Parâmetro'};\r\n }\r\n\r\n function EditText(props) {\r\n return {'Editar Parâmetro'};\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nParametroEdit.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\n\r\nconst connectedParametroEditPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(ParametroEdit)));\r\nexport { connectedParametroEditPage as ParametroEdit };","export const slugMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .normalize('NFD')\r\n .replace(/(^-+|-+$)/, '') // Remove hífens extras do final ou do inicio da string\r\n .replace(/[\\u0300-\\u036f]/g, '') // Remove acentos\r\n .replace(/([^\\w]+|\\s+)/g, '-') // Substitui espaço e outros caracteres por hífen\r\n .replace(/\\-\\-+/g, '-') // Substitui multiplos hífens por um único hífen\r\n .toLowerCase() //tudo em letra minuscula\r\n }\r\n}\r\n\r\nexport const cpfCnpjMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n if (value.length === 14 && value.includes('-')) {\r\n return cpfMask(value)\r\n }\r\n if (value.length >= 14) {\r\n return cnpjMask(value)\r\n } else {\r\n return cpfMask(value)\r\n }\r\n }\r\n}\r\n\r\nexport const cpfMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '') // substitui qualquer caracter que nao seja numero por nada\r\n .replace(/(\\d{3})(\\d)/, '$1.$2') // captura 2 grupos de numero o primeiro de 3 e o segundo de 1, apos capturar o primeiro grupo ele adiciona um ponto antes do segundo grupo de numero\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d{1,2})/, '$1-$2')\r\n .replace(/(-\\d{2})\\d+?$/, '$1') // captura 2 numeros seguidos de um traço e não deixa ser digitado mais nada\r\n }\r\n}\r\nexport const cnpjMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1/$2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2')\r\n .replace(/(-\\d{2})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const phoneMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '($1) $2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2')\r\n .replace(/(\\d{4})-(\\d)(\\d{4})/, '$1$2-$3')\r\n .replace(/(-\\d{4})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const cepMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{5})(\\d)/, '$1-$2')\r\n .replace(/(-\\d{3})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const pisMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{5})(\\d)/, '$1.$2')\r\n .replace(/(\\d{5}\\.)(\\d{2})(\\d)/, '$1$2-$3')\r\n .replace(/(-\\d{1})\\d+?$/, '$1')\r\n }\r\n}\r\n\r\nexport const dataMask = (value) => {\r\n if (value !== null && value !== undefined) {\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '$1/$2')\r\n .replace(/(\\d{2})(\\d)/, '$1/$2')\r\n .replace(/(\\d{2})(\\d{2})$/, '$1$2')\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/logo branco png.4bc68a73.png\";","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { AppBar, Tooltip, Toolbar, Grid, Button, Link } from '@material-ui/core';\r\nimport { history } from '../_helpers';\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport WhatsAppIcon from '@material-ui/icons/WhatsApp';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ReactGA from 'react-ga';\r\nimport classNames from 'classnames';\r\n\r\nconst trackingId = \"UA-147655872-1\"; // Replace with your Google Analytics tracking ID\r\nReactGA.initialize(trackingId);\r\nReactGA.pageview('/visualization');\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar, \r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n loginButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass PermanentDrawer extends React.Component {\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"logo\"\r\n \r\n \r\n \r\n \r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n window.open('https://wa.me/555199986571', '_blank')}>\r\n \r\n \r\n \r\n \r\n window.open(\"mailto:contato@estacoesdobrasil.com.br\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {/**/} \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nPermanentDrawer.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nexport default withStyles(styles)(PermanentDrawer);","import { connect, useDispatch } from \"react-redux\";\r\nimport { visualizationAction, estadoAction, cidadeAction, fonteAction, pagamentoAction, estacaoAction } from '../_actions';\r\nimport React, { useState, useEffect } from 'react';\r\nimport AppBar from '../_components/appbarvisualization';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { withRouter } from 'react-router-dom';\r\nimport './visualization.component.css'\r\nimport '../imgs'\r\nimport imgTermometro_0_10 from '../imgs/termometro/termometro-0-10.png';\r\nimport imgTermometro_10_20 from '../imgs/termometro/termometro-10-20.png';\r\nimport imgTermometro_20_30 from '../imgs/termometro/termometro-20-30.png';\r\nimport { Select, InputLabel, MenuItem, Input, FormControl, Button, Grid, Paper, ButtonGroup, IconButton, Table, TableBody, TableCell, TableHead, TableRow, Typography, Tooltip, TableContainer } from '@material-ui/core';\r\nimport Swal from 'sweetalert2';\r\nimport { history } from '../_helpers';\r\nimport ViewHeadlineIcon from '@material-ui/icons/ViewHeadline';\r\nimport ViewModuleIcon from '@material-ui/icons/ViewModule';\r\nimport StarIcon from '@material-ui/icons/Star';\r\nimport StarBorderIcon from '@material-ui/icons/StarBorder';\r\nimport MapIcon from '@material-ui/icons/Map';\r\nimport { MarkerInfoWindow } from './';\r\nimport { Skeleton } from '@material-ui/lab';\r\nimport Image from '../imgs/estacoes.PNG'; // Import using relative path\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit * 2,\r\n marginBottom: theme.spacing.unit * 1.2\r\n },\r\n paperContainer: {\r\n backgroundImage: `url(${Image})`,\r\n height: '100vh',\r\n width: '100%'\r\n },\r\n paperOpacity: {\r\n height: '95vh',\r\n width: '100%',\r\n backgroundColor: 'rgba(0, 0, 0, 0.75)',\r\n fontWeight: 'bold',\r\n color: '#ffffff',\r\n borderRadius: 5\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n mapFrame: {\r\n width: '100%',\r\n height: '100vh',\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex'\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n clearButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\n\r\n\r\nconst Visualization = (props) => {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [selectedEstado, setSelectedEstado] = useState([0]);\r\n const [selectedCidade, setSelectedCidade] = useState([0]);\r\n const [selectedFonte, setSelectedFonte] = useState(0);\r\n const [selectedSituacao, setSelectedSituacao] = useState(0);\r\n const [selectedColumn, setSelectedColumn] = useState('');\r\n const [selectedOrder, setSelectedOrder] = useState('');\r\n const [, forceUpdate] = React.useState(0);\r\n const [view, setView] = useState(1);\r\n const [isMobile, setIsMobile] = useState(false);\r\n const [isTabActive, setIsTabActive] = useState(true);\r\n\r\n window.onfocus = function () {\r\n setIsTabActive(true);\r\n };\r\n\r\n window.onblur = function () {\r\n setIsTabActive(false);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n //showAlertSorteio();\r\n\r\n //dispatch(visualizationAction.getVisualization());\r\n refreshVisualization();\r\n\r\n try {\r\n setInterval(async () => {\r\n //dispatch(visualizationAction.getVisualization());\r\n refreshVisualization();\r\n }, 60000);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n setIsMobile(window.innerWidth < 468);\r\n\r\n dispatch(estadoAction.getEstadoSelect());\r\n dispatch(cidadeAction.getCidadeSelect());\r\n dispatch(fonteAction.getFonteSelect());\r\n forceUpdate(n => !n);\r\n\r\n if (props.state && props.state.authentication && props.state.authentication.user && props.state.authentication.user.id > 0) {\r\n var usuarioId = props.state.authentication.user.id;\r\n dispatch(pagamentoAction.getPagamentoAtivoUsuarioById(usuarioId));\r\n } else {\r\n dispatch(pagamentoAction.clear());\r\n }\r\n\r\n }, [])\r\n\r\n const refreshVisualization = () => {\r\n\r\n if (isTabActive) {\r\n dispatch(visualizationAction.getVisualization());\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (props.state && props.state.authentication && props.state.authentication.user && props.state.authentication.user.id > 0) {\r\n var usuarioId = props.state.authentication.user.id;\r\n dispatch(pagamentoAction.getPagamentoAtivoUsuarioById(usuarioId));\r\n } else {\r\n dispatch(pagamentoAction.clear());\r\n }\r\n\r\n }, [props.state.authentication])\r\n\r\n //useEffect(() => {\r\n\r\n // //if (props.state && props.state.pagamento && props.state.pagamento.id > 0) {\r\n\r\n // for (var i = 1; i < 99999; i++)\r\n // window.clearInterval(i);\r\n\r\n // dispatch(visualizationAction.getVisualization());\r\n\r\n // try {\r\n // setInterval(async () => {\r\n // dispatch(visualizationAction.getVisualization());\r\n // }, 40000);\r\n // } catch (e) {\r\n // console.log(e);\r\n // }\r\n\r\n // //}\r\n\r\n //}, [props.state.pagamento])\r\n\r\n useEffect(() => {\r\n\r\n }, [props.state.pagamento, props.state.visualization.visualization.estacoes, props.state.visualization.visualization.estacoesFavoritas])\r\n\r\n //useEffect(() => {\r\n // console.log('selectedColumnm', selectedColumn)\r\n // console.log('selectedOrder', selectedOrder)\r\n //}, [selectedColumn, selectedOrder])\r\n\r\n const handleChangeSelectedEstado = value => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedEstado(value.filter(item => item !== 0));\r\n renderOptionsCidade();\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n }\r\n\r\n const handleChangeSelectedCidade = value => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedCidade(value.filter(item => item !== 0));\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n }\r\n\r\n const handleChangeSelectedFonte = value => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedFonte(value);\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n }\r\n\r\n const handleChangeSelectedSituacao = value => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedSituacao(value);\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n }\r\n\r\n const handleChangeSelectedColumn = value => {\r\n if (value != null && value != '') {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedColumn(value);\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n } else {\r\n setSelectedColumn('');\r\n }\r\n }\r\n\r\n const handleChangeSelectedOrder = value => {\r\n if (value != null && value != '') {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedOrder(value);\r\n } else {\r\n showAlertPagamento();\r\n }\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n } else {\r\n setSelectedOrder('');\r\n }\r\n }\r\n\r\n const showAlertPagamento = () => {\r\n\r\n Swal.fire({\r\n title: 'Recurso disponível apenas para assinantes.',\r\n html: \"

Faça seu login ou então cadastre-se e efetue a assinatura para prosseguir com os filtros.

Para novos assinante há a possibilidade testar por 7 dias grátis.

\",\r\n html: \"

Efetue a assinatura para prosseguir com a visualização. Por apenas R$ 6,67 por mês (R$ 80,00/ano), você tem acesso a filtros e estações de todo o Brasil.

Para novos visitantes há a possibilidade testar por 7 dias gratuitamente.

\",\r\n showCloseButton: true,\r\n showCancelButton: true,\r\n confirmButtonColor: '#3c5186',\r\n cancelButtonColor: '#3c5186',\r\n cancelButtonText: 'Assinar'\r\n //imageUrl: 'https://i.imgur.com/lkt1TLh.jpg'\r\n }).then((result) => {\r\n if (result.value) {\r\n history.push('/login');\r\n }\r\n else if (result.dismiss == 'cancel') {\r\n history.push('/pagamentos');\r\n }\r\n })\r\n\r\n }\r\n\r\n const showAlertSorteio = () => {\r\n\r\n Swal.fire({\r\n title: 'ASSINE E CONCORRA',\r\n html: \"

Faça seu login ou cadastre-se, efetue a assinatura, além de adquirir acesso completo à plataforma, você ainda concorre a uma Estação Meteorológica Davis Vantage Vue com Weatherlink Live. Sorteio dia 31/05/2021.

\",\r\n showCloseButton: true,\r\n confirmButtonColor: '#3c5186',\r\n confirmButtonText: 'ASSINAR AGORA',\r\n imageUrl: 'https://i.imgur.com/lkt1TLh.jpg'\r\n }).then((result) => {\r\n if (result.value) {\r\n history.push('/pagamentos');\r\n }\r\n })\r\n\r\n } \r\n\r\n const handleClickLimpar = event => {\r\n\r\n setSelectedEstado([0]);\r\n setSelectedCidade([0]);\r\n setSelectedFonte(0);\r\n setSelectedSituacao(0);\r\n\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n setSelectedColumn('temperatura');\r\n setSelectedOrder('asc');\r\n } else {\r\n setSelectedColumn('');\r\n setSelectedOrder('');\r\n }\r\n\r\n dispatch(visualizationAction.getVisualization());\r\n forceUpdate(n => !n);\r\n\r\n }\r\n\r\n const handleClickFav = event => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n dispatch(estacaoAction.favEstacao(event));\r\n } else {\r\n showAlertPagamento();\r\n }\r\n }\r\n\r\n const handleClickUnfav = event => {\r\n if (props.state.pagamento && props.state.pagamento.id > 0) {\r\n dispatch(estacaoAction.unfavEstacao(event));\r\n } else {\r\n showAlertPagamento();\r\n }\r\n }\r\n\r\n function isFav(id) {\r\n var ret = false;\r\n if (estacoesFavoritas != null && estacoesFavoritas.length > 0) {\r\n estacoesFavoritas.forEach(function (fav) {\r\n if (fav.id == id) {\r\n ret = true;\r\n }\r\n });\r\n }\r\n return ret;\r\n }\r\n\r\n const renderOptionsEstado = () => {\r\n return props.state.estado.estado.map((p, i) => {\r\n if (p.paisId === 1) {\r\n return (\r\n {p.nome}\r\n \r\n );\r\n }\r\n });\r\n };\r\n\r\n const renderOptionsCidade = () => {\r\n return props.state.cidade.cidade.map((p, i) => {\r\n if (selectedEstado.includes(p.estadoId) || p.id === 0) {\r\n return (\r\n {p.nome}\r\n \r\n );\r\n }\r\n });\r\n };\r\n\r\n const renderOptionsFonte = () => {\r\n return props.state.fonte.fonte.map((p, i) => {\r\n return (\r\n {p.descricao}\r\n \r\n );\r\n });\r\n };\r\n\r\n const renderOptionsSituacao = () => {\r\n var columnData = [\r\n { value: 1, name: 'Ativas' },\r\n { value: 2, name: 'Inativas' }\r\n ];\r\n return columnData.map((p, i) => {\r\n return (\r\n {p.name}\r\n \r\n );\r\n });\r\n };\r\n\r\n const renderOptionsColumn = () => {\r\n var columnData = [\r\n { value: null, name: 'Selecione ...' },\r\n { value: 'temperatura', name: 'Temperatura' },\r\n { value: 'temperaturaMaxima', name: 'Temperatura Máx.' },\r\n { value: 'temperaturaMinima', name: 'Temperatura Mín.' },\r\n { value: 'amplitudeTermica', name: 'Amplitude Térmica' },\r\n { value: 'ura', name: 'U.R.A.' },\r\n { value: 'po', name: 'P.O.' },\r\n { value: 'chuva', name: 'Chuva' },\r\n { value: 'totalChuvaDia', name: 'Total Chuva Dia' },\r\n { value: 'ventoVelocidade', name: 'Veloc. do Vento' },\r\n { value: 'rajadaVentoMaxima', name: 'Rajada Máx.' }\r\n ];\r\n return columnData.map((p, i) => {\r\n return (\r\n {p.name}\r\n \r\n );\r\n });\r\n };\r\n\r\n const renderOptionsOrder = () => {\r\n var orderData = [\r\n { value: null, name: 'Selecione ...' },\r\n { value: 'asc', name: 'Ascendente' },\r\n { value: 'desc', name: 'Descendente' },\r\n ];\r\n return orderData.map((p, i) => {\r\n return (\r\n {p.name}\r\n \r\n );\r\n });\r\n };\r\n\r\n const { classes } = props;\r\n const { estacoesFavoritas } = props.state.visualization.visualization;\r\n const { estacoes } = props.state.visualization.visualization;\r\n\r\n const getNested = (obj, selectedColumn) => selectedColumn.split('.').reduce((a, prop) => a[prop], obj);\r\n const myCompare = (a, b) => {\r\n const col = getNested(a, selectedColumn);\r\n const colAtiva = !getNested(a, 'ativa');\r\n var noValue = false;\r\n\r\n if (selectedColumn !== 'nome' && (isNaN(col) || col == null)) {\r\n noValue = true;\r\n }\r\n\r\n return typeof selectedColumn === 'nome'\r\n ? col.localeCompare(getNested(b, selectedColumn))\r\n : noValue || colAtiva - !getNested(b, 'ativa') || (selectedOrder === 'asc' ? col - getNested(b, selectedColumn) : getNested(b, selectedColumn) - col);\r\n };\r\n\r\n if (estacoesFavoritas != null) {\r\n if (selectedColumn != null && selectedColumn != '') {\r\n estacoesFavoritas.sort(myCompare);\r\n } else {\r\n shuffle(estacoesFavoritas);\r\n }\r\n }\r\n if (estacoes != null) {\r\n if (selectedColumn != null && selectedColumn != '') {\r\n estacoes.sort(myCompare);\r\n } else {\r\n shuffle(estacoes);\r\n }\r\n \r\n }\r\n\r\n function shuffle(array) {\r\n let currentIndex = array.length, randomIndex;\r\n\r\n // While there remain elements to shuffle.\r\n while (currentIndex != 0) {\r\n\r\n // Pick a remaining element.\r\n randomIndex = Math.floor(Math.random() * currentIndex);\r\n currentIndex--;\r\n\r\n // And swap it with the current element.\r\n [array[currentIndex], array[randomIndex]] = [\r\n array[randomIndex], array[currentIndex]];\r\n }\r\n\r\n return array;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Estado\r\n handleChangeSelectedEstado(event.target.value)}\r\n input={}\r\n multiple\r\n >\r\n \r\n Selecione ...\r\n \r\n {renderOptionsEstado()}\r\n \r\n \r\n \r\n \r\n \r\n Cidade\r\n handleChangeSelectedCidade(event.target.value)}\r\n input={}\r\n multiple\r\n >\r\n \r\n Selecione ...\r\n \r\n {renderOptionsCidade()}\r\n \r\n \r\n \r\n \r\n \r\n Fonte\r\n handleChangeSelectedFonte(event.target.value)}\r\n input={}\r\n >\r\n \r\n Selecione ...\r\n \r\n {renderOptionsFonte()}\r\n \r\n \r\n \r\n \r\n \r\n Situação\r\n handleChangeSelectedSituacao(event.target.value)}\r\n input={}\r\n >\r\n \r\n Selecione ...\r\n \r\n {renderOptionsSituacao()}\r\n \r\n \r\n \r\n \r\n \r\n Ordenar por\r\n handleChangeSelectedColumn(event.target.value)}\r\n input={}\r\n >\r\n {renderOptionsColumn()}\r\n \r\n \r\n \r\n \r\n \r\n Asc./Desc.\r\n handleChangeSelectedOrder(event.target.value)}\r\n input={}\r\n >\r\n {renderOptionsOrder()}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n setView(1)} >\r\n \r\n \r\n \r\n \r\n setView(2)} >\r\n \r\n \r\n \r\n \r\n setView(3)} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {(view == 1 ?\r\n\r\n (estacoesFavoritas != null && estacoesFavoritas.length > 0 ?\r\n\r\n \r\n \r\n Estações Favoritas\r\n
    \r\n {\r\n\r\n estacoesFavoritas.map(n => {\r\n\r\n if (!selectedCidade.includes(0)) {\r\n if (selectedCidade.length > 0 && !(selectedCidade.includes(n.cidadeId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (!selectedEstado.includes(0)) {\r\n if (selectedEstado.length > 0 && !(selectedEstado.includes(n.estadoId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (selectedFonte !== '' && selectedFonte !== 0 && n.fonteId !== selectedFonte) {\r\n return;\r\n }\r\n\r\n if (selectedSituacao !== '' && selectedSituacao !== 0 && n.ativa.toString() !== (selectedSituacao == 1 ? 'true' : 'false')) {\r\n return;\r\n }\r\n\r\n var tempScale = ['#170D1E', '#2D1B34', '#43284D', '#543261', '#3E3061',\r\n '#31326F', '#394586', '#4543A0', '#3E6391', '#487FA6', '#488CA7',\r\n '#4593A0', '#4899A7', '#48A6A7', '#48A79A', '#49A781', '#49A774',\r\n '#49A767', '#49A75A', '#49A744', '#51A749', '#7AA947', '#92A849',\r\n '#9FA849', '#A8A449', '#A8974A', '#B38240', '#C56841', '#D05835',\r\n '#DF1E1E', '#CB1C12', '#C10000', '#AA0000', '#8C0000', '#800000',\r\n '#640000', '#420000', '#170000'];\r\n\r\n const tempValue = (selectedColumn == 'temperatura' ? (parseFloat(n.temperatura) + 12) : (selectedColumn == 'temperaturaMinima' ? (parseFloat(n.temperaturaMinima) + 12) : (selectedColumn == 'temperaturaMaxima' ? (parseFloat(n.temperaturaMaxima) + 12) : (parseFloat(n.temperatura) + 12))));\r\n var scaleNumber = Math.round(tempValue / 1.5);\r\n var bgcolor = \"#999\";\r\n var seconds = (new Date() - new Date(n.dataAtualizacao).getTime()) / 1000;\r\n\r\n if (n.ativa) {\r\n if (scaleNumber > (tempScale.length - 1)) {\r\n scaleNumber = (tempScale.length - 1);\r\n }\r\n if (scaleNumber < 0) {\r\n scaleNumber = 0;\r\n }\r\n bgcolor = tempScale[scaleNumber];\r\n }\r\n\r\n var img = imgTermometro_0_10;\r\n if (n.temperatura <= 10) {\r\n img = imgTermometro_0_10;\r\n } else if (n.temperatura > 10 && n.temperatura <= 20) {\r\n img = imgTermometro_10_20;\r\n } else if (n.temperatura > 20) {\r\n img = imgTermometro_20_30;\r\n }\r\n\r\n n.temperatura = parseFloat(n.temperatura).toFixed(1);\r\n n.temperaturaMinima = parseFloat(n.temperaturaMinima).toFixed(1);\r\n n.temperaturaMaxima = parseFloat(n.temperaturaMaxima).toFixed(1);\r\n n.po = parseFloat(n.po).toFixed(1);\r\n n.ventoVelocidade = parseFloat(n.ventoVelocidade).toFixed(1);\r\n\r\n if (n.rajadaVentoMaxima) {\r\n n.rajadaVentoMaxima = parseFloat(n.rajadaVentoMaxima).toFixed(1);\r\n } else {\r\n n.rajadaVentoMaxima = parseFloat(0).toFixed(1);\r\n }\r\n\r\n if (n.totalChuvaDia) {\r\n n.totalChuvaDia = parseFloat(n.totalChuvaDia).toFixed(2);\r\n } else {\r\n n.totalChuvaDia = parseFloat(0).toFixed(2);\r\n }\r\n\r\n var styles = { transform: `rotate(${90 + n.ventoGrau}deg)`, transformOrigin: '50% 50%' };\r\n\r\n var location = '';\r\n if (n.uf != null && n.cidadeNome != null) {\r\n location = n.cidadeNome + ', ' + n.uf;\r\n } else if (n.uf != null) {\r\n location = n.uf;\r\n } else if (n.cidadeNome != null) {\r\n location = n.cidadeNome;\r\n }\r\n\r\n var nome = (n.apelido ? n.apelido : n.nome);\r\n if (nome.length > 25) {\r\n nome = nome.substring(0, 25);\r\n }\r\n\r\n function displayTime(seconds) {\r\n const format = val => `${Math.floor(val)}`.slice(-2)\r\n const hours = seconds / 3600\r\n const minutes = (seconds % 3600) / 60\r\n\r\n if (format(hours) != '0' && format(minutes) != '0' && format(seconds) != '0') {\r\n return format(hours) + 'h ' + format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(minutes) != '0' && format(seconds) != '0') {\r\n return format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(seconds) != '0') {\r\n return format(seconds % 60) + 's';\r\n } else {\r\n return '-';\r\n }\r\n\r\n }\r\n\r\n var link = '';\r\n if (n.fonteId === 3) {\r\n link = 'https://tempo.inmet.gov.br/GraficosDiarios/' + n.codigo;\r\n } else if (n.fonteId === 2) {\r\n link = 'https://www.wunderground.com/dashboard/pws/' + n.codigo;\r\n } else if (n.link != null) {\r\n link = n.link;\r\n }\r\n\r\n return (\r\n
  • \r\n
    \r\n
    \r\n {link !== ''\r\n ?\r\n \r\n :\r\n
    {nome}
    \r\n }\r\n
    {location}
    \r\n
    \r\n
    \r\n \r\n {n.temperatura}ºC \r\n
    \r\n
    \r\n
    \r\n

    Temp. Máx.

    {(isNaN(n.temperaturaMaxima) ? '' : n.temperaturaMaxima + 'ºC')}

    \r\n

    Temp. Mín.

    {(isNaN(n.temperaturaMinima) ? '' : n.temperaturaMinima + 'ºC')}

    \r\n

    U.R.A.

    {((isNaN(n.ura) || n.ura == null) ? '' : n.ura + '%')}

    \r\n

    P.O.

    {(isNaN(n.po) ? '' : n.po + 'ºC')}

    \r\n

    Chuva

    {((isNaN(n.chuva) || n.chuva == null) ? '' : n.chuva + 'mm/h')}

    \r\n

    Tot. Chuva Dia

    {n.totalChuvaDia}mm

    \r\n

    Pressão

    {((isNaN(n.pressao) || n.pressao == null) ? '' : n.pressao + 'hPa')}

    \r\n

    Rajada Máx.

    {((isNaN(n.rajadaVentoMaxima) || n.rajadaVentoMaxima == null) ? '' : n.rajadaVentoMaxima + 'Km/h')}

    \r\n

    Atualizado há

    {displayTime(seconds)}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {(isNaN(n.ventoVelocidade) || n.ventoVelocidade == null ? '' : n.ventoVelocidade + ' Km/h')}
    \r\n
    \r\n
    \r\n
    \r\n {(n.estacaoFavorita != null && n.estacaoFavorita.length > 0 && isFav(n.id) ?\r\n \r\n handleClickUnfav(n.id)} />\r\n \r\n :\r\n \r\n handleClickFav(n.id)} />\r\n \r\n )}\r\n
    \r\n
  • \r\n );\r\n\r\n })\r\n\r\n }\r\n\r\n
\r\n
\r\n
\r\n\r\n :\r\n\r\n null\r\n )\r\n\r\n :\r\n\r\n null\r\n )}\r\n\r\n {(view == 1 ?\r\n\r\n (estacoes != null && estacoes.length > 0 ?\r\n\r\n \r\n \r\n Todas Estações\r\n
    \r\n {\r\n\r\n estacoes.map(n => {\r\n\r\n if (!selectedCidade.includes(0)) {\r\n if (selectedCidade.length > 0 && !(selectedCidade.includes(n.cidadeId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (!selectedEstado.includes(0)) {\r\n if (selectedEstado.length > 0 && !(selectedEstado.includes(n.estadoId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (selectedFonte !== '' && selectedFonte !== 0 && n.fonteId !== selectedFonte) {\r\n return;\r\n }\r\n\r\n if (selectedSituacao !== '' && selectedSituacao !== 0 && n.ativa.toString() !== (selectedSituacao == 1 ? 'true' : 'false')) {\r\n return;\r\n }\r\n\r\n var tempScale = ['#170D1E', '#2D1B34', '#43284D', '#543261', '#3E3061',\r\n '#31326F', '#394586', '#4543A0', '#3E6391', '#487FA6', '#488CA7',\r\n '#4593A0', '#4899A7', '#48A6A7', '#48A79A', '#49A781', '#49A774',\r\n '#49A767', '#49A75A', '#49A744', '#51A749', '#7AA947', '#92A849',\r\n '#9FA849', '#A8A449', '#A8974A', '#B38240', '#C56841', '#D05835',\r\n '#DF1E1E', '#CB1C12', '#C10000', '#AA0000', '#8C0000', '#800000',\r\n '#640000', '#420000', '#170000'];\r\n\r\n const tempValue = (selectedColumn == 'temperatura' ? (parseFloat(n.temperatura) + 12) : (selectedColumn == 'temperaturaMinima' ? (parseFloat(n.temperaturaMinima) + 12) : (selectedColumn == 'temperaturaMaxima' ? (parseFloat(n.temperaturaMaxima) + 12) : (parseFloat(n.temperatura) + 12))));\r\n var scaleNumber = Math.round(tempValue / 1.5);\r\n var bgcolor = \"#999\";\r\n var seconds = (new Date() - new Date(n.dataAtualizacao).getTime()) / 1000;\r\n\r\n if (n.ativa) {\r\n if (scaleNumber > (tempScale.length - 1)) {\r\n scaleNumber = (tempScale.length - 1);\r\n }\r\n if (scaleNumber < 0) {\r\n scaleNumber = 0;\r\n }\r\n bgcolor = tempScale[scaleNumber];\r\n }\r\n\r\n var img = imgTermometro_0_10;\r\n if (n.temperatura <= 10) {\r\n img = imgTermometro_0_10;\r\n } else if (n.temperatura > 10 && n.temperatura <= 20) {\r\n img = imgTermometro_10_20;\r\n } else if (n.temperatura > 20) {\r\n img = imgTermometro_20_30;\r\n }\r\n\r\n n.temperatura = parseFloat(n.temperatura).toFixed(1);\r\n n.temperaturaMinima = parseFloat(n.temperaturaMinima).toFixed(1);\r\n n.temperaturaMaxima = parseFloat(n.temperaturaMaxima).toFixed(1);\r\n n.po = parseFloat(n.po).toFixed(1);\r\n n.ventoVelocidade = parseFloat(n.ventoVelocidade).toFixed(1);\r\n\r\n if (n.rajadaVentoMaxima) {\r\n n.rajadaVentoMaxima = parseFloat(n.rajadaVentoMaxima).toFixed(1);\r\n } else {\r\n n.rajadaVentoMaxima = parseFloat(0).toFixed(1);\r\n }\r\n\r\n if (n.totalChuvaDia) {\r\n n.totalChuvaDia = parseFloat(n.totalChuvaDia).toFixed(2);\r\n } else {\r\n n.totalChuvaDia = parseFloat(0).toFixed(2);\r\n }\r\n\r\n var styles = { transform: `rotate(${90 + n.ventoGrau}deg)`, transformOrigin: '50% 50%' };\r\n\r\n var location = '';\r\n if (n.uf != null && n.cidadeNome != null) {\r\n location = n.cidadeNome + ', ' + n.uf;\r\n } else if (n.uf != null) {\r\n location = n.uf;\r\n } else if (n.cidadeNome != null) {\r\n location = n.cidadeNome;\r\n }\r\n\r\n var nome = (n.apelido ? n.apelido : n.nome);\r\n if (nome.length > 25) {\r\n nome = nome.substring(0, 25);\r\n }\r\n\r\n function displayTime(seconds) {\r\n const format = val => `${Math.floor(val)}`.slice(-2)\r\n const hours = seconds / 3600\r\n const minutes = (seconds % 3600) / 60\r\n\r\n if (format(hours) != '0' && format(minutes) != '0' && format(seconds) != '0') {\r\n return format(hours) + 'h ' + format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(minutes) != '0' && format(seconds) != '0') {\r\n return format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(seconds) != '0') {\r\n return format(seconds % 60) + 's';\r\n } else {\r\n return '-';\r\n }\r\n\r\n }\r\n\r\n var link = '';\r\n if (n.fonteId === 3) {\r\n link = 'https://tempo.inmet.gov.br/GraficosDiarios/' + n.codigo;\r\n } else if (n.fonteId === 2) {\r\n link = 'https://www.wunderground.com/dashboard/pws/' + n.codigo;\r\n } else if (n.link != null) {\r\n link = n.link;\r\n }\r\n\r\n return (\r\n
  • \r\n
    \r\n
    \r\n {link !== ''\r\n ?\r\n \r\n :\r\n
    {nome}
    \r\n }\r\n
    {location}
    \r\n
    \r\n
    \r\n \r\n {n.temperatura}ºC \r\n
    \r\n
    \r\n
    \r\n

    Temp. Máx.

    {(isNaN(n.temperaturaMaxima) ? '' : n.temperaturaMaxima + 'ºC')}

    \r\n

    Temp. Mín.

    {(isNaN(n.temperaturaMinima) ? '' : n.temperaturaMinima + 'ºC')}

    \r\n

    U.R.A.

    {((isNaN(n.ura) || n.ura == null) ? '' : n.ura + '%')}

    \r\n

    P.O.

    {(isNaN(n.po) ? '' : n.po + 'ºC')}

    \r\n

    Chuva

    {((isNaN(n.chuva) || n.chuva == null) ? '' : n.chuva + 'mm/h')}

    \r\n

    Tot. Chuva Dia

    {n.totalChuvaDia}mm

    \r\n

    Pressão

    {((isNaN(n.pressao) || n.pressao == null) ? '' : n.pressao + 'hPa')}

    \r\n

    Rajada Máx.

    {((isNaN(n.rajadaVentoMaxima) || n.rajadaVentoMaxima == null) ? '' : n.rajadaVentoMaxima + 'Km/h')}

    \r\n

    Atualizado há

    {displayTime(seconds)}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {(isNaN(n.ventoVelocidade) || n.ventoVelocidade == null ? '' : n.ventoVelocidade + ' Km/h')}
    \r\n
    \r\n
    \r\n
    \r\n {(n.estacaoFavorita != null && n.estacaoFavorita.length > 0 && isFav(n.id) ?\r\n \r\n handleClickUnfav(n.id)} />\r\n \r\n :\r\n \r\n handleClickFav(n.id)} />\r\n \r\n )}\r\n
    \r\n
  • \r\n );\r\n\r\n })\r\n\r\n }\r\n
\r\n
\r\n
\r\n\r\n :\r\n\r\n \r\n \r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n )\r\n\r\n : (view == 2 ?\r\n\r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n Localização\r\n Temp. (Cº)\r\n Temp. Mín. (Cº)\r\n Temp. Máx. (Cº)\r\n U.R.A\r\n P.O (Cº)\r\n Chuva (mm/h)\r\n Tot. Chuva Dia (mm)\r\n Pressão (hPa)\r\n Veloc. Vento (km/h)\r\n Rajada Máxima (km/h)\r\n \r\n \r\n \r\n {\r\n estacoes.map(n => {\r\n\r\n if (!selectedCidade.includes(0)) {\r\n if (selectedCidade.length > 0 && !(selectedCidade.includes(n.cidadeId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (!selectedEstado.includes(0)) {\r\n if (selectedEstado.length > 0 && !(selectedEstado.includes(n.estadoId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (selectedFonte !== '' && selectedFonte !== 0 && n.fonteId !== selectedFonte) {\r\n return;\r\n }\r\n\r\n if (selectedSituacao !== '' && selectedSituacao !== 0 && n.ativa.toString() !== (selectedSituacao == 1 ? 'true' : 'false')) {\r\n return;\r\n }\r\n\r\n //var tempScale = ['#170D1E', '#2D1B34', '#43284D', '#543261', '#3E3061',\r\n // '#31326F', '#394586', '#4543A0', '#3E6391', '#487FA6', '#488CA7',\r\n // '#4593A0', '#4899A7', '#48A6A7', '#48A79A', '#49A781', '#49A774',\r\n // '#49A767', '#49A75A', '#49A744', '#51A749', '#7AA947', '#92A849',\r\n // '#9FA849', '#A8A449', '#A8974A', '#B38240', '#C56841', '#D05835',\r\n // '#DF1E1E', '#CB1C12', '#C10000', '#AA0000', '#8C0000', '#800000',\r\n // '#640000', '#420000', '#170000'];\r\n\r\n //const tempValue = (selectedColumn == 'temperatura' ? (parseFloat(n.temperatura) + 12) : (selectedColumn == 'temperaturaMinima' ? (parseFloat(n.temperaturaMinima) + 12) : (selectedColumn == 'temperaturaMaxima' ? (parseFloat(n.temperaturaMaxima) + 12) : (parseFloat(n.parseFloat) + 12))));\r\n //var scaleNumber = Math.round(tempValue / 1.5);\r\n //var bgcolor = \"#999\";\r\n //var seconds = (new Date() - new Date(n.dataAtualizacao).getTime()) / 1000;\r\n\r\n //if (n.ativa) {\r\n // if (scaleNumber > (tempScale.length - 1)) {\r\n // scaleNumber = (tempScale.length - 1);\r\n // }\r\n // if (scaleNumber < 0) {\r\n // scaleNumber = 0;\r\n // }\r\n // bgcolor = tempScale[scaleNumber];\r\n //}\r\n\r\n //var img = imgTermometro_0_10;\r\n //if (n.temperatura <= 10) {\r\n // img = imgTermometro_0_10;\r\n //} else if (n.temperatura > 10 && n.temperatura <= 20) {\r\n // img = imgTermometro_10_20;\r\n //} else if (n.temperatura > 20) {\r\n // img = imgTermometro_20_30;\r\n //}\r\n\r\n n.temperatura = parseFloat(n.temperatura).toFixed(1);\r\n n.temperaturaMinima = parseFloat(n.temperaturaMinima).toFixed(1);\r\n n.temperaturaMaxima = parseFloat(n.temperaturaMaxima).toFixed(1);\r\n n.po = parseFloat(n.po).toFixed(1);\r\n n.ventoVelocidade = parseFloat(n.ventoVelocidade).toFixed(1);\r\n\r\n if (n.rajadaVentoMaxima) {\r\n n.rajadaVentoMaxima = parseFloat(n.rajadaVentoMaxima).toFixed(1);\r\n } else {\r\n n.rajadaVentoMaxima = parseFloat(0).toFixed(1);\r\n }\r\n\r\n if (n.totalChuvaDia) {\r\n n.totalChuvaDia = parseFloat(n.totalChuvaDia).toFixed(2);\r\n } else {\r\n n.totalChuvaDia = parseFloat(0).toFixed(2);\r\n }\r\n\r\n var location = '';\r\n if (n.uf != null && n.cidadeNome != null) {\r\n location = n.cidadeNome + ', ' + n.uf;\r\n } else if (n.uf != null) {\r\n location = n.uf;\r\n } else if (n.cidadeNome != null) {\r\n location = n.cidadeNome;\r\n }\r\n\r\n var nome = (n.apelido ? n.apelido : n.nome);\r\n if (nome.length > 25) {\r\n nome = nome.substring(0, 25);\r\n }\r\n\r\n //function displayTime(seconds) {\r\n // const format = val => `${Math.floor(val)}`.slice(-2)\r\n // const hours = seconds / 3600\r\n // const minutes = (seconds % 3600) / 60\r\n\r\n // if (format(hours) != '0' && format(minutes) != '0' && format(seconds) != '0') {\r\n // return format(hours) + 'h ' + format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n // } else if (format(minutes) != '0' && format(seconds) != '0') {\r\n // return format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n // } else if (format(seconds) != '0') {\r\n // return format(seconds % 60) + 's';\r\n // } else {\r\n // return '-';\r\n // }\r\n\r\n //}\r\n\r\n //var link = '';\r\n //if (n.fonteId === 3) {\r\n // link = 'https://tempo.inmet.gov.br/GraficosDiarios/' + n.codigo;\r\n //} else if (n.fonteId === 2) {\r\n // link = 'https://www.wunderground.com/dashboard/pws/' + n.codigo;\r\n //} else if (n.link != null) {\r\n // link = n.link;\r\n //}\r\n\r\n return (\r\n \r\n \r\n {nome}\r\n \r\n \r\n {location}\r\n \r\n \r\n {isNaN(n.temperatura) ? '' : n.temperatura}\r\n \r\n \r\n {isNaN(n.temperaturaMinima) ? '' : n.temperaturaMinima}\r\n \r\n \r\n {isNaN(n.temperaturaMaxima) ? '' : n.temperaturaMaxima}\r\n \r\n \r\n {isNaN(n.ura) ? '' : n.ura}\r\n \r\n \r\n {isNaN(n.po) ? '' : n.po}\r\n \r\n \r\n {isNaN(n.chuva) ? '' : n.chuva}\r\n \r\n \r\n {isNaN(n.totalChuvaDia) ? '' : n.totalChuvaDia}\r\n \r\n \r\n {isNaN(n.pressao) ? '' : n.pressao}\r\n \r\n \r\n {isNaN(n.ventoVelocidade) ? '' : n.ventoVelocidade}\r\n \r\n \r\n {isNaN(n.rajadaVentoMaxima) ? '' : n.rajadaVentoMaxima}\r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n : (view == 3 ?\r\n\r\n
\r\n \r\n
\r\n\r\n :\r\n \r\n \r\n
\r\n
\r\n Recurso disponível apenas para assinantes. Dados fictícios. \r\n
\r\n
\r\n

Efetue a assinatura para prosseguir com a visualização. Por apenas R$ 6,67 por mês (R$ 80,00/ano), você tem acesso a filtros e estações de todo o Brasil. Para novos visitantes há a possibilidade testar por 7 dias gratuitamente.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n\r\n ))}\r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nVisualization.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedVisualizationPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Visualization)));\r\nexport { connectedVisualizationPage as Visualization };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport styled from 'styled-components';\r\nimport GoogleMapReact from 'google-map-react';\r\n\r\nconst Wrapper = styled.main`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nconst GoogleMap = ({ children, ...props }) => (\r\n \r\n \r\n {children}\r\n \r\n \r\n);\r\n\r\nGoogleMap.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]),\r\n};\r\n\r\nGoogleMap.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport default GoogleMap;","import React, { useState, useEffect } from 'react';\r\nimport { connect, useDispatch } from \"react-redux\";\r\nimport { visualizationAction } from '../_actions';\r\nimport PropTypes from 'prop-types';\r\nimport GoogleMap from './GoogleMap';\r\nimport { Grid, Button } from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nconst mapStyles = {\r\n width: '100%',\r\n height: '100vh'\r\n};\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit * 2,\r\n marginBottom: theme.spacing.unit * 1.2,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n mapFrame: {\r\n width: '100%',\r\n height: '100vh',\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex'\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n clearButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\n\r\n// InfoWindow component\r\nconst InfoWindow = (props) => {\r\n\r\n const { place } = props;\r\n const infoWindowStyle = {\r\n position: 'relative',\r\n bottom: 150,\r\n left: '-45px',\r\n width: 220,\r\n backgroundColor: 'white',\r\n boxShadow: '0 2px 7px 1px rgba(0, 0, 0, 0.3)',\r\n padding: 10,\r\n fontSize: 14,\r\n zIndex: 100,\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {place.nome}\r\n \r\n \r\n \r\n \r\n {place.location}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Temperatura\r\n \r\n \r\n {place.temperatura}ºC\r\n \r\n \r\n \r\n \r\n Temperatura Máx.\r\n \r\n \r\n {place.temperaturaMaxima}ºC\r\n \r\n \r\n \r\n \r\n Temperatura Mín.\r\n \r\n \r\n {place.temperaturaMinima}ºC\r\n \r\n \r\n \r\n \r\n U.R.A.\r\n \r\n \r\n {place.ura}%\r\n \r\n \r\n \r\n \r\n P.O.\r\n \r\n \r\n {place.po}ºC\r\n \r\n \r\n \r\n \r\n Chuva\r\n \r\n \r\n {place.chuva}mm/h\r\n \r\n \r\n \r\n \r\n Tot. Chuva Dia\r\n \r\n \r\n {place.totalChuvaDia}mm\r\n \r\n \r\n \r\n \r\n Pressão\r\n \r\n \r\n {place.pressao}hPa\r\n \r\n \r\n \r\n \r\n Rajada Máx.\r\n \r\n \r\n {place.rajadaVentoMaxima}Km/h\r\n \r\n \r\n \r\n \r\n Atualizado há\r\n \r\n \r\n {place.atualizacao}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\n// Marker component\r\nconst Marker = ({ key, show, place, color, selectedColumn }) => {\r\n\r\n const spanStyle = {\r\n display: 'table-cell',\r\n verticalAlign: 'middle',\r\n fontSize: 10,\r\n color: 'black'\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {\r\n (selectedColumn == 'temperatura' ? place.temperatura : (selectedColumn == 'temperaturaMinima' ? place.temperaturaMinima : (selectedColumn == 'temperaturaMaxima' ? place.temperaturaMaxima : null)))\r\n }\r\n \r\n
\r\n {show && }\r\n \r\n );\r\n};\r\n\r\nconst MarkerInfoWindow = (props) => {\r\n\r\n const [places, setPlaces] = useState([]);\r\n const [, forceUpdate] = React.useState(0);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n\r\n dispatch(visualizationAction.getVisualization());\r\n setPlaces(props.state.visualization.visualization.estacoes);\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n setPlaces(props.state.visualization.visualization.estacoes);\r\n\r\n }, [props.state.visualization.visualization.estacoes])\r\n\r\n const onChildClickCallback = (key) => {\r\n\r\n //setPlaces(\r\n // props.state.visualization.visualization.map(item =>\r\n // item.id == key\r\n // ? { ...item, show: true }\r\n // : { ...item, show: false }\r\n // ));\r\n\r\n //forceUpdate(n => !n);\r\n\r\n };\r\n\r\n const handleClose = () => {\r\n\r\n //setPlaces(\r\n // props.state.visualization.visualization.map(item =>\r\n // item.id == 0\r\n // ? { ...item, show: true }\r\n // : { ...item, show: false }\r\n // ));\r\n\r\n //forceUpdate(n => !n);\r\n\r\n }\r\n\r\n function round(value, precision) {\r\n var multiplier = Math.pow(10, precision || 0);\r\n return Math.round(value * multiplier) / multiplier;\r\n }\r\n\r\n //const { places } = this.state;\r\n\r\n return (\r\n <>\r\n {((places != null && places.length > 0) ? (\r\n
\r\n \r\n {places.map((n) => {\r\n\r\n if (n.latLon == null || n.latLon === '') {\r\n return;\r\n }\r\n\r\n if (!props.selectedCidade.includes(0)) {\r\n if (props.selectedCidade.length > 0 && !(props.selectedCidade.includes(n.cidadeId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (!props.selectedEstado.includes(0)) {\r\n if (props.selectedEstado.length > 0 && !(props.selectedEstado.includes(n.estadoId))) {\r\n return;\r\n }\r\n }\r\n\r\n if (props.selectedFonte !== '' && props.selectedFonte !== 0 && n.fonteId !== props.selectedFonte) {\r\n return;\r\n }\r\n\r\n if (props.selectedSituacao !== '' && props.selectedSituacao !== 0 && n.ativa.toString() !== (props.selectedSituacao == 1 ? 'true' : 'false')) {\r\n return;\r\n }\r\n\r\n var tempScale = ['#170D1E', '#2D1B34', '#43284D', '#543261', '#3E3061',\r\n '#31326F', '#394586', '#4543A0', '#3E6391', '#487FA6', '#488CA7',\r\n '#4593A0', '#4899A7', '#48A6A7', '#48A79A', '#49A781', '#49A774',\r\n '#49A767', '#49A75A', '#49A744', '#51A749', '#7AA947', '#92A849',\r\n '#9FA849', '#A8A449', '#A8974A', '#B38240', '#C56841', '#D05835',\r\n '#DF1E1E', '#CB1C12', '#C10000', '#AA0000', '#8C0000', '#800000',\r\n '#640000', '#420000', '#170000'];\r\n\r\n var tempValue = n.temperatura;\r\n if (props.selectedColumn == 'temperaturaMinima') {\r\n tempValue = n.temperaturaMinima;\r\n }\r\n else if (props.selectedColumn == 'temperaturaMaxima') {\r\n tempValue = n.temperaturaMaxima;\r\n }\r\n\r\n var scaleNumber = round((tempValue + 12) / 1.5);\r\n //console.log('scaleNumberMap', scaleNumber);\r\n //console.log('tempValueMap', tempValue);\r\n var bgcolor = \"#999\";\r\n var seconds = (new Date() - new Date(n.dataAtualizacao).getTime()) / 1000;\r\n\r\n if (n.ativa) {\r\n if (scaleNumber > (tempScale.length - 1)) {\r\n scaleNumber = (tempScale.length - 1);\r\n }\r\n if (scaleNumber < 0) {\r\n scaleNumber = 0;\r\n }\r\n bgcolor = tempScale[scaleNumber];\r\n }\r\n\r\n n.temperatura = parseFloat(n.temperatura).toFixed(1);\r\n n.temperaturaMinima = parseFloat(n.temperaturaMinima).toFixed(1);\r\n n.temperaturaMaxima = parseFloat(n.temperaturaMaxima).toFixed(1);\r\n n.po = parseFloat(n.po).toFixed(1);\r\n n.ventoVelocidade = parseFloat(n.ventoVelocidade).toFixed(1);\r\n\r\n if (n.rajadaVentoMaxima) {\r\n n.rajadaVentoMaxima = parseFloat(n.rajadaVentoMaxima).toFixed(1);\r\n } else {\r\n n.rajadaVentoMaxima = parseFloat(0).toFixed(1);\r\n }\r\n\r\n if (n.totalChuvaDia) {\r\n n.totalChuvaDia = parseFloat(n.totalChuvaDia).toFixed(2);\r\n } else {\r\n n.totalChuvaDia = parseFloat(0).toFixed(2);\r\n }\r\n\r\n var location = '';\r\n if (n.uf != null && n.cidadeNome != null) {\r\n location = n.cidadeNome + ', ' + n.uf;\r\n } else if (n.uf != null) {\r\n location = n.uf;\r\n } else if (n.cidadeNome != null) {\r\n location = n.cidadeNome;\r\n }\r\n\r\n var nome = (n.apelido ? n.apelido : n.nome);\r\n if (nome.length > 25) {\r\n nome = nome.substring(0, 25);\r\n }\r\n\r\n function displayTime(seconds) {\r\n const format = val => `${Math.floor(val)}`.slice(-2)\r\n const hours = seconds / 3600\r\n const minutes = (seconds % 3600) / 60\r\n\r\n if (format(hours) != '0' && format(minutes) != '0' && format(seconds) != '0') {\r\n return format(hours) + 'h ' + format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(minutes) != '0' && format(seconds) != '0') {\r\n return format(minutes) + 'm ' + format(seconds % 60) + 's';\r\n } else if (format(seconds) != '0') {\r\n return format(seconds % 60) + 's';\r\n } else {\r\n return '-';\r\n }\r\n\r\n }\r\n\r\n let objPlace = {\r\n nome: nome,\r\n location: location,\r\n temperatura: parseFloat(n.temperatura),\r\n temperaturaMinima: n.temperaturaMinima,\r\n temperaturaMaxima: n.temperaturaMaxima,\r\n ura: n.ura,\r\n po: n.po,\r\n chuva: n.chuva,\r\n totalChuvaDia: n.totalChuvaDia,\r\n pressao: n.pressao,\r\n rajadaVentoMaxima: n.rajadaVentoMaxima,\r\n atualizacao: displayTime(seconds)\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n })}\r\n \r\n
\r\n )\r\n :\r\n null)}\r\n \r\n );\r\n\r\n}\r\n\r\nInfoWindow.propTypes = {\r\n place: PropTypes.shape({\r\n nome: PropTypes.string,\r\n location: PropTypes.string,\r\n temperatura: PropTypes.number,\r\n temperaturaMinima: PropTypes.string,\r\n temperaturaMaxima: PropTypes.string,\r\n ura: PropTypes.number,\r\n po: PropTypes.number,\r\n chuva: PropTypes.string,\r\n totalChuvaDia: PropTypes.string,\r\n pressao: PropTypes.number,\r\n rajadaVentoMaxima: PropTypes.string,\r\n atualizacao: PropTypes.string\r\n }).isRequired,\r\n};\r\n\r\nMarker.propTypes = {\r\n show: PropTypes.bool.isRequired,\r\n place: PropTypes.shape({\r\n nome: PropTypes.string,\r\n location: PropTypes.string,\r\n temperatura: PropTypes.number,\r\n temperaturaMinima: PropTypes.string,\r\n temperaturaMaxima: PropTypes.string,\r\n ura: PropTypes.number,\r\n po: PropTypes.string,\r\n chuva: PropTypes.number,\r\n totalChuvaDia: PropTypes.string,\r\n pressao: PropTypes.number,\r\n rajadaVentoMaxima: PropTypes.string,\r\n atualizacao: PropTypes.string\r\n }).isRequired,\r\n};\r\n\r\nMarkerInfoWindow.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedMarkerInfoWindowPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(MarkerInfoWindow)));\r\nexport { connectedMarkerInfoWindowPage as MarkerInfoWindow };","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHkAAAB8CAYAAABNNx/6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEJDOTg0RkQxMzVEMTFFM0JFQTJENjMxMkMzRkY3QTEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEJDOTg0RkUxMzVEMTFFM0JFQTJENjMxMkMzRkY3QTEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4QkM5ODRGQjEzNUQxMUUzQkVBMkQ2MzEyQzNGRjdBMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4QkM5ODRGQzEzNUQxMUUzQkVBMkQ2MzEyQzNGRjdBMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlJp1+kAAAyWSURBVHja7F0LcBXV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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHkAAAAQCAYAAAAyAdDbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTE3QkIyODExMzVEMTFFM0I3RTlBNDU5OTY1OUM5M0QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTE3QkIyODIxMzVEMTFFM0I3RTlBNDU5OTY1OUM5M0QiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBMTdCQjI3RjEzNUQxMUUzQjdFOUE0NTk5NjU5QzkzRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBMTdCQjI4MDEzNUQxMUUzQjdFOUE0NTk5NjU5QzkzRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po5boj4AAAFTSURBVHjaYvz//z8DSaCesRZIHmZo/H+AYRQMCcBEhh4fIF4NjOyg0eAbvpG8HIhFgHgtMKInALH4aDAOv0heBsQboex8IN4HjOj80aAcvICR5DoZUi8bAklQncyHJHoeiOeDceP/L6NBO9QjGRLR9SASZAaazD0gXgUt1u8CI/zraDAP3UjmheZmIxwq/oGLcgaGNUB8BohvjubwoRfJrEByKRCHEqnjMhCfAtfpjf/3jQb94G54wQAodXwjQf1nIP4xGuT0BywU6OUBYn088qDieg+4Tw0prq8Cc/Dv0SAfWpFcCsQGWMSfQBtei4H49mjDa+h2oUA5+DAQ8yKJ3oS2qCcDI/bdaNAO5ZxczygEJGuQIvgpEM8D4q7R1vPwKa79gNgbygaNfrUAI/f6aFAOr0iOAOKfQFwAjNxZo0E4PCP5ABD3ACN4z2jwDQ0AEGAAPA1hO8ScCH0AAAAASUVORK5CYII=\"","import React, { Component } from 'react';\r\nimport './App.css';\r\nimport { Router, Switch, Route } from 'react-router-dom';\r\nimport { Login } from './login/';\r\nimport { Cadastro } from './login/';\r\nimport { PasswordReset } from './login/';\r\nimport { RequestPasswordReset } from './login/';\r\nimport { Home } from './home/';\r\nimport { Usuario } from './usuarios/';\r\nimport { UsuarioEdit } from './usuarios/';\r\nimport { Estacao } from './estacoes/';\r\nimport { MinhaEstacao } from './estacoes/';\r\nimport { EstacaoEdit } from './estacoes/';\r\nimport { Pagamento } from './pagamentos/';\r\nimport { Parametro } from './parametros/';\r\nimport { ParametroEdit } from './parametros/';\r\nimport { Recebimento } from './recebimentos/';\r\nimport { Visualization } from './visualization/';\r\nimport { Orientacao } from './orientacoes/';\r\nimport { history } from './_helpers';\r\nimport { PrivateRoute } from './_components';\r\n\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';\r\n\r\nrequire('dotenv').config({ path: __dirname + '/.env' })\r\n\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: '#3c5186',\r\n contrastText: '#000000'\r\n },\r\n secondary: {\r\n main: '#939393',\r\n contrastText: '#000000'\r\n }\r\n },\r\n typography: {\r\n fontFamily: [\r\n 'Nunito',\r\n 'Roboto',\r\n '\"Helvetica Neue\"',\r\n 'Arial',\r\n 'sans-serif'\r\n ].join(',')\r\n }\r\n});\r\n\r\nclass App extends Component {\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default App;","module.exports = __webpack_public_path__ + \"static/media/imagem1.57140f76.png\";","module.exports = __webpack_public_path__ + \"static/media/estacoes.54c07281.PNG\";","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport AppBar from '../_components/appbar';\r\nimport Nav from '../_components/nav';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n});\r\nclass Home extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Home'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nHome.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return state;\r\n}\r\nconst connectedHomePage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Home)));\r\nexport { connectedHomePage as Home };","import { connect } from 'react-redux';\r\nimport { pagamentoAction, checkoutActions } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography, Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Moment from 'react-moment';\r\nimport 'moment-timezone';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n payButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Pagamento extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n submitted: false,\r\n isMobile: window.innerWidth < 468\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n\r\n var usuarioId = this.props.state.authentication.user.id;\r\n dispatch(pagamentoAction.getPagamentoUsuarioById(usuarioId));\r\n\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n };\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (pagamento) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 8000);\r\n });\r\n const { dispatch } = this.props;\r\n dispatch(checkoutActions.createPreference(pagamento));\r\n\r\n };\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { pagamento } = this.props.state.pagamento;\r\n const { submitted } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Pagamentos'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Periodo\r\n Valor\r\n Pagamento\r\n Ação\r\n \r\n \r\n \r\n {\r\n pagamento.map(n => {\r\n\r\n return (\r\n \r\n \r\n {{n.dataInicioValidade}} a {{n.dataFimValidade}}\r\n \r\n {(n.valor > 0 ? 'R$ ' + n.valor.toLocaleString(navigator.language, { minimumFractionDigits: 2 }) : null)}\r\n \r\n {n.dataPagamento ? (n.valor > 0 ?
Pago em {n.dataPagamento}
:
Teste iniciado em {n.dataPagamento}
) : (n.status == 'A' ?
Em processamento
: null)}\r\n
\r\n \r\n {n.dataPagamento ? null : (n.status == 'A' ?
: )}\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nPagamento.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedPagamentoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Pagamento)));\r\nexport { connectedPagamentoPage as Pagamento };","import { connect } from 'react-redux';\r\nimport { pagamentoAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Nav from '../_components/nav';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableContainer from '@material-ui/core/TableRow';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Moment from 'react-moment';\r\nimport 'moment-timezone';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n },\r\n payButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Recebimento extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(pagamentoAction.getPagamento());\r\n window.addEventListener('resize', this.throttledHandleWindowResize); \r\n };\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { pagamento } = this.props.state.pagamento;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Recebimentos'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Usuário\r\n Periodo\r\n Valor\r\n Recebimento\r\n \r\n \r\n \r\n {\r\n pagamento.map(n => {\r\n \r\n return (\r\n \r\n \r\n {n.usuario ? n.usuario.nome : null}\r\n \r\n \r\n {{n.dataInicioValidade}} a {{n.dataFimValidade}} \r\n \r\n R$ {n.valor.toLocaleString(navigator.language, { minimumFractionDigits: 2 })}\r\n \r\n {n.dataPagamento ?
Recebido em {n.dataPagamento}
: (n.status == 'A' ?
Em processamento
:
) }\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nRecebimento.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedRecebimentoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Recebimento)));\r\nexport { connectedRecebimentoPage as Recebimento };","import { connect } from 'react-redux';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbarvisualization';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Paper, Grid, Link } from '@material-ui/core';\r\nimport { withRouter } from 'react-router-dom';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n },\r\n drawerPaper: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit * 3,\r\n background: '#ffffff'\r\n },\r\n imageContent: {\r\n maxWidth: '100%'\r\n }\r\n});\r\nclass Orientacao extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {'COMO INSTALAR UMA ESTAÇÃO METEOROLÓGICA PARTICULAR'}\r\n
\r\n {'O QUE É UMA ESTAÇÃO METEOROLÓGICA PARTICULAR?'}\r\n
\r\n Uma estação meteorológica particular é um conjunto de instrumentos de medição das variáveis meteorológicas que você pode instalar na sua casa ou empresa. O número de instrumentos de medição (Sensores) pode variar, mas o mais comum são os sensores de temperatura, umidade relativa do ar, pressão atmosférica, precipitação (chuva) e velocidade e direção do vento.\r\n
\r\n {'MODELOS RECOMENDADOS'}\r\n
\r\n \r\n Existem diversos modelos de estações meteorológicas particulares no mercado, porém os mais indicados são os da Marca Davis Instruments, sendo os Modelos Vantage Vue e Vantage Pro 2 e suas variações. Outro modelo indicado é da marca Ambient Weather, especificamente o modelo WS-2902 e semelhantes.\r\n Estes são os modelos mais indicados, principalmente da marca Davis, em virtude da confiabilidade e qualidade dos dados fornecidos, além da robustez do equipamento, que é sem dúvidas, a melhor opção disponível no mercado.\r\n O modelo de entrada da Davis é a Vantage Vue, que possui sensor de temperatura e umidade relativa do ar, pressão atmosférica, pluviômetro e de velocidade e direção do vento.\r\n Já a Davis Vantage Pro 2 6152, possui estes mesmos sensores da Vantage Vue, mas também existem outros modelos que possuem sensore de radiação solar e UV, além de ser possível adicionar mais sensores, como de umidade do solo, temperatura do solo, umidade das folhas, sensores extra de temperatura, além de diversas outras opções, além de abrigo aspirado para o sensor de temperatura e umidade.\r\n \r\n
\r\n \r\n \r\n \"Davis\r\n {'Davis Vantage Pro 2'}\r\n \r\n \r\n \"Davis\r\n {'Davis Vantage Vue'}\r\n \r\n \r\n
\r\n \r\n Tanto a Davis Vantage Vue quanto a Pro 2, necessitam de um datalogger para armazenar e transmitir os dados para a internet. Dentre as opções, existe o Weatherlink Live, da própria Davis Instruments, que inclusive dispensa o uso da tela (Console) e pode ser ligado diretamente ao roteador via cabo ou wifi. Outra alternativa é o Wifilogger, que é de outro fabricante, mas foi desenvolvido especificamente para as estações da Davis. Ele necessita de tela e a conexão com o roteador é via Wifi. Também existe outras maneiras de transmitir os dados para a internet, como através de um computador, Meteohub ou Meteobridge, mas o mais prático e comum é a utilização do Weatherlink Live ou Wifilogger.\r\n \r\n
\r\n \r\n \r\n \"Weatherlink\r\n {'Weatherlink Live'}\r\n \r\n \r\n \"Wifilogger\"\r\n {'Wifilogger'}\r\n \r\n \r\n
\r\n \r\n Já as estações meteorológicas da Ambient Weather, especificamente o modelo WS-2902, também apresenta dados de qualidade, porém é um equipamento menos robusto e está um patamar abaixo das estações Davis, não deixando de ser uma boa alternativa para quem deseja ter uma estação meteorológica particular. É um modelo que já acompanha datalogger e está pronto para transmitir os dados para a internet.\r\n \r\n
\r\n \r\n \r\n \"WS-2902\"\r\n {'WS-2902'}\r\n \r\n \r\n
\r\n \r\n Outros modelos de estações meteorológicas também podem ser utilizados, porém deve-se observar se os sensores são de qualidade e o abrigo do sensor de temperatura, se não causa superaquecimento. Outro detalhe e o mais importante, é o que trataremos em seguida, que é o local de instalação da estação meteorológica. Um local inadequado, pode fazer o melhor equipamento reportar dados incorretos.\r\n \r\n
\r\n \r\n Alguma dúvida sobre qual modelo escolher? Entre em contato e tire suas dúvidas:\r\n \r\n \r\n contato@estacoesdobrasil.com.br ou (51) 9-99986571\r\n \r\n
\r\n {'INSTALAÇÃO DA ESTAÇÃO METEOROLÓGICA'}\r\n
\r\n
\r\n \r\n O local de instalação da estação meteorológica é a parte mais importante da instalação. Se você instalar a estação muito próximo de uma árvore, o pluviômetro pode não registrar corretamente a chuva, ou se instalar muito próximo de uma construção, os dados de temperatura podem ser afetados. Locais pouco arejados, com muitas árvores ou prédios ao redor, por exemplo, influenciam tanto nos dados de vento, quanto de temperatura. Portanto, achar um local adequado em uma área urbana ou suburbana, pode ser um desafio, mas existem alternativas para ter dados de qualidade nestas situações. O local em que a estação meteorológica é instalada influencia mais na qualidade dos dados do que o próprio equipamento.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Existe o cenário ideal para a instalação de uma estação meteorológica, que basicamente pode ser descrito da seguinte forma:\r\n \r\n
\r\n {'TEMPERATURA E UMIDADE'}\r\n
\r\n \r\n
    \r\n
  • - Local nivelado e que representa boa parte da área, preferencialmente sobre gramado.
  • \r\n
  • - Altura do sensor entre 1,25 m e 2,0 m.
  • \r\n
  • - Sensores devem ficar a 2 vezes a distância da altura do objeto mais próximo (Árvores, construções).
  • \r\n
  • - Manter distância de fontes de calor, construções, muros, chaminés, ar condicionado, etc.
  • \r\n
\r\n
\r\n
\r\n {'ANEMÔMETRO'}\r\n
\r\n \r\n
    \r\n
  • - Preferencialmente a 10 m de altura do solo.
  • \r\n
  • - Manter distância de 10 vezes a altura do objeto mais próximo (Árvore ou construção).
  • \r\n
\r\n
\r\n
\r\n {'PLUVIÔMETRO'}\r\n
\r\n \r\n
    \r\n
  • - Altura do sensor entre 1,25 e 2,0 m.
  • \r\n
  • - Manter distância horizontal de 4 vezes a altura do objeto mais próximo (Árvores, construções).
  • \r\n
\r\n
\r\n
\r\n \r\n Este é o cenário ideal para estações meteorológicas que possuem sensores separados, porém para áreas urbanas é um tanto quanto difícil e os modelos indicados aqui, possuem todos os sensores integrados em um único equipamento (Exceto a Davis Vantage Pro 2, que pode ter o anemômetro instalado separadamente dos demais sensores). Sendo assim, segue abaixo alguns exemplos de instalações recomendadas para os equipamentos que foram relacionados anteriormente:\r\n \r\n
\r\n {'DAVIS VANTAGE VUE'}\r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Cenário ideal, quando se tem espaço e sem árvores ou construções próximas. Os sensores podem ficar a uma altura de 1,25 a 2,0 m, o que facilita muito a manutenção, principalmente do pluviômetro, que pode entupir com sujeira de folhas ou fezes de pássaros. O anemômetro não está na altura ideal, mas é uma alternativa aceitável.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Aqui temos um exemplo de instalação da Davis Vantage Vue em uma área urbana, com casas, muros e árvores próximas. Ela foi instalada o mais alto possível, para receber vento de todas as direções e também a uma altura de pelo menos 3 m do telhado, para não sofrer com o calor proveniente do telhado.\r\n \r\n
\r\n {'DAVIS VANTAGE PRO 2'}\r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Cenário ideal, como da Davis Vantage Vue acima, quando se tem espaço e sem árvores ou construções próximas. Os sensores podem ficar a uma altura de 1,25 a 2,0 m, o que facilita muito a manutenção, principalmente do pluviômetro, que pode entupir com sujeira de folhas ou fezes de pássaros. O anemômetro não está na altura ideal, mas é uma alternativa aceitável.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Cenário urbano, com construções e casas, da mesma forma que com a Davis Vantage Pro 2, a estação foi instalada em um mastro a pelo menos 3 metros de altura do telhado, recebendo assim, vento de todos os quadrantes e evitando superaquecimento proveniente do telhado.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Com a Davis Vantage Pro 2, quando existirem condições de instalar o sensor de temperatura/umidade e pluviômetro na altura padrão, existe a possibilidade de instalar o anemômetro também na altura padrão, que é de 10 m. Isto é possível pois ele conta com um cabo de 12 m, então pode-se ter todos os sensores nas suas alturas ideias.\r\n \r\n
\r\n {'AMBIENT WEATHER WS-2902'}\r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n Em áreas abertas, sem construções e árvores próximas, o conjunto de sensores está na altura ideal, entre 1,25 e 2,0 m. Fácil manutenção, mas com o anemômetro fora da altura padrão de 10m, o que não é um problema neste caso.\r\n \r\n
\r\n \r\n \r\n \"Exemplo\r\n \r\n \r\n
\r\n \r\n WS-2902 instalada em área urbana, com construções ou árvores próximas. Foi colocado no topo de um mastro, recebendo assim vento de todas as direções e longe de telhados e construções que podem gerar aquecimento.\r\n \r\n
\r\n \r\n Quer ajuda ou alguma dica na instalação da sua estação meteorológica? Entre em contato:\r\n \r\n
\r\n \r\n contato@estacoesdobrasil.com.br ou (51) 9-99986571.\r\n \r\n
\r\n
\r\n \r\n Fontes:\r\n
    \r\n
  • https://www.wunderground.com/pws/installation-guide
  • \r\n
  • https://www.weather.gov/media/epz/mesonet/CWOP-Siting.pdf
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nOrientacao.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedOrientacaoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Orientacao)));\r\nexport { connectedOrientacaoPage as Orientacao };","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Typography from '@material-ui/core/Typography';\r\n//import VisibleItemList from '../containers/VisibleItemList'\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport LogoutIcon from '@material-ui/icons/HighlightOff';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport FolderSharedIcon from '@material-ui/icons/FolderShared';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport PaymentIcon from '@material-ui/icons/Payment';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { authActions } from '../_actions';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { AppBar, Tooltip, Toolbar, Grid, Button, Link } from '@material-ui/core';\r\nimport { history } from '../_helpers';\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport WhatsAppIcon from '@material-ui/icons/WhatsApp';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n icon: {\r\n color: theme.palette.common.black\r\n },\r\n\r\n root: {\r\n display: 'flex',\r\n },\r\n drawer: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'none',\r\n },\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n drawerPaper: {\r\n width: drawerWidth\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3),\r\n },\r\n closeMenuButton: {\r\n marginRight: 'auto',\r\n marginLeft: 0,\r\n },\r\n loginButton: {\r\n color: '#ffffff'\r\n }\r\n\r\n});\r\n\r\nclass ResponsiveDrawer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n mobileOpen: false\r\n }\r\n }\r\n\r\n logout = event => {\r\n const { dispatch } = this.props;\r\n dispatch(authActions.logout());\r\n }\r\n\r\n render() {\r\n\r\n const { classes } = this.props;\r\n\r\n const handleDrawerToggle = event => {\r\n this.setState({ mobileOpen: !this.state.mobileOpen });\r\n };\r\n\r\n var papel = this.props.state.authentication.user.papel;\r\n\r\n const drawer = (\r\n
\r\n \r\n history.push(\"/\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* history.push(\"/home\")}>\r\n \r\n \r\n \r\n \r\n */}\r\n history.push(\"/minhasestacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n {papel === 'admin' ?\r\n history.push(\"/estacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/usuarios\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/parametros\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/recebimentos\")}>\r\n \r\n \r\n \r\n \r\n \r\n :\r\n history.push(\"/pagamentos\")}>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.logout() }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n handleDrawerToggle()}\r\n className={classes.loginButton}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"logo\"\r\n \r\n \r\n \r\n \r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n window.open('https://wa.me/555199986571', '_blank')}>\r\n \r\n \r\n \r\n \r\n window.open(\"mailto:contato@estacoesdobrasil.com.br\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n {/**/}\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nResponsiveDrawer.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n container: PropTypes.object\r\n};\r\nconst mapStateToProps = (state) => {\r\n //const { loggingIn } = state.authentication;\r\n return {\r\n state\r\n };\r\n}\r\nexport default connect(mapStateToProps)(withStyles(styles)(ResponsiveDrawer));","export * from './rosa.png';\r\nexport * from './android-app.png';\r\nexport * from './seta.png';\r\nexport * from './termometro/termometro-0-10.png';\r\nexport * from './termometro/termometro-10-20.png';\r\nexport * from './termometro/termometro-20-30.png';","module.exports = __webpack_public_path__ + \"static/media/Davis Vantage Pro 2.47c801c0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Davis Vantage Vue.47f5eb1c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Weatherlink Live.977cb786.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Wifilogger.e6389fb4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/WS-2902.ec3a1b00.jpg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARwAAAEqCAMAAADwCR9iAAAC+lBMVEUAAAD////VICr////////////////VICrVICrVICrVICrVICr////VICrVICrVICrVICr////VICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICrVICr////VICr////VICrVICr////////////////////////54OHkbnT///////+O0elbn0jVICqCVy0zMzP///8hcwr98vLfUlp9s8ec1+wUqtzr9/tmjJn98/P2zM8+R0reUFhPZGvXLDZZnkYldQ6Ix96Mz+WRyuFKkja3bHxDT1RslqRfmUYxgBw7hyaDvtNWnENSmD+CWjJFjjBAiyuLzd+MwdHeT1c4PD42gyEpeRKOzuXfVFvGRlMtfReVwdiMu8aNydyDXjiNxdfIQU7q9/ubsMVgpFc0Nje8OjB3qbuKq66HjH9coExtsIJnkkSTxdylmKtzuJi7Y3Jnq26fWDfSKTSHy9OLs7uin7SJn5xxtY2Gg3G9XGpOljqWvdN/w7uKpKPMN0O0coKFdVyIlIuHiHiGfmi/VmWEbU+DZUODYj6CxcOgpLiwfY5jp2JdolFriUGDdT6xNyqZtsynlKd3u6GIkIVrr3qFclbKPEh5gEDXKzV+Xi+Ex8mLtsCeqb+Lr7WqjaCInJWIl5FSanPhXmWFeWLDTFrTJS89REevRzLOJiuGw9lwna1hhJFdfIhKV1tNTU1qgz3EMi7//Pyv3+/a2tqXutB0o7SDakm9Myzl8/hvejp3azSf2O15rcB7v7F6vakvpqNPoGGlUjaLUS3FKyvG6PSr3e9BueGyeIlXcnx0cTfY8Pgtst9/uMxubm6SZjuoTzV7YzL9uC6hQytyyeithZcejWbHrzaYSCzg6Ot9tMczrMOkm686pI3Z2dkaqc9Trq56m6fqkZYZlYxFo3Z7pEJhayVgw+S6uskiqMEik32bsnhvnmulq0GGRRyDRhtNXhIfpCVOAAAAOXRSTlMA0YX8Hh9J1PQ2BejQCRO2Ix3w4SlrQux+SZlUDq32YNr6jc29ph9ywlo+ynpPQCnBD7eme+LRuKc1fznTAAAZgElEQVR42uSdWagSURjHxRfNuBU3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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARwAAAEqCAMAAADwCR9iAAAC+lBMVEUAAAD////9/v3////VICrVICrVICr////VICrVICrVICrVICrVICrVICrVICr9/f3////VICrVICrVICrVICrVICrVICrVICrm1tfVICrVICrVICrVICrVICrVICrVICrVICr////VICrVICrVICrVICrVICrVICrVICr////////////////////////kbnT///+O0enx8fHVICpxu1zm5ubMzMwzMzNTU1P/////3Zlbn0j98/Mhcwr525/PzcnfU1rY4+f07eD26dDz2abr7/HM5e9mjJl4wH/n1bLf0rneUVnWz8ODvdLXLDZslqT36MpPZGv17Ns4PD4+Rkl+tMhWf0pGXUCZmZkqexPz9PSNzOT93ZxVb3j99PTl8uHq7emBw29JWmByoLCysrL2zc9vtlmJyN/ddXvu7u7mzM3b0b7gfYPdT1bz8OqGw9lceoQwfxthg4/ZSVE6QELe3t7u2KreYmlQlzxFki/l4ODjr7FpsVS5KzP32qLbXWRuql5gpUzg7d3j1Lb+4KRcYGFYWls2NzjSzsb55r/75Lb84q3ipqrca3Hl3Nz20dP20NJxmqllq1FcT1DZQUrhv8B5qryhoJ/ilpvUJjDKkcCayI1wcXLXOkOUw9r27Nd3pbWpqalNYWdxm2B6rVfOJSzU1dbgiI23anphcHa/V2ZGVVq/PzPAKDF9rsC7u7vktbdukZ5cZ2qXu9JpgYpVVlZDUFQ8Q0aqYj+cNjw8hibExMSAm3F4uGaApVVqSku3Tjn46MfswcOcrcPPkrihoba71bSmlqmsk6NsiZNleYG1cIC6YnLHRFGVg0rKPEiu3u/w5OXu29zVl6ffoqSYl4xqZ2eOjU2wWDzGMy+3kq2QkJCwfY6GhoaIsn18fX1lnlSImFB3REekbEL/uC/X59PaU1tHijVMejPL4cWqzKWri57el5KMn4WfdEWBQUR+eD36tDub1uzrqWZhnk5il02mpHbDTlubWTbZ8PiqvqXvtHTNbmlagl6CWb1XAAAAMXRSTlMAH/7RhQfWSSFuNhPfQin70O+/tlRJDV/+zX7mmffz+o0d7Omm9ayv6rx7PycQptGpDhjf2QAAGVVJREFUeNrk2L+P0mAYB/B3KIQCbdLyK4Urd0Hl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\"","module.exports = __webpack_public_path__ + \"static/media/maxresdefault.b9d44410.jpg\";","module.exports = __webpack_public_path__ + \"static/media/6250-6357_1400x500_VV_BradHickman.f4077ea6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Cenario ideal DAVIS VANTAGE PRO 2.ce72d6a9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/Cenario area urbana DAVIS VANTAGE PRO 2.eb889035.jpg\";","module.exports = __webpack_public_path__ + \"static/media/021-640x385-640x385.83409b63.jpg\";","module.exports = __webpack_public_path__ + \"static/media/WhatsApp Image 2020-05-28 at 17.15.11.3794a876.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/94138758_3604637852885376_3822128711386267648_o.44f34786.jpg\";","let token = localStorage.getItem('token');\r\nlet auth = localStorage.getItem('auth');\r\nlet user = JSON.parse(localStorage.getItem('user'));\r\n\r\nconst initialState = auth ? { loggedIn: true, auth, token, user } : {};\r\nexport function authentication(state = initialState, action) {\r\n switch (action.type) {\r\n case 'LOGIN_SUCCESS':\r\n return {\r\n loggingIn: true,\r\n auth: action.auth,\r\n token: action.token,\r\n user: action.user\r\n };\r\n\r\n case 'LOGOUT_SUCCESS':\r\n return {\r\n auth: false,\r\n token: '',\r\n user: null\r\n };\r\n default:\r\n return state\r\n }\r\n}","const initialState = {\r\n cidade: [],\r\n id: '',\r\n nome: '',\r\n estadoId: '',\r\n ibge: '',\r\n latLon: '',\r\n estado: []\r\n};\r\n\r\nexport function cidade(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_CIDADE':\r\n return {\r\n ...state,\r\n cidade: action.cidade\r\n };\r\n case 'CIDADE_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n estadoId: action.estadoId,\r\n ibge: action.ibge,\r\n latLon: action.latLon,\r\n estado: action.estado\r\n };\r\n case \"CIDADE_CLEAR\":\r\n return initialState;\r\n case \"CIDADE_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_CIDADE\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n estacao: [],\r\n id: '',\r\n usuarioId: 0,\r\n fonteId: 0,\r\n nome: '',\r\n codigo: '',\r\n senha: '',\r\n aprovada: '',\r\n token: '',\r\n cidadeId: 0,\r\n apelido: '',\r\n link: '',\r\n latitude: '',\r\n longitude: '',\r\n cidade: [],\r\n fonte: []\r\n};\r\n\r\nexport function estacao(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_ESTACAO':\r\n return {\r\n ...state,\r\n estacao: action.estacao\r\n };\r\n case 'ESTACAO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n usuarioId: action.usuarioId,\r\n fonteId: action.fonteId,\r\n nome: action.nome,\r\n codigo: action.codigo,\r\n senha: action.senha,\r\n aprovada: action.aprovada,\r\n token: action.token,\r\n cidadeId: action.cidadeId,\r\n cidade: action.cidade,\r\n fonte: action.fonte,\r\n apelido: action.apelido,\r\n link: action.link,\r\n latitude: action.latitude,\r\n longitude: action.longitude\r\n };\r\n case \"ESTACAO_CLEAR\":\r\n return initialState;\r\n case \"ESTACAO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_ESTACAO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","const initialState = {\r\n estado: [],\r\n id: '',\r\n nome: '',\r\n uf: '',\r\n ibge: '',\r\n paisId: '',\r\n ddd: '',\r\n pais: []\r\n};\r\n\r\nexport function estado(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_ESTADO':\r\n return {\r\n ...state,\r\n estado: action.estado\r\n };\r\n case 'ESTADO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n uf: action.uf,\r\n ibge: action.ibge,\r\n paisId: action.paisId,\r\n ddd: action.ddd,\r\n pais: action.pais\r\n };\r\n case \"ESTADO_CLEAR\":\r\n return initialState;\r\n case \"ESTADO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_ESTADO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n fonte: [],\r\n id: '',\r\n descricao: '',\r\n url: ''\r\n};\r\n\r\nexport function fonte(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_FONTE':\r\n return {\r\n ...state,\r\n fonte: action.fonte\r\n };\r\n case 'FONTE_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n descricao: action.descricao,\r\n url: action.url\r\n };\r\n case \"FONTE_CLEAR\":\r\n return initialState;\r\n case \"FONTE_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_FONTE\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n pagamento: [],\r\n id: '',\r\n usuarioId: '',\r\n dataPagamento: '',\r\n dataInicioValidade: '',\r\n dataFimValidade: '',\r\n valor: 0,\r\n formaPagamento: '',\r\n status: '',\r\n transacao: '',\r\n usuario: null\r\n};\r\n\r\nexport function pagamento(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_PAGAMENTO':\r\n return {\r\n ...state,\r\n pagamento: action.pagamento\r\n };\r\n case 'PAGAMENTO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n usuarioId: action.usuarioId,\r\n dataPagamento: action.dataPagamento,\r\n dataInicioValidade: action.dataInicioValidade,\r\n dataFimValidade: action.dataFimValidade,\r\n valor: action.valor,\r\n formaPagamento: action.formaPagamento,\r\n status: action.status,\r\n transacao: action.transacao,\r\n usuario: action.usuario\r\n };\r\n case \"PAGAMENTO_CLEAR\":\r\n return initialState;\r\n case \"PAGAMENTO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_PAGAMENTO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","const initialState = {\r\n pais: [],\r\n id: '',\r\n nome: '',\r\n nomePt: '',\r\n iso2: '',\r\n iso3: '',\r\n bacen: ''\r\n};\r\n\r\nexport function pais(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_PAIS':\r\n return {\r\n ...state,\r\n pais: action.pais\r\n };\r\n case 'PAIS_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n nome: action.nome,\r\n nomePt: action.nomePt,\r\n iso2: action.iso2,\r\n iso3: action.iso3,\r\n bacen: action.bacen\r\n };\r\n case \"PAIS_CLEAR\":\r\n return initialState;\r\n case \"PAIS_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_PAIS\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n parametro: [],\r\n id: '',\r\n chave: '',\r\n valor: '',\r\n descricao: ''\r\n};\r\n\r\nexport function parametro(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_PARAMETRO':\r\n return {\r\n ...state,\r\n parametro: action.parametro\r\n };\r\n case 'PARAMETRO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n chave: action.chave,\r\n valor: action.valor,\r\n descricao: action.descricao\r\n };\r\n case \"PARAMETRO_CLEAR\":\r\n return initialState;\r\n case \"PARAMETRO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_PARAMETRO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n usuario: [],\r\n id: '',\r\n email: '',\r\n nome: '',\r\n senha: '',\r\n papel: '',\r\n telefone: '',\r\n log: []\r\n};\r\n\r\nexport function usuario(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_USUARIO':\r\n return {\r\n ...state,\r\n usuario: action.usuario\r\n };\r\n case 'USUARIO_DETAIL':\r\n return {\r\n ...state,\r\n id: action.id,\r\n email: action.email,\r\n nome: action.nome,\r\n senha: action.senha,\r\n papel: action.papel,\r\n telefone: action.telefone,\r\n log: action.log\r\n };\r\n case \"USUARIO_CLEAR\":\r\n return initialState;\r\n case \"USUARIO_UPDATED\":\r\n return state;\r\n case \"HANDLE_ON_CHANGE_USUARIO\":\r\n return {\r\n ...state,\r\n [action.props]: action.value\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","const initialState = {\r\n visualization: []\r\n};\r\n\r\nexport function visualization(state = initialState, action) {\r\n switch (action.type) {\r\n case 'FETECHED_ALL_VISUALIZATION':\r\n return {\r\n ...state,\r\n visualization: action.visualization\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","import { combineReducers } from 'redux';\r\n\r\nimport { authentication } from './auth.reducer';\r\nimport { cidade } from './cidade.reducer';\r\nimport { estacao } from './estacao.reducer';\r\nimport { estado } from './estado.reducer';\r\nimport { fonte } from './fonte.reducer';\r\nimport { pagamento } from './pagamento.reducer';\r\nimport { pais } from './pais.reducer';\r\nimport { parametro } from './parametro.reducer';\r\nimport { usuario } from './usuario.reducer';\r\nimport { visualization } from './visualization.reducer';\r\n\r\nconst rootReducer = combineReducers({\r\n authentication,\r\n cidade,\r\n estacao,\r\n estado,\r\n fonte,\r\n pagamento,\r\n pais,\r\n parametro,\r\n usuario,\r\n visualization\r\n});\r\n\r\nexport default rootReducer;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css?v=4';\r\nimport App from './App';\r\nimport { createStore, applyMiddleware } from 'redux';\r\nimport { Provider } from 'react-redux';\r\nimport thunk from 'redux-thunk';\r\nimport reducer from './_reducers';\r\n//import registerServiceWorker from './registerServiceWorker';\r\n//import { unregister } from './registerServiceWorker';\r\n\r\nconst store = createStore(reducer, applyMiddleware(thunk))\r\nReactDOM.render(\r\n \r\n \r\n \r\n , document.getElementById('root'));\r\n\r\n//registerServiceWorker();\r\n//unregister();","import React from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nexport const PrivateRoute = ({ component: Component, ...rest }) => (\r\n (\r\n localStorage.getItem('auth')\r\n ? \r\n : \r\n )} />\r\n)","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { AppBar, Tooltip, Toolbar, Grid, Button, Link } from '@material-ui/core';\r\nimport { history } from '../_helpers';\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport WhatsAppIcon from '@material-ui/icons/WhatsApp';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ReactGA from 'react-ga';\r\nimport classNames from 'classnames';\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n \r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n loginButton: {\r\n color: '#ffffff'\r\n }\r\n\r\n});\r\nclass PermanentDrawer extends React.Component {\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"logo\"\r\n \r\n \r\n \r\n \r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n window.open('https://wa.me/555199986571', '_blank')}>\r\n \r\n \r\n \r\n \r\n window.open(\"mailto:contato@estacoesdobrasil.com.br\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nPermanentDrawer.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nexport default withStyles(styles)(PermanentDrawer);","import { createBrowserHistory } from 'history';\r\nexport const history = createBrowserHistory();","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport List from '@material-ui/core/List';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { authActions } from '../_actions';\r\nimport { connect } from 'react-redux';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport LogoutIcon from '@material-ui/icons/HighlightOff';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport FolderSharedIcon from '@material-ui/icons/FolderShared';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport PaymentIcon from '@material-ui/icons/Payment';\r\nimport { history } from '../_helpers';\r\n\r\nconst drawerWidth = 240;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n icon: {\r\n color: theme.palette.common.black\r\n }\r\n});\r\nclass Navigation extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n logout = event => {\r\n const { dispatch } = this.props;\r\n dispatch(authActions.logout());\r\n }\r\n render() {\r\n const { classes } = this.props;\r\n\r\n var papel = this.props.state.authentication.user.papel;\r\n\r\n return (\r\n \r\n \r\n history.push(\"/\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* history.push(\"/home\")}>\r\n \r\n \r\n \r\n \r\n */}\r\n history.push(\"/minhasestacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n {papel === 'admin' ? \r\n history.push(\"/estacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null} \r\n {papel === 'admin' ?\r\n history.push(\"/usuarios\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/parametros\")}>\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n {papel === 'admin' ?\r\n history.push(\"/recebimentos\")}>\r\n \r\n \r\n \r\n \r\n \r\n :\r\n history.push(\"/pagamentos\")}>\r\n \r\n \r\n \r\n \r\n \r\n } \r\n \r\n history.push(\"/orientacoes\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.logout() }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nNavigation.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n //const { loggingIn } = state.authentication;\r\n return {\r\n state\r\n };\r\n}\r\nexport default connect(mapStateToProps)(withStyles(styles)(Navigation));","import React, { Component } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\nimport { Paper, Grid, Container, Typography, IconButton } from '@material-ui/core';\r\nimport { history } from '../_helpers';\r\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { usuarioAction } from '../_actions';\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\nimport { phoneMask } from '../utils';\r\n\r\nconst styles = theme => ({\r\n paper: {\r\n marginTop: theme.spacing(5),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n width: theme.spacing(9),\r\n height: theme.spacing(9),\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(3),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n },\r\n backButton: {\r\n marginTop: theme.spacing(1),\r\n }\r\n});\r\n\r\nclass Cadastro extends Component {\r\n\r\n componentDidMount() {\r\n\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.clear());\r\n\r\n ValidatorForm.addValidationRule('isPasswordMatch', (value) => {\r\n if (value !== this.props.usuario.senha) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n ValidatorForm.addValidationRule('isValidPhone', (value) => {\r\n if (value != null) {\r\n if (value.length > 0 && value.length < 14) {\r\n return false\r\n }\r\n return true\r\n }\r\n return true\r\n })\r\n\r\n }\r\n\r\n state = {\r\n submitted: false,\r\n repeatPassword: '',\r\n }\r\n\r\n handleChange = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(usuarioAction.onChangeProps(prop, event));\r\n };\r\n\r\n handleChangeRepeatPassword = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleSubmit = (event) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 2500);\r\n });\r\n const { dispatch } = this.props;\r\n let payload = {\r\n id: 0,\r\n email: this.props.usuario.email,\r\n nome: this.props.usuario.nome,\r\n senha: this.props.usuario.senha,\r\n telefone: this.props.usuario.telefone.split(' ').join('').replace(/[()-]/g, ''),\r\n papel: 'usuario'\r\n }\r\n console.log('payload', payload);\r\n dispatch(usuarioAction.createUsuario(payload));\r\n }\r\n\r\n render() {\r\n const { submitted } = this.state;\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n history.goBack()} aria-label=\"Voltar\" color=\"primary\">\r\n \r\n \r\n \r\n \r\n Venha fazer parte do Estações do Brasil! Informe seus dados abaixo para se cadastrar.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (submitted && 'Enviando informações...')\r\n || (!submitted && 'Cadastrar')\r\n }\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nCadastro.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return state;\r\n}\r\nconst connectedCadastroPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Cadastro)));\r\nexport { connectedCadastroPage as Cadastro };","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper, FormControlLabel, Avatar, Grid, Button, TextField, Box, Typography, Link, CssBaseline,\r\n Checkbox, IconButton\r\n} from '@material-ui/core';\r\nimport { connect } from 'react-redux';\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport { authActions } from '../_actions';\r\nimport { history } from '../_helpers';\r\nimport { withRouter } from 'react-router-dom';\r\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace';\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\nimport Background from '../imgs/imagem1.png';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n height: '100vh',\r\n },\r\n image: {\r\n backgroundImage: `url(${Background})`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundColor: '#3c5186',\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n },\r\n paper: {\r\n margin: theme.spacing(8, 4),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n }\r\n});\r\n\r\nclass Login extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n username: '',\r\n password: '',\r\n showPassword: false,\r\n submitted: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (localStorage.getItem('auth')) {\r\n history.push('/minhasestacoes');\r\n }\r\n }\r\n handleChange = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleChangeBox = name => event => {\r\n this.setState({ ...this.state, [name]: event.target.checked });\r\n };\r\n\r\n handleSubmit = (event) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 2500);\r\n });\r\n const { username, password } = this.state;\r\n const { dispatch } = this.props;\r\n if (username && password) {\r\n dispatch(authActions.login(username, password));\r\n }\r\n\r\n }\r\n\r\n render() {\r\n const { formData, submitted } = this.state;\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n history.push(\"/\")} aria-label=\"Voltar\" color=\"primary\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Login\r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Mostrar senha\"\r\n />\r\n \r\n\r\n {\r\n (submitted && 'Validando informações...')\r\n || (!submitted && 'Entrar')\r\n }\r\n {/*\r\n \r\n \r\n {\"Esqueceu a senha?\"} \r\n \r\n */}\r\n \r\n history.push(\"/cadastro\")} variant=\"body2\">\r\n {\"Não possui um login? Cadastre-se já!\"}\r\n \r\n \r\n \r\n history.push(\"/request-password-reset\")} variant=\"body2\">\r\n {\"Esqueceu a senha?\"}\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nLogin.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { loggingIn } = state.authentication;\r\n return {\r\n loggingIn\r\n };\r\n}\r\nconst connectedLoginPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Login)));\r\nexport { connectedLoginPage as Login };","import React, { Component } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Container from '@material-ui/core/Container';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { history } from '../_helpers';\r\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { usuarioAction } from '../_actions';\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\n\r\nconst styles = theme => ({\r\n paper: {\r\n marginTop: theme.spacing(5),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n width: theme.spacing(9),\r\n height: theme.spacing(9),\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(3),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n },\r\n backButton: {\r\n marginTop: theme.spacing(1),\r\n }\r\n});\r\n\r\nclass PasswordReset extends Component {\r\n\r\n state = {\r\n submitted: false,\r\n email: '',\r\n token: '',\r\n password: '',\r\n repeatPassword: '',\r\n }\r\n\r\n componentDidMount() {\r\n\r\n const query = new URLSearchParams(this.props.location.search);\r\n var email = query.toString().substr(6, (query.toString().indexOf(\"&\", 0)) - 6);\r\n this.setState({ email: decodeURIComponent(email)});\r\n console.log('email', decodeURIComponent(email));\r\n\r\n var token = query.toString().substr(query.toString().indexOf(\"token=\", 0) + 6, (query.toString().length - query.toString().indexOf(\"token=\", 0) - 6));\r\n this.setState({ token: token });\r\n\r\n ValidatorForm.addValidationRule('isPasswordMatch', (value) => {\r\n if (value !== this.state.password) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n }\r\n\r\n handleChangePassword = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleChangeRepeatPassword = prop => event => {\r\n this.setState({ [prop]: event.target.value });\r\n };\r\n\r\n handleSubmit = (event) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 2500);\r\n });\r\n const { dispatch } = this.props;\r\n let payload = {\r\n username: this.state.email,\r\n password: this.state.password\r\n }\r\n console.log('payload', payload);\r\n dispatch(usuarioAction.passwordReset(payload, this.state.token));\r\n }\r\n\r\n render() {\r\n const { submitted } = this.state;\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n history.goBack()} aria-label=\"Voltar\" color=\"primary\">\r\n \r\n \r\n \r\n \r\n Informe e confirme a nova senha.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (submitted && 'Enviando informações...')\r\n || (!submitted && 'Alterar')\r\n }\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nPasswordReset.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return state;\r\n}\r\nconst connectedPasswordResetPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(PasswordReset)));\r\nexport { connectedPasswordResetPage as PasswordReset };","import React, { Component } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Container from '@material-ui/core/Container';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { history } from '../_helpers';\r\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { usuarioAction } from '../_actions';\r\nimport { ValidatorForm, TextValidator } from 'react-material-ui-form-validator';\r\n\r\nconst styles = theme => ({\r\n paper: {\r\n marginTop: theme.spacing(5),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n width: theme.spacing(9),\r\n height: theme.spacing(9),\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(3),\r\n },\r\n submit: {\r\n margin: theme.spacing(3, 0, 2),\r\n color: '#ffffff'\r\n },\r\n backButton: {\r\n marginTop: theme.spacing(1),\r\n }\r\n});\r\n\r\nclass RequestPasswordReset extends Component {\r\n\r\n state = {\r\n email: '',\r\n submitted: false\r\n }\r\n\r\n handleChange = prop => event => {\r\n this.setState({ email: event.target.value });\r\n };\r\n\r\n handleSubmit = (event) => {\r\n this.setState({ submitted: true }, () => {\r\n setTimeout(() => this.setState({ submitted: false }), 5000);\r\n });\r\n const { dispatch } = this.props;\r\n let payload = {\r\n email: this.state.email\r\n }\r\n dispatch(usuarioAction.requestPasswordReset(payload));\r\n }\r\n\r\n render() {\r\n const { submitted, email } = this.state;\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n history.goBack()} aria-label=\"Voltar\" color=\"primary\">\r\n \r\n \r\n \r\n \r\n Informe o endereço de e-mail utilizado no cadastro, para recuperar a senha.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n (submitted && 'Enviando informações...')\r\n || (!submitted && 'ENVIAR E-MAIL DE RECUPERAÇÃO DE SENHA')\r\n }\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nRequestPasswordReset.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return state;\r\n}\r\nconst connectedRequestPasswordResetPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(RequestPasswordReset)));\r\nexport { connectedRequestPasswordResetPage as RequestPasswordReset };","import axios from 'axios';\r\nimport config from '../config/config';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const authService = {\r\n post,\r\n postWithToken\r\n};\r\nfunction post(apiEndpoint, payload) {\r\n return axios.post(config.baseUrl + apiEndpoint, payload)\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Oops...',\r\n text: 'Login inválido!'\r\n })\r\n return err;\r\n })\r\n}\r\nfunction postWithToken(apiEndpoint, payload, token) {\r\n\r\n let options = {};\r\n if (token) {\r\n options.headers = { 'Authorization': 'Bearer ' + token };\r\n }\r\n\r\n return axios.post(config.baseUrl + apiEndpoint, payload, options)\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Oops...',\r\n text: 'Login inválido!'\r\n })\r\n return err;\r\n })\r\n}","import axios from 'axios';\r\nimport config from '../config/config';\r\nimport { history } from '../_helpers';\r\n\r\nexport const crudService = {\r\n get,\r\n post,\r\n put,\r\n deleteDetail\r\n};\r\nfunction get(apiEndpoint) {\r\n return axios.get(config.baseUrl + apiEndpoint, getOptions())\r\n .then((response) => { \r\n return response;\r\n }).catch((err) => {\r\n console.log(err);\r\n if (err.response.status == 401) {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n history.push('/');\r\n } \r\n return err;\r\n })\r\n}\r\nfunction post(apiEndpoint, payload) {\r\n return axios.post(config.baseUrl + apiEndpoint, payload, getOptions())\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n console.log(err);\r\n if (err.response.status == 401) {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n history.push('/');\r\n }\r\n return err;\r\n })\r\n}\r\nfunction put(apiEndpoint, payload) {\r\n return axios.put(config.baseUrl + apiEndpoint, payload, getOptions())\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n console.log(err);\r\n if (err.response.status == 401) {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n history.push('/');\r\n } \r\n return err;\r\n })\r\n}\r\nfunction deleteDetail(apiEndpoint) {\r\n return axios.delete(config.baseUrl + apiEndpoint, getOptions())\r\n .then((response) => {\r\n return response;\r\n }).catch((err) => {\r\n console.log(err);\r\n if (err.response.status == 401) {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n history.push('/');\r\n } \r\n return err;\r\n })\r\n}\r\nfunction getOptions() {\r\n let options = {};\r\n if (localStorage.getItem('token')) {\r\n options.headers = { 'Authorization': 'Bearer ' + localStorage.getItem('token') };\r\n }\r\n return options;\r\n}","import { authService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nexport const authActions = {\r\n login,\r\n logout\r\n};\r\nfunction login(username, password) {\r\n return dispatch => {\r\n let apiEndpoint = 'authentication/request';\r\n let payload = {\r\n username: username,\r\n password: password\r\n }\r\n authService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response.data && response.data.token) {\r\n localStorage.setItem('token', response.data.token);\r\n localStorage.setItem('auth', response.data.auth);\r\n localStorage.setItem('user', JSON.stringify(response.data.user));\r\n dispatch(setUserDetails(response.data));\r\n //history.push('/home');\r\n history.push('/minhasestacoes');\r\n }\r\n })\r\n };\r\n}\r\nfunction logout() {\r\n return dispatch => {\r\n localStorage.removeItem('auth');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('user');\r\n dispatch(logoutUser());\r\n history.push('/login');\r\n }\r\n}\r\nexport function setUserDetails(user) {\r\n return {\r\n type: \"LOGIN_SUCCESS\",\r\n auth: user.auth,\r\n token: user.token,\r\n user: user.user\r\n }\r\n}\r\nexport function logoutUser() {\r\n return {\r\n type: \"LOGOUT_SUCCESS\",\r\n auth: false,\r\n token: '',\r\n user: null\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const checkoutActions = {\r\n createPreference\r\n};\r\nfunction createPreference(lotes) {\r\n return dispatch => {\r\n let apiEndpoint = 'checkout';\r\n\r\n crudService.post(apiEndpoint, lotes)\r\n .then(response => {\r\n console.log('response', response);\r\n if (response.status == 202 || response.statusText == 'Accepted') {\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Teste iniciado com sucesso!'\r\n }).then(function () {\r\n window.location = \"/minhasestacoes\";\r\n });\r\n } else {\r\n window.location.replace(response.data.preference.initPoint);\r\n //window.location.replace(response.data.preference.sandboxInitPoint);\r\n }\r\n }).catch(err => {\r\n //toast.error('Opss! Problema ao autenticar usuário! 😥')\r\n // err.response.data.errors.forEach(error => toast.error('Opss! ' + error))\r\n })\r\n };\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\n\r\nexport const cidadeAction = {\r\n getCidade,\r\n getCidadeSelect,\r\n clear\r\n};\r\nfunction getCidade() {\r\n return dispatch => {\r\n let apiEndpoint = 'cidades';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeCidadesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getCidadeSelect() {\r\n return dispatch => {\r\n let apiEndpoint = 'cidades/select';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n //response.data.unshift({ id: 0, nome: 'Selecione ...', estadoId: 0, ibge: 0, latLon: null, estado: null });\r\n dispatch(changeCidadesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nexport function changeCidadesList(cidade) {\r\n return {\r\n type: \"FETECHED_ALL_CIDADE\",\r\n cidade: cidade\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"CIDADE_CLEAR\",\r\n }\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_CIDADE\",\r\n props: props,\r\n value: value\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\nimport { visualizationAction } from '../_actions';\r\n\r\nexport const estacaoAction = {\r\n getEstacao,\r\n getEstacaoById,\r\n getEstacaoUsuarioById,\r\n onChangeProps,\r\n editEstacaoInfo,\r\n createEstacao,\r\n favEstacao,\r\n unfavEstacao,\r\n testEstacao,\r\n deleteEstacaoById,\r\n clear\r\n};\r\nfunction getEstacao() {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEstacoesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction createEstacao(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 201) {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Estação cadastrada com sucesso!'\r\n })\r\n history.goBack();\r\n }\r\n else if (response && response.request.status == 400) {\r\n if (response.request.responseText != null && response.request.responseText != '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: response.request.responseText\r\n })\r\n }\r\n else {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Já existe uma estação com este código!'\r\n })\r\n }\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar estação!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar estação!'\r\n })\r\n })\r\n }\r\n}\r\nfunction favEstacao(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/favoritar/' + id;\r\n crudService.post(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status == 201) {\r\n dispatch(createUserInfo());\r\n dispatch(visualizationAction.getVisualization());\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao favoritar estação!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao favoritar estação!'\r\n })\r\n })\r\n }\r\n}\r\nfunction unfavEstacao(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/desfavoritar/' + id;\r\n crudService.post(apiEndpoint)\r\n .then((response) => {\r\n if (response && response.request.status == 201) {\r\n dispatch(createUserInfo());\r\n dispatch(visualizationAction.getVisualization());\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao favoritar estação!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao favoritar estação!'\r\n })\r\n })\r\n }\r\n}\r\nfunction testEstacao(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/testar';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.status == 200) {\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Teste realizado com sucesso. Cadastro está OK!'\r\n })\r\n }\r\n else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao realizar teste. Cadastro não está OK!'\r\n })\r\n }\r\n })\r\n }\r\n}\r\nfunction getEstacaoById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editEstacoesDetails(response.data));\r\n })\r\n };\r\n}\r\nfunction getEstacaoUsuarioById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/usuario/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEstacoesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction onChangeProps(props, value) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, value));\r\n }\r\n}\r\nfunction editEstacaoInfo(id, payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'estacoes/' + id;\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 204) {\r\n dispatch(updatedUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Estação alterada com sucesso!'\r\n })\r\n history.goBack();\r\n }\r\n else if (response && response.request.status == 400) {\r\n if (response.request.responseText != null && response.request.responseText != '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: response.request.responseText\r\n })\r\n }\r\n else {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Já existe uma estação com este código!'\r\n })\r\n }\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao alterar estação!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao alterar estação!'\r\n })\r\n })\r\n }\r\n}\r\nfunction deleteEstacaoById(id) {\r\n return dispatch => {\r\n\r\n Swal.fire({\r\n title: 'Confirmação',\r\n text: 'Tem certeza de que deseja excluir o registro?',\r\n icon: 'warning',\r\n buttons: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Sim',\r\n cancelButtonText: \"Não, cancelar!\",\r\n dangerMode: true,\r\n heightAuto: false\r\n })\r\n .then((willDelete) => {\r\n if (willDelete.value) {\r\n\r\n let apiEndpoint = 'estacoes/' + id;\r\n crudService.deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(deleteEstacoesDetails());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Estação excluída com sucesso!'\r\n })\r\n dispatch(estacaoAction.getEstacao());\r\n })\r\n\r\n }\r\n });\r\n\r\n };\r\n}\r\nexport function changeEstacoesList(estacao) {\r\n return {\r\n type: \"FETECHED_ALL_ESTACAO\",\r\n estacao: estacao\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"ESTACAO_CLEAR\",\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_ESTACAO\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editEstacoesDetails(estacao) {\r\n return {\r\n type: \"ESTACAO_DETAIL\",\r\n id: estacao._id,\r\n codigo: estacao.codigo,\r\n nome: estacao.nome,\r\n senha: estacao.senha,\r\n token: estacao.token,\r\n fonteId: estacao.fonteId,\r\n usuarioId: estacao.usuarioId,\r\n fonte: estacao.fonte,\r\n cidadeId: estacao.cidadeId,\r\n cidade: estacao.cidade,\r\n aprovada: estacao.aprovada,\r\n apelido: estacao.apelido,\r\n link: estacao.link,\r\n latLon: estacao.latLon,\r\n latitude: (estacao.latLon ? estacao.latLon.x : ''),\r\n longitude: (estacao.latLon ? estacao.latLon.y : '')\r\n }\r\n}\r\nexport function updatedUserInfo() {\r\n return {\r\n type: \"ESTACAO_UPDATED\"\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: \"ESTACAO_CREATED_SUCCESSFULLY\"\r\n }\r\n}\r\nexport function deleteEstacoesDetails() {\r\n return {\r\n type: \"DELETED_ESTACAO_DETAILS\"\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\n\r\nexport const estadoAction = {\r\n getEstado,\r\n getEstadoSelect,\r\n clear\r\n};\r\nfunction getEstado() {\r\n return dispatch => {\r\n let apiEndpoint = 'estados';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeEstadosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getEstadoSelect() {\r\n return dispatch => {\r\n let apiEndpoint = 'estados/select';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n //response.data.unshift({ id: 0, nome: 'Selecione ...', uf: '', ibge: 0, paisId: 1, ddd: '', pais: null });\r\n dispatch(changeEstadosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nexport function changeEstadosList(estado) {\r\n return {\r\n type: \"FETECHED_ALL_ESTADO\",\r\n estado: estado\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"ESTADO_CLEAR\",\r\n }\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_ESTADO\",\r\n props: props,\r\n value: value\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const fonteAction = {\r\n getFonte,\r\n getFonteSelect,\r\n getFonteById,\r\n onChangeProps,\r\n editFonteInfo,\r\n createFonte,\r\n deleteFonteById,\r\n clear\r\n};\r\nfunction getFonte() {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeFontesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getFonteSelect() {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n //response.data.unshift({ id: 0, descricao: 'Selecione ...', url: '' });\r\n dispatch(changeFontesList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction createFonte(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes/';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(createUserInfo());\r\n history.push('/fontes');\r\n })\r\n }\r\n}\r\nfunction getFonteById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editFontesDetails(response.data));\r\n })\r\n };\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nfunction editFonteInfo(id, payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'fontes/' + id;\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(updatedUserInfo());\r\n history.push('/fontes');\r\n })\r\n }\r\n}\r\nfunction deleteFonteById(id) {\r\n return dispatch => {\r\n\r\n Swal.fire({\r\n title: 'Confirmação',\r\n text: 'Tem certeza de que deseja excluir o registro?',\r\n icon: 'warning',\r\n buttons: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Sim',\r\n cancelButtonText: \"Não, cancelar!\",\r\n dangerMode: true,\r\n heightAuto: false\r\n })\r\n .then((willDelete) => {\r\n if (willDelete.value) {\r\n\r\n let apiEndpoint = 'fontes/' + id;\r\n crudService.deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(deleteFontesDetails());\r\n dispatch(fonteAction.getFonte());\r\n })\r\n\r\n }\r\n });\r\n\r\n };\r\n}\r\nexport function changeFontesList(fonte) {\r\n return {\r\n type: \"FETECHED_ALL_FONTE\",\r\n fonte: fonte\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"FONTE_CLEAR\",\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_FONTE\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editFontesDetails(fonte) {\r\n return {\r\n type: \"FONTE_DETAIL\",\r\n id: fonte._id,\r\n codigo: fonte.codigo,\r\n nome: fonte.nome,\r\n senha: fonte.senha,\r\n token: fonte.token\r\n }\r\n}\r\nexport function updatedUserInfo() {\r\n return {\r\n type: \"FONTE_UPDATED\"\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: \"FONTE_CREATED_SUCCESSFULLY\"\r\n }\r\n}\r\nexport function deleteFontesDetails() {\r\n return {\r\n type: \"DELETED_FONTE_DETAILS\"\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\n\r\nexport const pagamentoAction = {\r\n getPagamento,\r\n getPagamentoUsuarioById,\r\n getPagamentoAtivoUsuarioById,\r\n clear\r\n};\r\nfunction getPagamento() {\r\n return dispatch => {\r\n let apiEndpoint = 'pagamentos';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changePagamentosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getPagamentoUsuarioById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'pagamentos/usuario/' + id;;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changePagamentosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getPagamentoAtivoUsuarioById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'pagamentos/usuario/ativo/' + id;;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editPagamentosDetails(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nexport function changePagamentosList(pagamento) {\r\n return {\r\n type: \"FETECHED_ALL_PAGAMENTO\",\r\n pagamento: pagamento\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"PAGAMENTO_CLEAR\",\r\n }\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_PAGAMENTO\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editPagamentosDetails(pagamento) {\r\n return {\r\n type: \"PAGAMENTO_DETAIL\",\r\n id: pagamento.id,\r\n usuarioId: pagamento.usuarioId,\r\n dataPagamento: pagamento.dataPagamento,\r\n dataInicioValidade: pagamento.dataInicioValidade,\r\n dataFimValidade: pagamento.dataFimValidade,\r\n valor: pagamento.valor,\r\n formaPagamento: pagamento.formaPagamento,\r\n status: pagamento.status,\r\n transacao: pagamento.transacao,\r\n usuario: pagamento.usuario\r\n }\r\n}","import { crudService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const parametroAction = {\r\n getParametro,\r\n getParametroById,\r\n onChangeProps,\r\n editParametroInfo,\r\n createParametro,\r\n deleteParametroById,\r\n clear\r\n};\r\nfunction getParametro() {\r\n return dispatch => {\r\n let apiEndpoint = 'parametros';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeParametrosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction createParametro(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'parametros/';\r\n console.log(payload);\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Parâmetro cadastrado com sucesso!'\r\n })\r\n history.push('/parametros');\r\n })\r\n }\r\n}\r\nfunction getParametroById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'parametros/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editParametrosDetails(response.data));\r\n })\r\n };\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nfunction editParametroInfo(id, payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'parametros/' + id;\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n dispatch(updatedUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Parâmetro alterado com sucesso!'\r\n })\r\n history.push('/parametros');\r\n })\r\n }\r\n}\r\nfunction deleteParametroById(id) {\r\n return dispatch => {\r\n\r\n Swal.fire({\r\n title: 'Confirmação',\r\n text: 'Tem certeza de que deseja excluir o registro?',\r\n icon: 'warning',\r\n buttons: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Sim',\r\n cancelButtonText: \"Não, cancelar!\",\r\n dangerMode: true,\r\n heightAuto: false\r\n })\r\n .then((willDelete) => {\r\n if (willDelete.value) {\r\n\r\n let apiEndpoint = 'parametros/' + id;\r\n crudService.deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(deleteParametrosDetails());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Parâmetro excluído com sucesso!'\r\n })\r\n dispatch(parametroAction.getParametro());\r\n })\r\n\r\n }\r\n });\r\n\r\n };\r\n}\r\nexport function changeParametrosList(parametro) {\r\n return {\r\n type: \"FETECHED_ALL_PARAMETRO\",\r\n parametro: parametro\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"PARAMETRO_CLEAR\",\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_PARAMETRO\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editParametrosDetails(parametro) {\r\n return {\r\n type: \"PARAMETRO_DETAIL\",\r\n id: parametro._id,\r\n chave: parametro.chave,\r\n valor: parametro.valor,\r\n descricao: parametro.descricao\r\n }\r\n}\r\nexport function updatedUserInfo() {\r\n return {\r\n type: \"PARAMETRO_UPDATED\"\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: \"PARAMETRO_CREATED_SUCCESSFULLY\"\r\n }\r\n}\r\nexport function deleteParametrosDetails() {\r\n return {\r\n type: \"DELETED_PARAMETRO_DETAILS\"\r\n }\r\n}","import { crudService, authService } from '../_services/';\r\nimport { history } from '../_helpers';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport const usuarioAction = {\r\n getUsuario,\r\n getUsuarioSelect,\r\n getUsuarioById,\r\n onChangeProps,\r\n editUsuarioInfo,\r\n createUsuario,\r\n deleteUsuarioById,\r\n clear,\r\n requestPasswordReset,\r\n passwordReset\r\n};\r\nfunction getUsuario() {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeUsuariosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction getUsuarioSelect() {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n //response.data.unshift({ id: 0, descricao: 'Selecione ...', url: '' });\r\n dispatch(changeUsuariosList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\nfunction createUsuario(payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios/';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 201) {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Usuário cadastrado com sucesso!'\r\n })\r\n history.push('/usuarios');\r\n }\r\n else if (response && response.request.status == 400) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Já existe um usuário com este e-mail!'\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar usuário!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar usuário!'\r\n })\r\n })\r\n }\r\n}\r\nfunction getUsuarioById(id) {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios/' + id;\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(editUsuariosDetails(response.data));\r\n })\r\n };\r\n}\r\nfunction onChangeProps(props, event) {\r\n return dispatch => {\r\n dispatch(handleOnChangeProps(props, event.target.value));\r\n }\r\n}\r\nfunction editUsuarioInfo(id, payload) {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios/' + id;\r\n crudService.put(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 204) {\r\n dispatch(updatedUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Usuário alterado com sucesso!'\r\n })\r\n history.push('/usuarios');\r\n }\r\n else if (response && response.request.status == 400) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Já existe um usuário com este e-mail!'\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao alterar usuário!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao alterar usuário!'\r\n })\r\n })\r\n }\r\n}\r\nfunction deleteUsuarioById(id) {\r\n return dispatch => {\r\n\r\n Swal.fire({\r\n title: 'Confirmação',\r\n text: 'Tem certeza de que deseja excluir o registro?',\r\n icon: 'warning',\r\n buttons: true,\r\n showCancelButton: true,\r\n confirmButtonText: 'Sim',\r\n cancelButtonText: \"Não, cancelar!\",\r\n dangerMode: true,\r\n heightAuto: false\r\n })\r\n .then((willDelete) => {\r\n if (willDelete.value) {\r\n\r\n let apiEndpoint = 'usuarios/' + id;\r\n crudService.deleteDetail(apiEndpoint)\r\n .then((response) => {\r\n dispatch(deleteUsuariosDetails());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Usuário excluído com sucesso!'\r\n })\r\n dispatch(usuarioAction.getUsuario());\r\n })\r\n\r\n }\r\n });\r\n\r\n };\r\n}\r\nexport function changeUsuariosList(usuario) {\r\n return {\r\n type: \"FETECHED_ALL_USUARIO\",\r\n usuario: usuario\r\n }\r\n}\r\nexport function clear() {\r\n return {\r\n type: \"USUARIO_CLEAR\",\r\n }\r\n}\r\nfunction requestPasswordReset(payload) {\r\n return dispatch => {\r\n console.log('payload', payload);\r\n let apiEndpoint = 'usuarios/request-reset-password/';\r\n crudService.post(apiEndpoint, payload)\r\n .then((response) => {\r\n if (response && response.request.status == 200) {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'E-mail de recuperação enviado!'\r\n })\r\n history.push('/usuarios');\r\n }\r\n else if (response && response.request.status == 404) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Não existe nehumum usuário com este e-mail!'\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao recuperar senha do usuário!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar usuário!'\r\n })\r\n })\r\n }\r\n}\r\nfunction passwordReset(payload, token) {\r\n return dispatch => {\r\n let apiEndpoint = 'usuarios/reset-password/';\r\n authService.postWithToken(apiEndpoint, payload, token)\r\n .then((response) => {\r\n if (response && response.request.status == 200) {\r\n dispatch(createUserInfo());\r\n Swal.fire({\r\n icon: 'success',\r\n title: 'Sucesso',\r\n text: 'Senha redefinida com sucesso!'\r\n })\r\n history.push('/usuarios');\r\n }\r\n else if (response && response.request.status == 404) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Não existe nehumum usuário com o e-mail informado!'\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao recuperar senha do usuário!'\r\n })\r\n }\r\n }).catch(err => {\r\n Swal.fire({\r\n icon: 'error',\r\n title: 'Erro',\r\n text: 'Erro ao cadastrar usuário!'\r\n })\r\n })\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_USUARIO\",\r\n props: props,\r\n value: value\r\n }\r\n}\r\nexport function editUsuariosDetails(usuario) {\r\n return {\r\n type: \"USUARIO_DETAIL\",\r\n id: usuario._id,\r\n email: usuario.email,\r\n nome: usuario.nome,\r\n senha: usuario.senha,\r\n papel: usuario.papel,\r\n telefone: usuario.telefone,\r\n log: usuario.log\r\n }\r\n}\r\nexport function updatedUserInfo() {\r\n return {\r\n type: \"USUARIO_UPDATED\"\r\n }\r\n}\r\nexport function createUserInfo() {\r\n return {\r\n type: \"USUARIO_CREATED_SUCCESSFULLY\"\r\n }\r\n}\r\nexport function deleteUsuariosDetails() {\r\n return {\r\n type: \"DELETED_USUARIO_DETAILS\"\r\n }\r\n}","import { crudService, visualizationService } from '../_services/';\r\n\r\nexport const visualizationAction = {\r\n getVisualization\r\n};\r\nfunction getVisualization() {\r\n return dispatch => {\r\n let apiEndpoint = 'visualization';\r\n crudService.get(apiEndpoint)\r\n .then((response) => {\r\n dispatch(changeVisualizationsList(response.data));\r\n }).catch((err) => {\r\n console.log(err);\r\n })\r\n };\r\n}\r\n\r\nexport function changeVisualizationsList(visualization) {\r\n return {\r\n type: \"FETECHED_ALL_VISUALIZATION\",\r\n visualization: visualization\r\n }\r\n}\r\nexport function handleOnChangeProps(props, value) {\r\n return {\r\n type: \"HANDLE_ON_CHANGE_VISUALIZATION\",\r\n props: props,\r\n value: value\r\n }\r\n}","module.exports = {\r\n headers: {\r\n accept: 'application/json'\r\n },\r\n //baseUrl: 'http://localhost:56531/api/'\r\n //baseUrl: 'http://estacoes.forcontrol.com.br/api/'\r\n baseUrl: 'https://estacoesdobrasil.com.br/api/'\r\n}\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAZCAYAAAAIcL+IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAECSURBVDiN7ZOhTgNRFETPLhUIaoAPqMATUodrUaxAkKBqK/BFNzV8BAqHgxDSChwC1SBxpa4JAtdQQ0gO5m6ybTcbgmaSEXdmct8d8SCgJmpXfQl21YRVqJk6U8+CMzUrCw7VXmHuqcN8TgvZPWBamKehrQUr8R+sRG1VUC+BbeCxMgicA1u/CX4AG3++MY27joFGbCtuboQHalOdqx31QH1V30LvhNdM1CvgG7gHHoDN2PgFnAIZUEOdqCfqteu4CW+SAnVgDuyUdNgNr54CY+AIuCsJ3oY3Rm2rC3U//smT+qxeRLmF2s6bD9RPta8eBvuhDZbeUFvqSH0PjtRW7v8Ar+PzWLoBXg8AAAAASUVORK5CYII=\"","import { connect } from 'react-redux';\r\nimport { estacaoAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { history } from '../_helpers';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%'\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass Estacao extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.clear());\r\n dispatch(estacaoAction.getEstacao()); \r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (event, id) => {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.deleteEstacaoById(id));\r\n };\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { estacao } = this.props.state.estacao;\r\n\r\n return (\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Estações'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {'Total'}\r\n {estacao.length}\r\n \r\n \r\n \r\n \r\n {'Apro.'}\r\n {estacao.filter(item => (item.aprovada != null && item.aprovada == true)).length}\r\n \r\n \r\n \r\n \r\n {'Aguard.'}\r\n {estacao.filter(item => (item.aprovada == null)).length}\r\n \r\n \r\n \r\n \r\n {'Repro.'}\r\n {estacao.filter(item => (item.aprovada != null && item.aprovada == false)).length}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Código\r\n Usuário\r\n Nome\r\n Localização\r\n Situação\r\n Ações\r\n \r\n \r\n \r\n {\r\n estacao.map(n => {\r\n\r\n var location = '';\r\n if (n.cidade != null && n.cidade.estado != null && n.cidade.nome != null) {\r\n location = n.cidade.nome + ', ' + n.cidade.estado.uf;\r\n } else if (n.cidade != null && n.cidade.estado != null && n.cidade.estado.uf != null) {\r\n location = n.cidade.estado.uf;\r\n } else if (n.cidade != null) {\r\n location = n.cidade.cidade.nome;\r\n }\r\n\r\n var situacao = '';\r\n if (n.aprovada != null && n.aprovada == true) {\r\n situacao = 'Aprovada';\r\n } else if (n.aprovada != null && n.aprovada == false) {\r\n situacao = 'Reprovada';\r\n } else {\r\n situacao = 'Aguardando aprovação'\r\n }\r\n \r\n return (\r\n \r\n \r\n {n.codigo}\r\n \r\n \r\n {n.usuario ? n.usuario.nome : ''}\r\n \r\n \r\n {n.apelido ? n.apelido : n.nome}\r\n \r\n {location}\r\n {situacao}\r\n \r\n history.push(`/estacao/${n.id}`)}>\r\n \r\n \r\n this.handleClick(event, n.id)}>\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nEstacao.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedEstacaoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(Estacao)));\r\nexport { connectedEstacaoPage as Estacao };","import React, { Component, PureComponent } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Nav from '../_components/nav';\r\nimport { Paper, Grid, Button, TextField, Select, Typography, Input, InputLabel, MenuItem, FormHelperText, FormControl, FormControlLabel, Switch } from '@material-ui/core';\r\nimport { connect } from 'react-redux';\r\nimport { estacaoAction, estadoAction, cidadeAction, fonteAction, usuarioAction } from '../_actions';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n contentRoot: {\r\n ...theme.mixins.gutters(),\r\n paddingTop: theme.spacing.unit * 2,\r\n paddingBottom: theme.spacing.unit * 2,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n submitButton: {\r\n color: '#ffffff',\r\n marginLeft: 5\r\n }\r\n});\r\nclass EstacaoEdit extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n handleChangeSelectedEstado(value) {\r\n this.props.estacao.cidade.estadoId = value;\r\n this.renderOptionsCidade();\r\n this.forceUpdate();\r\n }\r\n\r\n handleChangeSelectedCidade(value) {\r\n this.props.estacao.cidadeId = value;\r\n this.forceUpdate();\r\n }\r\n\r\n handleChangeSelectedFonte(value) {\r\n this.props.estacao.fonteId = value;\r\n this.forceUpdate();\r\n }\r\n\r\n handleChangeSelectedUsuario(value) {\r\n this.props.estacao.usuarioId = value;\r\n this.forceUpdate();\r\n }\r\n\r\n handleChange = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.onChangeProps(prop, event.target.value));\r\n }\r\n\r\n handleChangeChecked = prop => event => {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.onChangeProps(prop, event.target.checked));\r\n }\r\n\r\n componentDidMount() {\r\n const { match: { params } } = this.props;\r\n this.renderOptionsEstado();\r\n\r\n const { dispatch } = this.props;\r\n if (params.id) {\r\n dispatch(estacaoAction.getEstacaoById(params.id));\r\n } else {\r\n dispatch(estacaoAction.clear());\r\n }\r\n\r\n dispatch(estadoAction.getEstado());\r\n dispatch(cidadeAction.getCidade());\r\n dispatch(fonteAction.getFonteSelect());\r\n dispatch(usuarioAction.getUsuarioSelect());\r\n\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n\r\n handleClick(event, type) {\r\n\r\n const { match: { params } } = this.props;\r\n const { dispatch } = this.props;\r\n\r\n if (this.props.estacao.fonteId == null || this.props.estacao.fonteId == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Fonte válida!'\r\n })\r\n } else if (this.props.estacao.fonteId !== 7 && (this.props.estacao.codigo == null || this.props.estacao.codigo == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Código/Station ID válido!'\r\n })\r\n } else if (this.props.estacao.fonteId == 1 && this.props.estacao.codigo.length !== 12) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Para o WeatherLink, informe um Código/Station com 12 caracteres!'\r\n })\r\n } else if (this.props.estacao.fonteId == 1 && (this.props.estacao.senha == null || this.props.estacao.senha == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Senha válida!'\r\n })\r\n } else if (this.props.estacao.fonteId == 2 && (this.props.estacao.dataValidadeToken == null || this.props.estacao.dataValidadeToken == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Data de Validade da API Key!'\r\n })\r\n } else if ((this.props.estacao.fonteId !== 3 && this.props.estacao.fonteId !== 5) && (this.props.estacao.token == null || this.props.estacao.token == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Token/API Key válida!'\r\n })\r\n } else if (this.props.estacao.cidade.estadoId == null || this.props.estacao.cidade.estadoId == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe um Estado válido!'\r\n })\r\n } else if (this.props.estacao.cidadeId == null || this.props.estacao.cidadeId == '') {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Cidade válida!'\r\n })\r\n } else if (this.props.estacao.fonteId == 7 && (this.props.estacao.latitude == null || this.props.estacao.latitude == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Latitude!'\r\n })\r\n } else if (this.props.estacao.fonteId == 7 && (this.props.estacao.longitude == null || this.props.estacao.longitude == '')) {\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Atenção',\r\n text: 'Informe uma Longitude!'\r\n })\r\n } else {\r\n\r\n let payload = {\r\n id: params.id,\r\n usuarioId: (this.props.estacao.usuarioId ? this.props.estacao.usuarioId : this.props.authentication.user.id),\r\n fonteId: this.props.estacao.fonteId,\r\n nome: this.props.estacao.nome,\r\n codigo: this.props.estacao.codigo,\r\n senha: this.props.estacao.senha,\r\n aprovada: this.props.estacao.aprovada,\r\n dataValidadeToken: this.props.estacao.dataValidadeToken,\r\n token: this.props.estacao.token,\r\n cidadeId: this.props.estacao.cidadeId,\r\n apelido: this.props.estacao.apelido,\r\n link: this.props.estacao.link,\r\n latLon: (this.props.estacao.fonteId == 7 ? {\r\n x: this.props.estacao.latitude,\r\n y: this.props.estacao.longitude\r\n } : null)\r\n }\r\n\r\n if (type == 'test') {\r\n dispatch(estacaoAction.testEstacao(payload));\r\n } else {\r\n if (params.id) {\r\n dispatch(estacaoAction.editEstacaoInfo(params.id, payload));\r\n } else {\r\n payload.id = 0;\r\n dispatch(estacaoAction.createEstacao(payload));\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n renderOptionsEstado() {\r\n return this.props.estado.estado.map((p, i) => {\r\n if (p.paisId === 1) {\r\n return (\r\n {p.nome}\r\n \r\n );\r\n }\r\n });\r\n }\r\n\r\n renderOptionsCidade() {\r\n const { estadoId } = this.props.estacao.cidade;\r\n return this.props.cidade.cidade.map((p, i) => {\r\n if (p.estadoId == estadoId) {\r\n return (\r\n {p.nome}\r\n \r\n );\r\n }\r\n });\r\n }\r\n\r\n renderOptionsFonte() {\r\n return this.props.fonte.fonte.map((p, i) => {\r\n return (\r\n {p.descricao}\r\n \r\n\r\n );\r\n });\r\n }\r\n\r\n renderOptionsUsuario() {\r\n return this.props.usuario.usuario.map((p, i) => {\r\n return (\r\n {p.nome}\r\n \r\n\r\n );\r\n });\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { match: { params } } = this.props;\r\n var papel = this.props.authentication.user.papel;\r\n\r\n function InsertText(props) {\r\n return {'Nova Estação'};\r\n }\r\n\r\n function EditText(props) {\r\n return {'Editar Estação'};\r\n }\r\n function SegHeader() {\r\n if (params.id) {\r\n return ;\r\n }\r\n return ;\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Fonte\r\n this.handleChangeSelectedFonte(event.target.value)}\r\n input={}\r\n >\r\n {this.renderOptionsFonte()}\r\n \r\n \r\n \r\n {papel === 'admin' ?\r\n \r\n \r\n Usuário\r\n this.handleChangeSelectedUsuario(event.target.value)}\r\n input={}\r\n >\r\n {this.renderOptionsUsuario()}\r\n \r\n \r\n \r\n : null}\r\n \r\n \r\n {\r\n ((this.props.estacao.fonteId !== 7) ?\r\n \r\n \r\n \r\n \r\n \r\n : null\r\n )\r\n }\r\n {\r\n ((this.props.estacao.fonteId == 1 || this.props.estacao.fonteId === 4 || this.props.estacao.fonteId === 6) ?\r\n \r\n \r\n \r\n \r\n \r\n : null\r\n )\r\n }\r\n {\r\n ((this.props.estacao.fonteId == 2) ?\r\n \r\n \r\n \r\n \r\n \r\n : null\r\n )\r\n }\r\n \r\n {\r\n ((this.props.estacao.fonteId !== 3 && this.props.estacao.fonteId !== 5) ?\r\n \r\n \r\n \r\n \r\n \r\n {((this.props.estacao.fonteId == 2) ? \"Saiba como obter a API Key no Wundergound acessando https://www.wunderground.com/member/api-keys\" : ((this.props.estacao.fonteId == 6) ? \"Saiba como obter a API Key e Secret no WeatherLink v2 acessando https://www.weatherlink.com/account\" : ((this.props.estacao.fonteId == 7) ? \"Fazer login no WeatherLink e localizar o Hash da Estação. No link de exemplo https://www.weatherlink.com/bulletin/4f3efea1-d22f-4c33-aa82-55c3b0bc4308, o Hash é 4f3efea1-d22f-4c33-aa82-55c3b0bc4308.\" : \"\")))}\r\n \r\n \r\n : null\r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n Opcional. Nome a ser exibido no lugar do nome oficial da estação.\r\n \r\n \r\n \r\n \r\n \r\n Link externo para acesso à estação. Necessário apenas para o Weatherlink.\r\n \r\n \r\n\r\n \r\n \r\n \r\n Estado\r\n this.handleChangeSelectedEstado(event.target.value)}\r\n input={}\r\n >\r\n {this.renderOptionsEstado()}\r\n \r\n {/*Label + placeholder*/}\r\n \r\n \r\n \r\n \r\n Cidade\r\n this.handleChangeSelectedCidade(event.target.value)}\r\n input={}\r\n >\r\n {this.renderOptionsCidade()}\r\n \r\n {/*Label + placeholder*/}\r\n \r\n \r\n \r\n {\r\n ((this.props.estacao.fonteId == 7) ?\r\n \r\n \r\n \r\n \r\n \r\n Formato:-50.4903\r\n \r\n \r\n \r\n \r\n \r\n Formato:-26.2933\r\n \r\n \r\n : null\r\n )\r\n }\r\n {papel === 'admin' ?\r\n \r\n \r\n \r\n }\r\n label=\"Aprovada\"\r\n />\r\n \r\n \r\n : null}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nEstacaoEdit.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return state;\r\n}\r\n\r\nconst connectedEstacaoEditPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(EstacaoEdit)));\r\nexport { connectedEstacaoEditPage as EstacaoEdit };","import { connect } from 'react-redux';\r\nimport { estacaoAction } from '../_actions';\r\nimport React, { Component } from 'react';\r\nimport AppBar from '../_components/appbar';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Nav from '../_components/nav';\r\nimport { Table, TableBody, TableCell, TableHead, TableRow, Paper, Grid, Button, TableContainer } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { history } from '../_helpers';\r\nimport ResponsiveDrawer from '../_components/responsiveDrawer';\r\nimport throttle from 'lodash.throttle';\r\n\r\nconst drawerWidth = 210;\r\nconst styles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n appFrame: {\r\n zIndex: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n //display: 'flex',\r\n width: '100%',\r\n },\r\n appBar: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n 'appBar-left': {\r\n marginLeft: drawerWidth,\r\n },\r\n 'appBar-right': {\r\n marginRight: drawerWidth,\r\n },\r\n drawerPaper: {\r\n position: 'relative',\r\n width: drawerWidth,\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.default,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n paper: {\r\n position: 'absolute',\r\n width: theme.spacing.unit * 50,\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing.unit * 4,\r\n },\r\n gridItem: {\r\n padding: 5,\r\n alignSelf: 'flex-end'\r\n },\r\n newButton: {\r\n color: '#ffffff'\r\n }\r\n});\r\nclass MinhaEstacao extends Component {\r\n\r\n state = {\r\n isMobile: window.innerWidth < 468\r\n }\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n var usuarioId = this.props.state.authentication.user.id;\r\n dispatch(estacaoAction.clear());\r\n dispatch(estacaoAction.getEstacaoUsuarioById(usuarioId)); \r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n throttledHandleWindowResize = () => {\r\n return throttle(() => {\r\n this.setState({ isMobile: window.innerWidth < 468 });\r\n this.forceUpdate();\r\n }, 200);\r\n }\r\n componentWillUnmount() {\r\n window.addEventListener('resize', this.throttledHandleWindowResize);\r\n }\r\n handleClick = (event, id) => {\r\n const { dispatch } = this.props;\r\n dispatch(estacaoAction.deleteEstacaoById(id));\r\n };\r\n render() {\r\n\r\n const { classes } = this.props;\r\n const { estacao } = this.props.state.estacao;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {'Estações'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {'Total'}\r\n {estacao.length}\r\n \r\n \r\n \r\n \r\n {'Apro.'}\r\n {estacao.filter(item => (item.aprovada != null && item.aprovada == true)).length}\r\n \r\n \r\n \r\n \r\n {'Aguard.'}\r\n {estacao.filter(item => (item.aprovada == null)).length}\r\n \r\n \r\n \r\n \r\n {'Repro.'}\r\n {estacao.filter(item => (item.aprovada != null && item.aprovada == false)).length}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Código\r\n Usuário\r\n Nome\r\n Localização\r\n Situação\r\n Ações\r\n \r\n \r\n \r\n {\r\n estacao.map(n => {\r\n\r\n var location = '';\r\n if (n.cidade != null && n.cidade.estado != null & n.cidade.estado.pais != null) {\r\n location = n.cidade.nome + ', ' + n.cidade.estado.uf + ', ' + n.cidade.estado.pais.nomePt;\r\n } else if (n.cidade.estado != null & n.cidade.estado.pais != null) {\r\n location = n.cidade.estado.uf + ', ' + n.cidade.estado.pais.nomePt;\r\n } else if (n.cidade.estado.pais != null) {\r\n location = n.cidade.estado.pais.nomePt;\r\n }\r\n\r\n var situacao = '';\r\n if (n.aprovada != null && n.aprovada == true) {\r\n situacao = 'Aprovada';\r\n } else if (n.aprovada != null && n.aprovada == false) {\r\n situacao = 'Reprovada';\r\n } else {\r\n situacao = 'Aguardando aprovação'\r\n }\r\n \r\n return (\r\n \r\n \r\n {n.codigo}\r\n \r\n \r\n {n.usuario ? n.usuario.nome : ''}\r\n \r\n \r\n {n.apelido ? n.apelido : n.nome}\r\n \r\n {location}\r\n {situacao}\r\n \r\n history.push(`/estacao/${n.id}`)}>\r\n \r\n \r\n this.handleClick(event, n.id)}>\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nMinhaEstacao.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n state\r\n };\r\n}\r\nconst connectedMinhaEstacaoPage = withRouter(connect(mapStateToProps, null, null, {\r\n pure: false\r\n})(withStyles(styles)(MinhaEstacao)));\r\nexport { connectedMinhaEstacaoPage as MinhaEstacao };","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAZCAYAAAAIcL+IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEESURBVDiN1ZMvS0NhGMV/97JgmUU/wIJdZM22mbxhQTCt7hvMPPYZNJlsNkVk6wbTMNrm2sCwNjYQEX6WZ3DdXtQmHjjhOefw/HnhhYCaqR31KdhRM9ahFupUPQ1O1SIVHKjdUt1VB6s6L2X3gEmpnoS2EfwW/yFYWRfUFrANLH7qeAGc/2b0W0pPBU3t+NfvqB4DNWBW8mZALTxQ6+pcbasH6rP6Eno7vHqmXgIfwB1wD2xFx3fgBCiACupYbalXbuI6vHEOVIE5sJO4YTe8ag6MgCPgNhG8CW+E2lSX6n78kwf1UT2L45Zqc3V5X12oPfUw2Aut/2WG2lCH6mtwqDZW/ifGCfRXdNIPpAAAAABJRU5ErkJggg==\""],"sourceRoot":""}