utopia-ui 3.0.0-alpha.24 → 3.0.0-alpha.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Components/AppShell/AppShell.d.ts +2 -1
- package/dist/Components/AppShell/SetAssetsApi.d.ts +5 -0
- package/dist/Components/AppShell/hooks/useAssets.d.ts +13 -0
- package/dist/Components/Gaming/hooks/useQuests.d.ts +13 -0
- package/dist/Components/Map/Subcomponents/Control.d.ts +4 -0
- package/dist/Components/Map/Subcomponents/QuestControl.d.ts +2 -0
- package/dist/Components/Profile/Settings.d.ts +1 -0
- package/dist/Components/Templates/DialogModal.d.ts +9 -0
- package/dist/index.js +268 -79
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/package.json +3 -1
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Utils/DynamicHeroIcon.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Auth/useAuth.tsx","../src/Components/Typography/ErrorText.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.tsx","../src/Components/Map/hooks/usePermissions.tsx","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/Subcomponents/FilterControl.tsx","../src/Components/Map/hooks/useLeafletRefs.tsx","../src/Components/Map/Subcomponents/LayerControl.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/MarkerIconFactory.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/types.ts","../src/Components/Input/TextAreaInput.tsx","../src/Utils/RandomColor.ts","../src/Components/Map/Subcomponents/ItemFormPopup.tsx","../src/Components/Map/Layer.tsx","../src/Components/Map/Tags.tsx","../src/Components/Map/Permissions.tsx","../src/Components/Map/ItemForm.tsx","../src/Components/Map/ItemView.tsx","../src/Components/Input/SelectBox.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx","../src/Components/AppShell/DialogModal.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/Typography/Subtitle.tsx","../src/Components/Templates/TitleCard.tsx","../src/Components/Profile/Settings.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.tsx","../src/Components/Templates/CardPage.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","// DynamicHeroIcon.tsx\n// Simple Dynamic HeroIcons Component for React (typescript / tsx)\n// by: Mike Summerfeldt (IT-MikeS - https://github.com/IT-MikeS)\n\nimport { FC } from 'react'\nimport * as HIcons from '@heroicons/react/20/solid'\nimport * as React from 'react'\n\nconst DynamicHeroIcon: FC<{icon: string, type?: \"solid\" | \"outline\", className?: string}> = (props) => {\n const {...icons} = HIcons\n \n const TheIcon: JSX.Element = icons[props.icon]\n\n if(!TheIcon) {\n console.log(`Icon ${props.icon} doesn't exist`);\n } \n\n return (\n <>\n {/* @ts-ignore */}\n <TheIcon className={props.className? props.className : \"tw-h-6 tw-w-6 tw-text-white\" }aria-hidden=\"true\" /> \n </>\n )\n}\n\nexport default DynamicHeroIcon","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { LayerProps } from \"../../../types\";\n\ntype ActionType =\n | { type: \"ADD LAYER\"; layer: LayerProps }\n\ntype UseItemManagerResult = ReturnType<typeof useLayerManager>;\n\nconst LayerContext = createContext<UseItemManagerResult>({\n layers: [],\n addLayer: () => { },\n});\n\nfunction useLayerManager(initialLayers: LayerProps[]): {\n layers: LayerProps[];\n addLayer: (layer: LayerProps) => void;\n} {\n const [layers, dispatch] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case \"ADD LAYER\":\n const exist = state.find((layer) =>\n layer.name === action.layer.name ? true : false\n );\n if (!exist) return [\n ...state,\n action.layer,\n ];\n else return state;\n default:\n throw new Error();\n }\n }, initialLayers);\n\n const addLayer = useCallback((layer: LayerProps) => {\n dispatch({\n type: \"ADD LAYER\",\n layer\n });\n }, []);\n\n return { layers, addLayer };\n}\n\nexport const LayersProvider: React.FunctionComponent<{\n initialLayers: LayerProps[], children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>\n {children}\n </LayerContext.Provider>\n);\n\nexport const useLayers = (): LayerProps[] => {\n const { layers } = useContext(LayerContext);\n return layers;\n};\n\nexport const useAddLayer = (): UseItemManagerResult[\"addLayer\"] => {\n const { addLayer } = useContext(LayerContext);\n return addLayer;\n};\n","import { createContext, useState, useContext, useEffect } from \"react\";\nimport * as React from \"react\";\nimport { UserApi, UserItem } from \"../../types\";\n\n\ntype AuthProviderProps = {\n userApi: UserApi,\n children?: React.ReactNode\n}\n\ntype AuthCredentials = {\n email: string;\n password: string;\n otp?: string | undefined;\n}\n\n\n\ntype AuthContextProps = {\n isAuthenticated: boolean,\n user: UserItem | null;\n login: (credentials: AuthCredentials) => Promise<UserItem | undefined>,\n register: (credentials: AuthCredentials, userName: string) => Promise<UserItem | undefined>,\n loading: Boolean,\n logout: () => Promise<any>,\n updateUser: (user: UserItem) => any,\n token: String | null\n}\n\nconst AuthContext = createContext<AuthContextProps>({\n isAuthenticated: false,\n user: null,\n login: () => Promise.reject(),\n register: () => Promise.reject(),\n loading: false,\n logout: () => Promise.reject(),\n updateUser: () => Promise.reject(),\n token: \"\"\n});\n\nexport const AuthProvider = ({ userApi, children }: AuthProviderProps) => {\n const [user, setUser] = useState<UserItem | null>(null);\n const [token, setToken] = useState<String | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n const isAuthenticated = !!user;\n\n useEffect(() => {\n setLoading(true);\n loadUser();\n setLoading(false)\n }, []);\n\n async function loadUser(): Promise<UserItem | undefined> {\n try {\n const token = await userApi.getToken(); \n setToken(token);\n if(token){\n const me = await userApi.getUser();\n setUser(me as UserItem);\n setLoading(false);\n return me as UserItem;\n }\n else return undefined;\n\n } catch (error) {\n setLoading(false)\n return undefined;\n }\n }\n \n\n const login = async (credentials: AuthCredentials): Promise<UserItem | undefined> => {\n setLoading(true);\n try {\n const res = await userApi.login(credentials.email, credentials.password);\n setToken(res.access_token);\n return (await loadUser());\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n const register = async (credentials: AuthCredentials, userName): Promise<UserItem | undefined> => {\n setLoading(true);\n try {\n const res = await userApi.register(credentials.email, credentials.password, userName)\n return (await login(credentials));\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n const logout = async () => {\n try {\n await userApi.logout();\n setUser(null);\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n const updateUser = async (user: UserItem) => {\n setLoading(true);\n const { id, ...userRest } = user;\n\n try {\n const res = await userApi.updateUser(userRest);\n setUser(res as any);\n setLoading(false);\n return res as any;\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n return (\n <AuthContext.Provider\n value={{ isAuthenticated, user, login, register, loading, logout, updateUser, token }}\n >\n {children}\n </AuthContext.Provider>\n );\n};\nexport const useAuth = () => useContext(AuthContext);","import * as React from \"react\"\n\nfunction ErrorText({styleClass, children}){\n return(\n <p className={`tw-text-center tw-text-error ${styleClass}`}>{children}</p>\n )\n}\n\nexport default ErrorText","import { useEffect, useState } from \"react\"\nimport * as React from \"react\"\n\ntype InputTextProps = {\n labelTitle?: string;\n labelStyle?: string;\n type?: string;\n dataField?: string;\n containerStyle?: string;\n inputStyle?: string;\n defaultValue?: string;\n placeholder?: string;\n autocomplete?: string\n updateFormValue?: (value: string ) => void;\n}\n\n\nexport function TextInput({labelTitle, labelStyle, type, dataField, containerStyle, inputStyle, defaultValue, placeholder, autocomplete, updateFormValue} : InputTextProps){\n\n return(\n <div className={`tw-form-control tw-w-full ${containerStyle}`}>\n {labelTitle ? <label className=\"tw-label\">\n <span className={\"tw-label-text tw-text-base-content \" + labelStyle}>{labelTitle}</span>\n </label> \n : \" \"} \n <input required type={type || \"text\"} name={dataField} defaultValue={defaultValue} placeholder={placeholder || \"\"} autoComplete={autocomplete} onChange={(e) => updateFormValue&& updateFormValue(e.target.value)}className={`tw-input tw-input-bordered tw-w-full ${inputStyle ? inputStyle : \"\"}`} />\n </div>\n )\n}\n\n\n","import {useState} from 'react'\nimport {Link} from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport {TextInput} from '../Input/TextInput'\nimport * as React from 'react'\n\nexport function LoginPage(){\n\n const INITIAL_LOGIN_OBJ = {\n password : \"\",\n emailId : \"\"\n }\n\n const [loading, setLoading] = useState(false)\n const [errorMessage, setErrorMessage] = useState(\"\")\n const [loginObj, setLoginObj] = useState(INITIAL_LOGIN_OBJ)\n\n const submitForm = (e) =>{\n e.preventDefault()\n setErrorMessage(\"\")\n\n if(loginObj.emailId.trim() === \"\")return setErrorMessage(\"Email Id is required! (use any value)\")\n if(loginObj.password.trim() === \"\")return setErrorMessage(\"Password is required! (use any value)\")\n else{\n setLoading(true)\n // Call API to check user credentials and save token in localstorage\n localStorage.setItem(\"token\", \"DumyTokenHere\")\n setLoading(false)\n window.location.href = '/app/welcome'\n }\n }\n\n const updateFormValue = (val: string) => {\n console.log(val)\n }\n\n return(\n <div className=\"tw-flex-1 tw-bg-base-200 tw-flex tw-items-center\">\n <div className=\"tw-card tw-mx-auto tw-w-full tw-max-w-md tw-shadow-xl\">\n <div className=\"tw-grid md:tw-grid-cols-1 tw-grid-cols-1 tw-bg-base-100 tw-rounded-xl\">\n <div className='tw-py-10 tw-px-10'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Login</h2>\n <form onSubmit={(e) => submitForm(e)}>\n\n <div className=\"tw-mb-4\">\n\n <TextInput type=\"email\" defaultValue={loginObj.emailId} containerStyle=\"tw-mt-4\" labelTitle=\"E-Mail\" updateFormValue={(v) => updateFormValue(v)}/>\n\n <TextInput defaultValue={loginObj.password} type=\"password\" containerStyle=\"tw-mt-4\" labelTitle=\"Password\" updateFormValue={(v) => updateFormValue(v)}/>\n\n </div>\n\n <div className='tw-text-right tw-text-primary'><Link to=\"/forgot-password\"><span className=\"tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Forgot Password?</span></Link>\n </div>\n\n <ErrorText styleClass=\"mt-8\">{errorMessage}</ErrorText>\n <button type=\"submit\" className={\"tw-btn tw-mt-2 tw-w-full tw-btn-primary\" + (loading ? \" tw-loading\" : \"\")}>Login</button>\n\n <div className='tw-text-center tw-mt-4'>Don't have an account yet? <Link to=\"/signup\"><span className=\" tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Sign Up</span></Link></div>\n </form>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import { useState } from 'react'\nimport { Link } from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport {TextInput} from '../Input/TextInput'\nimport * as React from 'react'\n\nexport function SignupPage() {\n\n const INITIAL_REGISTER_OBJ = {\n name : \"\",\n password : \"\",\n emailId : \"\"\n }\n\n const [loading, setLoading] = useState(false)\n const [errorMessage, setErrorMessage] = useState(\"\")\n const [registerObj, setRegisterObj] = useState(INITIAL_REGISTER_OBJ)\n\n const submitForm = (e) =>{\n e.preventDefault()\n setErrorMessage(\"\")\n\n if(registerObj.name.trim() === \"\")return setErrorMessage(\"Name is required! (use any value)\")\n if(registerObj.emailId.trim() === \"\")return setErrorMessage(\"Email Id is required! (use any value)\")\n if(registerObj.password.trim() === \"\")return setErrorMessage(\"Password is required! (use any value)\")\n else{\n setLoading(true)\n // Call API to check user credentials and save token in localstorage\n localStorage.setItem(\"token\", \"DumyTokenHere\")\n setLoading(false)\n window.location.href = '/app/welcome'\n }\n }\n\n const updateFormValue = (val: string) => {\n console.log(val)\n }\n\n return (\n <div className=\"tw-flex-1 tw-bg-base-200 tw-flex tw-items-center\">\n <div className=\"tw-card tw-mx-auto tw-w-full tw-max-w-md tw-shadow-xl\">\n <div className=\"tw-grid md:tw-grid-cols-1 tw-grid-cols-1 tw-bg-base-100 tw-rounded-xl\">\n <div className='tw-py-10 tw-px-10'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Sign Up</h2>\n <form onSubmit={(e) => submitForm(e)}>\n\n <div className=\"mb-4\">\n <TextInput defaultValue={registerObj.name} containerStyle=\"tw-mt-4\" labelTitle=\"Name\" updateFormValue={updateFormValue} />\n <TextInput defaultValue={registerObj.emailId} containerStyle=\"tw-mt-4\" labelTitle=\"E-Mail\" updateFormValue={updateFormValue} />\n <TextInput defaultValue={registerObj.password} type=\"password\" containerStyle=\"tw-mt-4\" labelTitle=\"Password\" updateFormValue={updateFormValue} />\n </div>\n\n <ErrorText styleClass=\"tw-mt-8\">{errorMessage}</ErrorText>\n <button type=\"submit\" className={\"tw-btn tw-mt-2 tw-w-full tw-btn-primary\" + (loading ? \" tw-loading\" : \"\")}>Register</button>\n\n <div className='tw-text-center tw-mt-4'>Already have an account? <Link to=\"/login\"><span className=\" tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Login</span></Link></div>\n </form>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { ItemsApi, LayerProps, Permission, PermissionAction } from \"../../../types\";\nimport { useAuth } from \"../../Auth\";\n\ntype ActionType =\n | { type: \"ADD\"; permission: Permission }\n | { type: \"REMOVE\"; id: string };\n\ntype UsePermissionManagerResult = ReturnType<typeof usePermissionsManager>;\n\nconst PermissionContext = createContext<UsePermissionManagerResult>({\n permissions: [],\n setPermissionApi: () => { },\n setPermissionData: () => { },\n setAdminRole: () => { },\n hasUserPermission: () => true\n});\n\nfunction usePermissionsManager(initialPermissions: Permission[]): {\n permissions: Permission[];\n setPermissionApi: (api: ItemsApi<any>) => void;\n setPermissionData: (data: Permission[]) => void;\n setAdminRole: (adminRole: string) => void;\n hasUserPermission: (collectionName: string, action: PermissionAction) => boolean;\n} {\n const [permissions, dispatch] = useReducer((state: Permission[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((permission) =>\n permission.id === action.permission.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.permission,\n ];\n else return state;\n\n case \"REMOVE\":\n return state.filter(({ id }) => id !== action.id);\n default:\n throw new Error();\n }\n }, initialPermissions);\n\n const [adminRole, setAdminRole] = React.useState<string | null>(null);\n const { user } = useAuth();\n\n\n const setPermissionApi = useCallback(async (api: ItemsApi<Permission>) => { \n const result = await api.getItems();\n if (result) {\n result.map(permission => {\n dispatch({ type: \"ADD\", permission })\n })\n }\n }, [])\n\n const setPermissionData = useCallback((data: Permission[]) => {\n data.map(permission => {\n dispatch({ type: \"ADD\", permission })\n })\n }, []);\n\n const hasUserPermission = useCallback((collectionName: string, action: PermissionAction) => { \n if (permissions.length == 0) return true;\n else if (user && user.role == adminRole) return true;\n else return permissions.some(p => p.action === action && p.collection === collectionName && p.role == user?.role)\n }, [permissions, user]);\n\n\n\n return { permissions, setPermissionApi, setPermissionData, setAdminRole, hasUserPermission };\n}\n\nexport const PermissionsProvider: React.FunctionComponent<{\n initialPermissions: Permission[], children?: React.ReactNode\n}> = ({ initialPermissions, children }) => (\n <PermissionContext.Provider value={usePermissionsManager(initialPermissions)}>\n {children}\n </PermissionContext.Provider>\n);\n\nexport const usePermissions = (): Permission[] => {\n const { permissions } = useContext(PermissionContext);\n return permissions;\n};\n\n\nexport const useSetPermissionApi = (): UsePermissionManagerResult[\"setPermissionApi\"] => {\n const { setPermissionApi } = useContext(PermissionContext);\n return setPermissionApi;\n}\n\nexport const useSetPermissionData = (): UsePermissionManagerResult[\"setPermissionData\"] => {\n const { setPermissionData } = useContext(PermissionContext);\n return setPermissionData;\n}\n\nexport const useHasUserPermission = (): UsePermissionManagerResult[\"hasUserPermission\"] => {\n const { hasUserPermission } = useContext(PermissionContext);\n return hasUserPermission;\n}\n\nexport const useSetAdminRole = (): UsePermissionManagerResult[\"setAdminRole\"] => {\n const { setAdminRole } = useContext(PermissionContext);\n return setAdminRole;\n}","import * as React from 'react'\nimport DynamicHeroIcon from '../../../Utils/DynamicHeroIcon'\nimport { useLayers } from '../hooks/useLayers'\nimport { useHasUserPermission } from '../hooks/usePermissions';\n\n\nexport default function AddButton({ setSelectNewItemPosition }: { setSelectNewItemPosition: React.Dispatch<React.SetStateAction<any>> }) {\n\n const layers = useLayers();\n const hasUserPermission = useHasUserPermission();\n\n\n return (\n <div className=\"tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-4 tw-bottom-4\" >\n <label tabIndex={0} className=\"tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" className=\"tw-w-5 tw-h-5\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 4.5v15m7.5-7.5h-15\" />\n </svg>\n </label>\n <ul tabIndex={0} className=\"tw-dropdown-content tw-pr-1 tw-list-none\">\n {layers.map((layer) => (\n layer.api?.createItem && hasUserPermission(layer.api.collectionName!,\"create\") && (\n <li key={layer.name} >\n <a>\n <div className=\"tw-tooltip tw-tooltip-left\" data-tip={layer.menuText}>\n <button tabIndex={0}\n className=\"tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none\"\n style={{ backgroundColor: layer.menuColor }}\n onClick={() => { setSelectNewItemPosition(layer) }}>\n <DynamicHeroIcon type='solid' icon={layer.menuIcon} />\n </button>\n </div>\n </a>\n </li>\n )\n\n ))}\n </ul>\n\n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext, useEffect } from \"react\";\nimport * as React from \"react\";\nimport { Item, ItemsApi, LayerProps, Tag } from \"../../../types\";\nimport { toast } from \"react-toastify\";\nimport { useAddLayer } from \"./useLayers\";\n\n\ntype ActionType =\n | { type: \"ADD\"; item: Item }\n | { type: \"UPDATE\"; item: Item }\n | { type: \"REMOVE\"; item: Item }\n | { type: \"RESET\"; layer: LayerProps }\n ;\n\n\ntype UseItemManagerResult = ReturnType<typeof useItemsManager>;\n\nconst ItemContext = createContext<UseItemManagerResult>({\n items: [],\n addItem: () => { },\n updateItem: () => { },\n removeItem: () => { },\n resetItems: () => { },\n setItemsApi: () => { },\n setItemsData: () => { },\n});\n\nfunction useItemsManager(initialItems: Item[]): {\n items: Item[];\n addItem: (item: Item) => void;\n updateItem: (item: Item) => void;\n removeItem: (item: Item) => void;\n resetItems: (layer: LayerProps) => void;\n setItemsApi: (layer: LayerProps) => void;\n setItemsData: (layer: LayerProps) => void;\n} {\n\n const addLayer = useAddLayer();\n\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((item) =>\n item.id === action.item.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.item,\n ];\n else return state;\n case \"UPDATE\":\n return state.map((item) => {\n if (item.id === action.item.id) {\n return action.item\n }\n return item\n });\n case \"REMOVE\":\n return state.filter(item => item !== action.item);\n case \"RESET\":\n return state.filter(item => item.layer?.name !== action.layer.name);\n default:\n throw new Error();\n }\n }, initialItems);\n\n\n const setItemsApi = useCallback(async (layer: LayerProps) => {\n layer.api?.createItem && addLayer(layer);\n const result = await toast.promise(\n layer.api!.getItems(),\n {\n pending: `loading ${layer.name} ...`,\n success: `${layer.name} loaded`,\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n }\n );\n if (result) {\n result.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n }\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n layer.data?.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n }, []);\n\n\n const addItem = useCallback(async (item: Item) => { \n dispatch({\n type: \"ADD\",\n item,\n });\n }, []);\n\n const updateItem = useCallback(async (item: Item) => {\n dispatch({\n type: \"UPDATE\",\n item,\n });\n }, []);\n\n const removeItem = useCallback((item: Item) => {\n dispatch({\n type: \"REMOVE\",\n item,\n });\n }, []);\n\n const resetItems = useCallback((layer: LayerProps) => {\n dispatch({\n type: \"RESET\",\n layer\n });\n }, []);\n\n\n\n return { items, updateItem, addItem, removeItem, resetItems, setItemsApi, setItemsData };\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[], children?: React.ReactNode\n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>\n {children}\n </ItemContext.Provider>\n);\n\nexport const useItems = (): Item[] => {\n const { items } = useContext(ItemContext);\n return items;\n};\n\nexport const useAddItem = (): UseItemManagerResult[\"addItem\"] => {\n const { addItem } = useContext(ItemContext);\n return addItem;\n};\n\nexport const useUpdateItem = (): UseItemManagerResult[\"updateItem\"] => {\n const { updateItem } = useContext(ItemContext);\n return updateItem;\n};\n\nexport const useRemoveItem = (): UseItemManagerResult[\"removeItem\"] => {\n const { removeItem } = useContext(ItemContext);\n return removeItem;\n};\n\nexport const useResetItems = (): UseItemManagerResult[\"resetItems\"] => {\n const { resetItems } = useContext(ItemContext);\n return resetItems;\n};\n\nexport const useSetItemsApi = (): UseItemManagerResult[\"setItemsApi\"] => {\n const { setItemsApi } = useContext(ItemContext);\n return setItemsApi;\n};\n\nexport const useSetItemsData = (): UseItemManagerResult[\"setItemsData\"] => {\n const { setItemsData } = useContext(ItemContext);\n return setItemsData;\n}; ","export const hashTagRegex = /(#+[a-zA-Z0-9A-Za-zÀ-ÖØ-öø-ʸ(_)]{1,})/g;","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Item, ItemsApi, Tag } from \"../../../types\";\nimport { hashTagRegex } from \"../../../Utils/HashTagRegex\";\n\ntype ActionType =\n | { type: \"ADD\"; tag: Tag }\n | { type: \"REMOVE\"; id: string };\n\ntype UseTagManagerResult = ReturnType<typeof useTagsManager>;\n\nconst TagContext = createContext<UseTagManagerResult>({\n tags: [],\n addTag: () => { },\n removeTag: () => { },\n setTagApi: () => { },\n setTagData: () => { },\n getItemTags: () => []\n});\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[];\n addTag: (tag: Tag) => void;\n removeTag: (id: string) => void;\n setTagApi: (api: ItemsApi<Tag>) => void;\n setTagData: (data: Tag[]) => void;\n getItemTags: (item: Item) => Tag[];\n} {\n const [tags, dispatch] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((tag) =>\n tag.id.toLocaleLowerCase() === action.tag.id.toLocaleLowerCase() ? true : false\n );\n if (!exist) return [\n ...state,\n {...action.tag, id: action.tag.id.toLocaleLowerCase()}\n ];\n else return state;\n\n case \"REMOVE\":\n return state.filter(({ id }) => id !== action.id.toLocaleLowerCase());\n default:\n throw new Error();\n }\n }, initialTags);\n\n const [api, setApi] = React.useState<ItemsApi<Tag>>({} as ItemsApi<Tag>)\n\n const setTagApi = useCallback(async (api: ItemsApi<Tag>) => {\n setApi(api);\n const result = await api.getItems();\n if (result) {\n result.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\n })\n }\n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\n })\n }, []);\n\n const addTag = (tag: Tag) => {\n dispatch({\n type: \"ADD\",\n tag,\n });\n\n if (!tags.some((t) => t.id.toLocaleLowerCase() === tag.id.toLocaleLowerCase())) {\n api?.createItem && api.createItem(tag);\n }\n };\n\n const removeTag = useCallback((id: string) => {\n dispatch({\n type: \"REMOVE\",\n id,\n });\n api?.deleteItem && api.deleteItem(id);\n }, []);\n\n const getItemTags = useCallback((item: Item) => { \n const itemTagStrings = item.text.toLocaleLowerCase().match(hashTagRegex);\n const itemTags: Tag[] = [];\n itemTagStrings?.map(tag => {\n if (tags.find(t => t.id === tag.slice(1))) {\n itemTags.push(tags.find(t => t.id === tag.slice(1))!)\n }\n })\n return itemTags \n }, [tags]);\n\n\n return { tags, addTag, removeTag, setTagApi, setTagData, getItemTags };\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>\n {children}\n </TagContext.Provider>\n);\n\nexport const useTags = (): Tag[] => {\n const { tags } = useContext(TagContext);\n return tags;\n};\n\nexport const useAddTag = (): UseTagManagerResult[\"addTag\"] => {\n const { addTag } = useContext(TagContext);\n return addTag;\n};\n\nexport const useRemoveTag = (): UseTagManagerResult[\"removeTag\"] => {\n const { removeTag } = useContext(TagContext);\n return removeTag;\n};\n\nexport const useSetTagApi = (): UseTagManagerResult[\"setTagApi\"] => {\n const { setTagApi } = useContext(TagContext);\n return setTagApi;\n}\n\nexport const useSetTagData = (): UseTagManagerResult[\"setTagData\"] => {\n const { setTagData } = useContext(TagContext);\n return setTagData;\n}\n\n\nexport const useGetItemTags = (): UseTagManagerResult[\"getItemTags\"] => {\n const { getItemTags } = useContext(TagContext);\n return getItemTags;\n}","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { LayerProps, Tag } from \"../../../types\";\nimport { useLayers } from \"./useLayers\";\n\ntype ActionType =\n | { type: \"ADD_TAG\"; tag: Tag }\n | { type: \"REMOVE_TAG\"; id: string }\n | { type: \"RESET_TAGS\" }\n | { type: \"TOGGLE_LAYER\"; layer: LayerProps }\n | { type: \"ADD_LAYER\"; layer: LayerProps }\n | { type: \"RESET_LAYERS\" }\n ;\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>;\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: \"\",\n visibleLayers: [],\n addFilterTag: () => { },\n removeFilterTag: () => { },\n resetFilterTags: () => { },\n setSearchPhrase: () => { },\n addVisibleLayer: () => { },\n toggleVisibleLayer: () => { },\n resetVisibleLayers: () => { },\n isLayerVisible: () => true\n});\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[];\n searchPhrase: string;\n visibleLayers: LayerProps[];\n addFilterTag: (tag: Tag) => void;\n removeFilterTag: (id: string) => void;\n resetFilterTags: () => void;\n setSearchPhrase: (phrase: string) => void;\n addVisibleLayer: (layer: LayerProps) => void;\n toggleVisibleLayer: (layer: LayerProps) => void;\n resetVisibleLayers: () => void;\n isLayerVisible: (layer: LayerProps) => boolean;\n} {\n const [filterTags, dispatchTags] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case \"ADD_TAG\":\n const exist = state.find((tag) =>\n tag.id === action.tag.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.tag,\n ];\n else return state;\n case \"REMOVE_TAG\":\n return state.filter(({ id }) => id !== action.id);\n case \"RESET_TAGS\":\n return initialTags;\n default:\n throw new Error();\n }\n }, initialTags);\n\n const initialLayers = useLayers()\n\n const [visibleLayers, dispatchLayers] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case \"ADD_LAYER\":\n const exist1 = state.find((layer) =>\n layer.name === action.layer.name ? true : false\n );\n if (!exist1) return [\n ...state,\n action.layer,\n ];\n else return state;\n case \"TOGGLE_LAYER\":\n const exist2 = state.some((layer) =>\n layer.name === action.layer.name);\n if(exist2) return state.filter(({name}) => name != action.layer.name);\n else return [... state, action.layer];\n case \"RESET_LAYERS\":\n return initialLayers;\n default:\n throw new Error();\n }\n }, initialLayers);\n\n const [searchPhrase, searchPhraseSet] = React.useState<string>(\"\");\n\n const addFilterTag = (tag: Tag) => {\n dispatchTags({\n type: \"ADD_TAG\",\n tag,\n });\n\n };\n\n const removeFilterTag = useCallback((id: string) => {\n dispatchTags({\n type: \"REMOVE_TAG\",\n id,\n });\n }, []);\n\n const resetFilterTags = useCallback(() => {\n dispatchTags({\n type: \"RESET_TAGS\",\n });\n }, []);\n\n const addVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: \"ADD_LAYER\",\n layer,\n });\n\n };\n\n const toggleVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: \"TOGGLE_LAYER\",\n layer,\n });\n\n };\n\n\n const resetVisibleLayers = useCallback(() => {\n dispatchLayers({\n type: \"RESET_LAYERS\",\n });\n }, []);\n\n const isLayerVisible = useCallback((layer: LayerProps) => {\n return visibleLayers.some(l => l.name === layer.name)\n }, [visibleLayers]);\n\n const setSearchPhrase = useCallback((phrase: string) => {\n searchPhraseSet(phrase)\n }, []);\n\n return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase, visibleLayers, toggleVisibleLayer, resetVisibleLayers, isLayerVisible, addVisibleLayer };\n}\n\nexport const FilterProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <FilterContext.Provider value={useFilterManager(initialTags)}>\n {children}\n </FilterContext.Provider>\n);\n\nexport const useFilterTags = (): Tag[] => {\n const { filterTags } = useContext(FilterContext);\n return filterTags;\n};\n\nexport const useAddFilterTag = (): UseFilterManagerResult[\"addFilterTag\"] => {\n const { addFilterTag } = useContext(FilterContext);\n return addFilterTag;\n};\n\nexport const useRemoveFilterTag = (): UseFilterManagerResult[\"removeFilterTag\"] => {\n const { removeFilterTag } = useContext(FilterContext);\n return removeFilterTag;\n};\n\nexport const useResetFilterTags = (): UseFilterManagerResult[\"resetFilterTags\"] => {\n const { resetFilterTags } = useContext(FilterContext);\n return resetFilterTags;\n};\n\nexport const useSearchPhrase = (): UseFilterManagerResult[\"searchPhrase\"] => {\n const { searchPhrase } = useContext(FilterContext);\n return searchPhrase;\n};\n\nexport const useSetSearchPhrase = (): UseFilterManagerResult[\"setSearchPhrase\"] => {\n const { setSearchPhrase } = useContext(FilterContext);\n return setSearchPhrase;\n};\n\nexport const useVisibleLayer = (): UseFilterManagerResult[\"visibleLayers\"] => {\n const { visibleLayers } = useContext(FilterContext);\n return visibleLayers;\n};\n\nexport const useAddVisibleLayer = (): UseFilterManagerResult[\"addVisibleLayer\"] => {\n const { addVisibleLayer } = useContext(FilterContext);\n return addVisibleLayer;\n};\n\n\nexport const useToggleVisibleLayer = (): UseFilterManagerResult[\"toggleVisibleLayer\"] => {\n const { toggleVisibleLayer } = useContext(FilterContext);\n return toggleVisibleLayer;\n};\n\nexport const useResetVisibleLayers = (): UseFilterManagerResult[\"resetVisibleLayers\"] => {\n const { resetVisibleLayers } = useContext(FilterContext);\n return resetVisibleLayers;\n};\n\nexport const useIsLayerVisible = (): UseFilterManagerResult[\"isLayerVisible\"] => {\n const { isLayerVisible } = useContext(FilterContext);\n return isLayerVisible;\n};","import { useState, useEffect } from 'react';\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height\n };\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}\n","import * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag, useSetSearchPhrase } from '../hooks/useFilter'\nimport useWindowDimensions from '../hooks/useWindowDimension';\n\n\n\n\n\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport const FilterControl = () => {\n\n const windowDimensions = useWindowDimensions();\n /** \n const [popupOpen, setPopupOpen] = useState<boolean>(false);\n \n useMapEvents({\n popupopen: (e) => {\n console.log(e);\n \n setPopupOpen(true);\n },\n popupclose: () => {\n setPopupOpen(false);\n }\n })\n */\n const filterTags = useFilterTags();\n const removeFilterTag = useRemoveFilterTag();\n const setSearchPhrase = useSetSearchPhrase();\n return (<>\n {!(\n //popupOpen &&\n windowDimensions.height < 500) &&\n <div className='tw-flex tw-flex-col tw-absolute tw-top-4 tw-left-4 tw-z-[699] tw-w-[calc(100vw-2rem)] tw-max-w-sm'>\n <input type=\"text\" placeholder=\"search ...\" className=\"tw-input tw-input-bordered tw-w-full tw-shadow-xl tw-rounded-2xl\" onChange={(e) => setSearchPhrase(e.target.value)} />\n <div className='tw-flex tw-flex-wrap tw-mt-4'>\n {\n filterTags.map(tag =>\n <div key={tag.id} className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2' style={{ backgroundColor: tag.color }}>\n <div className=\"tw-card-actions tw-justify-end\">\n <label className=\"tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600\" onClick={() => (removeFilterTag(tag.id))}>✕</label>\n </div><b>#{capitalizeFirstLetter(tag.id)}</b>\n </div>\n )\n }\n\n\n </div>\n </div>\n }\n </>\n\n )\n}\n","import { useCallback, useReducer, createContext, useContext, useEffect } from \"react\";\nimport * as React from \"react\";\nimport { Item } from \"../../../types\";\nimport { Marker, Popup } from \"leaflet\";\n\ntype LeafletRef = {\n item: Item,\n marker: Marker,\n popup: Popup\n}\n\ntype ActionType =\n | { type: \"ADD_MARKER\"; item: Item, marker: Marker }\n | { type: \"ADD_POPUP\"; item: Item, popup: Popup }\n ;\n\n\ntype UseLeafletRefsManagerResult = ReturnType<typeof useLeafletRefsManager>;\n\nconst LeafletRefsContext = createContext<UseLeafletRefsManagerResult>({\n leafletRefs: {},\n addMarker: () => { },\n addPopup: () => { },\n});\n\nfunction useLeafletRefsManager(initialLeafletRefs: {}): {\n leafletRefs: Record<string,LeafletRef>;\n addMarker: (item: Item, marker: Marker) => void;\n addPopup: (item: Item, popup: Popup) => void;\n} {\n\n\n\n const [leafletRefs, dispatch] = useReducer((state: Record<string,LeafletRef>, action: ActionType) => {\n switch (action.type) {\n case \"ADD_MARKER\":\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], marker: action.marker, item: action.item }}\n case \"ADD_POPUP\":\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], popup: action.popup, item: action.item }}\n default:\n throw new Error();\n }\n }, initialLeafletRefs);\n\n\n\n\n const addMarker = useCallback((item: Item, marker: Marker) => {\n dispatch({\n type: \"ADD_MARKER\",\n item,\n marker\n });\n }, []);\n\n const addPopup = useCallback((item: Item, popup: Popup) => {\n dispatch({\n type: \"ADD_POPUP\",\n item,\n popup\n });\n }, []);\n\n\n\n return { leafletRefs, addMarker, addPopup };\n}\n\nexport const LeafletRefsProvider: React.FunctionComponent<{\n initialLeafletRefs: {}, children?: React.ReactNode\n}> = ({ initialLeafletRefs, children }) => (\n <LeafletRefsContext.Provider value={useLeafletRefsManager(initialLeafletRefs)}>\n {children}\n </LeafletRefsContext.Provider>\n);\n\nexport const useLeafletRefs = (): Record<string,LeafletRef> => {\n const { leafletRefs } = useContext(LeafletRefsContext);\n return leafletRefs;\n};\n\nexport const useAddMarker = (): UseLeafletRefsManagerResult[\"addMarker\"] => {\n const { addMarker } = useContext(LeafletRefsContext);\n return addMarker;\n};\n\nexport const useAddPopup = (): UseLeafletRefsManagerResult[\"addPopup\"] => {\n const { addPopup } = useContext(LeafletRefsContext);\n return addPopup;\n};\n\n","import * as React from 'react'\nimport { useLayers } from '../hooks/useLayers';\nimport { useAddVisibleLayer, useIsLayerVisible, useToggleVisibleLayer } from '../hooks/useFilter';\nimport { useEffect } from 'react';\n\nexport function LayerControl() {\n\n const [open, setOpen] = React.useState(false);\n\n const layers = useLayers();\n\n useEffect(() => {\n layers.map(layer =>\n addVisibleLayer(layer)\n )\n\n }, [layers])\n\n const isLayerVisible = useIsLayerVisible();\n const toggleVisibleLayer = useToggleVisibleLayer();\n const addVisibleLayer = useAddVisibleLayer();\n\n return (\n <div className=\"tw-card tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-1000 \" onClick={e=> e.stopPropagation()}>\n {\n open ?\n <div className=\"tw-card-body tw-p-2 tw-w-32 tw-transition-all tw-duration-300\" onClick={e=> e.stopPropagation()}>\n <label className=\"tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-bg-white tw-text-gray-600\" onClick={()=>setOpen(false)}><p className='tw-text-center '>✕</p></label>\n\n <ul className='tw-flex-row'>\n {\n layers.map(layer =>\n <li key={layer.name}><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-1\"><input type=\"checkbox\" className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isLayerVisible(layer)} onChange={() => toggleVisibleLayer(layer)} /><span className='tw-text-sm tw-label-text tw-mx-2'>{layer.name}</span></label></li>\n\n )\n }\n\n </ul>\n </div>\n :\n <div className=\"tw-card-body tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer\" onClick={() => setOpen(true)}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={2} stroke=\"currentColor\" className=\"w-6 h-6\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\" />\n </svg>\n </div>\n\n }\n\n </div>\n )\n}\n","import { TileLayer, MapContainer, useMapEvents } from \"react-leaflet\";\nimport \"leaflet/dist/leaflet.css\";\nimport * as React from \"react\";\nimport { LayerProps, UtopiaMapProps } from \"../../types\"\nimport \"./UtopiaMap.css\"\nimport { LatLng } from \"leaflet\";\nimport MarkerClusterGroup from 'react-leaflet-cluster'\nimport AddButton from \"./Subcomponents/AddButton\";\nimport { useState } from \"react\";\nimport { ItemFormPopupProps } from \"./Subcomponents/ItemFormPopup\";\nimport { ItemsProvider } from \"./hooks/useItems\";\nimport { TagsProvider } from \"./hooks/useTags\";\nimport { LayersProvider } from \"./hooks/useLayers\";\nimport { FilterProvider } from \"./hooks/useFilter\";\nimport { FilterControl } from \"./Subcomponents/FilterControl\";\nimport { PermissionsProvider } from \"./hooks/usePermissions\";\nimport { LeafletRefsProvider } from \"./hooks/useLeafletRefs\";\nimport { LayerControl } from \"./Subcomponents/LayerControl\";\n\n\nexport interface MapEventListenerProps {\n selectNewItemPosition: LayerProps | null,\n setSelectNewItemPosition: React.Dispatch<any>,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\n\n// for refreshing map on resize (needs to be implemented)\nconst mapDivRef = React.createRef();\n\nfunction UtopiaMap({\n height = \"500px\",\n width = \"100%\",\n center = new LatLng(50.6, 9.5),\n zoom = 10,\n children }\n : UtopiaMapProps) {\n\n let meta = document.getElementsByTagName('meta')\n const [metaTags, setMetaTags] = useState<HTMLCollectionOf<HTMLMetaElement>>(meta);\n\n function MapEventListener(props: MapEventListenerProps) {\n useMapEvents({\n click: (e) => {\n window.history.pushState({}, \"\", \"/\");\n document.title = document.title.split(\"-\")[0];\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute(\"content\", document.title);\n document.querySelector('meta[property=\"og:description\"]')?.setAttribute(\"content\", `${document.querySelector('meta[name=\"description\"]')?.getAttribute(\"content\")}`);\n\n meta = metaTags;\n console.log(e.latlng.lat + ',' + e.latlng.lng);\n if (props.selectNewItemPosition != null) {\n props.setItemFormPopup({ layer: props.selectNewItemPosition, position: e.latlng })\n props.setSelectNewItemPosition(null)\n }\n },\n resize: () => {\n console.log(\"resize\");\n },\n\n })\n return null\n }\n\n const [selectNewItemPosition, setSelectNewItemPosition] = useState<LayerProps | null>(null);\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n const clusterRef = React.useRef();\n\n\n return (\n <LayersProvider initialLayers={[]}>\n <TagsProvider initialTags={[]}>\n <PermissionsProvider initialPermissions={[]}>\n <FilterProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <LeafletRefsProvider initialLeafletRefs={{}}>\n <div className={(selectNewItemPosition != null ? \"crosshair-cursor-enabled\" : undefined)}>\n <MapContainer ref={mapDivRef} style={{ height: height, width: width }} center={center} zoom={zoom} zoomControl={false}>\n <FilterControl></FilterControl>\n <LayerControl></LayerControl>\n\n <TileLayer\n attribution='© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url=\"https://tile.osmand.net/hd/{z}/{x}/{y}.png\" />\n <MarkerClusterGroup ref={clusterRef} showCoverageOnHover chunkedLoading maxClusterRadius={50} removeOutsideVisibleBounds={false}>\n {\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>, itemFormPopup: ItemFormPopupProps | null, clusterRef: React.MutableRefObject<undefined> }>(child) ?\n React.cloneElement(child, { setItemFormPopup: setItemFormPopup, itemFormPopup: itemFormPopup, clusterRef: clusterRef }) : child\n )\n }\n </MarkerClusterGroup>\n <MapEventListener setSelectNewItemPosition={setSelectNewItemPosition} selectNewItemPosition={selectNewItemPosition} setItemFormPopup={setItemFormPopup} />\n </MapContainer>\n <AddButton setSelectNewItemPosition={setSelectNewItemPosition}></AddButton>\n {selectNewItemPosition != null &&\n <div className=\"tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md\">\n <div className=\"tw-alert tw-bg-base-100 tw-text-base-content\">\n <div>\n <span>Select {selectNewItemPosition.name} position!</span>\n </div>\n </div>\n </div>\n }\n </div>\n </LeafletRefsProvider>\n </ItemsProvider>\n </FilterProvider>\n </PermissionsProvider>\n </TagsProvider>\n </LayersProvider>\n );\n}\n\nexport { UtopiaMap };","import * as L from 'leaflet';\n\nconst createSvg = (shape:string, markerColor:string, borderColor:string) => {\n const svgMap = {\n circle: '<svg width=\"32\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.5 2.746c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.439-17.863.056-.08a15.422 15.422 0 002.343-6.112c.123-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307\" fill=\"' + markerColor + '\" /><path d=\"M17.488 2.748c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.44-17.863.055-.08a15.422 15.422 0 002.343-6.112c.124-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307m0 1.071c7.68 0 13.929 6.386 13.929 14.236 0 .685-.064 1.423-.193 2.258-.325 2.075-1.059 3.99-2.164 5.667l-.055.078-11.557 16.595L6.032 26.14l-.12-.174a14.256 14.256 0 01-2.105-5.29 14.698 14.698 0 01-.247-2.62c0-7.851 6.249-14.237 13.928-14.237\" fill=\"' + borderColor + '\" opacity=\"1\" /></svg>',\n square: '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28.205 3.217H6.777c-2.367 0-4.286 1.87-4.286 4.179v19.847c0 2.308 1.919 4.179 4.286 4.179h5.357l5.337 13.58 5.377-13.58h5.357c2.366 0 4.285-1.87 4.285-4.179V7.396c0-2.308-1.919-4.179-4.285-4.179\" fill=\"' + markerColor + '\" /><g opacity=\"1\" transform=\"matrix(1.0714 0 0 -1.0714 -233.22 146.783)\"><path d=\"M244 134h-20c-2.209 0-4-1.746-4-3.9v-18.525c0-2.154 1.791-3.9 4-3.9h5L233.982 95 239 107.675h5c2.209 0 4 1.746 4 3.9V130.1c0 2.154-1.791 3.9-4 3.9m0-1c1.654 0 3-1.301 3-2.9v-18.525c0-1.599-1.346-2.9-3-2.9h-5.68l-.25-.632-4.084-10.318-4.055 10.316-.249.634H224c-1.654 0-3 1.301-3 2.9V130.1c0 1.599 1.346 2.9 3 2.9h20\" fill=\"'+ borderColor +'\" /></g></svg>',\n star: '<svg width=\"34\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32.92 16.93l-3.525-3.525V8.419a1.983 1.983 0 00-1.983-1.982h-4.985L18.9 2.91a1.984 1.984 0 00-2.803 0l-3.524 3.526H7.588a1.983 1.983 0 00-1.982 1.982v4.986L2.081 16.93a1.982 1.982 0 000 2.803l3.525 3.526v4.984c0 1.096.888 1.983 1.982 1.983h4.986L17.457 45l4.97-14.773h4.985a1.983 1.983 0 001.983-1.983V23.26l3.525-3.526a1.982 1.982 0 000-2.803\" fill=\"' + markerColor + '\" /><g opacity=\".15\" transform=\"matrix(1.0667 0 0 -1.0667 -347.3 97.26)\"><path d=\"M342 89c-.476 0-.951-.181-1.314-.544l-3.305-3.305h-4.673a1.858 1.858 0 01-1.859-1.858v-4.674l-3.305-3.305a1.857 1.857 0 010-2.627l3.305-3.305v-4.674a1.86 1.86 0 011.859-1.859h4.673L341.959 49l4.659 13.849h4.674a1.86 1.86 0 011.859 1.859v4.674l3.305 3.305a1.858 1.858 0 010 2.627l-3.305 3.305v4.674a1.859 1.859 0 01-1.859 1.858h-4.674l-3.304 3.305A1.851 1.851 0 01342 89m0-1a.853.853 0 00.607-.251l3.304-3.305.293-.293h5.088a.86.86 0 00.859-.858v-5.088l3.598-3.598A.852.852 0 00356 74a.85.85 0 00-.251-.606l-3.598-3.598v-5.088a.86.86 0 00-.859-.859h-5.393l-.229-.681-3.702-11.006-3.637 11.001-.227.686h-5.396a.86.86 0 00-.859.859v5.088l-3.598 3.598c-.162.162-.251.377-.251.606s.089.445.251.607l3.598 3.598v5.088a.86.86 0 00.859.858h5.087l3.598 3.598A.853.853 0 00342 88\" fill=\"#231f20\" /></g></svg>',\n penta: '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.872 17.35L9.679 2.993h15.615L33.1 17.35 17.486 44.992z\" fill=\"' + markerColor + '\" /><g opacity=\".15\" transform=\"matrix(1.0769 0 0 -1.0769 -272.731 48.23)\"><path d=\"M276.75 42h-14.5L255 28.668 269.5 3 284 28.668zm-.595-1l6.701-12.323L269.5 5.033l-13.356 23.644L262.845 41z\" fill=\"#231f20\" /></g></svg>'\n };\n return svgMap[shape];\n}\n\nconst addIcon = (icon:string) => {\n switch(icon) {\n case \"circle-solid\":\n return '<svg fill=\"#fff\" class=\"circle-icon\" width=\"13\"xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z\"/></svg>';\n break;\n case \"calendar-days-solid\":\n return '<svg fill=\"#fff\" class=\"calendar-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d=\"M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM64 304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304zM192 304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304zM336 256C327.2 256 320 263.2 320 272V304C320 312.8 327.2 320 336 320H368C376.8 320 384 312.8 384 304V272C384 263.2 376.8 256 368 256H336zM64 432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V400C128 391.2 120.8 384 112 384H80C71.16 384 64 391.2 64 400V432zM208 384C199.2 384 192 391.2 192 400V432C192 440.8 199.2 448 208 448H240C248.8 448 256 440.8 256 432V400C256 391.2 248.8 384 240 384H208zM320 432C320 440.8 327.2 448 336 448H368C376.8 448 384 440.8 384 432V400C384 391.2 376.8 384 368 384H336C327.2 384 320 391.2 320 400V432z\"/></svg>';\n break;\n default:\n return \"\";\n } \n}\n\nconst MarkerIconFactory = (shape:string, color1:string, color2:string, icon:string) =>\n{\n return L.divIcon({\n html: `${createSvg(shape, color1, color2)}${addIcon(icon)}`,\n iconAnchor: [17,40],\n popupAnchor: [0,-40],\n iconSize: new L.Point(40, 46),\n className: \"leaflet-data-marker\",\n shadowAnchor: [0, 0]\n });\n}\n\nexport default MarkerIconFactory ;\n","import * as React from \"react\"\nimport { useRemoveItem } from \"../../hooks/useItems\";\nimport { useMap } from \"react-leaflet\";\nimport { ItemFormPopupProps } from \"../ItemFormPopup\";\nimport { LatLng } from \"leaflet\";\nimport { Item } from \"../../../../types\";\nimport { toast } from \"react-toastify\";\nimport { useHasUserPermission } from \"../../hooks/usePermissions\";\n\n\n\nexport function HeaderView({ item, setItemFormPopup }: {\n item: Item,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}) {\n\n const [loading, setLoading] = React.useState<boolean>(false);\n const removeItem = useRemoveItem();\n\n const map = useMap();\n const hasUserPermission = useHasUserPermission();\n\n\n const removeItemFromMap = async (event: React.MouseEvent<HTMLElement>) => {\n setLoading(true);\n let success = false;\n try {\n await item.layer?.api?.deleteItem!(item.id)\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n removeItem(item);\n toast.success(\"Item deleted\");\n } \n setLoading(false);\n map.closePopup();\n\n event.stopPropagation();\n }\n\n const openEditPopup = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n map.closePopup();\n if (setItemFormPopup)\n setItemFormPopup({ position: new LatLng(item.position.coordinates[1], item.position.coordinates[0]), layer: item.layer!, item: item, setItemFormPopup: setItemFormPopup })\n }\n\n \n return (\n <div className='tw-grid tw-grid-cols-6 tw-pb-2'>\n <div className='tw-col-span-5'>\n <b className=\"tw-text-xl tw-font-bold\">{item.name}</b>\n </div>\n <div className='tw-col-span-1'>\n {item.layer?.api &&\n <div className=\"tw-dropdown tw-dropdown-bottom\">\n <label tabIndex={0} className=\"tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z\" />\n </svg>\n </label>\n <ul tabIndex={0} className=\"tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box\">\n {item.layer.api.updateItem && hasUserPermission(item.layer.api?.collectionName!,\"update\") && <li>\n <a className=\"!tw-text-base-content\" onClick={openEditPopup}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z\" />\n </svg>\n </a>\n </li>}\n\n {item.layer.api.deleteItem && hasUserPermission(item.layer.api?.collectionName!,\"delete\") && <li>\n <a className=' !tw-text-error' onClick={removeItemFromMap}>\n {loading ? <span className=\"tw-loading tw-loading-spinner tw-loading-sm\"></span>\n :\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" d=\"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>}\n </a>\n </li>}\n </ul>\n </div>}\n </div>\n </div>\n )\n}\n","export const urlRegex = /(^| )(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,10})?(\\/.*)?$/gm\nexport const mailRegex = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/gi;\n\n\nexport function fixUrls(message: string): string {\n \n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '');\n if (!hyperlink.match('^https?:\\/\\/')) {\n hyperlink = 'https://' + hyperlink;\n } \n return hyperlink\n });\n \n \n return message;\n }","import * as React from 'react'\nimport { Item } from '../../../../types'\nimport { useAddTag, useTags } from '../../hooks/useTags';\nimport reactStringReplace from 'react-string-replace';\nimport { useAddFilterTag } from '../../hooks/useFilter';\nimport { hashTagRegex } from '../../../../Utils/HashTagRegex';\nimport { fixUrls, mailRegex } from '../../../../Utils/ReplaceURLs';\nimport { useMap } from 'react-leaflet';\nimport { randomColor } from '../../../../Utils/RandomColor';\nimport { useEffect, useRef } from 'react';\n\nexport const TextView = ({ item }: { item?: Item }) => {\n const tags = useTags();\n const addTag = useAddTag();\n const addFilterTag = useAddFilterTag();\n\n let replacedText;\n\n\n\n\n if (item && item.text) replacedText = fixUrls(item.text);\n\n replacedText = reactStringReplace(replacedText, /(https?:\\/\\/\\S+)/g, (url, i) => {\n let shortUrl = url; \n if (url.match('^https:\\/\\/')) {\n shortUrl = url.split('https://')[1];\n }\n if (url.match('^http:\\/\\/')) {\n shortUrl = url.split('http://')[1];\n } \n return (\n <a key={i.toString+item!.id+url} href={url} target=\"_blank\" rel=\"noopener noreferrer\">{shortUrl}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, mailRegex, (url, i) => {\n return (\n <a key={i.toString+item!.id+url} href={`mailto:${url}`} target=\"_blank\" rel=\"noopener noreferrer\">{url}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, hashTagRegex, (match, i) => {\n\n const tag = tags.find(t => t.id.toLowerCase() == match.slice(1).toLowerCase())\n return (\n <a style={{ color: tag ? tag.color : '#aaa' , fontWeight: 'bold', cursor: 'pointer' }} key={tag ? tag.id+item!.id+i : i} onClick={() => {\n addFilterTag(tag!);\n // map.fitBounds(items)\n // map.closePopup();\n }}>{match}</a>\n )\n })\n\n return (\n <p style={{ whiteSpace: \"pre-wrap\" }} className=\"!tw-m-0 !tw-mb-2\">\n {replacedText}\n </p>\n )\n\n\n\n}\n","import * as React from 'react'\nimport { Popup as LeafletPopup} from 'react-leaflet'\nimport { Item } from '../../../types'\nimport { ItemFormPopupProps } from './ItemFormPopup'\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\nimport { TextView } from './ItemPopupComponents/TextView'\n\n\nexport interface ItemViewPopupProps {\n item: Item,\n children?: React.ReactNode;\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\nexport const ItemViewPopup = React.forwardRef((props: ItemViewPopupProps, ref: any) => {\n\n return (\n <LeafletPopup ref={ref} maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}>\n <div className='tw-bg-base-100 tw-text-base-content'>\n <HeaderView item={props.item} setItemFormPopup={props.setItemFormPopup} />\n <div className='tw-overflow-y-auto tw-max-h-72'>\n {props.children ?\n\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: props.item }) : \"\"\n )\n\n :\n\n <TextView item={props.item} />\n\n }\n </div>\n </div>\n </LeafletPopup>\n )\n})\n\n","import { LatLng, LatLngTuple, latLng } from \"leaflet\";\nimport { ItemFormPopupProps } from \"./Components/Map/Subcomponents/ItemFormPopup\";\n\nexport interface UtopiaMapProps {\n height?: string,\n width?: string,\n center?: LatLng,\n zoom?: number,\n tags?: Tag[],\n children?: React.ReactNode,\n}\n\nexport interface LayerProps {\n data?: Item[],\n children?: React.ReactNode,\n name: string,\n menuIcon: string,\n menuColor: string,\n menuText: string,\n markerIcon: string,\n markerShape: string,\n markerDefaultColor: string,\n api?: ItemsApi<any>,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,\n itemFormPopup?: ItemFormPopupProps | null,\n clusterRef?: React.MutableRefObject<any>\n}\n\nexport class Item {\n id: string ;\n name: string;\n text: string;\n position: Geometry;\n date_created?: string;\n date_updated?: string | null;\n start?: string;\n end?: string;\n api?: ItemsApi<any>;\n tags?: Tag[];\n layer?: LayerProps;\n [key: string]: any;\n constructor(id:string,name:string,text:string,position:Geometry, layer?: LayerProps, api?: ItemsApi<any>){\n this.id = id;\n this.name = name;\n this.text = text;\n this.position = position;\n this.layer = layer;\n this.api = api;\n }\n}\n\nexport class Geometry {\n type: string;\n coordinates: number[];\n constructor(lng: number, lat: number) {\n this.coordinates = [lng,lat];\n this.type = \"Point\";\n }\n}\n\nexport interface Tag {\n color: string;\n id: string;\n}\n\nexport interface ItemsApi<T> {\n getItems(): Promise<any>, \n createItem?(item : T): Promise<any>,\n updateItem?(item : T): Promise<any>,\n deleteItem?(id : number | string): Promise<any>,\n collectionName?: string\n}\n\nexport interface UserApi {\n register(email: string, password: string, userName: string): Promise<void>,\n\tlogin(email: string, password: string): Promise<any>,\n\tlogout(): Promise<void>,\n getUser(): Promise<UserItem>,\n getToken(): Promise<any>,\n\tupdateUser(user: UserItem): Promise<void>\n}\n\nexport type UserItem = {\n id?: string;\n avatar?: string;\n role?: string;\n first_name: string;\n description: string;\n email: string;\n password?: string;\n}\n\nexport type Permission = {\n id?: string;\n role: string;\n collection: string;\n action: PermissionAction\n}\n\n\nexport type PermissionAction = \"create\"|\"read\"|\"update\"|\"delete\";\n","import * as React from \"react\"\nimport { useEffect, useRef } from \"react\";\nimport Tribute from \"tributejs\";\nimport { useTags } from \"../Map/hooks/useTags\";\n\n\ntype TextAreaProps = {\n labelTitle?: string;\n labelStyle?: string;\n containerStyle?: string;\n dataField?: string;\n inputStyle?: string;\n defaultValue: string;\n placeholder?: string;\n updateFormValue?: (value: string) => void;\n}\n\ninterface KeyValue {\n [key: string]: string;\n}\n\n\nexport function TextAreaInput({ labelTitle, dataField, labelStyle, containerStyle, inputStyle, defaultValue, placeholder, updateFormValue }: TextAreaProps) {\n\n const ref = useRef<HTMLTextAreaElement>(null);\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const tags = useTags();\n\n let values: KeyValue[] = [];\n\n tags.map(tag => {\n values.push({ key: tag.id, value: tag.id, color: tag.color })\n })\n\n var tribute = new Tribute({\n containerClass: 'tw-z-500 tw-bg-white tw-p-2 tw-rounded-lg tw-shadow',\n selectClass: 'tw-font-bold',\n trigger: \"#\",\n values: values,\n noMatchTemplate: () => {\n return \"\"\n },\n menuItemTemplate: function (item) {\n return `<span style=\"color: ${item.original.color}; padding: 5px; boarder-radius: 3px;\">#${item.string}</span>`;\n }\n });\n\n\n useEffect(() => {\n if (!init.current) {\n if (ref.current) {\n tribute.attach(ref.current);\n }\n init.current = true;\n }\n }, [ref])\n\n return (\n <div className={`tw-form-control tw-w-full ${containerStyle ? containerStyle : \"\"}`}>\n {labelTitle ? <label className=\"tw-label\">\n <span className={\"tw-label-text tw-text-base-content \" + labelStyle}>{labelTitle}</span>\n </label> : \"\"}\n <textarea required ref={ref} defaultValue={defaultValue} name={dataField} className={`tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ${inputStyle ? inputStyle : \"\"}`} placeholder={placeholder || \"\"} onChange={(e) => updateFormValue && updateFormValue(e.target.value)}></textarea>\n </div>\n )\n}\n\n\n","export const randomColor = () => {\n return hsvToHex((Math.random() + golden_ratio_conjugate) % 1, 0.8, 0.7)\n}\n\nconst golden_ratio_conjugate = 0.618033988749895;\n\nfunction hsvToHex(h, s, v) {\n var r, g, b;\n var i = (Math.floor(h * 6));\n var f = h * 6 - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0: r = v, g = t, b = p; break;\n case 1: r = q, g = v, b = p; break;\n case 2: r = p, g = v, b = t; break;\n case 3: r = p, g = q, b = v; break;\n case 4: r = t, g = p, b = v; break;\n case 5: r = v, g = p, b = q; break;\n }\n\n return rgbToHex(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n\n\nconst rgbToHex = (r, g, b) => '#' + [r, g, b].map(x => {\n const hex = x.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n}).join('')","import * as React from 'react'\nimport { LatLng } from 'leaflet'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useAddItem, useUpdateItem } from '../hooks/useItems'\nimport { Geometry, LayerProps, Item, ItemsApi } from '../../../types'\nimport { TextAreaInput } from '../../Input/TextAreaInput'\nimport { TextInput } from '../../Input/TextInput'\nimport { toast } from 'react-toastify'\nimport { useResetFilterTags } from '../hooks/useFilter'\nimport { hashTagRegex } from '../../../Utils/HashTagRegex'\nimport { randomColor } from '../../../Utils/RandomColor'\nimport { useAddTag, useTags } from '../hooks/useTags'\n\nexport interface ItemFormPopupProps {\n position: LatLng,\n layer: LayerProps,\n item?: Item,\n children?: React.ReactNode,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n\n const [spinner, setSpinner] = useState(false);\n\n const formRef = useRef<HTMLFormElement>(null);\n\n const map = useMap();\n\n const addItem = useAddItem();\n const updateItem = useUpdateItem();\n\n const tags = useTags(); \n const addTag = useAddTag();\n\n const resetFilterTags = useResetFilterTags();\n\n\n const handleSubmit = async (evt: any) => {\n const formItem: Item = {} as Item;\n Array.from(evt.target).forEach((input: HTMLInputElement) => {\n if (input.name) {\n formItem[input.name] = input.value;\n }\n });\n formItem['position'] = new Geometry(props.position.lng, props.position.lat);\n evt.preventDefault();\n setSpinner(true);\n\n formItem.text.toLocaleLowerCase().match(hashTagRegex)?.map(tag=> {\n if (!tags.find((t) => t.id.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({id: tag.slice(1).toLocaleLowerCase(), color: randomColor()})\n }\n });\n\n\n\n\n if(props.item) {\n let success = false;\n try {\n await props.layer.api?.updateItem!({...formItem, id: props.item.id});\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n updateItem({...props.item, ...formItem});\n toast.success(\"Item updated\");\n } \n setSpinner(false);\n map.closePopup();\n }\n else {\n\n let success = false;\n try {\n await props.layer.api?.createItem!({...formItem, id: crypto.randomUUID()});\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n addItem({...formItem, id: crypto.randomUUID(), layer: props.layer});\n toast.success(\"New item created\");\n resetFilterTags();\n } \n setSpinner(false);\n map.closePopup();\n }\n props.setItemFormPopup(null);\n }\n\n\n const resetPopup = () => {\n if (formRef.current) {\n formRef.current.reset();\n }\n }\n\n useEffect(() => {\n resetPopup();\n }, [props.position])\n\n return (\n <LeafletPopup minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100);\n }\n }}\n position={props.position}>\n <form ref={formRef} onReset={resetPopup} onSubmit={e => handleSubmit(e)}>\n {props.item ? <div className='tw-h-3'></div>\n :\n <div className='tw-flex tw-justify-center'><b className=\"tw-text-xl tw-font-bold\">New {props.layer.name}</b></div>\n }\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={props.item ? props.item.name : \"\"} inputStyle='' />\n\n {props.children ?\n\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: props.item, key: props.position.toString() }) : \"\"\n )\n\n :\n <>\n <TextAreaInput key={props.position.toString()} placeholder=\"Text\" dataField=\"text\" defaultValue={props.item ? props.item.text : \"\"} inputStyle='tw-h-40 tw-mt-5' />\n </>\n }\n\n <div className='tw-flex tw-justify-center'>\n <button className={spinner ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{spinner ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n\n\n\n","import * as React from 'react'\nimport { Marker, Tooltip, useMap, useMapEvents } from 'react-leaflet'\nimport { Item, LayerProps } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\nimport { useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { ItemFormPopupProps, ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { useFilterTags, useIsLayerVisible, useSearchPhrase } from './hooks/useFilter'\nimport { useGetItemTags } from './hooks/useTags'\nimport { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'\nimport { Popup } from 'leaflet'\nimport { useLocation } from 'react-router-dom';\n\nexport const Layer = (props: LayerProps) => {\n\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n const filterTags = useFilterTags();\n\n const items = useItems();\n const setItemsApi = useSetItemsApi();\n const setItemsData = useSetItemsData();\n const getItemTags = useGetItemTags();\n const addMarker = useAddMarker();\n const addPopup = useAddPopup();\n const leafletRefs = useLeafletRefs();\n\n let location = useLocation();\n\n const searchPhrase = useSearchPhrase();\n\n const map = useMap();\n\n const isLayerVisible = useIsLayerVisible();\n\n\n useEffect(() => {\n\n props.data && setItemsData(props);\n props.api && setItemsApi(props);\n }, [props.data, props.api])\n\n useMapEvents({\n popupopen: (e) => {\n const item = Object.entries(leafletRefs).find(r => r[1].popup == e.popup)?.[1].item;\n if (item?.layer?.name == props.name && window.location.pathname.split(\"/\")[2] != item.id) {\n window.history.pushState({}, \"\", `/${props.name}/${item.id}`)\n document.title = document.title.split(\"-\")[0] + \" - \" + item.name;\n }\n },\n })\n\n const openPopup = () => {\n if (window.location.pathname.split(\"/\").length <= 2 || window.location.pathname.split(\"/\")[2]===\"\") {\n map.closePopup();\n }\n else {\n if (window.location.pathname.split(\"/\")[1] == props.name) {\n\n if (window.location.pathname.split(\"/\")[2]) {\n const id = window.location.pathname.split(\"/\")[2]\n const marker = leafletRefs[id]?.marker;\n if (marker && marker != null) {\n marker !== null && props.clusterRef?.current?.zoomToShowLayer(marker, () => {\n marker.openPopup();\n });\n const item = leafletRefs[id]?.item;\n document.title = document.title.split(\"-\")[0] + \" - \" + item.name;\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute(\"content\", item.name);\n document.querySelector('meta[property=\"og:description\"]')?.setAttribute(\"content\", item.text);\n }\n }\n }\n }\n\n }\n\n useEffect(() => {\n openPopup();\n }, [leafletRefs, location])\n\n\n return (\n <>\n {items &&\n items.\n filter(item => item.layer?.name === props.name)?.\n filter(item =>\n filterTags.length == 0 ? item : filterTags.every(tag => getItemTags(item).some(filterTag => filterTag.id === tag.id)))?.\n filter(item => {\n return searchPhrase === ''\n ? item :\n item.name.toLowerCase().includes(searchPhrase.toLowerCase()) || item.text.toLowerCase().includes(searchPhrase.toLowerCase())\n }).\n filter(item => item.layer && isLayerVisible(item.layer)).\n map((item: Item) => {\n const tags = getItemTags(item);\n\n let color1 = \"#666\";\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (tags && tags[0]) {\n color1 = tags[0].color;\n }\n if (tags && tags[1]) {\n color2 = tags[1].color;\n }\n return (\n <Marker ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addMarker(item, r);\n }} icon={MarkerIconFactory(props.markerShape, color1, color2, props.markerIcon)} key={item.id} position={[item.position.coordinates[1], item.position.coordinates[0]]}>\n {\n (props.children && React.Children.toArray(props.children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemView\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemView\" ?\n <ItemViewPopup ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addPopup(item, r as Popup);\n }} key={item.id + item.name} item={item} setItemFormPopup={props.setItemFormPopup} >{child}</ItemViewPopup>\n : \"\"\n )\n :\n <>\n <ItemViewPopup key={item.id + item.name} ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addPopup(item, r as Popup);\n }} item={item} setItemFormPopup={props.setItemFormPopup} />\n </>)\n }\n <Tooltip offset={[0, -38]} direction='top'>{item.name}</Tooltip>\n </Marker>\n );\n })\n }\n {//{props.children}}\n }\n {props.itemFormPopup && props.itemFormPopup.layer!.name == props.name &&\n (props.children && React.Children.toArray(props.children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemForm\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemForm\" ?\n <ItemFormPopup key={props.setItemFormPopup?.name} position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} >{child}</ItemFormPopup>\n : \"\"\n )\n :\n <>\n <ItemFormPopup position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} />\n </>)\n }\n </>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { ItemsApi, Tag } from '../../types';\nimport { useAddTag, useSetTagData, useSetTagApi } from './hooks/useTags'\n\nexport function Tags({data, api} : {data?: Tag[], api?: ItemsApi<Tag>}) {\nconst setTagData = useSetTagData();\nconst setTagApi = useSetTagApi();\n\nuseEffect(() => {\n data && setTagData(data); \n api && setTagApi(api); \n}, [api, data])\n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { ItemsApi, Permission } from '../../types';\nimport { useSetPermissionData, useSetPermissionApi, useSetAdminRole } from './hooks/usePermissions'\nimport { useAuth } from '../Auth';\n\nexport function Permissions({data, api, adminRole} : {data?: Permission[], api?: ItemsApi<Permission>, adminRole?: string}) {\nconst setPermissionData = useSetPermissionData();\nconst setPermissionApi = useSetPermissionApi();\nconst setAdminRole = useSetAdminRole();\nconst {user} = useAuth();\n\nuseEffect(() => { \n adminRole && setAdminRole(adminRole);\n data && setPermissionData(data); \n api && setPermissionApi(api); \n}, [api, data, adminRole, user])\n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\n\nexport const ItemForm = ({ children, item }: { children?: React.ReactNode, item?: Item }) => {\n return (\n <div>{\n children ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\n ) : \"\"\n }</div>\n )\n}\n\nItemForm.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n};\n\nItemForm.defaultProps = {\n __TYPE: 'ItemForm',\n};\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\n\nexport const ItemView = ({ children, item }: { children?: React.ReactNode, item?: Item }) => {\n return (\n <div>\n {children ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\n ) : \"\"}\n </div>\n )\n}\n\nItemView.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n};\n\nItemView.defaultProps = {\n __TYPE: 'ItemView',\n};\n","\nimport { useState } from 'react'\nimport InformationCircleIcon from '@heroicons/react/24/outline/InformationCircleIcon'\nimport * as React from 'react';\n\ntype SelectBoxProps = {\n labelTitle?: string;\n labelStyle?: string;\n type?: string;\n containerStyle?: string;\n defaultValue: string;\n placeholder?: string;\n updateFormValue: (value: string ) => void;\n\n options: {name: string, value: string}[];\n labelDescription?: string\n}\n\nexport function SelectBox(props : SelectBoxProps){\n \n const {labelTitle, labelDescription, defaultValue, containerStyle, placeholder, labelStyle, options, updateFormValue} = props\n\n const [value, setValue] = useState(defaultValue || \"\")\n\n\n const updateValue = (newValue: string) =>{\n updateFormValue(newValue)\n setValue(newValue)\n }\n\n\n return (\n <div className={`tw-inline-block ${containerStyle}`}>\n {labelTitle? \n <label className={`tw-label ${labelStyle}`}>\n <div className=\"tw-label-text\">{labelTitle}\n {labelDescription && <div className=\"tw-tooltip tw-tooltip-right\" data-tip={labelDescription}><InformationCircleIcon className='tw-w-4 tw-h-4'/></div>}\n </div>\n </label>\n : \"\"}\n <select className=\"tw-select tw-select-bordered tw-w-full\" value={value} onChange={(e) => updateValue(e.target.value)}>\n <option disabled value=\"PLACEHOLDER\">{placeholder}</option>\n {\n options.map((o, k) => {\n return <option value={o.value || o.name} key={k}>{o.name}</option>\n })\n }\n </select>\n </div>\n )\n}","import * as React from 'react'\nimport { TextAreaInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupTextAreaInput = ({ dataField, placeholder, style, item }:\n {\n dataField: string,\n placeholder: string,\n style?: string,\n item?: Item\n }) => {\n\n return (\n <TextAreaInput defaultValue={item?.text ? item.text : \"\"} dataField={dataField} placeholder={placeholder} inputStyle={style}></TextAreaInput>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupStartEndInput = ({item}:{item?:Item}) => {\n return (\n <div className='tw-grid tw-grid-cols-2 tw-gap-2 tw-mb-5'>\n <TextInput type='date' placeholder='start' dataField='start' inputStyle='tw-text-sm tw-px-2' labelTitle='start' defaultValue={item && item.start? item.start.substring(0, 10) : \"\"} autocomplete='one-time-code'></TextInput>\n <TextInput type='date' placeholder='end' dataField='end' inputStyle='tw-text-sm tw-px-2' labelTitle='end' defaultValue={item && item.end ? item.end.substring(0, 10) : \"\"} autocomplete='one-time-code'></TextInput>\n </div>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../../../types'\n\nexport const StartEndView = ({item} : {item?:Item}) => {\n return (\n <div className=\"tw-flex tw-flex-row tw-mb-4\">\n <div className=\"tw-basis-2/5 tw-flex tw-flex-row\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-4 tw-w-4 tw-mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n <time className='tw-align-middle' dateTime={item && item.start? item.start.substring(0, 10) : \"\"}>{item && item.start? new Date(item.start).toLocaleDateString(): \"\"}</time>\n </div>\n <div className=\"tw-basis-1/5 tw-place-content-center\">\n <span>-</span>\n </div>\n <div className=\"tw-basis-2/5 tw-flex tw-flex-row\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-4 tw-w-4 tw-mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n <time className='tw-align-middle' dateTime={item && item.end? item.end.substring(0, 10) : \"\"}>{item && item.end ? new Date(item.end).toLocaleDateString() : \"\"}</time>\n </div>\n </div>\n )\n}\n\n","import * as React from \"react\";\nimport { MouseEvent, useEffect, useRef } from \"react\";\n\n\nconst isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {\n const r = element.getBoundingClientRect();\n\n return (\n e.clientX > r.left &&\n e.clientX < r.right &&\n e.clientY > r.top &&\n e.clientY < r.bottom\n );\n};\n\ntype Props = {\n title: string;\n isOpened: boolean;\n onClose: () => void;\n children: React.ReactNode;\n};\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\n}: Props) => {\n \n const ref = useRef<HTMLDialogElement>(null);\n\n useEffect(() => {\n if (isOpened) {\n ref.current?.showModal();\n ref.current?.classList.remove(\"tw-hidden\"); \n document.body.classList.add(\"modal-open\"); // prevent bg scroll\n } else {\n ref.current?.close();\n ref.current?.classList.add(\"tw-hidden\"); \n document.body.classList.remove(\"modal-open\");\n }\n }, [isOpened]);\n\n\n return (\n <dialog className='tw-card tw-shadow-xl tw-absolute tw-right-0 tw-top-0 tw-bottom-0 tw-left-0 tw-m-auto tw-transition-opacity tw-duration-300 tw-p-4'\n \n ref={ref}\n onCancel={onClose}\n onClick={(e) =>\n ref.current && !isClickInsideRectangle(e, ref.current) && onClose()\n }\n >\n <div className=\"tw-card-body tw-p-2\">\n\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>{title}</h2>\n\n {children}\n <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\" onClick={onClose}>✕</button>\n\n </div>\n </dialog>\n );\n};\n\nexport default DialogModal;\n","import { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAuth } from \"../Auth\"\nimport { Link } from \"react-router-dom\";\nimport { toast } from \"react-toastify\";\nimport QuestionMarkIcon from '@heroicons/react/24/outline/QuestionMarkCircleIcon'\nimport * as React from \"react\";\nimport DialogModal from \"./DialogModal\";\n\n\nexport default function NavBar({ appName}: { appName: string }) {\n\n\n const [signupOpen, setSignupOpen] = useState(false);\n const [loginOpen, setLoginOpen] = useState(false);\n\n\n const [email, setEmail] = useState<string>(\"\");\n const [userName, setUserName] = useState<string>(\"\");\n const [password, setPassword] = useState<string>(\"\");\n\n\n const { isAuthenticated, user, login, register, loading, logout, token } = useAuth();\n\n const navigate = useNavigate();\n\n const onRegister = async () => {\n await toast.promise(\n register({ email: email, password: password }, userName),\n {\n success: {\n render({ data }) {\n navigate(`/`);\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: \"✌️\",\n },\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n pending: 'creating new user ...'\n });\n setSignupOpen(false);\n }\n\n const onLogin = async () => {\n await toast.promise(\n login({ email: email, password: password }),\n {\n success: {\n render({ data }) {\n navigate(`/`);\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: \"✌️\",\n },\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n pending: 'logging in ...'\n });\n setLoginOpen(false);\n }\n\n const onLogout = () => {\n toast.promise(\n logout(),\n {\n success: {\n render() {\n return `Bye bye`\n },\n // other options\n icon: \"👋\",\n },\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n pending: 'logging out ..'\n });\n }\n\n return (\n <>\n <div className=\"tw-navbar tw-bg-base-100 tw-z-1000\">\n <button className=\"tw-btn tw-btn-square tw-btn-ghost\"\n data-te-sidenav-toggle-ref\n data-te-target=\"#sidenav\"\n aria-controls=\"#sidenav\"\n aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" className=\"tw-inline-block tw-w-5 tw-h-5 tw-stroke-current\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"></path></svg>\n </button>\n <div className=\"tw-flex-1 tw-mr-2\">\n <div className=\"tw-flex-1 tw-truncate tw-grid tw-grid-flow-col tw-max-w-52\">\n <Link className=\"tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate\" to={\"/\"}><p className=\"tw-truncate\">{appName}</p></Link>\n <button className=\"tw-btn tw-px-2 tw-btn-ghost\" onClick={() => window.my_modal_3.showModal()}><QuestionMarkIcon className=\"tw-h-5 tw-w-5\" /></button>\n\n </div>\n </div>\n\n\n\n {isAuthenticated ?\n <div className=\"tw-flex-none\">\n {user?.avatar ? <div className=\"tw-avatar\">\n <div className=\"tw-w-10 tw-rounded-full\">\n <img src={\"https://api.utopia-lab.org/assets/\" + user?.avatar + \"?access_token=\" + token} />\n </div>\n </div> : <></>}\n <div className='tw-ml-2 tw-mr-2'>{user?.first_name}</div>\n <div className=\"tw-dropdown tw-dropdown-end\">\n <label tabIndex={0} className=\"tw-btn tw-btn-ghost tw-btn-square\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z\" />\n </svg>\n </label>\n <ul tabIndex={0} className=\"tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]\">\n <li><Link to={\"/settings\"}>Settings</Link></li>\n <li><a onClick={() => { onLogout() }}>Logout</a></li>\n </ul>\n </div>\n </div>\n :\n <div>\n\n <div className=\"tw-hidden md:tw-flex\">\n <div onClick={() => setLoginOpen(true)} className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Login\n </div>\n\n <div onClick={() => setSignupOpen(true)} className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Sign Up\n </div>\n </div>\n <div className=\"tw-dropdown tw-dropdown-end\">\n <label tabIndex={1} className=\"tw-btn tw-btn-ghost md:tw-hidden\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z\" />\n </svg>\n\n\n </label>\n <ul tabIndex={1} className=\"tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]\">\n <li><a onClick={() => {setLoginOpen(true)}}>Login</a></li>\n <li><a onClick={() => setSignupOpen(true)}>Sign Up</a></li>\n </ul>\n </div>\n\n </div>\n }\n </div>\n <DialogModal\n title=\"Login\"\n isOpened={loginOpen}\n onClose={() => setLoginOpen(false)}>\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onLogin()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Login'}</button>\n </div>\n </DialogModal>\n <DialogModal\n title=\"Sign Up\"\n isOpened={signupOpen}\n onClose={() => setSignupOpen(false)}>\n <input type=\"text\" placeholder=\"Name\" value={userName} onChange={e => setUserName(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onRegister()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Sign Up'}</button>\n </div>\n </DialogModal>\n </>\n )\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { BrowserRouter } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\n\nexport function AppShell({ appName, children }) {\n return (\n <BrowserRouter>\n <ToastContainer position=\"top-right\"\n autoClose={2000}\n hideProgressBar\n newestOnTop={false}\n closeOnClick\n rtl={false}\n pauseOnFocusLoss\n draggable\n pauseOnHover\n theme=\"light\" />\n <NavBar appName={appName}></NavBar>\n <div id=\"app-content\" className=\"tw-flex tw-!pl-[77px]\">\n {children}\n </div>\n </BrowserRouter>\n )\n}\n","import ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon'\nimport * as React from 'react'\nimport {useEffect, useState} from 'react'\nimport { Link, useLocation } from 'react-router-dom'\n\n\nfunction SidebarSubmenu({submenu, name, icon} : { path: string;\n icon: JSX.Element;\n name: string;\n submenu?: any | undefined}){\n const location = useLocation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n\n /** Open Submenu list if path found in routes, this is for directly loading submenu routes first time */\n useEffect(() => {\n if(submenu.filter(m => {return m.path === location.pathname})[0])setIsExpanded(true)\n }, [])\n\n return (\n <div className='flex-col'>\n\n {/** Route header */}\n <div className='w-full' onClick={() => setIsExpanded(!isExpanded)}>\n {icon} <span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\" data-te-sidenav-slim=\"false\">{name} </span>\n <ChevronDownIcon className={'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' + (isExpanded ? 'rotate-180' : '')}/>\n </div>\n\n {/** Submenu list */}\n <div className={` w-full data-[te-collapse-show]:!hidden `+ (isExpanded ? \"\" : \"hidden\")} >\n <ul className={`menu menu-compact`} >\n {\n submenu.map((m, k) => {\n return(\n <li key={k} >\n <Link to={m.path} className='' >\n {m.icon}<span className=\"\" data-te-sidenav-slim=\"false\">{m.name}</span>\n {\n location.pathname == m.path ? (<span className=\"absolute mt-1 mb-1 inset-y-0 left-0 w-1 rounded-tr-md rounded-br-md bg-primary \"\n aria-hidden=\"true\"></span>) : null\n }\n </Link>\n </li>\n )\n })\n }\n </ul>\n </div>\n </div>\n )\n}\n\nexport default SidebarSubmenu","import { useRef, useState } from 'react'\nimport { useEffect } from 'react'\nimport { NavLink, useLocation } from 'react-router-dom';\nimport {\n Sidenav,\n initTE,\n} from \"tw-elements\";\nimport SidebarSubmenu from './SidebarSubmenu';\nimport ChevronRightIcon from '@heroicons/react/24/outline/ChevronRightIcon';\nimport * as React from 'react';\n\ntype route = {\n path: string;\n icon: JSX.Element;\n name: string;\n submenu?: route;\n blank?: boolean\n}\n\n\nexport function SideBar({ routes, bottomRoutes }: { routes: route[], bottomRoutes?: route[] }) {\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const location = useLocation();\n\n const [instance, setInstance] = useState<any>(null);\n const [slim, setSlim] = useState<boolean>(false);\n\n\n\n const toggleSlim = () => {\n setSlim(!slim);\n instance.toggleSlim();\n }\n\n\n\n useEffect(() => {\n if (!init.current) {\n initTE({ Sidenav });\n const instance = Sidenav.getInstance(\n document.getElementById(\"sidenav\")\n );\n setInstance(instance);\n instance.toggleSlim();\n init.current = true;\n }\n }, [])\n\n return (\n <nav\n id=\"sidenav\"\n className=\"group tw-fixed tw-left-0 tw-mt-16 tw-top-0 tw-z-[1035] tw-h-full tw--translate-x-full tw-overflow-hidden tw-shadow-[0_4px_12px_0_rgba(0,0,0,0.07),_0_2px_4px_rgba(0,0,0,0.05)] data-[te-sidenav-slim='true']:tw-hidden data-[te-sidenav-slim-collapsed='true']:tw-w-[56px] data-[te-sidenav-slim='true']:tw-w-[56px] data-[te-sidenav-hidden='false']:tw-translate-x-0 dark:tw-bg-zinc-800 [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='false']]:tw-hidden [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='true']]:[display:unset]\"\n data-te-sidenav-init\n data-te-sidenav-hidden=\"true\"\n data-te-sidenav-mode=\"side\"\n data-te-sidenav-slim=\"true\"\n data-te-sidenav-content=\"#app-content\"\n data-te-sidenav-slim-collapsed=\"true\"\n data-te-sidenav-slim-width=\"56\"\n data-te-sidenav-width=\"160\">\n <div className='tw-flex tw-flex-col tw-h-full' style={{ height: \"calc(100vh - 64px)\" }}>\n <ul className=\"tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0\" data-te-sidenav-menu-ref>\n {\n routes.map((route, k) => {\n return (\n <li className=\"\" key={k}>\n {\n route.submenu ?\n <SidebarSubmenu {...route} /> :\n (<NavLink\n end\n to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle();\n }}>\n {route.icon}<span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\" data-te-sidenav-slim=\"false\">{route.name}</span>\n {\n location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (<span className=\"tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary \"\n aria-hidden=\"true\"></span>) : null\n }\n </NavLink>)\n }\n\n </li>\n )\n })\n }\n </ul>\n\n <div id=\"slim-toggler\" className='tw-w-full tw-flex-1 tw-grid tw-place-items-end' aria-haspopup=\"true\" >\n <div className='tw-w-full'>\n\n <ul className=\"tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0\" data-te-sidenav-menu-ref>\n {\n bottomRoutes?.map((route, k) => {\n return (\n <li className=\"\" key={k}>\n {\n route.submenu ?\n <SidebarSubmenu {...route} /> :\n (<NavLink\n end\n target={route.blank ? \"_blank\" : \"_self\"}\n to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle();\n }}>\n {route.icon}<span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\" data-te-sidenav-slim=\"false\">{route.name}</span>\n {\n location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (<span className=\"tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary \"\n aria-hidden=\"true\"></span>) : null\n }\n </NavLink>)\n }\n\n </li>\n )\n })\n }\n </ul>\n\n <ChevronRightIcon className={\"tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all \" + (!slim ? \"tw-rotate-180\" : '')} onClick={() => toggleSlim()} />\n\n </div>\n </div>\n </div>\n </nav>\n )\n}\n","import * as React from 'react'\n\ntype ContentProps = {\n children?: React.ReactNode;\n}\n\nexport function Content({children} : ContentProps) {\n return (\n <div className='tw-flex tw-flex-col tw-w-full tw-relative'>\n {children}\n </div>\n\n )\n}\n","import * as React from \"react\"\n\n function Subtitle({styleClass, children}:{styleClass:string, children: React.ReactNode}){\n return(\n <div className={`tw-text-xl tw-font-semibold ${styleClass}`}>{children}</div>\n )\n}\n\nexport default Subtitle","import Subtitle from \"../Typography/Subtitle\"\nimport * as React from \"react\"\n\ninterface TitleCardProps {\n\n title: string,\n children : React.ReactNode,\n topMargin: string,\n className?: string,\n TopSideButtons?: any\n}\n \n export function TitleCard({title, children, topMargin, TopSideButtons, className} : TitleCardProps){\n return(\n <div className={\"tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit \" + className + \" \" + (topMargin || \"tw-mt-6\")}>\n\n {/* Title for Card */}\n <Subtitle styleClass={TopSideButtons ? \"tw-inline-block\" : \"\"}>\n {title}\n\n {/* Top side button, show only if present */}\n {\n TopSideButtons && <div className=\"tw-inline-block tw-float-right\">{TopSideButtons}</div>\n }\n </Subtitle>\n \n <div className=\"tw-divider tw-mt-2\"></div>\n \n {/** Card Body */}\n <div className='tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100'>\n {children}\n </div>\n </div>\n \n )\n }\n","import { useEffect, useState } from 'react'\nimport {TitleCard} from '../Templates/TitleCard'\nimport {TextInput} from '../Input/TextInput'\nimport {TextAreaInput} from '../Input/TextAreaInput'\nimport { toast } from 'react-toastify';\nimport {useNavigate} from 'react-router-dom'\nimport { useAuth } from '../Auth';\nimport * as React from 'react'\n\nimport 'react-toastify/dist/ReactToastify.css';\nimport { UserItem } from '../../types';\n\nexport function Settings() {\n\n const { user, updateUser, loading } = useAuth();\n\n const [id, setId] = useState<string>(\"\");\n const [name, setName] = useState<string>(\"\");\n const [text, setText] = useState<string>(\"\");\n const [email, setEmail] = useState<string>(\"\");\n const [password, setPassword] = useState<string>(\"\");\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false);\n\n\n\n\n useEffect(() => {\n setId(user?.id ? user.id : \"\");\n setName(user?.first_name ? user.first_name : \"\");\n setText(user?.description ? user.description : \"\");\n setEmail(user?.email ? user.email : \"\");\n setPassword(user?.password ? user.password : \"\");\n }, [user])\n\n const navigate = useNavigate();\n\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem;\n \n if(passwordChanged) {\n changedUser = { id: id, first_name: name, description: text, email: email, password: password };\n }\n else {\n changedUser = { id: id, first_name: name, description: text, email: email };\n }\n toast.promise(\n\n updateUser(changedUser),\n {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: 'Error'\n })\n .then(() => navigate(\"/\"));\n }\n\n\n return (\n <main className=\"tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-8 tw-px-6 tw-bg-base-200 tw-min-w-80 tw-flex tw-justify-center\" >\n <div className='tw-w-full xl:tw-max-w-6xl'>\n <TitleCard title=\"Profile Settings\" topMargin=\"tw-mt-2\">\n\n\n <div className=\"tw-grid tw-grid-cols-1 tw-md:grid-cols-2 tw-gap-6\">\n <TextInput placeholder=\"Name\" defaultValue={user?.first_name ? user.first_name : \"\"} updateFormValue={(v) => setName(v)} />\n </div>\n <div className=\"tw-grid tw-grid-cols-1 tw-md:grid-cols-1 tw-gap-6 tw-pt-6 tw-pb-6\">\n <TextAreaInput placeholder=\"About me, Contact, #Tags, ...\" defaultValue={user?.description ? user.description : \"\"} updateFormValue={(v) => setText(v)} inputStyle='tw-h-64'/>\n </div>\n <div className=\"tw-divider\" ></div>\n\n\n <div className=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6\">\n <TextInput type='email' placeholder=\"E-Mail\" defaultValue={user?.email ? user.email : \"\"} updateFormValue={(v) => setEmail(v)} />\n <TextInput type='password' placeholder=\"new Password\" defaultValue={user?.password ? user.password : \"\"} updateFormValue={(v) => {\n setPassword(v);\n setPasswordChanged(true);\n }} />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className=\"tw-mt-8\"><button className={loading ? \" tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right\" : \"tw-btn tw-btn-primary tw-float-right\"} onClick={() => onUpdateUser()}>Update</button></div>\n\n </TitleCard>\n </div>\n </main>\n )\n}\n","import { useState } from \"react\"\nimport * as React from \"react\"\n\ntype ChapterProps = {\n clickAction?: () => void\n}\n\n\nexport function Welcome1({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">Welcome, glad you are here!</h3>\n <p className=\"tw-py-4\">\n Let's play a game together where we explore ourselves and our dreams and come together to make them come true.\n <br /><br />\n <b>Would you like to join us?</b></p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Yes</label>\n\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => close()}>No</label>\n\n\n </div>\n </>\n )\n}\n\nexport function Welcome2({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\"> Imagine ...</h3>\n <p className=\"tw-py-4\">\n you wake up sometime in the early twenties of the 21st century on planet Earth from a hypnosis that has somehow kept you and all other people under some kind of external control all your life.\n </p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>next</label>\n </div>\n </>\n )\n}\n\nexport function Welcome3({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">Many people ... </h3>\n <p className=\"tw-py-4\">\n are still trapped in old and dysfunctional structures. But magically, a new consciousness is suddenly rising. More and more people are awakening from hypnosis. </p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>next</label>\n </div>\n </>\n )\n}\n\nexport function Welcome4({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\"> Gemeinsam erschaffen wir Strukturen </h3>\n <ul className='tw-flex-row tw-pl-4 tw-mt-4'>\n <li>🥕 Essen & Trinken</li>\n <li>🏡 Wohn- & Lebensraum</li>\n <li>💬 Kommunikation</li>\n <li>💡 Energie</li>\n <li>🚐 Mobilität</li>\n </ul>\n <div className=\"tw-modal-action\">\n <button className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Ich mach mit</button>\n </div>\n </>\n )\n}\n\nconst close = () => {\n window.my_modal_3.close();\n}\n\n\nexport function Modal() {\n\n const [chapter, setChapter] = useState<number>(1);\n\n\n\n const ActiveChapter = () => {\n switch (chapter) {\n case 1:\n return <Welcome1 clickAction={() => { setChapter(2) }} />\n case 2:\n return <Welcome2 clickAction={() => { setChapter(3) }} />\n case 3:\n return <Welcome3 clickAction={() => {\n setChapter(1);\n close();\n }} />\n default: return <></>\n };\n };\n\n return (\n <>\n\n {/* You can open the modal using ID.showModal() method */}\n <dialog id=\"my_modal_3\" className=\"tw-modal\">\n <form method=\"dialog\" className=\"tw-modal-box\">\n <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\">✕</button>\n <ActiveChapter />\n </form>\n <form method=\"dialog\" className=\"tw-modal-backdrop\">\n <button>close</button>\n </form>\n </dialog>\n </>\n )\n}\n\n","import * as React from 'react'\nimport { useAuth } from '../Auth';\n\nexport function Quests() {\n\n const [open, setOpen] = React.useState(true);\n\n const { isAuthenticated, user } = useAuth();\n\n if (open) return (\n <>\n <div className=\"tw-card tw-w-48 tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-[2000]\">\n <div className=\"tw-card-body tw-p-4 tw-pt-0\">\n <div className=\"tw-card-actions tw-justify-end\">\n <label className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\" onClick={()=>setOpen(false)}>✕</label>\n </div>\n <h2 className=\"tw-card-title tw-m-auto \">Level 1</h2>\n <ul className='tw-flex-row'>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isAuthenticated? isAuthenticated : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Sign Up</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={user?.avatar? true : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Upload Avatar</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={user?.description? true : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Fill Profile</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" /><span className='tw-text-sm tw-label-text tw-mx-2'>Join Group</span></label></li>\n </ul>\n </div>\n </div>\n </>\n )\n\n else return (\n <></>\n )\n}\n","import { Link } from \"react-router-dom\"\nimport * as React from \"react\"\nimport {TitleCard} from \"./TitleCard\"\n\n\nexport function CardPage({title,children, parent} : { \n title: string,\n children?: React.ReactNode,\n parent?: {name: string, url: string}\n}) {\n\n\n return (\n <main className=\"tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-2 tw-px-6 tw-bg-base-200 tw-min-w-80 tw-flex tw-justify-center\" >\n <div className='tw-w-full xl:tw-max-w-6xl '>\n <div className=\"tw-text-sm tw-breadcrumbs\">\n <ul>\n <li><Link to={'/'} >Home</Link></li>\n {parent && <li><Link to={parent?.url ? parent?.url : \"\"}>{parent?.name}</Link></li>}\n <li>{title}</li>\n </ul>\n </div>\n <TitleCard title={title} topMargin=\"mt-2\">\n {children}\n </TitleCard>\n </div>\n </main>\n )\n}\n"],"names":["LeafletPopup"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Utils/DynamicHeroIcon.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Auth/useAuth.tsx","../src/Components/Typography/ErrorText.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.tsx","../src/Components/Map/hooks/usePermissions.tsx","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/Subcomponents/FilterControl.tsx","../src/Components/Map/hooks/useLeafletRefs.tsx","../src/Components/Map/Subcomponents/LayerControl.tsx","../src/Components/Gaming/hooks/useQuests.tsx","../src/Components/Map/Subcomponents/QuestControl.tsx","../src/Components/Map/Subcomponents/Control.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/MarkerIconFactory.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/types.ts","../src/Components/Input/TextAreaInput.tsx","../src/Utils/RandomColor.ts","../src/Components/Map/Subcomponents/ItemFormPopup.tsx","../src/Components/Map/Layer.tsx","../src/Components/Map/Tags.tsx","../src/Components/Map/Permissions.tsx","../src/Components/Map/ItemForm.tsx","../src/Components/Map/ItemView.tsx","../src/Components/Input/SelectBox.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx","../src/Components/Templates/DialogModal.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/hooks/useAssets.tsx","../src/Components/AppShell/SetAssetsApi.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/Typography/Subtitle.tsx","../src/Components/Templates/TitleCard.tsx","../src/Components/Profile/Settings.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.tsx","../src/Components/Templates/CardPage.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","// DynamicHeroIcon.tsx\n// Simple Dynamic HeroIcons Component for React (typescript / tsx)\n// by: Mike Summerfeldt (IT-MikeS - https://github.com/IT-MikeS)\n\nimport { FC } from 'react'\nimport * as HIcons from '@heroicons/react/20/solid'\nimport * as React from 'react'\n\nconst DynamicHeroIcon: FC<{icon: string, type?: \"solid\" | \"outline\", className?: string}> = (props) => {\n const {...icons} = HIcons\n \n const TheIcon: JSX.Element = icons[props.icon]\n\n if(!TheIcon) {\n console.log(`Icon ${props.icon} doesn't exist`);\n } \n\n return (\n <>\n {/* @ts-ignore */}\n <TheIcon className={props.className? props.className : \"tw-h-6 tw-w-6 tw-text-white\" }aria-hidden=\"true\" /> \n </>\n )\n}\n\nexport default DynamicHeroIcon","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { LayerProps } from \"../../../types\";\n\ntype ActionType =\n | { type: \"ADD LAYER\"; layer: LayerProps }\n\ntype UseItemManagerResult = ReturnType<typeof useLayerManager>;\n\nconst LayerContext = createContext<UseItemManagerResult>({\n layers: [],\n addLayer: () => { },\n});\n\nfunction useLayerManager(initialLayers: LayerProps[]): {\n layers: LayerProps[];\n addLayer: (layer: LayerProps) => void;\n} {\n const [layers, dispatch] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case \"ADD LAYER\":\n const exist = state.find((layer) =>\n layer.name === action.layer.name ? true : false\n );\n if (!exist) return [\n ...state,\n action.layer,\n ];\n else return state;\n default:\n throw new Error();\n }\n }, initialLayers);\n\n const addLayer = useCallback((layer: LayerProps) => {\n dispatch({\n type: \"ADD LAYER\",\n layer\n });\n }, []);\n\n return { layers, addLayer };\n}\n\nexport const LayersProvider: React.FunctionComponent<{\n initialLayers: LayerProps[], children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>\n {children}\n </LayerContext.Provider>\n);\n\nexport const useLayers = (): LayerProps[] => {\n const { layers } = useContext(LayerContext);\n return layers;\n};\n\nexport const useAddLayer = (): UseItemManagerResult[\"addLayer\"] => {\n const { addLayer } = useContext(LayerContext);\n return addLayer;\n};\n","import { createContext, useState, useContext, useEffect } from \"react\";\nimport * as React from \"react\";\nimport { UserApi, UserItem } from \"../../types\";\n\n\ntype AuthProviderProps = {\n userApi: UserApi,\n children?: React.ReactNode\n}\n\ntype AuthCredentials = {\n email: string;\n password: string;\n otp?: string | undefined;\n}\n\n\n\ntype AuthContextProps = {\n isAuthenticated: boolean,\n user: UserItem | null;\n login: (credentials: AuthCredentials) => Promise<UserItem | undefined>,\n register: (credentials: AuthCredentials, userName: string) => Promise<UserItem | undefined>,\n loading: Boolean,\n logout: () => Promise<any>,\n updateUser: (user: UserItem) => any,\n token: String | null\n}\n\nconst AuthContext = createContext<AuthContextProps>({\n isAuthenticated: false,\n user: null,\n login: () => Promise.reject(),\n register: () => Promise.reject(),\n loading: false,\n logout: () => Promise.reject(),\n updateUser: () => Promise.reject(),\n token: \"\"\n});\n\nexport const AuthProvider = ({ userApi, children }: AuthProviderProps) => {\n const [user, setUser] = useState<UserItem | null>(null);\n const [token, setToken] = useState<String | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n const isAuthenticated = !!user;\n\n useEffect(() => {\n setLoading(true);\n loadUser();\n setLoading(false)\n }, []);\n\n async function loadUser(): Promise<UserItem | undefined> {\n try {\n const token = await userApi.getToken(); \n setToken(token);\n if(token){\n const me = await userApi.getUser();\n setUser(me as UserItem);\n setLoading(false);\n return me as UserItem;\n }\n else return undefined;\n\n } catch (error) {\n setLoading(false)\n return undefined;\n }\n }\n \n\n const login = async (credentials: AuthCredentials): Promise<UserItem | undefined> => {\n setLoading(true);\n try {\n const res = await userApi.login(credentials.email, credentials.password);\n setToken(res.access_token);\n return (await loadUser());\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n const register = async (credentials: AuthCredentials, userName): Promise<UserItem | undefined> => {\n setLoading(true);\n try {\n const res = await userApi.register(credentials.email, credentials.password, userName)\n return (await login(credentials));\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n const logout = async () => {\n try {\n await userApi.logout();\n setUser(null);\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n const updateUser = async (user: UserItem) => {\n setLoading(true);\n const { id, ...userRest } = user;\n\n try {\n const res = await userApi.updateUser(userRest);\n setUser(res as any);\n setLoading(false);\n return res as any;\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n return (\n <AuthContext.Provider\n value={{ isAuthenticated, user, login, register, loading, logout, updateUser, token }}\n >\n {children}\n </AuthContext.Provider>\n );\n};\nexport const useAuth = () => useContext(AuthContext);","import * as React from \"react\"\n\nfunction ErrorText({styleClass, children}){\n return(\n <p className={`tw-text-center tw-text-error ${styleClass}`}>{children}</p>\n )\n}\n\nexport default ErrorText","import { useEffect, useState } from \"react\"\nimport * as React from \"react\"\n\ntype InputTextProps = {\n labelTitle?: string;\n labelStyle?: string;\n type?: string;\n dataField?: string;\n containerStyle?: string;\n inputStyle?: string;\n defaultValue?: string;\n placeholder?: string;\n autocomplete?: string\n updateFormValue?: (value: string ) => void;\n}\n\n\nexport function TextInput({labelTitle, labelStyle, type, dataField, containerStyle, inputStyle, defaultValue, placeholder, autocomplete, updateFormValue} : InputTextProps){\n\n return(\n <div className={`tw-form-control tw-w-full ${containerStyle}`}>\n {labelTitle ? <label className=\"tw-label\">\n <span className={\"tw-label-text tw-text-base-content \" + labelStyle}>{labelTitle}</span>\n </label> \n : \" \"} \n <input required type={type || \"text\"} name={dataField} defaultValue={defaultValue} placeholder={placeholder || \"\"} autoComplete={autocomplete} onChange={(e) => updateFormValue&& updateFormValue(e.target.value)}className={`tw-input tw-input-bordered tw-w-full ${inputStyle ? inputStyle : \"\"}`} />\n </div>\n )\n}\n\n\n","import {useState} from 'react'\nimport {Link} from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport {TextInput} from '../Input/TextInput'\nimport * as React from 'react'\n\nexport function LoginPage(){\n\n const INITIAL_LOGIN_OBJ = {\n password : \"\",\n emailId : \"\"\n }\n\n const [loading, setLoading] = useState(false)\n const [errorMessage, setErrorMessage] = useState(\"\")\n const [loginObj, setLoginObj] = useState(INITIAL_LOGIN_OBJ)\n\n const submitForm = (e) =>{\n e.preventDefault()\n setErrorMessage(\"\")\n\n if(loginObj.emailId.trim() === \"\")return setErrorMessage(\"Email Id is required! (use any value)\")\n if(loginObj.password.trim() === \"\")return setErrorMessage(\"Password is required! (use any value)\")\n else{\n setLoading(true)\n // Call API to check user credentials and save token in localstorage\n localStorage.setItem(\"token\", \"DumyTokenHere\")\n setLoading(false)\n window.location.href = '/app/welcome'\n }\n }\n\n const updateFormValue = (val: string) => {\n console.log(val)\n }\n\n return(\n <div className=\"tw-flex-1 tw-bg-base-200 tw-flex tw-items-center\">\n <div className=\"tw-card tw-mx-auto tw-w-full tw-max-w-md tw-shadow-xl\">\n <div className=\"tw-grid md:tw-grid-cols-1 tw-grid-cols-1 tw-bg-base-100 tw-rounded-xl\">\n <div className='tw-py-10 tw-px-10'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Login</h2>\n <form onSubmit={(e) => submitForm(e)}>\n\n <div className=\"tw-mb-4\">\n\n <TextInput type=\"email\" defaultValue={loginObj.emailId} containerStyle=\"tw-mt-4\" labelTitle=\"E-Mail\" updateFormValue={(v) => updateFormValue(v)}/>\n\n <TextInput defaultValue={loginObj.password} type=\"password\" containerStyle=\"tw-mt-4\" labelTitle=\"Password\" updateFormValue={(v) => updateFormValue(v)}/>\n\n </div>\n\n <div className='tw-text-right tw-text-primary'><Link to=\"/forgot-password\"><span className=\"tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Forgot Password?</span></Link>\n </div>\n\n <ErrorText styleClass=\"mt-8\">{errorMessage}</ErrorText>\n <button type=\"submit\" className={\"tw-btn tw-mt-2 tw-w-full tw-btn-primary\" + (loading ? \" tw-loading\" : \"\")}>Login</button>\n\n <div className='tw-text-center tw-mt-4'>Don't have an account yet? <Link to=\"/signup\"><span className=\" tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Sign Up</span></Link></div>\n </form>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import { useState } from 'react'\nimport { Link } from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport {TextInput} from '../Input/TextInput'\nimport * as React from 'react'\n\nexport function SignupPage() {\n\n const INITIAL_REGISTER_OBJ = {\n name : \"\",\n password : \"\",\n emailId : \"\"\n }\n\n const [loading, setLoading] = useState(false)\n const [errorMessage, setErrorMessage] = useState(\"\")\n const [registerObj, setRegisterObj] = useState(INITIAL_REGISTER_OBJ)\n\n const submitForm = (e) =>{\n e.preventDefault()\n setErrorMessage(\"\")\n\n if(registerObj.name.trim() === \"\")return setErrorMessage(\"Name is required! (use any value)\")\n if(registerObj.emailId.trim() === \"\")return setErrorMessage(\"Email Id is required! (use any value)\")\n if(registerObj.password.trim() === \"\")return setErrorMessage(\"Password is required! (use any value)\")\n else{\n setLoading(true)\n // Call API to check user credentials and save token in localstorage\n localStorage.setItem(\"token\", \"DumyTokenHere\")\n setLoading(false)\n window.location.href = '/app/welcome'\n }\n }\n\n const updateFormValue = (val: string) => {\n console.log(val)\n }\n\n return (\n <div className=\"tw-flex-1 tw-bg-base-200 tw-flex tw-items-center\">\n <div className=\"tw-card tw-mx-auto tw-w-full tw-max-w-md tw-shadow-xl\">\n <div className=\"tw-grid md:tw-grid-cols-1 tw-grid-cols-1 tw-bg-base-100 tw-rounded-xl\">\n <div className='tw-py-10 tw-px-10'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Sign Up</h2>\n <form onSubmit={(e) => submitForm(e)}>\n\n <div className=\"mb-4\">\n <TextInput defaultValue={registerObj.name} containerStyle=\"tw-mt-4\" labelTitle=\"Name\" updateFormValue={updateFormValue} />\n <TextInput defaultValue={registerObj.emailId} containerStyle=\"tw-mt-4\" labelTitle=\"E-Mail\" updateFormValue={updateFormValue} />\n <TextInput defaultValue={registerObj.password} type=\"password\" containerStyle=\"tw-mt-4\" labelTitle=\"Password\" updateFormValue={updateFormValue} />\n </div>\n\n <ErrorText styleClass=\"tw-mt-8\">{errorMessage}</ErrorText>\n <button type=\"submit\" className={\"tw-btn tw-mt-2 tw-w-full tw-btn-primary\" + (loading ? \" tw-loading\" : \"\")}>Register</button>\n\n <div className='tw-text-center tw-mt-4'>Already have an account? <Link to=\"/login\"><span className=\" tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Login</span></Link></div>\n </form>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { ItemsApi, LayerProps, Permission, PermissionAction } from \"../../../types\";\nimport { useAuth } from \"../../Auth\";\n\ntype ActionType =\n | { type: \"ADD\"; permission: Permission }\n | { type: \"REMOVE\"; id: string };\n\ntype UsePermissionManagerResult = ReturnType<typeof usePermissionsManager>;\n\nconst PermissionContext = createContext<UsePermissionManagerResult>({\n permissions: [],\n setPermissionApi: () => { },\n setPermissionData: () => { },\n setAdminRole: () => { },\n hasUserPermission: () => true\n});\n\nfunction usePermissionsManager(initialPermissions: Permission[]): {\n permissions: Permission[];\n setPermissionApi: (api: ItemsApi<any>) => void;\n setPermissionData: (data: Permission[]) => void;\n setAdminRole: (adminRole: string) => void;\n hasUserPermission: (collectionName: string, action: PermissionAction) => boolean;\n} {\n const [permissions, dispatch] = useReducer((state: Permission[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((permission) =>\n permission.id === action.permission.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.permission,\n ];\n else return state;\n\n case \"REMOVE\":\n return state.filter(({ id }) => id !== action.id);\n default:\n throw new Error();\n }\n }, initialPermissions);\n\n const [adminRole, setAdminRole] = React.useState<string | null>(null);\n const { user } = useAuth();\n\n\n const setPermissionApi = useCallback(async (api: ItemsApi<Permission>) => { \n const result = await api.getItems();\n if (result) {\n result.map(permission => {\n dispatch({ type: \"ADD\", permission })\n })\n }\n }, [])\n\n const setPermissionData = useCallback((data: Permission[]) => {\n data.map(permission => {\n dispatch({ type: \"ADD\", permission })\n })\n }, []);\n\n const hasUserPermission = useCallback((collectionName: string, action: PermissionAction) => { \n if (permissions.length == 0) return true;\n else if (user && user.role == adminRole) return true;\n else return permissions.some(p => p.action === action && p.collection === collectionName && p.role == user?.role)\n }, [permissions, user]);\n\n\n\n return { permissions, setPermissionApi, setPermissionData, setAdminRole, hasUserPermission };\n}\n\nexport const PermissionsProvider: React.FunctionComponent<{\n initialPermissions: Permission[], children?: React.ReactNode\n}> = ({ initialPermissions, children }) => (\n <PermissionContext.Provider value={usePermissionsManager(initialPermissions)}>\n {children}\n </PermissionContext.Provider>\n);\n\nexport const usePermissions = (): Permission[] => {\n const { permissions } = useContext(PermissionContext);\n return permissions;\n};\n\n\nexport const useSetPermissionApi = (): UsePermissionManagerResult[\"setPermissionApi\"] => {\n const { setPermissionApi } = useContext(PermissionContext);\n return setPermissionApi;\n}\n\nexport const useSetPermissionData = (): UsePermissionManagerResult[\"setPermissionData\"] => {\n const { setPermissionData } = useContext(PermissionContext);\n return setPermissionData;\n}\n\nexport const useHasUserPermission = (): UsePermissionManagerResult[\"hasUserPermission\"] => {\n const { hasUserPermission } = useContext(PermissionContext);\n return hasUserPermission;\n}\n\nexport const useSetAdminRole = (): UsePermissionManagerResult[\"setAdminRole\"] => {\n const { setAdminRole } = useContext(PermissionContext);\n return setAdminRole;\n}","import * as React from 'react'\nimport DynamicHeroIcon from '../../../Utils/DynamicHeroIcon'\nimport { useLayers } from '../hooks/useLayers'\nimport { useHasUserPermission } from '../hooks/usePermissions';\n\n\nexport default function AddButton({ setSelectNewItemPosition }: { setSelectNewItemPosition: React.Dispatch<React.SetStateAction<any>> }) {\n\n const layers = useLayers();\n const hasUserPermission = useHasUserPermission();\n\n\n return (\n <div className=\"tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-4 tw-bottom-4\" >\n <label tabIndex={0} className=\"tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" className=\"tw-w-5 tw-h-5\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 4.5v15m7.5-7.5h-15\" />\n </svg>\n </label>\n <ul tabIndex={0} className=\"tw-dropdown-content tw-pr-1 tw-list-none\">\n {layers.map((layer) => (\n layer.api?.createItem && hasUserPermission(layer.api.collectionName!,\"create\") && (\n <li key={layer.name} >\n <a>\n <div className=\"tw-tooltip tw-tooltip-left\" data-tip={layer.menuText}>\n <button tabIndex={0}\n className=\"tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none\"\n style={{ backgroundColor: layer.menuColor }}\n onClick={() => { setSelectNewItemPosition(layer) }}>\n <DynamicHeroIcon type='solid' icon={layer.menuIcon} />\n </button>\n </div>\n </a>\n </li>\n )\n\n ))}\n </ul>\n\n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext, useEffect } from \"react\";\nimport * as React from \"react\";\nimport { Item, ItemsApi, LayerProps, Tag } from \"../../../types\";\nimport { toast } from \"react-toastify\";\nimport { useAddLayer } from \"./useLayers\";\n\n\ntype ActionType =\n | { type: \"ADD\"; item: Item }\n | { type: \"UPDATE\"; item: Item }\n | { type: \"REMOVE\"; item: Item }\n | { type: \"RESET\"; layer: LayerProps }\n ;\n\n\ntype UseItemManagerResult = ReturnType<typeof useItemsManager>;\n\nconst ItemContext = createContext<UseItemManagerResult>({\n items: [],\n addItem: () => { },\n updateItem: () => { },\n removeItem: () => { },\n resetItems: () => { },\n setItemsApi: () => { },\n setItemsData: () => { },\n});\n\nfunction useItemsManager(initialItems: Item[]): {\n items: Item[];\n addItem: (item: Item) => void;\n updateItem: (item: Item) => void;\n removeItem: (item: Item) => void;\n resetItems: (layer: LayerProps) => void;\n setItemsApi: (layer: LayerProps) => void;\n setItemsData: (layer: LayerProps) => void;\n} {\n\n const addLayer = useAddLayer();\n\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((item) =>\n item.id === action.item.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.item,\n ];\n else return state;\n case \"UPDATE\":\n return state.map((item) => {\n if (item.id === action.item.id) {\n return action.item\n }\n return item\n });\n case \"REMOVE\":\n return state.filter(item => item !== action.item);\n case \"RESET\":\n return state.filter(item => item.layer?.name !== action.layer.name);\n default:\n throw new Error();\n }\n }, initialItems);\n\n\n const setItemsApi = useCallback(async (layer: LayerProps) => {\n layer.api?.createItem && addLayer(layer);\n const result = await toast.promise(\n layer.api!.getItems(),\n {\n pending: `loading ${layer.name} ...`,\n success: `${layer.name} loaded`,\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n }\n );\n if (result) {\n result.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n }\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n layer.data?.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n }, []);\n\n\n const addItem = useCallback(async (item: Item) => { \n dispatch({\n type: \"ADD\",\n item,\n });\n }, []);\n\n const updateItem = useCallback(async (item: Item) => {\n dispatch({\n type: \"UPDATE\",\n item,\n });\n }, []);\n\n const removeItem = useCallback((item: Item) => {\n dispatch({\n type: \"REMOVE\",\n item,\n });\n }, []);\n\n const resetItems = useCallback((layer: LayerProps) => {\n dispatch({\n type: \"RESET\",\n layer\n });\n }, []);\n\n\n\n return { items, updateItem, addItem, removeItem, resetItems, setItemsApi, setItemsData };\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[], children?: React.ReactNode\n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>\n {children}\n </ItemContext.Provider>\n);\n\nexport const useItems = (): Item[] => {\n const { items } = useContext(ItemContext);\n return items;\n};\n\nexport const useAddItem = (): UseItemManagerResult[\"addItem\"] => {\n const { addItem } = useContext(ItemContext);\n return addItem;\n};\n\nexport const useUpdateItem = (): UseItemManagerResult[\"updateItem\"] => {\n const { updateItem } = useContext(ItemContext);\n return updateItem;\n};\n\nexport const useRemoveItem = (): UseItemManagerResult[\"removeItem\"] => {\n const { removeItem } = useContext(ItemContext);\n return removeItem;\n};\n\nexport const useResetItems = (): UseItemManagerResult[\"resetItems\"] => {\n const { resetItems } = useContext(ItemContext);\n return resetItems;\n};\n\nexport const useSetItemsApi = (): UseItemManagerResult[\"setItemsApi\"] => {\n const { setItemsApi } = useContext(ItemContext);\n return setItemsApi;\n};\n\nexport const useSetItemsData = (): UseItemManagerResult[\"setItemsData\"] => {\n const { setItemsData } = useContext(ItemContext);\n return setItemsData;\n}; ","export const hashTagRegex = /(#+[a-zA-Z0-9A-Za-zÀ-ÖØ-öø-ʸ(_)]{1,})/g;","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Item, ItemsApi, Tag } from \"../../../types\";\nimport { hashTagRegex } from \"../../../Utils/HashTagRegex\";\n\ntype ActionType =\n | { type: \"ADD\"; tag: Tag }\n | { type: \"REMOVE\"; id: string };\n\ntype UseTagManagerResult = ReturnType<typeof useTagsManager>;\n\nconst TagContext = createContext<UseTagManagerResult>({\n tags: [],\n addTag: () => { },\n removeTag: () => { },\n setTagApi: () => { },\n setTagData: () => { },\n getItemTags: () => []\n});\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[];\n addTag: (tag: Tag) => void;\n removeTag: (id: string) => void;\n setTagApi: (api: ItemsApi<Tag>) => void;\n setTagData: (data: Tag[]) => void;\n getItemTags: (item: Item) => Tag[];\n} {\n const [tags, dispatch] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((tag) =>\n tag.id.toLocaleLowerCase() === action.tag.id.toLocaleLowerCase() ? true : false\n );\n if (!exist) return [\n ...state,\n {...action.tag, id: action.tag.id.toLocaleLowerCase()}\n ];\n else return state;\n\n case \"REMOVE\":\n return state.filter(({ id }) => id !== action.id.toLocaleLowerCase());\n default:\n throw new Error();\n }\n }, initialTags);\n\n const [api, setApi] = React.useState<ItemsApi<Tag>>({} as ItemsApi<Tag>)\n\n const setTagApi = useCallback(async (api: ItemsApi<Tag>) => {\n setApi(api);\n const result = await api.getItems();\n if (result) {\n result.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\n })\n }\n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\n })\n }, []);\n\n const addTag = (tag: Tag) => {\n dispatch({\n type: \"ADD\",\n tag,\n });\n\n if (!tags.some((t) => t.id.toLocaleLowerCase() === tag.id.toLocaleLowerCase())) {\n api?.createItem && api.createItem(tag);\n }\n };\n\n const removeTag = useCallback((id: string) => {\n dispatch({\n type: \"REMOVE\",\n id,\n });\n api?.deleteItem && api.deleteItem(id);\n }, []);\n\n const getItemTags = useCallback((item: Item) => { \n const itemTagStrings = item.text.toLocaleLowerCase().match(hashTagRegex);\n const itemTags: Tag[] = [];\n itemTagStrings?.map(tag => {\n if (tags.find(t => t.id === tag.slice(1))) {\n itemTags.push(tags.find(t => t.id === tag.slice(1))!)\n }\n })\n return itemTags \n }, [tags]);\n\n\n return { tags, addTag, removeTag, setTagApi, setTagData, getItemTags };\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>\n {children}\n </TagContext.Provider>\n);\n\nexport const useTags = (): Tag[] => {\n const { tags } = useContext(TagContext);\n return tags;\n};\n\nexport const useAddTag = (): UseTagManagerResult[\"addTag\"] => {\n const { addTag } = useContext(TagContext);\n return addTag;\n};\n\nexport const useRemoveTag = (): UseTagManagerResult[\"removeTag\"] => {\n const { removeTag } = useContext(TagContext);\n return removeTag;\n};\n\nexport const useSetTagApi = (): UseTagManagerResult[\"setTagApi\"] => {\n const { setTagApi } = useContext(TagContext);\n return setTagApi;\n}\n\nexport const useSetTagData = (): UseTagManagerResult[\"setTagData\"] => {\n const { setTagData } = useContext(TagContext);\n return setTagData;\n}\n\n\nexport const useGetItemTags = (): UseTagManagerResult[\"getItemTags\"] => {\n const { getItemTags } = useContext(TagContext);\n return getItemTags;\n}","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { LayerProps, Tag } from \"../../../types\";\nimport { useLayers } from \"./useLayers\";\n\ntype ActionType =\n | { type: \"ADD_TAG\"; tag: Tag }\n | { type: \"REMOVE_TAG\"; id: string }\n | { type: \"RESET_TAGS\" }\n | { type: \"TOGGLE_LAYER\"; layer: LayerProps }\n | { type: \"ADD_LAYER\"; layer: LayerProps }\n | { type: \"RESET_LAYERS\" }\n ;\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>;\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: \"\",\n visibleLayers: [],\n addFilterTag: () => { },\n removeFilterTag: () => { },\n resetFilterTags: () => { },\n setSearchPhrase: () => { },\n addVisibleLayer: () => { },\n toggleVisibleLayer: () => { },\n resetVisibleLayers: () => { },\n isLayerVisible: () => true\n});\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[];\n searchPhrase: string;\n visibleLayers: LayerProps[];\n addFilterTag: (tag: Tag) => void;\n removeFilterTag: (id: string) => void;\n resetFilterTags: () => void;\n setSearchPhrase: (phrase: string) => void;\n addVisibleLayer: (layer: LayerProps) => void;\n toggleVisibleLayer: (layer: LayerProps) => void;\n resetVisibleLayers: () => void;\n isLayerVisible: (layer: LayerProps) => boolean;\n} {\n const [filterTags, dispatchTags] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case \"ADD_TAG\":\n const exist = state.find((tag) =>\n tag.id === action.tag.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.tag,\n ];\n else return state;\n case \"REMOVE_TAG\":\n return state.filter(({ id }) => id !== action.id);\n case \"RESET_TAGS\":\n return initialTags;\n default:\n throw new Error();\n }\n }, initialTags);\n\n const initialLayers = useLayers()\n\n const [visibleLayers, dispatchLayers] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case \"ADD_LAYER\":\n const exist1 = state.find((layer) =>\n layer.name === action.layer.name ? true : false\n );\n if (!exist1) return [\n ...state,\n action.layer,\n ];\n else return state;\n case \"TOGGLE_LAYER\":\n const exist2 = state.some((layer) =>\n layer.name === action.layer.name);\n if(exist2) return state.filter(({name}) => name != action.layer.name);\n else return [... state, action.layer];\n case \"RESET_LAYERS\":\n return initialLayers;\n default:\n throw new Error();\n }\n }, initialLayers);\n\n const [searchPhrase, searchPhraseSet] = React.useState<string>(\"\");\n\n const addFilterTag = (tag: Tag) => {\n dispatchTags({\n type: \"ADD_TAG\",\n tag,\n });\n\n };\n\n const removeFilterTag = useCallback((id: string) => {\n dispatchTags({\n type: \"REMOVE_TAG\",\n id,\n });\n }, []);\n\n const resetFilterTags = useCallback(() => {\n dispatchTags({\n type: \"RESET_TAGS\",\n });\n }, []);\n\n const addVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: \"ADD_LAYER\",\n layer,\n });\n\n };\n\n const toggleVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: \"TOGGLE_LAYER\",\n layer,\n });\n\n };\n\n\n const resetVisibleLayers = useCallback(() => {\n dispatchLayers({\n type: \"RESET_LAYERS\",\n });\n }, []);\n\n const isLayerVisible = useCallback((layer: LayerProps) => {\n return visibleLayers.some(l => l.name === layer.name)\n }, [visibleLayers]);\n\n const setSearchPhrase = useCallback((phrase: string) => {\n searchPhraseSet(phrase)\n }, []);\n\n return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase, visibleLayers, toggleVisibleLayer, resetVisibleLayers, isLayerVisible, addVisibleLayer };\n}\n\nexport const FilterProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <FilterContext.Provider value={useFilterManager(initialTags)}>\n {children}\n </FilterContext.Provider>\n);\n\nexport const useFilterTags = (): Tag[] => {\n const { filterTags } = useContext(FilterContext);\n return filterTags;\n};\n\nexport const useAddFilterTag = (): UseFilterManagerResult[\"addFilterTag\"] => {\n const { addFilterTag } = useContext(FilterContext);\n return addFilterTag;\n};\n\nexport const useRemoveFilterTag = (): UseFilterManagerResult[\"removeFilterTag\"] => {\n const { removeFilterTag } = useContext(FilterContext);\n return removeFilterTag;\n};\n\nexport const useResetFilterTags = (): UseFilterManagerResult[\"resetFilterTags\"] => {\n const { resetFilterTags } = useContext(FilterContext);\n return resetFilterTags;\n};\n\nexport const useSearchPhrase = (): UseFilterManagerResult[\"searchPhrase\"] => {\n const { searchPhrase } = useContext(FilterContext);\n return searchPhrase;\n};\n\nexport const useSetSearchPhrase = (): UseFilterManagerResult[\"setSearchPhrase\"] => {\n const { setSearchPhrase } = useContext(FilterContext);\n return setSearchPhrase;\n};\n\nexport const useVisibleLayer = (): UseFilterManagerResult[\"visibleLayers\"] => {\n const { visibleLayers } = useContext(FilterContext);\n return visibleLayers;\n};\n\nexport const useAddVisibleLayer = (): UseFilterManagerResult[\"addVisibleLayer\"] => {\n const { addVisibleLayer } = useContext(FilterContext);\n return addVisibleLayer;\n};\n\n\nexport const useToggleVisibleLayer = (): UseFilterManagerResult[\"toggleVisibleLayer\"] => {\n const { toggleVisibleLayer } = useContext(FilterContext);\n return toggleVisibleLayer;\n};\n\nexport const useResetVisibleLayers = (): UseFilterManagerResult[\"resetVisibleLayers\"] => {\n const { resetVisibleLayers } = useContext(FilterContext);\n return resetVisibleLayers;\n};\n\nexport const useIsLayerVisible = (): UseFilterManagerResult[\"isLayerVisible\"] => {\n const { isLayerVisible } = useContext(FilterContext);\n return isLayerVisible;\n};","import { useState, useEffect } from 'react';\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height\n };\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n}\n","import * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag, useSetSearchPhrase } from '../hooks/useFilter'\nimport useWindowDimensions from '../hooks/useWindowDimension';\n\n\n\n\n\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport const FilterControl = () => {\n\n const windowDimensions = useWindowDimensions();\n /** \n const [popupOpen, setPopupOpen] = useState<boolean>(false);\n \n useMapEvents({\n popupopen: (e) => {\n console.log(e);\n \n setPopupOpen(true);\n },\n popupclose: () => {\n setPopupOpen(false);\n }\n })\n */\n const filterTags = useFilterTags();\n const removeFilterTag = useRemoveFilterTag();\n const setSearchPhrase = useSetSearchPhrase();\n return (<>\n {!(\n //popupOpen &&\n windowDimensions.height < 500) &&\n <div className='tw-flex tw-flex-col tw-absolute tw-top-4 tw-left-4 tw-z-[699] tw-w-[calc(100vw-2rem)] tw-max-w-sm'>\n <input type=\"text\" placeholder=\"search ...\" className=\"tw-input tw-input-bordered tw-w-full tw-shadow-xl tw-rounded-2xl\" onChange={(e) => setSearchPhrase(e.target.value)} />\n <div className='tw-flex tw-flex-wrap tw-mt-4'>\n {\n filterTags.map(tag =>\n <div key={tag.id} className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2' style={{ backgroundColor: tag.color }}>\n <div className=\"tw-card-actions tw-justify-end\">\n <label className=\"tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600\" onClick={() => (removeFilterTag(tag.id))}>✕</label>\n </div><b>#{capitalizeFirstLetter(tag.id)}</b>\n </div>\n )\n }\n\n\n </div>\n </div>\n }\n </>\n\n )\n}\n","import { useCallback, useReducer, createContext, useContext, useEffect } from \"react\";\nimport * as React from \"react\";\nimport { Item } from \"../../../types\";\nimport { Marker, Popup } from \"leaflet\";\n\ntype LeafletRef = {\n item: Item,\n marker: Marker,\n popup: Popup\n}\n\ntype ActionType =\n | { type: \"ADD_MARKER\"; item: Item, marker: Marker }\n | { type: \"ADD_POPUP\"; item: Item, popup: Popup }\n ;\n\n\ntype UseLeafletRefsManagerResult = ReturnType<typeof useLeafletRefsManager>;\n\nconst LeafletRefsContext = createContext<UseLeafletRefsManagerResult>({\n leafletRefs: {},\n addMarker: () => { },\n addPopup: () => { },\n});\n\nfunction useLeafletRefsManager(initialLeafletRefs: {}): {\n leafletRefs: Record<string,LeafletRef>;\n addMarker: (item: Item, marker: Marker) => void;\n addPopup: (item: Item, popup: Popup) => void;\n} {\n\n\n\n const [leafletRefs, dispatch] = useReducer((state: Record<string,LeafletRef>, action: ActionType) => {\n switch (action.type) {\n case \"ADD_MARKER\":\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], marker: action.marker, item: action.item }}\n case \"ADD_POPUP\":\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], popup: action.popup, item: action.item }}\n default:\n throw new Error();\n }\n }, initialLeafletRefs);\n\n\n\n\n const addMarker = useCallback((item: Item, marker: Marker) => {\n dispatch({\n type: \"ADD_MARKER\",\n item,\n marker\n });\n }, []);\n\n const addPopup = useCallback((item: Item, popup: Popup) => {\n dispatch({\n type: \"ADD_POPUP\",\n item,\n popup\n });\n }, []);\n\n\n\n return { leafletRefs, addMarker, addPopup };\n}\n\nexport const LeafletRefsProvider: React.FunctionComponent<{\n initialLeafletRefs: {}, children?: React.ReactNode\n}> = ({ initialLeafletRefs, children }) => (\n <LeafletRefsContext.Provider value={useLeafletRefsManager(initialLeafletRefs)}>\n {children}\n </LeafletRefsContext.Provider>\n);\n\nexport const useLeafletRefs = (): Record<string,LeafletRef> => {\n const { leafletRefs } = useContext(LeafletRefsContext);\n return leafletRefs;\n};\n\nexport const useAddMarker = (): UseLeafletRefsManagerResult[\"addMarker\"] => {\n const { addMarker } = useContext(LeafletRefsContext);\n return addMarker;\n};\n\nexport const useAddPopup = (): UseLeafletRefsManagerResult[\"addPopup\"] => {\n const { addPopup } = useContext(LeafletRefsContext);\n return addPopup;\n};\n\n","import * as React from 'react'\nimport { useLayers } from '../hooks/useLayers';\nimport { useAddVisibleLayer, useIsLayerVisible, useToggleVisibleLayer } from '../hooks/useFilter';\nimport { useEffect } from 'react';\n\nexport function LayerControl() {\n\n const [open, setOpen] = React.useState(false);\n\n const layers = useLayers();\n\n useEffect(() => {\n layers.map(layer =>\n addVisibleLayer(layer)\n )\n\n }, [layers])\n\n const isLayerVisible = useIsLayerVisible();\n const toggleVisibleLayer = useToggleVisibleLayer();\n const addVisibleLayer = useAddVisibleLayer();\n\n return (\n <div className=\"tw-card tw-bg-base-100 tw-shadow-xl \" onClick={e => e.stopPropagation()}>\n {\n open ?\n <div className=\"tw-card-body tw-p-2 tw-w-32 tw-transition-all tw-duration-300\" onClick={e => e.stopPropagation()}>\n <label className=\"tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-bg-white tw-text-gray-600\" onClick={() => setOpen(false)}><p className='tw-text-center '>✕</p></label>\n\n <ul className='tw-flex-row'>\n {\n layers.map(layer =>\n <li key={layer.name}><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-1\"><input type=\"checkbox\" className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isLayerVisible(layer)} onChange={() => toggleVisibleLayer(layer)} /><span className='tw-text-sm tw-label-text tw-mx-2'>{layer.name}</span></label></li>\n\n )\n }\n\n </ul>\n </div>\n :\n <div className=\"tw-card-body hover:tw-bg-slate-300 tw-rounded-2xl tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer\" onClick={() => setOpen(true)}>\n <svg version=\"1.1\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path id=\"svg_1\" fill=\"#000\" d=\"m2.75565,11.90727l-1.03852,0.28372c-0.77718,0.38859 -0.77718,1.0138 0,1.4023l7.0156,3.5078c0.77718,0.38859 2.0275,0.38859 2.8047,0l7.0156,-3.5078c0.77718,-0.38859 0.77718,-1.0138 0,-1.4023l-0.63311,-0.48643l-4.67718,2.23624c-1.5452,0.77262 -3.31877,1.58343 -4.86407,0.81081l-5.62302,-2.84434z\" />\n <path id=\"svg_2\" strokeWidth=\"2\" stroke=\"#000\" fill=\"none\" d=\"m11.247,4.30851l6.2349,3.0877c0.69083,0.34211 0.69083,0.89295 0,1.2351l-6.2349,3.0877c-0.69083,0.34211 -1.8031,0.34212 -2.494,0l-6.2349,-3.0877c-0.69083,-0.34211 -0.69083,-0.89295 0,-1.2351l6.2349,-3.0877c0.69083,-0.34211 1.8031,-0.34211 2.494,0z\" />\n </svg>\n </div>\n\n }\n\n </div>\n )\n}\n","import { useCallback, useState } from 'react';\n\n\nimport { createContext, useContext } from \"react\";\nimport * as React from \"react\";\n\n\n\ntype UseQuestManagerResult = ReturnType<typeof useQuestsManager>;\n\nconst QuestContext = createContext<UseQuestManagerResult>({\n open: false,\n setQuestsOpen: () => { }\n});\n\nfunction useQuestsManager(initialOpen: boolean): {\n open: boolean;\n setQuestsOpen: (open: boolean) => void;\n} {\n const [open, setOpen] = useState<boolean>(initialOpen);\n\n const setQuestsOpen = useCallback((questOpen: boolean) => {\n setOpen(questOpen);\n console.log(open);\n \n }, []);\n\n return { open, setQuestsOpen };\n}\n\nexport const QuestsProvider: React.FunctionComponent<{\n initialOpen: boolean, children?: React.ReactNode\n}> = ({ initialOpen, children }) => (\n <QuestContext.Provider value={useQuestsManager(initialOpen)}>\n {children}\n </QuestContext.Provider>\n);\n\nexport const useQuestsOpen = (): boolean => {\n const { open } = useContext(QuestContext);\n return open;\n};\n\n\nexport const useSetQuestOpen = (): UseQuestManagerResult[\"setQuestsOpen\"] => {\n const { setQuestsOpen } = useContext(QuestContext);\n return setQuestsOpen;\n}\n","import * as React from 'react'\nimport { useQuestsOpen, useSetQuestOpen } from '../../Gaming/hooks/useQuests';\n\n\nexport function QuestControl() {\n\n const questsOpen = useQuestsOpen();\n const setQuestsOpen = useSetQuestOpen();\n\n return (\n <>\n {questsOpen ? \"\" :\n <div className=\"tw-card tw-bg-base-100 tw-shadow-xl tw-my-2 tw-w-10\" onClick={e => e.stopPropagation()}>\n \n <div className=\"tw-card-body hover:tw-bg-slate-300 tw-rounded-2xl tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer\" onClick={() => setQuestsOpen(true)}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M192 0c17.7 0 32 14.3 32 32V144H160V32c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H128c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"/></svg>\n </div>\n\n </div>\n }\n </>\n )\n}\n","import * as React from 'react'\n\nexport const Control = ({children}) => {\n return (\n <div className='tw-absolute tw-bottom-4 tw-left-4 tw-z-[999] tw-flex-col'>{children}</div>\n )\n}\n","import { TileLayer, MapContainer, useMapEvents } from \"react-leaflet\";\nimport \"leaflet/dist/leaflet.css\";\nimport * as React from \"react\";\nimport { LayerProps, UtopiaMapProps } from \"../../types\"\nimport \"./UtopiaMap.css\"\nimport { LatLng } from \"leaflet\";\nimport MarkerClusterGroup from 'react-leaflet-cluster'\nimport AddButton from \"./Subcomponents/AddButton\";\nimport { useState } from \"react\";\nimport { ItemFormPopupProps } from \"./Subcomponents/ItemFormPopup\";\nimport { ItemsProvider } from \"./hooks/useItems\";\nimport { TagsProvider } from \"./hooks/useTags\";\nimport { LayersProvider } from \"./hooks/useLayers\";\nimport { FilterProvider } from \"./hooks/useFilter\";\nimport { FilterControl } from \"./Subcomponents/FilterControl\";\nimport { PermissionsProvider } from \"./hooks/usePermissions\";\nimport { LeafletRefsProvider } from \"./hooks/useLeafletRefs\";\nimport { LayerControl } from \"./Subcomponents/LayerControl\";\nimport { QuestControl } from \"./Subcomponents/QuestControl\";\nimport { Quests } from \"../Gaming\";\nimport { Control } from \"./Subcomponents/Control\";\n\n\nexport interface MapEventListenerProps {\n selectNewItemPosition: LayerProps | null,\n setSelectNewItemPosition: React.Dispatch<any>,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\n\n// for refreshing map on resize (needs to be implemented)\nconst mapDivRef = React.createRef();\n\nfunction UtopiaMap({\n height = \"500px\",\n width = \"100%\",\n center = new LatLng(50.6, 9.5),\n zoom = 10,\n children }\n : UtopiaMapProps) {\n\n let meta = document.getElementsByTagName('meta')\n const [metaTags, setMetaTags] = useState<HTMLCollectionOf<HTMLMetaElement>>(meta);\n\n function MapEventListener(props: MapEventListenerProps) {\n useMapEvents({\n click: (e) => {\n window.history.pushState({}, \"\", \"/\");\n document.title = document.title.split(\"-\")[0];\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute(\"content\", document.title);\n document.querySelector('meta[property=\"og:description\"]')?.setAttribute(\"content\", `${document.querySelector('meta[name=\"description\"]')?.getAttribute(\"content\")}`);\n\n meta = metaTags;\n console.log(e.latlng.lat + ',' + e.latlng.lng);\n if (props.selectNewItemPosition != null) {\n props.setItemFormPopup({ layer: props.selectNewItemPosition, position: e.latlng })\n props.setSelectNewItemPosition(null)\n }\n },\n resize: () => {\n console.log(\"resize\");\n },\n\n })\n return null\n }\n\n const [selectNewItemPosition, setSelectNewItemPosition] = useState<LayerProps | null>(null);\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n const clusterRef = React.useRef();\n\n\n return (\n <LayersProvider initialLayers={[]}>\n <TagsProvider initialTags={[]}>\n <PermissionsProvider initialPermissions={[]}>\n <FilterProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <LeafletRefsProvider initialLeafletRefs={{}}>\n <div className={(selectNewItemPosition != null ? \"crosshair-cursor-enabled\" : undefined)}>\n <MapContainer ref={mapDivRef} style={{ height: height, width: width }} center={center} zoom={zoom} zoomControl={false}>\n <FilterControl></FilterControl>\n <Control>\n <QuestControl></QuestControl>\n <LayerControl></LayerControl>\n </Control>\n <TileLayer\n attribution='© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url=\"https://tile.osmand.net/hd/{z}/{x}/{y}.png\" />\n <MarkerClusterGroup ref={clusterRef} showCoverageOnHover chunkedLoading maxClusterRadius={50} removeOutsideVisibleBounds={false}>\n {\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>, itemFormPopup: ItemFormPopupProps | null, clusterRef: React.MutableRefObject<undefined> }>(child) ?\n React.cloneElement(child, { setItemFormPopup: setItemFormPopup, itemFormPopup: itemFormPopup, clusterRef: clusterRef }) : child\n )\n }\n </MarkerClusterGroup>\n <MapEventListener setSelectNewItemPosition={setSelectNewItemPosition} selectNewItemPosition={selectNewItemPosition} setItemFormPopup={setItemFormPopup} />\n </MapContainer>\n <AddButton setSelectNewItemPosition={setSelectNewItemPosition}></AddButton>\n {selectNewItemPosition != null &&\n <div className=\"tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md\">\n <div className=\"tw-alert tw-bg-base-100 tw-text-base-content\">\n <div>\n <span>Select {selectNewItemPosition.name} position!</span>\n </div>\n </div>\n </div>\n }\n </div>\n </LeafletRefsProvider>\n </ItemsProvider>\n </FilterProvider>\n </PermissionsProvider>\n </TagsProvider>\n </LayersProvider>\n );\n}\n\nexport { UtopiaMap };","import * as L from 'leaflet';\n\nconst createSvg = (shape:string, markerColor:string, borderColor:string) => {\n const svgMap = {\n circle: '<svg width=\"32\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.5 2.746c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.439-17.863.056-.08a15.422 15.422 0 002.343-6.112c.123-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307\" fill=\"' + markerColor + '\" /><path d=\"M17.488 2.748c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.44-17.863.055-.08a15.422 15.422 0 002.343-6.112c.124-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307m0 1.071c7.68 0 13.929 6.386 13.929 14.236 0 .685-.064 1.423-.193 2.258-.325 2.075-1.059 3.99-2.164 5.667l-.055.078-11.557 16.595L6.032 26.14l-.12-.174a14.256 14.256 0 01-2.105-5.29 14.698 14.698 0 01-.247-2.62c0-7.851 6.249-14.237 13.928-14.237\" fill=\"' + borderColor + '\" opacity=\"1\" /></svg>',\n square: '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28.205 3.217H6.777c-2.367 0-4.286 1.87-4.286 4.179v19.847c0 2.308 1.919 4.179 4.286 4.179h5.357l5.337 13.58 5.377-13.58h5.357c2.366 0 4.285-1.87 4.285-4.179V7.396c0-2.308-1.919-4.179-4.285-4.179\" fill=\"' + markerColor + '\" /><g opacity=\"1\" transform=\"matrix(1.0714 0 0 -1.0714 -233.22 146.783)\"><path d=\"M244 134h-20c-2.209 0-4-1.746-4-3.9v-18.525c0-2.154 1.791-3.9 4-3.9h5L233.982 95 239 107.675h5c2.209 0 4 1.746 4 3.9V130.1c0 2.154-1.791 3.9-4 3.9m0-1c1.654 0 3-1.301 3-2.9v-18.525c0-1.599-1.346-2.9-3-2.9h-5.68l-.25-.632-4.084-10.318-4.055 10.316-.249.634H224c-1.654 0-3 1.301-3 2.9V130.1c0 1.599 1.346 2.9 3 2.9h20\" fill=\"'+ borderColor +'\" /></g></svg>',\n star: '<svg width=\"34\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32.92 16.93l-3.525-3.525V8.419a1.983 1.983 0 00-1.983-1.982h-4.985L18.9 2.91a1.984 1.984 0 00-2.803 0l-3.524 3.526H7.588a1.983 1.983 0 00-1.982 1.982v4.986L2.081 16.93a1.982 1.982 0 000 2.803l3.525 3.526v4.984c0 1.096.888 1.983 1.982 1.983h4.986L17.457 45l4.97-14.773h4.985a1.983 1.983 0 001.983-1.983V23.26l3.525-3.526a1.982 1.982 0 000-2.803\" fill=\"' + markerColor + '\" /><g opacity=\".15\" transform=\"matrix(1.0667 0 0 -1.0667 -347.3 97.26)\"><path d=\"M342 89c-.476 0-.951-.181-1.314-.544l-3.305-3.305h-4.673a1.858 1.858 0 01-1.859-1.858v-4.674l-3.305-3.305a1.857 1.857 0 010-2.627l3.305-3.305v-4.674a1.86 1.86 0 011.859-1.859h4.673L341.959 49l4.659 13.849h4.674a1.86 1.86 0 011.859 1.859v4.674l3.305 3.305a1.858 1.858 0 010 2.627l-3.305 3.305v4.674a1.859 1.859 0 01-1.859 1.858h-4.674l-3.304 3.305A1.851 1.851 0 01342 89m0-1a.853.853 0 00.607-.251l3.304-3.305.293-.293h5.088a.86.86 0 00.859-.858v-5.088l3.598-3.598A.852.852 0 00356 74a.85.85 0 00-.251-.606l-3.598-3.598v-5.088a.86.86 0 00-.859-.859h-5.393l-.229-.681-3.702-11.006-3.637 11.001-.227.686h-5.396a.86.86 0 00-.859.859v5.088l-3.598 3.598c-.162.162-.251.377-.251.606s.089.445.251.607l3.598 3.598v5.088a.86.86 0 00.859.858h5.087l3.598 3.598A.853.853 0 00342 88\" fill=\"#231f20\" /></g></svg>',\n penta: '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.872 17.35L9.679 2.993h15.615L33.1 17.35 17.486 44.992z\" fill=\"' + markerColor + '\" /><g opacity=\".15\" transform=\"matrix(1.0769 0 0 -1.0769 -272.731 48.23)\"><path d=\"M276.75 42h-14.5L255 28.668 269.5 3 284 28.668zm-.595-1l6.701-12.323L269.5 5.033l-13.356 23.644L262.845 41z\" fill=\"#231f20\" /></g></svg>'\n };\n return svgMap[shape];\n}\n\nconst addIcon = (icon:string) => {\n switch(icon) {\n case \"circle-solid\":\n return '<svg fill=\"#fff\" class=\"circle-icon\" width=\"13\"xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z\"/></svg>';\n break;\n case \"calendar-days-solid\":\n return '<svg fill=\"#fff\" class=\"calendar-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d=\"M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM64 304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304zM192 304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304zM336 256C327.2 256 320 263.2 320 272V304C320 312.8 327.2 320 336 320H368C376.8 320 384 312.8 384 304V272C384 263.2 376.8 256 368 256H336zM64 432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V400C128 391.2 120.8 384 112 384H80C71.16 384 64 391.2 64 400V432zM208 384C199.2 384 192 391.2 192 400V432C192 440.8 199.2 448 208 448H240C248.8 448 256 440.8 256 432V400C256 391.2 248.8 384 240 384H208zM320 432C320 440.8 327.2 448 336 448H368C376.8 448 384 440.8 384 432V400C384 391.2 376.8 384 368 384H336C327.2 384 320 391.2 320 400V432z\"/></svg>';\n break;\n default:\n return \"\";\n } \n}\n\nconst MarkerIconFactory = (shape:string, color1:string, color2:string, icon:string) =>\n{\n return L.divIcon({\n html: `${createSvg(shape, color1, color2)}${addIcon(icon)}`,\n iconAnchor: [17,40],\n popupAnchor: [0,-40],\n iconSize: new L.Point(40, 46),\n className: \"leaflet-data-marker\",\n shadowAnchor: [0, 0]\n });\n}\n\nexport default MarkerIconFactory ;\n","import * as React from \"react\"\nimport { useRemoveItem } from \"../../hooks/useItems\";\nimport { useMap } from \"react-leaflet\";\nimport { ItemFormPopupProps } from \"../ItemFormPopup\";\nimport { LatLng } from \"leaflet\";\nimport { Item } from \"../../../../types\";\nimport { toast } from \"react-toastify\";\nimport { useHasUserPermission } from \"../../hooks/usePermissions\";\n\n\n\nexport function HeaderView({ item, setItemFormPopup }: {\n item: Item,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}) {\n\n const [loading, setLoading] = React.useState<boolean>(false);\n const removeItem = useRemoveItem();\n\n const map = useMap();\n const hasUserPermission = useHasUserPermission();\n\n\n const removeItemFromMap = async (event: React.MouseEvent<HTMLElement>) => {\n setLoading(true);\n let success = false;\n try {\n await item.layer?.api?.deleteItem!(item.id)\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n removeItem(item);\n toast.success(\"Item deleted\");\n } \n setLoading(false);\n map.closePopup();\n\n event.stopPropagation();\n }\n\n const openEditPopup = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n map.closePopup();\n if (setItemFormPopup)\n setItemFormPopup({ position: new LatLng(item.position.coordinates[1], item.position.coordinates[0]), layer: item.layer!, item: item, setItemFormPopup: setItemFormPopup })\n }\n\n \n return (\n <div className='tw-grid tw-grid-cols-6 tw-pb-2'>\n <div className='tw-col-span-5'>\n <b className=\"tw-text-xl tw-font-bold\">{item.name}</b>\n </div>\n <div className='tw-col-span-1'>\n {item.layer?.api &&\n <div className=\"tw-dropdown tw-dropdown-bottom\">\n <label tabIndex={0} className=\"tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z\" />\n </svg>\n </label>\n <ul tabIndex={0} className=\"tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box\">\n {item.layer.api.updateItem && hasUserPermission(item.layer.api?.collectionName!,\"update\") && <li>\n <a className=\"!tw-text-base-content\" onClick={openEditPopup}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z\" />\n </svg>\n </a>\n </li>}\n\n {item.layer.api.deleteItem && hasUserPermission(item.layer.api?.collectionName!,\"delete\") && <li>\n <a className=' !tw-text-error' onClick={removeItemFromMap}>\n {loading ? <span className=\"tw-loading tw-loading-spinner tw-loading-sm\"></span>\n :\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" d=\"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>}\n </a>\n </li>}\n </ul>\n </div>}\n </div>\n </div>\n )\n}\n","export const urlRegex = /(^| )(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,10})?(\\/.*)?$/gm\nexport const mailRegex = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/gi;\n\n\nexport function fixUrls(message: string): string {\n \n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '');\n if (!hyperlink.match('^https?:\\/\\/')) {\n hyperlink = 'https://' + hyperlink;\n } \n return hyperlink\n });\n \n \n return message;\n }","import * as React from 'react'\nimport { Item } from '../../../../types'\nimport { useAddTag, useTags } from '../../hooks/useTags';\nimport reactStringReplace from 'react-string-replace';\nimport { useAddFilterTag } from '../../hooks/useFilter';\nimport { hashTagRegex } from '../../../../Utils/HashTagRegex';\nimport { fixUrls, mailRegex } from '../../../../Utils/ReplaceURLs';\nimport { useMap } from 'react-leaflet';\nimport { randomColor } from '../../../../Utils/RandomColor';\nimport { useEffect, useRef } from 'react';\n\nexport const TextView = ({ item }: { item?: Item }) => {\n const tags = useTags();\n const addTag = useAddTag();\n const addFilterTag = useAddFilterTag();\n\n let replacedText;\n\n\n\n\n if (item && item.text) replacedText = fixUrls(item.text);\n\n replacedText = reactStringReplace(replacedText, /(https?:\\/\\/\\S+)/g, (url, i) => {\n let shortUrl = url; \n if (url.match('^https:\\/\\/')) {\n shortUrl = url.split('https://')[1];\n }\n if (url.match('^http:\\/\\/')) {\n shortUrl = url.split('http://')[1];\n } \n return (\n <a key={i.toString+item!.id+url} href={url} target=\"_blank\" rel=\"noopener noreferrer\">{shortUrl}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, mailRegex, (url, i) => {\n return (\n <a key={i.toString+item!.id+url} href={`mailto:${url}`} target=\"_blank\" rel=\"noopener noreferrer\">{url}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, hashTagRegex, (match, i) => {\n\n const tag = tags.find(t => t.id.toLowerCase() == match.slice(1).toLowerCase())\n return (\n <a style={{ color: tag ? tag.color : '#aaa' , fontWeight: 'bold', cursor: 'pointer' }} key={tag ? tag.id+item!.id+i : i} onClick={() => {\n addFilterTag(tag!);\n // map.fitBounds(items)\n // map.closePopup();\n }}>{match}</a>\n )\n })\n\n return (\n <p style={{ whiteSpace: \"pre-wrap\" }} className=\"!tw-m-0 !tw-mb-2\">\n {replacedText}\n </p>\n )\n\n\n\n}\n","import * as React from 'react'\nimport { Popup as LeafletPopup} from 'react-leaflet'\nimport { Item } from '../../../types'\nimport { ItemFormPopupProps } from './ItemFormPopup'\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\nimport { TextView } from './ItemPopupComponents/TextView'\n\n\nexport interface ItemViewPopupProps {\n item: Item,\n children?: React.ReactNode;\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\nexport const ItemViewPopup = React.forwardRef((props: ItemViewPopupProps, ref: any) => {\n\n return (\n <LeafletPopup ref={ref} maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}>\n <div className='tw-bg-base-100 tw-text-base-content'>\n <HeaderView item={props.item} setItemFormPopup={props.setItemFormPopup} />\n <div className='tw-overflow-y-auto tw-max-h-72'>\n {props.children ?\n\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: props.item }) : \"\"\n )\n\n :\n\n <TextView item={props.item} />\n\n }\n </div>\n </div>\n </LeafletPopup>\n )\n})\n\n","import { LatLng, LatLngTuple, latLng } from \"leaflet\";\nimport { ItemFormPopupProps } from \"./Components/Map/Subcomponents/ItemFormPopup\";\n\nexport interface UtopiaMapProps {\n height?: string,\n width?: string,\n center?: LatLng,\n zoom?: number,\n tags?: Tag[],\n children?: React.ReactNode,\n}\n\nexport interface LayerProps {\n data?: Item[],\n children?: React.ReactNode,\n name: string,\n menuIcon: string,\n menuColor: string,\n menuText: string,\n markerIcon: string,\n markerShape: string,\n markerDefaultColor: string,\n api?: ItemsApi<any>,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,\n itemFormPopup?: ItemFormPopupProps | null,\n clusterRef?: React.MutableRefObject<any>\n}\n\nexport class Item {\n id: string ;\n name: string;\n text: string;\n position: Geometry;\n date_created?: string;\n date_updated?: string | null;\n start?: string;\n end?: string;\n api?: ItemsApi<any>;\n tags?: Tag[];\n layer?: LayerProps;\n [key: string]: any;\n constructor(id:string,name:string,text:string,position:Geometry, layer?: LayerProps, api?: ItemsApi<any>){\n this.id = id;\n this.name = name;\n this.text = text;\n this.position = position;\n this.layer = layer;\n this.api = api;\n }\n}\n\nexport class Geometry {\n type: string;\n coordinates: number[];\n constructor(lng: number, lat: number) {\n this.coordinates = [lng,lat];\n this.type = \"Point\";\n }\n}\n\nexport interface Tag {\n color: string;\n id: string;\n}\n\nexport interface ItemsApi<T> {\n getItems(): Promise<any>, \n createItem?(item : T): Promise<any>,\n updateItem?(item : T): Promise<any>,\n deleteItem?(id : number | string): Promise<any>,\n collectionName?: string\n}\n\nexport interface AssetsApi {\n upload(file: Blob, title: string): any,\n url: string\n}\n\nexport interface UserApi {\n register(email: string, password: string, userName: string): Promise<void>,\n\tlogin(email: string, password: string): Promise<any>,\n\tlogout(): Promise<void>,\n getUser(): Promise<UserItem>,\n getToken(): Promise<any>,\n\tupdateUser(user: UserItem): Promise<void>\n}\n\nexport type UserItem = {\n id?: string;\n avatar?: string;\n role?: string;\n first_name: string;\n description: string;\n email: string;\n password?: string;\n}\n\nexport type Permission = {\n id?: string;\n role: string;S\n collection: string;\n action: PermissionAction\n}\n\n\nexport type PermissionAction = \"create\"|\"read\"|\"update\"|\"delete\";\n","import * as React from \"react\"\nimport { useEffect, useRef } from \"react\";\nimport Tribute from \"tributejs\";\nimport { useTags } from \"../Map/hooks/useTags\";\n\n\ntype TextAreaProps = {\n labelTitle?: string;\n labelStyle?: string;\n containerStyle?: string;\n dataField?: string;\n inputStyle?: string;\n defaultValue: string;\n placeholder?: string;\n updateFormValue?: (value: string) => void;\n}\n\ninterface KeyValue {\n [key: string]: string;\n}\n\n\nexport function TextAreaInput({ labelTitle, dataField, labelStyle, containerStyle, inputStyle, defaultValue, placeholder, updateFormValue }: TextAreaProps) {\n\n const ref = useRef<HTMLTextAreaElement>(null);\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const tags = useTags();\n\n let values: KeyValue[] = [];\n\n tags.map(tag => {\n values.push({ key: tag.id, value: tag.id, color: tag.color })\n })\n\n var tribute = new Tribute({\n containerClass: 'tw-z-500 tw-bg-white tw-p-2 tw-rounded-lg tw-shadow',\n selectClass: 'tw-font-bold',\n trigger: \"#\",\n values: values,\n noMatchTemplate: () => {\n return \"\"\n },\n menuItemTemplate: function (item) {\n return `<span style=\"color: ${item.original.color}; padding: 5px; boarder-radius: 3px;\">#${item.string}</span>`;\n }\n });\n\n\n useEffect(() => {\n if (!init.current) {\n if (ref.current) {\n tribute.attach(ref.current);\n }\n init.current = true;\n }\n }, [ref])\n\n return (\n <div className={`tw-form-control tw-w-full ${containerStyle ? containerStyle : \"\"}`}>\n {labelTitle ? <label className=\"tw-label\">\n <span className={\"tw-label-text tw-text-base-content \" + labelStyle}>{labelTitle}</span>\n </label> : \"\"}\n <textarea required ref={ref} defaultValue={defaultValue} name={dataField} className={`tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ${inputStyle ? inputStyle : \"\"}`} placeholder={placeholder || \"\"} onChange={(e) => updateFormValue && updateFormValue(e.target.value)}></textarea>\n </div>\n )\n}\n\n\n","export const randomColor = () => {\n return hsvToHex((Math.random() + golden_ratio_conjugate) % 1, 0.8, 0.7)\n}\n\nconst golden_ratio_conjugate = 0.618033988749895;\n\nfunction hsvToHex(h, s, v) {\n var r, g, b;\n var i = (Math.floor(h * 6));\n var f = h * 6 - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0: r = v, g = t, b = p; break;\n case 1: r = q, g = v, b = p; break;\n case 2: r = p, g = v, b = t; break;\n case 3: r = p, g = q, b = v; break;\n case 4: r = t, g = p, b = v; break;\n case 5: r = v, g = p, b = q; break;\n }\n\n return rgbToHex(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n\n\nconst rgbToHex = (r, g, b) => '#' + [r, g, b].map(x => {\n const hex = x.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n}).join('')","import * as React from 'react'\nimport { LatLng } from 'leaflet'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useAddItem, useUpdateItem } from '../hooks/useItems'\nimport { Geometry, LayerProps, Item, ItemsApi } from '../../../types'\nimport { TextAreaInput } from '../../Input/TextAreaInput'\nimport { TextInput } from '../../Input/TextInput'\nimport { toast } from 'react-toastify'\nimport { useResetFilterTags } from '../hooks/useFilter'\nimport { hashTagRegex } from '../../../Utils/HashTagRegex'\nimport { randomColor } from '../../../Utils/RandomColor'\nimport { useAddTag, useTags } from '../hooks/useTags'\n\nexport interface ItemFormPopupProps {\n position: LatLng,\n layer: LayerProps,\n item?: Item,\n children?: React.ReactNode,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n\n const [spinner, setSpinner] = useState(false);\n\n const formRef = useRef<HTMLFormElement>(null);\n\n const map = useMap();\n\n const addItem = useAddItem();\n const updateItem = useUpdateItem();\n\n const tags = useTags(); \n const addTag = useAddTag();\n\n const resetFilterTags = useResetFilterTags();\n\n\n const handleSubmit = async (evt: any) => {\n const formItem: Item = {} as Item;\n Array.from(evt.target).forEach((input: HTMLInputElement) => {\n if (input.name) {\n formItem[input.name] = input.value;\n }\n });\n formItem['position'] = new Geometry(props.position.lng, props.position.lat);\n evt.preventDefault();\n setSpinner(true);\n\n formItem.text.toLocaleLowerCase().match(hashTagRegex)?.map(tag=> {\n if (!tags.find((t) => t.id.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({id: tag.slice(1).toLocaleLowerCase(), color: randomColor()})\n }\n });\n\n\n\n\n if(props.item) {\n let success = false;\n try {\n await props.layer.api?.updateItem!({...formItem, id: props.item.id});\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n updateItem({...props.item, ...formItem});\n toast.success(\"Item updated\");\n } \n setSpinner(false);\n map.closePopup();\n }\n else {\n\n let success = false;\n try {\n await props.layer.api?.createItem!({...formItem, id: crypto.randomUUID()});\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n addItem({...formItem, id: crypto.randomUUID(), layer: props.layer});\n toast.success(\"New item created\");\n resetFilterTags();\n } \n setSpinner(false);\n map.closePopup();\n }\n props.setItemFormPopup(null);\n }\n\n\n const resetPopup = () => {\n if (formRef.current) {\n formRef.current.reset();\n }\n }\n\n useEffect(() => {\n resetPopup();\n }, [props.position])\n\n return (\n <LeafletPopup minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100);\n }\n }}\n position={props.position}>\n <form ref={formRef} onReset={resetPopup} autoComplete='off' onSubmit={e => handleSubmit(e)}>\n {props.item ? <div className='tw-h-3'></div>\n :\n <div className='tw-flex tw-justify-center'><b className=\"tw-text-xl tw-font-bold\">New {props.layer.name}</b></div>\n }\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={props.item ? props.item.name : \"\"} inputStyle='' />\n\n {props.children ?\n\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: props.item, key: props.position.toString() }) : \"\"\n )\n\n :\n <>\n <TextAreaInput key={props.position.toString()} placeholder=\"Text\" dataField=\"text\" defaultValue={props.item ? props.item.text : \"\"} inputStyle='tw-h-40 tw-mt-5' />\n </>\n }\n\n <div className='tw-flex tw-justify-center'>\n <button className={spinner ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{spinner ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n\n\n\n","import * as React from 'react'\nimport { Marker, Tooltip, useMap, useMapEvents } from 'react-leaflet'\nimport { Item, LayerProps } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\nimport { useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { ItemFormPopupProps, ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { useFilterTags, useIsLayerVisible, useSearchPhrase } from './hooks/useFilter'\nimport { useGetItemTags } from './hooks/useTags'\nimport { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'\nimport { Popup } from 'leaflet'\nimport { useLocation } from 'react-router-dom';\n\nexport const Layer = (props: LayerProps) => {\n\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n const filterTags = useFilterTags();\n\n const items = useItems();\n const setItemsApi = useSetItemsApi();\n const setItemsData = useSetItemsData();\n const getItemTags = useGetItemTags();\n const addMarker = useAddMarker();\n const addPopup = useAddPopup();\n const leafletRefs = useLeafletRefs();\n\n let location = useLocation();\n\n const searchPhrase = useSearchPhrase();\n\n const map = useMap();\n\n const isLayerVisible = useIsLayerVisible();\n\n\n useEffect(() => {\n\n props.data && setItemsData(props);\n props.api && setItemsApi(props);\n }, [props.data, props.api])\n\n useMapEvents({\n popupopen: (e) => {\n const item = Object.entries(leafletRefs).find(r => r[1].popup == e.popup)?.[1].item;\n if (item?.layer?.name == props.name && window.location.pathname.split(\"/\")[2] != item.id) {\n window.history.pushState({}, \"\", `/${props.name}/${item.id}`)\n document.title = document.title.split(\"-\")[0] + \" - \" + item.name;\n }\n },\n })\n\n const openPopup = () => {\n if (window.location.pathname.split(\"/\").length <= 2 || window.location.pathname.split(\"/\")[2]===\"\") {\n map.closePopup();\n }\n else {\n if (window.location.pathname.split(\"/\")[1] == props.name) {\n\n if (window.location.pathname.split(\"/\")[2]) {\n const id = window.location.pathname.split(\"/\")[2]\n const marker = leafletRefs[id]?.marker;\n if (marker && marker != null) {\n marker !== null && props.clusterRef?.current?.zoomToShowLayer(marker, () => {\n marker.openPopup();\n });\n const item = leafletRefs[id]?.item;\n document.title = document.title.split(\"-\")[0] + \" - \" + item.name;\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute(\"content\", item.name);\n document.querySelector('meta[property=\"og:description\"]')?.setAttribute(\"content\", item.text);\n }\n }\n }\n }\n\n }\n\n useEffect(() => {\n openPopup();\n }, [leafletRefs, location])\n\n\n return (\n <>\n {items &&\n items.\n filter(item => item.layer?.name === props.name)?.\n filter(item =>\n filterTags.length == 0 ? item : filterTags.every(tag => getItemTags(item).some(filterTag => filterTag.id === tag.id)))?.\n filter(item => {\n return searchPhrase === ''\n ? item :\n item.name.toLowerCase().includes(searchPhrase.toLowerCase()) || item.text.toLowerCase().includes(searchPhrase.toLowerCase())\n }).\n filter(item => item.layer && isLayerVisible(item.layer)).\n map((item: Item) => {\n const tags = getItemTags(item);\n\n let color1 = \"#666\";\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (tags && tags[0]) {\n color1 = tags[0].color;\n }\n if (tags && tags[1]) {\n color2 = tags[1].color;\n }\n return (\n <Marker ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addMarker(item, r);\n }} icon={MarkerIconFactory(props.markerShape, color1, color2, props.markerIcon)} key={item.id} position={[item.position.coordinates[1], item.position.coordinates[0]]}>\n {\n (props.children && React.Children.toArray(props.children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemView\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemView\" ?\n <ItemViewPopup ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addPopup(item, r as Popup);\n }} key={item.id + item.name} item={item} setItemFormPopup={props.setItemFormPopup} >{child}</ItemViewPopup>\n : \"\"\n )\n :\n <>\n <ItemViewPopup key={item.id + item.name} ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addPopup(item, r as Popup);\n }} item={item} setItemFormPopup={props.setItemFormPopup} />\n </>)\n }\n <Tooltip offset={[0, -38]} direction='top'>{item.name}</Tooltip>\n </Marker>\n );\n })\n }\n {//{props.children}}\n }\n {props.itemFormPopup && props.itemFormPopup.layer!.name == props.name &&\n (props.children && React.Children.toArray(props.children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemForm\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemForm\" ?\n <ItemFormPopup key={props.setItemFormPopup?.name} position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} >{child}</ItemFormPopup>\n : \"\"\n )\n :\n <>\n <ItemFormPopup position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} />\n </>)\n }\n </>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { ItemsApi, Tag } from '../../types';\nimport { useAddTag, useSetTagData, useSetTagApi } from './hooks/useTags'\n\nexport function Tags({data, api} : {data?: Tag[], api?: ItemsApi<Tag>}) {\nconst setTagData = useSetTagData();\nconst setTagApi = useSetTagApi();\n\nuseEffect(() => {\n data && setTagData(data); \n api && setTagApi(api); \n}, [api, data])\n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { ItemsApi, Permission } from '../../types';\nimport { useSetPermissionData, useSetPermissionApi, useSetAdminRole } from './hooks/usePermissions'\nimport { useAuth } from '../Auth';\n\nexport function Permissions({data, api, adminRole} : {data?: Permission[], api?: ItemsApi<Permission>, adminRole?: string}) {\nconst setPermissionData = useSetPermissionData();\nconst setPermissionApi = useSetPermissionApi();\nconst setAdminRole = useSetAdminRole();\nconst {user} = useAuth();\n\nuseEffect(() => { \n adminRole && setAdminRole(adminRole);\n data && setPermissionData(data); \n api && setPermissionApi(api); \n}, [api, data, adminRole, user])\n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\n\nexport const ItemForm = ({ children, item }: { children?: React.ReactNode, item?: Item }) => {\n return (\n <div>{\n children ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\n ) : \"\"\n }</div>\n )\n}\n\nItemForm.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n};\n\nItemForm.defaultProps = {\n __TYPE: 'ItemForm',\n};\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\n\nexport const ItemView = ({ children, item }: { children?: React.ReactNode, item?: Item }) => {\n return (\n <div>\n {children ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\n ) : \"\"}\n </div>\n )\n}\n\nItemView.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n};\n\nItemView.defaultProps = {\n __TYPE: 'ItemView',\n};\n","\nimport { useState } from 'react'\nimport InformationCircleIcon from '@heroicons/react/24/outline/InformationCircleIcon'\nimport * as React from 'react';\n\ntype SelectBoxProps = {\n labelTitle?: string;\n labelStyle?: string;\n type?: string;\n containerStyle?: string;\n defaultValue: string;\n placeholder?: string;\n updateFormValue: (value: string ) => void;\n\n options: {name: string, value: string}[];\n labelDescription?: string\n}\n\nexport function SelectBox(props : SelectBoxProps){\n \n const {labelTitle, labelDescription, defaultValue, containerStyle, placeholder, labelStyle, options, updateFormValue} = props\n\n const [value, setValue] = useState(defaultValue || \"\")\n\n\n const updateValue = (newValue: string) =>{\n updateFormValue(newValue)\n setValue(newValue)\n }\n\n\n return (\n <div className={`tw-inline-block ${containerStyle}`}>\n {labelTitle? \n <label className={`tw-label ${labelStyle}`}>\n <div className=\"tw-label-text\">{labelTitle}\n {labelDescription && <div className=\"tw-tooltip tw-tooltip-right\" data-tip={labelDescription}><InformationCircleIcon className='tw-w-4 tw-h-4'/></div>}\n </div>\n </label>\n : \"\"}\n <select className=\"tw-select tw-select-bordered tw-w-full\" value={value} onChange={(e) => updateValue(e.target.value)}>\n <option disabled value=\"PLACEHOLDER\">{placeholder}</option>\n {\n options.map((o, k) => {\n return <option value={o.value || o.name} key={k}>{o.name}</option>\n })\n }\n </select>\n </div>\n )\n}","import * as React from 'react'\nimport { TextAreaInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupTextAreaInput = ({ dataField, placeholder, style, item }:\n {\n dataField: string,\n placeholder: string,\n style?: string,\n item?: Item\n }) => {\n\n return (\n <TextAreaInput defaultValue={item?.text ? item.text : \"\"} dataField={dataField} placeholder={placeholder} inputStyle={style}></TextAreaInput>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupStartEndInput = ({item}:{item?:Item}) => {\n return (\n <div className='tw-grid tw-grid-cols-2 tw-gap-2 tw-mb-5'>\n <TextInput type='date' placeholder='start' dataField='start' inputStyle='tw-text-sm tw-px-2' labelTitle='start' defaultValue={item && item.start? item.start.substring(0, 10) : \"\"} autocomplete='one-time-code'></TextInput>\n <TextInput type='date' placeholder='end' dataField='end' inputStyle='tw-text-sm tw-px-2' labelTitle='end' defaultValue={item && item.end ? item.end.substring(0, 10) : \"\"} autocomplete='one-time-code'></TextInput>\n </div>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../../../types'\n\nexport const StartEndView = ({item} : {item?:Item}) => {\n return (\n <div className=\"tw-flex tw-flex-row tw-mb-4\">\n <div className=\"tw-basis-2/5 tw-flex tw-flex-row\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-4 tw-w-4 tw-mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n <time className='tw-align-middle' dateTime={item && item.start? item.start.substring(0, 10) : \"\"}>{item && item.start? new Date(item.start).toLocaleDateString(): \"\"}</time>\n </div>\n <div className=\"tw-basis-1/5 tw-place-content-center\">\n <span>-</span>\n </div>\n <div className=\"tw-basis-2/5 tw-flex tw-flex-row\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-4 tw-w-4 tw-mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n <time className='tw-align-middle' dateTime={item && item.end? item.end.substring(0, 10) : \"\"}>{item && item.end ? new Date(item.end).toLocaleDateString() : \"\"}</time>\n </div>\n </div>\n )\n}\n\n","import * as React from \"react\";\nimport { MouseEvent, useEffect, useRef } from \"react\";\n\n\nconst isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {\n const r = element.getBoundingClientRect();\n\n return (\n e.clientX > r.left &&\n e.clientX < r.right &&\n e.clientY > r.top &&\n e.clientY < r.bottom\n );\n};\n\ntype Props = {\n title: string;\n isOpened: boolean;\n onClose: () => void;\n children: React.ReactNode;\n};\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\n}: Props) => {\n \n const ref = useRef<HTMLDialogElement>(null);\n\n useEffect(() => {\n if (isOpened) {\n ref.current?.showModal();\n ref.current?.classList.remove(\"tw-hidden\"); \n document.body.classList.add(\"modal-open\"); // prevent bg scroll\n } else {\n ref.current?.close();\n ref.current?.classList.add(\"tw-hidden\"); \n document.body.classList.remove(\"modal-open\");\n }\n }, [isOpened]);\n\n\n return (\n <dialog className='tw-card tw-shadow-xl tw-absolute tw-right-0 tw-top-0 tw-bottom-0 tw-left-0 tw-m-auto tw-transition-opacity tw-duration-300 tw-p-4 tw-max-w-xl'\n \n ref={ref}\n onCancel={onClose}\n onClick={(e) =>\n ref.current && !isClickInsideRectangle(e, ref.current) && onClose()\n }\n >\n <div className=\"tw-card-body tw-p-2\">\n\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>{title}</h2>\n\n {children}\n <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\" onClick={onClose}>✕</button>\n\n </div>\n </dialog>\n );\n};\n\nexport default DialogModal;\n","import { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAuth } from \"../Auth\"\nimport { Link } from \"react-router-dom\";\nimport { toast } from \"react-toastify\";\nimport QuestionMarkIcon from '@heroicons/react/24/outline/QuestionMarkCircleIcon'\nimport * as React from \"react\";\nimport DialogModal from \"../Templates/DialogModal\";\n\n\nexport default function NavBar({ appName}: { appName: string }) {\n\n\n const [signupOpen, setSignupOpen] = useState(false);\n const [loginOpen, setLoginOpen] = useState(false);\n\n\n const [email, setEmail] = useState<string>(\"\");\n const [userName, setUserName] = useState<string>(\"\");\n const [password, setPassword] = useState<string>(\"\");\n\n\n const { isAuthenticated, user, login, register, loading, logout, token } = useAuth();\n\n const navigate = useNavigate();\n\n const onRegister = async () => {\n await toast.promise(\n register({ email: email, password: password }, userName),\n {\n success: {\n render({ data }) {\n navigate(`/`);\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: \"✌️\",\n },\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n pending: 'creating new user ...'\n });\n setSignupOpen(false);\n }\n\n const onLogin = async () => {\n await toast.promise(\n login({ email: email, password: password }),\n {\n success: {\n render({ data }) {\n navigate(`/`);\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: \"✌️\",\n },\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n pending: 'logging in ...'\n });\n setLoginOpen(false);\n }\n\n const onLogout = () => {\n toast.promise(\n logout(),\n {\n success: {\n render() {\n return `Bye bye`\n },\n // other options\n icon: \"👋\",\n },\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n pending: 'logging out ..'\n });\n }\n\n return (\n <>\n <div className=\"tw-navbar tw-bg-base-100 tw-z-1000\">\n <button className=\"tw-btn tw-btn-square tw-btn-ghost\"\n data-te-sidenav-toggle-ref\n data-te-target=\"#sidenav\"\n aria-controls=\"#sidenav\"\n aria-haspopup=\"true\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" className=\"tw-inline-block tw-w-5 tw-h-5 tw-stroke-current\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"></path></svg>\n </button>\n <div className=\"tw-flex-1 tw-mr-2\">\n <div className=\"tw-flex-1 tw-truncate tw-grid tw-grid-flow-col tw-max-w-52\">\n <Link className=\"tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate\" to={\"/\"}><p className=\"tw-truncate\">{appName}</p></Link>\n <button className=\"tw-btn tw-px-2 tw-btn-ghost\" onClick={() => window.my_modal_3.showModal()}><QuestionMarkIcon className=\"tw-h-5 tw-w-5\" /></button>\n\n </div>\n </div>\n\n\n\n {isAuthenticated ?\n <div className=\"tw-flex-none\">\n {user?.avatar ? <div className=\"tw-avatar\">\n <div className=\"tw-w-10 tw-rounded-full\">\n <img src={\"https://api.utopia-lab.org/assets/\" + user?.avatar + \"?access_token=\" + token} />\n </div>\n </div> : <></>}\n <div className='tw-ml-2 tw-mr-2'>{user?.first_name}</div>\n <div className=\"tw-dropdown tw-dropdown-end\">\n <label tabIndex={0} className=\"tw-btn tw-btn-ghost tw-btn-square\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z\" />\n </svg>\n </label>\n <ul tabIndex={0} className=\"tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]\">\n <li><Link to={\"/settings\"}>Settings</Link></li>\n <li><a onClick={() => { onLogout() }}>Logout</a></li>\n </ul>\n </div>\n </div>\n :\n <div>\n\n <div className=\"tw-hidden md:tw-flex\">\n <div onClick={() => setLoginOpen(true)} className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Login\n </div>\n\n <div onClick={() => setSignupOpen(true)} className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Sign Up\n </div>\n </div>\n <div className=\"tw-dropdown tw-dropdown-end\">\n <label tabIndex={1} className=\"tw-btn tw-btn-ghost md:tw-hidden\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z\" />\n </svg>\n\n\n </label>\n <ul tabIndex={1} className=\"tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]\">\n <li><a onClick={() => {setLoginOpen(true)}}>Login</a></li>\n <li><a onClick={() => setSignupOpen(true)}>Sign Up</a></li>\n </ul>\n </div>\n\n </div>\n }\n </div>\n <DialogModal\n title=\"Login\"\n isOpened={loginOpen}\n onClose={() => setLoginOpen(false)}>\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onLogin()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Login'}</button>\n </div>\n </DialogModal>\n <DialogModal\n title=\"Sign Up\"\n isOpened={signupOpen}\n onClose={() => setSignupOpen(false)}>\n <input type=\"text\" placeholder=\"Name\" value={userName} onChange={e => setUserName(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onRegister()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Sign Up'}</button>\n </div>\n </DialogModal>\n </>\n )\n}\n","import { useCallback, useState } from 'react';\n\n\nimport { createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { AssetsApi } from '../../../types';\n\n\n\ntype UseAssetManagerResult = ReturnType<typeof useAssetsManager>;\n\nconst AssetContext = createContext<UseAssetManagerResult>({\n api: {} as AssetsApi,\n setAssetsApi: () => { }\n});\n\nfunction useAssetsManager(): {\n api: AssetsApi;\n setAssetsApi: (api: AssetsApi) => void;\n} {\n const [api, setApi] = useState<AssetsApi>({} as AssetsApi);\n\n const setAssetsApi = useCallback((api: AssetsApi) => {\n setApi(api);\n }, []);\n\n return { api, setAssetsApi };\n}\n\nexport const AssetsProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <AssetContext.Provider value={useAssetsManager()}>\n {children}\n </AssetContext.Provider>\n);\n\nexport const useAssetApi = (): AssetsApi => {\n const { api } = useContext(AssetContext);\n return api;\n};\n\n\nexport const useSetAssetApi = (): UseAssetManagerResult[\"setAssetsApi\"] => {\n const { setAssetsApi } = useContext(AssetContext);\n return setAssetsApi;\n}\n","import * as React from 'react'\nimport { useSetAssetApi } from './hooks/useAssets'\nimport { AssetsApi } from '../../types';\nimport { useEffect } from 'react';\n\nexport const SetAssetsApi = ({assetsApi}:{assetsApi: AssetsApi}) => {\n const setAssetsApi = useSetAssetApi();\n\n useEffect(() => {\n setAssetsApi(assetsApi)\n }, [assetsApi])\n \n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { BrowserRouter } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\nimport { QuestsProvider } from '../Gaming/hooks/useQuests'\nimport { AssetsProvider, useSetAssetApi } from './hooks/useAssets'\nimport { useEffect } from 'react'\nimport { SetAssetsApi } from './SetAssetsApi'\n\nexport function AppShell({ appName, children, assetsApi }) {\n\n\n return (\n <BrowserRouter>\n <AssetsProvider>\n <SetAssetsApi assetsApi={assetsApi}></SetAssetsApi>\n <QuestsProvider initialOpen={false}>\n <ToastContainer position=\"top-right\"\n autoClose={2000}\n hideProgressBar\n newestOnTop={false}\n closeOnClick\n rtl={false}\n pauseOnFocusLoss\n draggable\n pauseOnHover\n theme=\"light\" />\n <NavBar appName={appName}></NavBar>\n <div id=\"app-content\" className=\"tw-flex tw-!pl-[77px]\">\n {children}\n </div>\n </QuestsProvider>\n </AssetsProvider>\n </BrowserRouter>\n )\n}\n","import ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon'\nimport * as React from 'react'\nimport {useEffect, useState} from 'react'\nimport { Link, useLocation } from 'react-router-dom'\n\n\nfunction SidebarSubmenu({submenu, name, icon} : { path: string;\n icon: JSX.Element;\n name: string;\n submenu?: any | undefined}){\n const location = useLocation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n\n /** Open Submenu list if path found in routes, this is for directly loading submenu routes first time */\n useEffect(() => {\n if(submenu.filter(m => {return m.path === location.pathname})[0])setIsExpanded(true)\n }, [])\n\n return (\n <div className='flex-col'>\n\n {/** Route header */}\n <div className='w-full' onClick={() => setIsExpanded(!isExpanded)}>\n {icon} <span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\" data-te-sidenav-slim=\"false\">{name} </span>\n <ChevronDownIcon className={'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' + (isExpanded ? 'rotate-180' : '')}/>\n </div>\n\n {/** Submenu list */}\n <div className={` w-full data-[te-collapse-show]:!hidden `+ (isExpanded ? \"\" : \"hidden\")} >\n <ul className={`menu menu-compact`} >\n {\n submenu.map((m, k) => {\n return(\n <li key={k} >\n <Link to={m.path} className='' >\n {m.icon}<span className=\"\" data-te-sidenav-slim=\"false\">{m.name}</span>\n {\n location.pathname == m.path ? (<span className=\"absolute mt-1 mb-1 inset-y-0 left-0 w-1 rounded-tr-md rounded-br-md bg-primary \"\n aria-hidden=\"true\"></span>) : null\n }\n </Link>\n </li>\n )\n })\n }\n </ul>\n </div>\n </div>\n )\n}\n\nexport default SidebarSubmenu","import { useRef, useState } from 'react'\nimport { useEffect } from 'react'\nimport { NavLink, useLocation } from 'react-router-dom';\nimport {\n Sidenav,\n initTE,\n} from \"tw-elements\";\nimport SidebarSubmenu from './SidebarSubmenu';\nimport ChevronRightIcon from '@heroicons/react/24/outline/ChevronRightIcon';\nimport * as React from 'react';\n\ntype route = {\n path: string;\n icon: JSX.Element;\n name: string;\n submenu?: route;\n blank?: boolean\n}\n\n\nexport function SideBar({ routes, bottomRoutes }: { routes: route[], bottomRoutes?: route[] }) {\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const location = useLocation();\n\n const [instance, setInstance] = useState<any>(null);\n const [slim, setSlim] = useState<boolean>(false);\n\n\n\n const toggleSlim = () => {\n setSlim(!slim);\n instance.toggleSlim();\n }\n\n\n\n useEffect(() => {\n if (!init.current) {\n initTE({ Sidenav });\n const instance = Sidenav.getInstance(\n document.getElementById(\"sidenav\")\n );\n setInstance(instance);\n instance.toggleSlim();\n init.current = true;\n }\n }, [])\n\n return (\n <nav\n id=\"sidenav\"\n className=\"group tw-fixed tw-left-0 tw-mt-16 tw-top-0 tw-z-[1035] tw-h-full tw--translate-x-full tw-overflow-hidden tw-shadow-[0_4px_12px_0_rgba(0,0,0,0.07),_0_2px_4px_rgba(0,0,0,0.05)] data-[te-sidenav-slim='true']:tw-hidden data-[te-sidenav-slim-collapsed='true']:tw-w-[56px] data-[te-sidenav-slim='true']:tw-w-[56px] data-[te-sidenav-hidden='false']:tw-translate-x-0 dark:tw-bg-zinc-800 [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='false']]:tw-hidden [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='true']]:[display:unset]\"\n data-te-sidenav-init\n data-te-sidenav-hidden=\"true\"\n data-te-sidenav-mode=\"side\"\n data-te-sidenav-slim=\"true\"\n data-te-sidenav-content=\"#app-content\"\n data-te-sidenav-slim-collapsed=\"true\"\n data-te-sidenav-slim-width=\"56\"\n data-te-sidenav-width=\"160\">\n <div className='tw-flex tw-flex-col tw-h-full' style={{ height: \"calc(100vh - 64px)\" }}>\n <ul className=\"tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0\" data-te-sidenav-menu-ref>\n {\n routes.map((route, k) => {\n return (\n <li className=\"\" key={k}>\n {\n route.submenu ?\n <SidebarSubmenu {...route} /> :\n (<NavLink\n end\n to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle();\n }}>\n {route.icon}<span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\" data-te-sidenav-slim=\"false\">{route.name}</span>\n {\n location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (<span className=\"tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary \"\n aria-hidden=\"true\"></span>) : null\n }\n </NavLink>)\n }\n\n </li>\n )\n })\n }\n </ul>\n\n <div id=\"slim-toggler\" className='tw-w-full tw-flex-1 tw-grid tw-place-items-end' aria-haspopup=\"true\" >\n <div className='tw-w-full'>\n\n <ul className=\"tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0\" data-te-sidenav-menu-ref>\n {\n bottomRoutes?.map((route, k) => {\n return (\n <li className=\"\" key={k}>\n {\n route.submenu ?\n <SidebarSubmenu {...route} /> :\n (<NavLink\n end\n target={route.blank ? \"_blank\" : \"_self\"}\n to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle();\n }}>\n {route.icon}<span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\" data-te-sidenav-slim=\"false\">{route.name}</span>\n {\n location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (<span className=\"tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary \"\n aria-hidden=\"true\"></span>) : null\n }\n </NavLink>)\n }\n\n </li>\n )\n })\n }\n </ul>\n\n <ChevronRightIcon className={\"tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all \" + (!slim ? \"tw-rotate-180\" : '')} onClick={() => toggleSlim()} />\n\n </div>\n </div>\n </div>\n </nav>\n )\n}\n","import * as React from 'react'\n\ntype ContentProps = {\n children?: React.ReactNode;\n}\n\nexport function Content({children} : ContentProps) {\n return (\n <div className='tw-flex tw-flex-col tw-w-full tw-relative'>\n {children}\n </div>\n\n )\n}\n","import * as React from \"react\"\n\n function Subtitle({styleClass, children}:{styleClass:string, children: React.ReactNode}){\n return(\n <div className={`tw-text-xl tw-font-semibold ${styleClass}`}>{children}</div>\n )\n}\n\nexport default Subtitle","import Subtitle from \"../Typography/Subtitle\"\nimport * as React from \"react\"\n\ninterface TitleCardProps {\n\n title: string,\n children : React.ReactNode,\n topMargin: string,\n className?: string,\n TopSideButtons?: any\n}\n \n export function TitleCard({title, children, topMargin, TopSideButtons, className} : TitleCardProps){\n return(\n <div className={\"tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit \" + (className || \"\") + \" \" + (topMargin || \"tw-mt-6\")}>\n\n {/* Title for Card */}\n <Subtitle styleClass={TopSideButtons ? \"tw-inline-block\" : \"\"}>\n {title}\n\n {/* Top side button, show only if present */}\n {\n TopSideButtons && <div className=\"tw-inline-block tw-float-right\">{TopSideButtons}</div>\n }\n </Subtitle>\n \n <div className=\"tw-divider tw-mt-2\"></div>\n \n {/** Card Body */}\n <div className='tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100'>\n {children}\n </div>\n </div>\n \n )\n }\n","import { useEffect, useRef, useState } from 'react'\nimport { TitleCard } from '../Templates/TitleCard'\nimport { TextInput } from '../Input/TextInput'\nimport { TextAreaInput } from '../Input/TextAreaInput'\nimport { toast } from 'react-toastify';\nimport { useNavigate } from 'react-router-dom'\nimport { useAuth } from '../Auth';\nimport * as React from 'react'\nimport ReactCrop, { Crop, centerCrop, makeAspectCrop } from 'react-image-crop'\nimport 'react-image-crop/dist/ReactCrop.css'\nimport 'react-toastify/dist/ReactToastify.css';\nimport { UserItem } from '../../types';\nimport DialogModal from '../Templates/DialogModal';\nimport { useAssetApi } from '../AppShell/hooks/useAssets';\n\nexport function Settings() {\n const { user, updateUser, loading, token } = useAuth();\n\n const [id, setId] = useState<string>(\"\");\n const [name, setName] = useState<string>(\"\");\n const [text, setText] = useState<string>(\"\");\n const [email, setEmail] = useState<string>(\"\");\n const [password, setPassword] = useState<string>(\"\");\n const [avatar, setAvatar] = useState<string>(\"\");\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false);\n\n const [crop, setCrop] = useState<Crop>();\n const [image, setImage] = useState<string>(\"\");\n const [cropModalOpen, setCropModalOpen] = useState<boolean>(false);\n const [cropping, setCropping] = useState<boolean>(false);\n\n const assetsApi = useAssetApi();\n const navigate = useNavigate();\n\n useEffect(() => {\n setId(user?.id ? user.id : \"\");\n setName(user?.first_name ? user.first_name : \"\");\n setText(user?.description ? user.description : \"\");\n setEmail(user?.email ? user.email : \"\");\n setPassword(user?.password ? user.password : \"\");\n setAvatar(user?.avatar ? user?.avatar : \"\")\n }, [user])\n\n const imgRef = useRef<HTMLImageElement>(null)\n\n const onImageChange = (event) => {\n if (event.target.files && event.target.files[0]) {\n setImage(URL.createObjectURL(event.target.files[0]));\n }\n setCropModalOpen(true);\n }\n\n function onImageLoad(e: React.SyntheticEvent<HTMLImageElement>) {\n const { width, height } = e.currentTarget\n console.log(width);\n\n setCrop(centerAspectCrop(width, height, 1))\n }\n\n\n // This is to demonstate how to make and center a % aspect crop\n // which is a bit trickier so we use some helper functions.\n function centerAspectCrop(\n mediaWidth: number,\n mediaHeight: number,\n aspect: number,\n ) {\n return centerCrop(\n makeAspectCrop(\n {\n unit: 'px',\n width: mediaWidth / 2,\n },\n aspect,\n mediaWidth,\n mediaHeight,\n ),\n mediaWidth,\n mediaHeight,\n )\n }\n\n async function renderCrop() {\n // get the image element\n const image = imgRef.current;\n if (crop && image) {\n\n const scaleX = image.naturalWidth / image.width\n const scaleY = image.naturalHeight / image.height\n\n // create a canvas element to draw the cropped image\n const canvas = new OffscreenCanvas(\n crop.width * scaleX,\n crop.height * scaleY,\n )\n const ctx = canvas.getContext(\"2d\");\n const pixelRatio = window.devicePixelRatio;\n canvas.width = crop.width * pixelRatio * scaleX;\n canvas.height = crop.height * pixelRatio * scaleY;\n\n if (ctx) {\n ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n\n ctx.drawImage(\n image,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width * scaleX,\n crop.height * scaleY\n );\n }\n const blob = await canvas.convertToBlob();\n await resizeBlob(blob);\n setCropping(false);\n setImage(\"\");\n }\n }\n\n async function resizeBlob(blob) {\n var img = new Image();\n img.src = URL.createObjectURL(blob);\n await img.decode();\n const canvas = new OffscreenCanvas(\n 400,\n 400\n )\n var ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(img, 0, 0, 400, 400);\n const resizedBlob = await canvas.convertToBlob()\n const asset = await assetsApi.upload(resizedBlob, \"test\");\n setAvatar(asset.id)\n }\n\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem;\n\n if (passwordChanged) {\n changedUser = { id: id, first_name: name, description: text, email: email, avatar: avatar, password: password };\n }\n else {\n changedUser = { id: id, first_name: name, description: text, email: email, avatar: avatar };\n }\n toast.promise(\n\n updateUser(changedUser),\n {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: 'Error'\n })\n .then(() => navigate(\"/\"));\n }\n\n\n return (\n <>\n <main className=\"tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-8 tw-px-6 tw-bg-base-200 tw-min-w-80 tw-flex tw-justify-center\" >\n <div className='tw-w-full xl:tw-max-w-6xl'>\n <TitleCard title=\"Profile Settings\" topMargin=\"tw-mt-2\" className='tw-mb-6'>\n <div className=\"tw-flex\">\n {!cropping && avatar ?\n <label className=\"custom-file-upload\">\n <input type=\"file\" accept=\"image/*\" className=\"tw-file-input tw-w-full tw-max-w-xs\" onChange={onImageChange} />\n\n <img src={assetsApi.url + avatar + \"?access_token=\" + token} className='tw-w-20 tw-rounded-full' />\n </label>\n\n :\n <span className=\"tw-loading tw-loading-spinner\"></span>\n }\n <TextInput placeholder=\"Name\" defaultValue={user?.first_name ? user.first_name : \"\"} updateFormValue={(v) => setName(v)} containerStyle='tw-grow tw-ml-6 tw-my-auto ' />\n </div>\n\n <div className=\"tw-grid tw-grid-cols-1 tw-md:grid-cols-1 tw-gap-6 tw-pt-6 tw-pb-6\">\n <TextAreaInput placeholder=\"About me, Contact, #Tags, ...\" defaultValue={user?.description ? user.description : \"\"} updateFormValue={(v) => setText(v)} inputStyle='tw-h-64' />\n </div>\n <div className=\"tw-divider\" ></div>\n\n\n <div className=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6\">\n <TextInput type='email' placeholder=\"E-Mail\" defaultValue={user?.email ? user.email : \"\"} updateFormValue={(v) => setEmail(v)} />\n <TextInput type='password' placeholder=\"new Password\" defaultValue={user?.password ? user.password : \"\"} updateFormValue={(v) => {\n setPassword(v);\n setPasswordChanged(true);\n }} />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className=\"tw-mt-8\"><button className={loading ? \" tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right\" : \"tw-btn tw-btn-primary tw-float-right\"} onClick={() => onUpdateUser()}>Update</button></div>\n\n </TitleCard>\n </div>\n </main>\n <DialogModal\n title=\"\"\n isOpened={cropModalOpen}\n onClose={() => {\n setCropModalOpen(false);\n setImage(\"\");\n }}>\n <ReactCrop crop={crop} onChange={(c) => setCrop(c)} aspect={1} >\n <img src={image} ref={imgRef} onLoad={onImageLoad} />\n </ReactCrop>\n <button className={`tw-btn `} onClick={() => {\n setCropping(true);\n setCropModalOpen(false);\n renderCrop();\n }}>Select</button>\n </DialogModal>\n </>\n )\n}\n","import { useState } from \"react\"\nimport * as React from \"react\"\nimport { useSetQuestOpen } from \"./hooks/useQuests\"\n\ntype ChapterProps = {\n clickAction?: () => void\n}\n\n\nexport function Welcome1({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">Welcome, glad you are here!</h3>\n <img className=\"tw-float-right tw-w-32 tw-m-2\" src=\"earth.svg\"></img>\n <p className=\"tw-py-3\">\n In the 21st century, humanity is at a special point in its history. \n </p>\n <p className=\"tw-py-1\">\n On the one hand, the people of Planet Earth are facing a multitude of fundamental crises.\n </p>\n <p className=\"tw-py-1\">\n On the other hand, we have all the knowledge and technology to heal the planet and live in harmony with Mother Earth. </p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn\" onClick={() => clickAction!()}>Next</label>\n\n </div>\n </>\n )\n}\n\nexport function Welcome2({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\"> Hypnosis and Disillusion </h3>\n \n <p className=\"tw-py-3\">\n Most people are still stuck in old ways of thinking and living. </p>\n <img className=\"tw-float-right tw-w-32 tw-mx-4 tw-my-2\" src=\"fear2.svg\"></img>\n\n <p className=\"tw-py-1\">\n Hypnotised, they sit in front of screens in concrete blocks, flooded and disillusioned by irrelevant information.\n </p>\n\n <p className=\"tw-py-1\">\n From an early age, they are trained to do alienated work and consume unhealthy and meaningless products.\n </p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn\" onClick={() => clickAction!()}>next</label>\n </div>\n </>\n )\n}\n\nexport function Welcome3({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">But Consciousness is rising </h3>\n <p className=\"tw-py-3\">\n More and more people are waking up to what's really happening. </p>\n <p className=\"tw-py-1\">\n They are in the process of understanding the potential that is within themselves and within the whole mankind.\n </p>\n <img className=\"tw-float-left tw-w-32 tw-mx-4\" src=\"camp3.svg\"></img>\n\n <p className=\"tw-py-1\">\n Starting to reconnect with our Mother Earth and beginning to question things that long times have been taken for granted. \n </p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn\" onClick={() => clickAction!()}>next</label>\n </div>\n </>\n )\n}\n\nexport function Welcome4({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\"> Gemeinsam erschaffen wir Strukturen </h3>\n <ul className='tw-flex-row tw-pl-4 tw-mt-4'>\n <li>🥕 Essen & Trinken</li>\n <li>🏡 Wohn- & Lebensraum</li>\n <li>💬 Kommunikation</li>\n <li>💡 Energie</li>\n <li>🚐 Mobilität</li>\n </ul>\n <div className=\"tw-modal-action\">\n <button className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Ich mach mit</button>\n </div>\n </>\n )\n}\n\nconst close = () => {\n window.my_modal_3.close();\n}\n\n\nexport function Modal() {\n\n const [chapter, setChapter] = useState<number>(1);\n const setQuestsOpen = useSetQuestOpen();\n\n\n\n const ActiveChapter = () => {\n switch (chapter) {\n case 1:\n return <Welcome1 clickAction={() => { setChapter(2) }} />\n case 2:\n return <Welcome2 clickAction={() => { setChapter(3) }} />\n case 3:\n return <Welcome3 clickAction={() => {\n \n close();\n setTimeout(() => {\n setQuestsOpen(true);\n setChapter(1);\n }, 1000);\n \n }} />\n default: return <></>\n };\n };\n\n return (\n <>\n\n {/* You can open the modal using ID.showModal() method */}\n <dialog id=\"my_modal_3\" className=\"tw-modal tw-transition-all tw-duration-300\">\n <form method=\"dialog\" className=\"tw-modal-box tw-transition-none\">\n <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\">✕</button>\n <ActiveChapter />\n </form>\n <form method=\"dialog\" className=\"tw-modal-backdrop\">\n <button>close</button>\n </form>\n </dialog>\n </>\n )\n}\n\n","import * as React from 'react'\nimport { useQuestsOpen, useSetQuestOpen } from './hooks/useQuests';\nimport { useEffect } from 'react';\nimport { useAuth } from '../Auth';\n\nexport function Quests() {\n\n const questsOpen = useQuestsOpen();\n const setQuestsOpen = useSetQuestOpen();\n const { isAuthenticated, user } = useAuth();\n\n return (\n <>{questsOpen? \n <div className=\"tw-card tw-w-48 tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-[2000]\">\n <div className=\"tw-card-body tw-p-4 tw-pt-0\">\n <div className=\"tw-card-actions tw-justify-end\">\n <label className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\" onClick={()=>setQuestsOpen(false)}>✕</label>\n </div>\n <h2 className=\"tw-card-title tw-m-auto \">Level 1</h2>\n <ul className='tw-flex-row'>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isAuthenticated? isAuthenticated : false}/><span className='tw-text-sm tw-label-text tw-mx-2'>Sign Up</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={user?.description? true : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Fill Profile</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={user?.avatar? true : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Upload Avatar</span></label></li>\n </ul>\n{ /** <button className='tw-btn tw-btn-xs tw-btn-neutral tw-w-fit tw-self-center tw-mt-1'>Next ></button> */\n} </div>\n </div>\n : \"\" \n }\n </>\n )\n\n\n}\n","import { Link } from \"react-router-dom\"\nimport * as React from \"react\"\nimport {TitleCard} from \"./TitleCard\"\n\n\nexport function CardPage({title,children, parent} : { \n title: string,\n children?: React.ReactNode,\n parent?: {name: string, url: string}\n}) {\n\n\n return (\n <main className=\"tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-2 tw-px-6 tw-bg-base-200 tw-min-w-80 tw-flex tw-justify-center\" >\n <div className='tw-w-full xl:tw-max-w-6xl '>\n <div className=\"tw-text-sm tw-breadcrumbs\">\n <ul>\n <li><Link to={'/'} >Home</Link></li>\n {parent && <li><Link to={parent?.url ? parent?.url : \"\"}>{parent?.name}</Link></li>}\n <li>{title}</li>\n </ul>\n </div>\n <TitleCard title={title} topMargin=\"tw-my-2\" className=\" tw-mb-4\">\n {children}\n </TitleCard>\n </div>\n </main>\n )\n}\n"],"names":["LeafletPopup"],"mappings":"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"}
|