utopia-ui 3.0.0-alpha.5 → 3.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +39 -23
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Utils/DynamicHeroIcon.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/Subcomponents/FilterControl.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/MarkerIconFactory.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Utils/ReplaceURLs.ts","../src/Utils/RandomColor.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 { 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 * 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 tw-shadow-xl\">\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 { ItemsApi, 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 setTagApi: () => { },\n setTagData: () => { }\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} {\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 [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.find((t) => t.id === tag.id)) {\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\n return { tags, addTag, removeTag, setTagApi, setTagData };\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}","export const hashTagRegex = /(#+[a-zA-Z0-9A-Za-zÀ-ÖØ-öø-ʸ(_)]{1,})/g;","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\";\nimport { useAddTag, useTags } from \"./useTags\";\nimport { hashTagRegex } from \"../../../Utils/HashTagRegex\";\nimport { randomColor } from \"../../../Utils/RandomColor\";\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 | { type: \"ADD_TAGS\" };\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 const tags = useTags();\n const addTag = useAddTag();\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 case \"ADD_TAGS\":\n return state.map(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 { ...item, tags: itemTags }\n })\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: `error while loading ${layer.name}`\n }\n );\n if (result) {\n result.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n }\n dispatch({ type: \"ADD_TAGS\" })\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n layer.data?.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n dispatch({ type: \"ADD_TAGS\" })\n }, []);\n\n\n const addItem = useCallback(async (item: Item) => { \n dispatch({\n type: \"ADD\",\n item,\n });\n dispatch({ type: \"ADD_TAGS\" })\n }, []);\n\n const updateItem = useCallback(async (item: Item) => {\n dispatch({\n type: \"UPDATE\",\n item,\n });\n dispatch({ type: \"ADD_TAGS\" })\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 useEffect(() => {\n dispatch({ type: \"ADD_TAGS\" })\n }, [tags])\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}; ","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport {Tag} from \"../../../types\";\n\ntype ActionType =\n | { type: \"ADD_TAG\"; tag: Tag }\n | { type: \"REMOVE_TAG\"; id: string }\n | { type: \"RESET_TAGS\"};\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>;\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: \"\",\n addFilterTag: () => { },\n removeFilterTag: () => { },\n resetFilterTags: () => { },\n setSearchPhrase: () => { },\n});\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[];\n searchPhrase: string;\n addFilterTag: (tag: Tag) => void;\n removeFilterTag: (id: string) => void;\n resetFilterTags: () => void;\n setSearchPhrase: (phrase: string) => void;\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 [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 setSearchPhrase = useCallback((phrase:string) => {\n searchPhraseSet(phrase)\n }, []);\n\n return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase };\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};","import * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag, useSetSearchPhrase } from '../hooks/useFilter'\n\n\n\nexport const FilterControl = () => {\n const filterTags = useFilterTags();\n const removeFilterTag = useRemoveFilterTag();\n const setSearchPhrase = useSetSearchPhrase();\n return (\n <div className='tw-flex tw-flex-col tw-absolute tw-top-4 tw-left-4 tw-z-1000 tw-right-4'>\n <input type=\"text\" placeholder=\"search ...\" className=\"tw-input tw-input-bordered tw-w-full tw-max-w-sm 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>#{tag.id}</b>\n </div>\n )\n }\n\n\n </div>\n </div>\n )\n}\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\";\nimport { FilterProvider } from \"./hooks/useFilter\";\nimport { FilterControl } from \"./Subcomponents/FilterControl\";\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 <FilterProvider 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} zoomControl={false}>\n <FilterControl></FilterControl>\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) ?\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 </FilterProvider>\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 [loading, setLoading] = React.useState<boolean>(false);\n const removeItem = useRemoveItem();\n\n const map = useMap();\n\n const removeItemFromMap = (event: React.MouseEvent<HTMLElement>) => {\n setLoading(true);\n item.layer.api?.deleteItem!(item.id)\n .then(() => removeItem(item))\n .then(() => map.closePopup())\n .then(()=>setLoading(false))\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.layer.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.layer.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.layer.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 {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 }","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 { Item } from '../../../../types'\nimport { useAddTag, useTags } from '../../hooks/useTags';\nimport reactStringReplace from 'react-string-replace';\nimport { useAddFilterTag, useResetFilterTags } from '../../hooks/useFilter';\nimport { hashTagRegex } from '../../../../Utils/HashTagRegex';\nimport { fixUrls, mailRegex, urlRegex } 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\n const groupRef = useRef(null);\n\n const addFilterTag = useAddFilterTag();\n const resetFilterTags = useResetFilterTags();\n\n const map = useMap();\n\n let replacedText;\n\n\n // use init-Ref to prevent react18 from calling useEffect twice\n const init = useRef(false)\n useEffect(() => {\n if (!init.current) {\n item?.text.toLocaleLowerCase().match(hashTagRegex)?.map(tag=> {\n if (!tags.find((t) => t.id === tag.slice(1))) {\n console.log(tag);\n addTag({id: tag.slice(1), color: randomColor()})\n }\n });\n init.current = true;\n }\n }, [])\n\n\n\n if (item && item.text) replacedText = fixUrls(item.text);\n\n replacedText = reactStringReplace(replacedText, /(https?:\\/\\/\\S+)/g, (url, i) => {\n let shortUrl = url; \n if (url.match('^https:\\/\\/')) {\n shortUrl = url.split('https://')[1];\n }\n if (url.match('^http:\\/\\/')) {\n shortUrl = url.split('http://')[1];\n } \n return (\n <a key={i.toString+item!.id+url} href={url} target=\"_blank\" rel=\"noopener noreferrer\">{shortUrl}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, mailRegex, (url, i) => {\n return (\n <a key={i.toString+item!.id+url} href={`mailto:${url}`} target=\"_blank\" rel=\"noopener noreferrer\">{url}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, hashTagRegex, (match, i) => {\n\n const tag = tags.find(t => t.id.toLowerCase() == match.slice(1).toLowerCase())\n return (\n <a style={{ color: tag ? tag.color : '#aaa' , fontWeight: 'bold', cursor: 'pointer' }} key={tag ? tag.id+item!.id+i : i} onClick={() => {\n addFilterTag(tag!);\n // map.fitBounds(items)\n // map.closePopup();\n }}>{match}</a>\n )\n })\n\n return (\n <p style={{ whiteSpace: \"pre-wrap\" }} className=\"!tw-m-0 !tw-mb-2\">\n {replacedText}\n </p>\n )\n\n\n\n}\n","import * as React from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { Item } from '../../../types'\nimport { ItemFormPopupProps } from './ItemFormPopup'\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\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\nexport const ItemViewPopup = (props: ItemViewPopupProps) => {\n const item: Item = props.item;\n\n return (\n <LeafletPopup maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}>\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 api?: ItemsApi<any>,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,\n itemFormPopup?: ItemFormPopupProps | null\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 [key: string]: any;\n constructor(id:string,name:string,text:string,position:Geometry, layer?: LayerProps, api?: ItemsApi<any>){\n this.id = id;\n this.name = name;\n this.text = text;\n this.position = position;\n this.layer = layer;\n this.api = api;\n }\n}\n\nexport class Geometry {\n type: string;\n coordinates: number[];\n constructor(lng: number, lat: number) {\n this.coordinates = [lng,lat];\n this.type = \"Point\";\n }\n}\n\nexport interface Tag {\n color: string;\n id: string;\n}\n\nexport interface ItemsApi<T> {\n getItems(): Promise<any>, \n createItem?(item : T): Promise<any>,\n updateItem?(item : T): Promise<any>,\n deleteItem?(id : number | string): Promise<any>,\n}\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 * 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","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 required 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'\nimport { hashTagRegex } from '../../../Utils/HashTagRegex'\nimport { useAddTag } from '../hooks/useTags'\nimport { randomColor } from '../../../Utils/RandomColor'\nimport { toast } from 'react-toastify'\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\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\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 console.log();\n }\n success&&updateItem({...props.item, ...formItem});\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 success&&addItem({...formItem, id: crypto.randomUUID(), layer: props.layer});\n setSpinner(false);\n map.closePopup();\n }\n props.setItemFormPopup(null);\n }\n\n\n const resetPopup = () => {\n if (formRef.current) {\n formRef.current.reset();\n }\n }\n\n useEffect(() => {\n resetPopup();\n }, [props.position])\n\n return (\n <LeafletPopup minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100);\n }\n }}\n position={props.position}>\n <form ref={formRef} onReset={resetPopup} onSubmit={e => handleSubmit(e)}>\n {props.item ? <div className='tw-h-3'></div>\n :\n <div className='tw-flex tw-justify-center'><b className=\"tw-text-xl tw-font-bold\">New {props.layer.name}</b></div>\n }\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={props.item ? props.item.name : \"\"} inputStyle='' />\n\n {props.children ?\n\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: props.item, key: props.position.toString() }) : \"\"\n )\n\n :\n <>\n <TextAreaInput key={props.position.toString()} placeholder=\"Text\" dataField=\"text\" defaultValue={props.item ? props.item.text : \"\"} inputStyle='tw-h-40 tw-mt-5' />\n </>\n }\n\n <div className='tw-flex tw-justify-center'>\n <button className={spinner ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{spinner ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n\n\n\n","import * as React from 'react'\nimport { Marker } from 'react-leaflet'\nimport { Item, LayerProps } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\nimport { useItems, useResetItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { ItemFormPopupProps, ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { useAddFilterTag, useFilterTags, useSearchPhrase } from './hooks/useFilter'\n\n\nexport const Layer = (props: LayerProps) => {\n\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n const filterTags = useFilterTags();\n const setFilterTag = useAddFilterTag();\n\n\n // setFilterTag({id: \"healing\", color: \"#000\"})\n\n\n const items = useItems();\n const setItemsApi = useSetItemsApi();\n const setItemsData = useSetItemsData();\n\n const resetItems = useResetItems();\n\n const searchPhrase = useSearchPhrase();\n\n\n useEffect(() => {\n resetItems(props);\n props.data && setItemsData(props);\n props.api && setItemsApi(props);\n }, [props.data, props.api])\n\n return (\n <>\n {items &&\n items.\n filter(item => item.layer?.name === props.name)?.\n filter(item =>\n // filterTags.length == 0 ? item : item.tags?.some(tag => filterTags.some(filterTag => filterTag.id === tag.id)))?.\n filterTags.length == 0 ? item : filterTags.every(tag => item.tags?.some(filterTag => filterTag.id === tag.id)))?.\n filter(item => {\n return searchPhrase === ''\n ? item :\n item.name.toLowerCase().includes(searchPhrase.toLowerCase())\n }).\n map((place: Item) => {\n const tags = place.tags;\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 icon={MarkerIconFactory(props.markerShape, color1, color2, props.markerIcon)} key={place.id} position={[place.position.coordinates[1], place.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 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(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 { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\n\nexport const ItemForm = ({ children, item }: { children?: React.ReactNode, item?: Item }) => {\n return (\n <div>{\n children ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\n ) : \"\"\n }</div>\n )\n}\n\nItemForm.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n};\n\nItemForm.defaultProps = {\n __TYPE: 'ItemForm',\n};\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\n\nexport const ItemView = ({ children, item }: { children?: React.ReactNode, item?: Item }) => {\n return (\n <div>\n {children ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\n ) : \"\"}\n </div>\n )\n}\n\nItemView.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n};\n\nItemView.defaultProps = {\n __TYPE: 'ItemView',\n};\n","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: '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: 'Error',\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://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 Up</a></li>\n </ul>\n </div>\n\n </div>\n }\n </div>\n <DialogModal\n title=\"Login\"\n isOpened={loginOpen}\n onClose={() => setLoginOpen(false)}>\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onLogin()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Login'}</button>\n </div>\n </DialogModal>\n <DialogModal\n title=\"Sign Up\"\n isOpened={signupOpen}\n onClose={() => setSignupOpen(false)}>\n <input type=\"text\" placeholder=\"Name\" value={userName} onChange={e => setUserName(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onRegister()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Sign Up'}</button>\n </div>\n </DialogModal>\n </>\n )\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { BrowserRouter } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\n\nexport function AppShell({ appName, 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}:{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 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/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/Subcomponents/FilterControl.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/MarkerIconFactory.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Utils/ReplaceURLs.ts","../src/Utils/RandomColor.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 { 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 * 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 tw-shadow-xl\">\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 { ItemsApi, 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 setTagApi: () => { },\n setTagData: () => { }\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} {\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 [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.find((t) => t.id === tag.id)) {\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\n return { tags, addTag, removeTag, setTagApi, setTagData };\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}","export const hashTagRegex = /(#+[a-zA-Z0-9A-Za-zÀ-ÖØ-öø-ʸ(_)]{1,})/g;","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\";\nimport { useAddTag, useTags } from \"./useTags\";\nimport { hashTagRegex } from \"../../../Utils/HashTagRegex\";\nimport { randomColor } from \"../../../Utils/RandomColor\";\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 | { type: \"ADD_TAGS\" };\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 const tags = useTags();\n const addTag = useAddTag();\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 case \"ADD_TAGS\":\n return state.map(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 { ...item, tags: itemTags }\n })\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: `error while loading ${layer.name}`\n }\n );\n if (result) {\n result.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n }\n dispatch({ type: \"ADD_TAGS\" })\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n layer.data?.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n dispatch({ type: \"ADD_TAGS\" })\n }, []);\n\n\n const addItem = useCallback(async (item: Item) => { \n dispatch({\n type: \"ADD\",\n item,\n });\n dispatch({ type: \"ADD_TAGS\" })\n }, []);\n\n const updateItem = useCallback(async (item: Item) => {\n dispatch({\n type: \"UPDATE\",\n item,\n });\n dispatch({ type: \"ADD_TAGS\" })\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 useEffect(() => {\n dispatch({ type: \"ADD_TAGS\" })\n }, [tags])\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}; ","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport {Tag} from \"../../../types\";\n\ntype ActionType =\n | { type: \"ADD_TAG\"; tag: Tag }\n | { type: \"REMOVE_TAG\"; id: string }\n | { type: \"RESET_TAGS\"};\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>;\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: \"\",\n addFilterTag: () => { },\n removeFilterTag: () => { },\n resetFilterTags: () => { },\n setSearchPhrase: () => { },\n});\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[];\n searchPhrase: string;\n addFilterTag: (tag: Tag) => void;\n removeFilterTag: (id: string) => void;\n resetFilterTags: () => void;\n setSearchPhrase: (phrase: string) => void;\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 [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 setSearchPhrase = useCallback((phrase:string) => {\n searchPhraseSet(phrase)\n }, []);\n\n return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase };\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};","import * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag, useSetSearchPhrase } from '../hooks/useFilter'\n\n\n\nexport const FilterControl = () => {\n const filterTags = useFilterTags();\n const removeFilterTag = useRemoveFilterTag();\n const setSearchPhrase = useSetSearchPhrase();\n return (\n <div className='tw-flex tw-flex-col tw-absolute tw-top-4 tw-left-4 tw-z-1000 tw-right-4'>\n <input type=\"text\" placeholder=\"search ...\" className=\"tw-input tw-input-bordered tw-w-full tw-max-w-sm 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>#{tag.id}</b>\n </div>\n )\n }\n\n\n </div>\n </div>\n )\n}\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\";\nimport { FilterProvider } from \"./hooks/useFilter\";\nimport { FilterControl } from \"./Subcomponents/FilterControl\";\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 <FilterProvider 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} zoomControl={false}>\n <FilterControl></FilterControl>\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) ?\n React.cloneElement(child, { setItemFormPopup: setItemFormPopup, itemFormPopup: itemFormPopup }) : child\n )\n }\n </MarkerClusterGroup>\n <MapEventListener setSelectMode={setSelectMode} selectMode={selectMode} setItemFormPopup={setItemFormPopup} />\n </MapContainer>\n <AddButton setSelectMode={setSelectMode}></AddButton>\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 </FilterProvider>\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 [loading, setLoading] = React.useState<boolean>(false);\n const removeItem = useRemoveItem();\n\n const map = useMap();\n\n const removeItemFromMap = (event: React.MouseEvent<HTMLElement>) => {\n setLoading(true);\n item.layer.api?.deleteItem!(item.id)\n .then(() => removeItem(item))\n .then(() => map.closePopup())\n .then(()=>setLoading(false))\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.layer.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.layer.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.layer.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 {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 }","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 { Item } from '../../../../types'\nimport { useAddTag, useTags } from '../../hooks/useTags';\nimport reactStringReplace from 'react-string-replace';\nimport { useAddFilterTag, useResetFilterTags } from '../../hooks/useFilter';\nimport { hashTagRegex } from '../../../../Utils/HashTagRegex';\nimport { fixUrls, mailRegex, urlRegex } 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\n const groupRef = useRef(null);\n\n const addFilterTag = useAddFilterTag();\n const resetFilterTags = useResetFilterTags();\n\n const map = useMap();\n\n let replacedText;\n\n\n // use init-Ref to prevent react18 from calling useEffect twice\n const init = useRef(false)\n useEffect(() => {\n if (!init.current) {\n item?.text.toLocaleLowerCase().match(hashTagRegex)?.map(tag=> {\n if (!tags.find((t) => t.id === tag.slice(1))) {\n console.log(tag);\n addTag({id: tag.slice(1), color: randomColor()})\n }\n });\n init.current = true;\n }\n }, [])\n\n\n\n if (item && item.text) replacedText = fixUrls(item.text);\n\n replacedText = reactStringReplace(replacedText, /(https?:\\/\\/\\S+)/g, (url, i) => {\n let shortUrl = url; \n if (url.match('^https:\\/\\/')) {\n shortUrl = url.split('https://')[1];\n }\n if (url.match('^http:\\/\\/')) {\n shortUrl = url.split('http://')[1];\n } \n return (\n <a key={i.toString+item!.id+url} href={url} target=\"_blank\" rel=\"noopener noreferrer\">{shortUrl}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, mailRegex, (url, i) => {\n return (\n <a key={i.toString+item!.id+url} href={`mailto:${url}`} target=\"_blank\" rel=\"noopener noreferrer\">{url}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, hashTagRegex, (match, i) => {\n\n const tag = tags.find(t => t.id.toLowerCase() == match.slice(1).toLowerCase())\n return (\n <a style={{ color: tag ? tag.color : '#aaa' , fontWeight: 'bold', cursor: 'pointer' }} key={tag ? tag.id+item!.id+i : i} onClick={() => {\n addFilterTag(tag!);\n // map.fitBounds(items)\n // map.closePopup();\n }}>{match}</a>\n )\n })\n\n return (\n <p style={{ whiteSpace: \"pre-wrap\" }} className=\"!tw-m-0 !tw-mb-2\">\n {replacedText}\n </p>\n )\n\n\n\n}\n","import * as React from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { Item } from '../../../types'\nimport { ItemFormPopupProps } from './ItemFormPopup'\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\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\nexport const ItemViewPopup = (props: ItemViewPopupProps) => {\n const item: Item = props.item;\n\n return (\n <LeafletPopup maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}>\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 api?: ItemsApi<any>,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,\n itemFormPopup?: ItemFormPopupProps | null\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 [key: string]: any;\n constructor(id:string,name:string,text:string,position:Geometry, layer?: LayerProps, api?: ItemsApi<any>){\n this.id = id;\n this.name = name;\n this.text = text;\n this.position = position;\n this.layer = layer;\n this.api = api;\n }\n}\n\nexport class Geometry {\n type: string;\n coordinates: number[];\n constructor(lng: number, lat: number) {\n this.coordinates = [lng,lat];\n this.type = \"Point\";\n }\n}\n\nexport interface Tag {\n color: string;\n id: string;\n}\n\nexport interface ItemsApi<T> {\n getItems(): Promise<any>, \n createItem?(item : T): Promise<any>,\n updateItem?(item : T): Promise<any>,\n deleteItem?(id : number | string): Promise<any>,\n}\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 * 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","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 required 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'\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 === tag.slice(1))) {\n console.log(tag);\n addTag({id: tag.slice(1), color: randomColor()})\n }\n });\n\n\n\n\n if(props.item) {\n let success = false;\n try {\n await props.layer.api?.updateItem!({...formItem, id: props.item.id});\n success = true;\n } catch (error) {\n toast.error(error.toString);\n }\n if(success) {\n updateItem({...props.item, ...formItem});\n toast.success(\"Item updated\");\n } \n setSpinner(false);\n map.closePopup();\n }\n else {\n\n let success = false;\n try {\n await props.layer.api?.createItem!({...formItem, id: crypto.randomUUID()});\n success = true;\n } catch (error) {\n toast.error(error.toString);\n }\n if(success) {\n addItem({...formItem, id: crypto.randomUUID(), layer: props.layer});\n toast.success(\"New item created\");\n resetFilterTags();\n } \n setSpinner(false);\n map.closePopup();\n }\n props.setItemFormPopup(null);\n }\n\n\n const resetPopup = () => {\n if (formRef.current) {\n formRef.current.reset();\n }\n }\n\n useEffect(() => {\n resetPopup();\n }, [props.position])\n\n return (\n <LeafletPopup minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100);\n }\n }}\n position={props.position}>\n <form ref={formRef} onReset={resetPopup} onSubmit={e => handleSubmit(e)}>\n {props.item ? <div className='tw-h-3'></div>\n :\n <div className='tw-flex tw-justify-center'><b className=\"tw-text-xl tw-font-bold\">New {props.layer.name}</b></div>\n }\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={props.item ? props.item.name : \"\"} inputStyle='' />\n\n {props.children ?\n\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: props.item, key: props.position.toString() }) : \"\"\n )\n\n :\n <>\n <TextAreaInput key={props.position.toString()} placeholder=\"Text\" dataField=\"text\" defaultValue={props.item ? props.item.text : \"\"} inputStyle='tw-h-40 tw-mt-5' />\n </>\n }\n\n <div className='tw-flex tw-justify-center'>\n <button className={spinner ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{spinner ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n\n\n\n","import * as React from 'react'\nimport { Marker } from 'react-leaflet'\nimport { Item, LayerProps } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\nimport { useItems, useResetItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { ItemFormPopupProps, ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { useAddFilterTag, useFilterTags, useSearchPhrase } from './hooks/useFilter'\n\n\nexport const Layer = (props: LayerProps) => {\n\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n const filterTags = useFilterTags();\n const setFilterTag = useAddFilterTag();\n\n\n // setFilterTag({id: \"healing\", color: \"#000\"})\n\n\n const items = useItems();\n const setItemsApi = useSetItemsApi();\n const setItemsData = useSetItemsData();\n\n const resetItems = useResetItems();\n\n const searchPhrase = useSearchPhrase();\n\n\n useEffect(() => {\n resetItems(props);\n props.data && setItemsData(props);\n props.api && setItemsApi(props);\n }, [props.data, props.api])\n\n return (\n <>\n {items &&\n items.\n filter(item => item.layer?.name === props.name)?.\n filter(item =>\n // filterTags.length == 0 ? item : item.tags?.some(tag => filterTags.some(filterTag => filterTag.id === tag.id)))?.\n filterTags.length == 0 ? item : filterTags.every(tag => item.tags?.some(filterTag => filterTag.id === tag.id)))?.\n filter(item => {\n return searchPhrase === ''\n ? item :\n item.name.toLowerCase().includes(searchPhrase.toLowerCase())\n }).\n map((place: Item) => {\n const tags = place.tags;\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 icon={MarkerIconFactory(props.markerShape, color1, color2, props.markerIcon)} key={place.id} position={[place.position.coordinates[1], place.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 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(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 { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\n\nexport const ItemForm = ({ children, item }: { children?: React.ReactNode, item?: Item }) => {\n return (\n <div>{\n children ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\n ) : \"\"\n }</div>\n )\n}\n\nItemForm.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n};\n\nItemForm.defaultProps = {\n __TYPE: 'ItemForm',\n};\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\n\nexport const ItemView = ({ children, item }: { children?: React.ReactNode, item?: Item }) => {\n return (\n <div>\n {children ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\n ) : \"\"}\n </div>\n )\n}\n\nItemView.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n};\n\nItemView.defaultProps = {\n __TYPE: 'ItemView',\n};\n","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: '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: 'Error',\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://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-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 Up</a></li>\n </ul>\n </div>\n\n </div>\n }\n </div>\n <DialogModal\n title=\"Login\"\n isOpened={loginOpen}\n onClose={() => setLoginOpen(false)}>\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onLogin()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Login'}</button>\n </div>\n </DialogModal>\n <DialogModal\n title=\"Sign Up\"\n isOpened={signupOpen}\n onClose={() => setSignupOpen(false)}>\n <input type=\"text\" placeholder=\"Name\" value={userName} onChange={e => setUserName(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onRegister()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Sign Up'}</button>\n </div>\n </DialogModal>\n </>\n )\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { BrowserRouter } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\n\nexport function AppShell({ appName, 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-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}:{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 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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"}
|