{"version":3,"sources":["app/usersSlice.js","services/users.js","components/UserList.js","components/HomePage.js","app/authenticationSlice.js","components/Navbar.js","services/authentication.js","components/SignInPage.js","components/SignUpPage.js","app/validationSlice.js","services/validation.js","components/ValidationPage.js","App.js","middlewares/ToastMiddleware.js","app/downloadSlice.js","app/store.js","serviceWorker.js","index.js"],"names":["setUsersError","createAction","newUserError","editUserError","deleteUserError","validateUserError","validateUserSuccess","signInError","usersSlice","createSlice","name","initialState","users","reducers","setUsers","state","action","payload","newUser","editUser","map","user","id","deleteUser","filter","actions","axiosInstance","axios","baseURL","process","interceptors","request","use","config","headers","authorization","sessionStorage","getItem","GetUsers","dispatch","a","get","data","GetDownload","responseType","then","response","saveAs","GetDownloadTurkish","ListRow","useDispatch","Card","border","style","width","margin","Header","Body","Title","firstname","lastname","Text","username","className","Button","onClick","marginLeft","UserList","useSelector","authenticationSlice","useEffect","u","e","marginBottom","HomePage","token","isLoggedIn","userAuthenticated","setItem","logout","clear","Navbar","Nav","backgroundColor","fontFamily","display","src","variant","href","to","color","marginRight","SignUp","credentials","post","SignIn","SignInPage","useState","setUsername","password","setPassword","paddingTop","Form","onSubmit","event","preventDefault","textAlign","InputGroup","FormControl","placeholder","onChange","target","value","type","SignUpPage","firstName","setFirstName","lastName","setLastName","companyName","setCompanyName","phoneNumber","setPhoneNumber","email","setEmail","confirmPassword","setConfirmPassword","emailError","setEmailError","show","setShow","required","defaultCountry","validator","isEmail","validateEmail","FormGroup","controlId","Label","Check","label","feedback","feedbackType","disabled","length","Alert","Heading","validationSlice","validateUser","Validate","put","Validation","useParams","ValidationPage","path","children","App","undefined","exact","render","component","ToastMiddleware","next","toast","success","error","downloadSlice","file","setDownloadFile","configureStore","reducer","middleware","getDefaultMiddleware","concat","Boolean","window","location","hostname","match","ReactDOM","StrictMode","store","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.b9bc9120.chunk.js","sourcesContent":["import { createSlice, createAction } from '@reduxjs/toolkit';\n\nexport const setUsersError = createAction('setUsersError');\nexport const newUserError = createAction('newUserError');\nexport const editUserError = createAction('editUserError');\nexport const deleteUserError = createAction('deleteUserError');\nexport const validateUserError = createAction('validateUserError');\nexport const validateUserSuccess = createAction('validateUserSuccess');\nexport const signInError = createAction('signInError');\n\n\n\nexport const usersSlice = createSlice({\n name: 'users',\n initialState: {\n users: [],\n },\n reducers: {\n setUsers: (state, action) => {\n return { ...state, users: [...action.payload] };\n },\n newUser: (state, action) => {\n return { ...state, users: [action.payload, ...state.users] }\n },\n editUser: (state, action) => {\n const users = state.users.map(user => {\n if (user.id === action.payload.id) {\n user = action.payload;\n }\n return user;\n });\n return { ...state, users: [...users] };\n },\n deleteUser: (state, action) => {\n const users = state.users.filter(user =>\n user.id !== action.payload.id);\n return { ...state, users: [...users] };\n }\n }\n});\n\nexport const { setUsers, newUser, editUser, deleteUser } = usersSlice.actions;\n\nexport default usersSlice.reducer;\n\n","import {\n setUsersError, editUserError, newUserError, deleteUserError, \n setUsers, newUser, editUser, deleteUser\n} from '../app/usersSlice';\nimport * as axios from 'axios';\nimport { saveAs } from \"file-saver\";\n\nconst axiosInstance = axios.create({ \n baseURL: `${process.env.REACT_APP_BASE_URL}/Demousers`,\n})\n\naxiosInstance.interceptors.request.use((config) => {\n config.headers = { authorization: 'Bearer ' + sessionStorage.getItem('token') };\n return config;\n});\n\nexport const GetUsers = async (dispatch) => {\n try {\n // api call\n const { data } = await axiosInstance.get();\n dispatch(setUsers(data));\n } catch {\n dispatch(setUsersError());\n }\n}\n\nexport const GetDownload = async (dispatch) =>{\n await axiosInstance.get( `${process.env.REACT_APP_BASE_URL}/download`, {\n \n responseType: 'blob'\n }\n )\n // .then((response) => response.blob())\n // .then((blob) => {\n \n .then((response) => {\n saveAs(response.data, 'Planarter.zip');\n// // 2. Create blob link to download\n// const url = window.URL.createObjectURL(new Blob([response.data]));\n// const link = document.createElement('a');\n// link.href = url;\n// link.setAttribute('download', 'Planarter.png');\n// // 3. Append to html page\n// document.body.appendChild(link);\n// // 4. Force download\n// link.click();\n// // 5. Clean up and remove the link\n// link.parentNode.removeChild(link);\n// // .then(resp => {\n// // dispatch(setDownloadFile(resp.data));\n// // console.log(resp.data);\n });\n}\n\nexport const GetDownloadTurkish = async (dispatch) =>{\n await axiosInstance.get(`${process.env.REACT_APP_BASE_URL}/download/tr`, {\n \n responseType: 'blob'\n }\n )\n .then((response) => {\n saveAs(response.data, 'PlanarterTR.zip');\n });\n}\n\nexport const NewUser = async (dispatch, user) => {\n try {\n // api call\n const { data } = await axiosInstance.post('', user);\n dispatch(newUser(data));\n } catch {\n dispatch(newUserError());\n }\n}\n\nexport const EditUser = async (dispatch, user) => {\n try {\n // api call\n await axiosInstance.put('', user);\n dispatch(editUser(user));\n } catch {\n dispatch(editUserError());\n }\n}\n\nexport const DeleteUser = async (dispatch, user) => {\n try {\n // api call\n await axiosInstance.delete('', { data: { ...user } });\n dispatch(deleteUser(user));\n } catch {\n dispatch(deleteUserError());\n }\n}","import { React, useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { GetDownload, GetUsers, GetDownloadTurkish } from \"../services/users\";\nimport { Button, Card } from \"react-bootstrap\";\n\nconst UserList = () => {\n const dispatch = useDispatch();\n const users = useSelector((state) => state.usersSlice.users);\n const { username } = useSelector((state) => state.authenticationSlice);\n\n useEffect(() => {\n GetUsers(dispatch);\n });\n\n return users\n .filter((u) => u.username === username)\n .map((e) => (\n
\n
\n {/*

{e.id}

\n

{e.username}

*/}\n\n \n
\n
\n ));\n};\n\nconst ListRow = ({ user }) => {\n const dispatch = useDispatch();\n\n\n\n return (\n
\n \n Planarter Demo Download\n \n \n Welcome {user.firstname} {user.lastname}\n \n \n Your email: {user.username} is verified. You can download\n Planarter Demo by clicking download button.\n \n
\n \n \n
\n
\n
\n
\n );\n\n //editing operation\n // isEditing\n // ? \n // :\n\n // return users.map(e =>\n //
\n // \n //
\n //\n // );\n};\n\nexport default UserList;\n","import { ToastContainer } from 'react-toastify';\nimport UserList from './UserList';\n\nconst HomePage = () => (\n
\n \n \n
\n);\n\nexport default HomePage;","import { createSlice } from '@reduxjs/toolkit';\n\nexport const authenticationSlice = createSlice({\n name: 'authentication',\n initialState: {\n token: '',\n isLoggedIn: false,\n username: '',\n\n },\n reducers: {\n userAuthenticated: (state, action) => {\n sessionStorage.setItem('token', action.payload.token);\n return {\n ...state, ...{\n token: action.payload.token,\n isLoggedIn: true,\n username: action.payload.username,\n \n }\n }\n },\n logout: () => {\n sessionStorage.clear();\n }\n }\n});\n\nexport const { userAuthenticated, logout } = authenticationSlice.actions;\n\nexport default authenticationSlice.reducer;","import { Nav, Button, Card } from 'react-bootstrap';\nimport { NavLink } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { logout } from '../app/authenticationSlice';\n\nconst Navbar = () => {\n const { isLoggedIn } = useSelector(state => state.authenticationSlice);\n const dispatch = useDispatch();\n\n return \n};\n\nexport default Navbar;","import { userAuthenticated } from '../app/authenticationSlice';\nimport * as axios from 'axios';\nimport { newUserError, signInError } from '../app/usersSlice';\n\nconst axiosInstance = axios.create({\n baseURL: `${process.env.REACT_APP_BASE_URL}/Authentication`,\n});\n\nexport const SignUp = async (dispatch, credentials) => {\n try {\n // api call\n const { data } = await axiosInstance.post('/signup', credentials);\n dispatch(userAuthenticated(data));\n } catch {\n dispatch(newUserError()); \n }\n}\n\nexport const SignIn = async (dispatch, credentials) => {\n try {\n // api call\n const { data } = await axiosInstance.post('/signin', credentials);\n dispatch(userAuthenticated(data));\n } catch {\n dispatch(signInError());\n }\n}","import { React, useState } from 'react';\nimport { Form, Button, InputGroup, FormControl } from 'react-bootstrap';\nimport { SignIn } from '../services/authentication';\nimport { useDispatch } from 'react-redux';\nimport { ToastContainer } from 'react-toastify';\n\nconst SignInPage = () => {\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const dispatch = useDispatch();\n\n return
\n {\n event.preventDefault();\n SignIn(dispatch, { username, password });\n }}>\n

Planarter Sign In / Giriş Yap

\n \n setUsername(event.target.value)} />\n \n \n setPassword(event.target.value)} />\n \n \n \n \n
\n};\n\nexport default SignInPage;\n","import { React, useState } from \"react\";\nimport { Form, Button, InputGroup, FormControl, Alert, FormGroup } from \"react-bootstrap\";\nimport { SignUp } from \"../services/authentication\";\nimport { useDispatch } from \"react-redux\";\nimport validator from \"validator\";\nimport PhoneInput, { isValidPhoneNumber } from \"react-phone-number-input\";\nimport \"react-phone-number-input/style.css\";\nimport { logout } from \"../app/authenticationSlice\";\n\n\n\nconst SignUpPage = () => {\n const [username, setUsername] = useState(\"\");\n const [firstName, setFirstName] = useState(\"\");\n const [lastName, setLastName] = useState(\"\");\n const [companyName, setCompanyName] = useState(\"\");\n const [phoneNumber, setPhoneNumber] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n const [emailError, setEmailError] = useState(\"\");\n const [phoneNumberError, setPhoneNumberError] = useState(\"\");\n const dispatch = useDispatch();\n const [show, setShow] = useState(false);\n\n const validateEmail = (event) => {\n var email = event.target.value;\n\n if (!validator.isEmail(email)) {\n setEmailError(\"Please enter a valid email!\");\n } else {\n setEmailError(\"\");\n }\n };\n\n // const validatePhoneNumber = (event) => {\n // var phoneNumber = event.target.value\n\n // if (!validator.isMobilePhone(phoneNumber)) {\n // setPhoneNumberError('Please enter a valid phone number!')\n // } else {\n // setPhoneNumberError('')\n // }\n // }\n\n return (\n \n {\n event.preventDefault();\n if (password === confirmPassword) {\n SignUp(dispatch, {\n username,\n firstName,\n lastName,\n companyName,\n phoneNumber,\n email,\n password,\n });\n }\n setShow(true);\n }}\n >\n

