utopia-ui 3.0.0-alpha.3 → 3.0.0-alpha.30
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/README.md +19 -5
- package/dist/Components/AppShell/AppShell.d.ts +2 -2
- package/dist/Components/AppShell/NavBar.d.ts +1 -2
- package/dist/Components/AppShell/SetAssetsApi.d.ts +5 -0
- package/dist/Components/AppShell/SideBar.d.ts +3 -1
- package/dist/Components/AppShell/hooks/useAssets.d.ts +13 -0
- package/dist/Components/Auth/useAuth.d.ts +2 -2
- package/dist/Components/Gaming/Modal.d.ts +1 -0
- package/dist/Components/Gaming/hooks/useQuests.d.ts +13 -0
- package/dist/Components/Input/SelectBox.d.ts +17 -0
- package/dist/Components/Input/TextInput.d.ts +2 -1
- package/dist/Components/Input/index.d.ts +1 -0
- package/dist/Components/Map/ItemForm.d.ts +14 -4
- package/dist/Components/Map/ItemView.d.ts +14 -4
- package/dist/Components/Map/Permissions.d.ts +7 -0
- package/dist/Components/Map/Subcomponents/AddButton.d.ts +2 -2
- package/dist/Components/Map/Subcomponents/Control.d.ts +4 -0
- package/dist/Components/Map/Subcomponents/FilterControl.d.ts +2 -0
- package/dist/Components/Map/Subcomponents/ItemFormPopup.d.ts +1 -2
- package/dist/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.d.ts +3 -1
- package/dist/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.d.ts +7 -1
- package/dist/Components/Map/Subcomponents/ItemViewPopup.d.ts +3 -1
- package/dist/Components/Map/Subcomponents/LayerControl.d.ts +2 -0
- package/dist/Components/Map/Subcomponents/QuestControl.d.ts +2 -0
- package/dist/Components/Map/Tags.d.ts +4 -3
- package/dist/Components/Map/UtopiaMap.d.ts +2 -2
- package/dist/Components/Map/hooks/useFilter.d.ts +32 -0
- package/dist/Components/Map/hooks/useItems.d.ts +4 -0
- package/dist/Components/Map/hooks/useLeafletRefs.d.ts +22 -0
- package/dist/Components/Map/hooks/usePermissions.d.ts +20 -0
- package/dist/Components/Map/hooks/useTags.d.ts +7 -1
- package/dist/Components/Map/hooks/useWindowDimension.d.ts +4 -0
- package/dist/Components/Map/index.d.ts +2 -0
- package/dist/Components/Profile/ColorPicker.d.ts +7 -0
- package/dist/Components/Profile/Settings.d.ts +2 -3
- package/dist/Components/Profile/useClickOutside.d.ts +2 -0
- package/dist/Components/Templates/CardPage.d.ts +5 -1
- package/dist/Components/Templates/DialogModal.d.ts +9 -0
- package/dist/Components/Templates/TitleCard.d.ts +2 -1
- package/dist/Components/Typography/Subtitle.d.ts +3 -3
- package/dist/Utils/DynamicHeroIcon.d.ts +2 -0
- package/dist/Utils/HashTagRegex.d.ts +1 -0
- package/dist/Utils/RandomColor.d.ts +1 -0
- package/dist/Utils/ReplaceURLs.d.ts +3 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1607 -590
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +25 -6
- package/package.json +10 -3
- package/dist/Components/Auth/authDirectus.d.ts +0 -24
- package/dist/Components/Input/InputText.d.ts +0 -13
- package/dist/Components/Map/ItemFormPopup.d.ts +0 -12
- package/dist/Components/Map/ItemViewPopup.d.ts +0 -8
- package/dist/Components/Map/Subcomponents/HeaderView.d.ts +0 -7
- package/dist/Components/Map/Subcomponents/StartEndView.d.ts +0 -6
- package/dist/Components/Map/Subcomponents/TextView.d.ts +0 -5
- package/dist/Components/TitleCard.d.ts +0 -9
- package/dist/Utils/HeighlightTags.d.ts +0 -2
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/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/MarkerIconFactory.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Utils/ReplaceURLs.ts","../src/Utils/HeighlightTags.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/types.ts","../src/Components/Input/TextAreaInput.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Map/Subcomponents/ItemFormPopup.tsx","../src/Components/Map/Layer.tsx","../src/Components/Map/Tags.tsx","../src/Components/Map/ItemForm.tsx","../src/Components/Map/ItemView.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/Auth/useAuth.tsx","../src/Components/Typography/ErrorText.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.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}> = (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=\"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 { Item, LayerProps } from \"../../../types\";\n\ntype ActionType =\n | { type: \"ADD LAYER\"; layer: LayerProps }\n | { type: \"ADD ITEM\"; item: Item; 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 * as React from 'react'\nimport DynamicHeroIcon from '../../../Utils/DynamicHeroIcon'\nimport { useLayers } from '../hooks/useLayers'\n\n\nexport default function AddButton({setSelectMode} : {setSelectMode: React.Dispatch<React.SetStateAction<any>>}) {\n\n const layers = useLayers();\n \n return (\n <div className=\"tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-5 tw-bottom-5\" >\n <button tabIndex={0} className=\"tw-z-500 tw-border-0 tw-m-0 tw-mt-2 tw-p-0 tw-w-14 tw-h-14 tw-cursor-pointer tw-bg-white tw-rounded-full hover:tw-bg-gray-100 tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none\">\n <svg viewBox=\"0 0 20 20\" enableBackground=\"new 0 0 20 20\" className=\"tw-w-6 tw-h-6 tw-inline-block\">\n <path fill=\"#2e8555\" d=\"M16,10c0,0.553-0.048,1-0.601,1H11v4.399C11,15.951,10.553,16,10,16c-0.553,0-1-0.049-1-0.601V11H4.601\n C4.049,11,4,10.553,4,10c0-0.553,0.049-1,0.601-1H9V4.601C9,4.048,9.447,4,10,4c0.553,0,1,0.048,1,0.601V9h4.399\n C15.952,9,16,9.447,16,10z\" />\n </svg>\n </button>\n <ul tabIndex={0} className=\"tw-dropdown-content tw-pr-2 tw-mb-0 tw-list-none\">\n {layers.map((layer) => (\n layer.api?.createItem && (\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-2 tw-mt-2 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={() => { setSelectMode(layer) }}>\n <DynamicHeroIcon 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 } from \"react\";\nimport * as React from \"react\";\nimport { Item, LayerProps } from \"../../../types\";\n\ntype ActionType =\n| { type: \"ADD\"; item: Item }\n| { type: \"UPDATE\"; item: Item }\n| { type: \"REMOVE\"; item: Item }\n| { type: \"RESET\"; layer: LayerProps };\n\ntype UseItemManagerResult = ReturnType<typeof useItemsManager>;\n\nconst ItemContext = createContext<UseItemManagerResult>({\n items: [],\n addItem: () => {},\n updateItem: () => {},\n removeItem: () => {},\n resetItems: () => {}\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} {\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 const addItem = useCallback((item: Item) => {\n dispatch({\n type: \"ADD\",\n item,\n });\n }, []);\n\n const updateItem = useCallback((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 return { items, updateItem, addItem, removeItem, resetItems };\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}; ","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Tag } from \"../../../types\";\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});\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[];\n addTag: (tag: Tag) => void;\n removeTag: (id: string) => void;\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 === action.tag.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.tag,\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 }, initialTags);\n\n const addTag = useCallback((tag: Tag) => {\n dispatch({\n type: \"ADD\",\n tag,\n });\n }, []);\n\n const removeTag = useCallback((id: string) => {\n dispatch({\n type: \"REMOVE\",\n id,\n });\n }, []);\n return { tags, addTag, removeTag };\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};","import { TileLayer, MapContainer, useMapEvents } from \"react-leaflet\";\nimport \"leaflet/dist/leaflet.css\";\nimport * as React from \"react\";\nimport { Tag, ItemsApi, 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\";\n\n\nexport interface MapEventListenerProps {\n selectMode: LayerProps | null,\n setSelectMode: React.Dispatch<any>,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\nfunction MapEventListener(props: MapEventListenerProps) {\n useMapEvents({\n click: (e) => {\n\n console.log(e.latlng.lat + ',' + e.latlng.lng);\n if (props.selectMode != null) {\n props.setItemFormPopup({ layer: props.selectMode, position: e.latlng })\n props.setSelectMode(null)\n }\n },\n resize: () => {\n console.log(\"resize\");\n\n }\n })\n return null\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 const [selectMode, setSelectMode] = useState<LayerProps | null>(null);\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n\n\n return (\n <LayersProvider initialLayers={[]}>\n <TagsProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <div className={(selectMode != null ? \"crosshair-cursor-enabled\" : undefined)}>\n <MapContainer ref={mapDivRef} style={{ height: height, width: width }} center={center} zoom={zoom}>\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 showCoverageOnHover chunkedLoading maxClusterRadius={50}>\n {\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>, itemFormPopup: ItemFormPopupProps | null }>(child) && typeof child.type !== \"string\" && child.type.name === \"Layer\" ?\n React.cloneElement(child, { setItemFormPopup: setItemFormPopup, itemFormPopup: itemFormPopup }) : child\n )\n }\n </MarkerClusterGroup>\n <MapEventListener setSelectMode={setSelectMode} selectMode={selectMode} setItemFormPopup={setItemFormPopup} />\n <AddButton setSelectMode={setSelectMode}></AddButton>\n </MapContainer>\n {selectMode != null &&\n <div className=\"tw-button tw-z-500 tw-absolute tw-right-5 tw-top-20 tw-drop-shadow-md\">\n <div className=\"tw-alert tw-bg-white tw-text-green-900\">\n <div>\n <span>Select {selectMode.name} position!</span>\n </div>\n </div>\n </div>\n }\n </div>\n </ItemsProvider>\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\";\n\n\n\nexport function HeaderView({item, setItemFormPopup}: {\n item : Item,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}) {\n\n const removeItem = useRemoveItem();\n \n const map = useMap();\n\n const removeItemFromMap = (event: React.MouseEvent<HTMLElement>) => {\n item.api?.deleteItem!(item.id)\n .then( () => removeItem(item))\n .then(()=> map.closePopup())\n .catch(err => console.log(err));\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 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.api &&\n <div className=\"tw-dropdown tw-dropdown-bottom\">\n <label tabIndex={0} className=\"tw-btn tw-m-1 tw-bg-white hover:tw-bg-white tw-text-gray-500 hover:tw-text-gray-700 tw-leading-3 tw-border-none tw-min-h-0 tw-h-4\">\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.api.updateItem && <li>\n <a className='tw-bg-white hover:tw-bg-gray-300 !tw-text-blue-800 hover:tw-text-gray-700' 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.api.deleteItem && <li>\n <a className='tw-bg-white hover:tw-bg-gray-300 !tw-text-red-800 hover:tw-text-red-950' onClick={removeItemFromMap}>\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 function replaceURLs(message: string): string {\n if (!message) return \"\";\n \n const urlRegex = /(^| )(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,10})?(\\/.*)?$/gm;\n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '');\n if (!hyperlink.match('^https?:\\/\\/')) {\n hyperlink = 'http://' + hyperlink;\n }\n return '<a href=\"' + hyperlink + '\" target=\"_blank\" rel=\"noopener noreferrer\">' + url + '</a>'\n });\n \n const mailRegex = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/gi;\n message = message.replace(mailRegex, function (mail) {\n return '<a href=\"mailto:' + mail + '\">' + mail + '</a>'\n });\n \n return message;\n }","import { Tag } from \"../types\";\n\nexport function heighlightTags(message: string, tags: Tag[]): string {\n if (!message) return \"\";\n\n \n \n\n const hashTagRegex = /(^|\\B)#(?![0-9_]+\\b)([a-zA-Z0-9_]{1,30})(\\b|\\r)/g;\n message = message.replace(hashTagRegex, function (string) {\n const tag = tags.find(t => t.id.toLowerCase() == string.slice(1).toLowerCase())\n return `<span style=\"background-color: ${tag ? tag.color : '#aaa' };padding: 0px 5px;border-radius: 7px;cursor: pointer;color:#fff\">` + string + '</span>'\n });\n \n return message;\n }","import * as React from 'react'\nimport { Item } from '../../../../types'\nimport { useTags } from '../../hooks/useTags';\nimport { replaceURLs } from '../../../../Utils/ReplaceURLs';\nimport { heighlightTags } from '../../../../Utils/HeighlightTags';\n\nexport const TextView = ({item} : {item?: Item}) => {\n const all_tags = useTags();\n\n return (\n <p style={{ whiteSpace: \"pre-wrap\" }} className=\"!tw-m-0 !tw-mb-2\" dangerouslySetInnerHTML={{ __html: replaceURLs(heighlightTags(item && item.text ? item.text:\"\", all_tags)) }} />\n\n )\n}\n","import * as React from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { Item } from '../../../types'\nimport { ItemFormPopupProps } from './ItemFormPopup'\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\nimport { StartEndView } from './ItemPopupComponents/StartEndView'\nimport { TextView } from './ItemPopupComponents/TextView'\n\nexport interface ItemViewPopupProps {\n item: Item,\n children?: React.ReactNode;\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\n\n\nexport const ItemViewPopup = (props: ItemViewPopupProps) => {\n const item: Item = props.item;\n\n return (\n <LeafletPopup maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 5]}>\n <div>\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 } 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 tags?: Tag[],\n api?: ItemsApi<any>,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,\n itemFormPopup?: ItemFormPopupProps | null\n}\n\nexport class Item {\n id: string | number;\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 tags?: number[];\n api?: ItemsApi<any>;\n [key: string]: any;\n constructor(id:string|number,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}\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 first_name: string;\n description: string;\n email: string;\n password?: string;\n}","import { useEffect, useState } from \"react\"\nimport * as React from \"react\"\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\n\n\nexport function TextAreaInput({ labelTitle, dataField, labelStyle, containerStyle, inputStyle, defaultValue, placeholder, updateFormValue }: TextAreaProps) {\n\n\n\n\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 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","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 updateFormValue?: (value: string ) => void;\n}\n\n\nexport function TextInput({labelTitle, labelStyle, type, dataField, containerStyle, inputStyle, defaultValue, placeholder, 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 type={type || \"text\"} name={dataField} defaultValue={defaultValue} placeholder={placeholder || \"\"} 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 * 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'\n\nexport interface ItemFormPopupProps {\n position: LatLng,\n layer: LayerProps,\n item?: Item,\n api?: ItemsApi<any>,\n children?: React.ReactNode,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n\n const formRef = useRef<HTMLFormElement>(null);\n\n\n const [spinner, setSpinner] = useState(false);\n\n const map = useMap();\n const addItem = useAddItem();\n const updateItem = useUpdateItem();\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 if (props.item) {\n formItem['id'] = props.item.id;\n await props.api?.updateItem!(formItem);\n formItem['api'] = props.api;\n formItem['layer'] = props.layer;\n await updateItem(formItem);\n setSpinner(false);\n map.closePopup();\n }\n else {\n formItem['id'] = crypto.randomUUID();\n await props.api?.createItem!(formItem);\n formItem['api'] = props.api;\n formItem['layer'] = props.layer;\n await addItem(formItem);\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\n\n useEffect(() => {\n resetPopup();\n }, [props.position])\n\n return (\n <LeafletPopup minWidth={275} maxWidth={275} autoPanPadding={[20, 5]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n\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-2'></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 }) : \"\"\n )\n\n :\n <>\n <TextAreaInput 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 } from 'react-leaflet'\nimport { Item, Tag, LayerProps } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\nimport { useTags } from './hooks/useTags'\nimport { useAddItem, useItems, useResetItems } from './hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { useAddLayer } from './hooks/useLayers'\nimport { ItemFormPopupProps, ItemFormPopup } from './Subcomponents/ItemFormPopup'\n\nexport const Layer = (props: LayerProps) => {\n\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n\n const tags = useTags();\n\n\n\n\n\n // create a JS-Map with all Tags \n const tagMap = new Map(tags?.map(key => [key.id, key]));\n\n\n\n // returns all tags for passed item\n const getTags = (item: Item) => {\n const regex = /(^|\\B)#(?![0-9_]+\\b)([a-zA-Z0-9_]{1,30})(\\b|\\r)/g;\n const strings = item.text.toLocaleLowerCase().match(regex);\n const tags: Tag[] = [];\n strings?.map(tag => {\n if (tagMap.has(tag.slice(1))) { tags.push(tagMap.get(tag.slice(1))!) }\n })\n\n return tags;\n };\n\n\n\n\n const items = useItems();\n const addItem = useAddItem()\n const addLayer = useAddLayer();\n const resetItems = useResetItems();\n\n useEffect(() => {\n resetItems(props);\n\n props.data?.map(item => {\n if (item.position) {\n item.layer = props;\n addItem(item);\n }\n })\n\n props.api?.getItems().then(result => {\n if (result) {\n result.map(item => {\n if (item.position) {\n addItem(({ layer: props, api: props.api, ...item }));\n }\n });\n }\n })\n if (props.api || props.api) {\n addLayer(props);\n }\n\n }, [props.data, props.api])\n\n\n return (\n <>\n {items &&\n items.filter(item => item.layer?.name === props.name)?.map((place: Item) => {\n const tags = getTags(place);\n let color1 = \"#666\";\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (tags[0]) {\n color1 = tags[0].color;\n }\n if (tags[1]) {\n color2 = tags[1].color;\n }\n return (\n <Marker icon={MarkerIconFactory(props.markerShape, color1, color2, props.markerIcon)} key={place.id} position={[place.position.coordinates[1], place.position.coordinates[0]]}>\n\n\n\n {\n (props.children && React.Children.toArray(props.children).some(e => React.isValidElement(e) && typeof e.type !== \"string\" && e.type.name === \"ItemView\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && typeof child.type !== \"string\" && child.type.name === \"ItemView\" ?\n <ItemViewPopup key={place.id} item={place} setItemFormPopup={props.setItemFormPopup} >{child}</ItemViewPopup>\n : \"\"\n )\n :\n <>\n <ItemViewPopup item={place} setItemFormPopup={props.setItemFormPopup} />\n </>)\n }\n\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(e => React.isValidElement(e) && typeof e.type !== \"string\" && e.type.name === \"ItemForm\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && typeof child.type !== \"string\" && child.type.name === \"ItemForm\" ?\n <ItemFormPopup key={props.setItemFormPopup?.name} position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} api={props.api} >{child}</ItemFormPopup>\n : \"\"\n )\n :\n <>\n <ItemFormPopup position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} api={props.api} />\n </>)\n }\n </>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { Tag } from '../../types';\nimport { useAddTag } from './hooks/useTags'\n\nexport function Tags({data} : {data: Tag[]}) {\nconst addTag = useAddTag();\nuseEffect(() => {\n data.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n addTag(tag)\n })\n}, [addTag, data])\n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../types'\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","import * as React from 'react'\nimport { Item } from '../../types'\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","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) : \"\"}></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) : \"\"}></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 tw-mt-2\">\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'\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\";\n//import { useAuth } from \"../api/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, useAuth }: { appName: string, useAuth: any }) {\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 onRegister = async () => {\n await toast.promise(\n register({ email: email, password: password }, userName),\n {\n success: {\n render({ data }) {\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: \"✌️\",\n },\n error: 'Error',\n pending: '123 ...'\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 return `Hi ${data?.first_name}`\n },\n // other options\n icon: \"✌️\",\n },\n error: 'Error',\n pending: '123 ...'\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: 'Error',\n pending: '123 ...'\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://map.api.free-planet-earth.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-[1500]\">\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-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-[1500]\">\n <li><a onClick={() => setLoginOpen(true)}>Login</a></li>\n <li><a onClick={() => setSignupOpen(true)}>Sign In</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, useAuth, 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} useAuth={useAuth}></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}\n\n\nexport function SideBar({routes} : {routes : 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-bg-white 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={ () => {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\n {/* \n <li className=\"relative\">\n <a\n className=\"flex h-12 cursor-pointer items-center truncate rounded-[5px] px-6 py-4 text-[0.875rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref>\n <span\n className=\"mr-4 [&>svg]:h-4 [&>svg]:w-4 [&>svg]:text-gray-400 dark:[&>svg]:text-gray-300\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className=\"h-4 w-4\">\n <path\n fillRule=\"evenodd\"\n d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm-2.625 6c-.54 0-.828.419-.936.634a1.96 1.96 0 00-.189.866c0 .298.059.605.189.866.108.215.395.634.936.634.54 0 .828-.419.936-.634.13-.26.189-.568.189-.866 0-.298-.059-.605-.189-.866-.108-.215-.395-.634-.936-.634zm4.314.634c.108-.215.395-.634.936-.634.54 0 .828.419.936.634.13.26.189.568.189.866 0 .298-.059.605-.189.866-.108.215-.395.634-.936.634-.54 0-.828-.419-.936-.634a1.96 1.96 0 01-.189-.866c0-.298.059-.605.189-.866zm2.023 6.828a.75.75 0 10-1.06-1.06 3.75 3.75 0 01-5.304 0 .75.75 0 00-1.06 1.06 5.25 5.25 0 007.424 0z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim=\"false\"\n >Category 1</span>\n <span\n className=\"absolute right-0 ml-auto mr-[0.5rem] transition-transform duration-300 ease-linear motion-reduce:transition-none [&>svg]:text-gray-600 dark:[&>svg]:text-gray-300\"\n data-te-sidenav-rotate-icon-ref>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n className=\"h-5 w-5\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n </a>\n <ul\n className=\"!visible relative m-0 hidden list-none p-0 data-[te-collapse-show]:block \"\n data-te-sidenav-collapse-ref>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 2</a>\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 3</a>\n </li>\n </ul>\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-12 cursor-pointer items-center truncate rounded-[5px] px-6 py-4 text-[0.875rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref>\n <span\n className=\"mr-4 [&>svg]:h-4 [&>svg]:w-4 [&>svg]:text-gray-400 dark:[&>svg]:text-gray-300\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className=\"h-4 w-4\">\n <path\n fillRule=\"evenodd\"\n d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm-2.625 6c-.54 0-.828.419-.936.634a1.96 1.96 0 00-.189.866c0 .298.059.605.189.866.108.215.395.634.936.634.54 0 .828-.419.936-.634.13-.26.189-.568.189-.866 0-.298-.059-.605-.189-.866-.108-.215-.395-.634-.936-.634zm4.314.634c.108-.215.395-.634.936-.634.54 0 .828.419.936.634.13.26.189.568.189.866 0 .298-.059.605-.189.866-.108.215-.395.634-.936.634-.54 0-.828-.419-.936-.634a1.96 1.96 0 01-.189-.866c0-.298.059-.605.189-.866zm2.023 6.828a.75.75 0 10-1.06-1.06 3.75 3.75 0 01-5.304 0 .75.75 0 00-1.06 1.06 5.25 5.25 0 007.424 0z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim=\"false\"\n >Category 2</span\n >\n <span\n className=\"absolute right-0 ml-auto mr-[0.5rem] transition-transform duration-300 ease-linear motion-reduce:transition-none [&>svg]:text-gray-600 dark:[&>svg]:text-gray-300\"\n data-te-sidenav-rotate-icon-ref>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n className=\"h-5 w-5\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n </a>\n <ul\n className=\"show !visible relative m-0 hidden list-none p-0 data-[te-collapse-show]:block \"\n data-te-sidenav-collapse-ref>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 4</a\n >\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 5</a\n >\n </li>\n </ul>\n </li>\n */}\n </ul>\n <div id=\"slim-toggler\" className='tw-w-full tw-pr-4 tw-flex-1 tw-grid tw-place-items-end' aria-haspopup=\"true\" >\n \n <ChevronRightIcon className={\"tw-w-5 tw-h-5 tw-mb-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all \" + (!slim ? \"tw-rotate-180\" : '')} onClick={ () => toggleSlim()}/>\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 { 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: () => void,\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: () => { },\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 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 console.log(error.response.data.error[0]);\n return error.response.data.error[0];\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 console.log(error);\n return error.response.data.error[0];\n };\n }\n\n\n const logout = async () => {\n await userApi.logout();\n setUser(null);\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\n } catch (error: any) {\n setLoading(false);\n return error.response.data.error[0];\n }\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 {useState, useRef} 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, useRef } 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 * as React from \"react\"\n\n function Subtitle({styleClass, children}){\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 TopSideButtons?: any\n}\n \n export function TitleCard({title, children, topMargin, TopSideButtons} : TitleCardProps){\n return(\n <div className={\"tw-card tw-w-full tw-p-6 tw-mb-16 tw-bg-base-100 tw-shadow-xl tw-h-fit \" + (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-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 * as React from 'react'\n\nimport 'react-toastify/dist/ReactToastify.css';\n\nexport function Settings({useAuth}) {\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 = {};\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\">Herzlich Willkommen, schön dass du da bist! </h3>\n <p className=\"tw-py-4\">\n Wir erschaffen zusammen eine Welt, in der wir frei und menschlich zusammen leben dürfen.\n Dafür bauen wir ein Netzwerk in dem wir uns im echten Leben begegnen und helfen\n ... ganz ohne Geld 😉\n <br /><br />\n <b>Hast du Lust mitzumachen?</b></p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Bin dabei</label>\n </div>\n </>\n )\n}\n\nexport function Welcome2({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">Veränderung passiert im echten Leben</h3>\n <p className=\"tw-py-4\">\n Mal ganz ehrlich: 99% unser Zeit am Bildschirm ist sinnlose Zeit- und Energie-Verschwendung.\n <br /><br />\n Darum tauchen wir wieder in das echte Leben ein und nutzen digitale Medien nur dort, wo sie uns wirklich helfen in echt zusammen zu kommen</p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Alles klar</label>\n </div>\n </>\n )\n}\n\nexport function Welcome3({ 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\n\nexport function Modal() {\n\n const [chapter, setChapter] = useState<number>(1);\n\n const close = () => {\n window.my_modal_3.close();\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\n","import * as React from 'react'\n\nexport function Quests() {\n\n const [open, setOpen] = React.useState(true);\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-1000\">\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 /><span className='tw-text-sm tw-label-text tw-mx-2'>Registrieren</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 /><span className='tw-text-sm tw-label-text tw-mx-2'>Avatar hochladen</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\" disabled /><span className='tw-text-sm tw-label-text tw-mx-2'>Profil ausfüllen</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\" disabled /><span className='tw-text-sm tw-label-text tw-mx-2'>Gruppe beitreten</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} : { \n title: string,\n children?: React.ReactNode,\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 <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/AppShell/hooks/useAssets.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/PopupTextInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx","../src/Components/Templates/DialogModal.tsx","../src/Components/AppShell/NavBar.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/useClickOutside.tsx","../src/Components/Profile/ColorPicker.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=\"currentColor\" 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=\"currentColor\" 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 }, []);\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\" fill=\"currentColor\" stroke=\"currentColor\" 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 { 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 case \"user\":\n return '<svg fill=\"#fff\" class=\"user-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.5em\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"/></svg>'\n case \"fire\":\n return '<svg fill=\"#fff\" class=\"fire-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 19.534 26.387\"><path d=\"M7.15 26.05C2.894 24.876.006 21.028.006 16.53c0-4.036 2.718-8.378 4.38-6.999.289.24.383.993.383 3.074 0 3.3.46 4.508 1.997 5.237 2.512 1.192 5.206-1.18 4.506-3.969-.097-.386-.99-1.562-1.986-2.614C7.04 8.887 6.583 8.026 6.583 6.176c0-2.333 2.02-6.182 3.244-6.182.59 0 1.292.98 1.292 1.805 0 1.227.951 2.596 3.727 5.362 3.655 3.642 4.493 5.216 4.671 8.776.143 2.847-.365 4.593-1.93 6.644-2.332 3.054-6.69 4.503-10.437 3.47z\"/></svg>'\n case \"tree\":\n return '<svg svg fill=\"#fff\" class=\"tree-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"2em\" xml:space=\"preserve\" viewBox=\"0 0 24 24\"><path d=\"M11 21v-4.3c-.5.2-1 .3-1.5.3C7 17 5 15 5 12.5c0-1.3.5-2.4 1.4-3.2-.3-.6-.4-1.2-.4-1.8C6 5 8 3 10.5 3c1.6 0 2.9.8 3.8 2h.2c3 0 5.5 2.5 5.5 5.5S17.5 16 14.5 16c-.5 0-1-.1-1.5-.2V21h-2z\"/><path fill=\"none\" d=\"M0 0h24v24H0z\"/></svg>'\n default:\n return \"\";\n }\n}\n\nconst MarkerIconFactory = (shape: string, color1: string, color2: string, icon: string) => {\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, title, avatar, setItemFormPopup }: {\n item: Item,\n title?: string,\n avatar?: string,\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 console.log(title);\n\n\n return (\n <div className='tw-grid tw-grid-cols-6 tw-pb-2'>\n <div className='tw-col-span-5'>\n <div className=\"tw-flex tw-flex-row\">{\n avatar ?\n <div className=\"tw-w-10 tw-rounded-full\">\n <img className=\"tw-rounded-full\" src={avatar} />\n </div>\n :\n \"\"\n }\n <b className={`tw-text-xl tw-font-bold ${avatar? \"tw-ml-2 tw-mt-1\" : \"\"}`}>{title ? title : item.name}</b>\n </div>\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 { 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 { Popup as LeafletPopup} from 'react-leaflet'\nimport { Item } from '../../../types'\nimport { ItemFormPopupProps } from './ItemFormPopup'\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\nimport { TextView } from './ItemPopupComponents/TextView'\nimport { useAssetApi } from '../../AppShell/hooks/useAssets'\n\n\nexport interface ItemViewPopupProps {\n item: Item,\n children?: React.ReactNode;\n itemTitleField?: string;\n itemAvatarField?: string;\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\nfunction getValue(obj, path) {\n if(obj){\n for (var i=0, path=path.split('.'), len=path.length; i<len; i++){\n obj = obj[path[i]];\n };\n return obj;\n }\n\n};\n\n\nexport const ItemViewPopup = React.forwardRef((props: ItemViewPopupProps, ref: any) => {\n\n const assetsApi = useAssetApi();\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} title={props.itemTitleField && props.item? getValue(props.item,props.itemTitleField) : undefined} avatar={props.itemAvatarField && props.item? assetsApi.url+getValue(props.item,props.itemAvatarField) : undefined} 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 itemTitleField?: string,\n itemAvatarField?: string,\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 : 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 color?: string;\n first_name: string;\n description: string;\n email: string;\n password?: string;\n geoposition?: Geometry\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.text).\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} itemTitleField={props.itemTitleField} itemAvatarField={props.itemAvatarField} 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} itemTitleField={props.itemTitleField} itemAvatarField={props.itemAvatarField} 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 }>(child) ?\n React.cloneElement(child, { item: item }) : \"\"\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 { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupTextInput = ({ dataField, placeholder, style, item }:\n {\n dataField: string,\n placeholder: string,\n style?: string,\n item?: Item\n }) => {\n\n return (\n <TextInput defaultValue={item?.text ? item.text : \"\"} dataField={dataField} placeholder={placeholder} inputStyle={style}></TextInput>\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 * 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-[calc(100dvh-64px)] 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-[calc(100dvh-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 tw-mb-4 \" + (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 } from \"react\";\n\n// Improved version of https://usehooks.com/useOnClickOutside/\nconst useClickOutside = (ref, handler) => {\n useEffect(() => {\n let startedInside = false;\n let startedWhenMounted = false;\n\n const listener = (event) => {\n // Do nothing if `mousedown` or `touchstart` started inside ref element\n if (startedInside || !startedWhenMounted) return;\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) return;\n\n handler(event);\n };\n\n const validateEventStart = (event) => {\n startedWhenMounted = ref.current;\n startedInside = ref.current && ref.current.contains(event.target);\n };\n\n document.addEventListener(\"mousedown\", validateEventStart);\n document.addEventListener(\"touchstart\", validateEventStart);\n document.addEventListener(\"click\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", validateEventStart);\n document.removeEventListener(\"touchstart\", validateEventStart);\n document.removeEventListener(\"click\", listener);\n };\n }, [ref, handler]);\n};\n\nexport default useClickOutside;\n","import { useCallback, useRef, useState } from \"react\";\nimport * as React from \"react\";\nimport { HexColorPicker } from \"react-colorful\";\nimport \"./ColorPicker.css\"\nimport useClickOutside from \"./useClickOutside\";\n\nexport const ColorPicker = ({ color, onChange, className }) => {\n const popover = useRef<HTMLDivElement>(null);\n const [isOpen, toggle] = useState(false);\n\n const close = useCallback(() => toggle(false), []);\n useClickOutside(popover, close);\n\n return (\n <div className={`picker ${className}`}>\n <div\n className=\"swatch\"\n style={{ backgroundColor: color }}\n onClick={() => toggle(true)}\n />\n\n {isOpen && (\n <div className=\"popover\" ref={popover}>\n <HexColorPicker color={color} onChange={onChange} />\n </div>\n )}\n </div>\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';\nimport { ColorPicker } from './ColorPicker';\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 const [color, setColor] = useState<string>(\"\");\n\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 setColor(user?.color? user.color : \"#aabbcc\")\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 changedUser = { id: id, first_name: name, description: text, email: email, color: color, ...passwordChanged && { password: password }, ...avatar.length > 10 && { avatar: avatar } };\n\n\n toast.promise(\n\n updateUser(changedUser),\n {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\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 ?\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 <div className='button tw-btn tw-btn-lg tw-btn-circle tw-animate-none'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"1.5\" stroke=\"currentColor\" className=\"tw-w-6 tw-h-6\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5\" />\n </svg>\n </div>\n {avatar ?\n <div className='tw-h-20 tw-w-20'>\n <img src={assetsApi.url + avatar + \"?access_token=\" + token} className=' tw-rounded-full' />\n </div>\n :\n <div className='tw-h-20 tw-w-20'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.0\" viewBox=\"0 0 150 150\" className='tw-w-20 tw-h-20 tw-rounded-full' style={{ backgroundColor: \"#eee\" }}>\n <path fill=\"#ccc\" d=\"M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z\" />\n <path fill=\"#ccc\" d=\"M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z\" />\n </svg>\n </div>\n }\n </label>\n\n : <div className='tw-w-20 tw-flex tw-items-center tw-justify-center'>\n <span className=\"tw-loading tw-loading-spinner\"></span>\n </div>\n\n }\n <ColorPicker color={color} onChange={setColor} className={\"-tw-left-6 tw-top-14 -tw-mr-6\"} />\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 { 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-1 tw-top-1\" onClick={() => setQuestsOpen(false)}>✕</label>\n </div>\n <h2 className=\"tw-card-title tw-m-auto \">\n Level 1\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"#aaa\" className=\"tw-w-5 tw-h-5 tw-cursor-pointer\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z\" />\n </svg>\n\n </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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"}
|