{"version":3,"sources":["configs/themeConfig.js","redux/navbar.js","redux/rootReducer.js","redux/store.js","configs/acl/initialAbility.js","configs/acl/ability.js","utility/context/ThemeColors.js","configs/i18n/index.js","@core/components/spinner/Fallback-spinner.js","@core/components/ripple-button/index.js","serviceWorker.js","index.js","utility/context/Can.js","redux/layout.js","assets/images/logo/logo.png","@core/auth/jwt/jwtDefaultConfig.js","@core/auth/jwt/jwtService.js","auth/jwt/useJwt.js","@core/auth/jwt/useJwt.js","redux/authentication.js","assets/images/logo/logo.svg"],"names":["user","JSON","parse","localStorage","getItem","themeConfig","app","appName","comName","appLogoImage","require","default","layout","isRTL","skin","type","contentWidth","menu","isHidden","isCollapsed","navbar","backgroundColor","footer","customizer","scrollTop","toastPosition","getBookmarks","createAsyncThunk","async","response","axios","get","data","suggestions","bookmarks","updateBookmarked","post","id","layoutSlice","createSlice","name","initialState","query","reducers","handleSearchQuery","state","action","payload","extraReducers","builder","addCase","fulfilled","objectToUpdate","find","item","isBookmarked","bookmarkIndex","findIndex","x","push","splice","actions","rootReducer","auth","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","userData","existingAbility","ability","Ability","subject","ThemeColors","createContext","ThemeContext","_ref","children","colors","setColors","useState","useEffect","window","getHex","color","getComputedStyle","document","body","getPropertyValue","trim","obj","primary","light","concat","main","secondary","success","danger","warning","info","dark","_jsx","Provider","value","i18n","use","Backend","LanguageDetector","initReactI18next","init","lng","backend","loadPath","process","fallbackLng","debug","keySeparator","react","useSuspense","interpolation","escapeValue","formatSeparator","SpinnerComponent","_jsxs","className","src","logo","alt","Button","Ripple","onClick","rest","mounted","setMounted","isRippling","setIsRippling","coords","setCoords","y","setTimeout","classnames","e","rect","target","getBoundingClientRect","clientX","left","clientY","top","style","Boolean","location","hostname","match","LazyApp","lazy","container","getElementById","createRoot","render","BrowserRouter","Suspense","fallback","Spinner","AbilityContext","Toaster","position","toastOptions","navigator","serviceWorker","ready","then","registration","unregister","createContextualCan","Consumer","initialSkin","initialDirection","lastLayout","menuCollapsed","initialMenuCollapsed","footerType","navbarType","menuHidden","navbarColor","handleRTL","setItem","stringify","handleSkin","handleLayout","handleFooterType","handleNavbarType","handleMenuHidden","handleLastLayout","handleNavbarColor","handleContentWidth","handleMenuCollapsed","loginEndpoint","registerEndpoint","refreshEndpoint","logoutEndpoint","tokenType","storageTokenKeyName","storageRefreshTokenKeyName","JwtService","constructor","jwtOverrideConfig","jwtConfig","jwtDefaultConfig","isAlreadyFetchingAccessToken","subscribers","this","interceptors","request","config","accessToken","getToken","headers","Authorization","error","Promise","reject","originalRequest","status","refreshToken","r","setToken","setRefreshToken","onAccessTokenFetched","resolve","addSubscriber","cm","filter","callback","getRefreshToken","login","_len","arguments","length","args","Array","_key","register","_len2","_key2","jwt","authSlice","initialUser","handleLogin","handleLogout","removeItem"],"mappings":"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","file":"static/js/main.a6ca83de.chunk.js","sourcesContent":["// You can customize the template with the help of this file\r\n\r\n//Template config options\r\n \r\nconst user = JSON.parse(localStorage.getItem('userData'))\r\nconst themeConfig = {\r\n \r\n app: {\r\n appName: user && user[\"comi\"] ? user[\"comi\"].comName : \"Encash\",\r\n appLogoImage: require(\"@src/assets/images/logo/logo.svg\").default\r\n },\r\n layout: {\r\n isRTL: false,\r\n skin: \"bordered\", // light, dark, bordered, semi-dark\r\n type: \"horizontal\", // vertical, horizontal\r\n contentWidth: \"boxed\", // full, boxed\r\n menu: {\r\n isHidden: false,\r\n isCollapsed: false\r\n },\r\n navbar: {\r\n // ? For horizontal menu, navbar type will work for navMenu type\r\n type: \"floating\", // static , sticky , floating, hidden\r\n backgroundColor: \"success\" // BS color options [primary, success, etc]\r\n },\r\n footer: {\r\n type: \"static\" // static, sticky, hidden\r\n },\r\n customizer: true,\r\n scrollTop: true, // Enable scroll to top button\r\n toastPosition: \"top-right\"// top-left, top-center, top-right, bottom-left, bottom-center, bottom-right\r\n }\r\n}\r\n\r\nexport default themeConfig\r\n","// ** Redux Imports\nimport { createSlice, createAsyncThunk } from '@reduxjs/toolkit'\n\n// ** Axios Imports\nimport axios from 'axios'\n\nexport const getBookmarks = createAsyncThunk('layout/getBookmarks', async () => {\n const response = await axios.get('/api/bookmarks/data')\n return {\n data: response.data.suggestions,\n bookmarks: response.data.bookmarks\n }\n})\n\nexport const updateBookmarked = createAsyncThunk('layout/updateBookmarked', async id => {\n await axios.post('/api/bookmarks/update', { id })\n return id\n})\n\nexport const layoutSlice = createSlice({\n name: 'layout',\n initialState: {\n query: '',\n bookmarks: [],\n suggestions: []\n },\n reducers: {\n handleSearchQuery: (state, action) => {\n state.query = action.payload\n }\n },\n extraReducers: builder => {\n builder\n .addCase(getBookmarks.fulfilled, (state, action) => {\n state.suggestions = action.payload.data\n state.bookmarks = action.payload.bookmarks\n })\n .addCase(updateBookmarked.fulfilled, (state, action) => {\n let objectToUpdate\n\n // ** find & update object\n state.suggestions.find(item => {\n if (item.id === action.payload) {\n item.isBookmarked = !item.isBookmarked\n objectToUpdate = item\n }\n })\n\n // ** Get index to add or remove bookmark from array\n const bookmarkIndex = state.bookmarks.findIndex(x => x.id === action.payload)\n\n if (bookmarkIndex === -1) {\n state.bookmarks.push(objectToUpdate)\n } else {\n state.bookmarks.splice(bookmarkIndex, 1)\n }\n })\n }\n})\n\nexport const { handleSearchQuery } = layoutSlice.actions\n\nexport default layoutSlice.reducer\n","// ** Reducers Imports\nimport navbar from './navbar'\nimport layout from './layout'\nimport auth from './authentication'\n \nconst rootReducer = {\n auth, \n navbar,\n layout \n}\n\nexport default rootReducer\n","// ** Redux Imports\nimport rootReducer from './rootReducer'\nimport { configureStore } from '@reduxjs/toolkit'\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware: getDefaultMiddleware => {\n return getDefaultMiddleware({\n serializableCheck: false\n })\n }\n})\n\nexport { store }\n","// ** Initial user ability\nexport const initialAbility = [\n {\n action: \"read\",\n subject: \"Auth\"\n }\n]\n\nexport const _ = undefined\n","import { Ability } from \"@casl/ability\"\nimport { initialAbility } from \"./initialAbility\"\n\n// Read ability from localStorage\n// * Handles auto fetching previous abilities if already logged in user\n// ? You can update this if you store user abilities to more secure place\n// ! Anyone can update localStorage so be careful and please update this\nconst userData = JSON.parse(localStorage.getItem(\"userData\"))\nconst existingAbility = userData ? userData.ability : null\n\nexport default new Ability(existingAbility || initialAbility)\n","// ** React Imports\nimport { useEffect, useState, createContext } from 'react'\n\n// ** Create Context\nconst ThemeColors = createContext()\n\nconst ThemeContext = ({ children }) => {\n // ** State\n const [colors, setColors] = useState({})\n\n //** ComponentDidMount\n useEffect(() => {\n if (window !== 'undefined') {\n //** Get variable value\n const getHex = color => window.getComputedStyle(document.body).getPropertyValue(color).trim()\n\n //** Colors obj\n const obj = {\n primary: {\n light: getHex('--bs-primary').concat('1a'),\n main: getHex('--bs-primary')\n },\n secondary: {\n light: getHex('--bs-secondary').concat('1a'),\n main: getHex('--bs-secondary')\n },\n success: {\n light: getHex('--bs-success').concat('1a'),\n main: getHex('--bs-success')\n },\n danger: {\n light: getHex('--bs-danger').concat('1a'),\n main: getHex('--bs-danger')\n },\n warning: {\n light: getHex('--bs-warning').concat('1a'),\n main: getHex('--bs-warning')\n },\n info: {\n light: getHex('--bs-info').concat('1a'),\n main: getHex('--bs-info')\n },\n dark: {\n light: getHex('--bs-dark').concat('1a'),\n main: getHex('--bs-dark')\n }\n }\n\n setColors({ ...obj })\n }\n }, [])\n\n return