(\r\n \r\n \r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nRouteWithLayout.propTypes = {\r\n component: PropTypes.any.isRequired,\r\n layout: PropTypes.any.isRequired,\r\n path: PropTypes.string\r\n};\r\n\r\nexport default RouteWithLayout;\r\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport { Typography, Link } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst Footer = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n ©{' '}\n \n Gestão Escolar\n \n . {new Date().getFullYear()} - Todos direitos reservados\n \n Desenvolvido por Rodrigo Ramos \n
\n );\n};\n\nFooter.propTypes = {\n className: PropTypes.string\n};\n\nexport default Footer;\n","import React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Avatar, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n minHeight: 'fit-content'\n },\n avatar: {\n width: 60,\n height: 60\n },\n name: {\n marginTop: theme.spacing(1)\n }\n}));\n\nconst Profile = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const user = {\n name: 'Usuário',\n avatar: '/assets/img/avatar/user_avatar_128x.png',\n bio: 'Usuário do sistema'\n };\n\n return (\n \n
\n
\n {user.name}\n \n
{user.bio} \n
\n );\n};\n\nProfile.propTypes = {\n className: PropTypes.string\n};\n\nexport default Profile;\n","/* eslint-disable react/no-multi-comp */\n/* eslint-disable react/display-name */\nimport React, { forwardRef } from 'react';\nimport { NavLink as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport Collapse from '@material-ui/core/Collapse';\nimport ExpandLess from '@material-ui/icons/ExpandLess';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport { colors, Button } from '@material-ui/core';\n\nconst CustomRouterLink = forwardRef((props, ref) => (\n \n \n
\n));\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper\n },\n nested: {\n paddingLeft: theme.spacing(4)\n },\n\n //root: {},\n item: {\n display: 'flex',\n paddingTop: 0,\n paddingBottom: 0\n },\n button: {\n color: colors.blueGrey[800],\n padding: '10px 8px',\n justifyContent: 'flex-start',\n textTransform: 'none',\n letterSpacing: 0,\n width: '100%',\n fontWeight: theme.typography.fontWeightMedium\n },\n icon: {\n color: theme.palette.icon,\n width: 24,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n marginRight: theme.spacing(1)\n },\n active: {\n color: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n '& $icon': {\n color: theme.palette.primary.main\n }\n }\n}));\n\nconst SidebarNav = props => {\n const classes = useStyles();\n const [selectedCategory, setSelectedCategory] = React.useState('');\n const [, setSelectedChild] = React.useState('');\n const { pages, className, ...rest } = props;\n\n const selectChild = (childID, categoryID) => {\n setSelectedChild(childID);\n setSelectedCategory(categoryID);\n };\n const selectCategory = categoryID => {\n let currentID = selectedCategory == categoryID ? '' : categoryID;\n setSelectedCategory(currentID);\n };\n return (\n \n {pages.map(page => (\n \n {page.child.length <= 0 && (\n
selectCategory(page.category.title)}>\n \n {page.category.icon}
\n {page.category.title}\n \n \n )}\n {page.child.length > 0 && (\n
\n
{\n selectCategory(page.category.title);\n }}>\n \n {page.category.icon}
\n {page.category.title}\n \n {/*{page.category.icon} \n */}\n\n {selectedCategory == page.category.title ? (\n \n ) : (\n \n )}\n \n
\n \n {page.child.map(child => (\n {\n selectChild(child.title, page.category.title);\n }}\n style={{ paddingLeft: '24px' }}>\n \n {child.icon}
\n {child.title}\n \n {/*\n \n {child.icon} \n \n */}\n \n ))}\n
\n \n
\n )}\n
\n ))}\n\n {/*\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n {open ? : }\n \n\n \n \n \n \n \n \n \n \n
\n \n */}\n\n {/*pages.map(page => (\n \n \n {page.icon}
\n {page.title}\n \n \n ))*/}\n
\n );\n};\n\nSidebarNav.propTypes = {\n className: PropTypes.string,\n pages: PropTypes.array.isRequired\n};\n\nexport default SidebarNav;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Typography, Button, colors } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: colors.grey[50]\n },\n media: {\n paddingTop: theme.spacing(2),\n height: 80,\n textAlign: 'center',\n '& > img': {\n height: '100%',\n width: 'auto'\n }\n },\n content: {\n padding: theme.spacing(1, 2)\n },\n actions: {\n padding: theme.spacing(1, 2),\n display: 'flex',\n justifyContent: 'center'\n }\n}));\n\nconst UpgradePlan = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n
\n
\n
\n
\n \n Centro de Ensino Moderno (CEM)\n \n \n Desenvolvido por Rodrigo Ramos\n \n
\n
\n \n Precisa de ajuda? Clique aqui!\n \n
\n
\n );\n};\n\nUpgradePlan.propTypes = {\n className: PropTypes.string\n};\n\nexport default UpgradePlan;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Divider, Drawer } from '@material-ui/core';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport PeopleIcon from '@material-ui/icons/People';\nimport AccountBoxIcon from '@material-ui/icons/AccountBox';\nimport AccountBalanceWalletIcon from '@material-ui/icons/AccountBalanceWallet';\nimport LocationOnIcon from '@material-ui/icons/LocationOn';\nimport MonetizationOnIcon from '@material-ui/icons/MonetizationOn';\n\nimport { Profile, SidebarNav, UpgradePlan } from './components';\n\nconst useStyles = makeStyles(theme => ({\n drawer: {\n width: 240,\n [theme.breakpoints.up('lg')]: {\n marginTop: 64,\n height: 'calc(100% - 64px)'\n }\n },\n root: {\n backgroundColor: theme.palette.white,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n padding: theme.spacing(2)\n },\n divider: {\n margin: theme.spacing(2, 0)\n },\n nav: {\n marginBottom: theme.spacing(2)\n }\n}));\n\nconst Sidebar = props => {\n const { open, variant, onClose, className, ...rest } = props;\n\n const classes = useStyles();\n\n const pages = [\n {\n category: {\n title: 'Dashboard',\n href: '/dashboard',\n icon: \n },\n child: []\n },\n {\n category: {\n title: 'Financeiro',\n href: null,\n icon: \n },\n child: [\n {\n title: 'Boletos',\n href: '/financeiro/boleto',\n icon: \n }\n ]\n },\n /*{\n category: {\n title: 'Usuário',\n href: '',\n icon: \n },\n child: [\n {\n title: 'Users',\n href: '/users',\n icon: \n },\n {\n title: 'Account',\n href: '/account',\n icon: \n }\n ]\n },*/\n {\n category: {\n title: 'Estou Chegando',\n href: '/estouchegando',\n icon: \n },\n child: []\n }\n\n /*\n {\n title: 'Users',\n href: '/users',\n icon: \n },\n {\n title: 'Products',\n href: '/products',\n icon: \n },\n {\n title: 'Authentication',\n href: '/sign-in',\n icon: \n },\n {\n title: 'Typography',\n href: '/typography',\n icon: \n },\n {\n title: 'Icons',\n href: '/icons',\n icon: \n },\n {\n title: 'Account',\n href: '/account',\n icon: \n },\n {\n title: 'Settings',\n href: '/settings',\n icon: \n }*/\n ];\n\n return (\n \n \n \n );\n};\n\nSidebar.propTypes = {\n className: PropTypes.string,\n onClose: PropTypes.func,\n open: PropTypes.bool.isRequired,\n variant: PropTypes.string.isRequired\n};\n\nexport default Sidebar;\n","import React, { useState } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { AppBar, Toolbar, Badge, Hidden, IconButton } from '@material-ui/core';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport NotificationsIcon from '@material-ui/icons/NotificationsOutlined';\nimport InputIcon from '@material-ui/icons/Input';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n boxShadow: 'none'\n },\n flexGrow: {\n flexGrow: 1\n },\n signOutButton: {\n marginLeft: theme.spacing(1)\n }\n}));\n\nconst Topbar = props => {\n const { className, onSidebarOpen, ...rest } = props;\n\n const classes = useStyles();\n\n const [notifications] = useState([]);\n\n return (\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTopbar.propTypes = {\n className: PropTypes.string,\n onSidebarOpen: PropTypes.func\n};\n\nexport default Topbar;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles, useTheme } from '@material-ui/styles';\nimport { useMediaQuery } from '@material-ui/core';\n\nimport { Sidebar, Topbar, Footer } from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingTop: 56,\n height: '100%',\n [theme.breakpoints.up('sm')]: {\n paddingTop: 64\n }\n },\n shiftContent: {\n paddingLeft: 240\n },\n content: {\n height: '100%'\n }\n}));\n\nconst Main = props => {\n const { children } = props;\n\n const classes = useStyles();\n const theme = useTheme();\n const isDesktop = useMediaQuery(theme.breakpoints.up('lg'), {\n defaultMatches: true\n });\n\n const [openSidebar, setOpenSidebar] = useState(false);\n\n const handleSidebarOpen = () => {\n setOpenSidebar(true);\n };\n\n const handleSidebarClose = () => {\n setOpenSidebar(false);\n };\n\n const shouldOpenSidebar = isDesktop ? true : openSidebar;\n\n return (\n \n \n \n \n {children}\n \n \n
\n );\n};\n\nMain.propTypes = {\n children: PropTypes.node\n};\n\nexport default Main;\n","import React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { AppBar, Toolbar } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {\n boxShadow: 'none'\n }\n}));\n\nconst Topbar = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nTopbar.propTypes = {\n className: PropTypes.string\n};\n\nexport default Topbar;\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nimport { Topbar } from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n paddingTop: 64,\r\n height: '100%'\r\n },\r\n content: {\r\n height: '100%'\r\n }\r\n}));\r\n\r\nconst Minimal = props => {\r\n const { children } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {children} \r\n
\r\n );\r\n};\r\n\r\nMinimal.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Minimal;\r\n","import React, { useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Divider,\r\n Grid,\r\n Button,\r\n TextField\r\n} from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}));\r\n\r\nconst AccountDetails = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const [values, setValues] = useState({\r\n firstName: 'Shen',\r\n lastName: 'Zhi',\r\n email: 'shen.zhi@devias.io',\r\n phone: '',\r\n state: 'Alabama',\r\n country: 'USA'\r\n });\r\n\r\n const handleChange = event => {\r\n setValues({\r\n ...values,\r\n [event.target.name]: event.target.value\r\n });\r\n };\r\n\r\n const states = [\r\n {\r\n value: 'alabama',\r\n label: 'Alabama'\r\n },\r\n {\r\n value: 'new-york',\r\n label: 'New York'\r\n },\r\n {\r\n value: 'san-francisco',\r\n label: 'San Francisco'\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nAccountDetails.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default AccountDetails;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardActions,\r\n CardContent,\r\n Avatar,\r\n Typography,\r\n Divider,\r\n Button,\r\n LinearProgress\r\n} from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n details: {\r\n display: 'flex'\r\n },\r\n avatar: {\r\n marginLeft: 'auto',\r\n height: 110,\r\n width: 100,\r\n flexShrink: 0,\r\n flexGrow: 0\r\n },\r\n progress: {\r\n marginTop: theme.spacing(2)\r\n },\r\n uploadButton: {\r\n marginRight: theme.spacing(2)\r\n }\r\n}));\r\n\r\nconst AccountProfile = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const user = {\r\n name: 'Shen Zhi',\r\n city: 'Los Angeles',\r\n country: 'USA',\r\n timezone: 'GTM-7',\r\n avatar: '/images/avatars/avatar_11.png'\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n John Doe\r\n \r\n \r\n {user.city}, {user.country}\r\n \r\n \r\n {moment().format('hh:mm A')} ({user.timezone})\r\n \r\n
\r\n
\r\n
\r\n \r\n Profile Completeness: 70% \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Upload picture\r\n \r\n Remove picture \r\n \r\n \r\n );\r\n};\r\n\r\nAccountProfile.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default AccountProfile;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid } from '@material-ui/core';\r\n\r\nimport { AccountProfile, AccountDetails } from './components';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(4)\r\n }\r\n}));\r\n\r\nconst Account = () => {\r\n const classes = useStyles();\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\nexport default Account;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\r\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\r\nimport MoneyIcon from '@material-ui/icons/Money';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n height: '100%'\r\n },\r\n content: {\r\n alignItems: 'center',\r\n display: 'flex'\r\n },\r\n title: {\r\n fontWeight: 700\r\n },\r\n avatar: {\r\n backgroundColor: theme.palette.error.main,\r\n height: 56,\r\n width: 56\r\n },\r\n icon: {\r\n height: 32,\r\n width: 32\r\n },\r\n difference: {\r\n marginTop: theme.spacing(2),\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n differenceIcon: {\r\n color: theme.palette.error.dark\r\n },\r\n differenceValue: {\r\n color: theme.palette.error.dark,\r\n marginRight: theme.spacing(1)\r\n }\r\n}));\r\n\r\nconst Budget = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n BUDGET\r\n \r\n $24,000 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n 12%\r\n \r\n
\r\n Since last month\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nBudget.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Budget;\r\n","import uuid from 'uuid/v1';\r\n\r\nexport default [\r\n {\r\n id: uuid(),\r\n ref: 'CDD1049',\r\n amount: 30.5,\r\n customer: {\r\n name: 'Ekaterina Tankova'\r\n },\r\n createdAt: 1555016400000,\r\n status: 'pending'\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'CDD1048',\r\n amount: 25.1,\r\n customer: {\r\n name: 'Cao Yu'\r\n },\r\n createdAt: 1555016400000,\r\n status: 'delivered'\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'CDD1047',\r\n amount: 10.99,\r\n customer: {\r\n name: 'Alexa Richardson'\r\n },\r\n createdAt: 1554930000000,\r\n status: 'refunded'\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'CDD1046',\r\n amount: 96.43,\r\n customer: {\r\n name: 'Anje Keizer'\r\n },\r\n createdAt: 1554757200000,\r\n status: 'pending'\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'CDD1045',\r\n amount: 32.54,\r\n customer: {\r\n name: 'Clarke Gillebert'\r\n },\r\n createdAt: 1554670800000,\r\n status: 'delivered'\r\n },\r\n {\r\n id: uuid(),\r\n ref: 'CDD1044',\r\n amount: 16.76,\r\n customer: {\r\n name: 'Adam Denisov'\r\n },\r\n createdAt: 1554670800000,\r\n status: 'delivered'\r\n }\r\n];\r\n","import React, { useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardActions,\r\n CardHeader,\r\n CardContent,\r\n Button,\r\n Divider,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Tooltip,\r\n TableSortLabel\r\n} from '@material-ui/core';\r\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\r\n\r\nimport mockData from './data';\r\nimport { StatusBullet } from 'components';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n content: {\r\n padding: 0\r\n },\r\n inner: {\r\n minWidth: 800\r\n },\r\n statusContainer: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n status: {\r\n marginRight: theme.spacing(1)\r\n },\r\n actions: {\r\n justifyContent: 'flex-end'\r\n }\r\n}));\r\n\r\nconst statusColors = {\r\n delivered: 'success',\r\n pending: 'info',\r\n refunded: 'danger'\r\n};\r\n\r\nconst LatestOrders = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const [orders] = useState(mockData);\r\n\r\n return (\r\n \r\n \r\n New entry\r\n \r\n }\r\n title=\"Latest Orders\"\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Order Ref \r\n Customer \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n \r\n Status \r\n \r\n \r\n \r\n {orders.map(order => (\r\n \r\n {order.ref} \r\n {order.customer.name} \r\n \r\n {moment(order.createdAt).format('DD/MM/YYYY')}\r\n \r\n \r\n \r\n \r\n {order.status}\r\n
\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 all \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nLatestOrders.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default LatestOrders;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid } from '@material-ui/core';\r\n\r\nimport {\r\n Budget,\r\n TotalUsers,\r\n TasksProgress,\r\n TotalProfit,\r\n LatestSales,\r\n UsersByDevice,\r\n LatestProducts,\r\n LatestOrders\r\n} from './components';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(4)\r\n }\r\n}));\r\n\r\nconst Dashboard = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n Aqui vão as informações de dashboard\r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 Dashboard;\r\n","import uuid from 'uuid/v1';\r\nimport moment from 'moment';\r\n\r\nexport default [\r\n {\r\n id: uuid(),\r\n name: 'Dropbox',\r\n imageUrl: '/images/products/product_1.png',\r\n updatedAt: moment().subtract(2, 'hours')\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Medium Corporation',\r\n imageUrl: '/images/products/product_2.png',\r\n updatedAt: moment().subtract(2, 'hours')\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Slack',\r\n imageUrl: '/images/products/product_3.png',\r\n updatedAt: moment().subtract(3, 'hours')\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Lyft',\r\n imageUrl: '/images/products/product_4.png',\r\n updatedAt: moment().subtract(5, 'hours')\r\n },\r\n {\r\n id: uuid(),\r\n name: 'GitHub',\r\n imageUrl: '/images/products/product_5.png',\r\n updatedAt: moment().subtract(9, 'hours')\r\n }\r\n];\r\n","import React, { useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Button,\r\n Divider,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n IconButton\r\n} from '@material-ui/core';\r\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\r\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\r\n\r\nimport mockData from './data';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n height: '100%'\r\n },\r\n content: {\r\n padding: 0\r\n },\r\n image: {\r\n height: 48,\r\n width: 48\r\n },\r\n actions: {\r\n justifyContent: 'flex-end'\r\n }\r\n}));\r\n\r\nconst LatestProducts = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const [products] = useState(mockData);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {products.map((product, i) => (\r\n \r\n \r\n \r\n \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 all \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nLatestProducts.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default LatestProducts;\r\n","import palette from 'theme/palette';\r\n\r\nexport const data = {\r\n labels: ['1 Aug', '2 Aug', '3 Aug', '4 Aug', '5 Aug', '6 Aug'],\r\n datasets: [\r\n {\r\n label: 'This year',\r\n backgroundColor: palette.primary.main,\r\n data: [18, 5, 19, 27, 29, 19, 20]\r\n },\r\n {\r\n label: 'Last year',\r\n backgroundColor: palette.neutral,\r\n data: [11, 20, 12, 29, 30, 25, 13]\r\n }\r\n ]\r\n};\r\n\r\nexport const options = {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: false,\r\n legend: { display: false },\r\n cornerRadius: 20,\r\n tooltips: {\r\n enabled: true,\r\n mode: 'index',\r\n intersect: false,\r\n borderWidth: 1,\r\n borderColor: palette.divider,\r\n backgroundColor: palette.white,\r\n titleFontColor: palette.text.primary,\r\n bodyFontColor: palette.text.secondary,\r\n footerFontColor: palette.text.secondary\r\n },\r\n layout: { padding: 0 },\r\n scales: {\r\n xAxes: [\r\n {\r\n barThickness: 12,\r\n maxBarThickness: 10,\r\n barPercentage: 0.5,\r\n categoryPercentage: 0.5,\r\n ticks: {\r\n fontColor: palette.text.secondary\r\n },\r\n gridLines: {\r\n display: false,\r\n drawBorder: false\r\n }\r\n }\r\n ],\r\n yAxes: [\r\n {\r\n ticks: {\r\n fontColor: palette.text.secondary,\r\n beginAtZero: true,\r\n min: 0\r\n },\r\n gridLines: {\r\n borderDash: [2],\r\n borderDashOffset: [2],\r\n color: palette.divider,\r\n drawBorder: false,\r\n zeroLineBorderDash: [2],\r\n zeroLineBorderDashOffset: [2],\r\n zeroLineColor: palette.divider\r\n }\r\n }\r\n ]\r\n }\r\n};\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { Bar } from 'react-chartjs-2';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Divider,\r\n Button\r\n} from '@material-ui/core';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\r\n\r\nimport { data, options } from './chart';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {},\r\n chartContainer: {\r\n height: 400,\r\n position: 'relative'\r\n },\r\n actions: {\r\n justifyContent: 'flex-end'\r\n }\r\n}));\r\n\r\nconst LatestSales = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n Last 7 days \r\n \r\n }\r\n title=\"Latest Sales\"\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Overview \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nLatestSales.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default LatestSales;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardContent,\r\n Grid,\r\n Typography,\r\n Avatar,\r\n LinearProgress\r\n} from '@material-ui/core';\r\nimport InsertChartIcon from '@material-ui/icons/InsertChartOutlined';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n height: '100%'\r\n },\r\n content: {\r\n alignItems: 'center',\r\n display: 'flex'\r\n },\r\n title: {\r\n fontWeight: 700\r\n },\r\n avatar: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText,\r\n height: 56,\r\n width: 56\r\n },\r\n icon: {\r\n height: 32,\r\n width: 32\r\n },\r\n progress: {\r\n marginTop: theme.spacing(3)\r\n }\r\n}));\r\n\r\nconst TasksProgress = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n TASKS PROGRESS\r\n \r\n 75.5% \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTasksProgress.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default TasksProgress;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\r\nimport AttachMoneyIcon from '@material-ui/icons/AttachMoney';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n height: '100%',\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n },\r\n content: {\r\n alignItems: 'center',\r\n display: 'flex'\r\n },\r\n title: {\r\n fontWeight: 700\r\n },\r\n avatar: {\r\n backgroundColor: theme.palette.white,\r\n color: theme.palette.primary.main,\r\n height: 56,\r\n width: 56\r\n },\r\n icon: {\r\n height: 32,\r\n width: 32\r\n }\r\n}));\r\n\r\nconst TotalProfit = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n TOTAL PROFIT\r\n \r\n \r\n $23,200\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTotalProfit.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default TotalProfit;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\r\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\r\nimport PeopleIcon from '@material-ui/icons/PeopleOutlined';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n height: '100%'\r\n },\r\n content: {\r\n alignItems: 'center',\r\n display: 'flex'\r\n },\r\n title: {\r\n fontWeight: 700\r\n },\r\n avatar: {\r\n backgroundColor: theme.palette.success.main,\r\n height: 56,\r\n width: 56\r\n },\r\n icon: {\r\n height: 32,\r\n width: 32\r\n },\r\n difference: {\r\n marginTop: theme.spacing(2),\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n differenceIcon: {\r\n color: theme.palette.success.dark\r\n },\r\n differenceValue: {\r\n color: theme.palette.success.dark,\r\n marginRight: theme.spacing(1)\r\n }\r\n}));\r\n\r\nconst TotalUsers = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n TOTAL USERS\r\n \r\n 1,600 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n 16%\r\n \r\n
\r\n Since last month\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nTotalUsers.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default TotalUsers;\r\n","import React from 'react';\r\nimport { Doughnut } from 'react-chartjs-2';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, useTheme } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n IconButton,\r\n Divider,\r\n Typography\r\n} from '@material-ui/core';\r\nimport LaptopMacIcon from '@material-ui/icons/LaptopMac';\r\nimport PhoneIphoneIcon from '@material-ui/icons/PhoneIphone';\r\nimport RefreshIcon from '@material-ui/icons/Refresh';\r\nimport TabletMacIcon from '@material-ui/icons/TabletMac';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n height: '100%'\r\n },\r\n chartContainer: {\r\n position: 'relative',\r\n height: '300px'\r\n },\r\n stats: {\r\n marginTop: theme.spacing(2),\r\n display: 'flex',\r\n justifyContent: 'center'\r\n },\r\n device: {\r\n textAlign: 'center',\r\n padding: theme.spacing(1)\r\n },\r\n deviceIcon: {\r\n color: theme.palette.icon\r\n }\r\n}));\r\n\r\nconst UsersByDevice = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n\r\n const data = {\r\n datasets: [\r\n {\r\n data: [63, 15, 22],\r\n backgroundColor: [\r\n theme.palette.primary.main,\r\n theme.palette.error.main,\r\n theme.palette.warning.main\r\n ],\r\n borderWidth: 8,\r\n borderColor: theme.palette.white,\r\n hoverBorderColor: theme.palette.white\r\n }\r\n ],\r\n labels: ['Desktop', 'Tablet', 'Mobile']\r\n };\r\n\r\n const options = {\r\n legend: {\r\n display: false\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: false,\r\n cutoutPercentage: 80,\r\n layout: { padding: 0 },\r\n tooltips: {\r\n enabled: true,\r\n mode: 'index',\r\n intersect: false,\r\n borderWidth: 1,\r\n borderColor: theme.palette.divider,\r\n backgroundColor: theme.palette.white,\r\n titleFontColor: theme.palette.text.primary,\r\n bodyFontColor: theme.palette.text.secondary,\r\n footerFontColor: theme.palette.text.secondary\r\n }\r\n };\r\n\r\n const devices = [\r\n {\r\n title: 'Desktop',\r\n value: '63',\r\n icon: ,\r\n color: theme.palette.primary.main\r\n },\r\n {\r\n title: 'Tablet',\r\n value: '15',\r\n icon: ,\r\n color: theme.palette.error.main\r\n },\r\n {\r\n title: 'Mobile',\r\n value: '23',\r\n icon: ,\r\n color: theme.palette.warning.main\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n }\r\n title=\"Users By Device\"\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {devices.map(device => (\r\n
\r\n {device.icon} \r\n {device.title} \r\n \r\n {device.value}%\r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nUsersByDevice.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default UsersByDevice;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(4)\r\n },\r\n iframe: {\r\n width: '100%',\r\n minHeight: 640,\r\n border: 0\r\n }\r\n}));\r\n\r\nconst Icons = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Icons;\r\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n },\n content: {\n paddingTop: 150,\n textAlign: 'center'\n },\n image: {\n marginTop: 50,\n display: 'inline-block',\n maxWidth: '100%',\n width: 560\n }\n}));\n\nconst NotFound = () => {\n const classes = useStyles();\n\n return (\n \n
\n \n \n
\n 404: A página que você procura não foi localizada\n \n
\n Ou você foi transferidor por engano para este caminho. De qualquer\n forma tente utilizar outro caminho\n \n
\n
\n \n \n
\n );\n};\n\nexport default NotFound;\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardContent,\r\n CardActions,\r\n Typography,\r\n Grid,\r\n Divider\r\n} from '@material-ui/core';\r\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n imageContainer: {\r\n height: 64,\r\n width: 64,\r\n margin: '0 auto',\r\n border: `1px solid ${theme.palette.divider}`,\r\n borderRadius: '5px',\r\n overflow: 'hidden',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n image: {\r\n width: '100%'\r\n },\r\n statsItem: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n statsIcon: {\r\n color: theme.palette.icon,\r\n marginRight: theme.spacing(1)\r\n }\r\n}));\r\n\r\nconst ProductCard = props => {\r\n const { className, product, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {product.title}\r\n \r\n \r\n {product.description}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Updated 2hr ago\r\n \r\n \r\n \r\n \r\n \r\n {product.totalDownloads} Downloads\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nProductCard.propTypes = {\r\n className: PropTypes.string,\r\n product: PropTypes.object.isRequired\r\n};\r\n\r\nexport default ProductCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button } from '@material-ui/core';\r\n\r\nimport { SearchInput } from 'components';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n row: {\r\n height: '42px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginTop: theme.spacing(1)\r\n },\r\n spacer: {\r\n flexGrow: 1\r\n },\r\n importButton: {\r\n marginRight: theme.spacing(1)\r\n },\r\n exportButton: {\r\n marginRight: theme.spacing(1)\r\n },\r\n searchInput: {\r\n marginRight: theme.spacing(1)\r\n }\r\n}));\r\n\r\nconst ProductsToolbar = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n
\r\n \r\n Import \r\n Export \r\n \r\n Add product\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nProductsToolbar.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default ProductsToolbar;\r\n","import uuid from 'uuid/v1';\r\n\r\nexport default [\r\n {\r\n id: uuid(),\r\n title: 'Dropbox',\r\n description:\r\n 'Dropbox is a file hosting service that offers cloud storage, file synchronization, a personal cloud.',\r\n imageUrl: '/images/products/product_1.png',\r\n totalDownloads: '594',\r\n updatedAt: '27/03/2019'\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Medium Corporation',\r\n description:\r\n 'Medium is an online publishing platform developed by Evan Williams, and launched in August 2012.',\r\n imageUrl: '/images/products/product_2.png',\r\n totalDownloads: '625',\r\n createdAt: '31/03/2019'\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Slack',\r\n description:\r\n 'Slack is a cloud-based set of team collaboration tools and services, founded by Stewart Butterfield.',\r\n imageUrl: '/images/products/product_3.png',\r\n totalDownloads: '857',\r\n createdAt: '03/04/2019'\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Lyft',\r\n description:\r\n 'Lyft is an on-demand transportation company based in San Francisco, California.',\r\n imageUrl: '/images/products/product_4.png',\r\n totalDownloads: '406',\r\n createdAt: '04/04/2019'\r\n },\r\n {\r\n id: uuid(),\r\n title: 'GitHub',\r\n description:\r\n 'GitHub is a web-based hosting service for version control of code using Git.',\r\n imageUrl: '/images/products/product_5.png',\r\n totalDownloads: '835',\r\n createdAt: '04/04/2019'\r\n },\r\n {\r\n id: uuid(),\r\n title: 'Squarespace',\r\n description:\r\n 'Squarespace provides software as a service for website building and hosting. Headquartered in NYC.',\r\n imageUrl: '/images/products/product_6.png',\r\n totalDownloads: '835',\r\n createdAt: '04/04/2019'\r\n }\r\n];\r\n","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { IconButton, Grid, Typography } from '@material-ui/core';\r\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\r\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\r\n\r\nimport { ProductsToolbar, ProductCard } from './components';\r\nimport mockData from './data';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n content: {\r\n marginTop: theme.spacing(2)\r\n },\r\n pagination: {\r\n marginTop: theme.spacing(3),\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end'\r\n }\r\n}));\r\n\r\nconst ProductList = () => {\r\n const classes = useStyles();\r\n\r\n const [products] = useState(mockData);\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {products.map(product => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n 1-6 of 20 \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 ProductList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Grid,\r\n Divider,\r\n FormControlLabel,\r\n Checkbox,\r\n Typography,\r\n Button\r\n} from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {},\r\n item: {\r\n display: 'flex',\r\n flexDirection: 'column'\r\n }\r\n}));\r\n\r\nconst Notifications = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nNotifications.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Notifications;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardContent,\r\n CardActions,\r\n Divider,\r\n Button,\r\n TextField\r\n} from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}));\r\n\r\nconst Password = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const [values, setValues] = useState({\r\n password: '',\r\n confirm: ''\r\n });\r\n\r\n const handleChange = event => {\r\n setValues({\r\n ...values,\r\n [event.target.name]: event.target.value\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nPassword.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Password;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid } from '@material-ui/core';\r\n\r\nimport { Notifications, Password } from './components';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(4)\r\n }\r\n}));\r\n\r\nconst Settings = () => {\r\n const classes = useStyles();\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\nexport default Settings;\r\n","import React, { useState, useEffect } from 'react';\nimport { Link as RouterLink, withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport validate from 'validate.js';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid, Button, TextField, Link, Typography } from '@material-ui/core';\n\n//import { Facebook as FacebookIcon, Google as GoogleIcon } from 'icons';\n\nconst schema = {\n matricula: {\n presence: { allowEmpty: false, message: 'é requerido' },\n length: {\n maximum: 64\n }\n },\n password: {\n presence: { allowEmpty: false, message: 'é requerido' },\n length: {\n maximum: 128\n }\n }\n};\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.default,\n height: '100%'\n },\n grid: {\n height: '100%'\n },\n quoteContainer: {\n [theme.breakpoints.down('md')]: {\n display: 'none'\n }\n },\n quote: {\n backgroundColor: theme.palette.neutral,\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundImage: 'url(/assets/img/view/login/fundo.jpg)',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n quoteInner: {\n marginTop: '-250px',\n textAlign: 'center',\n flexBasis: '600px'\n },\n quoteText: {\n color: '#1b5e20', //theme.palette.white,\n fontWeight: 'bold'\n },\n name: {\n marginTop: theme.spacing(3),\n fontWeight: 'bold',\n color: '#2e7d32' //theme.palette.white\n },\n bio: {\n color: '#2e7d32' //theme.palette.white\n },\n contentContainer: {},\n content: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n contentHeader: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: theme.spacing(5),\n paddingBototm: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n },\n logoImage: {\n marginLeft: theme.spacing(4)\n },\n contentBody: {\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n [theme.breakpoints.down('md')]: {\n justifyContent: 'center'\n }\n },\n form: {\n paddingLeft: 100,\n paddingRight: 100,\n paddingBottom: 125,\n flexBasis: 700,\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n }\n },\n title: {\n marginTop: theme.spacing(3)\n },\n socialButtons: {\n marginTop: theme.spacing(3)\n },\n socialIcon: {\n marginRight: theme.spacing(1)\n },\n sugestion: {\n marginTop: theme.spacing(2)\n },\n textField: {\n marginTop: theme.spacing(2)\n },\n signInButton: {\n margin: theme.spacing(2, 0)\n }\n}));\n\nconst SignIn = props => {\n const { history } = props;\n\n const classes = useStyles();\n\n const [formState, setFormState] = useState({\n isValid: false,\n values: {},\n touched: {},\n errors: {}\n });\n\n useEffect(() => {\n const errors = validate(formState.values, schema);\n\n setFormState(formState => ({\n ...formState,\n isValid: errors ? false : true,\n errors: errors || {}\n }));\n }, [formState.values]);\n\n const handleChange = event => {\n event.persist();\n\n setFormState(formState => ({\n ...formState,\n values: {\n ...formState.values,\n [event.target.name]:\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n },\n touched: {\n ...formState.touched,\n [event.target.name]: true\n }\n }));\n };\n\n const handleSignIn = event => {\n event.preventDefault();\n history.push('/financeiro/boleto');\n };\n\n const hasError = field =>\n formState.touched[field] && formState.errors[field] ? true : false;\n\n return (\n \n
\n \n \n
\n
\n\n
\n \n Há 51 anos em constante atualização\n \n \n desenvolvido por: Rodrigo Ramos\n \n
\n
\n
\n \n \n \n \n \n
\n );\n};\n\nSignIn.propTypes = {\n history: PropTypes.object\n};\n\nexport default withRouter(SignIn);\n","import React, { useState, useEffect } from 'react';\r\nimport { Link as RouterLink, withRouter } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport validate from 'validate.js';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Grid,\r\n Button,\r\n IconButton,\r\n TextField,\r\n Link,\r\n FormHelperText,\r\n Checkbox,\r\n Typography\r\n} from '@material-ui/core';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\n\r\nconst schema = {\r\n firstName: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n length: {\r\n maximum: 32\r\n }\r\n },\r\n lastName: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n length: {\r\n maximum: 32\r\n }\r\n },\r\n email: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n email: true,\r\n length: {\r\n maximum: 64\r\n }\r\n },\r\n password: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n length: {\r\n maximum: 128\r\n }\r\n },\r\n policy: {\r\n presence: { allowEmpty: false, message: 'is required' },\r\n checked: true\r\n }\r\n};\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default,\r\n height: '100%'\r\n },\r\n grid: {\r\n height: '100%'\r\n },\r\n quoteContainer: {\r\n [theme.breakpoints.down('md')]: {\r\n display: 'none'\r\n }\r\n },\r\n quote: {\r\n backgroundColor: theme.palette.neutral,\r\n height: '100%',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundImage: 'url(/images/auth.jpg)',\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center'\r\n },\r\n quoteInner: {\r\n textAlign: 'center',\r\n flexBasis: '600px'\r\n },\r\n quoteText: {\r\n color: theme.palette.white,\r\n fontWeight: 300\r\n },\r\n name: {\r\n marginTop: theme.spacing(3),\r\n color: theme.palette.white\r\n },\r\n bio: {\r\n color: theme.palette.white\r\n },\r\n contentContainer: {},\r\n content: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column'\r\n },\r\n contentHeader: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n paddingTop: theme.spacing(5),\r\n paddingBototm: theme.spacing(2),\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2)\r\n },\r\n logoImage: {\r\n marginLeft: theme.spacing(4)\r\n },\r\n contentBody: {\r\n flexGrow: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n [theme.breakpoints.down('md')]: {\r\n justifyContent: 'center'\r\n }\r\n },\r\n form: {\r\n paddingLeft: 100,\r\n paddingRight: 100,\r\n paddingBottom: 125,\r\n flexBasis: 700,\r\n [theme.breakpoints.down('sm')]: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2)\r\n }\r\n },\r\n title: {\r\n marginTop: theme.spacing(3)\r\n },\r\n textField: {\r\n marginTop: theme.spacing(2)\r\n },\r\n policy: {\r\n marginTop: theme.spacing(1),\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n policyCheckbox: {\r\n marginLeft: '-14px'\r\n },\r\n signUpButton: {\r\n margin: theme.spacing(2, 0)\r\n }\r\n}));\r\n\r\nconst SignUp = props => {\r\n const { history } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const [formState, setFormState] = useState({\r\n isValid: false,\r\n values: {},\r\n touched: {},\r\n errors: {}\r\n });\r\n\r\n useEffect(() => {\r\n const errors = validate(formState.values, schema);\r\n\r\n setFormState(formState => ({\r\n ...formState,\r\n isValid: errors ? false : true,\r\n errors: errors || {}\r\n }));\r\n }, [formState.values]);\r\n\r\n const handleChange = event => {\r\n event.persist();\r\n\r\n setFormState(formState => ({\r\n ...formState,\r\n values: {\r\n ...formState.values,\r\n [event.target.name]:\r\n event.target.type === 'checkbox'\r\n ? event.target.checked\r\n : event.target.value\r\n },\r\n touched: {\r\n ...formState.touched,\r\n [event.target.name]: true\r\n }\r\n }));\r\n };\r\n\r\n const handleBack = () => {\r\n history.goBack();\r\n };\r\n\r\n const handleSignUp = event => {\r\n event.preventDefault();\r\n history.push('/');\r\n };\r\n\r\n const hasError = field =>\r\n formState.touched[field] && formState.errors[field] ? true : false;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n Hella narwhal Cosby sweater McSweeney's, salvia kitsch before\r\n they sold out High Life.\r\n \r\n
\r\n \r\n Takamaru Ayako\r\n \r\n \r\n Manager at inVision\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nSignUp.propTypes = {\r\n history: PropTypes.object\r\n};\r\n\r\nexport default withRouter(SignUp);\r\n","import React, { Fragment } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid, Typography as MuiTypography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst variants = {\n h1: 'Nisi euismod ante senectus consequat phasellus ut',\n h2: 'Nisi euismod ante senectus consequat phasellus ut',\n h3: 'Nisi euismod ante senectus consequat phasellus ut',\n h4: 'Nisi euismod ante senectus consequat phasellus ut',\n h5: 'Nisi euismod ante senectus consequat phasellus ut',\n h6: 'Nisi euismod ante senectus consequat phasellus ut',\n subtitle1: 'Leo varius justo aptent arcu urna felis pede nisl',\n subtitle2: 'Leo varius justo aptent arcu urna felis pede nisl',\n body1:\n 'Justo proin curabitur dictumst semper auctor, consequat tempor, nostra aenean neque turpis nunc. Leo. Sapien aliquet facilisi turpis, elit facilisi praesent porta metus leo. Dignissim amet dis nec ac integer inceptos erat dis Turpis sodales ad torquent. Dolor, erat convallis.Laoreet velit a fames commodo tristique hendrerit sociosqu rhoncus vel sapien penatibus facilisis faucibus ad. Mus purus vehicula imperdiet tempor lectus, feugiat Sapien erat viverra netus potenti mattis purus turpis. Interdum curabitur potenti tristique. Porta velit dignissim tristique ultrices primis.',\n body2:\n 'Justo proin curabitur dictumst semper auctor, consequat tempor, nostra aenean neque turpis nunc. Leo. Sapien aliquet facilisi turpis, elit facilisi praesent porta metus leo. Dignissim amet dis nec ac integer inceptos erat dis Turpis sodales ad torquent. Dolor, erat convallis.',\n caption: 'Accumsan leo pretium conubia ullamcorper.',\n overline: 'Accumsan leo pretium conubia ullamcorper.',\n button: 'Vivamus ultrices rutrum fames dictumst'\n};\n\nconst Typography = () => {\n const classes = useStyles();\n\n return (\n \n \n {Object.keys(variants).map((key, i) => (\n \n \n {key} \n \n \n {variants[key]} \n \n \n ))}\n \n
\n );\n};\n\nexport default Typography;\n","import React, { useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n Card,\r\n CardActions,\r\n CardContent,\r\n Avatar,\r\n Checkbox,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Typography,\r\n TablePagination\r\n} from '@material-ui/core';\r\n\r\nimport { getInitials } from 'helpers';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n content: {\r\n padding: 0\r\n },\r\n inner: {\r\n minWidth: 1050\r\n },\r\n nameContainer: {\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n avatar: {\r\n marginRight: theme.spacing(2)\r\n },\r\n actions: {\r\n justifyContent: 'flex-end'\r\n }\r\n}));\r\n\r\nconst UsersTable = props => {\r\n const { className, users, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const [selectedUsers, setSelectedUsers] = useState([]);\r\n const [rowsPerPage, setRowsPerPage] = useState(10);\r\n const [page, setPage] = useState(0);\r\n\r\n const handleSelectAll = event => {\r\n const { users } = props;\r\n\r\n let selectedUsers;\r\n\r\n if (event.target.checked) {\r\n selectedUsers = users.map(user => user.id);\r\n } else {\r\n selectedUsers = [];\r\n }\r\n\r\n setSelectedUsers(selectedUsers);\r\n };\r\n\r\n const handleSelectOne = (event, id) => {\r\n const selectedIndex = selectedUsers.indexOf(id);\r\n let newSelectedUsers = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelectedUsers = newSelectedUsers.concat(selectedUsers, id);\r\n } else if (selectedIndex === 0) {\r\n newSelectedUsers = newSelectedUsers.concat(selectedUsers.slice(1));\r\n } else if (selectedIndex === selectedUsers.length - 1) {\r\n newSelectedUsers = newSelectedUsers.concat(selectedUsers.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelectedUsers = newSelectedUsers.concat(\r\n selectedUsers.slice(0, selectedIndex),\r\n selectedUsers.slice(selectedIndex + 1)\r\n );\r\n }\r\n\r\n setSelectedUsers(newSelectedUsers);\r\n };\r\n\r\n const handlePageChange = (event, page) => {\r\n setPage(page);\r\n };\r\n\r\n const handleRowsPerPageChange = event => {\r\n setRowsPerPage(event.target.value);\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 0 &&\r\n selectedUsers.length < users.length\r\n }\r\n onChange={handleSelectAll}\r\n />\r\n \r\n Name \r\n Email \r\n Location \r\n Phone \r\n Registration date \r\n \r\n \r\n \r\n {users.slice(0, rowsPerPage).map(user => (\r\n \r\n \r\n handleSelectOne(event, user.id)}\r\n value=\"true\"\r\n />\r\n \r\n \r\n \r\n
\r\n {getInitials(user.name)}\r\n \r\n
{user.name} \r\n
\r\n \r\n {user.email} \r\n \r\n {user.address.city}, {user.address.state},{' '}\r\n {user.address.country}\r\n \r\n {user.phone} \r\n \r\n {moment(user.createdAt).format('DD/MM/YYYY')}\r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nUsersTable.propTypes = {\r\n className: PropTypes.string,\r\n users: PropTypes.array.isRequired\r\n};\r\n\r\nexport default UsersTable;\r\n","export default (name = '') =>\r\n name\r\n .replace(/\\s+/, ' ')\r\n .split(' ')\r\n .slice(0, 2)\r\n .map(v => v && v[0].toUpperCase())\r\n .join('');\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Button } from '@material-ui/core';\r\n\r\nimport { SearchInput } from 'components';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n row: {\r\n height: '42px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginTop: theme.spacing(1)\r\n },\r\n spacer: {\r\n flexGrow: 1\r\n },\r\n importButton: {\r\n marginRight: theme.spacing(1)\r\n },\r\n exportButton: {\r\n marginRight: theme.spacing(1)\r\n },\r\n searchInput: {\r\n marginRight: theme.spacing(1)\r\n }\r\n}));\r\n\r\nconst UsersToolbar = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n
\r\n \r\n Import \r\n Export \r\n \r\n Add user\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nUsersToolbar.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default UsersToolbar;\r\n","import uuid from 'uuid/v1';\r\n\r\nexport default [\r\n {\r\n id: uuid(),\r\n name: 'Ekaterina Tankova',\r\n address: {\r\n country: 'USA',\r\n state: 'West Virginia',\r\n city: 'Parkersburg',\r\n street: '2849 Fulton Street'\r\n },\r\n email: 'ekaterina.tankova@devias.io',\r\n phone: '304-428-3097',\r\n avatarUrl: '/images/avatars/avatar_3.png',\r\n createdAt: 1555016400000\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Cao Yu',\r\n address: {\r\n country: 'USA',\r\n state: 'Bristow',\r\n city: 'Iowa',\r\n street: '1865 Pleasant Hill Road'\r\n },\r\n email: 'cao.yu@devias.io',\r\n avatarUrl: '/images/avatars/avatar_4.png',\r\n phone: '712-351-5711',\r\n createdAt: 1555016400000\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Alexa Richardson',\r\n address: {\r\n country: 'USA',\r\n state: 'Georgia',\r\n city: 'Atlanta',\r\n street: '4894 Lakeland Park Drive'\r\n },\r\n email: 'alexa.richardson@devias.io',\r\n phone: '770-635-2682',\r\n avatarUrl: '/images/avatars/avatar_2.png',\r\n createdAt: 1555016400000\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Anje Keizer',\r\n address: {\r\n country: 'USA',\r\n state: 'Ohio',\r\n city: 'Dover',\r\n street: '4158 Hedge Street'\r\n },\r\n email: 'anje.keizer@devias.io',\r\n avatarUrl: '/images/avatars/avatar_5.png',\r\n phone: '908-691-3242',\r\n createdAt: 1554930000000\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Clarke Gillebert',\r\n address: {\r\n country: 'USA',\r\n state: 'Texas',\r\n city: 'Dallas',\r\n street: '75247'\r\n },\r\n email: 'clarke.gillebert@devias.io',\r\n phone: '972-333-4106',\r\n avatarUrl: '/images/avatars/avatar_6.png',\r\n createdAt: 1554757200000\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Adam Denisov',\r\n address: {\r\n country: 'USA',\r\n state: 'California',\r\n city: 'Bakerfield',\r\n street: '317 Angus Road'\r\n },\r\n email: 'adam.denisov@devias.io',\r\n phone: '858-602-3409',\r\n avatarUrl: '/images/avatars/avatar_1.png',\r\n createdAt: 1554670800000\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Ava Gregoraci',\r\n address: {\r\n country: 'USA',\r\n state: 'California',\r\n city: 'Redondo Beach',\r\n street: '2188 Armbrester Drive'\r\n },\r\n email: 'ava.gregoraci@devias.io',\r\n avatarUrl: '/images/avatars/avatar_7.png',\r\n phone: '415-907-2647',\r\n createdAt: 1554325200000\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Emilee Simchenko',\r\n address: {\r\n country: 'USA',\r\n state: 'Nevada',\r\n city: 'Las Vegas',\r\n street: '1798 Hickory Ridge Drive'\r\n },\r\n email: 'emilee.simchenko@devias.io',\r\n phone: '702-661-1654',\r\n avatarUrl: '/images/avatars/avatar_8.png',\r\n createdAt: 1523048400000\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Kwak Seong-Min',\r\n address: {\r\n country: 'USA',\r\n state: 'Michigan',\r\n city: 'Detroit',\r\n street: '3934 Wildrose Lane'\r\n },\r\n email: 'kwak.seong.min@devias.io',\r\n avatarUrl: '/images/avatars/avatar_9.png',\r\n phone: '313-812-8947'\r\n },\r\n {\r\n id: uuid(),\r\n name: 'Merrile Burgett',\r\n address: {\r\n country: 'USA',\r\n state: 'Utah',\r\n city: 'Salt Lake City',\r\n street: '368 Lamberts Branch Road'\r\n },\r\n email: 'merrile.burgett@devias.io',\r\n phone: '801-301-7894',\r\n avatarUrl: '/images/avatars/avatar_10.png',\r\n createdAt: 1522702800000\r\n }\r\n];\r\n","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nimport { UsersToolbar, UsersTable } from './components';\r\nimport mockData from './data';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3)\r\n },\r\n content: {\r\n marginTop: theme.spacing(2)\r\n }\r\n}));\r\n\r\nconst UserList = () => {\r\n const classes = useStyles();\r\n\r\n const [users] = useState(mockData);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default UserList;\r\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TableRow from '@material-ui/core/TableRow';\nimport Button from '@material-ui/core/Button';\nimport SaveIcon from '@material-ui/icons/Save';\nimport Typography from '@material-ui/core/Typography';\n\nconst columns = [\n { id: 'parcela', label: 'Número da Parcela', minWidth: 70 },\n {\n id: 'baixar',\n label: '.',\n minWidth: 70,\n //align: 'center',\n type: 'button'\n }\n];\n\nfunction createData(parcela, baixar) {\n return { parcela, baixar };\n}\n\nconst rows = [\n createData('1'),\n createData('2'),\n createData('3'),\n createData('4'),\n createData('5'),\n createData('6'),\n createData('7'),\n createData('8'),\n createData('9'),\n createData('10'),\n createData('11'),\n createData('12')\n];\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n padding: theme.spacing(4)\n },\n container: {\n maxHeight: 600\n }\n}));\n\nconst ListaBoleto = () => {\n const classes = useStyles();\n const [page, setPage] = React.useState(0);\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\n\n const handleChangePage = (event, newPage) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = event => {\n setRowsPerPage(+event.target.value);\n setPage(0);\n };\n\n return (\n \n
\n \n Boletos para pagamento \n
\n \n \n \n \n {columns.map(column => (\n \n {column.label}\n \n ))}\n \n \n \n {rows\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map(row => {\n return (\n \n {columns.map(column => {\n const value = row[column.id];\n return (\n \n {column.type == 'button' ? (\n \n alert(\n 'Baixando o boleto da parcela ' +\n row[column.id]\n )\n }\n startIcon={ }\n variant=\"contained\">\n Baixar boleto\n \n ) : (\n value\n )}\n \n );\n })}\n \n );\n })}\n \n
\n \n \n \n
\n );\n};\nexport default ListaBoleto;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport 'ol/ol.css';\nimport Grid from '@material-ui/core/Grid';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Typography from '@material-ui/core/Typography';\nimport Paper from '@material-ui/core/Paper';\n\n// Start Openlayers imports\nimport { Map, View } from 'ol';\nimport { fromLonLat } from 'ol/proj';\nimport { Tile as TileLayer, Vector as VectorLayer } from 'ol/layer';\nimport { Vector as VectorSource, XYZ as XYZSource } from 'ol/source';\n\nimport {\n ZoomSlider,\n MousePosition,\n OverviewMap,\n FullScreen,\n ScaleLine,\n defaults as DefaultControls\n} from 'ol/control';\nimport {\n Style,\n Circle as CircleStyle,\n Fill as FillStyle,\n Icon,\n Stroke as StrokeStyle\n} from 'ol/style';\n\nimport Feature from 'ol/Feature';\nimport Geolocation from 'ol/Geolocation';\nimport Point from 'ol/geom/Point';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n padding: theme.spacing(4)\n }\n}));\n\nvar colegioCEM = fromLonLat([-42.96403, -22.41385]);\n\nvar view = new View({\n center: colegioCEM,\n zoom: 14.8,\n projection: 'EPSG:3857'\n});\n// End Openlayers imports\n\nvar geolocation = new Geolocation({\n // enableHighAccuracy must be set to true to have the heading value.\n trackingOptions: {\n enableHighAccuracy: true\n },\n projection: view.getProjection()\n});\n\n// update the HTML page when the position changes.\ngeolocation.on('change', function() {\n // el('accuracy').innerText = geolocation.getAccuracy() + ' [m]';\n // el('altitude').innerText = geolocation.getAltitude() + ' [m]';\n //el('altitudeAccuracy').innerText = geolocation.getAltitudeAccuracy() + ' [m]';\n //el('heading').innerText = geolocation.getHeading() + ' [rad]';\n //el('speed').innerText = geolocation.getSpeed() + ' [m/s]';\n //view.setCenter(geolocation.getPosition());\n});\n\n// handle geolocation error.\ngeolocation.on('error', function(error) {\n var info = document.getElementById('info');\n if (!info) return;\n info.innerHTML = error.message;\n info.style.display = '';\n});\n\nvar accuracyFeature = new Feature();\ngeolocation.on('change:accuracyGeometry', function() {\n accuracyFeature.setGeometry(geolocation.getAccuracyGeometry());\n});\n\nvar positionFeature = new Feature({ type: 'minha_localizacao' });\nvar posicaoDaEscola = new Feature({\n type: 'escola',\n geometry: new Point(colegioCEM),\n name: 'Centro de ensino moderno teresópolis (CEM)'\n});\n\nvar posicaoDemonstracao = new Feature({\n type: 'responsavel_localizacao',\n geometry: new Point(fromLonLat([-42.94403, -22.41485])),\n name: 'Centro de ensino moderno teresópolis (CEM)'\n});\n\nvar styles = {\n route: new Style({\n stroke: new StrokeStyle({\n width: 6,\n color: [237, 212, 0, 0.8]\n })\n }),\n minha_localizacao: new Style({\n image: new CircleStyle({\n radius: 6,\n fill: new FillStyle({\n color: '#3399CC'\n }),\n stroke: new StrokeStyle({\n color: '#fff',\n width: 2\n })\n })\n }),\n escola: new Style({\n image: new Icon({\n anchor: [0.5, 1],\n src: '/assets/ico/logo/cem/cem_marcador_gps.png'\n })\n }),\n responsavel_localizacao: new Style({\n image: new Icon({\n anchor: [0.5, 1],\n src: '/assets/ico/common/gps_marker.png'\n })\n }),\n geoMarker: new Style({\n image: new CircleStyle({\n radius: 7,\n fill: new FillStyle({ color: 'black' }),\n stroke: new StrokeStyle({\n color: 'white',\n width: 2\n })\n })\n })\n};\n\ngeolocation.on('change:position', function() {\n var coordinates = geolocation.getPosition();\n positionFeature.setGeometry(coordinates ? new Point(coordinates) : null);\n});\n\nvar vectorLayer;\nclass EstouChegando extends React.Component {\n constructor(props) {\n super(props);\n this.updateDimensions = this.updateDimensions.bind(this);\n }\n updateDimensions() {\n const h =\n window.innerWidth >= 992\n ? window.innerHeight - 100\n : window.innerHeight - 100; //400;\n this.setState({ height: h });\n }\n componentWillMount() {\n window.addEventListener('resize', this.updateDimensions);\n this.updateDimensions();\n geolocation.setTracking(true);\n }\n componentDidMount() {\n // Create an Openlayer Map instance with two tile layers\n const map = new Map({\n // Display the map in the div with the id of map\n target: 'map',\n layers: [\n new TileLayer({\n source: new XYZSource({\n url: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n projection: 'EPSG:3857'\n })\n })\n /*new TileLayer({\n source: new TileWMSSource({\n url: 'https://ahocevar.com/geoserver/wms',\n params: {\n layers: 'topp:states',\n TILED: true\n },\n projection: 'EPSG:4326'\n }),\n name: 'USA'\n })*/\n ],\n // Add in the following map controls\n controls: DefaultControls().extend([\n new ZoomSlider(),\n new MousePosition(),\n new ScaleLine(),\n new OverviewMap(),\n new FullScreen()\n ]),\n // Render the tile layers in a map view with a Mercator projection\n view: view\n });\n vectorLayer = new VectorLayer({\n map: map,\n source: new VectorSource({\n features: [\n accuracyFeature,\n positionFeature,\n posicaoDaEscola,\n posicaoDemonstracao\n ]\n }),\n style: function(feature) {\n return styles[feature.get('type')];\n }\n });\n }\n componentWillUnmount() {\n window.removeEventListener('resize', this.updateDimensions);\n }\n\n render() {\n const style = {\n width: '100%',\n height: this.state.height,\n backgroundColor: '#cccccc'\n };\n const { classes } = this.props;\n return (\n \n \n \n {/* \n \n
\n
\n position accuracy :
\n altitude :
\n altitude accuracy :
\n heading :
\n speed :
\n \n
\n */}\n\n
\n \n \n \n \n Lista de pessoas em rota \n \n \n {\n vectorLayer.getSource().addFeature(\n new Feature({\n type: 'responsavel_localizacao',\n geometry: new Point(fromLonLat([-42.93403, -22.41385])),\n name: 'Centro de ensino moderno teresópolis (CEM)'\n })\n );\n }}\n primary=\"Single-line item\"\n secondary=\"Secondary text\"\n />\n \n
\n \n \n \n );\n }\n}\nexport default withStyles(useStyles)(EstouChegando);\n","import React from 'react';\nimport { Switch, Redirect } from 'react-router-dom';\nimport { RouteWithLayout } from './components';\nimport { Main as MainLayout, Minimal as MinimalLayout } from './layouts';\nimport {\n Dashboard as DashboardView,\n ProductList as ProductListView,\n UserList as UserListView,\n Typography as TypographyView,\n Icons as IconsView,\n Account as AccountView,\n Settings as SettingsView,\n SignUp as SignUpView,\n SignIn as SignInView,\n NotFound as NotFoundView,\n ListaBoleto as ListaBoletoView,\n EstouChegando as EstouChegandoView\n} from './views';\n\nconst Routes = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n );\n};\n\nexport default Routes;\n","import React, { Component } from 'react';\r\nimport { Router } from 'react-router-dom';\r\nimport { createBrowserHistory } from 'history';\r\nimport { Chart } from 'react-chartjs-2';\r\nimport { ThemeProvider } from '@material-ui/styles';\r\nimport validate from 'validate.js';\r\n\r\nimport { chartjs } from './helpers';\r\nimport theme from './theme';\r\nimport 'react-perfect-scrollbar/dist/css/styles.css';\r\nimport './assets/scss/index.scss';\r\nimport validators from './common/validators';\r\nimport Routes from './Routes';\r\n\r\nconst browserHistory = createBrowserHistory();\r\n\r\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\r\n draw: chartjs.draw\r\n});\r\n\r\nvalidate.validators = {\r\n ...validate.validators,\r\n ...validators\r\n};\r\n\r\nexport default class 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","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport * as serviceWorker from './serviceWorker';\r\nimport App from './App';\r\n\r\nReactDOM.render( , document.getElementById('root'));\r\n\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}