{"version":3,"sources":["i18n.js","components/Common/CommonComponents.js","services/auth-header.js","services/auth.service.js","components/Login.js","components/Register.js","services/page.service.js","components/Slate/components.js","components/Slate/EditorField.js","components/Page.js","components/Pages/Home.js","components/Pages/BoardTasks.js","components/Pages/History.js","components/Pages/NewMembers.js","components/Pages/NextBal.js","services/user.service.js","components/Profile.js","components/Pages/Grades.js","components/UserList.js","services/gallery.service.js","components/Gallery/Gallery.js","components/Gallery/AddAlbum.js","components/Gallery/Album.js","components/Nav.js","components/Auth/UpdatePassword.js","components/Auth/ForgotPassword.js","App.js","index.js"],"names":["i18n","use","Backend","LanguageDetector","initReactI18next","init","fallbackLng","debug","supportedLngs","interpolation","escapeValue","react","useSuspense","getIdentifier","keys","object","reduce","acc","key","Button","text","onClick","className","Input","id","name","label","inset","onChange","value","placeholder","type","autocomplete","htmlFor","autoComplete","Multiselect","available","selected","setParentSelected","setSelected","useState","dropdown","setDropdown","items","selectedItems","map","tag","index","item","filtered","filter","e","removeTag","xmlns","width","height","fill","viewBox","stroke","strokeWidth","strokeLinecap","strokeLinejoin","x1","y1","x2","y2","points","list","addItem","concat","Dropdown","Select","initial","onSelect","current","setCurrent","onFocus","console","log","onBlur","currentTarget","contains","relatedTarget","tabindex","aria-haspopup","aria-expanded","aria-labelledby","f","aria-hidden","fillRule","d","clipRule","handleSelect","SingleDropDown","nameKeys","hovered","setHovered","currentName","tabIndex","role","aria-activedescendant","onMouseOver","onMouseOut","AutoCompleteSelect","setSearchString","searchString","t","useTranslation","availablePlusNull","setAvailablePlusNull","dropDown","setDropDown","useEffect","null","target","authHeader","user","JSON","parse","localStorage","getItem","axios","interceptors","response","error","status","getUrl","window","location","baseUrl","protocol","host","replace","Promise","reject","accessToken","API_URL","getCurrentUser","userHasRole","roles","includes","tmp","register","username","email","password","post","headers","login","then","data","setItem","stringify","logout","removeItem","isAdmin","isGuest","updatePassword","userId","token","forgotPassword","required","Login","props","form","useRef","checkBtn","setUsername","setPassword","setLoading","message","setMessage","src","alt","onSubmit","preventDefault","validateAll","context","_errors","length","AuthService","history","push","reload","resMessage","toString","ref","validations","style","display","to","Register","setEmail","successful","setSuccessful","isEmail","getPage","lang","get","params","postPage","content","Menu","React","forwardRef","cx","css","active","reversed","Toolbar","HOTKEYS","LIST_TYPES","toggleMark","editor","format","isMarkActive","Editor","removeMark","addMark","isBlockActive","nodes","match","n","isEditor","SlateElement","isElement","marks","Element","attributes","children","element","url","align","textAlign","Leaf","leaf","bold","code","italic","underline","link","decoration","cursor","href","open","BlockButton","icon","useSlate","onMouseDown","event","isActive","isList","Transforms","unwrapNodes","split","newProperties","setNodes","block","wrapNodes","toggleBlock","Icon","MarkButton","ImageButton","prompt","insertImage","withImages","insertData","isVoid","getData","files","file","reader","FileReader","addEventListener","result","readAsDataURL","isImageUrl","image","insertNodes","ImageElement","useSelected","focused","useFocused","contentEditable","isUrl","ext","URL","pathname","pop","imageExtensions","EditorField","propValue","setValue","initialValue","renderElement","useCallback","renderLeaf","currentUser","useMemo","withHistory","withReact","createEditor","spellCheck","autoFocus","onKeyDown","hotkey","isHotkey","decorate","myDecorator","readOnly","node","path","nodeText","findUrlsInText","anchor","offset","focus","matches","m","trim","indexOf","Page","saved","setSaved","setError","PageService","language","_content","clip-rule","Grades","getAllUsers","updateUsers","put","_id","getUser","getAllRoles","getAllGrades","deleteUser","delete","searchUsers","searchStrings","string","availableYears","startYear","currentYear","Date","getFullYear","years","Profile","useHistory","useParams","editMode","setEditMode","setUser","setStatus","availableAvecs","setAvailableAvecs","availableRoles","setAvailableRoles","availableGrades","setAvailableGrades","avecSearch","setAvecSearch","UserService","resp","avec","surname","sort","a","b","rank","handleChange","address","postNumber","postalOffice","country","birthDate","comment","isMan","man","gender","memberSince","paid","date","newPayment","forEach","availableYear","ballsAttended","grade","newRoles","availableRole","newUser","prevUser","feminineName","toLocaleDateString","year","confirm","UserList","users","setUsers","filterUnpaid","setFilterUnpaid","filterAttending","setFilterAttending","refreshUsers","ObjectsToCsv","encodedUri","encodeURI","downLoadCSV","printCsv","tmpUser","join","_v","__v","createdAt","gradeSince","updatedAt","filteredUsers","filterByValue","array","o","Object","some","k","Array","isArray","l","toLowerCase","heading","onInput","pay","uploadImages","getAlbum","albumId","getAlbums","addAlbum","deleteImages","updateImages","updateAlbum","album","Gallery","albums","setAlbums","GalleryService","albumsPerYear","reverse","dayjs","coverPhoto","thumbnail","AddAlbum","newAlbum","setNewAlbum","baseStyle","flex","flexDirection","alignItems","padding","borderWidth","borderRadius","borderColor","borderStyle","backgroundColor","color","outline","transition","activeStyle","acceptStyle","rejectStyle","Album","setAlbum","onDrop","acceptedFiles","formData","FormData","append","useDropzone","accept","fileRejections","isDragAccept","isDragReject","getRootProps","getInputProps","isDragActive","handleImageSelect","img","images","slice","hasOwnProperty","isSelected","acceptedFileItems","size","fileRejectionItems","errors","getSelectedImages","thumbnailWidth","w","thumbnailHeight","h","caption","enableImageSelection","onSelectImage","getImages","rows","prev","findIndex","x","Nav","showUsers","setShowUsers","undefined","setCurrentUser","menuOpen","setMenuOpen","profileOpen","setProfileOpen","toggleMenu","toggleProfile","changeLanguage","lng","activeClassName","aria-orientation","UpdatePassword","ForgotPassword","App","exact","component","Home","BoardTasks","History","NewMembers","NextBal","ReactDOM","render","fallback","document","getElementById"],"mappings":"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","file":"static/js/main.7357473d.chunk.js","sourcesContent":["import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport Backend from 'i18next-http-backend';\n// don't want to use this?\n// have a look at the Quick start guide \n// for passing in lng and translations on init\n\ni18n\n // load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\n // learn more: https://github.com/i18next/i18next-http-backend\n .use(Backend)\n // detect user language\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(LanguageDetector)\n // pass the i18n instance to react-i18next.\n .use(initReactI18next)\n \n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: 'sv',\n debug: true,\n supportedLngs:['sv','fi'],\n\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n },\n react: { \n useSuspense: true // <---- this will do the magic\n }\n });\n\n\nexport default i18n;","import React, { useState, useEffect } from \"react\";\nimport { Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst getIdentifier = (keys, object) => {\n if (!object) {\n return \"\";\n }\n return keys.reduce((acc, key) => {\n if (key in object) {\n acc = `${acc} ${object[key]}`;\n }\n\n return acc;\n }, \"\");\n};\nexport const Button = ({ text, onClick, className }) => {\n className = className || \"bg-blue-700 hover:bg-blue-400\";\n\n return (\n \n {text}\n \n );\n};\nexport const Input = ({\n id,\n name,\n label,\n inset,\n onChange,\n value,\n placeholder,\n type,\n\n autocomplete,\n}) => {\n return (\n
\n \n
\n
\n {inset}\n
\n \n
\n
\n );\n};\n\nexport const Multiselect = ({\n available,\n selected,\n setSelected: setParentSelected,\n id,\n label,\n}) => {\n // state showing if dropdown is open or closed\n const [dropdown, setDropdown] = useState(false);\n // managing dropdown items (list of dropdown items)\n const [items, setItems] = useState(available);\n // contains selected items\n const [selectedItems, setSelected] = useState(selected);\n\n const toggleDropdown = () => {\n setDropdown(!dropdown);\n };\n // adds new item to multiselect\n const addTag = (item) => {\n setSelected(selectedItems.concat(item));\n setParentSelected(selectedItems.concat(item));\n setDropdown(false);\n };\n // removes item from multiselect\n const removeTag = (item) => {\n const filtered = selectedItems.filter((e) => e !== item);\n setSelected(filtered);\n setParentSelected(filtered);\n };\n\n return (\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n {selectedItems.map((tag, index) => {\n return (\n \n
\n {tag}\n
\n
\n
removeTag(tag)}>\n \n \n \n \n
\n
\n
\n );\n })}\n
\n \n
\n
\n \n \n
\n
\n
\n
\n {dropdown ? (\n \n ) : null}\n
\n
\n \n \n
\n );\n};\nexport const Dropdown = ({ list, addItem }) => {\n return (\n \n
\n {list.map((item, key) => {\n return (\n addItem(item)}\n >\n
\n
\n
{item}
\n
\n
\n
\n );\n })}\n \n \n );\n};\n\n// https://tailwindui.com/components/application-ui/forms/select-menus\nexport const Select = ({ label, available, initial, onSelect }) => {\n const [dropdown, setDropdown] = useState(false);\n const [current, setCurrent] = useState(initial || {});\n\n const handleSelect = (e) => {\n setCurrent(e);\n onSelect(e);\n setDropdown(false);\n console.log(\"handleSelect\")\n };\n return (\n {\n setDropdown(true);\n console.log(\"onFocus\")\n }}\n onBlur={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setDropdown(false);console.log(\"onBlur\")\n }\n }}\n >\n \n {label}\n \n
\n
\n \n {/* */}\n {current.name}\n \n \n {/* */}\n \n \n \n \n
\n\n {/* */}\n\n {dropdown && (\n \n )}\n
\n \n );\n};\n\nexport const SingleDropDown = ({\n available,\n handleSelect,\n current,\n nameKeys = [\"name\"],\n}) => {\n const [hovered, setHovered] = useState(null);\n const currentName = getIdentifier(nameKeys, current);\n return (\n
\n \n {available.map((item) => {\n const name = getIdentifier(nameKeys, item);\n /* */\n\n return (\n handleSelect(item)}\n key={name}\n onMouseOver={() => setHovered(name)}\n onMouseOut={() => setHovered(null)}\n >\n
\n {/* */}\n {/* */}\n \n {name}\n \n
\n {/* \n */}\n {name === currentName && (\n \n {/* */}\n \n \n \n \n )}\n \n );\n })}\n\n {/* */}\n \n
\n );\n};\n\nexport const Toggle = ({ value, setValue, label }) => {\n return (\n \n {!value && (\n setValue(true)}\n for=\"unchecked\"\n className=\"mt-3 inline-flex items-center cursor-pointer\"\n >\n \n \n \n \n \n \n {label}\n \n )}\n\n {value && (\n setValue(false)}\n for=\"checked\"\n className=\"mt-3 inline-flex items-center cursor-pointer\"\n >\n \n \n \n \n \n \n {label}\n \n )}\n \n );\n};\n\nexport const AutoCompleteSelect = ({\n label,\n available,\n initial,\n onSelect,\n setSearchString,\n searchString,\n nameKeys,\n placeholder,\n}) => {\n function filterByValue(array, string) {\n return array.filter((o) => {\n return Object.keys(o).some((k) => {\n if (Array.isArray(o[k])) {\n return filterByValue(o[k], string).length > 0;\n } else if (typeof o[k] === \"object\" && o[k] !== null) {\n return Object.keys(o[k]).some((l) => {\n if (!o[k][l].toLowerCase) {\n return false;\n }\n return o[k][l].toLowerCase().includes(string.toLowerCase());\n });\n } else if (!o[k].toLowerCase) {\n return false;\n }\n return o[k].toLowerCase().includes(string.toLowerCase());\n });\n });\n }\n const { t } = useTranslation();\n const [availablePlusNull, setAvailablePlusNull] = useState(available);\n const [dropDown, setDropDown] = useState(false);\n const handleFilterChange = (e) => {\n setSearchString(e.target.value);\n };\n\n const handleSelect = (item) => {\n setSearchString(getIdentifier(nameKeys, item));\n if (!item.null) {\n onSelect(item);\n } else {\n onSelect(null);\n }\n setDropDown(false);\n };\n useEffect(() => {\n setAvailablePlusNull([{ name: t(\"Ingen Avec\"), null: true }, ...available]);\n }, [available]);\n\n return (\n {\n setDropDown(true);\n }}\n onBlur={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setDropDown(false);\n }\n }}\n >\n {\" \"}\n {dropDown && (\n \n )}\n \n );\n};\n","import axios from \"axios\";\n\nexport default function authHeader() {\n const user = JSON.parse(localStorage.getItem(\"user\"));\n\n axios.interceptors.response.use(\n function (response) {\n return response;\n },\n function (error) {\n if (error.response.status === 401 || error.response.status === 403) {\n var getUrl = window.location;\n var baseUrl = getUrl.protocol + \"//\" + getUrl.host;\n window.location.replace(baseUrl + \"/login\");\n }\n return Promise.reject(error);\n }\n );\n\n if (user && user.accessToken) {\n // for Node.js Express back-end\n return { \"x-access-token\": user.accessToken };\n } else {\n return {};\n }\n}\n","import axios from \"axios\";\nimport authHeader from \"./auth-header\";\n\nlet API_URL = \"https://api.amarant.fi/api/\";\n\nif (!process.env.NODE_ENV || process.env.NODE_ENV === \"development\") {\n // dev code\n API_URL = \"http://localhost:8080/api/\";\n}\n\nconst register = (username, email, password) => {\n return axios.post(\n API_URL + \"auth/signup\",\n {\n username,\n email,\n password,\n },\n {\n headers: authHeader(),\n }\n );\n};\n\nconst login = (username, password) => {\n return axios\n .post(API_URL + \"auth/signin\", {\n username,\n password,\n })\n .then((response) => {\n if (response.data.accessToken) {\n localStorage.setItem(\"user\", JSON.stringify(response.data));\n }\n\n return response.data;\n });\n};\n\nconst updatePassword = (userId, token, password) => {\n return axios\n .post(API_URL + `auth/receive_new_password/${userId}/${token}`, {\n password,\n })\n .then((response) => {\n return response.data;\n });\n};\n\nconst forgotPassword = (email) => {\n return axios\n .post(API_URL + `auth/forgot-password`, {\n email,\n })\n .then((response) => {\n return response.data;\n });\n};\n\nconst logout = () => {\n localStorage.removeItem(\"user\");\n};\n\nconst getCurrentUser = () => {\n return JSON.parse(localStorage.getItem(\"user\"));\n};\n\nconst userHasRole = (role) => {\n if (!getCurrentUser() || !getCurrentUser().roles) {\n return false;\n }\n const roles = getCurrentUser().roles.map((role) => role.name);\n return roles.includes(role);\n};\n\nconst isAdmin = () => {\n return userHasRole(\"admin\");\n};\n\nconst isGuest = () => {\n return userHasRole(\"guest\");\n};\n\nconst tmp = {\n register,\n login,\n logout,\n getCurrentUser,\n isAdmin,\n isGuest,\n updatePassword,\n forgotPassword,\n};\nexport default tmp;\n","import React, { useState, useRef } from \"react\";\nimport Form from \"react-validation/build/form\";\nimport Input from \"react-validation/build/input\";\nimport CheckButton from \"react-validation/build/button\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button } from \"./Common/CommonComponents\";\nimport { Link } from \"react-router-dom\";\n\nimport AuthService from \"../services/auth.service\";\n\nconst required = (value) => {\n if (!value) {\n return (\n
\n This field is required!\n
\n );\n }\n};\n\nconst Login = (props) => {\n const form = useRef();\n const checkBtn = useRef();\n\n const [username, setUsername] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [message, setMessage] = useState(\"\");\n\n const { t } = useTranslation();\n\n const onChangeUsername = (e) => {\n const username = e.target.value;\n setUsername(username);\n };\n\n const onChangePassword = (e) => {\n const password = e.target.value;\n setPassword(password);\n };\n\n const handleLogin = (e) => {\n e.preventDefault();\n\n setMessage(\"\");\n setLoading(true);\n\n form.current.validateAll();\n\n if (checkBtn.current.context._errors.length === 0) {\n AuthService.login(username, password).then(\n () => {\n props.history.push(\"/home\");\n window.location.reload();\n },\n (error) => {\n const resMessage =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n\n setLoading(false);\n setMessage(resMessage);\n }\n );\n } else {\n setLoading(false);\n }\n };\n\n return (\n
\n
\n \n\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n
\n\n {message && (\n
\n
\n {message}\n
\n
\n )}\n \n \n \n {t(\"Glömt lösenord\")}\n \n
\n
\n );\n};\n\nexport default Login;\n","import React, { useState, useRef } from \"react\";\nimport Form from \"react-validation/build/form\";\nimport Input from \"react-validation/build/input\";\nimport CheckButton from \"react-validation/build/button\";\nimport { isEmail } from \"validator\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button } from \"./Common/CommonComponents\";\n\nimport AuthService from \"../services/auth.service\";\n\nconst Register = (props) => {\n const { t } = useTranslation();\n\n const form = useRef();\n const checkBtn = useRef();\n\n const [username, setUsername] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [successful, setSuccessful] = useState(false);\n const [message, setMessage] = useState(\"\");\n\n const onChangeUsername = (e) => {\n const username = e.target.value;\n setUsername(username);\n };\n\n const onChangeEmail = (e) => {\n const email = e.target.value;\n setEmail(email);\n };\n\n const onChangePassword = (e) => {\n const password = e.target.value;\n setPassword(password);\n };\n\n const required = (value) => {\n if (!value) {\n return (\n
\n {t(\"This field is required!\")}\n
\n );\n }\n };\n\n const validEmail = (value) => {\n if (value && !isEmail(value)) {\n return (\n
\n {t(\"Ange en giltig epost.\")}\n
\n );\n }\n };\n\n const vusername = (value) => {\n if (value.length < 3 || value.length > 20) {\n return (\n
\n {t(\"Användarnamnet måste vara mellan 3 och 20 symboler.\")}\n
\n );\n }\n };\n\n const vpassword = (value) => {\n if (value.length < 6 || value.length > 40) {\n return (\n
\n {t(\"Lösenordet måste vara mellan 6 och 40 symboler.\")}\n
\n );\n }\n };\n\n const handleRegister = (e) => {\n e.preventDefault();\n\n setMessage(\"\");\n setSuccessful(false);\n\n form.current.validateAll();\n\n if (checkBtn.current.context._errors.length === 0) {\n AuthService.register(username, email, password).then(\n (response) => {\n setMessage(response.data.message);\n setSuccessful(true);\n },\n (error) => {\n const resMessage =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n\n setMessage(resMessage);\n setSuccessful(false);\n }\n );\n }\n };\n\n return (\n
\n
\n \n\n
\n {!successful && (\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n
\n
\n )}\n\n {message && (\n
\n \n {message}\n
\n
\n )}\n \n \n
\n \n );\n};\n\nexport default Register;\n","import axios from \"axios\";\nimport authHeader from \"./auth-header\";\n\n\nlet API_URL = \"https://api.amarant.fi/api/\";\n\nif (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {\n // dev code\n API_URL = \"http://localhost:8080/api/\";\n\n} \n\n\nconst getPage = (id, lang) => {\n return axios.get(API_URL + \"page\", {\n headers: authHeader(),\n params: { id, lang },\n });\n};\n\nconst postPage = (id, lang, content) => {\n return axios.post(\n API_URL + `page/${id}/${lang}`,\n {\n content: content,\n },\n { headers: authHeader() }\n );\n};\n\nconst tmp = {\n getPage,\n postPage,\n};\nexport default tmp;\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { cx, css } from '@emotion/css'\nexport const Portal = ({ children }) => {\n return ReactDOM.createPortal(children, document.body);\n};\nexport const Menu = React.forwardRef(({ className, ...props }, ref) => (\n * {\n display: inline-block;\n }\n & > * + * {\n margin-left: 15px;\n }\n `\n )}\n />\n));\n\nexport const Button = React.forwardRef(\n ({ className, active, reversed, ...props }, ref) => (\n \n )\n);\nexport const Toolbar = React.forwardRef(\n (\n { className, ...props },\n ref\n ) => (\n \n )\n )","import { css } from \"@emotion/css\";\nimport imageExtensions from \"image-extensions\";\nimport isHotkey from \"is-hotkey\";\nimport isUrl from \"is-url\";\nimport React, { useCallback, useMemo } from \"react\";\nimport {\n createEditor,\n Editor,\n Element as SlateElement,\n Transforms,\n} from \"slate\";\nimport { withHistory } from \"slate-history\";\nimport {\n Editable,\n Slate,\n useFocused,\n useSelected,\n useSlate,\n withReact,\n} from \"slate-react\";\nimport AuthService from \"../../services/auth.service\";\n\nimport Icon from \"@material-ui/core/Icon\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button, Toolbar } from \"./components\";\n\nconst HOTKEYS = {\n \"mod+b\": \"bold\",\n \"mod+i\": \"italic\",\n \"mod+u\": \"underline\",\n \"mod+`\": \"code\",\n};\nconst LIST_TYPES = [\"numbered-list\", \"bulleted-list\"];\nconst EditorField = ({ value: propValue, setValue }) => {\n const { t } = useTranslation();\n const initialValue = [\n {\n type: \"paragraph\",\n children: [{ text: t(\"Du har inte rättigeter att se denna sidan\") }],\n },\n ];\n const value = propValue || initialValue;\n const renderElement = useCallback((props) => , []);\n const renderLeaf = useCallback((props) => , []);\n\n const currentUser = JSON.parse(localStorage.getItem(\"user\"));\n\n const editor = useMemo(\n () => withImages(withHistory(withReact(createEditor()))),\n []\n );\n\n if (currentUser && AuthService.isAdmin()) {\n return (\n setValue(value)}\n >\n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n {\n for (const hotkey in HOTKEYS) {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n const mark = HOTKEYS[hotkey];\n toggleMark(editor, mark);\n }\n }\n }}\n onChange={(value) => {\n setValue(value);\n }}\n />\n \n );\n } else {\n return (\n setValue(value)}\n >\n \n \n );\n }\n};\n\nconst toggleBlock = (editor, format) => {\n const isActive = isBlockActive(editor, format);\n const isList = LIST_TYPES.includes(format);\n\n Transforms.unwrapNodes(editor, {\n match: (n) =>\n LIST_TYPES.includes(\n !Editor.isEditor(n) && SlateElement.isElement(n) && n.type\n ),\n split: true,\n });\n const newProperties = {\n type: isActive ? \"paragraph\" : isList ? \"list-item\" : format,\n };\n Transforms.setNodes(editor, newProperties);\n\n if (!isActive && isList) {\n const block = { type: format, children: [] };\n Transforms.wrapNodes(editor, block);\n }\n};\n\nconst toggleMark = (editor, format) => {\n const isActive = isMarkActive(editor, format);\n\n if (isActive) {\n Editor.removeMark(editor, format);\n } else {\n Editor.addMark(editor, format, true);\n }\n};\n\nconst isBlockActive = (editor, format) => {\n const [match] = Editor.nodes(editor, {\n match: (n) =>\n !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format,\n });\n\n return !!match;\n};\n\nconst isMarkActive = (editor, format) => {\n const marks = Editor.marks(editor);\n return marks ? marks[format] === true : false;\n};\n\nconst Element = (props) => {\n const { attributes, children, element } = props;\n switch (element.type) {\n case \"block-quote\":\n return
{children}
;\n case \"bulleted-list\":\n return (\n
    \n {children}\n
\n );\n case \"heading-one\":\n return

{children}

;\n case \"heading-two\":\n return

{children}

;\n case \"list-item\":\n return
  • {children}
  • ;\n case \"numbered-list\":\n return (\n
      \n {children}\n
    \n );\n case \"image\":\n return ;\n case \"text-center\":\n if (element.url) {\n return ;\n }\n return (\n

    \n {children}\n

    \n );\n case \"text-left\":\n if (element.url) {\n return ;\n }\n return (\n

    \n {children}\n

    \n );\n case \"text-right\":\n if (element.url) {\n return ;\n }\n return (\n

    \n {children}\n

    \n );\n default:\n return

    {children}

    ;\n }\n};\n\nconst Leaf = ({ attributes, children, leaf }) => {\n if (leaf.bold) {\n children = {children};\n }\n\n if (leaf.code) {\n children = {children};\n }\n\n if (leaf.italic) {\n children = {children};\n }\n\n if (leaf.underline) {\n children = {children};\n }\n if (leaf.link || leaf.decoration === \"link\") {\n children = (\n {\n window.open(leaf.text, \"_blank\", \"noopener,noreferrer\");\n }}\n >\n {children}\n \n );\n }\n return {children};\n};\n\nconst BlockButton = ({ format, icon }) => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n toggleBlock(editor, format);\n }}\n >\n {icon}\n \n );\n};\n\nconst MarkButton = ({ format, icon }) => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n toggleMark(editor, format);\n }}\n >\n {icon}\n \n );\n};\n\nconst ImageButton = () => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n const url = window.prompt(\"Enter the URL of the image:\");\n if (!url) return;\n insertImage(editor, url);\n }}\n >\n image\n \n );\n};\n\nconst withImages = (editor) => {\n const { insertData, isVoid } = editor;\n\n editor.isVoid = (element) => {\n return element.type === \"image\" ? true : isVoid(element);\n };\n\n editor.insertData = (data) => {\n const text = data.getData(\"text/plain\");\n const { files } = data;\n\n if (files && files.length > 0) {\n for (const file of files) {\n const reader = new FileReader();\n const [mime] = file.type.split(\"/\");\n\n if (mime === \"image\") {\n reader.addEventListener(\"load\", () => {\n const url = reader.result;\n insertImage(editor, url);\n });\n\n reader.readAsDataURL(file);\n }\n }\n } else if (isImageUrl(text)) {\n insertImage(editor, text);\n } else {\n insertData(data);\n }\n };\n\n return editor;\n};\n\nconst insertImage = (editor, url) => {\n const text = { text: \"\" };\n const image = { type: \"image\", url, children: [text] };\n Transforms.insertNodes(editor, image);\n};\n\nconst ImageElement = ({ attributes, children, element, align }) => {\n const selected = useSelected();\n const focused = useFocused();\n return (\n
    \n
    \n \n
    \n {children}\n
    \n );\n};\n\nconst isImageUrl = (url) => {\n if (!url) return false;\n if (!isUrl(url)) return false;\n const ext = new URL(url).pathname.split(\".\").pop();\n return imageExtensions.includes(ext);\n};\n\nexport default EditorField;\nconst myDecorator = ([node, path]) => {\n const nodeText = node.text;\n\n if (!nodeText) return [];\n\n const urls = findUrlsInText(nodeText);\n\n return urls.map(([url, index]) => {\n return {\n anchor: {\n path,\n offset: index,\n },\n focus: {\n path,\n offset: index + url.length,\n },\n decoration: \"link\",\n };\n });\n};\nexport const findUrlsInText = (text) => {\n const urlRegex =\n // eslint-disable-next-line no-useless-escape\n /(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#\\/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#\\/%=~_|$])/gim;\n\n const matches = text.match(urlRegex);\n\n return matches ? matches.map((m) => [m.trim(), text.indexOf(m.trim())]) : [];\n};\n","import React, { useState, useEffect } from \"react\";\nimport PageService from \"../services/page.service\";\nimport EditorField from \"./Slate/EditorField\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button } from \"./Common/CommonComponents\";\nimport AuthService from \"../services/auth.service\";\nconst currentUser = JSON.parse(localStorage.getItem(\"user\"));\nconst Page = ({ id }) => {\n const [value, setValue] = useState(null);\n const [saved, setSaved] = useState(false);\n const [error, setError] = useState(null);\n const { t, i18n } = useTranslation();\n useEffect(() => {\n PageService.getPage(id, i18n.language).then(\n (response) => {\n if (response.data && response.data.content) {\n setValue(response.data.content);\n } else {\n setValue(null);\n }\n },\n () => {\n setValue(null);\n }\n );\n }, [id, i18n.language]);\n\n const save = () => {\n PageService.postPage(id, i18n.language, value).then(\n (response) => {\n if (response.data && response.data.content) {\n setValue(response.data.content);\n setSaved(true);\n } else {\n setError(t(\"Lagring misslyckades\"));\n setValue(null);\n }\n },\n (error) => {\n const _content =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n setError(_content);\n setValue(true);\n }\n );\n };\n return (\n
    \n {\n setValue(e);\n }}\n currentUser={currentUser}\n />\n {currentUser && AuthService.isAdmin() && (\n \n )}\n {saved && (\n \n

    {t(\"Lagring lyckades\")}

    \n {\n setSaved(null);\n }}\n >\n \n \n \n \n
    \n )}\n\n {error && (\n \n

    {error}

    \n {\n setError(null);\n }}\n >\n \n \n \n \n \n )}\n \n );\n};\n\nexport default Page;\n","import React from \"react\";\nimport Page from \"../Page\";\n\nconst Grades = () => {\n return ;\n};\n\nexport default Grades;\n","import React from \"react\";\nimport Page from \"../Page\";\n\nconst Grades = () => {\n return ;\n};\n\nexport default Grades;\n","import React from \"react\";\nimport Page from \"../Page\";\n\nconst Grades = () => {\n return ;\n};\n\nexport default Grades;\n","import React from \"react\";\nimport Page from \"../Page\";\n\nconst Grades = () => {\n return ;\n};\n\nexport default Grades;\n","import React from \"react\";\nimport Page from \"../Page\";\n\nconst Grades = () => {\n return ;\n};\n\nexport default Grades;\n","import axios from \"axios\";\nimport authHeader from \"./auth-header\";\n\nlet API_URL = \"https://api.amarant.fi/api/\";\n\nif (!process.env.NODE_ENV || process.env.NODE_ENV === \"development\") {\n // dev code\n API_URL = \"http://localhost:8080/api/\";\n}\n\nconst getAllUsers = () => {\n return axios.get(API_URL + \"user/all\", { headers: authHeader() });\n};\n\nconst getAllRoles = () => {\n return axios.get(API_URL + \"role/all\", { headers: authHeader() });\n};\n\nconst getAllGrades = () => {\n return axios.get(API_URL + \"grade/all\", { headers: authHeader() });\n};\n\nconst updateUsers = (user) => {\n return axios.put(API_URL + \"user/\" + user._id, user, {\n headers: authHeader(),\n });\n};\n\nconst getUser = (id) => {\n return axios.get(API_URL + `user/${id}`, {\n headers: authHeader(),\n });\n};\n\nconst searchUsers = (name) => {\n return axios.get(API_URL + `user`, {\n params: {\n searchStrings: name.split(\" \").filter((string) => {\n return string.length > 1;\n }),\n },\n headers: authHeader(),\n });\n};\n\nconst deleteUser = (id) => {\n return axios.delete(API_URL + `user/${id}`, {\n headers: authHeader(),\n });\n};\n\nconst tmp = {\n getAllUsers,\n updateUsers,\n getUser,\n getAllRoles,\n getAllGrades,\n deleteUser,\n searchUsers,\n};\nexport default tmp;\n","import React, { useState, useEffect } from \"react\";\nimport AuthService from \"../services/auth.service\";\nimport {\n Button,\n Toggle,\n Input,\n Multiselect,\n Select,\n AutoCompleteSelect,\n} from \"./Common/CommonComponents\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\n\nimport UserService from \"../services/user.service\";\nimport { Fragment } from \"react\";\nimport axios from \"axios\";\n\nconst availableYears = function () {\n let startYear = 2020;\n var currentYear = new Date().getFullYear(),\n years = [];\n startYear = startYear || 1980;\n while (startYear <= currentYear) {\n years.push(startYear++);\n }\n return years;\n};\n\nconst Profile = () => {\n const history = useHistory();\n const { id } = useParams();\n const [editMode, setEditMode] = useState(false);\n let currentUser;\n if (!id) {\n currentUser = AuthService.getCurrentUser();\n }\n const { t } = useTranslation();\n const [user, setUser] = useState(currentUser);\n const [status, setStatus] = useState(null);\n const [availableAvecs, setAvailableAvecs] = useState([]);\n const [availableRoles, setAvailableRoles] = useState();\n const [availableGrades, setAvailableGrades] = useState();\n const [avecSearch, setAvecSearch] = useState(\"\");\n\n useEffect(() => {\n if (avecSearch.length > 1) {\n UserService.searchUsers(avecSearch).then((resp) => {\n setAvailableAvecs(resp.data);\n });\n } else {\n setAvailableAvecs([]);\n }\n }, [avecSearch]);\n useEffect(() => {\n if (id) {\n UserService.getUser(id).then((resp) => {\n setUser(resp.data);\n setAvecSearch(\n resp.data.avec ? resp.data.avec.name + \" \" + resp.data.avec.surname : \"\"\n );\n });\n }\n if (AuthService.isAdmin()) {\n UserService.getAllRoles().then((resp) => {\n setAvailableRoles(resp.data);\n });\n UserService.getAllGrades().then((resp) => {\n setAvailableGrades(resp.data.sort((a, b) => a.rank > b.rank));\n });\n }\n }, [id]);\n const save = () => {\n UserService.updateUsers(user).then(\n (resp) => {\n if (!id) {\n const newUser = resp.data;\n const prevUser = JSON.parse(localStorage.getItem(\"user\"));\n\n prevUser.name = newUser.name;\n prevUser.surname = newUser.surname;\n prevUser.address = newUser.address;\n prevUser.email = newUser.email;\n prevUser.postNumber = newUser.postNumber;\n prevUser.postalOffice = newUser.postalOffice;\n prevUser.country = newUser.country;\n prevUser.avec = newUser.avec;\n prevUser.comment = newUser.comment;\n prevUser.grade = newUser.grade;\n prevUser.man = newUser.man;\n prevUser.paid = newUser.paid;\n prevUser.ballsAttended = newUser.ballsAttended;\n prevUser.memberSince = newUser.memberSince;\n prevUser.birthDate = newUser.birthDate;\n localStorage.setItem(\"user\", JSON.stringify(prevUser));\n }\n setEditMode(false);\n },\n (error) => {\n const resMessage =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n\n setStatus(resMessage);\n }\n );\n };\n const handleChange = (e) => {\n setUser({ ...user, [e.target.name]: e.target.value });\n };\n\n const setSelected = (e) => {\n const newRoles = [];\n availableRoles.forEach((availableRole) => {\n if (e.includes(availableRole.name)) {\n newRoles.push(availableRole);\n }\n });\n setUser({ ...user, roles: newRoles });\n };\n\n const setPaid = (e) => {\n const newPayment = [];\n availableYears().forEach((availableYear) => {\n if (e.includes(availableYear)) {\n newPayment.push(new Date(availableYear, 1, 1));\n }\n });\n setUser({ ...user, paid: newPayment });\n };\n\n const setBallsAttended = (e) => {\n const newPayment = [];\n availableYears().forEach((availableYear) => {\n if (e.includes(availableYear)) {\n newPayment.push(new Date(availableYear, 1, 1));\n }\n });\n setUser({ ...user, ballsAttended: newPayment });\n };\n\n const setSelectedGrade = (grade) => {\n setUser({ ...user, grade: grade });\n };\n\n const setGender = (gender) => {\n setUser({ ...user, man: gender.isMan });\n };\n\n const setAvec = (avec) => {\n setUser({ ...user, avec: avec });\n };\n\n if (!user) {\n return
    {t(\"Laddar\")}
    ;\n }\n\n const deleteUser = () => {\n UserService.deleteUser(user._id);\n history.push(\"/users\");\n };\n if (!editMode) {\n return (\n
    \n
    \n

    \n {user.man ? user.grade.name : user.grade.feminineName} {user.name}{\" \"}\n {user.surname}\n

    \n
    \n

    \n {t(\"Användarnamn\")}: {user.username}\n

    \n

    \n {t(\"Epost\")}: {user.email}\n

    \n

    \n {t(\"Adress\")}: {user.address} {user.postNumber}{\" \"}\n {user.postalOffice} {user.country}\n

    \n

    \n {t(\"Födelsedatum\")}:{\" \"}\n {user.birthDate ? new Date(user.birthDate).toLocaleDateString() : \"\"}\n

    \n

    \n {t(\"Kön\")}: {user.man ? t(\"Man\") : t(\"Kvinna\")}\n

    \n {user.avec && (\n

    \n {t(\"Avec\")}: {user.avec.name}{\" \"}\n {user.avec.surname}\n

    \n )}\n

    \n {t(\"Kommentar\")}: {user.comment}\n

    \n

    \n {t(\"Medlem sedan\")}:{\" \"}\n {user.memberSince\n ? new Date(user.memberSince).toLocaleDateString()\n : \"\"}\n

    \n

    \n {t(\"Betalt\")}:{\" \"}\n {user.paid.map((year) => {\n return new Date(year).getFullYear() + \" \";\n })}\n

    \n

    \n {t(\"Baler\")}:{\" \"}\n {user.ballsAttended.map((year) => {\n return new Date(year).getFullYear() + \" \";\n })}\n

    \n\n

    \n {t(\"Roller\")}:{\" \"}\n {user.roles.map((role) => {\n return role.name + \" \";\n })}\n

    \n \n \n window.confirm(\n t(\"Är du säker på att du vill ta bort användaren?\")\n ) && deleteUser()\n }\n >\n
    \n );\n } else {\n return (\n
    \n {t(\"Användarnamn\")}: {user.username}\n \n \n \n \n \n \n \n \n \n \n \n \n {AuthService.isAdmin() && (\n \n new Date(date).getFullYear())}\n setSelected={setPaid}\n >\n \n new Date(date).getFullYear()\n )}\n setSelected={setBallsAttended}\n >\n\n \n role.name)}\n selected={user.roles.map((role) => role.name)}\n setSelected={setSelected}\n >\n \n )}\n {/* */}\n \n {status && (\n
    \n {status}\n
    \n )}\n
    \n );\n }\n};\n\nexport default Profile;\n","import React from \"react\";\nimport Page from \"../Page\";\n\nconst Grades = () => {\n return ;\n};\n\nexport default Grades;\n","import React, { useState, useEffect } from \"react\";\nimport { Button } from \"./Common/CommonComponents\";\n\nimport UserService from \"../services/user.service\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\nimport { Fragment } from \"react\";\nimport ObjectsToCsv from \"objects-to-csv\";\n\nconst UserList = () => {\n const [users, setUsers] = useState([]);\n const [searchString, setSearchString] = useState(\"\");\n const [filterUnpaid, setFilterUnpaid] = useState(false);\n const [filterAttending, setFilterAttending] = useState(false);\n const { t } = useTranslation();\n\n useEffect(() => {\n refreshUsers();\n }, []);\n\n const refreshUsers = () => {\n UserService.getAllUsers().then(\n (response) => {\n setUsers(response.data);\n },\n () => {\n setUsers([]);\n }\n );\n };\n\n async function printCsv(data) {\n const string = await new ObjectsToCsv(data).toString(true, true);\n const csvContent = \"data:text/csv;charset=utf-8,\" + string;\n var encodedUri = encodeURI(csvContent);\n window.open(encodedUri);\n }\n\n const downLoadCSV = () => {\n printCsv(\n users.map((user) => {\n const tmpUser = { ...user };\n delete tmpUser.password;\n tmpUser.gender = tmpUser.man ? t(\"Man\") : t(\"Kvinna\");\n delete tmpUser.man;\n tmpUser.roles = tmpUser.roles\n ? tmpUser.roles.map((roles) => roles.name).join(\",\")\n : null;\n tmpUser.grade = tmpUser.grade ? tmpUser.grade.name : null;\n delete tmpUser._id;\n delete tmpUser._v;\n delete tmpUser.__v;\n tmpUser.paid = tmpUser.paid\n ? tmpUser.paid.map((paid) => new Date(paid).getFullYear()).join(\",\")\n : null;\n tmpUser.ballsAttended = tmpUser.paid\n ? tmpUser.ballsAttended\n .map((paid) => new Date(paid).getFullYear())\n .join(\",\")\n : null;\n tmpUser.birthDate = tmpUser.birthDate\n ? new Date(tmpUser.birthDate).toLocaleDateString()\n : null;\n tmpUser.createdAt = tmpUser.createdAt\n ? new Date(tmpUser.createdAt).toLocaleDateString()\n : null;\n tmpUser.gradeSince = tmpUser.gradeSince\n ? new Date(tmpUser.gradeSince).toLocaleDateString()\n : null;\n tmpUser.memberSince = tmpUser.memberSince\n ? new Date(tmpUser.memberSince).toLocaleDateString()\n : null;\n tmpUser.updatedAt = tmpUser.updatedAt\n ? new Date(tmpUser.updatedAt).toLocaleDateString()\n : null;\n return tmpUser;\n })\n );\n };\n\n const pay = (user) => {\n user.paid.push(new Date());\n UserService.updateUsers(user).then(() => {\n refreshUsers();\n });\n };\n\n // const showUser = () => {\n // if (currentUser) {\n // return (\n // \n //
    {currentUser.username}
    \n //
    {currentUser.address}
    \n //
    {currentUser.postNumber}
    \n //
    {currentUser.postalOffice}
    \n //
    {currentUser.country}
    \n //
    {currentUser.avec}
    \n //
    {currentUser.comment}
    \n //
    {currentUser.email}
    \n //
    {currentUser.roles.map((role) => role.name + \" \")}
    \n //
    \n // \n // \n // \n //
    {\" \"}\n //
    \n // );\n // } else {\n // return
    ;\n // }\n // };\n\n function filterByValue(array, string) {\n return array.filter((o) => {\n return Object.keys(o).some((k) => {\n if (Array.isArray(o[k])) {\n return filterByValue(o[k], string).length > 0;\n } else if (typeof o[k] === \"object\" && o[k] !== null) {\n return Object.keys(o[k]).some((l) => {\n if (\n o[k][l] === null ||\n typeof o[k][l] === \"boolean\" ||\n !o[k][l].toLowerCase\n ) {\n return false;\n }\n return o[k][l].toLowerCase().includes(string.toLowerCase());\n });\n } else if (\n o[k] === null ||\n typeof o[k] === \"boolean\" ||\n !o[k].toLowerCase\n ) {\n return false;\n }\n return o[k].toLowerCase().includes(string.toLowerCase());\n });\n });\n }\n let filteredUsers = users;\n if (searchString) {\n filteredUsers = filterByValue(users, searchString);\n }\n if (filterUnpaid) {\n filteredUsers = filteredUsers.filter((user) => {\n const current = new Date().getFullYear();\n const paidYears = user.paid.map((date) => new Date(date).getFullYear());\n return !paidYears.includes(current);\n });\n }\n if (filterAttending) {\n filteredUsers = filteredUsers.filter((user) => {\n const current = new Date().getFullYear();\n const ballsAttended = user.ballsAttended.map((date) =>\n new Date(date).getFullYear()\n );\n return ballsAttended.includes(current);\n });\n }\n let heading = t(\"Alla användare\");\n if (filterAttending) {\n heading = t(\"Baldeltagare\");\n } else if (filterUnpaid) {\n heading = t(\"Användare med obetald medlemsavgift\");\n }\n return (\n \n
    \n {\n setSearchString(e.target.value);\n }}\n />\n \n
    \n downLoadCSV()}\n >\n {!filterUnpaid && !filterAttending && (\n setFilterUnpaid(true)}\n >\n )}\n {filterUnpaid && (\n setFilterUnpaid(false)}\n >\n )}\n {!filterAttending && !filterUnpaid && (\n setFilterAttending(true)}\n >\n )}\n {filterAttending && (\n setFilterAttending(false)}\n >\n )}\n

    {heading}

    \n
    \n {filteredUsers.map((user) => {\n return (\n \n {user.grade && (\n
    \n {user.man ? user.grade.name : user.grade.feminineName}\n
    \n )}\n
    \n {user.name} {user.surname}\n
    \n {user.email && (\n
    \n {\" \"}\n \n \n {\" \"}\n {user.email}\n
    \n )}\n {(user.address ||\n user.postNumber ||\n user.postalOffice ||\n user.country) && (\n
    \n \n \n \n {\" \"}\n {user.address} {user.postNumber} {user.postalOffice}{\" \"}\n {user.country}\n
    \n )}\n {user.avec && (\n
    \n \n \n {\" \"}\n {user.avec.name} {user.avec.surname}\n
    \n )}\n {user.paid.length > 0 ||\n (user.ballsAttended.length > 0 && (\n
    \n
    \n {user.paid.map((year) => {\n {\n if (\n new Date(year).getFullYear() ==\n new Date().getFullYear()\n ) {\n return (\n
    \n \n \n {\" \"}\n {t(\"Betald\")}\n
    \n );\n }\n }\n })}\n
    \n
    \n {user.ballsAttended.map((year) => {\n {\n if (\n new Date(year).getFullYear() ==\n new Date().getFullYear()\n ) {\n return (\n
    \n \n \n {\" \"}\n {t(\"Deltar på bal\")}\n
    \n );\n }\n }\n })}\n
    \n
    \n ))}\n {user.comment &&
    {user.comment}
    }\n
    \n {user.roles.map((role) => {\n return (\n \n {role.name + \" \"}\n
    \n );\n })}\n
    \n {filterUnpaid && (\n {\n e.preventDefault();\n pay(user);\n }}\n >\n )}\n \n );\n })}\n \n
    \n );\n};\n\nexport default UserList;\n","import axios from \"axios\";\nimport authHeader from \"./auth-header\";\n\nlet API_URL = \"https://api.amarant.fi/api/\";\n\nif (!process.env.NODE_ENV || process.env.NODE_ENV === \"development\") {\n // dev code\n API_URL = \"http://localhost:8080/api/\";\n}\n\nconst uploadImages = (id, content) => {\n const headers = authHeader();\n return axios.post(API_URL + `galleries/albums/` + id, content, {\n headers: headers,\n });\n};\n\nconst updateImages = (content) => {\n const headers = authHeader();\n return axios.put(API_URL + `galleries/photos/`, content, {\n headers: headers,\n });\n};\n\nconst deleteImages = (id, content) => {\n const headers = authHeader();\n return axios.delete(API_URL + `galleries/albums/` + id, {\n headers: headers,\n data: content,\n });\n};\n\nconst getAlbums = () => {\n return axios.get(API_URL + `galleries/albums`, {\n headers: authHeader(),\n });\n};\n\nconst getAlbum = (albumId) => {\n return axios.get(API_URL + `galleries/albums/${albumId}`, {\n headers: authHeader(),\n });\n};\n\nconst addAlbum = (content) => {\n return axios.post(API_URL + `galleries/albums/`, content, {\n headers: authHeader(),\n });\n};\n\nconst updateAlbum = (album) => {\n return axios.put(API_URL + `galleries/albums/album.id`, album, {\n headers: authHeader(),\n });\n};\n\nconst tmp = {\n uploadImages,\n getAlbum,\n getAlbums,\n addAlbum,\n deleteImages,\n updateImages,\n updateAlbum,\n};\nexport default tmp;\n","import React, { useState, useEffect, Fragment } from \"react\";\nimport GalleryService from \"../../services/gallery.service\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\nimport dayjs from \"dayjs\";\nimport { Button } from \"../Common/CommonComponents\";\nimport AuthService from \"../../services/auth.service\";\n\nconst Gallery = () => {\n const [albums, setAlbums] = useState([]);\n const [value, setValue] = useState(null);\n const [saved, setSaved] = useState(false);\n const [error, setError] = useState(null);\n const { t } = useTranslation();\n\n useEffect(() => {\n GalleryService.getAlbums().then(\n (response) => {\n if (response.data && response.data) {\n const albumsPerYear = response.data.reduce((albumsPerYear, album) => {\n const year = album.date.split(\"-\")[0];\n if (year in albumsPerYear) {\n albumsPerYear[year].push(album);\n } else {\n albumsPerYear[year] = [album];\n }\n return albumsPerYear;\n }, {});\n setAlbums(albumsPerYear);\n } else {\n setAlbums([]);\n }\n },\n () => {\n setValue(null);\n }\n );\n }, [setValue]);\n\n return (\n \n {AuthService.isAdmin() && (\n \n \n \n )}\n {Object.keys(albums)\n .sort()\n .reverse()\n .map((year) => {\n return (\n
    \n

    {year}

    \n {albums[year].map((album) => {\n return (\n \n

    \n {album.name} - {dayjs(album.date).format(\"DD.MM.YYYY\")}\n

    \n {album.coverPhoto && (\n \n )}\n \n );\n })}\n
    \n );\n })}\n
    \n );\n};\n\nexport default Gallery;\n","import React, { useState, Fragment } from \"react\";\nimport GalleryService from \"../../services/gallery.service\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button, Input } from \"../Common/CommonComponents\";\nimport { useHistory } from \"react-router-dom\";\nconst AddAlbum = () => {\n const [newAlbum, setNewAlbum] = useState({\n date: \"\",\n name: \"\",\n });\n const history = useHistory();\n const [value, setValue] = useState(null);\n const [saved, setSaved] = useState(false);\n const [error, setError] = useState(null);\n const { t } = useTranslation();\n\n const save = () => {\n GalleryService.addAlbum(newAlbum).then(\n (response) => {\n if (response.data && response.data) {\n history.push(\"/gallery\");\n } else {\n setError(t(\"Lagring misslyckades\"));\n setValue(null);\n }\n },\n (error) => {\n const _content =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n setError(_content);\n setValue(true);\n }\n );\n };\n\n const handleChange = (e) => {\n setNewAlbum({ ...newAlbum, [e.target.name]: e.target.value });\n };\n\n return (\n \n \n\n \n\n \n \n );\n};\n\nexport default AddAlbum;\n","import Gallery from \"react-grid-gallery\";\nimport React, {\n useState,\n useEffect,\n Fragment,\n useCallback,\n useMemo,\n} from \"react\";\nimport { Button } from \"../Common/CommonComponents\";\nimport GalleryService from \"../../services/gallery.service\";\nimport AuthService from \"../../services/auth.service\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\nimport { useDropzone } from \"react-dropzone\";\nimport dayjs from \"dayjs\";\n\nconst baseStyle = {\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"20px\",\n borderWidth: 2,\n borderRadius: 2,\n borderColor: \"#eeeeee\",\n borderStyle: \"dashed\",\n backgroundColor: \"#fafafa\",\n color: \"#bdbdbd\",\n outline: \"none\",\n transition: \"border .24s ease-in-out\",\n};\n\nconst activeStyle = {\n borderColor: \"#2196f3\",\n};\n\nconst acceptStyle = {\n borderColor: \"#00e676\",\n};\n\nconst rejectStyle = {\n borderColor: \"#ff1744\",\n};\n\nconst Album = () => {\n const { id } = useParams();\n const [album, setAlbum] = useState({});\n const [saved, setSaved] = useState(false);\n const [editMode, setEditMode] = useState(false);\n const [error, setError] = useState(null);\n const { t } = useTranslation();\n\n const onDrop = useCallback((acceptedFiles) => {\n if (acceptedFiles.length < 1) {\n return;\n }\n var formData = new FormData();\n acceptedFiles.forEach((file) => {\n formData.append(\"images\", file);\n });\n GalleryService.uploadImages(id, formData).then(\n (response) => {\n if (response.data && response.data) {\n setAlbum(response.data);\n setSaved(true);\n } else {\n setError(t(\"Lagring misslyckades\"));\n }\n },\n (error) => {\n const _content =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n setError(_content);\n }\n );\n }, []);\n const {\n acceptedFiles,\n fileRejections,\n isDragAccept,\n isDragReject,\n getRootProps,\n getInputProps,\n isDragActive,\n } = useDropzone({\n onDrop,\n accept: \"image/*\",\n });\n const style = useMemo(\n () => ({\n ...baseStyle,\n ...(isDragActive ? activeStyle : {}),\n ...(isDragAccept ? acceptStyle : {}),\n ...(isDragReject ? rejectStyle : {}),\n }),\n [isDragActive, isDragReject, isDragAccept]\n );\n\n useEffect(() => {\n GalleryService.getAlbum(id).then(\n (response) => {\n if (response.data && response.data) {\n setAlbum(response.data);\n } else {\n setAlbum([]);\n }\n },\n () => {}\n );\n }, []);\n\n const handleImageSelect = (index, image) => {\n var images = album.images.slice();\n var img = images[index];\n if (img.hasOwnProperty(\"isSelected\")) img.isSelected = !img.isSelected;\n else img.isSelected = true;\n setAlbum({ ...album });\n };\n\n const deleteImages = () => {\n if (\n window.confirm(t(\"Är du säker på att du vill radera de valda bilderna?\"))\n ) {\n GalleryService.deleteImages(id, getSelectedImages()).then(\n (response) => {\n if (response.data && response.data) {\n setAlbum(response.data);\n setSaved(true);\n } else {\n setError(t(\"Borttagning misslyckades\"));\n }\n },\n (error) => {\n const _content =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n setError(_content);\n }\n );\n }\n };\n\n const getImages = () => {\n if (album.images) {\n const items = album.images.map((image) => {\n return {\n ...image,\n thumbnailWidth: image.w,\n thumbnailHeight: image.h,\n thumbnail: image.thumbnail,\n caption:\n (image.comment ? image.comment : \"\") +\n \" \" +\n t(\"Uppladdad av\") +\n \": \" +\n image.user.name +\n \" \" +\n image.user.surname,\n };\n });\n\n return (\n \n );\n } else {\n return
    ;\n }\n };\n\n const acceptedFileItems = acceptedFiles.map((file) => (\n
  • \n {file.path} - {file.size} bytes\n
  • \n ));\n\n const fileRejectionItems = fileRejections.map(({ file, errors }) => (\n
  • \n {file.path} - {file.size} bytes\n
      \n {errors.map((e) => (\n
    • {e.message}
    • \n ))}\n
    \n
  • \n ));\n const saveImages = () => {\n GalleryService.updateImages(getSelectedImages());\n setEditMode(false);\n };\n\n const saveCoverPhoto = () => {\n album.coverPhoto = getSelectedImages()[0];\n GalleryService.updateAlbum(album);\n };\n\n const getSelectedImages = ()=>{ return album.images\n ? album.images.filter((image) => image.isSelected)\n : [];}\n return (\n \n {!editMode && (\n \n {AuthService.isAdmin() && (\n
    \n

    {t(\"Lägg till bilder\")}

    \n
    \n \n {isDragActive ? (\n

    {t(\"Släpp bilder här\")}

    \n ) : (\n

    \n {t(\"Drag bilder hit eller klicka för att välja bilder\")}\n

    \n )}\n
    \n
    \n

    {t(\"Godkända filer\")}

    \n
      {acceptedFileItems}
    \n

    {t(\"Avvisade filer\")}

    \n
      {fileRejectionItems}
    \n
    \n {getSelectedImages().length > 0 && (\n \n {getSelectedImages().length === 1 && (\n saveCoverPhoto()}\n >\n )}\n setEditMode(true)}\n >\n\n deleteImages()}\n >\n \n )}\n
    \n )}\n

    \n {album.name} - {dayjs(album.date).format(\"DD.MM.YYYY\")}{\" \"}\n

    \n {getImages()}\n
    \n )}\n {editMode && (\n \n
    \n {getSelectedImages().map((image) => {\n return (\n
    \n {image.comment}\n \n
    \n );\n })}\n
    \n \n setEditMode(false)}\n >\n
    \n )}\n
    \n );\n};\n\nexport default Album;\n","import React, { useState, useEffect, Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, NavLink } from \"react-router-dom\";\nimport AuthService from \"../services/auth.service\";\n\nconst Nav = () => {\n const [showUsers, setShowUsers] = useState(false);\n const [currentUser, setCurrentUser] = useState(undefined);\n const [menuOpen, setMenuOpen] = useState(false);\n const [profileOpen, setProfileOpen] = useState(false);\n const { t, i18n } = useTranslation();\n const logOut = () => {\n AuthService.logout();\n toggleProfile();\n };\n useEffect(() => {\n const user = AuthService.getCurrentUser();\n\n if (user) {\n setCurrentUser(user);\n setShowUsers(AuthService.isAdmin());\n }\n }, []);\n\n const toggleMenu = () => {\n setMenuOpen((prev) => {\n return !prev;\n });\n };\n const toggleProfile = () => {\n setProfileOpen((prev) => {\n return !prev;\n });\n };\n\n const changeLanguage = (lng) => {\n toggleProfile();\n i18n.changeLanguage(lng);\n };\n return (\n \n
    \n {/* */}\n
    \n
    \n {/* */}\n \n {t(\"Framsidan\")}\n \n {currentUser && (\n \n {t(\"Grader\")}\n \n )}\n\n \n {t(\"Historia\")}\n \n {currentUser && (\n \n {t(\"Direktionen\")}\n \n )}\n {currentUser && (\n \n {t(\"Grader\")}\n \n )}\n {currentUser && (\n \n {t(\"Bildgalleri\")}\n \n )}\n\n \n {t(\"Följande bal\")}\n \n\n \n {t(\"Nya medlemmar\")}\n \n\n {showUsers && (\n \n {t(\"Användare\")}\n \n )}\n
    \n
    \n \n \n );\n};\n\nexport default Nav;\n","import React, { useState, useRef } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport Form from \"react-validation/build/form\";\nimport Input from \"react-validation/build/input\";\nimport CheckButton from \"react-validation/build/button\";\nimport AuthService from \"../../services/auth.service\";\nimport { Button } from \"../Common/CommonComponents\";\n\nconst required = (value) => {\n if (!value) {\n return (\n
    \n This field is required!\n
    \n );\n }\n};\n\nconst UpdatePassword = () => {\n const form = useRef();\n const checkBtn = useRef();\n\n const [password, setPassword] = useState(\"\");\n const [message, setMessage] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n const { userId, token } = useParams();\n const { t } = useTranslation();\n const onChangePassword = (e) => {\n const password = e.target.value;\n setPassword(password);\n };\n\n const handleForm = (e) => {\n e.preventDefault();\n\n setMessage(\"\");\n setLoading(true);\n\n form.current.validateAll();\n\n if (checkBtn.current.context._errors.length === 0) {\n AuthService.updatePassword(userId, token, password).then(\n (resp) => {\n const resMessage =\n (resp.response &&\n resp.response.data &&\n resp.response.data.message) ||\n resp.message ||\n resp.toString();\n setLoading(false);\n setMessage(resMessage);\n },\n (error) => {\n const resMessage =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n\n setLoading(false);\n setMessage(resMessage);\n }\n );\n } else {\n setLoading(false);\n }\n };\n\n return (\n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n
    \n\n {message && (\n
    \n
    \n {message}\n
    \n
    \n )}\n \n \n
    \n
    \n );\n};\n\nexport default UpdatePassword;\n","import React, { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport CheckButton from \"react-validation/build/button\";\nimport Form from \"react-validation/build/form\";\nimport Input from \"react-validation/build/input\";\nimport AuthService from \"../../services/auth.service\";\nimport { Button } from \"../Common/CommonComponents\";\n\nconst required = (value) => {\n if (!value) {\n return (\n
    \n This field is required!\n
    \n );\n }\n};\n\nconst ForgotPassword = () => {\n const form = useRef();\n const checkBtn = useRef();\n\n const [email, setEmail] = useState(\"\");\n const [message, setMessage] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n const { t } = useTranslation();\n const onChangeEmail = (e) => {\n const email = e.target.value;\n setEmail(email);\n };\n\n const handleForm = (e) => {\n e.preventDefault();\n\n setMessage(\"\");\n setLoading(true);\n\n form.current.validateAll();\n\n if (checkBtn.current.context._errors.length === 0) {\n AuthService.forgotPassword(email).then(\n (resp) => {\n const resMessage =\n (resp.response &&\n resp.response.data &&\n resp.response.data.message) ||\n resp.message ||\n resp.toString();\n setLoading(false);\n setMessage(resMessage);\n },\n (error) => {\n const resMessage =\n (error.response &&\n error.response.data &&\n error.response.data.message) ||\n error.message ||\n error.toString();\n\n setLoading(false);\n setMessage(resMessage);\n }\n );\n } else {\n setLoading(false);\n }\n };\n\n return (\n
    \n
    \n
    \n
    \n \n \n
    \n\n
    \n \n
    \n\n {message && (\n
    \n
    \n {message}\n
    \n
    \n )}\n \n \n
    \n
    \n );\n};\n\nexport default ForgotPassword;\n","import React from \"react\";\nimport { Switch, Route } from \"react-router-dom\";\nimport \"./App.css\";\nimport Login from \"./components/Login\";\nimport Register from \"./components/Register\";\nimport Home from \"./components/Pages/Home\";\nimport BoardTasks from \"./components/Pages/BoardTasks\";\nimport History from \"./components/Pages/History\";\nimport NewMembers from \"./components/Pages/NewMembers\";\nimport NextBal from \"./components/Pages/NextBal\";\nimport Profile from \"./components/Profile\";\nimport Grades from \"./components/Pages/Grades\";\n// import BoardModerator from \"./components/BoardModerator\";\nimport UserList from \"./components/UserList\";\nimport Gallery from \"./components/Gallery/Gallery\";\nimport AddAlbum from \"./components/Gallery/AddAlbum\";\nimport Album from \"./components/Gallery/Album\";\nimport Nav from \"./components/Nav\";\nimport UpdatePassword from './components/Auth/UpdatePassword'\nimport ForgotPassword from './components/Auth/ForgotPassword'\n\nconst App = () => {\n return (\n
    \n
    \n );\n};\n\nexport default App;\n","import React, { Suspense } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport \"./i18n\";\nimport App from \"./App\";\nReactDOM.render(\n \n Loading...}>\n \n \n ,\n document.getElementById(\"root\")\n);\n"],"sourceRoot":""}