{"version":3,"sources":["redux/layout.js","utility/context/GlobalLoader.js","redux/authentication.js","utility/context/Can.js","auth/jwt/useJwt.js","configs/acl/initialAbility.js","redux/navbar.js","redux/loader.js","utility/context/ThemeColors.js","configs/themeConfig.js","redux/rootReducer.js","redux/store.js","@core/auth/jwt/jwtDefaultConfig.js","@core/auth/jwt/jwtService.js","@core/auth/jwt/useJwt.js","assets/images/logo/logo.png","assets/images/logo/logo_admin_dronline.svg","assets/images/portrait/small/avatar-s-11.jpg","assets/images/avatars/1-small.png","configs/acl/ability.js","@core/components/ripple-button/index.js","@fake-db/mock.js","@fake-db/jwt/index.js","@fake-db/cards/card-analytics.js","@fake-db/cards/card-statistics.js","@fake-db/index.js","serviceWorker.js","index.js","@core/components/spinner/Fallback-spinner.js"],"names":["layoutSlice","createSlice","name","initialState","skin","initialSkin","item","window","localStorage","getItem","JSON","parse","themeConfig","layout","isRTL","initialDirection","type","lastLayout","menuCollapsed","initialMenuCollapsed","menu","isCollapsed","footerType","footer","navbarType","navbar","menuHidden","isHidden","contentWidth","routerTransition","navbarColor","backgroundColor","reducers","handleRTL","state","action","payload","setItem","stringify","handleSkin","handleLayout","handleFooterType","handleNavbarType","handleMenuHidden","handleLastLayout","handleNavbarColor","handleContentWidth","handleMenuCollapsed","handleRouterTransition","actions","GlobalLoader","createContext","GlobalLoaderContext","_ref","children","is_loading","setIsLoading","useState","_jsxs","Provider","value","_jsx","SpinnerComponent","is_full_screen","config","useJwt","jwtConfig","authSlice","userData","initialUser","handleLogin","storageTokenKeyName","storageRefreshTokenKeyName","accessToken","refreshToken","handleLogout","removeItem","AbilityContext","createContextualCan","Consumer","authConfig","loginEndpoint","_process","process","_process$env","REACT_APP_API_URL","refreshEndpoint","_process2","_process2$env","registerEndpoint","_process3","_process3$env","jwt","getAbilities","user","_user$userToken","_user$userToken2","can","rules","AbilityBuilder","Ability","roles","userToken","forEach","role","perfil","getBookmarks","createAsyncThunk","async","response","axios","get","data","suggestions","bookmarks","updateBookmarked","post","id","query","handleSearchQuery","extraReducers","builder","addCase","fulfilled","objectToUpdate","find","isBookmarked","bookmarkIndex","findIndex","x","push","splice","loaderSlice","loading","handleLoading","ThemeColors","ThemeContext","colors","setColors","useEffect","getHex","color","getComputedStyle","document","body","getPropertyValue","trim","obj","primary","light","concat","main","secondary","success","danger","warning","info","dark","app","appName","appLogoImage","require","default","customizer","scrollTop","rootReducer","auth","loader","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","logoutEndpoint","tokenType","JwtService","constructor","jwtOverrideConfig","jwtDefaultConfig","isAlreadyFetchingAccessToken","subscribers","this","interceptors","request","use","getToken","headers","Authorization","error","Promise","reject","originalRequest","status","then","r","setToken","setRefreshToken","onAccessTokenFetched","resolve","addSubscriber","filter","callback","getRefreshToken","login","_len","arguments","length","args","Array","_key","register","_len2","_key2","Button","Ripple","className","onClick","rest","mounted","setMounted","isRippling","setIsRippling","coords","setCoords","y","setTimeout","classnames","e","rect","target","getBoundingClientRect","clientX","left","clientY","top","style","mock","MockAdapter","users","fullName","username","password","avatar","email","ability","subject","extras","eCommerceCartItemsCount","secret","refreshTokenSecret","expireTime","refreshTokenExpireTime","onPost","reply","u","sign","expiresIn","lastIndex","Object","assign","verify","newAccessToken","newRefreshToken","support_tracker","title","last_days","totalTicket","newTicket","openTicket","responseTime","avg_sessions","sessions","growth","goal","retention","duration","revenue_report","years","price","budget","goal_overview","completed","inProgress","revenue","thisMonth","lastMonth","product_orders","chart_info","finished","pending","rejected","sessions_device","icon","iconColor","usage","upDown","customers","listData","text","result","onGet","orders_bar_chart","statistics","series","profit_line_chart","subscribers_gained","analyticsData","revenueGenerated","quarterlySales","sales","ordersRecevied","orders","siteTraffic","activeUsers","newsletter","onAny","passThrough","Boolean","location","hostname","match","yup","mixed","required","notType","string","min","max","LazyApp","lazy","ReactDOM","render","Suspense","fallback","Spinner","ToastContainer","newestOnTop","getElementById","navigator","serviceWorker","ready","registration","unregister","props"],"mappings":"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","file":"static/js/main.aac393ac.chunk.js","sourcesContent":["// ** Redux Imports\nimport { createSlice } from '@reduxjs/toolkit'\n\n// ** ThemeConfig Import\nimport themeConfig from '@configs/themeConfig'\n\nconst initialMenuCollapsed = () => {\n const item = window.localStorage.getItem('menuCollapsed')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed\n}\n\nconst initialDirection = () => {\n const item = window.localStorage.getItem('direction')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : themeConfig.layout.isRTL\n}\n\nconst initialSkin = () => {\n const item = window.localStorage.getItem('skin')\n //** Parse stored json or if none return initialValue\n return item ? JSON.parse(item) : themeConfig.layout.skin\n}\n\nexport const layoutSlice = createSlice({\n name: 'layout',\n initialState: {\n skin: initialSkin(),\n isRTL: initialDirection(),\n layout: themeConfig.layout.type,\n lastLayout: themeConfig.layout.type,\n menuCollapsed: initialMenuCollapsed(),\n footerType: themeConfig.layout.footer.type,\n navbarType: themeConfig.layout.navbar.type,\n menuHidden: themeConfig.layout.menu.isHidden,\n contentWidth: themeConfig.layout.contentWidth,\n routerTransition: themeConfig.layout.routerTransition,\n navbarColor: themeConfig.layout.navbar.backgroundColor\n },\n reducers: {\n handleRTL: (state, action) => {\n state.isRTL = action.payload\n window.localStorage.setItem('direction', JSON.stringify(action.payload))\n },\n handleSkin: (state, action) => {\n state.skin = action.payload\n window.localStorage.setItem('skin', JSON.stringify(action.payload))\n },\n handleLayout: (state, action) => {\n state.layout = action.payload\n },\n handleFooterType: (state, action) => {\n state.footerType = action.payload\n },\n handleNavbarType: (state, action) => {\n state.navbarType = action.payload\n },\n handleMenuHidden: (state, action) => {\n state.menuHidden = action.payload\n },\n handleLastLayout: (state, action) => {\n state.lastLayout = action.payload\n },\n handleNavbarColor: (state, action) => {\n state.navbarColor = action.payload\n },\n handleContentWidth: (state, action) => {\n state.contentWidth = action.payload\n },\n handleMenuCollapsed: (state, action) => {\n state.menuCollapsed = action.payload\n window.localStorage.setItem('menuCollapsed', JSON.stringify(action.payload))\n },\n handleRouterTransition: (state, action) => {\n state.routerTransition = action.payload\n }\n }\n})\n\nexport const {\n handleRTL,\n handleSkin,\n handleLayout,\n handleLastLayout,\n handleMenuHidden,\n handleNavbarType,\n handleFooterType,\n handleNavbarColor,\n handleContentWidth,\n handleMenuCollapsed,\n handleRouterTransition\n} = layoutSlice.actions\n\nexport default layoutSlice.reducer\n","// ** React Imports\nimport { useState, createContext } from 'react'\n\n// ** Create Context\nconst GlobalLoader = createContext()\n\n// ** Componentes\nimport SpinnerComponent from '@components/spinner/Fallback-spinner'\n\nconst GlobalLoaderContext = ({ children }) => {\n // ** State\n const [is_loading, setIsLoading] = useState(false)\n\n return (\n \n {is_loading && }\n \n {children}\n
\n \n ) \n}\n\nexport { GlobalLoader, GlobalLoaderContext }\n","// ** Redux Imports\r\nimport { createSlice } from '@reduxjs/toolkit'\r\n\r\n// ** UseJWT import to get config\r\nimport useJwt from '@src/auth/jwt/useJwt'\r\n\r\nconst config = useJwt.jwtConfig\r\n\r\nconst initialUser = () => {\r\n const item = window.localStorage.getItem('userData')\r\n //** Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : {}\r\n}\r\n\r\nexport const authSlice = createSlice({\r\n name: 'authentication',\r\n initialState: {\r\n userData: initialUser()\r\n },\r\n reducers: {\r\n handleLogin: (state, action) => {\r\n state.userData = action.payload\r\n state[config.storageTokenKeyName] = action.payload[config.storageTokenKeyName]\r\n state[config.storageRefreshTokenKeyName] = action.payload[config.storageRefreshTokenKeyName]\r\n localStorage.setItem('userData', JSON.stringify(action.payload))\r\n localStorage.setItem(config.storageTokenKeyName, action.payload.accessToken)\r\n localStorage.setItem(config.storageRefreshTokenKeyName, action.payload.refreshToken)\r\n },\r\n handleLogout: state => {\r\n state.userData = {}\r\n state[config.storageTokenKeyName] = null\r\n state[config.storageRefreshTokenKeyName] = null\r\n // ** Remove user, accessToken & refreshToken from localStorage\r\n localStorage.removeItem('userData')\r\n localStorage.removeItem(config.storageTokenKeyName)\r\n localStorage.removeItem(config.storageRefreshTokenKeyName)\r\n }\r\n }\r\n})\r\n\r\nexport const { handleLogin, handleLogout } = authSlice.actions\r\n\r\nexport default authSlice.reducer\r\n","// ** Imports createContext function\r\nimport { createContext } from 'react'\r\n\r\n// ** Imports createContextualCan function\r\nimport { createContextualCan } from '@casl/react'\r\n\r\n// ** Create Context\r\nexport const AbilityContext = createContext()\r\n\r\n// ** Init Can Context\r\nexport const Can = createContextualCan(AbilityContext.Consumer)\r\n","// ** Core JWT Import\r\nimport useJwt from '@src/@core/auth/jwt/useJwt'\r\n\r\nconst authConfig = {\r\n loginEndpoint: process?.env?.REACT_APP_API_URL + '/auth-painel/acessar',\r\n // logoutEndpoint: \"/jwt/logout\"\r\n refreshEndpoint: process?.env?.REACT_APP_API_URL + '/auth-painel/refresh-token',\r\n registerEndpoint: process?.env?.REACT_APP_API_URL + '/auth-painel/registrar',\r\n storageRefreshTokenKeyName: \"refreshToken\",\r\n storageTokenKeyName: \"accessToken\"\r\n // tokenType: \"Bearer\"\r\n}\r\n\r\nconst { jwt } = useJwt(authConfig)\r\n\r\nexport default jwt\r\n","import { Ability, AbilityBuilder } from \"@casl/ability\"\r\n\r\nexport const getAbilities = user => {\r\n const { can, rules } = new AbilityBuilder(Ability)\r\n can('view', 'auth')\r\n\r\n const roles = user?.roles ? user?.roles : user?.userToken?.roles\r\n\r\n roles?.forEach(role => {\r\n can('view', role)\r\n });\r\n\r\n const perfil = user?.perfil ? user?.perfil : user?.userToken?.perfil\r\n\r\n if (perfil === 'SuperAdmin') {\r\n can('view', 'usuarios')\r\n can('view', 'superadmin')\r\n } \r\n\r\n return rules\r\n}\r\n\r\n","// ** Redux Imports\r\nimport { createSlice, createAsyncThunk } from '@reduxjs/toolkit'\r\n\r\n// ** Axios Imports\r\nimport axios from 'axios'\r\n\r\nexport const getBookmarks = createAsyncThunk('layout/getBookmarks', async () => {\r\n const response = await axios.get('/api/bookmarks/data')\r\n return {\r\n data: response.data.suggestions,\r\n bookmarks: response.data.bookmarks\r\n }\r\n})\r\n\r\nexport const updateBookmarked = createAsyncThunk('layout/updateBookmarked', async id => {\r\n await axios.post('/api/bookmarks/update', { id })\r\n return id\r\n})\r\n\r\nexport const layoutSlice = createSlice({\r\n name: 'layout',\r\n initialState: {\r\n query: '',\r\n bookmarks: [],\r\n suggestions: []\r\n },\r\n reducers: {\r\n handleSearchQuery: (state, action) => {\r\n state.query = action.payload\r\n }\r\n },\r\n extraReducers: builder => {\r\n builder\r\n .addCase(getBookmarks.fulfilled, (state, action) => {\r\n state.suggestions = action.payload.data\r\n state.bookmarks = action.payload.bookmarks\r\n })\r\n .addCase(updateBookmarked.fulfilled, (state, action) => {\r\n let objectToUpdate\r\n\r\n // ** find & update object\r\n state.suggestions.find(item => {\r\n if (item.id === action.payload) {\r\n item.isBookmarked = !item.isBookmarked\r\n objectToUpdate = item\r\n }\r\n })\r\n\r\n // ** Get index to add or remove bookmark from array\r\n const bookmarkIndex = state.bookmarks.findIndex(x => x.id === action.payload)\r\n\r\n if (bookmarkIndex === -1) {\r\n state.bookmarks.push(objectToUpdate)\r\n } else {\r\n state.bookmarks.splice(bookmarkIndex, 1)\r\n }\r\n })\r\n }\r\n})\r\n\r\nexport const { handleSearchQuery } = layoutSlice.actions\r\n\r\nexport default layoutSlice.reducer\r\n","// ** Redux Imports\nimport { createSlice } from '@reduxjs/toolkit'\n\nexport const loaderSlice = createSlice({\n name: 'loader',\n initialState: {\n loading: false\n },\n reducers: {\n handleLoading: (state, action) => {\n state.loading = action.payload;\n }\n }\n})\n\nexport const {\n handleLoading\n} = loaderSlice.actions\n\nexport default loaderSlice.reducer\n","// ** React Imports\r\nimport { useEffect, useState, createContext } from 'react'\r\n\r\n// ** Create Context\r\nconst ThemeColors = createContext()\r\n\r\nconst ThemeContext = ({ children }) => {\r\n // ** State\r\n const [colors, setColors] = useState({})\r\n\r\n //** ComponentDidMount\r\n useEffect(() => {\r\n if (window !== 'undefined') {\r\n //** Get variable value\r\n const getHex = color => window.getComputedStyle(document.body).getPropertyValue(color).trim()\r\n\r\n //** Colors obj\r\n const obj = {\r\n primary: {\r\n light: getHex('--bs-primary').concat('1a'),\r\n main: getHex('--bs-primary')\r\n },\r\n secondary: {\r\n light: getHex('--bs-secondary').concat('1a'),\r\n main: getHex('--bs-secondary')\r\n },\r\n success: {\r\n light: getHex('--bs-success').concat('1a'),\r\n main: getHex('--bs-success')\r\n },\r\n danger: {\r\n light: getHex('--bs-danger').concat('1a'),\r\n main: getHex('--bs-danger')\r\n },\r\n warning: {\r\n light: getHex('--bs-warning').concat('1a'),\r\n main: getHex('--bs-warning')\r\n },\r\n info: {\r\n light: getHex('--bs-info').concat('1a'),\r\n main: getHex('--bs-info')\r\n },\r\n dark: {\r\n light: getHex('--bs-dark').concat('1a'),\r\n main: getHex('--bs-dark')\r\n }\r\n }\r\n\r\n setColors({ ...obj })\r\n }\r\n }, [])\r\n\r\n return {children}\r\n}\r\n\r\nexport { ThemeColors, ThemeContext }\r\n","// You can customize the template with the help of this file\n\n//Template config options\nconst themeConfig = {\n app: {\n appName: 'Painel - DrOnline',\n appLogoImage: require('@src/assets/images/logo/logo_admin_dronline.svg').default\n },\n layout: {\n isRTL: false,\n skin: 'light', // light, dark, bordered, semi-dark\n routerTransition: 'fadeIn', // fadeIn, fadeInLeft, zoomIn, none or check this for more transition https://animate.style/\n type: 'vertical', // vertical, horizontal\n contentWidth: 'boxed', // full, boxed\n menu: {\n isHidden: false,\n isCollapsed: false\n },\n navbar: {\n // ? For horizontal menu, navbar type will work for navMenu type\n type: 'floating', // static , sticky , floating, hidden\n backgroundColor: 'white' // BS color options [primary, success, etc]\n },\n footer: {\n type: 'hidden' // static, sticky, hidden\n },\n customizer: false,\n scrollTop: true // Enable scroll to top button\n }\n}\n\nexport default themeConfig\n","// ** Reducers Imports\r\nimport auth from './authentication'\r\nimport navbar from './navbar'\r\nimport layout from './layout'\r\nimport loader from './loader'\r\n\r\nconst rootReducer = {\r\n auth,\r\n navbar,\r\n layout,\r\n loader\r\n}\r\n\r\nexport default rootReducer\r\n","// ** Redux Imports\nimport rootReducer from './rootReducer'\nimport { configureStore } from '@reduxjs/toolkit'\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware: getDefaultMiddleware => {\n return getDefaultMiddleware({\n serializableCheck: false\n })\n }\n})\n\nexport { store }\n","// ** Auth Endpoints\r\nexport default {\r\n loginEndpoint: '/jwt/login',\r\n registerEndpoint: '/jwt/register',\r\n refreshEndpoint: '/jwt/refresh-token',\r\n logoutEndpoint: '/jwt/logout',\r\n\r\n // ** This will be prefixed in authorization header with token\r\n // ? e.g. Authorization: Bearer \r\n tokenType: 'Bearer',\r\n\r\n // ** Value of this property will be used as key to store JWT token in storage\r\n storageTokenKeyName: 'accessToken',\r\n storageRefreshTokenKeyName: 'refreshToken'\r\n}\r\n","import axios from 'axios'\r\nimport jwtDefaultConfig from './jwtDefaultConfig'\r\n\r\nexport default class JwtService {\r\n // ** jwtConfig <= Will be used by this service\r\n jwtConfig = { ...jwtDefaultConfig }\r\n\r\n // ** For Refreshing Token\r\n isAlreadyFetchingAccessToken = false\r\n\r\n // ** For Refreshing Token\r\n subscribers = []\r\n\r\n constructor(jwtOverrideConfig) {\r\n this.jwtConfig = { ...this.jwtConfig, ...jwtOverrideConfig }\r\n\r\n // ** Request Interceptor\r\n axios.interceptors.request.use(\r\n config => {\r\n // ** Get token from localStorage\r\n const accessToken = this.getToken()\r\n\r\n // ** If token is present add it to request's Authorization Header\r\n if (accessToken) {\r\n // ** eslint-disable-next-line no-param-reassign\r\n config.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`\r\n }\r\n return config\r\n },\r\n error => Promise.reject(error)\r\n )\r\n\r\n // ** Add request/response interceptor\r\n axios.interceptors.response.use(\r\n response => response,\r\n error => {\r\n // ** const { config, response: { status } } = error\r\n const { config, response } = error\r\n const originalRequest = config\r\n\r\n // ** if (status === 401) {\r\n if (response && response.status === 401) {\r\n if (!this.isAlreadyFetchingAccessToken) {\r\n this.isAlreadyFetchingAccessToken = true\r\n this.refreshToken().then(r => {\r\n this.isAlreadyFetchingAccessToken = false\r\n\r\n // ** Update accessToken in localStorage\r\n this.setToken(r.data.accessToken)\r\n this.setRefreshToken(r.data.refreshToken)\r\n\r\n this.onAccessTokenFetched(r.data.accessToken)\r\n })\r\n }\r\n const retryOriginalRequest = new Promise(resolve => {\r\n this.addSubscriber(accessToken => {\r\n // ** Make sure to assign accessToken according to your response.\r\n // ** Check: https://pixinvent.ticksy.com/ticket/2413870\r\n // ** Change Authorization header\r\n originalRequest.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`\r\n resolve(this.axios(originalRequest))\r\n })\r\n })\r\n return retryOriginalRequest\r\n }\r\n return Promise.reject(error)\r\n }\r\n )\r\n }\r\n\r\n onAccessTokenFetched(accessToken) {\r\n this.subscribers = this.subscribers.filter(callback => callback(accessToken))\r\n }\r\n\r\n addSubscriber(callback) {\r\n this.subscribers.push(callback)\r\n }\r\n\r\n getToken() {\r\n return localStorage.getItem(this.jwtConfig.storageTokenKeyName)\r\n }\r\n\r\n getRefreshToken() {\r\n return localStorage.getItem(this.jwtConfig.storageRefreshTokenKeyName)\r\n }\r\n\r\n setToken(value) {\r\n localStorage.setItem(this.jwtConfig.storageTokenKeyName, value)\r\n }\r\n\r\n setRefreshToken(value) {\r\n localStorage.setItem(this.jwtConfig.storageRefreshTokenKeyName, value)\r\n }\r\n\r\n login(...args) {\r\n return axios.post(this.jwtConfig.loginEndpoint, ...args)\r\n }\r\n\r\n register(...args) {\r\n return axios.post(this.jwtConfig.registerEndpoint, ...args)\r\n }\r\n\r\n refreshToken() {\r\n return axios.post(this.jwtConfig.refreshEndpoint, {\r\n refreshToken: this.getRefreshToken()\r\n })\r\n }\r\n}\r\n","// ** JWT Service Import\r\nimport JwtService from './jwtService'\r\n\r\n// ** Export Service as useJwt\r\nexport default function useJwt(jwtOverrideConfig) {\r\n const jwt = new JwtService(jwtOverrideConfig)\r\n\r\n return {\r\n jwt\r\n }\r\n}\r\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/logo_admin_dronline.91fe78a1.svg\";","export default __webpack_public_path__ + \"static/media/avatar-s-11.1d46cc62.jpg\";","export default __webpack_public_path__ + \"static/media/1-small.58bbb9cc.png\";","import { Ability } from '@casl/ability'\r\nimport { getAbilities } from './initialAbility'\r\n\r\n// Read ability from localStorage\r\n// * Handles auto fetching previous abilities if already logged in user\r\n// ? You can update this if you store user abilities to more secure place\r\n// ! Anyone can update localStorage so be careful and please update this\r\nconst userData = JSON.parse(localStorage.getItem('userData'))\r\n\r\nconst rules = getAbilities(userData)\r\n\r\nexport default new Ability(rules)\r\n","// ** React Imports\r\nimport { useState, useEffect } from 'react'\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames'\r\n\r\n// ** Reactstrap Imports\r\nimport { Button } from 'reactstrap'\r\n\r\n// ** Styles\r\nimport './ripple-button.scss'\r\n\r\nconst RippleButton = ({ className, children, onClick, ...rest }) => {\r\n // ** States\r\n const [mounted, setMounted] = useState(false)\r\n const [isRippling, setIsRippling] = useState(false)\r\n const [coords, setCoords] = useState({ x: -1, y: -1 })\r\n\r\n // ** Toggle mounted on mount & unmount\r\n useEffect(() => {\r\n setMounted(true)\r\n return () => setMounted(false)\r\n }, [])\r\n\r\n // ** Check for coords and set ripple\r\n useEffect(() => {\r\n if (mounted) {\r\n if (coords.x !== -1 && coords.y !== -1) {\r\n setIsRippling(true)\r\n setTimeout(() => setIsRippling(false), 500)\r\n } else {\r\n setIsRippling(false)\r\n }\r\n }\r\n }, [coords])\r\n\r\n // ** Reset Coords on ripple end\r\n useEffect(() => {\r\n if (mounted) {\r\n if (!isRippling) setCoords({ x: -1, y: -1 })\r\n }\r\n }, [isRippling])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\n// ** PropTypes\r\nRippleButton.propTypes = {\r\n ...Button.propTypes\r\n}\r\n\r\nButton.Ripple = RippleButton\r\n","import axios from 'axios'\r\nimport MockAdapter from 'axios-mock-adapter'\r\n\r\nconst mock = new MockAdapter(axios)\r\n\r\nexport default mock\r\n","import mock from '../mock'\r\nimport jwt from 'jsonwebtoken'\r\n\r\nconst data = {\r\n users: [\r\n {\r\n id: 1,\r\n fullName: 'Christian Januzi',\r\n username: 'Cjanuzi',\r\n password: 'Mudar@2022',\r\n avatar: require('@src/assets/images/portrait/small/avatar-s-11.jpg').default,\r\n email: 'cjanuzi@iconcode.com.br',\r\n role: 'admin',\r\n ability: [\r\n {\r\n action: 'manage',\r\n subject: 'all'\r\n }\r\n ],\r\n extras: {\r\n eCommerceCartItemsCount: 5\r\n }\r\n },\r\n {\r\n id: 2,\r\n fullName: 'Jane Doe',\r\n username: 'janedoe',\r\n password: 'client',\r\n avatar: require('@src/assets/images/avatars/1-small.png').default,\r\n email: 'client@demo.com',\r\n role: 'client',\r\n ability: [\r\n {\r\n action: 'read',\r\n subject: 'ACL'\r\n },\r\n {\r\n action: 'read',\r\n subject: 'Auth'\r\n }\r\n ],\r\n extras: {\r\n eCommerceCartItemsCount: 5\r\n }\r\n }\r\n ]\r\n}\r\n\r\n// ! These two secrets shall be in .env file and not in any other file\r\nconst jwtConfig = {\r\n secret: 'dd5f3089-40c3-403d-af14-d0c228b05cb4',\r\n refreshTokenSecret: '7c4c1c50-3230-45bf-9eae-c9b2e401c767',\r\n expireTime: '10m',\r\n refreshTokenExpireTime: '10m'\r\n}\r\n\r\nmock.onPost('/jwt/login').reply(request => {\r\n const { email, password } = JSON.parse(request.data)\r\n\r\n let error = {\r\n email: ['Something went wrong']\r\n }\r\n\r\n const user = data.users.find(u => u.email === email && u.password === password)\r\n\r\n if (user) {\r\n try {\r\n const accessToken = jwt.sign({ id: user.id }, jwtConfig.secret, { expiresIn: jwtConfig.expireTime })\r\n const refreshToken = jwt.sign({ id: user.id }, jwtConfig.refreshTokenSecret, {\r\n expiresIn: jwtConfig.refreshTokenExpireTime\r\n })\r\n\r\n const userData = { ...user }\r\n\r\n delete userData.password\r\n\r\n const response = {\r\n userData,\r\n accessToken,\r\n refreshToken\r\n }\r\n\r\n return [200, response]\r\n } catch (e) {\r\n error = e\r\n }\r\n } else {\r\n error = {\r\n email: ['Email or Password is Invalid']\r\n }\r\n }\r\n\r\n return [400, { error }]\r\n})\r\n\r\nmock.onPost('/jwt/register').reply(request => {\r\n if (request.data.length > 0) {\r\n const { email, password, username } = JSON.parse(request.data)\r\n const isEmailAlreadyInUse = data.users.find(user => user.email === email)\r\n const isUsernameAlreadyInUse = data.users.find(user => user.username === username)\r\n const error = {\r\n email: isEmailAlreadyInUse ? 'Este endereço de e-mail já existe e está em uso.' : null,\r\n username: isUsernameAlreadyInUse ? 'Este nome de usuário já existe e está em uso.' : null\r\n }\r\n\r\n if (!error.username && !error.email) {\r\n const userData = {\r\n email,\r\n password,\r\n username,\r\n fullName: '',\r\n avatar: null,\r\n role: 'admin',\r\n ability: [\r\n {\r\n action: 'manage',\r\n subject: 'all'\r\n }\r\n ]\r\n }\r\n\r\n // Add user id\r\n const length = data.users.length\r\n let lastIndex = 0\r\n if (length) {\r\n lastIndex = data.users[length - 1].id\r\n }\r\n userData.id = lastIndex + 1\r\n\r\n data.users.push(userData)\r\n\r\n const accessToken = jwt.sign({ id: userData.id }, jwtConfig.secret, { expiresIn: jwtConfig.expireTime })\r\n\r\n const user = Object.assign({}, userData)\r\n delete user['password']\r\n const response = { user, accessToken }\r\n\r\n return [200, response]\r\n } else {\r\n return [200, { error }]\r\n }\r\n }\r\n})\r\n\r\nmock.onPost('/jwt/refresh-token').reply(request => {\r\n const { refreshToken } = JSON.parse(request.data)\r\n\r\n try {\r\n const { id } = jwt.verify(refreshToken, jwtConfig.refreshTokenSecret)\r\n\r\n const userData = { ...data.users.find(user => user.id === id) }\r\n\r\n const newAccessToken = jwt.sign({ id: userData.id }, jwtConfig.secret, { expiresIn: jwtConfig.expiresIn })\r\n const newRefreshToken = jwt.sign({ id: userData.id }, jwtConfig.refreshTokenSecret, {\r\n expiresIn: jwtConfig.refreshTokenExpireTime\r\n })\r\n\r\n delete userData.password\r\n const response = {\r\n userData,\r\n accessToken: newAccessToken,\r\n refreshToken: newRefreshToken\r\n }\r\n\r\n return [200, response]\r\n } catch (e) {\r\n const error = 'Invalid refresh token'\r\n return [401, { error }]\r\n }\r\n})\r\n","import mock from '../mock'\r\n\r\nconst data = {\r\n support_tracker: {\r\n title: 'Support Tracker',\r\n last_days: ['Last 28 Days', 'Last Month', 'Last Year'],\r\n totalTicket: 163,\r\n newTicket: 29,\r\n openTicket: 63,\r\n responseTime: 1\r\n },\r\n avg_sessions: {\r\n sessions: 2700,\r\n last_days: ['Last 28 Days', 'Last Month', 'Last Year'],\r\n growth: '+5.2%',\r\n goal: 100000,\r\n users: 100000,\r\n retention: 90,\r\n duration: 1\r\n },\r\n revenue_report: {\r\n years: ['2020', '2019', '2018'],\r\n price: '25,852',\r\n budget: '56,800'\r\n },\r\n goal_overview: {\r\n completed: '786,617',\r\n inProgress: '13,561'\r\n },\r\n revenue: {\r\n thisMonth: '86,589',\r\n lastMonth: '73,683'\r\n },\r\n product_orders: {\r\n last_days: ['Last 28 Days', 'Last Month', 'Last Year'],\r\n chart_info: { finished: 23043, pending: 14658, rejected: 4758 }\r\n },\r\n sessions_device: {\r\n last_days: ['Last 28 Days', 'Last Month', 'Last Year'],\r\n chart_info: [\r\n {\r\n icon: 'Monitor',\r\n name: 'Desktop',\r\n iconColor: 'text-primary',\r\n usage: 58.6,\r\n upDown: 2\r\n },\r\n {\r\n icon: 'Tablet',\r\n name: 'Mobile',\r\n iconColor: 'text-warning',\r\n usage: 34.9,\r\n upDown: 8\r\n },\r\n {\r\n icon: 'Tablet',\r\n name: 'Tablet',\r\n iconColor: 'text-danger',\r\n usage: 6.5,\r\n upDown: -5\r\n }\r\n ]\r\n },\r\n customers: {\r\n last_days: ['Last 28 Days', 'Last Month', 'Last Year'],\r\n listData: [\r\n {\r\n icon: 'Circle',\r\n iconColor: 'text-primary',\r\n text: 'New',\r\n result: 690\r\n },\r\n {\r\n icon: 'Circle',\r\n iconColor: 'text-warning',\r\n text: 'Returning',\r\n result: 258\r\n },\r\n {\r\n icon: 'Circle',\r\n iconColor: 'text-danger',\r\n text: 'Referrals',\r\n result: 149\r\n }\r\n ]\r\n }\r\n}\r\n\r\nmock.onGet('/card/card-analytics/support-tracker').reply(() => [200, data.support_tracker])\r\nmock.onGet('/card/card-analytics/avg-sessions').reply(() => [200, data.avg_sessions])\r\nmock.onGet('/card/card-analytics/revenue-report').reply(() => [200, data.revenue_report])\r\nmock.onGet('/card/card-analytics/goal-overview').reply(() => [200, data.goal_overview])\r\nmock.onGet('/card/card-analytics/revenue').reply(() => [200, data.revenue])\r\nmock.onGet('/card/card-analytics/product-orders').reply(() => [200, data.product_orders])\r\nmock.onGet('/card/card-analytics/sessions-device').reply(() => [200, data.sessions_device])\r\nmock.onGet('/card/card-analytics/customers').reply(() => [200, data.customers])\r\n","import mock from '../mock'\n\nconst data = {\n orders_bar_chart: {\n title: 'Convites',\n statistics: '2,76k',\n series: [\n {\n name: '2020',\n data: [45, 85, 65, 45, 65]\n }\n ]\n },\n profit_line_chart: {\n title: 'Ativações',\n statistics: '6,24k',\n series: [\n {\n data: [0, 20, 5, 30, 15, 45]\n }\n ]\n },\n subscribers_gained: {\n series: [\n {\n name: 'Subscribers',\n data: [28, 40, 36, 52, 38, 60, 55]\n }\n ],\n analyticsData: {\n subscribers: 92600\n }\n },\n revenueGenerated: {\n series: [\n {\n name: 'Revenue',\n data: [350, 275, 400, 300, 350, 300, 450]\n }\n ],\n analyticsData: {\n revenue: 97500\n }\n },\n quarterlySales: {\n series: [\n {\n name: 'Sales',\n data: [10, 15, 7, 12, 3, 16]\n }\n ],\n analyticsData: {\n sales: '36%'\n }\n },\n ordersRecevied: {\n series: [\n {\n name: 'Orders',\n data: [10, 15, 8, 15, 7, 12, 8]\n }\n ],\n analyticsData: {\n orders: 97500\n }\n },\n siteTraffic: {\n series: [\n {\n name: 'Traffic Rate',\n data: [150, 200, 125, 225, 200, 250]\n }\n ]\n },\n activeUsers: {\n series: [\n {\n name: 'Active Users',\n data: [750, 1000, 900, 1250, 1000, 1200, 1100]\n }\n ]\n },\n newsletter: {\n series: [\n {\n name: 'Newsletter',\n data: [365, 390, 365, 400, 375, 400]\n }\n ]\n }\n}\n\nmock.onGet('/card/card-statistics/orders-bar-chart').reply(() => [200, data.orders_bar_chart])\n\nmock.onGet('/card/card-statistics/profit-line-chart').reply(() => [200, data.profit_line_chart])\n\nmock.onGet('/card/card-statistics/subscribers').reply(() => [200, data.subscribers_gained])\n\nmock.onGet('/card/card-statistics/revenue').reply(() => [200, data.revenueGenerated])\n\nmock.onGet('/card/card-statistics/sales').reply(() => [200, data.quarterlySales])\n\nmock.onGet('/card/card-statistics/orders').reply(() => [200, data.ordersRecevied])\n\nmock.onGet('/card/card-statistics/site-traffic').reply(() => [200, data.siteTraffic])\n\nmock.onGet('/card/card-statistics/active-users').reply(() => [200, data.activeUsers])\n\nmock.onGet('/card/card-statistics/newsletter').reply(() => [200, data.newsletter])\n","import mock from './mock'\r\n\r\nimport './jwt'\r\nimport './cards/card-analytics'\r\nimport './cards/card-statistics'\r\n\r\nmock.onAny().passThrough()\r\n","/*eslint-disable */\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n)\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets see https://github.com/facebook/create-react-app/issues/2374\r\n return\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config)\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n )\r\n })\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config)\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing\r\n if (installingWorker === null) {\r\n return\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n )\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration)\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.')\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error)\r\n })\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type')\r\n if (response.status === 404 || (contentType !== null && contentType.indexOf('javascript') === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload()\r\n })\r\n })\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config)\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.')\r\n })\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister()\r\n })\r\n }\r\n}\r\n","// ** React Imports\r\nimport { Suspense, lazy } from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport 'moment/locale/pt-br'\r\n\r\n// ** Redux Imports\r\nimport { Provider } from 'react-redux'\r\nimport { store } from './redux/store'\r\n\r\n// ** Intl, CASL & ThemeColors Context\r\nimport ability from './configs/acl/ability'\r\nimport { ToastContainer } from 'react-toastify'\r\nimport { AbilityContext } from './utility/context/Can'\r\nimport { ThemeContext } from './utility/context/ThemeColors'\r\nimport { GlobalLoaderContext } from './utility/context/GlobalLoader'\r\n\r\n// ** Spinner (Splash Screen)\r\nimport Spinner from './@core/components/spinner/Fallback-spinner'\r\n\r\n// ** Ripple Button\r\nimport './@core/components/ripple-button'\r\n\r\n// ** Fake Database\r\nimport './@fake-db'\r\n\r\n// ** PrismJS\r\nimport 'prismjs'\r\nimport 'prismjs/themes/prism-tomorrow.css'\r\nimport 'prismjs/components/prism-jsx.min'\r\n\r\n// ** React yup validator\r\nimport * as yup from 'yup'\r\n\r\n// ** React Perfect Scrollbar\r\nimport 'react-perfect-scrollbar/dist/css/styles.css'\r\n\r\n// ** React Toastify\r\nimport '@styles/react/libs/toastify/toastify.scss'\r\n\r\n// ** Core styles\r\nimport './@core/assets/fonts/feather/iconfont.css'\r\nimport './@core/scss/core.scss'\r\nimport './assets/scss/style.scss'\r\n\r\nyup.setLocale({\r\n mixed: {\r\n required: '${path} é um campo obrigatório!',\r\n notType: '${path} é um campo obrigatório!'\r\n },\r\n string: {\r\n min: '${path} deve ter mais que ${min} caracteres!',\r\n max: '${path} deve ter no máximo ${max} caracteres!',\r\n email: '${path} deve ser um e-mail válido!'\r\n }\r\n})\r\n\r\n// ** Service Worker\r\nimport * as serviceWorker from './serviceWorker'\r\n\r\n// ** Lazy load app\r\nconst LazyApp = lazy(() => import('./App'))\r\n\r\nReactDOM.render(\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n)\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister()\r\n","// ** Logo\r\nimport logo from '@src/assets/images/logo/logo.png'\r\n\r\nconst SpinnerComponent = props => {\r\n const { is_full_screen } = props\r\n\r\n return (\r\n \r\n {/*

*/}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SpinnerComponent\r\n"],"sourceRoot":""}