Create an Account / Hesap Oluştur

\n \n setFirstName(event.target.value)}\n required\n />\n \n \n setLastName(event.target.value)}\n required\n />\n \n \n setCompanyName(event.target.value)}\n />\n \n {/* \n {setPhoneNumber(event.target.value); validatePhoneNumber(event)}} />\n \n
{phoneNumberError}
*/}\n \n \n \n \n {\n setUsername(event.target.value);\n setEmail(event.target.value);\n validateEmail(event);\n }}\n required\n />\n \n
{emailError}
\n \n setPassword(event.target.value)}\n />\n \n \n setConfirmPassword(event.target.value)}\n />\n \n \n \n \n \n \n \n \n \n\n setShow(true)}\n >\n Sign Up\n \n \n \n Hello {firstName} {lastName}\n \n

\n Verification Email has been sent to your Email address. Please click\n the link on the e-mail and verify your Email. Then you can download\n Planarter Demo Edition.\n

\n
\n
\n dispatch(logout())}\n variant=\"outline-danger\"\n href=\"/signin\"\n >\n Close & Log out\n \n
\n
\n\n {/* !isValidPhoneNumber(phoneNumberValue) */}\n {/* !validator.isMobilePhone(phoneNumber) */}\n\n {/* onClick={setEmailError} */}\n \n \n );\n};\n\nexport default SignUpPage;\n","import { createSlice } from '@reduxjs/toolkit';\n\nexport const validationSlice = createSlice(\n {\n name: 'validateUser',\n initialState: {\n id: '',\n },\n reducers:{\n validateUser: (state, action) => {\n return {...state, id:action.payload};\n }\n }\n }\n);\n\nexport const {validateUser} = validationSlice.actions;\nexport default validationSlice.reducer;","import * as axios from 'axios';\n\nimport { validateUserError, validateUserSuccess } from '../app/usersSlice';\n\n\nconst axiosInstance = axios.create({\n baseURL: `${process.env.REACT_APP_BASE_URL}`,\n});\n\n\n\nexport const Validate = async (dispatch, {id}) => {\n \n try { \n \n // api call\n await axiosInstance.put('/validation/'+ id, {id});\n dispatch(validateUserSuccess());\n } catch {\n dispatch(validateUserError()); \n }\n\n}","import { Button, Card, Form } from \"react-bootstrap\";\nimport { useDispatch } from \"react-redux\";\nimport { BrowserRouter, Route, useParams } from \"react-router-dom\";\nimport { ToastContainer } from \"react-toastify\";\nimport { validateUser } from \"../app/validationSlice\";\nimport { Validate } from \"../services/validation\";\n\nconst ValidationPage = () => {\n \n \n return (\n \n } />\n \n );\n};\n\nconst Validation = () => {\n const dispatch = useDispatch()\n let { id } = useParams();\n validateUser(dispatch, {id})\n\n return (\n
\n \n {/* First: {id}
*/}\n Planarter Mail Verification\n \n \n Confirm Your E-mail\n \n \n You can confirm your e-mail by clicking Verify E-mail button.\n \n
\n {\n event.preventDefault();\n Validate(dispatch, { id });\n }}\n href=\"/signin\"\n >\n Verify E-mail\n \n
\n
\n
\n \n
\n );\n};\n\nexport default ValidationPage;\n","import { React, useEffect } from 'react';\nimport HomePage from './components/HomePage';\nimport Navbar from './components/Navbar';\nimport SignInPage from './components/SignInPage';\nimport SignUpPage from './components/SignUpPage';\nimport { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { userAuthenticated } from './app/authenticationSlice';\nimport ValidationPage from './components/ValidationPage';\n\nconst App = () => {\n const { isLoggedIn } = useSelector(state => state.authenticationSlice);\n const dispatch = useDispatch();\n\n useEffect(() => {\n const token = sessionStorage.getItem('token');\n if (token !== undefined && token !== null) {\n dispatch(userAuthenticated({ token: token }))\n }\n }, []);\n\n return \n \n \n (isLoggedIn ? : )} />\n ()} />\n (isLoggedIn ? : )} />\n } />\n

