{"version":3,"sources":["app/redux/actions/UserActions.js","@utils.js","@history.js","app/services/localStorageService.js","app/redux/actions/LayoutActions.js","app/appContext.js","app/services/jwtAuthService.js","app/services/wmAuthService.js","app/redux/actions/LoginActions.js","fake-db/mock.js","fake-db/db/invoice.js","fake-db/db/calendarEvents.js","fake-db/db/users.js","fake-db/db/inbox.js","fake-db/db/chat.js","fake-db/db/todos.js","fake-db/db/list.js","fake-db/db/scrumBoard.js","fake-db/db/notification.js","fake-db/db/ecommerce.js","fake-db/index.js","app/views/sessions/sessionRoutes.js","app/GullLayout/index.js","app/GullLayout/GullLayout.jsx","app/auth/AuthGuard.jsx","app/auth/authRoles.js","app/views/dashboard/dashboardRoutes.js","app/views/turno/turnoRoutes.js","app/views/turma/turmaRoutes.js","app/views/aluno/alunoRoutes.js","app/views/calendario/calendarioRoutes.js","app/views/biblioteca/bibliotecaRoutes.js","app/views/consultas/consultaRoutes.js","app/views/convenio/convenioRoutes.js","app/views/visita/visitaRoutes.js","app/views/planejamento/planejamentoRoutes.js","app/views/professor/professorRoutes.js","app/views/atividade/atividadeRoutes.js","app/views/refeicao/refeicaoRoutes.js","app/views/cardapio/cardapioRoutes.js","app/views/comunicado/comunicadoRoutes.js","app/views/fornecedor/fornecedorRoutes.js","app/views/contacontabil/contacontabilRoutes.js","app/views/contapagar/contapagarRoutes.js","app/views/contareceber/contareceberRoutes.js","app/views/servico/servicoRoutes.js","app/views/escola/escolaRoutes.js","app/views/usuario/usuarioRoutes.js","app/views/livrocaixa/livrocaixaRoutes.js","app/views/portador/portadorRoutes.js","app/views/contrato/contratoRoutes.js","app/views/chamada/chamadaRoutes.js","app/views/titulo/tituloRoutes.js","app/views/boletos/boletosRoutes.js","app/views/mensagem/mensagemRoutes.js","app/views/rematricula/rematriculaRoutes.js","app/RootRoutes.jsx","app/views/marketing/marketingRoutes.js","app/views/parecerdescritivo/parecerDescritivoRoutes.js","app/views/ModuloProfessor/moduloProfessorRoutes.js","app/views/consideracao/consideracoesRoutes.js","app/views/recado/recadoRoutes.js","app/redux/reducers/LoginReducer.js","app/redux/reducers/UserReducer.js","app/GullLayout/settings.js","app/GullLayout/Layout1/Layout1Settings.js","app/GullLayout/Layout2/Layout2Settings.js","app/GullLayout/Layout3/Layout3Settings.js","app/redux/reducers/LayoutReducer.js","app/redux/actions/ScrumBoardActions.js","app/redux/reducers/ScrumBoardReducer.js","app/redux/actions/NotificationActions.js","app/redux/reducers/NotificationReducer.js","app/redux/actions/EcommerceActions.js","app/redux/reducers/EcommerceReducer.js","app/redux/reducers/RootReducer.js","app/redux/Store.js","app/auth/Auth.jsx","app/App.jsx","index.jsx","@gull/components/GullLoadable/Loading.js","app/services/firebase/firebaseConfig.js","app/services/firebase/firebaseAuthService.js","@gull/components/DropDownMenuItem.jsx","@gull/components/DropDownMenu.jsx","@gull/components/RichTextEditor.jsx","@gull/components/Breadcrumb.jsx","@gull/components/CodeViewer.jsx","@gull/components/GullSidenav/GullSidenav.jsx","@gull/components/cards/SimpleCard.jsx"],"names":["SET_USER_DATA","REMOVE_USER_DATA","USER_LOGGED_OUT","setUserData","user","dispatch","type","data","logoutUser","jwtAuthService","logout","history","push","pathname","isMobile","window","matchMedia","matches","getTimeDifference","date","difference","moment","Date","diff","Math","floor","toFixed","classList","classes","Object","entries","filter","entry","map","join","locale","createBrowserHistory","constructor","removeItem","key","localStorage","setItem","value","JSON","stringify","getItem","parse","e","SET_LAYOUT_SETTINGS","SET_DEFAULT_LAYOUT_SETTINGS","setLayoutSettings","setDefaultSettings","AppContext","React","createContext","userId","role","displayName","email","photoURL","age","token","loginWithEmailAndPassword","password","Promise","resolve","reject","setTimeout","this","then","setSession","setUser","loginWithToken","removeUser","axios","defaults","headers","common","localStorageService","loginUsuarioSenha","usuario","senha","get","Accept","retorno","status","Error","catch","error","LOGIN_ERROR","LOGIN_SUCCESS","LOGIN_LOADING","RESET_PASSWORD","wmLoginUsuarioSenha","_ref3","mensagem","WmAuthService","Mock","require","invoiceDB","invoices","id","orderNo","currency","vat","buyer","name","address","seller","item","unit","price","onGet","reply","config","find","invoice","onPost","index","i","forEach","element","splice","calendarEventDB","events","title","start","getFullYear","getMonth","end","classNames","allDay","getDate","others","event","shortid","generate","updatedEvent","userDB","users","inboxDB","messages","sender","photo","selected","subject","message","ChatDB","avatar","chatInfo","chatId","contactId","unread","lastChatTime","contacts","mood","chatCollection","chats","text","time","collection","chat","temp","currentUser","chatRoom","messageList","recentListUpdated","shortId","now","contact","chatDetails","TodoDB","todo","note","important","starred","done","read","startDate","dueDate","tag","todoList","t","_","ListDB","list","userName","projectName","toLocaleString","projectImage","userImage","comment","revision","ScrumBoardDB","boardList","cardList","coverImage","members","labels","description","attachments","size","url","comments","uid","color","reorder","startIndex","endIndex","result","Array","from","removed","getBoardWithMemberDetails","board","member","boardId","memberId","indexOf","listTitle","listId","column","deleteIndex","cardTitle","card","sourcelistId","destinationlistId","source","destination","movedItem","NotificationDB","heading","icon","timestamp","subtitle","path","response","notification","EcommerceDB","productList","imgUrl","category","brand","rating","freeShipping","product","rate","cart","productId","amount","userList","getDetailedCartList","userCart","cartList","onAny","passThrough","sessionsRoutes","component","lazy","GullLayouts","layout1","layout2","layout3","GullLayout","Component","arguments","state","initAppDirection","settings","props","document","documentElement","setAttribute","dir","componentDidUpdate","prevProps","location","componentDidMount","render","activeLayout","route","Layout","_jsx","Suspense","children","routes","contextType","withRouter","connect","PropTypes","func","isRequired","layout","defaultSettings","AuthGuard","context","super","authenticated","setState","flatMap","redirectRoute","shouldComponentUpdate","nextProps","nextState","getDerivedStateFromProps","matched","length","r","auth","includes","redirectUrl","Fragment","authRoles","sa","admin","secretaria","financeiro","professor","dashboardRoutes","turnoRoutes","turmaRoutes","alunoRoutes","calendarioRoutes","bibliotecaRoutes","consultaRoutes","convenioRoutes","visitaRoutes","planejamentoRoutes","professorRoutes","atividadeRoutes","refeicaoRoutes","cardapioRoutes","comunicadoRoutes","fornecedorRoutes","contacontabilRoutes","contapagarRoutes","contareceberRoutes","servicoRoutes","escolaRoutes","usuarioRoutes","livrocaixaRoutes","portadorRoutes","contratoRoutes","chamadaRoutes","tituloRoutes","boletosRoutes","mensagemRoutes","rematriculaRoutes","exact","Redirect","to","forncedorRoutes","initialState","success","loading","username","LoginReducer","undefined","action","userReducer","GullLayoutSettings","layout1Settings","leftSidebar","open","secondaryNavOpen","searchBox","layout2Settings","theme","header","show","secondarySidebar","layout3Settings","mode","bgOpacity","bgImgURL","fixed","footer","customizer","LayoutReducer","GET_ALL_BOARD","GET_BOARD_BY_ID","ADD_BOARD","ADD_MEMBER_IN_BOARD","DELETE_MEMBER_FROM_BOARD","GET_ALL_MEMBERS","GET_ALL_LABELS","ADD_LIST","RENAME_LIST","REORDER_LIST","DELETE_LIST","ADD_CARD","UPDATE_CARD","REORDER_CARD_LIST","MOVE_CARD","ScrumBoardReducer","memberList","payload","labelList","GET_NOTIFICATION","CREATE_NOTIFICATION","DELETE_NOTIFICATION","DELETE_ALL_NOTIFICATION","NotificationReducer","GET_PRODUCT_LIST","GET_CART_LIST","GET_CATEGORY_LIST","GET_RATING_LIST","GET_BRAND_LIST","ADD_PRODUCT_TO_CART","DELETE_PRODUCT_FROM_CART","UPDATE_CART_AMOUNT","EcommerceReducer","categoryList","ratingList","brandList","RootReducer","combineReducers","login","UserReducer","scrumboard","ecommerce","middlewares","thunk","Store","createStore","compose","applyMiddleware","x","Auth","checkJwtAuth","checkFirebaseAuth","firebaseAuthService","checkAuthStatus","console","log","emailVerified","checkWmAuth","App","Provider","store","fallback","Loading","Router","renderRoutes","RootRoutes","ReactDOM","getElementById","styles","position","left","right","top","margin","height","width","zIndex","style","className","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","instance","init","firebase","initializeApp","callback","onAuthStateChanged","signUpWithEmailAndPassword","createUserWithEmailAndPassword","signInWithEmailAndPassword","signInWithPopup","media","googleProvider","facebookProvider","twitterProvider","signInWithPhoneNumber","phoneNumber","getUserData","docId","firestore","doc","getAllUser","docList","signOut","DropDownMenuItem","collapsed","elementRef","createRef","componentHeight","onItemClick","calcaulateHeight","node","child","clientHeight","_jsxs","onClick","ref","el","maxHeight","DropDownMenu","preventDefault","renderLevels","items","sub","closeSecSidenav","Link","menu","RichTextEditor","_ref","content","placeholder","handleContentChange","modules","ReactQuill","onChange","formats","toolbar","font","script","background","align","indent","direction","clipboard","matchVisual","Breadcrumb","routeSegments","NavLink","CodeViewer","SimpleCard","Card","Body"],"mappings":"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","file":"static/js/main.5b49e895.chunk.js","sourcesContent":["import history from \"@history.js\";\nimport jwtAuthService from \"../../services/jwtAuthService\";\n\nexport const SET_USER_DATA = \"USER_SET_DATA\";\nexport const REMOVE_USER_DATA = \"USER_REMOVE_DATA\";\nexport const USER_LOGGED_OUT = \"USER_LOGGED_OUT\";\n\nexport function setUserData(user) {\n return dispatch => {\n dispatch({\n type: SET_USER_DATA,\n data: user\n });\n };\n}\n\nexport function logoutUser() {\n return dispatch => {\n jwtAuthService.logout();\n\n history.push({\n pathname: \"/session/signin\"\n });\n\n dispatch({\n type: USER_LOGGED_OUT\n });\n };\n}\n","import moment from \"moment\";\n\nmoment.locale(\"pt-br\");\n\nexport function debounce(func, wait, immediate) {\n var timeout;\n return function() {\n var context = this,\n args = arguments;\n clearTimeout(timeout);\n timeout = setTimeout(function() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n }, wait);\n if (immediate && !timeout) func.apply(context, args);\n };\n}\n\nexport function isMobile() {\n if (window) {\n return window.matchMedia(`(max-width: 767px)`).matches;\n }\n return false;\n}\n\nexport function isMdScreen() {\n if (window) {\n return window.matchMedia(`(max-width: 1199px)`).matches;\n }\n return false;\n}\n\nfunction currentYPosition() {\n if (!window) {\n return;\n }\n // Firefox, Chrome, Opera, Safari\n if (window.pageYOffset) return window.pageYOffset;\n // Internet Explorer 6 - standards mode\n if (document.documentElement && document.documentElement.scrollTop)\n return document.documentElement.scrollTop;\n // Internet Explorer 6, 7 and 8\n if (document.body.scrollTop) return document.body.scrollTop;\n return 0;\n}\n\nfunction elmYPosition(elm) {\n var y = elm.offsetTop;\n var node = elm;\n while (node.offsetParent && node.offsetParent !== document.body) {\n node = node.offsetParent;\n y += node.offsetTop;\n }\n return y;\n}\n\nexport function scrollTo(scrollableElement, elmID) {\n var elm = document.getElementById(elmID);\n if (!elmID || !elm) {\n return;\n }\n var startY = currentYPosition();\n var stopY = elmYPosition(elm);\n var distance = stopY > startY ? stopY - startY : startY - stopY;\n if (distance < 100) {\n scrollTo(0, stopY);\n return;\n }\n var speed = Math.round(distance / 50);\n if (speed >= 20) speed = 20;\n var step = Math.round(distance / 25);\n var leapY = stopY > startY ? startY + step : startY - step;\n var timer = 0;\n if (stopY > startY) {\n for (var i = startY; i < stopY; i += step) {\n setTimeout(\n (function(leapY) {\n return () => {\n scrollableElement.scrollTo(0, leapY);\n };\n })(leapY),\n timer * speed\n );\n leapY += step;\n if (leapY > stopY) leapY = stopY;\n timer++;\n }\n return;\n }\n for (let i = startY; i > stopY; i -= step) {\n setTimeout(\n (function(leapY) {\n return () => {\n scrollableElement.scrollTo(0, leapY);\n };\n })(leapY),\n timer * speed\n );\n leapY -= step;\n if (leapY < stopY) leapY = stopY;\n timer++;\n }\n return false;\n}\n\nexport function getTimeDifference(date) {\n\n let difference =\n moment(new Date(), \"DD/MM/YYYY HH:mm:ss\").diff(\n moment(date, \"DD/MM/YYYY HH:mm:ss\")\n ) / 1000;\n\n if (difference < 60) return `${Math.floor(difference)} segundos`;\n else if (difference < 3600) return `${Math.floor(difference / 60)} minutos`;\n else if (difference < 86400) return `${Math.floor(difference / 3660)} horas`;\n else if (difference < 86400 * 30)\n return `${Math.floor(difference / 86400)} dias`;\n else if (difference < 86400 * 30 * 12)\n return `${Math.floor(difference / 86400 / 30)} meses`;\n else return `${(difference / 86400 / 30 / 12).toFixed(1)} anos`;\n}\n\nexport function generateRandomId() {\n let tempId = Math.random().toString();\n let uid = tempId.substr(2, tempId.length - 1);\n return uid;\n}\n\nexport function getQueryParam(prop) {\n var params = {};\n var search = decodeURIComponent(\n window.location.href.slice(window.location.href.indexOf(\"?\") + 1)\n );\n var definitions = search.split(\"&\");\n definitions.forEach(function(val, key) {\n var parts = val.split(\"=\", 2);\n params[parts[0]] = parts[1];\n });\n return prop && prop in params ? params[prop] : params;\n}\n\nexport function classList(classes) {\n return Object.entries(classes)\n .filter(entry => entry[1])\n .map(entry => entry[0])\n .join(\" \");\n}\n\nexport function initCodeViewer() {\n if(!document) return;\n const pre = document.getElementsByTagName('pre');\n if(!pre.length) return;\n Array.prototype.map.call(pre, p => {\n // console.log(p);\n p.classList.add('collapsed');\n p.addEventListener('click', (e) => {\n console.log(e.target);\n e.target.classList.remove('collapsed');\n })\n });\n\n // pre.map(p => {\n // console.log(p)\n // })\n \n}","import { createBrowserHistory } from 'history';\n\nexport default createBrowserHistory();","import React from \"react\";\n\nclass localStorageService {\n setItem(key, value) {\n value = JSON.stringify(value);\n localStorage.setItem(key, value);\n return true;\n }\n\n getItem(key) {\n let value = localStorage.getItem(key);\n try {\n return JSON.parse(value);\n } catch (e) {\n return null;\n }\n }\n\n removeItem = (key) => {\n localStorage.removeItem(key);\n };\n}\n\nexport default new localStorageService();\n","export const SET_LAYOUT_SETTINGS = \"LAYOUT_SET_SETTINGS\";\nexport const SET_DEFAULT_LAYOUT_SETTINGS = \"LAYOUT_SET_DEFAULT_SETTINGS\";\n\n\nexport const setLayoutSettings = data => dispatch => {\n dispatch({\n type: SET_LAYOUT_SETTINGS,\n data: data\n });\n};\n\nexport const setDefaultSettings = data => dispatch => {\n dispatch({\n type: SET_DEFAULT_LAYOUT_SETTINGS,\n data: data\n });\n};","import React from \"react\";\n\nconst AppContext = React.createContext({});\n\nexport default AppContext;","import axios from \"axios\";\nimport localStorageService from \"./localStorageService\";\n\nclass JwtAuthService {\n \n user = {\n userId: \"1\",\n role: 'ADMIN',\n displayName: \"Watson Joyce\",\n email: \"watsonjoyce@gmail.com\",\n photoURL: \"/assets/images/face-7.jpg\",\n age: 25,\n token: \"faslkhfh423oiu4h4kj432rkj23h432u49ufjaklj423h4jkhkjh\"\n }\n\n loginWithEmailAndPassword = (email, password) => {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.user);\n }, 1000);\n }).then(data => {\n this.setSession(data.token);\n this.setUser(data);\n return data;\n });\n };\n\n loginWithToken = () => {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(this.user);\n }, 100);\n }).then(data => {\n this.setSession(data.token);\n this.setUser(data);\n return data;\n });\n };\n\n \n\n logout = () => {\n this.setSession(null);\n this.removeUser();\n }\n\n setSession = token => {\n if (token) {\n localStorage.setItem(\"jwt_token\", token);\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\n } else {\n localStorage.removeItem(\"jwt_token\");\n delete axios.defaults.headers.common[\"Authorization\"];\n }\n };\n setUser = (user) => { \n localStorageService.setItem(\"auth_user\", user);\n }\n removeUser = () => {\n localStorage.removeItem(\"auth_user\");\n }\n}\n\nexport default new JwtAuthService();\n","import axios from \"axios\";\nimport localStorageService from \"./localStorageService\";\n\nclass WmAuthService {\n loginUsuarioSenha = (usuario, senha) => {\n return new Promise((resolve, reject) => {\n axios\n .get(`/api/signin/${usuario}/${senha}`, {\n headers: {\n Accept: \"application/json; charset=utf-8\",\n \"Content-Type\": \"application/json;charset=UTF-8\",\n },\n })\n .then((retorno) => {\n const { status, data } = retorno;\n\n if (status === 200) {\n resolve(data);\n } else {\n throw new Error(\"Usuário inválido\");\n }\n })\n .catch((error) => {\n reject(error);\n });\n })\n .then((data) => {\n //isso deve ser ajustado\n //this.setSession(data[0].cdUsuario);\n //this.setUser(data[0]);\n return data;\n })\n .catch((error) => {\n this.setSession(false);\n this.removeUser();\n return null;\n });\n };\n\n setSession = (token) => {\n if (token) {\n localStorage.setItem(\"wm_token\", token);\n axios.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n } else {\n localStorage.removeItem(\"wm_token\");\n delete axios.defaults.headers.common[\"Authorization\"];\n }\n };\n\n setUser = (user) => {\n localStorageService.setItem(\"auth_user\", user);\n };\n\n removeUser = () => {\n localStorage.removeItem(\"auth_user\");\n };\n}\n\nexport default new WmAuthService();\n","import jwtAuthService from \"../../services/jwtAuthService\";\nimport FirebaseAuthService from \"../../services/firebase/firebaseAuthService\";\nimport WmAuthService from \"../../services/wmAuthService\";\nimport history from \"@history.js\";\nimport { setUserData } from \"./UserActions\";\n\nexport const LOGIN_ERROR = \"LOGIN_ERROR\";\nexport const LOGIN_SUCCESS = \"LOGIN_SUCCESS\";\nexport const LOGIN_LOADING = \"LOGIN_LOADING\";\nexport const RESET_PASSWORD = \"RESET_PASSWORD\";\n\nexport function loginWithEmailAndPassword({ email, password }) {\n return (dispatch) => {\n dispatch({\n type: LOGIN_LOADING,\n });\n\n jwtAuthService\n .loginWithEmailAndPassword(email, password)\n .then((user) => {\n dispatch(setUserData(user));\n\n history.push({\n pathname: \"/\",\n });\n\n return dispatch({\n type: LOGIN_SUCCESS,\n });\n })\n .catch((error) => {\n return dispatch({\n type: LOGIN_ERROR,\n payload: error,\n });\n });\n };\n}\n\nexport function resetPassword({ email }) {\n return (dispatch) => {\n dispatch({\n payload: email,\n type: RESET_PASSWORD,\n });\n };\n}\n\nexport function wmLoginUsuarioSenha({ usuario, senha }, dispatch) {\n return () => {\n dispatch({\n type: LOGIN_LOADING,\n user: {},\n mensagem: \"\",\n });\n\n WmAuthService.loginUsuarioSenha(usuario, senha)\n .then((retorno) => {\n //mais um ajuste\n if (retorno == null) {\n return dispatch({\n type: LOGIN_ERROR,\n user: {},\n mensagem: \"Usuário inválido\",\n });\n } else {\n return dispatch({\n type: LOGIN_SUCCESS,\n user: retorno,\n mensagem: \"\",\n });\n }\n })\n .catch((error) => {\n return dispatch({\n type: LOGIN_ERROR,\n user: {},\n mensagem: \"Usuário inválido\",\n });\n });\n };\n}\n\nexport function firebaseLoginEmailPassword({ email, password }) {\n return (dispatch) => {\n FirebaseAuthService.signInWithEmailAndPassword(email, password)\n .then((user) => {\n if (user) {\n dispatch(\n setUserData({\n userId: \"1\",\n role: \"ADMIN\",\n displayName: \"Watson Joyce\",\n email: \"watsonjoyce@gmail.com\",\n photoURL: \"/assets/images/face-7.jpg\",\n age: 25,\n token: \"faslkhfh423oiu4h4kj432rkj23h432u49ufjaklj423h4jkhkjh\",\n ...user,\n })\n );\n\n history.push({\n pathname: \"/\",\n });\n\n return dispatch({\n type: LOGIN_SUCCESS,\n });\n } else {\n return dispatch({\n type: LOGIN_ERROR,\n payload: \"Login Failed\",\n });\n }\n })\n .catch((error) => {\n return dispatch({\n type: LOGIN_ERROR,\n payload: error,\n });\n });\n };\n}\n","const MockAdapter = require('axios-mock-adapter');\nconst axios = require('axios');\nconst Mock = new MockAdapter(axios);\nexport default Mock;\n","import Mock from \"../mock\";\nimport shortid from \"shortid\";\n\nconst invoiceDB = {\n invoices: [\n {\n id: \"dskjfdjfkdsjdsfdshs\",\n orderNo: \"232\",\n status: \"pending\",\n date: new Date(),\n currency: \"$\",\n vat: 10,\n buyer: {\n name: \"Schoen, Conn and Mills\",\n address:\n \"rodriguez.trent@senger.com \\n 61 Johnson St. Shirley, NY 11967. \\n \\n +202-555-0170\"\n },\n seller: {\n name: \"UI Lib\",\n address:\n \"sales@ui-lib.com \\n 8254 S. Garfield Street. Villa Rica, GA 30180. \\n \\n +1-202-555-0170\"\n },\n item: [\n {\n name: \"Item 1\",\n unit: 9,\n price: 200\n },\n {\n name: \"Item 2\",\n unit: 15,\n price: 300\n }\n ]\n },\n {\n id: \"kdfjkdjfdsjfkdsjforwueor\",\n orderNo: \"233\",\n status: \"processing\",\n date: new Date(),\n currency: \"$\",\n vat: 10,\n buyer: {\n name: \"New Age Inc.\",\n address:\n \"this is a test address \\n 7664 Rockcrest Road. Longview, TX 75604. \\n \\n +1-202-555-0153\"\n },\n seller: {\n name: \"UI Lib\",\n address:\n \"sales@ui-lib.com \\n 8254 S. Garfield Street. Villa Rica, GA 30180. \\n \\n +1-202-555-0170\"\n },\n item: [\n {\n name: \"Item 1\",\n unit: 3,\n price: 2000\n },\n {\n name: \"Item 2\",\n unit: 2,\n price: 4000\n }\n ]\n },\n {\n id: \"dskjfdsoiu3uwnen\",\n orderNo: \"234\",\n status: \"delivered\",\n date: new Date(),\n currency: \"$\",\n vat: 10,\n buyer: {\n name: \"Predovic, Schowalter and Haag\",\n address:\n \"linwood53@price.com \\n 7178 Plumb Branch Dr. South Bend, IN 46614 \\n \\n +999 9999 9999\"\n },\n seller: {\n name: \"UI Lib\",\n address:\n \"sales@ui-lib.com \\n 8254 S. Garfield Street. Villa Rica, GA 30180. \\n \\n +1-202-555-0170\"\n },\n item: [\n {\n name: \"Item 1\",\n unit: 5,\n price: 1000\n },\n {\n name: \"Item 2\",\n unit: 2,\n price: 4000\n }\n ]\n },\n {\n id: \"cjkvhndjs76dsjfj\",\n orderNo: \"235\",\n status: \"delivered\",\n date: new Date(),\n currency: \"$\",\n vat: 10,\n buyer: {\n name: \"Hane PLC\",\n address:\n \"nader.savanna@lindgren.org \\n 858 8th St. Nanuet, NY 10954. \\n \\n +202-555-0131\"\n },\n seller: {\n name: \"UI Lib\",\n address:\n \"sales@ui-lib.com \\n 8254 S. Garfield Street. Villa Rica, GA 30180. \\n \\n +1-202-555-0170\"\n },\n item: [\n {\n name: \"Item 1\",\n unit: 3,\n price: 4000\n },\n {\n name: \"Item 2\",\n unit: 1,\n price: 5000\n }\n ]\n }\n ]\n};\n\nMock.onGet(\"/api/invoices/all\").reply(config => {\n return [200, invoiceDB.invoices];\n});\n\nMock.onGet(\"/api/invoices\").reply(config => {\n const id = config.data;\n const response = invoiceDB.invoices.find(invoice => invoice.id === id);\n return [200, response];\n});\n\nMock.onPost(\"/api/invoices/delete\").reply(config => {\n let invoice = JSON.parse(config.data);\n let index = { i: 0 };\n invoiceDB.invoices.forEach(element => {\n if (element.id === invoice.id) {\n return [200, invoiceDB.invoices.splice(index.i, 1)];\n }\n index.i++;\n });\n return [200, invoiceDB.invoices];\n});\n\nMock.onPost(\"/api/invoices/update\").reply(config => {\n let invoice = JSON.parse(config.data);\n let index = { i: 0 };\n invoiceDB.invoices.forEach(element => {\n if (element.id === invoice.id) {\n invoiceDB.invoices[index.i] = invoice;\n return [200, invoiceDB.invoices];\n }\n index.i++;\n });\n return [200, invoiceDB.invoices];\n});\n\nMock.onPost(\"/api/invoices/add\").reply(config => {\n let invoice = JSON.parse(config.data);\n invoiceDB.invoices.push(invoice);\n return [200, invoiceDB.invoices];\n});\n","import Mock from \"../mock\";\nimport shortid from \"shortid\";\nconst date = new Date();\n\nconst calendarEventDB = {\n events: [\n {\n id: \"344jdfher3wh23\",\n title: \"Meeting with all employees\",\n start: new Date(date.getFullYear(), date.getMonth(), 1),\n end: new Date(date.getFullYear(), date.getMonth(), 3),\n classNames: [\"text-white\"],\n allDay: true\n },\n {\n id: \"344jdfher3wh245\",\n title: \"A trip to Bali Island\",\n start: new Date(),\n end: new Date(date.getFullYear(), date.getMonth(), date.getDate() + 2),\n classNames: [\"text-white\"],\n allDay: true\n }\n ]\n};\n\nMock.onGet(\"/api/calendar/events/all\").reply(config => {\n return [200, calendarEventDB.events];\n});\n\nMock.onPost(\"/api/calendar/events/add\").reply(config => {\n let { start, end, ...others } = JSON.parse(config.data);\n let event = {\n id: shortid.generate(),\n start: new Date(start),\n end: new Date(end),\n ...others\n };\n calendarEventDB.events.push(event);\n return [200, calendarEventDB.events];\n});\n\nMock.onPost(\"/api/calendar/events/update\").reply(config => {\n let updatedEvent = JSON.parse(config.data);\n calendarEventDB.events = calendarEventDB.events.map(event => {\n if (event.id === updatedEvent.id) {\n return { ...updatedEvent };\n }\n return event;\n });\n\n return [200, calendarEventDB.events];\n});\n\nMock.onPost(\"/api/calendar/events/delete\").reply(config => {\n let event = JSON.parse(config.data);\n\n calendarEventDB.events.map((element, i) => {\n if (element.id === event.id) {\n return [200, calendarEventDB.events.splice(i, 1)];\n }\n });\n\n return [200, calendarEventDB.events];\n});\n","import Mock from '../mock';\n\nconst userDB = {\n users: [\n {\n 'id': '5a7b73f76bed15c94d1e46d4',\n 'index': 0,\n 'guid': 'c01da2d1-07f8-4acc-a1e3-72dda7310af8',\n 'isActive': false,\n 'balance': 2838.08,\n 'age': 30,\n 'name': 'Stefanie Marsh',\n 'gender': 'female',\n 'company': 'ACIUM',\n 'email': 'stefaniemarsh@acium.com',\n 'phone': '+1 (857) 535-2066',\n 'address': '163 Poplar Avenue, Cliffside, Virginia, 4592',\n 'bd': '2015-02-08T04:28:44-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7f79f4250b96a355a',\n 'index': 1,\n 'guid': '3f04aa40-62da-466d-ac14-2b8a5da3d1ce',\n 'isActive': true,\n 'balance': 3043.81,\n 'age': 39,\n 'name': 'Elena Bennett',\n 'gender': 'female',\n 'company': 'FIBRODYNE',\n 'email': 'elenabennett@fibrodyne.com',\n 'phone': '+1 (994) 570-2070',\n 'address': '526 Grace Court, Cherokee, Oregon, 7017',\n 'bd': '2017-11-15T09:04:57-06:00',\n 'imgUrl': \"/assets/images/faces/2.jpg\"\n },\n {\n 'id': '5a7b73f78b64a02a67204d6e',\n 'index': 2,\n 'guid': 'e7d9d61e-b657-4fcf-b069-2eb9bfdc44fa',\n 'isActive': true,\n 'balance': 1796.92,\n 'age': 23,\n 'name': 'Joni Cabrera',\n 'gender': 'female',\n 'company': 'POWERNET',\n 'email': 'jonicabrera@powernet.com',\n 'phone': '+1 (848) 410-2368',\n 'address': '554 Barlow Drive, Alamo, Michigan, 3686',\n 'bd': '2017-10-15T12:55:51-06:00',\n 'imgUrl': \"/assets/images/faces/3.jpg\"\n },\n {\n 'id': '5a7b73f7572e59b231149b94',\n 'index': 3,\n 'guid': '47673d82-ab31-48a1-8a16-2c6701573c67',\n 'isActive': false,\n 'balance': 2850.27,\n 'age': 37,\n 'name': 'Gallagher Shaw',\n 'gender': 'male',\n 'company': 'ZILLAR',\n 'email': 'gallaghershaw@zillar.com',\n 'phone': '+1 (896) 422-3786',\n 'address': '111 Argyle Road, Graball, Idaho, 7272',\n 'bd': '2017-11-19T03:38:30-06:00',\n 'imgUrl': \"/assets/images/faces/4.jpg\"\n },\n {\n 'id': '5a7b73f70f9d074552e13090',\n 'index': 4,\n 'guid': 'bc9c7cd3-04e0-4095-a933-af28efaf3b3e',\n 'isActive': false,\n 'balance': 3743.48,\n 'age': 26,\n 'name': 'Blanchard Knapp',\n 'gender': 'male',\n 'company': 'ACRODANCE',\n 'email': 'blanchardknapp@acrodance.com',\n 'phone': '+1 (867) 542-2772',\n 'address': '707 Malta Street, Yukon, Wyoming, 6861',\n 'bd': '2014-05-28T01:33:58-06:00',\n 'imgUrl': \"/assets/images/faces/5.jpg\"\n },\n {\n 'id': '5a7b73f78988bd6e92650473',\n 'index': 5,\n 'guid': '08cb947c-e49c-4736-9687-0fca0992ec38',\n 'isActive': false,\n 'balance': 3453.79,\n 'age': 34,\n 'name': 'Parker Rivas',\n 'gender': 'male',\n 'company': 'SLAMBDA',\n 'email': 'parkerrivas@slambda.com',\n 'phone': '+1 (997) 413-2418',\n 'address': '543 Roosevelt Place, Tibbie, Minnesota, 6944',\n 'bd': '2015-01-05T09:55:23-06:00',\n 'imgUrl': \"/assets/images/faces/9.jpg\"\n },\n {\n 'id': '5a7b73f72488770f90649570',\n 'index': 6,\n 'guid': '771c85d5-7762-4bae-96fd-09892a9c4374',\n 'isActive': false,\n 'balance': 3334.73,\n 'age': 20,\n 'name': 'Alexandria Forbes',\n 'gender': 'female',\n 'company': 'EQUITOX',\n 'email': 'alexandriaforbes@equitox.com',\n 'phone': '+1 (869) 521-2533',\n 'address': '663 Minna Street, Omar, Alabama, 5265',\n 'bd': '2017-03-09T05:48:57-06:00',\n 'imgUrl': \"/assets/images/faces/12.jpg\"\n },\n {\n 'id': '5a7b73f7c576e368b321a705',\n 'index': 7,\n 'guid': '2455a7ef-a537-46e1-a210-75e5e2187460',\n 'isActive': false,\n 'balance': 3488.64,\n 'age': 37,\n 'name': 'Lessie Wise',\n 'gender': 'female',\n 'company': 'AFFLUEX',\n 'email': 'lessiewise@affluex.com',\n 'phone': '+1 (820) 404-2967',\n 'address': '752 Woodhull Street, Utting, Oklahoma, 2739',\n 'bd': '2014-10-21T03:09:34-06:00',\n 'imgUrl': \"/assets/images/faces/13.jpg\"\n },\n {\n 'id': '5a7b73f705f8a9c6e35c8ca2',\n 'index': 8,\n 'guid': 'a90d65a8-681d-462f-bf08-eceeef366375',\n 'isActive': true,\n 'balance': 3786.67,\n 'age': 36,\n 'name': 'Carrie Gates',\n 'gender': 'female',\n 'company': 'VIRVA',\n 'email': 'carriegates@virva.com',\n 'phone': '+1 (845) 463-3986',\n 'address': '561 Boulevard Court, Rote, Louisiana, 8458',\n 'bd': '2017-03-30T02:06:23-06:00',\n 'imgUrl': \"/assets/images/faces/15.jpg\"\n },\n {\n 'id': '5a7b73f7a3e2be2dbb7b093e',\n 'index': 9,\n 'guid': 'fb3d0f97-91ae-4336-b0b4-19f4a00fe567',\n 'isActive': false,\n 'balance': 3335.5,\n 'age': 33,\n 'name': 'Dalton Spears',\n 'gender': 'male',\n 'company': 'MIRACLIS',\n 'email': 'daltonspears@miraclis.com',\n 'phone': '+1 (919) 541-3528',\n 'address': '167 Lester Court, Glasgow, Arkansas, 6311',\n 'bd': '2017-04-01T01:41:12-06:00',\n 'imgUrl': \"/assets/images/faces/16.jpg\"\n },\n {\n 'id': '5a7b73f716de69a9217c1273',\n 'index': 10,\n 'guid': '129a92fd-848f-48eb-98a1-aebf6e92b079',\n 'isActive': false,\n 'balance': 3811.15,\n 'age': 30,\n 'name': 'Delia Merrill',\n 'gender': 'female',\n 'company': 'COMTEST',\n 'email': 'deliamerrill@comtest.com',\n 'phone': '+1 (879) 401-2304',\n 'address': '761 Polhemus Place, Kidder, Puerto Rico, 5901',\n 'bd': '2014-08-29T08:42:59-06:00',\n 'imgUrl': \"/assets/images/faces/17.jpg\"\n },\n {\n 'id': '5a7b73f7ed19007bed2d29fb',\n 'index': 11,\n 'guid': 'd799b69a-192d-4ee3-9a69-9e8e5afc45b0',\n 'isActive': false,\n 'balance': 3935.82,\n 'age': 28,\n 'name': 'Vance Aguilar',\n 'gender': 'male',\n 'company': 'CYCLONICA',\n 'email': 'vanceaguilar@cyclonica.com',\n 'phone': '+1 (972) 549-2681',\n 'address': '653 Billings Place, Gardners, Connecticut, 7805',\n 'bd': '2015-02-21T03:06:14-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f78d0dc0858a70c44a',\n 'index': 12,\n 'guid': '8cbb37bb-7644-4993-b48b-df3a69deb339',\n 'isActive': true,\n 'balance': 3868.95,\n 'age': 28,\n 'name': 'Adams Harper',\n 'gender': 'male',\n 'company': 'NORSUP',\n 'email': 'adamsharper@norsup.com',\n 'phone': '+1 (824) 494-3395',\n 'address': '571 Turner Place, Norris, Mississippi, 3829',\n 'bd': '2014-01-30T02:05:53-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7e929494a8568a885',\n 'index': 13,\n 'guid': '22ec32d7-0ba9-4366-b6d8-ca16389a2cd9',\n 'isActive': false,\n 'balance': 3954.41,\n 'age': 34,\n 'name': 'Bass Sexton',\n 'gender': 'male',\n 'company': 'CIRCUM',\n 'email': 'basssexton@circum.com',\n 'phone': '+1 (930) 476-3634',\n 'address': '563 Victor Road, Richmond, Kansas, 7742',\n 'bd': '2014-05-04T10:16:32-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f767e97ce3136444fd',\n 'index': 14,\n 'guid': '031d282f-0be9-49e1-a211-9aa59d449d91',\n 'isActive': false,\n 'balance': 3287.33,\n 'age': 24,\n 'name': 'Howard Velez',\n 'gender': 'male',\n 'company': 'ECOSYS',\n 'email': 'howardvelez@ecosys.com',\n 'phone': '+1 (920) 556-2885',\n 'address': '378 Grimes Road, Websterville, Marshall Islands, 3506',\n 'bd': '2015-12-19T08:17:58-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7fba076653cc18925',\n 'index': 15,\n 'guid': 'd76ab6d6-d1db-4286-8516-ce6c9db3972a',\n 'isActive': false,\n 'balance': 3279.98,\n 'age': 21,\n 'name': 'Lola Morton',\n 'gender': 'female',\n 'company': 'PROVIDCO',\n 'email': 'lolamorton@providco.com',\n 'phone': '+1 (963) 458-2788',\n 'address': '991 Ashland Place, Richville, New York, 3529',\n 'bd': '2016-11-29T07:58:24-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7c6d408bc853be87c',\n 'index': 16,\n 'guid': '30c2d1c7-770b-4adb-b6df-cc205d748323',\n 'isActive': false,\n 'balance': 3955.55,\n 'age': 37,\n 'name': 'Bishop Rutledge',\n 'gender': 'male',\n 'company': 'DAYCORE',\n 'email': 'bishoprutledge@daycore.com',\n 'phone': '+1 (886) 539-3156',\n 'address': '870 Vanderveer Place, Bridgetown, California, 7593',\n 'bd': '2014-11-10T04:47:00-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7abe6c78719d2f494',\n 'index': 17,\n 'guid': '2d8e77a1-4a88-4642-b6a8-693de296661c',\n 'isActive': true,\n 'balance': 1832.83,\n 'age': 23,\n 'name': 'Lea Reese',\n 'gender': 'female',\n 'company': 'GLUID',\n 'email': 'leareese@gluid.com',\n 'phone': '+1 (866) 413-2199',\n 'address': '811 Dunne Place, Vowinckel, Rhode Island, 8646',\n 'bd': '2014-03-16T04:30:06-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f72d64af126b8080be',\n 'index': 18,\n 'guid': 'e1e8ee63-6d08-48fc-a077-2265cee34f23',\n 'isActive': true,\n 'balance': 2419.18,\n 'age': 23,\n 'name': 'Knox Moses',\n 'gender': 'male',\n 'company': 'BRAINCLIP',\n 'email': 'knoxmoses@brainclip.com',\n 'phone': '+1 (982) 519-2486',\n 'address': '917 Turnbull Avenue, Shasta, Virgin Islands, 7016',\n 'bd': '2015-11-09T10:11:15-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f789b4e9086d34b255',\n 'index': 19,\n 'guid': '13552b7d-928c-4b92-a2ae-5ccbee807594',\n 'isActive': false,\n 'balance': 1220.91,\n 'age': 22,\n 'name': 'Marsha Jacobs',\n 'gender': 'female',\n 'company': 'COMSTAR',\n 'email': 'marshajacobs@comstar.com',\n 'phone': '+1 (858) 511-2546',\n 'address': '580 Hampton Avenue, Ilchester, New Hampshire, 2191',\n 'bd': '2016-02-11T01:34:23-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f737eea8e94089b7b4',\n 'index': 20,\n 'guid': 'cf577c87-b40c-4c09-9fac-d04c9a824b86',\n 'isActive': false,\n 'balance': 2446.07,\n 'age': 25,\n 'name': 'Bell Emerson',\n 'gender': 'male',\n 'company': 'MULTIFLEX',\n 'email': 'bellemerson@multiflex.com',\n 'phone': '+1 (806) 496-2473',\n 'address': '238 Oxford Walk, Monument, New Mexico, 1345',\n 'bd': '2016-10-07T01:07:21-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f76bc821dc6ee56ee2',\n 'index': 21,\n 'guid': 'b6c685c2-a497-4261-9217-622723d5235f',\n 'isActive': false,\n 'balance': 3694.63,\n 'age': 33,\n 'name': 'Cecelia Graham',\n 'gender': 'female',\n 'company': 'ZOXY',\n 'email': 'ceceliagraham@zoxy.com',\n 'phone': '+1 (933) 429-3129',\n 'address': '954 Lawton Street, Terlingua, New Jersey, 6723',\n 'bd': '2017-12-01T04:36:13-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f794c27c4048290cbf',\n 'index': 22,\n 'guid': '7e887403-8ff5-41b4-9902-bb63ff714fee',\n 'isActive': true,\n 'balance': 2804.02,\n 'age': 29,\n 'name': 'Anthony Pennington',\n 'gender': 'male',\n 'company': 'NAMEGEN',\n 'email': 'anthonypennington@namegen.com',\n 'phone': '+1 (860) 458-3988',\n 'address': '287 Auburn Place, Gardiner, Northern Mariana Islands, 7131',\n 'bd': '2018-02-04T11:06:51-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f720a5781f7d19597a',\n 'index': 23,\n 'guid': '9e108687-e1ca-4385-bdd5-62ab006f8aa3',\n 'isActive': true,\n 'balance': 1984.1,\n 'age': 36,\n 'name': 'Mayo Justice',\n 'gender': 'male',\n 'company': 'SLOFAST',\n 'email': 'mayojustice@slofast.com',\n 'phone': '+1 (854) 428-2270',\n 'address': '648 Melba Court, Dodge, Pennsylvania, 7596',\n 'bd': '2016-12-29T07:28:10-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7f0a4c5e6c9807fb2',\n 'index': 24,\n 'guid': '93b0b383-dd69-4453-be26-f13ae361ce67',\n 'isActive': true,\n 'balance': 1845.13,\n 'age': 22,\n 'name': 'Vaughn Salazar',\n 'gender': 'male',\n 'company': 'ZAGGLE',\n 'email': 'vaughnsalazar@zaggle.com',\n 'phone': '+1 (986) 415-3294',\n 'address': '382 Dewitt Avenue, Goodville, Palau, 711',\n 'bd': '2014-10-31T12:32:59-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7e6c45298c709371c',\n 'index': 25,\n 'guid': '5a059bbb-3f6d-47bc-ba2b-c13eeaaa93b4',\n 'isActive': false,\n 'balance': 3684.79,\n 'age': 31,\n 'name': 'Calhoun Bradshaw',\n 'gender': 'male',\n 'company': 'OVERPLEX',\n 'email': 'calhounbradshaw@overplex.com',\n 'phone': '+1 (964) 594-2363',\n 'address': '527 Seton Place, Wedgewood, Wisconsin, 8306',\n 'bd': '2016-05-27T10:46:17-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f79468759d25ecdcf4',\n 'index': 26,\n 'guid': '68d7f78e-5001-480b-a67d-72b370a5c2de',\n 'isActive': false,\n 'balance': 1831.14,\n 'age': 29,\n 'name': 'Dianne Bauer',\n 'gender': 'female',\n 'company': 'XUMONK',\n 'email': 'diannebauer@xumonk.com',\n 'phone': '+1 (866) 510-2479',\n 'address': '540 Moffat Street, Emison, South Carolina, 7329',\n 'bd': '2014-09-02T04:57:23-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7346b1bbab11524fa',\n 'index': 27,\n 'guid': '0729eef8-36c5-4aa2-8e31-f5e2ca19b94b',\n 'isActive': false,\n 'balance': 1719.77,\n 'age': 22,\n 'name': 'Hebert Bryan',\n 'gender': 'male',\n 'company': 'COMTRAIL',\n 'email': 'hebertbryan@comtrail.com',\n 'phone': '+1 (838) 579-3709',\n 'address': '669 Hausman Street, Gerber, Kentucky, 7779',\n 'bd': '2017-11-29T12:22:59-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f75116874002de08de',\n 'index': 28,\n 'guid': '63014b40-3f1e-40ff-b2f7-f55ef6a5a599',\n 'isActive': true,\n 'balance': 1973.27,\n 'age': 20,\n 'name': 'Cash Bean',\n 'gender': 'male',\n 'company': 'SUPREMIA',\n 'email': 'cashbean@supremia.com',\n 'phone': '+1 (846) 551-2291',\n 'address': '152 Garnet Street, Boling, Nevada, 4867',\n 'bd': '2014-01-06T10:18:37-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f739be4dc1f743993c',\n 'index': 29,\n 'guid': 'ae498760-b43b-4c9c-8575-820f419984f6',\n 'isActive': true,\n 'balance': 2118.14,\n 'age': 36,\n 'name': 'Candy Hopper',\n 'gender': 'female',\n 'company': 'ACCUFARM',\n 'email': 'candyhopper@accufarm.com',\n 'phone': '+1 (841) 425-2442',\n 'address': '695 Nassau Avenue, Nutrioso, Maryland, 2026',\n 'bd': '2016-01-03T02:15:56-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f70b86f2969d762be2',\n 'index': 30,\n 'guid': 'f19cb86e-ab4f-4d07-833a-4adb8a19d0af',\n 'isActive': false,\n 'balance': 3794.89,\n 'age': 37,\n 'name': 'Fisher Powell',\n 'gender': 'male',\n 'company': 'ENOMEN',\n 'email': 'fisherpowell@enomen.com',\n 'phone': '+1 (876) 562-2932',\n 'address': '616 Tapscott Avenue, Crucible, Nebraska, 4900',\n 'bd': '2018-01-31T05:15:13-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7394648a68c2a6ae3',\n 'index': 31,\n 'guid': 'a88e5389-0b07-4d19-ac6c-718ce9e0de55',\n 'isActive': false,\n 'balance': 3343.45,\n 'age': 38,\n 'name': 'Rosemary Sloan',\n 'gender': 'female',\n 'company': 'PHORMULA',\n 'email': 'rosemarysloan@phormula.com',\n 'phone': '+1 (924) 517-3289',\n 'address': '687 Navy Walk, Edmund, Delaware, 1419',\n 'bd': '2018-01-23T11:32:25-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f77ad97f4e1c2fa65a',\n 'index': 32,\n 'guid': 'fb915568-2875-49b3-96d7-6b54b2b186a1',\n 'isActive': true,\n 'balance': 2680.62,\n 'age': 30,\n 'name': 'Elba Glover',\n 'gender': 'female',\n 'company': 'APPLICA',\n 'email': 'elbaglover@applica.com',\n 'phone': '+1 (857) 495-3565',\n 'address': '279 Bridgewater Street, Edneyville, Utah, 9246',\n 'bd': '2015-10-03T12:24:56-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f72598106a97fbf7d5',\n 'index': 33,\n 'guid': 'fac3cd4b-2d42-4b4f-9d6f-0bac689bd47b',\n 'isActive': false,\n 'balance': 3286.46,\n 'age': 37,\n 'name': 'Mildred Short',\n 'gender': 'female',\n 'company': 'NIXELT',\n 'email': 'mildredshort@nixelt.com',\n 'phone': '+1 (980) 530-3588',\n 'address': '434 Elm Place, Coloma, West Virginia, 1990',\n 'bd': '2016-03-22T10:13:26-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7b88290b05f53faa1',\n 'index': 34,\n 'guid': 'b1c6a3a3-00bd-4bc6-87df-69eecd909ab5',\n 'isActive': false,\n 'balance': 1484.16,\n 'age': 24,\n 'name': 'Karin Schultz',\n 'gender': 'female',\n 'company': 'PLASMOS',\n 'email': 'karinschultz@plasmos.com',\n 'phone': '+1 (904) 544-2796',\n 'address': '380 Rockaway Avenue, Faxon, American Samoa, 5776',\n 'bd': '2016-03-27T09:30:36-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7d2f7429d0caec5fe',\n 'index': 35,\n 'guid': '62c961ac-49b1-4a69-b4bf-13a396ec4fd9',\n 'isActive': false,\n 'balance': 3450.17,\n 'age': 23,\n 'name': 'Addie Rose',\n 'gender': 'female',\n 'company': 'XYQAG',\n 'email': 'addierose@xyqag.com',\n 'phone': '+1 (838) 549-3147',\n 'address': '999 Coleridge Street, Golconda, Vermont, 9575',\n 'bd': '2016-10-01T06:50:42-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f78a4c54ff8334e053',\n 'index': 36,\n 'guid': '4f2f7ae5-0bd1-4665-b97f-c556e5162349',\n 'isActive': false,\n 'balance': 1797.89,\n 'age': 23,\n 'name': 'Janie Ellison',\n 'gender': 'female',\n 'company': 'SPLINX',\n 'email': 'janieellison@splinx.com',\n 'phone': '+1 (947) 460-2254',\n 'address': '114 Landis Court, Genoa, Indiana, 5198',\n 'bd': '2017-07-28T12:45:44-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7c87f7e86fcb00055',\n 'index': 37,\n 'guid': 'b7236378-8129-44b5-bcc6-0369290ffad6',\n 'isActive': false,\n 'balance': 3776.51,\n 'age': 38,\n 'name': 'Elisabeth Campbell',\n 'gender': 'female',\n 'company': 'GOKO',\n 'email': 'elisabethcampbell@goko.com',\n 'phone': '+1 (849) 430-3377',\n 'address': '832 Kermit Place, Lutsen, Georgia, 9145',\n 'bd': '2015-04-26T06:40:08-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f712f9208f145fa6ea',\n 'index': 38,\n 'guid': '5c955e3a-5f3a-4ead-96ee-80a5de6dc479',\n 'isActive': true,\n 'balance': 3794.93,\n 'age': 27,\n 'name': 'Noble Holland',\n 'gender': 'male',\n 'company': 'NUTRALAB',\n 'email': 'nobleholland@nutralab.com',\n 'phone': '+1 (888) 573-3730',\n 'address': '408 Roosevelt Court, Hiwasse, North Dakota, 281',\n 'bd': '2014-03-25T12:24:34-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7aa1f371de59df90b',\n 'index': 39,\n 'guid': '94698a81-61a6-4e23-a952-76a50fba71ef',\n 'isActive': true,\n 'balance': 2205.55,\n 'age': 35,\n 'name': 'Laverne Brock',\n 'gender': 'female',\n 'company': 'ICOLOGY',\n 'email': 'lavernebrock@icology.com',\n 'phone': '+1 (821) 600-3174',\n 'address': '391 Conover Street, Cassel, Tennessee, 6566',\n 'bd': '2016-01-27T09:40:41-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7c45c697931199945',\n 'index': 40,\n 'guid': 'a05a215f-be1c-49d1-89ca-c821b118f923',\n 'isActive': true,\n 'balance': 2397.12,\n 'age': 29,\n 'name': 'Irene Frost',\n 'gender': 'female',\n 'company': 'RODEMCO',\n 'email': 'irenefrost@rodemco.com',\n 'phone': '+1 (918) 539-2612',\n 'address': '401 Moore Place, Groton, Arizona, 3415',\n 'bd': '2017-09-14T09:46:55-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7ef55416e92ebc818',\n 'index': 41,\n 'guid': '1ae8ceac-e8d0-4417-9f6f-04cd4e4738ad',\n 'isActive': false,\n 'balance': 3335.51,\n 'age': 35,\n 'name': 'Beard Hendricks',\n 'gender': 'male',\n 'company': 'QUONK',\n 'email': 'beardhendricks@quonk.com',\n 'phone': '+1 (847) 521-3952',\n 'address': '576 Bayard Street, Chloride, Federated States Of Micronesia, 8070',\n 'bd': '2016-11-01T12:47:26-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7cbeecfe6febd672d',\n 'index': 42,\n 'guid': 'afdf3298-77bd-46b3-ae8d-232f815c5f01',\n 'isActive': false,\n 'balance': 2205.01,\n 'age': 37,\n 'name': 'Nelson Shields',\n 'gender': 'male',\n 'company': 'ARTWORLDS',\n 'email': 'nelsonshields@artworlds.com',\n 'phone': '+1 (956) 534-3050',\n 'address': '581 Maple Street, Needmore, Colorado, 2062',\n 'bd': '2014-07-21T08:22:01-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f71803de25c5f754ad',\n 'index': 43,\n 'guid': '5b872cad-4388-496b-8ede-5f86990dec00',\n 'isActive': true,\n 'balance': 1001.05,\n 'age': 21,\n 'name': 'Luella Duffy',\n 'gender': 'female',\n 'company': 'KROG',\n 'email': 'luelladuffy@krog.com',\n 'phone': '+1 (973) 451-2222',\n 'address': '349 Bryant Street, Tioga, South Dakota, 6493',\n 'bd': '2016-04-27T02:46:46-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f77f2a05eacb331c74',\n 'index': 44,\n 'guid': '7d6b7650-10d7-435d-87ca-33a1fe12cd57',\n 'isActive': false,\n 'balance': 1926.79,\n 'age': 27,\n 'name': 'Rosa Guthrie',\n 'gender': 'female',\n 'company': 'COMTOURS',\n 'email': 'rosaguthrie@comtours.com',\n 'phone': '+1 (814) 528-2701',\n 'address': '719 Kathleen Court, Morriston, Guam, 4011',\n 'bd': '2015-07-02T08:22:18-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7727afbb0fc15653b',\n 'index': 45,\n 'guid': 'ebbc985b-227e-4954-a8a6-588b2a2bff22',\n 'isActive': false,\n 'balance': 2464.9,\n 'age': 29,\n 'name': 'Dillard Carlson',\n 'gender': 'male',\n 'company': 'COMCUR',\n 'email': 'dillardcarlson@comcur.com',\n 'phone': '+1 (847) 469-3741',\n 'address': '918 Oceanic Avenue, Cochranville, Missouri, 1018',\n 'bd': '2016-06-11T11:31:54-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f71dd7612e967e01ae',\n 'index': 46,\n 'guid': '63a2ee7f-2141-4ec5-b1e2-fcdcd62f28ed',\n 'isActive': false,\n 'balance': 3917.74,\n 'age': 25,\n 'name': 'Faye Walls',\n 'gender': 'female',\n 'company': 'EMERGENT',\n 'email': 'fayewalls@emergent.com',\n 'phone': '+1 (964) 527-3791',\n 'address': '947 Judge Street, Nescatunga, Maine, 4928',\n 'bd': '2014-06-23T12:46:21-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7b33c73c425db7ee0',\n 'index': 47,\n 'guid': '61d40a89-af0c-40ca-8970-c54978134e6b',\n 'isActive': true,\n 'balance': 2213.18,\n 'age': 32,\n 'name': 'Norma Hooper',\n 'gender': 'female',\n 'company': 'PARCOE',\n 'email': 'normahooper@parcoe.com',\n 'phone': '+1 (827) 503-2742',\n 'address': '470 Fenimore Street, Hatteras, Texas, 1582',\n 'bd': '2015-01-15T12:22:00-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7c30aa4064670cf21',\n 'index': 48,\n 'guid': '969d77af-b251-4924-82cf-7c787752161d',\n 'isActive': false,\n 'balance': 3673.94,\n 'age': 23,\n 'name': 'Lee Wiggins',\n 'gender': 'female',\n 'company': 'NITRACYR',\n 'email': 'leewiggins@nitracyr.com',\n 'phone': '+1 (941) 478-3536',\n 'address': '958 Flatbush Avenue, Clara, North Carolina, 970',\n 'bd': '2018-01-09T11:09:34-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7ecd5a4859f2d94dc',\n 'index': 49,\n 'guid': 'cdf9b8de-a309-4cb7-80bb-f1b830b8b640',\n 'isActive': true,\n 'balance': 2166.21,\n 'age': 27,\n 'name': 'Alvarez Lynch',\n 'gender': 'male',\n 'company': 'KIGGLE',\n 'email': 'alvarezlynch@kiggle.com',\n 'phone': '+1 (929) 528-3805',\n 'address': '901 Stratford Road, Derwood, Iowa, 1402',\n 'bd': '2015-01-08T04:28:57-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7216c8cabc849eea7',\n 'index': 50,\n 'guid': 'c4175d6a-1560-468e-b682-701c1549b6b1',\n 'isActive': false,\n 'balance': 3479.39,\n 'age': 39,\n 'name': 'Oneal Rosario',\n 'gender': 'male',\n 'company': 'UBERLUX',\n 'email': 'onealrosario@uberlux.com',\n 'phone': '+1 (951) 572-3027',\n 'address': '267 Rockaway Parkway, Chapin, Montana, 7813',\n 'bd': '2014-02-10T05:08:13-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f78841719bf955b2d9',\n 'index': 51,\n 'guid': '966c9ce6-9151-47cb-8c71-98c4cd0d2f40',\n 'isActive': false,\n 'balance': 1625.49,\n 'age': 36,\n 'name': 'Olsen Stevens',\n 'gender': 'male',\n 'company': 'EMPIRICA',\n 'email': 'olsenstevens@empirica.com',\n 'phone': '+1 (871) 403-3377',\n 'address': '704 Lamont Court, Saranap, Massachusetts, 3171',\n 'bd': '2014-09-17T05:13:13-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7b7b8e578dff0f85c',\n 'index': 52,\n 'guid': '8269a34f-3a02-47d6-bcb1-8f076bb478f0',\n 'isActive': true,\n 'balance': 1143.73,\n 'age': 27,\n 'name': 'Marian Henson',\n 'gender': 'female',\n 'company': 'ENDIPINE',\n 'email': 'marianhenson@endipine.com',\n 'phone': '+1 (995) 406-2592',\n 'address': '803 Ellery Street, Boykin, Alaska, 8624',\n 'bd': '2016-08-28T01:22:51-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f737459ec79c91ca75',\n 'index': 53,\n 'guid': 'badb9342-10fd-4520-ae66-c246e47add8f',\n 'isActive': false,\n 'balance': 1458.01,\n 'age': 23,\n 'name': 'Dudley Dickson',\n 'gender': 'male',\n 'company': 'POLARIA',\n 'email': 'dudleydickson@polaria.com',\n 'phone': '+1 (860) 428-3250',\n 'address': '833 Revere Place, Rockbridge, Illinois, 4628',\n 'bd': '2017-01-19T12:36:59-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f70ddc6fc11ebf043a',\n 'index': 54,\n 'guid': '52b1be89-8186-4685-81b7-203c17ed9f89',\n 'isActive': true,\n 'balance': 2815.76,\n 'age': 25,\n 'name': 'Earnestine Oneil',\n 'gender': 'female',\n 'company': 'CYTREK',\n 'email': 'earnestineoneil@cytrek.com',\n 'phone': '+1 (879) 541-3490',\n 'address': '442 Emerald Street, Graniteville, Hawaii, 1302',\n 'bd': '2017-07-07T10:34:33-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f78b816185ccd2b4b3',\n 'index': 55,\n 'guid': 'e66850ea-546b-4eb5-ae76-d66b0e727f44',\n 'isActive': true,\n 'balance': 3645.09,\n 'age': 21,\n 'name': 'Nicholson Mason',\n 'gender': 'male',\n 'company': 'TELEQUIET',\n 'email': 'nicholsonmason@telequiet.com',\n 'phone': '+1 (861) 528-3215',\n 'address': '261 Aitken Place, Cecilia, Ohio, 1381',\n 'bd': '2016-03-20T08:31:34-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f780f8bf8fbe24d75c',\n 'index': 56,\n 'guid': '40b999cd-00bf-46e0-9107-b44906d832e0',\n 'isActive': false,\n 'balance': 2477.66,\n 'age': 36,\n 'name': 'Linda Shaffer',\n 'gender': 'female',\n 'company': 'ZORK',\n 'email': 'lindashaffer@zork.com',\n 'phone': '+1 (828) 524-3011',\n 'address': '350 Plymouth Street, Waterford, Washington, 6715',\n 'bd': '2017-07-09T05:51:11-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f741e22fc19ffa6952',\n 'index': 57,\n 'guid': 'cc2ac19d-7d67-4f60-973a-369160a9c377',\n 'isActive': false,\n 'balance': 2651.39,\n 'age': 20,\n 'name': 'Montoya Riggs',\n 'gender': 'male',\n 'company': 'MARKETOID',\n 'email': 'montoyariggs@marketoid.com',\n 'phone': '+1 (809) 562-3786',\n 'address': '633 Monitor Street, Chicopee, District Of Columbia, 550',\n 'bd': '2016-02-05T12:36:05-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7de56ead40c26e69a',\n 'index': 58,\n 'guid': '6e0b06b8-1199-498c-8002-41f4972aa2d2',\n 'isActive': false,\n 'balance': 3463.92,\n 'age': 28,\n 'name': 'Walker Duran',\n 'gender': 'male',\n 'company': 'GEOFORM',\n 'email': 'walkerduran@geoform.com',\n 'phone': '+1 (868) 502-2553',\n 'address': '550 Kensington Walk, Wyano, Virginia, 7703',\n 'bd': '2017-08-18T12:39:37-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f70a04fe142269ea8d',\n 'index': 59,\n 'guid': 'c6733cd5-1e73-4317-b4bc-1a9e597581a4',\n 'isActive': true,\n 'balance': 3846.35,\n 'age': 26,\n 'name': 'Suzanne House',\n 'gender': 'female',\n 'company': 'SYBIXTEX',\n 'email': 'suzannehouse@sybixtex.com',\n 'phone': '+1 (892) 533-2739',\n 'address': '367 Harwood Place, Twilight, Oregon, 9799',\n 'bd': '2016-11-26T11:57:18-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7339943d94af3b39d',\n 'index': 60,\n 'guid': '4ff2c2aa-0573-4be1-a1c8-f684af8a5fbf',\n 'isActive': false,\n 'balance': 2717.94,\n 'age': 26,\n 'name': 'Lewis Oconnor',\n 'gender': 'male',\n 'company': 'EXOZENT',\n 'email': 'lewisoconnor@exozent.com',\n 'phone': '+1 (954) 582-2660',\n 'address': '717 Sutter Avenue, Bartley, Michigan, 1142',\n 'bd': '2017-08-21T08:25:00-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7d8e266ad1bc5daa8',\n 'index': 61,\n 'guid': '94667aad-86fc-4a2c-94fb-11b572307c75',\n 'isActive': false,\n 'balance': 2725.58,\n 'age': 39,\n 'name': 'Shelley Bonner',\n 'gender': 'female',\n 'company': 'INDEXIA',\n 'email': 'shelleybonner@indexia.com',\n 'phone': '+1 (965) 490-3768',\n 'address': '896 Clinton Avenue, Canoochee, Idaho, 1154',\n 'bd': '2016-04-11T06:08:29-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7e74a5af674e4cbdd',\n 'index': 62,\n 'guid': 'ec68c47e-7cbd-485e-8d54-fab1bb6ea008',\n 'isActive': true,\n 'balance': 1343.87,\n 'age': 29,\n 'name': 'Mccall Morales',\n 'gender': 'male',\n 'company': 'QUILITY',\n 'email': 'mccallmorales@quility.com',\n 'phone': '+1 (939) 455-2610',\n 'address': '325 Crystal Street, Harleigh, Wyoming, 5658',\n 'bd': '2014-11-20T07:30:04-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7efb231e53a0c94cd',\n 'index': 63,\n 'guid': '6a8b3f55-406c-4ae8-be59-94a0f8fbd180',\n 'isActive': false,\n 'balance': 1092.69,\n 'age': 37,\n 'name': 'Vera Mcpherson',\n 'gender': 'female',\n 'company': 'CIPROMOX',\n 'email': 'veramcpherson@cipromox.com',\n 'phone': '+1 (890) 500-3729',\n 'address': '771 Beard Street, Rivera, Minnesota, 4726',\n 'bd': '2017-07-13T02:47:50-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7e345c5dfc5d636e4',\n 'index': 64,\n 'guid': '46879caf-76e6-46e0-9b8b-bc17667a81ea',\n 'isActive': true,\n 'balance': 2077.12,\n 'age': 36,\n 'name': 'Gregory Roth',\n 'gender': 'male',\n 'company': 'EARWAX',\n 'email': 'gregoryroth@earwax.com',\n 'phone': '+1 (806) 595-2477',\n 'address': '349 Dunham Place, Sardis, Alabama, 3320',\n 'bd': '2017-11-08T02:26:23-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f77f5f9d730fab11e0',\n 'index': 65,\n 'guid': '9cfb8f58-7acf-4a39-bf2b-c90269c33db0',\n 'isActive': true,\n 'balance': 3503.58,\n 'age': 31,\n 'name': 'Russell Carver',\n 'gender': 'male',\n 'company': 'PREMIANT',\n 'email': 'russellcarver@premiant.com',\n 'phone': '+1 (849) 521-2335',\n 'address': '851 Noble Street, Holcombe, Oklahoma, 311',\n 'bd': '2016-07-10T10:08:35-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7cab10f461153989c',\n 'index': 66,\n 'guid': '2562a818-4451-4193-94cd-650d131ff097',\n 'isActive': false,\n 'balance': 1652.9,\n 'age': 21,\n 'name': 'Darlene Hurley',\n 'gender': 'female',\n 'company': 'STELAECOR',\n 'email': 'darlenehurley@stelaecor.com',\n 'phone': '+1 (868) 492-2270',\n 'address': '627 Wilson Street, Loveland, Louisiana, 765',\n 'bd': '2017-05-20T12:39:31-06:00',\n 'imgUrl': \"/assets/images/faces/1.jpg\"\n },\n {\n 'id': '5a7b73f7ecccc997e4160a59',\n 'index': 67,\n 'guid': '0050170f-0283-481d-9633-dc9d134be121',\n 'isActive': true,\n 'balance': 3692.88,\n 'age': 21,\n 'name': 'Lela Bailey',\n 'gender': 'female',\n 'company': 'AQUOAVO',\n 'email': 'lelabailey@aquoavo.com',\n 'phone': '+1 (917) 449-2329',\n 'address': '121 Adams Street, Malo, Arkansas, 7435',\n 'bd': '2016-11-06T04:55:46-06:00'\n }\n ]\n}\n\n\n\nMock.onGet('/api/user/all').reply(config => {\n return [200, userDB.users]\n});\n\nMock.onGet('/api/user').reply((config) => {\n const id = config.data;\n const response = userDB.users.find((user) => user.id === id);\n return [200, response];\n});\n\nMock.onPost('/api/user/delete').reply(config => {\n let user = JSON.parse(config.data);\n let index = { i: 0 };\n userDB.users.forEach(element => {\n if (element.id === user.id) {\n return [200, userDB.users.splice(index.i, 1)]\n }\n index.i++\n });\n return [200, userDB.users]\n});\n\n\nMock.onPost('/api/user/update').reply((config) => {\n let user = JSON.parse(config.data);\n let index = { i: 0 };\n userDB.users.forEach(element => {\n if (element.id === user.id) {\n userDB.users[index.i] = user\n return [200, userDB.users]\n }\n index.i++\n });\n return [200, userDB.users]\n});\n\nMock.onPost('/api/user/add').reply((config) => {\n let user = JSON.parse(config.data);\n userDB.users.push(user)\n return [200, userDB.users]\n});","import Mock from \"../mock\";\nimport shortid from \"shortid\";\n\nconst inboxDB = {\n messages: [\n {\n id: shortid.generate(),\n sender: {\n name: \"Henrik Gevorg\",\n photo: \"/assets/images/faces/1.jpg\"\n },\n date: new Date(\"1/25/2018\"),\n selected: false,\n subject: \"Welcome to Angular Gull\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\n Thanks
\n Jhone`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Gevorg Spartak\",\n photo: \"/assets/images/faces/2.jpg\"\n },\n date: new Date(\"4/3/2017\"),\n selected: false,\n subject: \"Confirm your email address\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n

\n Thanks
\n Mark`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Petros Toros\",\n photo: \"/assets/images/faces/3.jpg\"\n },\n date: new Date(\"1/20/2017\"),\n selected: false,\n subject: \"New order informations\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\n Thanks
\n Jhone`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Henrik Gevorg\",\n photo: \"/assets/images/faces/1.jpg\"\n },\n date: new Date(\"1/8/2017\"),\n selected: false,\n subject: \"Welcome to Angular Gull\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\n Thanks
\n Jhone`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Gevorg Spartak\",\n photo: \"/assets/images/faces/2.jpg\"\n },\n date: new Date(\"10/3/2016\"),\n selected: false,\n subject: \"Confirm your email address\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n

\n Thanks
\n Mark`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Petros Toros\",\n photo: \"/assets/images/faces/4.jpg\"\n },\n date: new Date(\"10/3/2015\"),\n selected: false,\n subject: \"New order informations\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\n Thanks
\n Jhone`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Henrik Gevorg\",\n photo: \"/assets/images/faces/1.jpg\"\n },\n date: new Date(\"10/3/2015\"),\n selected: false,\n subject: \"Welcome to Angular Gull\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\n Thanks
\n Jhone`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Gevorg Spartak\",\n photo: \"/assets/images/faces/2.jpg\"\n },\n date: new Date(\"10/3/2015\"),\n selected: false,\n subject: \"Confirm your email address\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n

\n Thanks
\n Mark`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Petros Toros\",\n photo: \"/assets/images/faces/4.jpg\"\n },\n date: new Date(\"10/3/2015\"),\n selected: false,\n subject: \"New order informations\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\n Thanks
\n Jhone`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Gevorg Spartak\",\n photo: \"/assets/images/faces/2.jpg\"\n },\n date: new Date(\"10/3/2015\"),\n selected: false,\n subject: \"Confirm your email address\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n

\n Thanks
\n Mark`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Petros Toros\",\n photo: \"/assets/images/faces/4.jpg\"\n },\n date: new Date(\"10/3/2015\"),\n selected: false,\n subject: \"New order informations\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\n Thanks
\n Jhone`\n },\n {\n id: shortid.generate(),\n sender: {\n name: \"Gevorg Spartak\",\n photo: \"/assets/images/faces/2.jpg\"\n },\n date: new Date(\"10/3/2012\"),\n selected: false,\n subject: \"Confirm your email address\",\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n
\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\n
\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \n temporibus vero possimus error voluptates sequi.\n

\n Thanks
\n Mark`\n }\n ]\n};\n\nMock.onGet(\"/api/inbox/all\").reply(config => {\n return [200, inboxDB.messages];\n});\n\nMock.onGet(\"/api/inbox\").reply(config => {\n const id = config.data;\n const response = inboxDB.messages.find(message => message.id === id);\n return [200, response];\n});\n\nMock.onPost(\"/api/inbox/delete\").reply(config => {\n let message = JSON.parse(config.data);\n let index = { i: 0 };\n inboxDB.messages.forEach(element => {\n if (element.id === message.id) {\n return [200, inboxDB.messages.splice(index.i, 1)];\n }\n index.i++;\n });\n return [200, inboxDB.messages];\n});\n\nMock.onPost(\"/api/inbox/update\").reply(config => {\n let message = JSON.parse(config.data);\n let index = { i: 0 };\n inboxDB.messages.forEach(element => {\n if (element.id === message.id) {\n inboxDB.messages[index.i] = message;\n return [200, inboxDB.messages];\n }\n index.i++;\n });\n return [200, inboxDB.messages];\n});\n\nMock.onPost(\"/api/inbox/add\").reply(config => {\n let message = JSON.parse(config.data);\n inboxDB.messages.push(message);\n return [200, inboxDB.messages];\n});\n","import Mock from \"../mock\";\nimport shortId from \"shortid\";\nimport * as _ from \"lodash\";\n\nconst ChatDB = {\n user: [\n {\n id: \"7863a6802ez0e277a0f98534\",\n name: \"John Doe\",\n avatar: \"assets/images/faces/1.jpg\",\n status: \"online\",\n chatInfo: [\n {\n chatId: \"89564a680b3249760ea21fe77\",\n contactId: \"323sa680b3249760ea21rt47\",\n unread: 4,\n lastChatTime: \"2017-06-12T02:10:18.931Z\"\n },\n {\n chatId: \"3289564a680b2134760ea21fe7753\",\n contactId: \"14663a3406eb47ffa63d4fec9429cb71\",\n unread: 0,\n lastChatTime: \"2019-03-10T02:10:18.931Z\"\n }\n ]\n }\n ],\n\n contacts: [\n {\n id: \"323sa680b3249760ea21rt47\",\n name: \"Frank Powell\",\n avatar: \"assets/images/faces/13.jpg\",\n status: \"online\",\n mood: \"\"\n },\n {\n id: \"7863a6802ez0e277a0f98534\",\n name: \"John Doe\",\n avatar: \"assets/images/faces/1.jpg\",\n status: \"online\",\n mood: \"\"\n },\n {\n id: \"14663a3406eb47ffa63d4fec9429cb71\",\n name: \"Betty Diaz\",\n avatar: \"assets/images/faces/12.jpg\",\n status: \"online\",\n mood: \"\"\n },\n {\n id: \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n name: \"Brian Stephens\",\n avatar: \"assets/images/faces/3.jpg\",\n status: \"online\",\n mood: \"\"\n },\n {\n id: \"3fc8e01f3ce649d1caf884fbf4f698e4\",\n name: \"Jacqueline Day\",\n avatar: \"assets/images/faces/16.jpg\",\n status: \"offline\",\n mood: \"\"\n },\n {\n id: \"e929b1d790ab49968ed8e34648553df4\",\n name: \"Arthur Mendoza\",\n avatar: \"assets/images/faces/10.jpg\",\n status: \"online\",\n mood: \"\"\n },\n {\n id: \"d6caf04bba614632b5fecf91aebf4564\",\n name: \"Jeremy Lee\",\n avatar: \"assets/images/faces/9.jpg\",\n status: \"offline\",\n mood: \"\"\n },\n {\n id: \"be0fb188c8e242f097fafa24632107e4\",\n name: \"Johnny Newman\",\n avatar: \"assets/images/faces/5.jpg\",\n status: \"offline\",\n mood: \"\"\n },\n {\n id: \"dea902191b964a68ba5f2d93cff37e13\",\n name: \"Jeffrey Little\",\n avatar: \"assets/images/faces/15.jpg\",\n status: \"online\",\n mood: \"\"\n },\n {\n id: \"0bf58f5ccc4543a9f8747350b7bda3c7\",\n name: \"Barbara Romero\",\n avatar: \"assets/images/faces/4.jpg\",\n status: \"offline\",\n mood: \"\"\n },\n {\n id: \"c5d7498bbcb84d81fc72168871ac6a6e\",\n name: \"Daniel James\",\n avatar: \"assets/images/faces/2.jpg\",\n status: \"offline\",\n mood: \"\"\n },\n {\n id: \"97bfbdd9413e46efdaca2010400fe18c\",\n name: \"Alice Sanders\",\n avatar: \"assets/images/faces/17.jpg\",\n status: \"offline\",\n mood: \"\"\n }\n ],\n\n chatCollection: [\n {\n id: \"89564a680b3249760ea21fe77\",\n chats: [\n {\n contactId: \"323sa680b3249760ea21rt47\",\n text: \"Do you ever find yourself falling into the “discount trap?”\",\n time: \"2018-02-10T08:45:28.291Z\"\n },\n {\n contactId: \"7863a6802ez0e277a0f98534\",\n text: \"Giving away your knowledge or product just to gain clients?\",\n time: \"2018-02-10T08:45:28.291Z\"\n },\n {\n contactId: \"323sa680b3249760ea21rt47\",\n text: \"Yes\",\n time: \"2018-02-10T08:45:28.291Z\"\n },\n {\n contactId: \"7863a6802ez0e277a0f98534\",\n text: \"Don’t feel bad. It happens to a lot of us\",\n time: \"2018-02-10T08:45:28.291Z\"\n },\n {\n contactId: \"323sa680b3249760ea21rt47\",\n text: \"Do you ever find yourself falling into the “discount trap?”\",\n time: \"2018-02-10T08:45:28.291Z\"\n },\n {\n contactId: \"7863a6802ez0e277a0f98534\",\n text: \"Giving away your knowledge or product just to gain clients?\",\n time: \"2018-02-10T08:45:28.291Z\"\n },\n {\n contactId: \"323sa680b3249760ea21rt47\",\n text: \"Yes\",\n time: \"2018-02-10T08:45:28.291Z\"\n },\n {\n contactId: \"7863a6802ez0e277a0f98534\",\n text: \"Don’t feel bad. It happens to a lot of us\",\n time: \"2018-02-10T08:45:28.291Z\"\n }\n ]\n },\n {\n id: \"3289564a680b2134760ea21fe7753\",\n chats: [\n {\n contactId: \"14663a3406eb47ffa63d4fec9429cb71\",\n text: \"Do you ever find yourself falling into the “discount trap?”\",\n time: \"2019-03-10T08:45:28.291Z\"\n },\n {\n contactId: \"7863a6802ez0e277a0f98534\",\n text: \"Giving away your knowledge or product just to gain clients?\",\n time: \"2019-03-10T08:45:28.291Z\"\n },\n {\n contactId: \"14663a3406eb47ffa63d4fec9429cb71\",\n text: \"Yes\",\n time: \"2019-03-10T08:45:28.291Z\"\n },\n {\n contactId: \"7863a6802ez0e277a0f98534\",\n text: \"Don’t feel bad. It happens to a lot of us\",\n time: \"2019-03-10T08:45:28.291Z\"\n }\n ]\n }\n ]\n};\n\nMock.onGet(\"/api/chat\").reply(config => {\n const id = config.data;\n const chats = ChatDB.chatCollection.find(collection => collection.id === id)\n .chats;\n const response = chats.map(chat => {\n let temp = ChatDB.contacts.find(user => user.id === chat.contactId);\n return { ...chat, ...temp };\n });\n return [200, response];\n});\n\nMock.onGet(\"/api/chat/chat-room\").reply(config => {\n const { currentUser, contactId } = JSON.parse(config.data);\n\n const chatUser = ChatDB.user.find(user => user.id === currentUser);\n const chatRoom = chatUser.chatInfo.find(chat => chat.contactId === contactId);\n\n if (chatRoom) {\n const chats = ChatDB.chatCollection.find(\n collection => collection.id === chatRoom.chatId\n ).chats;\n const messageList = chats.map(chat => {\n let temp = ChatDB.contacts.find(user => user.id === chat.contactId);\n return { ...chat, ...temp };\n });\n const response = {\n chatId: chatRoom.chatId,\n messageList,\n recentListUpdated: false\n };\n return [200, response];\n } else {\n let chatId = shortId.generate();\n ChatDB.user.map(user => {\n if (currentUser === user.id) {\n user.chatInfo.push({\n chatId,\n contactId,\n lastChatTime: Date.now(),\n unread: 0\n });\n }\n });\n ChatDB.chatCollection.push({\n id: chatId,\n chats: []\n });\n\n const response = {\n chatId,\n messageList: [],\n recentListUpdated: true\n };\n\n return [200, response];\n }\n});\n\nMock.onGet(\"/api/chat/contacts/recent\").reply(config => {\n let temp = { contact: \"\" };\n const id = config.data;\n const contacts = ChatDB.user.find(user => user.id === id).chatInfo;\n const response = contacts.map(contact => {\n temp.contact = ChatDB.contacts.find(user => user.id === contact.contactId);\n return { ...temp.contact, ...contact };\n });\n return [200, response];\n});\n\nMock.onGet(\"/api/chat/contacts/all\").reply(config => {\n const id = config.data;\n const response = ChatDB.contacts.filter(contact => contact.id !== id);\n return [200, response];\n});\n\nMock.onGet(\"/api/chat/contacts\").reply(config => {\n const id = config.data;\n const response = ChatDB.contacts.find(contact => contact.id === id);\n return [200, response];\n});\n\nMock.onPost(\"/api/chat/add\").reply(config => {\n let chatDetails = JSON.parse(config.data);\n let { chatId } = chatDetails;\n ChatDB.chatCollection.map(chatRoom => {\n if (chatId === chatRoom.id) {\n delete chatDetails.chatId;\n chatRoom.chats.push({ ...chatDetails });\n }\n });\n let chats = ChatDB.chatCollection.find(chatRoom => chatRoom.id === chatId)\n .chats;\n\n let response = chats.map(chat => {\n let temp = ChatDB.contacts.find(user => user.id === chat.contactId);\n return { ...chat, ...temp };\n });\n return [200, response];\n});\n","import Mock from \"../mock\";\nimport * as _ from \"lodash\";\nimport shortid from \"shortid\";\n\nconst TodoDB = {\n todo: [\n {\n id: 1,\n title: \"API problem\",\n note: \"API is malfunctioning. kindly fix it\",\n important: true,\n starred: true,\n done: false,\n read: false,\n selected: false,\n startDate: new Date(),\n dueDate: new Date(),\n\n tag: [1, 2]\n },\n {\n id: 2,\n title: \"Mobile problem\",\n note: \"Mobile is malfunctioning. fix it\",\n important: false,\n starred: false,\n done: true,\n read: true,\n selected: false,\n startDate: new Date(),\n dueDate: new Date(),\n\n tag: [2]\n },\n {\n id: 3,\n title: \"API problem\",\n note: \"API is malfunctioning. fix it\",\n important: false,\n starred: false,\n done: true,\n read: false,\n selected: false,\n startDate: new Date(),\n dueDate: new Date(),\n\n tag: [1]\n },\n {\n id: 4,\n title: \"API problem\",\n note: \"API is malfunctioning. fix it\",\n important: false,\n starred: false,\n done: false,\n read: true,\n selected: false,\n startDate: new Date(),\n dueDate: new Date(),\n\n tag: [1, 2, 3]\n },\n {\n id: 5,\n title: \"API problem\",\n note: \"API is malfunctioning. fix it\",\n important: false,\n starred: false,\n done: true,\n read: false,\n selected: false,\n startDate: new Date(),\n dueDate: new Date(),\n\n tag: [1]\n }\n ],\n\n tag: [\n {\n id: 1,\n name: \"frontend\"\n },\n {\n id: 2,\n name: \"backend\"\n },\n {\n id: 3,\n name: \"API\"\n },\n {\n id: 4,\n name: \"issue\"\n },\n {\n id: 5,\n name: \"mobile\"\n }\n ]\n};\n\nMock.onGet(\"/api/todo/all\").reply(config => {\n const response = TodoDB.todo;\n return [200, response];\n});\n\nMock.onGet(\"/api/todo/tag\").reply(config => {\n const response = TodoDB.tag;\n return [200, response];\n});\n\nMock.onGet(\"/api/todo\").reply(config => {\n const id = config.data;\n\n const response = TodoDB.todo.find(todo => todo.id === id);\n return [200, response];\n});\n\nMock.onPost(\"/api/todo/reorder\").reply(config => {\n let { todoList } = JSON.parse(config.data);\n\n TodoDB.todo = [...todoList];\n let response = TodoDB.todo;\n return [200, response];\n});\n\nMock.onPost(\"/api/todo/add\").reply(config => {\n let { todo } = JSON.parse(config.data);\n TodoDB.todo.push({ ...todo, id: shortid.generate() });\n let response = TodoDB.todo;\n return [200, response];\n});\n\nMock.onPost(\"/api/todo/tag/add\").reply(config => {\n let { tag } = JSON.parse(config.data);\n TodoDB.tag.push({ ...tag });\n let response = TodoDB.tag;\n return [200, response];\n});\n\nMock.onPost(\"/api/todo/update\").reply(config => {\n let { todo } = JSON.parse(config.data);\n\n TodoDB.todo.map((t, index) => {\n if (t.id === todo.id) {\n TodoDB.todo[index] = { ...todo };\n }\n return \"dummy value\";\n });\n\n let response = TodoDB.todo;\n return [200, response];\n});\n\nMock.onPost(\"/api/todo/delete\").reply(config => {\n let { todo } = JSON.parse(config.data);\n _.remove(TodoDB.todo, t => t.id === todo.id);\n let response = TodoDB.todo;\n return [200, response];\n});\n\nMock.onPost(\"/api/todo/tag/delete\").reply(config => {\n let { tag } = JSON.parse(config.data);\n _.remove(TodoDB.tag, t => t.id === tag.id);\n let response = TodoDB.tag;\n return [200, response];\n});\n\n// Mock.onPost(\"/api/chat/create-chat-room\").reply(config => {\n// let data = JSON.parse(config.data);\n// let { id, chatId, ...rest } = data;\n// ChatDB.user.map(user => {\n// if (id === user.id) {\n// user.chatInfo.push({ chatId, ...rest });\n// }\n// });\n// ChatDB.chatCollection.push({\n// id: chatId,\n// chats: []\n// });\n\n// let temp;\n// let response = ChatDB.user\n// .find(user => user.id === id)\n// .chatInfo.map(contact => {\n// temp = ChatDB.contacts.find(user => user.id === contact.contactId);\n// return { ...temp, ...contact };\n// });\n// response = _.orderBy(response, [\"lastChatTime\"], [\"desc\"]);\n// console.log(response);\n\n// return [200, response];\n// });\n","import Mock from \"../mock\";\n\nconst ListDB = {\n list: [\n {\n id: 1,\n email: \"uilib@gmail.com\",\n userName: \"ui lib\",\n projectName: \"Gull development\",\n date: new Date().toLocaleString(),\n projectImage: \"/assets/images/products/headphone-2.jpg\",\n userImage: \"/assets/images/face-1.jpg\",\n comment: 0,\n revision: 5\n },\n {\n id: 2,\n email: \"uilib@gmail.com\",\n userName: \"ui lib\",\n projectName: \"Gull development\",\n date: new Date().toLocaleString(),\n projectImage: \"/assets/images/products/headphone-2.jpg\",\n userImage: \"/assets/images/face-1.jpg\",\n comment: 0,\n revision: 5\n },\n {\n id: 3,\n email: \"uilib@gmail.com\",\n userName: \"ui lib\",\n projectName: \"Gull development\",\n date: new Date().toLocaleString(),\n projectImage: \"/assets/images/products/headphone-3.jpg\",\n userImage: \"/assets/images/face-1.jpg\",\n comment: 0,\n revision: 5\n },\n {\n id: 5,\n email: \"uilib@gmail.com\",\n userName: \"ui lib\",\n projectName: \"Gull development\",\n date: new Date().toLocaleString(),\n projectImage: \"/assets/images/products/headphone-2.jpg\",\n userImage: \"/assets/images/face-1.jpg\",\n comment: 0,\n revision: 5\n },\n {\n id: 6,\n email: \"uilib@gmail.com\",\n userName: \"ui lib\",\n projectName: \"Evalynn development\",\n date: new Date().toLocaleString(),\n projectImage: \"/assets/images/products/iphone-1.jpg\",\n userImage: \"/assets/images/face-1.jpg\",\n comment: 0,\n revision: 5\n },\n {\n id: 7,\n email: \"uilib@gmail.com\",\n userName: \"ui lib\",\n projectName: \"Dexum development\",\n date: new Date().toLocaleString(),\n projectImage: \"/assets/images/products/headphone-2.jpg\",\n userImage: \"/assets/images/face-1.jpg\",\n comment: 0,\n revision: 5\n },\n {\n id: 8,\n email: \"uilib@gmail.com\",\n userName: \"ui lib\",\n projectName: \"Gull development\",\n date: new Date().toLocaleString(),\n projectImage: \"/assets/images/products/headphone-3.jpg\",\n userImage: \"/assets/images/face-1.jpg\",\n comment: 0,\n revision: 5\n },\n {\n id: 9,\n email: \"uilib@gmail.com\",\n userName: \"ui lib\",\n projectName: \"Gull development\",\n date: new Date().toLocaleString(),\n projectImage: \"/assets/images/products/headphone-3.jpg\",\n userImage: \"/assets/images/face-1.jpg\",\n comment: 0,\n revision: 5\n }\n ]\n};\n\nMock.onGet(\"/api/list/all\").reply(config => {\n const response = ListDB.list;\n return [200, response];\n});\n","import Mock from \"../mock\";\nimport * as _ from \"lodash\";\nimport shortId from \"shortid\";\n\n// board => list => cardList\n\nconst ScrumBoardDB = {\n boardList: [\n {\n id: \"c5d7498bbcb84d81fc7454448871ac6a6e\",\n title: \"Gull React\",\n list: [\n {\n id: shortId.generate(),\n title: \"Drag and Drop\",\n cardList: [\n {\n id: shortId.generate(),\n title: \"Beautiful DnD\",\n coverImage: \"/assets/images/sq-9.jpg\",\n members: [\n \"323sa680b3249760ea21rt47\",\n \"7863a6802ez0e277a0f98534\",\n \"14663a3406eb47ffa63d4fec9429cb71\",\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n \"e929b1d790ab49968ed8e34648553df4\"\n ],\n labels: [2, 3, 4],\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n attachments: [\n {\n name: \"sky-life.jpg\",\n size: \"1.2 MB\",\n url: \"/assets/images/sq-11.jpg\"\n }\n ],\n comments: [\n {\n id: shortId.generate(),\n uid: \"7863a6802ez0e277a0f98534\",\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n time: new Date()\n }\n ]\n },\n {\n id: shortId.generate(),\n title: \"Nested DnD\",\n coverImage: \"/assets/images/sq-11.jpg\",\n members: [\n \"323sa680b3249760ea21rt47\",\n \"7863a6802ez0e277a0f98534\",\n \"14663a3406eb47ffa63d4fec9429cb71\",\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n \"e929b1d790ab49968ed8e34648553df4\"\n ],\n labels: [2, 3, 4],\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n attachments: [\n {\n name: \"sky-life.jpg\",\n size: \"1.2 MB\",\n url: \"/assets/images/sq-11.jpg\"\n }\n ],\n comments: [\n {\n id: shortId.generate(),\n uid: \"323sa680b3249760ea21rt47\",\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n time: new Date()\n }\n ]\n }\n ]\n },\n {\n id: shortId.generate(),\n title: \"Chat App\",\n cardList: [\n {\n id: shortId.generate(),\n title: \"Beautiful DnD\",\n coverImage: \"/assets/images/sq-11.jpg\",\n members: [\n \"323sa680b3249760ea21rt47\",\n \"7863a6802ez0e277a0f98534\",\n \"14663a3406eb47ffa63d4fec9429cb71\",\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n \"e929b1d790ab49968ed8e34648553df4\"\n ],\n labels: [2, 3, 4],\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n attachments: [\n {\n name: \"sky-life.jpg\",\n size: \"1.2 MB\",\n url: \"/assets/images/sq-11.jpg\"\n }\n ],\n comments: [\n {\n id: shortId.generate(),\n uid: \"e929b1d790ab49968ed8e34648553df4\",\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n time: new Date()\n }\n ]\n },\n {\n id: shortId.generate(),\n title: \"Nested DnD\",\n coverImage: \"/assets/images/sq-13.jpg\",\n members: [\n \"323sa680b3249760ea21rt47\",\n \"7863a6802ez0e277a0f98534\",\n \"14663a3406eb47ffa63d4fec9429cb71\",\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n \"e929b1d790ab49968ed8e34648553df4\"\n ],\n labels: [2, 3, 4],\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n attachments: [\n {\n name: \"sky-life.jpg\",\n size: \"1.2 MB\",\n url: \"/assets/images/sq-11.jpg\"\n }\n ],\n comments: [\n {\n id: shortId.generate(),\n uid: \"e929b1d790ab49968ed8e34648553df4\",\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n time: new Date()\n }\n ]\n }\n ]\n }\n ],\n members: [\n // only member id\n \"323sa680b3249760ea21rt47\",\n \"7863a6802ez0e277a0f98534\",\n \"14663a3406eb47ffa63d4fec9429cb71\",\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n \"e929b1d790ab49968ed8e34648553df4\"\n ]\n },\n {\n id: \"c5d7498bbcb84d81fc72168871ac6a6e\",\n title: \"Gull Angular\",\n list: [\n {\n id: shortId.generate(),\n title: \"Drag and Drop\",\n cardList: [\n {\n id: shortId.generate(),\n title: \"Beautiful DnD\",\n coverImage: \"/assets/images/sq-9.jpg\",\n members: [\n \"323sa680b3249760ea21rt47\",\n \"7863a6802ez0e277a0f98534\",\n \"14663a3406eb47ffa63d4fec9429cb71\",\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n \"e929b1d790ab49968ed8e34648553df4\"\n ],\n labels: [2, 3, 4],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever s\",\n attachments: [\n {\n name: \"sky-life.jpg\",\n size: \"1.2 MB\",\n url: \"/assets/images/sq-11.jpg\"\n }\n ],\n comments: [\n {\n id: shortId.generate(),\n uid: \"e929b1d790ab49968ed8e34648553df4\",\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\n time: new Date()\n }\n ]\n },\n {\n id: shortId.generate(),\n title: \"Nested DnD\",\n coverImage: \"/assets/images/sq-11.jpg\",\n members: [\n \"323sa680b3249760ea21rt47\",\n \"7863a6802ez0e277a0f98534\",\n \"14663a3406eb47ffa63d4fec9429cb71\",\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n \"e929b1d790ab49968ed8e34648553df4\"\n ],\n labels: [2, 3, 4],\n description:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever s\",\n attachments: [\n {\n name: \"sky-life.jpg\",\n size: \"1.2 MB\",\n url: \"/assets/images/sq-9.jpg\"\n },\n {\n name: \"stair.jpg\",\n size: \"2.8 MB\",\n url: \"/assets/images/sq-11.jpg\"\n }\n ],\n comments: [\n {\n id: shortId.generate(),\n uid: \"e929b1d790ab49968ed8e34648553df4\",\n text:\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\n time: new Date()\n }\n ]\n }\n ]\n }\n ],\n members: [\n // only member id\n \"323sa680b3249760ea21rt47\",\n \"7863a6802ez0e277a0f98534\",\n \"14663a3406eb47ffa63d4fec9429cb71\",\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n \"e929b1d790ab49968ed8e34648553df4\"\n ]\n }\n ],\n\n labels: [\n {\n id: 1,\n title: \"Active\",\n color: \"primary\"\n },\n {\n id: 2,\n title: \"Complete\",\n color: \"green\"\n },\n {\n id: 3,\n title: \"Ready\",\n color: \"secondary\"\n },\n {\n id: 4,\n title: \"High Priority\",\n color: \"error\"\n }\n ],\n\n members: [\n {\n id: \"1\",\n name: \"John Doe\",\n avatar: \"/assets/images/face-7.jpg\"\n },\n {\n id: \"323sa680b3249760ea21rt47\",\n name: \"Frank Powell\",\n avatar: \"/assets/images/faces/13.jpg\"\n },\n {\n id: \"7863a6802ez0e277a0f98534\",\n name: \"John Doe\",\n avatar: \"/assets/images/face-1.jpg\"\n },\n {\n id: \"14663a3406eb47ffa63d4fec9429cb71\",\n name: \"Betty Diaz\",\n avatar: \"/assets/images/faces/12.jpg\"\n },\n {\n id: \"43bd9bc59d164b5aea498e3ae1c24c3c\",\n name: \"Brian Stephens\",\n avatar: \"/assets/images/faces/3.jpg\"\n },\n {\n id: \"3fc8e01f3ce649d1caf884fbf4f698e4\",\n name: \"Jacqueline Day\",\n avatar: \"/assets/images/faces/16.jpg\"\n },\n {\n id: \"e929b1d790ab49968ed8e34648553df4\",\n name: \"Arthur Mendoza\",\n avatar: \"/assets/images/faces/10.jpg\"\n },\n {\n id: \"d6caf04bba614632b5fecf91aebf4564\",\n name: \"Jeremy Lee\",\n avatar: \"/assets/images/faces/9.jpg\"\n },\n {\n id: \"be0fb188c8e242f097fafa24632107e4\",\n name: \"Johnny Newman\",\n avatar: \"/assets/images/faces/5.jpg\"\n },\n {\n id: \"dea902191b964a68ba5f2d93cff37e13\",\n name: \"Jeffrey Little\",\n avatar: \"/assets/images/faces/15.jpg\"\n },\n {\n id: \"0bf58f5ccc4543a9f8747350b7bda3c7\",\n name: \"Barbara Romero\",\n avatar: \"/assets/images/faces/4.jpg\"\n },\n {\n id: \"c5d7498bbcb84d81fc72168871ac6a6e\",\n name: \"Daniel James\",\n avatar: \"/assets/images/faces/2.jpg\"\n },\n {\n id: \"97bfbdd9413e46efdaca2010400fe18c\",\n name: \"Alice Sanders\",\n avatar: \"/assets/images/faces/17.jpg\"\n }\n ]\n};\n\n// a little function to help us with reordering the result\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\n// Moves an item from one list to another list.\nconst move = (source, destination, droppableSource, droppableDestination) => {\n const sourceClone = Array.from(source);\n const destClone = Array.from(destination);\n const [removed] = sourceClone.splice(droppableSource.index, 1);\n\n destClone.splice(droppableDestination.index, 0, removed);\n\n const result = {};\n result[droppableSource.droppableId] = sourceClone;\n result[droppableDestination.droppableId] = destClone;\n\n return result;\n};\n\nconst getBoardWithMemberDetails = board => {\n const members = board.members.map(id => {\n return ScrumBoardDB.members.find(member => member.id === id);\n });\n return { ...board, members };\n};\n\nMock.onGet(\"/api/scrum-board/all-member\").reply(config => {\n return [200, [...ScrumBoardDB.members]];\n});\n\nMock.onGet(\"/api/scrum-board/all-label\").reply(config => {\n return [200, [...ScrumBoardDB.labels]];\n});\n\nMock.onGet(\"/api/scrum-board/all-board\").reply(config => {\n const response = ScrumBoardDB.boardList.map(board =>\n _.pick(board, [\"id\", \"title\"])\n );\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/add-board\").reply(config => {\n let title = config.data;\n ScrumBoardDB.boardList.push({\n id: shortId.generate(),\n title,\n list: [],\n members: []\n });\n\n const response = ScrumBoardDB.boardList.map(board =>\n _.pick(board, [\"id\", \"title\"])\n );\n\n return [200, response];\n});\n\nMock.onGet(\"/api/scrum-board\").reply(config => {\n const id = config.data;\n\n const board = ScrumBoardDB.boardList.find(board => board.id === id);\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onGet(\"/api/scrum-board\").reply(config => {\n const id = config.data;\n\n const board = ScrumBoardDB.boardList.find(board => board.id === id);\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/add-member\").reply(config => {\n let { boardId, memberId } = JSON.parse(config.data);\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\n\n board.members.push(memberId);\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/delete-member\").reply(config => {\n let { boardId, memberId } = JSON.parse(config.data);\n\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\n board.members.splice(board.members.indexOf(memberId), 1);\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/add-column\").reply(config => {\n let { boardId, listTitle } = JSON.parse(config.data);\n\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\n board.list.push({\n id: shortId.generate(),\n title: listTitle,\n cardList: []\n });\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/rename-column\").reply(config => {\n let { boardId, listTitle, listId } = JSON.parse(config.data);\n\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\n board.list.map(column => {\n if (column.id === listId) {\n column.title = listTitle;\n }\n return column;\n });\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/delete-column\").reply(config => {\n let { boardId, listId } = JSON.parse(config.data);\n\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\n let deleteIndex = null;\n\n board.list.map((column, index) => {\n if (column.id === listId) deleteIndex = index;\n });\n\n board.list.splice(deleteIndex, 1);\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/add-card\").reply(config => {\n let { boardId, cardTitle, listId } = JSON.parse(config.data);\n\n let board = ScrumBoardDB.boardList.find(board => board.id === boardId);\n let column = board.list.find(column => column.id === listId);\n\n column.cardList.push({\n id: shortId.generate(),\n title: cardTitle,\n members: [],\n labels: [],\n comments: [],\n attachments: []\n });\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/update-card\").reply(config => {\n let { boardId, listId, card } = JSON.parse(config.data);\n\n let boardList = ScrumBoardDB.boardList.map(board => {\n if (board.id === boardId) {\n return {\n ...board,\n list: board.list.map(column => {\n if (column.id === listId) {\n return {\n ...column,\n cardList: column.cardList.map(item => {\n if (item.id === card.id) {\n return { ...card };\n }\n return { ...item };\n })\n };\n }\n return column;\n })\n };\n }\n return board;\n });\n\n ScrumBoardDB.boardList = [...boardList];\n\n let board = boardList.find(item => item.id === boardId);\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/reorder-list\").reply(config => {\n let { boardId, startIndex, endIndex } = JSON.parse(config.data);\n\n ScrumBoardDB.boardList = ScrumBoardDB.boardList.map(board => {\n if (board.id === boardId) {\n return {\n ...board,\n list: reorder(board.list, startIndex, endIndex)\n };\n }\n return board;\n });\n\n let board = ScrumBoardDB.boardList.find(item => item.id === boardId);\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/reorder-card\").reply(config => {\n let { boardId, listId, startIndex, endIndex } = JSON.parse(config.data);\n\n ScrumBoardDB.boardList = ScrumBoardDB.boardList.map(board => {\n if (board.id === boardId) {\n return {\n ...board,\n list: board.list.map(list => {\n if (list.id === listId) {\n return {\n ...list,\n cardList: reorder(list.cardList, startIndex, endIndex)\n };\n }\n return list;\n })\n };\n }\n return board;\n });\n\n let board = ScrumBoardDB.boardList.find(board => board.id === boardId);\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/scrum-board/move-card\").reply(config => {\n let {\n boardId,\n sourcelistId,\n destinationlistId,\n source,\n destination\n } = JSON.parse(config.data);\n let board = ScrumBoardDB.boardList.find(board => board.id === boardId);\n\n let [movedItem] = board.list\n .find(list => list.id === sourcelistId)\n .cardList.splice(source.index, 1);\n\n board.list\n .find(list => list.id === destinationlistId)\n .cardList.splice(destination.index, 0, movedItem);\n\n const response = getBoardWithMemberDetails(board);\n\n return [200, response];\n});\n","import Mock from \"../mock\";\nimport shortId from \"shortid\";\n\nconst NotificationDB = {\n list: [\n {\n id: shortId.generate(),\n heading: \"Message\",\n icon: {\n name: \"chat\",\n color: \"primary\"\n },\n timestamp: 1570702802573,\n title: \"New message from Devid\",\n subtitle: \"Hello, Let's chit chat...\",\n path: \"chat\"\n },\n {\n id: shortId.generate(),\n heading: \"Alert\",\n icon: {\n name: \"notifications\",\n color: \"error\"\n },\n timestamp: 1570702702573,\n title: \"Server overloaded\",\n subtitle: \"Traffice reached 2M\",\n path: \"page-layouts/user-profile\"\n },\n {\n id: shortId.generate(),\n heading: \"Message\",\n icon: {\n name: \"chat\",\n color: \"primary\"\n },\n timestamp: 1570502502573,\n title: \"New message from Goustove\",\n subtitle: \"Hello, Let's chit chat...\",\n path: \"chat\"\n }\n ]\n};\n\nMock.onGet(\"/api/notification\").reply(config => {\n const response = NotificationDB.list;\n return [200, response];\n});\n\nMock.onPost(\"/api/notification/add\").reply(config => {\n const response = NotificationDB.list;\n return [200, response];\n});\n\nMock.onPost(\"/api/notification/delete\").reply(config => {\n let { id } = JSON.parse(config.data);\n\n const response = NotificationDB.list.filter(\n notification => notification.id !== id\n );\n NotificationDB.list = [...response];\n return [200, response];\n});\n\nMock.onPost(\"/api/notification/delete-all\").reply(config => {\n NotificationDB.list = [];\n const response = NotificationDB.list;\n return [200, response];\n});\n","import Mock from \"../mock\";\nimport shortId from \"shortid\";\n\nconst EcommerceDB = {\n productList: [\n {\n id: \"323sa680b32497dsfdsgga21rt47\",\n imgUrl: \"/assets/images/products/speaker-1.jpg\",\n price: 324.0,\n title: \"Bass Speaker Venue 8 - 8 - Intel Atom - 16GB - Black\",\n category: \"audio\",\n brand: \"Microlab\",\n rating: 1,\n freeShipping: false,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: \"323sa680b324976dfgga21rt47\",\n imgUrl: \"/assets/images/products/speaker-2.jpg\",\n price: 454.0,\n title: \"Bass Speaker\",\n category: \"audio\",\n brand: \"Microlab\",\n rating: 3,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/headphone-1.jpg\",\n price: 134.0,\n title: \"Bass Speaker\",\n category: \"audio\",\n brand: \"Sony\",\n rating: 4,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/headphone-2.jpg\",\n price: 987.0,\n title: \"Bit Bass Headphone\",\n category: \"audio\",\n brand: \"Sony\",\n rating: 5,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/headphone-3.jpg\",\n price: 870.0,\n title: \"Sony Headphone\",\n category: \"audio\",\n brand: \"Sony\",\n rating: 4,\n freeShipping: false,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/watch-1.jpg\",\n price: 23.0,\n title: \"Comlion Watch\",\n category: \"fashion\",\n brand: \"Comlion\",\n rating: 3,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: \"323sa680b32497dfdfgga21rt47\",\n imgUrl: \"/assets/images/products/speaker-2.jpg\",\n price: 454.0,\n title: \"Bass Speaker\",\n category: \"audio\",\n brand: \"Microlab\",\n rating: 1,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/headphone-4.jpg\",\n price: 299.0,\n title: \"Beats Headphone\",\n category: \"audio\",\n brand: \"Beats\",\n rating: 5,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/iphone-1.jpg\",\n price: 978.0,\n title: \"Iphone 11 Max Pro\",\n category: \"cellphone\",\n brand: \"Iphone\",\n rating: 2,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/iphone-2.jpg\",\n price: 12.0,\n title: \"IPhone 11 Max Pro Case\",\n category: \"accessories\",\n brand: \"Iphone\",\n rating: 4,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/watch-1.jpg\",\n price: 23.0,\n title: \"Comlion Watch\",\n category: \"fashion\",\n brand: \"Comlion\",\n rating: 1,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/watch-2.jpg\",\n price: 75.0,\n title: \"Kurren Watch\",\n category: \"fashion\",\n brand: \"Kurren\",\n rating: 3,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n },\n {\n id: shortId.generate(),\n imgUrl: \"/assets/images/products/iphone-1.jpg\",\n price: 978.0,\n title: \"Iphone 11 Max Pro\",\n category: \"cellphone\",\n brand: \"Iphone\",\n rating: 5,\n freeShipping: true,\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\n }\n ],\n\n category: [\n {\n title: \"audio\",\n product: 321\n },\n {\n title: \"fashion\",\n product: 123\n },\n {\n title: \"cellphone\",\n product: 546\n },\n {\n title: \"accessories\",\n product: 76\n }\n ],\n\n brand: [\n {\n title: \"Microlab\",\n product: 32\n },\n {\n title: \"Sony\",\n product: 534\n },\n {\n title: \"Beats\",\n product: 23\n },\n {\n title: \"Iphone\",\n product: 65\n },\n {\n title: \"Comlion\",\n product: 198\n }\n ],\n\n rating: [\n {\n rate: 5,\n product: 345\n },\n {\n rate: 4,\n product: 53\n },\n {\n rate: 3,\n product: 765\n },\n {\n rate: 2,\n product: 32\n },\n {\n rate: 1,\n product: 64\n }\n ],\n\n cart: [\n {\n uid: \"1\",\n list: [\n {\n productId: \"323sa680b324976dfgga21rt47\",\n amount: 1\n }\n ]\n }\n ],\n\n userList: [\n {\n id: \"1\",\n name: \"John Doe\",\n avatar: \"/assets/images/face-7.jpg\"\n },\n {\n id: \"323sa680b3249760ea21rt47\",\n name: \"Frank Powell\",\n avatar: \"/assets/images/faces/13.jpg\"\n },\n {\n id: \"7863a6802ez0e277a0f98534\",\n name: \"John Doe\",\n avatar: \"/assets/images/face-1.jpg\"\n }\n ]\n};\n\nconst getDetailedCartList = uid => {\n let cartList = EcommerceDB.cart.find(userCart => userCart.uid === uid).list;\n return cartList.map(product => ({\n amount: product.amount,\n ...EcommerceDB.productList.find(item => item.id === product.productId)\n }));\n};\n\nMock.onGet(\"/api/ecommerce/get-product-list\").reply(config => {\n const response = EcommerceDB.productList;\n return [200, response];\n});\n\nMock.onGet(\"/api/ecommerce/get-category-list\").reply(config => {\n const response = EcommerceDB.category;\n return [200, response];\n});\n\nMock.onGet(\"/api/ecommerce/get-rating-list\").reply(config => {\n const response = EcommerceDB.rating;\n return [200, response];\n});\n\nMock.onGet(\"/api/ecommerce/get-brand-list\").reply(config => {\n const response = EcommerceDB.brand;\n return [200, response];\n});\n\nMock.onGet(\"/api/ecommerce/get-cart-list\").reply(config => {\n let uid = config.data;\n let response = [];\n\n if (uid) {\n response = getDetailedCartList(uid);\n }\n\n return [200, response];\n});\n\nMock.onPost(\"/api/ecommerce/add-to-cart\").reply(config => {\n let { uid, productId } = JSON.parse(config.data);\n\n let cartList = EcommerceDB.cart.map(userCart => {\n if (userCart.uid === uid) {\n let product = userCart.list.find(\n product => product.productId === productId\n );\n if (product) {\n return {\n ...userCart,\n list: userCart.list.map(product => {\n if (product.productId === productId) {\n return {\n ...product,\n amount: product.amount + 1\n };\n } else return product;\n })\n };\n } else {\n userCart.list.push({\n productId,\n amount: 1\n });\n return userCart;\n }\n } else return userCart;\n });\n\n EcommerceDB.cart = cartList;\n\n const response = getDetailedCartList(uid);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/ecommerce/delete-from-cart\").reply(config => {\n let { uid, productId } = JSON.parse(config.data);\n\n let cartList = EcommerceDB.cart.map(userCart => {\n if (userCart.uid === uid) {\n return {\n ...userCart,\n list: userCart.list.filter(product => product.productId !== productId)\n };\n } else return userCart;\n });\n\n EcommerceDB.cart = cartList;\n\n const response = getDetailedCartList(uid);\n\n return [200, response];\n});\n\nMock.onPost(\"/api/ecommerce/update-cart-amount\").reply(config => {\n let { uid, productId, amount } = JSON.parse(config.data);\n\n let cartList = EcommerceDB.cart.map(userCart => {\n if (userCart.uid === uid) {\n return {\n ...userCart,\n list: userCart.list.map(product => {\n if (product.productId === productId) {\n product.amount = amount;\n }\n return product;\n })\n };\n } else return userCart;\n });\n\n EcommerceDB.cart = cartList;\n\n const response = getDetailedCartList(uid);\n\n return [200, response];\n});\n","import Mock from \"./mock\";\n\nimport \"./db/invoice\";\nimport \"./db/calendarEvents\";\nimport \"./db/users\";\nimport \"./db/inbox\";\nimport \"./db/chat\";\nimport \"./db/todos\";\nimport \"./db/list\";\nimport \"./db/scrumBoard\";\nimport \"./db/notification\";\nimport \"./db/ecommerce\";\n\nMock.onAny().passThrough();\n","import { lazy } from \"react\";\n\nconst LogIn = lazy(() => import(\"./login\"));\nconst PreCadastroAluno = lazy(() => import(\"../aluno/preCadastro\"));\n\nconst sessionsRoutes = [\n {\n path: \"/sessions/login\",\n component: LogIn\n },\n {\n path: \"/pre-cadastro-aluno/:token\",\n component: PreCadastroAluno\n } \n];\n\nexport default sessionsRoutes;\n","import { lazy } from \"react\";\n\nconst Layout1 = lazy(() => import(\"./Layout1/Layout1\"));\nconst Layout2 = lazy(() => import(\"./Layout2/Layout2\"));\nconst Layout3 = lazy(() => import(\"./Layout3/Layout3\"));\n\nexport const GullLayouts = {\n layout1: Layout1,\n layout2: Layout2,\n layout3: Layout3\n};\n","import React, { Component, Suspense } from \"react\";\nimport { connect } from \"react-redux\";\nimport { PropTypes } from \"prop-types\";\nimport { withRouter } from \"react-router-dom\";\nimport AppContext from \"app/appContext\";\nimport {\n setLayoutSettings,\n setDefaultSettings\n} from \"app/redux/actions/LayoutActions\";\n\nimport { GullLayouts } from \".\";\n\nclass GullLayout extends Component {\n state = {};\n\n // constructor(props, context) {\n // super(props);\n // this.appContext = context;\n // this.updateSettingsFromRouter();\n\n // // Set settings from query (Only for demo purpose)\n // this.setLayoutFromQuery();\n // }\n\n componentDidUpdate(prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n // initCodeViewer();\n // this.updateSettingsFromRouter();\n }\n }\n componentDidMount() {\n this.initAppDirection();\n }\n\n // updateSettingsFromRouter() {\n // const { routes } = this.appContext;\n // const matched = matchRoutes(routes, this.props.location.pathname)[0];\n // let { defaultSettings, settings, setLayoutSettings } = this.props;\n\n // if (matched && matched.route.settings) {\n // // ROUTE HAS SETTINGS\n // console.log(matched.route.settings);\n\n // const updatedSettings = merge({}, settings, matched.route.settings);\n // if (!isEqual(settings, updatedSettings)) {\n // setLayoutSettings(updatedSettings);\n // // console.log('Route has settings');\n // }\n // } else if (!isEqual(settings, defaultSettings)) {\n // console.log(\"routes not found\");\n\n // setLayoutSettings(defaultSettings);\n // // console.log('reset settings', defaultSettings);\n // }\n // }\n\n // setLayoutFromQuery = () => {\n // try {\n // let settingsFromQuery = getQueryParam(\"settings\");\n // settingsFromQuery = settingsFromQuery\n // ? JSON.parse(settingsFromQuery)\n // : {};\n // let { settings, setLayoutSettings, setDefaultSettings } = this.props;\n // let updatedSettings = merge({}, settings, settingsFromQuery);\n\n // setLayoutSettings(updatedSettings);\n // setDefaultSettings(updatedSettings);\n // } catch (e) {\n // // console.log(\"Error! Set settings from query param\", e);\n // }\n // };\n\n initAppDirection = () => {\n let { settings } = this.props;\n setTimeout(() => {\n document.documentElement.setAttribute('dir', settings.dir);\n });\n }\n\n render() {\n let { activeLayout, route, settings } = this.props;\n let Layout = GullLayouts[activeLayout];\n return (\n \n \n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n setLayoutSettings: PropTypes.func.isRequired,\n setDefaultSettings: PropTypes.func.isRequired,\n settings: state.layout.settings,\n activeLayout: state.layout.settings.activeLayout,\n defaultSettings: state.layout.defaultSettings\n});\n\nGullLayout.contextType = AppContext;\n\nexport default withRouter(\n connect(mapStateToProps, { setLayoutSettings, setDefaultSettings })(\n GullLayout\n )\n);\n","import React, { Component, Fragment } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport AppContext from \"app/appContext\";\nimport GullLayout from \"app/GullLayout/GullLayout\";\nimport { flatMap } from \"lodash\";\n\nclass AuthGuard extends Component {\n constructor(props, context) {\n super(props);\n let { routes } = context;\n\n this.state = {\n authenticated: true,\n routes,\n };\n }\n\n componentDidMount() {\n this.setState({\n routes: flatMap(this.state.routes, (item) => {\n if (item.routes) {\n return [...item.routes];\n }\n return [item];\n }),\n });\n\n if (!this.state.authenticated) {\n this.redirectRoute(this.props);\n }\n }\n\n componentDidUpdate() {\n if (!this.state.authenticated) {\n this.redirectRoute(this.props);\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n return nextState.authenticated !== this.state.authenticated;\n }\n\n static getDerivedStateFromProps(props, state) {\n const { location, user } = props;\n const { pathname } = location;\n\n let matched = [];\n \n if (state.routes.length === 2) {\n matched = state.routes[1].routes.find((r) => r.path === pathname);\n } else {\n matched = state.routes.find((r) => r.path === pathname);\n }\n\n const authenticated =\n matched && matched.auth && matched.auth.length\n ? matched.auth.includes(user.role)\n : true;\n\n //console.log(user);\n //console.log(\"getDerivedStateFromProps\");\n return {\n authenticated,\n };\n }\n\n redirectRoute(props) {\n const { location, history } = props;\n const { pathname } = location;\n \n history.push({\n pathname: \"/sessions/login\",\n state: { redirectUrl: pathname },\n });\n }\n\n render() {\n let { route } = this.props;\n const { authenticated } = this.state;\n\n return authenticated ? (\n \n \n \n ) : null;\n }\n}\n\nAuthGuard.contextType = AppContext;\n\nconst mapStateToProps = (state) => ({\n user: state.user,\n});\n\nexport default withRouter(connect(mapStateToProps)(AuthGuard));\n","export const authRoles = {\n sa: ['SA'],\n admin: ['SA', 'ADMIN'],\n secretaria: ['SA', 'ADMIN', 'SECRETARIA'],\n financeiro: ['SA', 'ADMIN', 'FINANCEIRO'],\n professor: ['SA', 'ADMIN', 'SECRETARIA', 'PROFESSOR']\n}","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst Admin = lazy(() => import(\"./admin/admin\"));\n\nconst Professor = lazy(() => import(\"./professor/professor\"));\n\nconst dashboardRoutes = [\n {\n path: \"/dashboard/admin\",\n component: Admin,\n auth: [...authRoles.secretaria, ...authRoles.financeiro],\n },\n {\n path: \"/dashboard/professor\",\n component: Professor,\n auth: authRoles.professor,\n },\n];\n\nexport default dashboardRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroTurno = lazy(() => import(\"./cadastro\"));\nconst ConsultaTurno = lazy(() => import(\"./consulta\"));\n\nconst turnoRoutes = [\n {\n path: \"/turno/cadastro\",\n component: CadastroTurno,\n auth: authRoles.professor,\n },\n {\n path: \"/turno/consulta\",\n component: ConsultaTurno,\n auth: authRoles.professor,\n },\n];\n\nexport default turnoRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroTurma = lazy(() => import(\"./cadastro\"));\nconst ConsultaTurma = lazy(() => import(\"./consulta\"));\n\nconst turmaRoutes = [\n {\n path: \"/turma/cadastro\",\n component: CadastroTurma,\n auth: authRoles.professor,\n },\n {\n path: \"/turma/consulta\",\n component: ConsultaTurma,\n auth: authRoles.professor,\n },\n];\n\nexport default turmaRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroAluno = lazy(() => import(\"./cadastro\"));\nconst ConsultaAluno = lazy(() => import(\"./consulta\"));\nconst Desmatriculados = lazy(() => import(\"./desmatriculados\"));\nconst ImpressaoContrato = lazy(() => import(\"./contrato\"));\nconst ImpressaoFichaAluno = lazy(() => import(\"./fichaAluno\"));\nconst ConsultaPreCadastroAluno = lazy(() => import(\"./consultaPreCadastro\"));\n\nconst alunoRoutes = [\n {\n path: \"/aluno/cadastro\",\n component: CadastroAluno,\n auth: authRoles.secretaria,\n },\n {\n path: \"/aluno/consulta\",\n component: ConsultaAluno,\n auth: authRoles.secretaria,\n },\n {\n path: \"/aluno/desmatriculados\",\n component: Desmatriculados,\n auth: authRoles.secretaria,\n },\n {\n path: \"/aluno/contrato\",\n component: ImpressaoContrato,\n auth: authRoles.secretaria,\n },\n {\n path: \"/aluno/fichaAluno\",\n component: ImpressaoFichaAluno,\n auth: authRoles.secretaria,\n },\n {\n path: \"/aluno/consultaPreCadastro\",\n component: ConsultaPreCadastroAluno,\n auth: authRoles.secretaria,\n }, \n];\n\nexport default alunoRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroCalendario = lazy(() => import(\"./cadastro\"));\n\nconst calendarioRoutes = [\n {\n path: \"/calendario/cadastro\",\n component: CadastroCalendario,\n auth: authRoles.secretaria,\n },\n];\n\nexport default calendarioRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroLivro = lazy(() => import(\"./cadastro\"));\nconst ConsultaLivro = lazy(() => import(\"./consulta\"));\nconst Movimentacao = lazy(() => import(\"./movimentacao\"));\nconst Movimentacoes = lazy(() => import(\"./movimentacoes\"));\n\nconst bibliotecaRoutes = [\n {\n path: \"/biblioteca/cadastro\",\n component: CadastroLivro,\n auth: authRoles.secretaria,\n },\n {\n path: \"/biblioteca/consulta\",\n component: ConsultaLivro,\n auth: authRoles.secretaria,\n },\n {\n path: \"/biblioteca/movimentacao\",\n component: Movimentacao,\n auth: [...authRoles.secretaria, ...authRoles.professor],\n },\n {\n path: \"/biblioteca/movimentacoes\",\n component: Movimentacoes,\n auth: [...authRoles.secretaria, ...authRoles.professor],\n },\n];\n\nexport default bibliotecaRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaAniversariantes = lazy(() =>\n import(\"./aniversariantes/consulta\")\n);\nconst ImpressaoAniversariantes = lazy(() =>\n import(\"./aniversariantes/impressao\")\n);\nconst ConsultaQuadroResumo = lazy(() => import(\"./quadroresumo/consulta\"));\nconst ImpressaoQuadroResumo = lazy(() => import(\"./quadroresumo/impressao\"));\nconst ResumoAlunos = lazy(() => import(\"./resumoalunos/consulta\"));\nconst ImpressaoResumoAlunos = lazy(() => import(\"./resumoalunos/impressao\"));\nconst RelatorioContaReceber = lazy(() => import(\"./contareceber/consulta\"));\nconst ImpressaoContaReceber = lazy(() => import(\"./contareceber/impressao\"));\nconst RelatorioCardapio = lazy(() => import(\"./cardapio/consulta\"));\nconst ImpressaoCardapio = lazy(() => import(\"./cardapio/impressao\"));\nconst RelatorioLivroCaixa = lazy(() => import(\"./livrocaixa/consulta\"));\nconst ImpressaoLivroCaixa = lazy(() => import(\"./livrocaixa/impressao\"));\nconst RelatorioParecerDescritivo = lazy(() =>\n import(\"./parecerdescritivo/consulta\")\n);\nconst ImpressaoParecerDescritivo = lazy(() =>\n import(\"./parecerdescritivo/impressao\")\n);\nconst ImpressaoLivros = lazy(() => import(\"./livros/impressao\"));\nconst RelatorioAlunosMatriculados = lazy(() =>\n import(\"./alunosmatriculados/consulta\")\n);\nconst ImpressaoAlunosMatriculados = lazy(() =>\n import(\"./alunosmatriculados/impressao\")\n);\n\nconst consultaRoutes = [\n {\n path: \"/consultas/aniversariantes/consulta\",\n component: ConsultaAniversariantes,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/aniversariantes/impressao\",\n component: ImpressaoAniversariantes,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/quadroresumo/consulta\",\n component: ConsultaQuadroResumo,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/quadroresumo/impressao\",\n component: ImpressaoQuadroResumo,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/resumoalunos/consulta\",\n component: ResumoAlunos,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/resumoalunos/impressao\",\n component: ImpressaoResumoAlunos,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/contareceber/consulta\",\n component: RelatorioContaReceber,\n auth: authRoles.financeiro,\n },\n {\n path: \"/consultas/contareceber/impressao\",\n component: ImpressaoContaReceber,\n auth: authRoles.financeiro,\n },\n {\n path: \"/consultas/cardapio/consulta\",\n component: RelatorioCardapio,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/cardapio/impressao\",\n component: ImpressaoCardapio,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/livrocaixa/consulta\",\n component: RelatorioLivroCaixa,\n auth: authRoles.financeiro,\n },\n {\n path: \"/consultas/livrocaixa/impressao\",\n component: ImpressaoLivroCaixa,\n auth: authRoles.financeiro,\n },\n {\n path: \"/consultas/parecerdescritivo/consulta\",\n component: RelatorioParecerDescritivo,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/parecerdescritivo/impressao\",\n component: ImpressaoParecerDescritivo,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/livros/impressao\",\n component: ImpressaoLivros,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/alunosmatriculados/consulta\",\n component: RelatorioAlunosMatriculados,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consultas/alunosmatriculados/impressao\",\n component: ImpressaoAlunosMatriculados,\n auth: authRoles.secretaria,\n },\n];\n\nexport default consultaRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaConvenios = lazy(() => import(\"./consulta\"));\nconst CadastroConvenio = lazy(() => import(\"./cadastro\"));\n\nconst convenioRoutes = [\n {\n path: \"/convenio/consulta\",\n component: ConsultaConvenios,\n auth: authRoles.secretaria,\n },\n {\n path: \"/convenio/cadastro\",\n component: CadastroConvenio,\n auth: authRoles.secretaria,\n },\n];\n\nexport default convenioRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaVisitas = lazy(() => import(\"./consulta\"));\nconst CadastroVisita = lazy(() => import(\"./cadastro\"));\n\nconst visitaRoutes = [\n {\n path: \"/visita/consulta\",\n component: ConsultaVisitas,\n auth: authRoles.secretaria,\n },\n {\n path: \"/visita/Cadastro\",\n component: CadastroVisita,\n auth: authRoles.secretaria,\n },\n];\n\nexport default visitaRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaPlanejamentos = lazy(() => import(\"./consulta\"));\nconst CadastroPlanejamentos = lazy(() => import(\"./cadastro\"));\nconst ModeracaoPlanejamentos = lazy(() => import(\"./moderacao\"));\nconst ImpressaoPlanejamentos = lazy(() => import(\"./impressao\"));\n\nconst planejamentoRoutes = [\n {\n path: \"/planejamento/consulta\",\n component: ConsultaPlanejamentos,\n auth: authRoles.secretaria,\n },\n {\n path: \"/planejamento/cadastro\",\n component: CadastroPlanejamentos,\n auth: authRoles.secretaria,\n },\n {\n path: \"/planejamento/moderacao\",\n component: ModeracaoPlanejamentos,\n auth: authRoles.secretaria,\n },\n {\n path: \"/planejamento/impressao\",\n component: ImpressaoPlanejamentos,\n auth: authRoles.secretaria,\n }, \n];\n\nexport default planejamentoRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaProfessores = lazy(() => import(\"./consulta\"));\nconst CadastroProfessor = lazy(() => import(\"./cadastro\"));\n\nconst professorRoutes = [\n {\n path: \"/professor/consulta\",\n component: ConsultaProfessores,\n auth: authRoles.secretaria,\n },\n {\n path: \"/professor/cadastro\",\n component: CadastroProfessor,\n auth: authRoles.secretaria,\n },\n];\n\nexport default professorRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroAtividade = lazy(() => import(\"./cadastro\"));\n\nconst atividadeRoutes = [\n {\n path: \"/atividade/cadastro\",\n component: CadastroAtividade,\n auth: authRoles.secretaria,\n },\n];\n\nexport default atividadeRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroRefeicao = lazy(() => import(\"./cadastro\"));\n\nconst refeicaoRoutes = [\n {\n path: \"/refeicao/cadastro\",\n component: CadastroRefeicao,\n auth: authRoles.secretaria,\n },\n];\n\nexport default refeicaoRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaCardapios = lazy(() => import(\"./consulta\"));\nconst CadastroCardapio = lazy(() => import(\"./cadastro\"));\n\nconst cardapioRoutes = [\n {\n path: \"/cardapio/consulta\",\n component: ConsultaCardapios,\n auth: authRoles.secretaria,\n },\n {\n path: \"/cardapio/Cadastro\",\n component: CadastroCardapio,\n auth: authRoles.secretaria,\n },\n];\n\nexport default cardapioRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaComunicados = lazy(() => import(\"./consulta\"));\nconst CadastroComunicado = lazy(() => import(\"./cadastro\"));\n\nconst comunicadoRoutes = [\n {\n path: \"/comunicado/consulta\",\n component: ConsultaComunicados,\n auth: authRoles.secretaria,\n },\n {\n path: \"/comunicado/cadastro\",\n component: CadastroComunicado,\n auth: authRoles.secretaria,\n },\n];\n\nexport default comunicadoRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaFornecedores = lazy(() => import(\"./consulta\"));\nconst CadastroFornecedor = lazy(() => import(\"./cadastro\"));\n\nconst fornecedorRoutes = [\n {\n path: \"/fornecedor/consulta\",\n component: ConsultaFornecedores,\n auth: authRoles.financeiro,\n },\n {\n path: \"/fornecedor/Cadastro\",\n component: CadastroFornecedor,\n auth: authRoles.financeiro,\n },\n];\n\nexport default fornecedorRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaContaContabil = lazy(() => import(\"./consulta\"));\nconst CadastroContaContabil = lazy(() => import(\"./cadastro\"));\n\nconst contacontabilRoutes = [\n {\n path: \"/contacontabil/consulta\",\n component: ConsultaContaContabil,\n auth: authRoles.financeiro,\n },\n {\n path: \"/contacontabil/Cadastro\",\n component: CadastroContaContabil,\n auth: authRoles.financeiro,\n },\n];\n\nexport default contacontabilRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaContaPagar = lazy(() => import(\"./consulta\"));\nconst CadastroContaPagar = lazy(() => import(\"./cadastro\"));\n\nconst contapagarRoutes = [\n {\n path: \"/contapagar/consulta\",\n component: ConsultaContaPagar,\n auth: authRoles.financeiro,\n },\n {\n path: \"/contapagar/cadastro\",\n component: CadastroContaPagar,\n auth: authRoles.financeiro,\n },\n];\n\nexport default contapagarRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaContaReceber = lazy(() => import(\"./consulta\"));\nconst CadastroContaReceber = lazy(() => import(\"./cadastro\"));\nconst ImpressaoRecibo = lazy(() => import(\"./recibo\"));\n\nconst contareceberRoutes = [\n {\n path: \"/contareceber/consulta\",\n component: ConsultaContaReceber,\n auth: authRoles.financeiro,\n },\n {\n path: \"/contareceber/cadastro\",\n component: CadastroContaReceber,\n auth: authRoles.financeiro,\n },\n {\n path: \"/contareceber/recibo\",\n component: ImpressaoRecibo,\n auth: authRoles.financeiro,\n }, \n];\n\nexport default contareceberRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaServicos = lazy(() => import(\"./consulta\"));\nconst CadastroServico = lazy(() => import(\"./cadastro\"));\n\nconst servicoRoutes = [\n {\n path: \"/servico/consulta\",\n component: ConsultaServicos,\n auth: authRoles.financeiro,\n },\n {\n path: \"/servico/cadastro\",\n component: CadastroServico,\n auth: authRoles.financeiro,\n },\n];\n\nexport default servicoRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroEscola = lazy(() => import(\"./cadastro\"));\nconst EscolaParametros = lazy(() => import(\"./parametros\"));\n\nconst escolaRoutes = [\n {\n path: \"/escola/cadastro\",\n component: CadastroEscola,\n auth: authRoles.secretaria,\n },\n {\n path: \"/escola/parametros\",\n component: EscolaParametros,\n auth: authRoles.secretaria,\n },\n];\n\nexport default escolaRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaUsuarios = lazy(() => import(\"./consulta\"));\nconst CadastroUsuario = lazy(() => import(\"./cadastro\"));\n\nconst usuarioRoutes = [\n {\n path: \"/usuario/consulta\",\n component: ConsultaUsuarios,\n auth: authRoles.admin,\n },\n {\n path: \"/usuario/cadastro\",\n component: CadastroUsuario,\n auth: authRoles.admin,\n },\n];\n\nexport default usuarioRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroLivroCaixa = lazy(() => import(\"./cadastro\"));\nconst ImpressaoLivroCaixa = lazy(() => import(\"./impressao\"));\n\nconst livrocaixaRoutes = [\n {\n path: \"/livrocaixa/cadastro\",\n component: CadastroLivroCaixa,\n auth: authRoles.financeiro,\n },\n {\n path: \"/livrocaixa/impressao\",\n component: ImpressaoLivroCaixa,\n auth: authRoles.financeiro,\n }, \n];\n\nexport default livrocaixaRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaPortadores = lazy(() => import(\"./consulta\"));\nconst CadastroPortador = lazy(() => import(\"./cadastro\"));\n\nconst portadorRoutes = [\n {\n path: \"/portador/consulta\",\n component: ConsultaPortadores,\n auth: authRoles.financeiro,\n },\n {\n path: \"/portador/cadastro\",\n component: CadastroPortador,\n auth: authRoles.financeiro,\n },\n];\n\nexport default portadorRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroModeloContrato = lazy(() => import(\"./cadastro\"));\n\nconst contratoRoutes = [\n {\n path: \"/contrato/cadastro\",\n component: CadastroModeloContrato,\n auth: authRoles.secretaria,\n },\n];\n\nexport default contratoRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroChamada = lazy(() => import(\"./cadastro\"));\n\nconst chamadaRoutes = [\n {\n path: \"/chamada/cadastro\",\n component: CadastroChamada,\n auth: authRoles.professor,\n }\n];\n\nexport default chamadaRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaTitulo = lazy(() => import(\"./consulta\"));\n\nconst tituloRoutes = [\n {\n path: \"/titulo/consulta\",\n component: ConsultaTitulo,\n auth: authRoles.financeiro,\n },\n];\n\nexport default tituloRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaRemessa = lazy(() => import(\"./remessa\"));\nconst ConsultaRetorno = lazy(() => import(\"./retorno\"));\nconst ConsultaBoletos = lazy(() => import(\"./boletos\"));\n\nconst boletosRoutes = [\n {\n path: \"/boletos/remessa\",\n component: ConsultaRemessa,\n auth: authRoles.financeiro,\n },\n {\n path: \"/boletos/retorno\",\n component: ConsultaRetorno,\n auth: authRoles.financeiro,\n },\n {\n path: \"/boletos/boletos\",\n component: ConsultaBoletos,\n auth: authRoles.financeiro,\n }, \n];\n\nexport default boletosRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst CadastroMensagem = lazy(() => import(\"./cadastro\"));\n\nconst mensagemRoutes = [\n {\n path: \"/mensagem/cadastro\",\n component: CadastroMensagem,\n auth: authRoles.secretaria,\n },\n];\n\nexport default mensagemRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst Rematricula = lazy(() => import(\"./consulta\"));\n\nconst rematriculaRoutes = [\n {\n path: \"/rematricula/consulta\",\n component: Rematricula,\n auth: authRoles.secretaria,\n },\n];\n\nexport default rematriculaRoutes;","import React from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport sessionsRoutes from \"./views/sessions/sessionRoutes\";\nimport AuthGuard from \"./auth/AuthGuard\";\nimport dashboardRoutes from \"./views/dashboard/dashboardRoutes\";\nimport turnoRoutes from \"./views/turno/turnoRoutes\";\nimport turmaRoutes from \"./views/turma/turmaRoutes\";\nimport alunoRoutes from \"./views/aluno/alunoRoutes\";\nimport calendarioRoutes from \"./views/calendario/calendarioRoutes\";\nimport bibliotecaRoutes from \"./views/biblioteca/bibliotecaRoutes\";\nimport consultaRoutes from \"./views/consultas/consultaRoutes\";\nimport convenioRoutes from \"./views/convenio/convenioRoutes\";\nimport visitaRoutes from \"./views/visita/visitaRoutes\";\nimport planejamentoRoutes from \"./views/planejamento/planejamentoRoutes\";\nimport professorRoutes from \"./views/professor/professorRoutes\";\nimport atividadeRoutes from \"./views/atividade/atividadeRoutes\";\nimport refeicaoRoutes from \"./views/refeicao/refeicaoRoutes\";\nimport cardapioRoutes from \"./views/cardapio/cardapioRoutes\";\nimport comunicadoRoutes from \"./views/comunicado/comunicadoRoutes\";\nimport forncedorRoutes from \"./views/fornecedor/fornecedorRoutes\";\nimport contacontabilRoutes from \"./views/contacontabil/contacontabilRoutes\";\nimport contapagarRoutes from \"./views/contapagar/contapagarRoutes\";\nimport contareceberRoutes from \"./views/contareceber/contareceberRoutes\";\nimport servicoRoutes from \"./views/servico/servicoRoutes\";\nimport escolaRoutes from \"./views/escola/escolaRoutes\";\nimport usuarioRoutes from \"./views/usuario/usuarioRoutes\";\nimport livrocaixaRoutes from \"./views/livrocaixa/livrocaixaRoutes\";\nimport portadorRoutes from \"./views/portador/portadorRoutes\";\nimport contratoRoutes from \"./views/contrato/contratoRoutes\";\nimport chamadaRoutes from \"./views/chamada/chamadaRoutes\";\nimport tituloRoutes from \"./views/titulo/tituloRoutes\";\nimport boletosRoutes from \"./views/boletos/boletosRoutes\";\nimport mensagemRoutes from \"./views/mensagem/mensagemRoutes\";\nimport rematriculaRoutes from \"./views/rematricula/rematriculaRoutes\";\nimport marketingRoutes from \"./views/marketing/marketingRoutes\";\nimport parecerDescritivoRoutes from \"./views/parecerdescritivo/parecerDescritivoRoutes\";\nimport moduloProfessor from \"./views/ModuloProfessor/moduloProfessorRoutes\";\nimport consideracoesRoutes from \"./views/consideracao/consideracoesRoutes\";\nimport recadoRoutes from \"./views/recado/recadoRoutes\";\n\nconst redirectRoute = [\n {\n path: \"/\",\n exact: true,\n component: () => ,\n },\n];\n\nconst redirectNotFound = [\n {\n path: \"*\",\n exact: true,\n component: () => ,\n },\n];\n\nconst routes = [\n ...sessionsRoutes,\n {\n path: \"/\",\n component: AuthGuard,\n routes: [\n ...dashboardRoutes,\n ...turnoRoutes,\n ...turmaRoutes,\n ...alunoRoutes,\n ...calendarioRoutes,\n ...redirectRoute,\n ...bibliotecaRoutes,\n ...consultaRoutes,\n ...convenioRoutes,\n ...visitaRoutes,\n ...planejamentoRoutes,\n ...professorRoutes,\n ...atividadeRoutes,\n ...refeicaoRoutes,\n ...cardapioRoutes,\n ...comunicadoRoutes,\n ...forncedorRoutes,\n ...contacontabilRoutes,\n ...contapagarRoutes,\n ...contareceberRoutes,\n ...servicoRoutes,\n ...escolaRoutes,\n ...usuarioRoutes,\n ...livrocaixaRoutes,\n ...portadorRoutes,\n ...contratoRoutes,\n ...chamadaRoutes, \n ...tituloRoutes,\n ...boletosRoutes,\n ...mensagemRoutes,\n ...marketingRoutes,\n ...rematriculaRoutes,\n ...parecerDescritivoRoutes,\n ...moduloProfessor,\n ...consideracoesRoutes,\n ...recadoRoutes,\n ...redirectNotFound,\n ],\n },\n];\n\nexport default routes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst IndexMarketing = lazy(() => import(\"./index\"));\n\nconst marketingRoutes = [\n {\n path: \"/marketing/index\",\n component: IndexMarketing,\n auth: authRoles.sa,\n },\n];\n\nexport default marketingRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaParecerDescritivo = lazy(() => import(\"./consulta\"));\n\nconst parecerDescritivoRoutes = [\n {\n path: \"/parecerdescritivo/consulta\",\n component: ConsultaParecerDescritivo,\n auth: authRoles.secretaria,\n },\n];\n\nexport default parecerDescritivoRoutes;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaAlunosParecerDescritivo = lazy(() =>\n import(\"./parecerdescritivo/consulta\")\n);\nconst ConsultaPlanejamentoProfessor = lazy(() =>\n import(\"./planejamento/consulta\")\n);\nconst CadastroPlanejamentoProfessor = lazy(() =>\n import(\"./planejamento/cadastro\")\n);\nconst ImpressaoPlanejamentos = lazy(() => import(\"./planejamento/impressao\"));\nconst ConsultaAlunosConsideracoes = lazy(() =>\n import(\"./consideracao/consulta\")\n);\n\nconst moduloProfessor = [\n {\n path: \"/moduloprofessor/parecerdescritivo/consulta\",\n component: ConsultaAlunosParecerDescritivo,\n auth: authRoles.professor,\n },\n {\n path: \"/moduloprofessor/planejamento/consulta\",\n component: ConsultaPlanejamentoProfessor,\n auth: authRoles.professor,\n },\n {\n path: \"/moduloprofessor/planejamento/cadastro\",\n component: CadastroPlanejamentoProfessor,\n auth: authRoles.professor,\n },\n {\n path: \"/moduloprofessor/planejamento/impressao\",\n component: ImpressaoPlanejamentos,\n auth: authRoles.professor,\n },\n {\n path: \"/moduloprofessor/consideracao/consulta\",\n component: ConsultaAlunosConsideracoes,\n auth: authRoles.professor,\n },\n];\n\nexport default moduloProfessor;\n","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst ConsultaConsideracoes = lazy(() => import(\"./consulta\"));\nconst ImpressaoConsideracoes = lazy(() => import(\"./impressao\"));\n\nconst consideracoesRoutes = [\n {\n path: \"/consideracao/consulta\",\n component: ConsultaConsideracoes,\n auth: authRoles.secretaria,\n },\n {\n path: \"/consideracao/impressao\",\n component: ImpressaoConsideracoes,\n auth: authRoles.secretaria,\n }, \n];\n\nexport default consideracoesRoutes;","import { lazy } from \"react\";\nimport { authRoles } from \"app/auth/authRoles\";\n\nconst Recados = lazy(() => import(\"./recados\"));\n\nconst recadoRoutes = [\n {\n path: \"/recado/recados\",\n component: Recados,\n auth: authRoles.secretaria,\n },\n];\n\nexport default recadoRoutes;","import {\n LOGIN_SUCCESS,\n LOGIN_ERROR,\n LOGIN_LOADING,\n RESET_PASSWORD\n} from \"../actions/LoginActions\";\n\nconst initialState = {\n success: false,\n loading: false,\n error: {\n username: null,\n password: null\n }\n};\n\nconst LoginReducer = function(state = initialState, action) {\n switch (action.type) {\n case LOGIN_LOADING: {\n return {\n ...state,\n loading: true\n };\n }\n case LOGIN_SUCCESS: {\n return {\n ...state,\n success: true,\n loading: false\n };\n }\n case RESET_PASSWORD: {\n return {\n ...state,\n success: true,\n loading: false\n };\n }\n case LOGIN_ERROR: {\n return {\n success: false,\n loading: false,\n error: action.data\n };\n }\n default: {\n return state;\n }\n }\n};\n\nexport default LoginReducer;\n","import {\n SET_USER_DATA,\n REMOVE_USER_DATA,\n USER_LOGGED_OUT\n} from \"../actions/UserActions\";\n\nconst initialState = {};\n\nconst userReducer = function(state = initialState, action) {\n switch (action.type) {\n case SET_USER_DATA: {\n return {\n ...state,\n ...action.data\n };\n }\n case REMOVE_USER_DATA: {\n return {\n ...state\n };\n }\n case USER_LOGGED_OUT: {\n return state;\n }\n default: {\n return state;\n }\n }\n};\n\nexport default userReducer;\n","import layout1Settings from \"./Layout1/Layout1Settings\";\nimport layout2Settings from \"./Layout2/Layout2Settings\";\nimport layout3Settings from \"./Layout3/Layout3Settings\";\n\nexport const GullLayoutSettings = {\n activeLayout: \"layout1\", // layout1, layout2\n dir: \"ltr\", // ltr, rtl\n layout1Settings,\n layout2Settings,\n layout3Settings,\n customizer: {\n show: true,\n open: true\n },\n footer: {\n show: true\n }\n};\n","const layout1Settings = {\n leftSidebar: {\n open: true,\n secondaryNavOpen: false,\n },\n searchBox: {\n open: false\n }\n};\n\nexport default layout1Settings;\n","const layout2Settings = {\n leftSidebar: {\n theme: \"sidebar-dark-purple\",\n },\n header: {\n show: true\n },\n searchBox: {\n open: false\n },\n secondarySidebar: { show: false },\n};\n\nexport default layout2Settings;\n","const layout3Settings = {\n leftSidebar: {\n open: false,\n mode: \"large\", // large, close, compact\n theme: \"slateDark1\", // View all valid theme colors inside GullTheme/themeColors.js\n bgOpacity: 0.96, // 0 ~ 1\n bgImgURL: \"/assets/images/sidebar/sidebar-bg-dark.jpg\"\n },\n header: {\n show: true,\n fixed: true,\n theme: \"white\" // View all valid theme colors inside GullTheme/themeColors.js\n },\n searchBox: {\n open: false\n },\n secondarySidebar: { show: true },\n footer: { show: true }\n};\n\nexport default layout3Settings;\n","import {\n SET_LAYOUT_SETTINGS,\n SET_DEFAULT_LAYOUT_SETTINGS\n} from \"../actions/LayoutActions\";\nimport { GullLayoutSettings } from \"../../GullLayout/settings\";\n\nconst initialState = {\n settings: {\n ...GullLayoutSettings\n },\n defaultSettings: {\n ...GullLayoutSettings\n }\n};\n\nconst LayoutReducer = (state = initialState, action) => {\n switch (action.type) {\n case SET_LAYOUT_SETTINGS:\n return {\n ...state,\n settings: { ...action.data }\n };\n case SET_DEFAULT_LAYOUT_SETTINGS:\n return {\n ...state,\n defaultSettings: { ...action.data }\n };\n default:\n return { ...state };\n }\n};\n\nexport default LayoutReducer;\n","import axios from \"axios\";\n\nexport const GET_ALL_BOARD = \"GET_ALL_BOARD\";\nexport const GET_BOARD_BY_ID = \"GET_BOARD_BY_ID\";\nexport const ADD_BOARD = \"ADD_BOARD\";\nexport const ADD_MEMBER_IN_BOARD = \"ADD_MEMBER_IN_BOARD\";\nexport const DELETE_MEMBER_FROM_BOARD = \"DELETE_MEMBER_FROM_BOARD\";\nexport const GET_ALL_MEMBERS = \"GET_ALL_MEMBERS\";\nexport const GET_ALL_LABELS = \"GET_ALL_LABELS\";\n\nexport const ADD_LIST = \"ADD_LIST\";\nexport const RENAME_LIST = \"RENAME_LIST\";\nexport const REORDER_LIST = \"REORDER_LIST\";\nexport const DELETE_LIST = \"DELETE_LIST\";\n\nexport const ADD_CARD = \"ADD_CARD\";\nexport const UPDATE_CARD = \"UPDATE_CARD\";\nexport const REORDER_CARD = \"REORDER_CARD\";\nexport const REORDER_CARD_LIST = \"REORDER_CARD_LIST\";\nexport const MOVE_CARD = \"MOVE_CARD\";\nexport const DELETE_CARD = \"DELETE_CARD\";\n\nexport const getAllMembers = () => {\n return dispatch => {\n axios.get(\"/api/scrum-board/all-member\").then(res => {\n dispatch({\n type: GET_ALL_MEMBERS,\n payload: res.data\n });\n });\n };\n};\n\nexport const getAllLabels = () => {\n return dispatch => {\n axios.get(\"/api/scrum-board/all-label\").then(res => {\n dispatch({\n type: GET_ALL_LABELS,\n payload: res.data\n });\n });\n };\n};\n\n// BOARD RELATED ACTIONS\nexport const getAllBoard = () => {\n return dispatch => {\n axios.get(\"/api/scrum-board/all-board\").then(res => {\n dispatch({\n type: GET_ALL_BOARD,\n payload: res.data\n });\n });\n };\n};\n\nexport const addNewBoard = boardTitle => {\n return dispatch => {\n axios.post(\"/api/scrum-board/add-board\", boardTitle).then(res => {\n dispatch({\n type: ADD_BOARD,\n payload: res.data\n });\n });\n };\n};\n\nexport const getBoardById = id => {\n return dispatch => {\n axios.get(\"/api/scrum-board\", { data: id }).then(res => {\n dispatch({\n type: GET_BOARD_BY_ID,\n payload: res.data\n });\n });\n };\n};\n\nexport const addMemberInBoard = ({ boardId, memberId }) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/add-member\", { boardId, memberId })\n .then(res => {\n dispatch({\n type: ADD_MEMBER_IN_BOARD,\n payload: res.data\n });\n });\n };\n};\n\nexport const deleteMemberFromBoard = ({ boardId, memberId }) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/delete-member\", { boardId, memberId })\n .then(res => {\n dispatch({\n type: DELETE_MEMBER_FROM_BOARD,\n payload: res.data\n });\n });\n };\n};\n\nexport const addListInBoard = ({ boardId, listTitle }) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/add-column\", { boardId, listTitle })\n .then(res => {\n dispatch({\n type: ADD_LIST,\n payload: res.data\n });\n });\n };\n};\n\nexport const renameListInBoard = ({ boardId, listTitle, listId }) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/rename-column\", { boardId, listTitle, listId })\n .then(res => {\n dispatch({\n type: RENAME_LIST,\n payload: res.data\n });\n });\n };\n};\n\nexport const reorderList = (boardId, startIndex, endIndex) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/reorder-list\", { boardId, startIndex, endIndex })\n .then(res => {\n dispatch({\n type: REORDER_LIST,\n payload: res.data\n });\n });\n };\n};\n\nexport const deleteListFromBoard = ({ boardId, listId }) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/delete-column\", { boardId, listId })\n .then(res => {\n dispatch({\n type: DELETE_LIST,\n payload: res.data\n });\n });\n };\n};\n\nexport const addNewCardInList = ({ listId, boardId, cardTitle }) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/add-card\", { listId, boardId, cardTitle })\n .then(res => {\n dispatch({\n type: ADD_CARD,\n payload: res.data\n });\n });\n };\n};\n\nexport const reorderCardInList = (boardId, listId, startIndex, endIndex) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/reorder-card\", {\n boardId,\n listId,\n startIndex,\n endIndex\n })\n .then(res => {\n dispatch({\n type: REORDER_CARD_LIST,\n payload: res.data\n });\n });\n };\n};\n\nexport const moveCardInList = (\n boardId,\n sourcelistId,\n destinationlistId,\n source,\n destination\n) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/move-card\", {\n boardId,\n sourcelistId,\n destinationlistId,\n source,\n destination\n })\n .then(res => {\n dispatch({\n type: MOVE_CARD,\n payload: res.data\n });\n });\n };\n};\n\nexport const updateCardInList = (boardId, listId, card) => {\n return dispatch => {\n axios\n .post(\"/api/scrum-board/update-card\", { boardId, listId, card })\n .then(res => {\n dispatch({\n type: UPDATE_CARD,\n payload: res.data\n });\n });\n };\n};\n","import {\n GET_ALL_BOARD,\n ADD_BOARD,\n GET_BOARD_BY_ID,\n ADD_LIST,\n RENAME_LIST,\n DELETE_LIST,\n ADD_CARD,\n GET_ALL_MEMBERS,\n GET_ALL_LABELS,\n ADD_MEMBER_IN_BOARD,\n DELETE_MEMBER_FROM_BOARD,\n UPDATE_CARD,\n MOVE_CARD,\n REORDER_LIST,\n REORDER_CARD_LIST\n} from \"../actions/ScrumBoardActions\";\n\nconst initialState = {};\n\nconst ScrumBoardReducer = function(state = initialState, action) {\n switch (action.type) {\n case GET_ALL_MEMBERS: {\n return {\n ...state,\n memberList: [...action.payload]\n };\n }\n case GET_ALL_LABELS: {\n return {\n ...state,\n labelList: [...action.payload]\n };\n }\n case GET_ALL_BOARD: {\n return {\n ...state,\n boardList: [...action.payload]\n };\n }\n case ADD_BOARD: {\n return {\n ...state,\n boardList: [...action.payload]\n };\n }\n case GET_BOARD_BY_ID: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case ADD_MEMBER_IN_BOARD: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case DELETE_MEMBER_FROM_BOARD: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case ADD_LIST: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case RENAME_LIST: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case DELETE_LIST: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case REORDER_LIST: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case ADD_CARD: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case UPDATE_CARD: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case REORDER_CARD_LIST: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n case MOVE_CARD: {\n return {\n ...state,\n board: { ...action.payload }\n };\n }\n default: {\n return state;\n }\n }\n};\n\nexport default ScrumBoardReducer;\n","import axios from \"axios\";\n\nexport const GET_NOTIFICATION = \"GET_NOTIFICATION\";\nexport const CREATE_NOTIFICATION = \"CREATE_NOTIFICATION\";\nexport const DELETE_NOTIFICATION = \"DELETE_NOTIFICATION\";\nexport const DELETE_ALL_NOTIFICATION = \"DELETE_ALL_NOTIFICATION\";\n\nexport const getNotification = () => dispatch => {\n axios.get(\"/api/notification\").then(res => {\n dispatch({\n type: GET_NOTIFICATION,\n payload: res.data\n });\n });\n};\n\nexport const deleteNotification = id => dispatch => {\n axios.post(\"/api/notification/delete\", { id }).then(res => {\n dispatch({\n type: DELETE_NOTIFICATION,\n payload: res.data\n });\n });\n};\n\nexport const deleteAllNotification = () => dispatch => {\n axios.post(\"/api/notification/delete-all\").then(res => {\n dispatch({\n type: DELETE_ALL_NOTIFICATION,\n payload: res.data\n });\n });\n};\n\nexport const createNotification = notification => dispatch => {\n axios.post(\"/api/notification/add\", { notification }).then(res => {\n dispatch({\n type: CREATE_NOTIFICATION,\n payload: res.data\n });\n });\n};\n","import {\n GET_NOTIFICATION,\n CREATE_NOTIFICATION,\n DELETE_ALL_NOTIFICATION,\n DELETE_NOTIFICATION\n} from \"../actions/NotificationActions\";\n\nconst initialState = [];\n\nconst NotificationReducer = function(state = initialState, action) {\n switch (action.type) {\n case GET_NOTIFICATION: {\n return [...action.payload];\n }\n case CREATE_NOTIFICATION: {\n return [...action.payload];\n }\n case DELETE_NOTIFICATION: {\n return [...action.payload];\n }\n case DELETE_ALL_NOTIFICATION: {\n return [...action.payload];\n }\n default: {\n return [...state];\n }\n }\n};\n\nexport default NotificationReducer;\n","import axios from \"axios\";\n\nexport const GET_PRODUCT_LIST = \"GET_PRODUCT_LIST\";\nexport const GET_CART_LIST = \"GET_CART_LIST\";\nexport const GET_CATEGORY_LIST = \"GET_CATEGORY_LIST\";\nexport const GET_RATING_LIST = \"GET_RATING_LIST\";\nexport const GET_BRAND_LIST = \"GET_BRAND_LIST\";\n\nexport const ADD_PRODUCT_TO_CART = \"ADD_PRODUCT_TO_CART\";\nexport const DELETE_PRODUCT_FROM_CART = \"DELETE_PRODUCT_FROM_CART\";\n\nexport const UPDATE_CART_AMOUNT = \"UPDATE_CART_AMOUNT\";\n\nexport const getProductList = () => dispatch => {\n axios.get(\"/api/ecommerce/get-product-list\").then(res => {\n dispatch({\n type: GET_PRODUCT_LIST,\n payload: res.data\n });\n });\n};\n\nexport const getCategoryList = () => dispatch => {\n axios.get(\"/api/ecommerce/get-category-list\").then(res => {\n dispatch({\n type: GET_CATEGORY_LIST,\n payload: res.data\n });\n });\n};\n\nexport const getRatingList = () => dispatch => {\n axios.get(\"/api/ecommerce/get-rating-list\").then(res => {\n dispatch({\n type: GET_RATING_LIST,\n payload: res.data\n });\n });\n};\n\nexport const getBrandList = () => dispatch => {\n axios.get(\"/api/ecommerce/get-brand-list\").then(res => {\n dispatch({\n type: GET_BRAND_LIST,\n payload: res.data\n });\n });\n};\n\nexport const getCartList = uid => dispatch => {\n axios.get(\"/api/ecommerce/get-cart-list\", { data: uid }).then(res => {\n dispatch({\n type: GET_CART_LIST,\n payload: res.data\n });\n });\n};\n\nexport const addProductToCart = (uid, productId) => dispatch => {\n axios.post(\"/api/ecommerce/add-to-cart\", { uid, productId }).then(res => {\n dispatch({\n type: ADD_PRODUCT_TO_CART,\n payload: res.data\n });\n });\n};\n\nexport const deleteProductFromCart = (uid, productId) => dispatch => {\n axios\n .post(\"/api/ecommerce/delete-from-cart\", { uid, productId })\n .then(res => {\n dispatch({\n type: DELETE_PRODUCT_FROM_CART,\n payload: res.data\n });\n });\n};\n\nexport const updateCartAmount = (uid, productId, amount) => dispatch => {\n axios\n .post(\"/api/ecommerce/update-cart-amount\", { uid, productId, amount })\n .then(res => {\n dispatch({\n type: UPDATE_CART_AMOUNT,\n payload: res.data\n });\n });\n};\n","import {\n GET_PRODUCT_LIST,\n GET_CART_LIST,\n ADD_PRODUCT_TO_CART,\n DELETE_PRODUCT_FROM_CART,\n UPDATE_CART_AMOUNT,\n GET_CATEGORY_LIST,\n GET_RATING_LIST,\n GET_BRAND_LIST\n} from \"../actions/EcommerceActions\";\n\nconst initialState = {\n productList: [],\n cartList: []\n};\n\nconst EcommerceReducer = function(state = initialState, action) {\n switch (action.type) {\n case GET_PRODUCT_LIST: {\n return {\n ...state,\n productList: [...action.payload]\n };\n }\n case GET_CATEGORY_LIST: {\n return {\n ...state,\n categoryList: [...action.payload]\n };\n }\n case GET_RATING_LIST: {\n return {\n ...state,\n ratingList: [...action.payload]\n };\n }\n case GET_BRAND_LIST: {\n return {\n ...state,\n brandList: [...action.payload]\n };\n }\n case GET_CART_LIST: {\n return {\n ...state,\n cartList: [...action.payload]\n };\n }\n case ADD_PRODUCT_TO_CART: {\n return {\n ...state,\n cartList: [...action.payload]\n };\n }\n case DELETE_PRODUCT_FROM_CART: {\n return {\n ...state,\n cartList: [...action.payload]\n };\n }\n case UPDATE_CART_AMOUNT: {\n return {\n ...state,\n cartList: [...action.payload]\n };\n }\n default: {\n return {\n ...state\n };\n }\n }\n};\n\nexport default EcommerceReducer;\n","import { combineReducers } from \"redux\";\nimport LoginReducer from \"./LoginReducer\";\nimport UserReducer from \"./UserReducer\";\nimport LayoutReducer from \"./LayoutReducer\";\nimport ScrumBoardReducer from \"./ScrumBoardReducer\";\nimport NotificationReducer from \"./NotificationReducer\";\nimport EcommerceReducer from \"./EcommerceReducer\";\n\nconst RootReducer = combineReducers({\n login: LoginReducer,\n user: UserReducer,\n layout: LayoutReducer,\n scrumboard: ScrumBoardReducer,\n notification: NotificationReducer,\n ecommerce: EcommerceReducer\n});\n\nexport default RootReducer;\n","import thunk from \"redux-thunk\";\nimport { createStore, applyMiddleware, compose } from \"redux\";\nimport RootReducer from \"./reducers/RootReducer\";\n\nconst initialState = {};\n\nconst middlewares = [thunk];\nlet devtools = x => x;\n\nif (\n process.env.NODE_ENV !== \"production\" &&\n process.browser &&\n window.__REDUX_DEVTOOLS_EXTENSION__\n) {\n devtools = window.__REDUX_DEVTOOLS_EXTENSION__();\n}\n\nexport const Store = createStore(\n RootReducer,\n initialState,\n compose(applyMiddleware(...middlewares), devtools)\n);\n","import React, { Component, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { PropTypes } from \"prop-types\";\nimport { setUserData } from \"../redux/actions/UserActions\";\nimport jwtAuthService from \"../services/jwtAuthService\";\nimport localStorageService from \"../services/localStorageService\";\nimport firebaseAuthService from \"../services/firebase/firebaseAuthService\";\n\nclass Auth extends Component {\n state = {};\n\n constructor(props) {\n super(props);\n this.props.setUserData(localStorageService.getItem(\"auth_user\"));\n //this.checkJwtAuth();\n //this.checkFirebaseAuth();\n }\n\n checkJwtAuth = () => {\n jwtAuthService.loginWithToken().then((user) => {\n this.props.setUserData(user);\n });\n };\n\n checkFirebaseAuth = () => {\n firebaseAuthService.checkAuthStatus((user) => {\n if (user) {\n console.log(user.uid);\n console.log(user.email);\n console.log(user.emailVerified);\n } else {\n console.log(\"not logged in\");\n }\n });\n };\n\n checkWmAuth = () => {\n //this.props.setUserData(user);\n };\n\n render() {\n const { children } = this.props;\n return {children};\n }\n}\n\nconst mapStateToProps = (state) => ({\n setUserData: PropTypes.func.isRequired,\n login: state.login,\n});\n\nexport default connect(mapStateToProps, { setUserData })(Auth);\n","import \"../fake-db\";\nimport React, { Suspense, useContext, createContext } from \"react\";\nimport \"../styles/app/app.scss\";\n\nimport { Provider } from \"react-redux\";\nimport { Router } from \"react-router-dom\";\nimport AppContext from \"./appContext\";\nimport history from \"@history\";\n\nimport routes from \"./RootRoutes\";\nimport { Store } from \"./redux/Store\";\nimport { renderRoutes } from \"react-router-config\";\nimport Auth from \"./auth/Auth\";\nimport RootRoutes from \"./RootRoutes\";\nimport { Loading } from \"@gull\";\n//import { ChamadaBackgroundService } from \"./services/backGroundService\";\nimport \"./services/SocketService\";\n\nfunction App() {\n return (\n \n \n \n }>\n {renderRoutes(RootRoutes)}\n \n \n \n \n );\n}\n\nexport default App;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.scss\";\nimport App from \"./app/App\";\n//import * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\n//serviceWorker.unregister();\n","import React from \"react\";\n\nconst styles = {\n position: \"fixed\",\n left: 0,\n right: 0,\n top: \"calc(50% - 20px)\",\n margin: \"auto\",\n height: \"40px\",\n width: \"40px\",\n zIndex: 324324324\n};\n\nconst Loading = () => {\n return (\n
\n
\n
\n );\n};\n\nexport default Loading;\n","const firebaseConfig = {\n apiKey: \"YOUR API KEY\",\n authDomain: \"AUTH DOMAIN\",\n databaseURL: \"DATABASE URL\",\n projectId: \"PROJECT ID\",\n storageBucket: \"STORAGE BUCKET\",\n messagingSenderId: \"MESSAGING SENDER ID\",\n appId: \"APP ID\"\n};\n\nexport default firebaseConfig;\n","import firebase from \"firebase/app\";\nimport \"firebase/auth\";\nimport \"firebase/firebase-firestore\";\nimport firebaseConfig from \"./firebaseConfig\";\n\nclass FirebaseAuthService {\n auth;\n firestore;\n // database;\n // storage;\n\n googleProvider;\n facebookProvider;\n twitterProvider;\n\n constructor() {\n // UNCOMMENT IF YOU WANT TO USE FIREBASE\n\n // this.init();\n // this.auth = firebase.auth();\n // this.firestore = firebase.firestore();\n\n // this.database = firebase.database();\n // this.storage = firebase.storage();\n \n // this.googleProvider = new firebase.auth.GoogleAuthProvider();\n // this.facebookProvider = new firebase.auth.FacebookAuthProvider();\n // this.twitterProvider = new firebase.auth.TwitterAuthProvider();\n }\n\n init = () => {\n firebase.initializeApp(firebaseConfig);\n };\n\n checkAuthStatus = callback => {\n this.auth.onAuthStateChanged(callback);\n };\n\n signUpWithEmailAndPassword = (email, password) => {\n return this.auth.createUserWithEmailAndPassword(email, password);\n };\n\n signInWithEmailAndPassword = (email, password) => {\n return this.auth.signInWithEmailAndPassword(email, password);\n };\n\n signInWithPopup = media => {\n switch (media) {\n case \"google\":\n return this.auth.signInWithPopup(this.googleProvider);\n\n case \"facebook\":\n return this.auth.signInWithPopup(this.facebookProvider);\n\n case \"twitter\":\n return this.auth.signInWithPopup(this.twitterProvider);\n\n default:\n break;\n }\n };\n\n signInWithPhoneNumber = phoneNumber => {\n return this.auth.signInWithPhoneNumber(phoneNumber);\n };\n\n getUserData = docId => {\n // generally it's better to use uid for docId\n this.firestore\n .collection(\"users\")\n .doc(docId)\n .get()\n .then(doc => {\n console.log(doc.data());\n });\n };\n\n getAllUser = () => {\n this.firestore\n .collection(\"users\")\n .get()\n .then(docList => {\n docList.forEach(doc => {\n console.log(doc.data());\n });\n });\n };\n\n signOut = () => {\n return this.auth.signOut();\n };\n}\n\nconst instance = new FirebaseAuthService();\n\nexport default instance;\n","import React, { Component } from \"react\";\nimport { classList } from \"@utils\";\n\nclass DropDownMenuItem extends Component {\n state = {\n collapsed: true\n };\n elementRef = React.createRef();\n\n componentHeight = 0;\n calcaulateHeight(node) {\n if (node.name !== \"child\") {\n for (let child of node.children) {\n this.calcaulateHeight(child);\n }\n }\n this.componentHeight += node.clientHeight;\n return;\n }\n componentDidMount() {\n this.calcaulateHeight(this.elementRef);\n\n // OPEN DROPDOWN IF CHILD IS ACTIVE\n // let { location } = this.props;\n // for (let child of this.elementRef.children) {\n // if (child.getAttribute(\"href\") === location.pathname) {\n // this.setState({ collapsed: false });\n // }\n // }\n }\n onItemClick = () => {\n this.setState({ collapsed: !this.state.collapsed });\n };\n\n render() {\n let { collapsed } = this.state;\n let { children } = this.props;\n let { name, icon } = this.props.item;\n\n return (\n \n
\n \n {name}\n \n
\n\n (this.elementRef = el)}\n style={\n collapsed\n ? { maxHeight: \"0px\" }\n : { maxHeight: this.componentHeight + \"px\" }\n }\n >\n {children}\n \n \n );\n }\n}\n\nexport default DropDownMenuItem;\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { classList } from \"@utils\";\nimport DropDownMenuItem from \"./DropDownMenuItem\";\n\nclass DropDownMenu extends Component {\n state = {\n open: false\n };\n\n onItemClick = e => {\n e.preventDefault();\n this.setState({ open: !this.state.open });\n };\n\n renderLevels = items =>\n items.map((item, i) => {\n if (item.sub) {\n return (\n \n {this.renderLevels(item.sub)}\n \n );\n } else {\n return (\n \n \n \n {item.name}\n \n \n );\n }\n });\n\n render() {\n return
    {this.renderLevels(this.props.menu)}
;\n }\n}\n\nexport default DropDownMenu;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport ReactQuill from \"react-quill\";\n\n/*\n * Simple editor component that takes placeholder text as a prop\n */\n\nconst RichTextEditor = ({\n content,\n placeholder,\n handleContentChange,\n theme = \"snow\",\n modules = RichTextEditor.modules\n}) => {\n return (\n \n );\n};\n\n/*\n * Quill modules to attach to editor\n * See https://quilljs.com/docs/modules/ for complete options\n */\nRichTextEditor.modules = {\n toolbar: [\n [{ font: [] }],\n [{ size: [\"small\", false, \"large\", \"huge\"] }], // custom dropdown\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\n\n [\"bold\", \"italic\", \"underline\", \"strike\"], // toggled buttons\n [\"blockquote\", \"code-block\", \"link\"],\n\n [{ script: \"sub\" }, { script: \"super\" }], // superscript/subscript\n [{ color: [] }, { background: [] }], // dropdown with defaults from theme\n [{ align: [] }],\n\n [\"image\", \"video\"],\n\n [{ header: 1 }, { header: 2 }], // custom button values\n [{ list: \"ordered\" }, { list: \"bullet\" }],\n [{ indent: \"-1\" }, { indent: \"+1\" }], // outdent/indent\n [{ direction: \"rtl\" }], // text direction\n\n [\"clean\"],\n \n ],\n clipboard: {\n // toggle to add extra line breaks when pasting HTML:\n matchVisual: true\n }\n};\n\n/*\n * Quill editor formats\n * See https://quilljs.com/docs/formats/\n */\nRichTextEditor.formats = [\n \"align\",\n \"background\",\n \"bold\",\n \"blockquote\",\n \"bullet\",\n \"color\",\n \"code\",\n \"code-block\",\n \"clean\",\n \"direction\",\n \"font\",\n \"header\",\n \"italic\",\n \"indent\",\n \"image\",\n \"list\",\n \"link\",\n \"size\",\n \"strike\",\n \"script\",\n \"underline\",\n \"video\",\n];\n\n/*\n * PropType validation\n */\nRichTextEditor.propTypes = {\n placeholder: PropTypes.string\n};\n\nexport default RichTextEditor;\n","import React, { Fragment } from \"react\";\nimport { NavLink } from \"react-router-dom\";\n\nconst Breadcrumb = ({ routeSegments }) => {\n return (\n \n
\n {routeSegments ? (\n \n

{routeSegments[routeSegments.length - 1][\"name\"]}

\n
\n ) : null}\n
    \n {routeSegments\n ? routeSegments.map((route, index) =>\n index !== routeSegments.length - 1 ? (\n
  • \n \n \n {route.name}\n \n \n
  • \n ) : (\n
  • \n {route.name}\n
  • \n )\n )\n : null}\n
\n
\n
\n
\n );\n};\n\nexport default Breadcrumb;\n","import React, { Component } from \"react\";\nimport Highlight from \"react-highlight.js\";\nimport ClipboardJS from 'clipboard';\nimport { initCodeViewer } from \"@utils\";\n\nclass CodeViewer extends Component {\n constructor(props) {\n super(props);\n this.elem = React.createRef();\n }\n state = {};\n\n componentDidMount() {\n const pre = this.elem.current.refs.code.parentElement;\n\n // add/remove class to pre tag\n pre.classList.add('collapsed'); \n pre.addEventListener('click', (e) => {\n e.target.classList.remove('collapsed');\n });\n\n // Add copy button\n var copyButton = document.createElement(\"BUTTON\"); \n var copyButtonText = document.createTextNode(\"Copy\");\n copyButton.appendChild(copyButtonText);\n copyButton.classList.add('btn', 'btn-sm', 'btn-primary', 'btn-copy')\n pre.appendChild(copyButton);\n\n // Clipboard\n new ClipboardJS(copyButton, {\n text: (trigger) => {\n return this.elem.current.props.children;\n }\n });\n \n }\n\n render() {\n return
\n {this.props.children}\n
;\n }\n}\n\nexport default CodeViewer;\n","import React, { Component } from \"react\";\nimport { isMobile } from \"@utils\";\n\nclass GullSidenav extends Component {\n handleResizeRef;\n\n state = {\n mobile: isMobile()\n };\n\n handleWindowResize = () => {\n return event => {\n if (event.target.innerWidth < 768) {\n this.setState({ mobile: true });\n } else this.setState({ mobile: false });\n };\n };\n\n componentDidMount() {\n this.handleResizeRef = this.handleWindowResize();\n if (window) window.addEventListener(\"resize\", this.handleResizeRef);\n }\n\n componentWillUnmount() {\n if (this.handleResizeRef)\n window.removeEventListener(\"resize\", this.handleResizeRef);\n }\n\n render() {\n let {\n open,\n children,\n toggleSidenav,\n width = \"220px\",\n bgClass\n } = this.props;\n\n let { mobile } = this.state;\n\n return (\n
\n \n {children}\n
\n {open && mobile && (\n
\n )}\n
\n );\n }\n}\n\nexport default GullSidenav;\n","import React from \"react\";\nimport { Card } from \"react-bootstrap\";\n\nconst SimpleCard = ({ title, children, className, subtitle }) => {\n return (\n \n \n {(title || subtitle) && (\n
\n {title &&

{title}

}\n {subtitle &&
{subtitle}
}\n
\n )}\n {children}\n
\n
\n );\n};\n\nexport default SimpleCard;\n"],"sourceRoot":""}