Page not found!

} />\n
\n
\n};\n\nexport default App;\n","import {\n newUser,\n editUser,\n deleteUser,\n setUsersError,\n newUserError,\n editUserError,\n deleteUserError,\n validateUserError,\n validateUserSuccess,\n signInError,\n} from \"../app/usersSlice\";\nimport { toast } from \"react-toastify\";\n\nconst ToastMiddleware = () => (next) => (action) => {\n switch (action.type) {\n case newUser.type:\n toast.success(\"New user added successfully\");\n break;\n case editUser.type:\n toast.success(\"user edited successfully\");\n break;\n case deleteUser.type:\n toast.success(\"user deleted successfully\");\n break;\n case setUsersError.type:\n toast.error(\"Error loading users\");\n break;\n case newUserError.type:\n toast.error(\n \"An Error occured while sending your informations. Please try again and if the error continues contact us\"\n );\n break;\n case editUserError.type:\n toast.error(\"Error editing user\");\n break;\n case deleteUserError.type:\n toast.error(\"Error deleting user\");\n break;\n case signInError.type:\n toast.error(\n \"Verified email not found. Please sign up and verificate your Email\"\n );\n break;\n case validateUserError.type:\n toast.error(\n \"Email verification is not successful. Please check your email\"\n );\n break;\n case validateUserSuccess.type:\n toast.success(\"Email verification is successful. You can sign in now\");\n break;\n default:\n break;\n }\n return next(action);\n};\n\nexport default ToastMiddleware;\n","import { createSlice } from '@reduxjs/toolkit';\n\nexport const downloadSlice = createSlice({\n name: 'downloadFile',\n initialState: {\n file: '',\n },\n reducers: {\n setDownloadFile: (state, action) => {\n return { ...state, ...{\n file: action.payload }\n } \n }\n}\n});\n\nexport const { setDownloadFile } = downloadSlice.actions;\n\nexport default downloadSlice.reducer;","import { configureStore, getDefaultMiddleware } from \"@reduxjs/toolkit\";\nimport authenticationSlice from \"./authenticationSlice\";\nimport usersSlice from \"./usersSlice\";\nimport ToastMiddleware from \"../middlewares/ToastMiddleware\";\nimport downloadSlice from \"./downloadSlice\";\nimport validationSlice from \"./validationSlice\";\n\nexport default configureStore({\n reducer: {\n authenticationSlice: authenticationSlice,\n usersSlice: usersSlice,\n downloadSlice: downloadSlice,\n validationSlice: validationSlice,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware().concat(ToastMiddleware),\n});\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport store from './app/store';\nimport { Provider } from 'react-redux';\nimport * as serviceWorker from './serviceWorker';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport 'react-toastify/dist/ReactToastify.css';\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\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\nserviceWorker.unregister();\n"],"sourceRoot":""}