utopia-ui 3.0.51 → 3.0.52

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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Components/Gaming/hooks/useQuests.tsx","../src/Components/Map/hooks/useClusterRef.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/hooks/useLeafletRefs.tsx","../src/Components/Auth/useAuth.tsx","../src/Components/Map/hooks/usePermissions.tsx","../src/Components/Map/hooks/useSelectPosition.tsx","../src/Utils/GetValue.ts","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/AppShell/hooks/useAppState.tsx","../src/Components/AppShell/ContextWrapper.tsx","../src/Utils/ContainsUUID.ts","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/Subcomponents/Controls/Control.tsx","../src/Components/Map/Subcomponents/Controls/FilterControl.tsx","../src/Components/Templates/MapOverlayPage.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.tsx","../src/Components/Auth/RequestPasswordPage.tsx","../src/Components/Auth/SetNewPasswordPage.tsx","../src/Components/Map/Subcomponents/Controls/GratitudeControl.tsx","../src/Components/Map/Subcomponents/Controls/LayerControl.tsx","../src/Components/Map/hooks/useTimeout.tsx","../src/Components/Map/hooks/useDebounce.tsx","../src/Utils/FormatTags.ts","../src/Utils/MarkerIconFactory.ts","../node_modules/leaflet.locatecontrol/src/L.Control.Locate.js","../src/Components/Map/Subcomponents/Controls/LocateControl.tsx","../src/Components/Map/Subcomponents/Controls/SidebarControl.tsx","../src/Components/Map/Subcomponents/Controls/SearchControl.tsx","../src/Components/Map/Subcomponents/Controls/TagsControl.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/Subcomponents/SelectPosition.tsx","../src/Components/Map/UtopiaMapInner.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/RandomColor.ts","../src/Components/Input/TextAreaInput.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Map/Subcomponents/ItemFormPopup.tsx","../src/Utils/TimeAgo.ts","../src/Components/Templates/DialogModal.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/Components/Map/Layer.tsx","../src/Components/Map/Tags.tsx","../src/Components/Map/Permissions.tsx","../src/Components/Map/ItemForm.tsx","../src/Components/Map/ItemView.tsx","../src/Components/Input/SelectBox.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/SetAppState.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/AppShell/Sitemap.tsx","../src/Components/Typography/Subtitle.tsx","../src/Components/Templates/TitleCard.tsx","../src/Components/Templates/CardPage.tsx","../src/Utils/Moon.ts","../src/Components/Templates/CircleLayout.tsx","../src/Components/Templates/MoonCalendar.tsx","../src/Components/Templates/SelectUser.tsx","../src/Components/Profile/Subcomponents/PlusButton.tsx","../src/Components/Templates/DateUserInfo.tsx","../src/Components/Templates/ItemCard.tsx","../src/Components/Templates/OverlayItemsIndexPage.tsx","../src/Components/Templates/EmojiPicker.tsx","../src/Components/Templates/AttestationForm.tsx","../src/Components/Templates/TagView.tsx","../src/Components/Templates/MarketView.tsx","../src/Components/Profile/UserSettings.tsx","../src/Components/Profile/itemFunctions.ts","../src/Components/Profile/Subcomponents/ContactInfoView.tsx","../src/Components/Profile/Subcomponents/GalleryView.tsx","../src/Components/Profile/Subcomponents/SocialShareButton.tsx","../src/Components/Profile/Subcomponents/SocialShareBar.tsx","../src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx","../src/Components/Profile/Subcomponents/ProfileStartEndView.tsx","../src/Components/Profile/Subcomponents/ProfileTextView.tsx","../src/Components/Profile/Templates/FlexView.tsx","../src/Components/Profile/Templates/OnepagerView.tsx","../src/Components/Profile/Templates/SimpleView.tsx","../src/Components/Profile/Subcomponents/ActionsButton.tsx","../src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx","../src/Components/Profile/Templates/TabsView.tsx","../src/Components/Profile/ProfileView.tsx","../src/Components/Profile/Subcomponents/AvatarWidget.tsx","../src/Components/Profile/hooks/useClickOutside.tsx","../src/Components/Profile/Subcomponents/ColorPicker.tsx","../src/Components/Profile/Subcomponents/FormHeader.tsx","../src/Components/Profile/Subcomponents/ContactInfoForm.tsx","../src/Components/Input/ComboBoxInput.tsx","../src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx","../src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx","../src/Components/Profile/Subcomponents/MarkdownHint.tsx","../src/Components/Profile/Subcomponents/ProfileTextForm.tsx","../src/Components/Profile/Templates/FlexForm.tsx","../src/Components/Profile/Templates/OnepagerForm.tsx","../src/Components/Profile/Templates/SimpleForm.tsx","../src/Components/Input/Autocomplete.tsx","../src/Components/Profile/Subcomponents/TagsWidget.tsx","../src/Components/Profile/Templates/TabsForm.tsx","../src/Components/Profile/ProfileForm.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.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","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useState, createContext, useContext } from 'react'\n\ntype UseQuestManagerResult = ReturnType<typeof useQuestsManager>\n\nconst QuestContext = createContext<UseQuestManagerResult>({\n open: false,\n setQuestsOpen: () => {},\n})\n\nfunction useQuestsManager(initialOpen: boolean): {\n open: boolean\n setQuestsOpen: (open: boolean) => void\n} {\n const [open, setOpen] = useState<boolean>(initialOpen)\n\n const setQuestsOpen = useCallback((questOpen: boolean) => {\n setOpen(questOpen)\n }, [])\n\n return { open, setQuestsOpen }\n}\n\nexport const QuestsProvider: React.FunctionComponent<{\n initialOpen: boolean\n children?: React.ReactNode\n}> = ({ initialOpen, children }) => (\n <QuestContext.Provider value={useQuestsManager(initialOpen)}>{children}</QuestContext.Provider>\n)\n\nexport const useQuestsOpen = (): boolean => {\n const { open } = useContext(QuestContext)\n return open\n}\n\nexport const useSetQuestOpen = (): UseQuestManagerResult['setQuestsOpen'] => {\n const { setQuestsOpen } = useContext(QuestContext)\n return setQuestsOpen\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext, useContext, useState } from 'react'\n\ntype UseClusterRefManagerResult = ReturnType<typeof useClusterRefManager>\n\nconst ClusterRefContext = createContext<UseClusterRefManagerResult>({\n clusterRef: {} as React.MutableRefObject<undefined>,\n setClusterRef: () => {},\n})\n\nfunction useClusterRefManager(): {\n clusterRef: any\n setClusterRef: React.Dispatch<React.SetStateAction<React.MutableRefObject<undefined>>>\n} {\n const [clusterRef, setClusterRef] = useState<React.MutableRefObject<undefined>>(\n {} as React.MutableRefObject<undefined>,\n )\n\n return { clusterRef, setClusterRef }\n}\n\nexport const ClusterRefProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <ClusterRefContext.Provider value={useClusterRefManager()}>{children}</ClusterRefContext.Provider>\n)\n\nexport const useClusterRef = (): any => {\n const { clusterRef } = useContext(ClusterRefContext)\n return clusterRef\n}\n\nexport const useSetClusterRef = (): UseClusterRefManagerResult['setClusterRef'] => {\n const { setClusterRef } = useContext(ClusterRefContext)\n return setClusterRef\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useReducer, createContext, useContext } from 'react'\n\nimport type { LayerProps } from '#types/LayerProps'\n\ninterface ActionType {\n type: 'ADD LAYER'\n layer: LayerProps\n}\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 // eslint-disable-next-line no-case-declarations\n const exist = state.find((layer) => layer.name === action.layer.name)\n if (!exist) {\n return [...state, action.layer]\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[]\n children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>{children}</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 { useState, useEffect } from 'react'\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window\n return {\n width,\n height,\n }\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions())\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions())\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowDimensions\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable no-case-declarations */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useLayers } from './useLayers'\nimport useWindowDimensions from './useWindowDimension'\n\nimport type { LayerProps } from '#types/LayerProps'\nimport type { Tag } from '#types/Tag'\n\ntype ActionType =\n | { type: 'ADD_TAG'; tag: Tag }\n | { type: 'REMOVE_TAG'; name: string }\n | { type: 'RESET_TAGS' }\n | { type: 'TOGGLE_LAYER'; layer: LayerProps }\n | { type: 'ADD_LAYER'; layer: LayerProps }\n | { type: 'RESET_LAYERS' }\n | { type: 'TOGGLE_GROUP_TYPE'; groupType: string }\n | { type: 'ADD_GROUP_TYPE'; groupType: string }\n | { type: 'RESET_GROUP_TYPE' }\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: '',\n visibleLayers: [],\n visibleGroupTypes: [],\n addFilterTag: () => {},\n removeFilterTag: () => {},\n resetFilterTags: () => {},\n setSearchPhrase: () => {},\n addVisibleLayer: () => {},\n toggleVisibleLayer: () => {},\n resetVisibleLayers: () => {},\n isLayerVisible: () => true,\n addVisibleGroupType: () => {},\n toggleVisibleGroupType: () => {},\n isGroupTypeVisible: () => true,\n})\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[]\n searchPhrase: string\n visibleLayers: LayerProps[]\n visibleGroupTypes: string[]\n\n addFilterTag: (tag: Tag) => void\n removeFilterTag: (name: string) => void\n resetFilterTags: () => void\n setSearchPhrase: (phrase: string) => void\n addVisibleLayer: (layer: LayerProps) => void\n toggleVisibleLayer: (layer: LayerProps) => void\n resetVisibleLayers: () => void\n isLayerVisible: (layer: LayerProps) => boolean\n addVisibleGroupType: (groupType: string) => void\n toggleVisibleGroupType: (groupType: string) => void\n isGroupTypeVisible: (groupType: string) => boolean\n} {\n const [filterTags, dispatchTags] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_TAG':\n const exist = state.find((tag) => tag.id === action.tag.id)\n if (!exist) {\n return [...state, action.tag]\n } else return state\n case 'REMOVE_TAG':\n return state.filter(({ name }) => name !== action.name)\n case 'RESET_TAGS':\n return initialTags\n default:\n throw new Error()\n }\n }, initialTags)\n\n const initialLayers = useLayers()\n const navigate = useNavigate()\n const windowDimensions = useWindowDimensions()\n\n const [visibleLayers, dispatchLayers] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_LAYER':\n const exist1 = state.find((layer) => layer.name === action.layer.name)\n if (!exist1) {\n return [...state, action.layer]\n } else return state\n case 'TOGGLE_LAYER':\n const exist2 = state.some((layer) => layer.name === action.layer.name)\n if (exist2) return state.filter(({ name }) => name !== action.layer.name)\n else return [...state, action.layer]\n case 'RESET_LAYERS':\n return initialLayers\n default:\n throw new Error()\n }\n }, initialLayers)\n\n const [visibleGroupTypes, dispatchGroupTypes] = useReducer(\n (state: string[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_GROUP_TYPE':\n const exist1 = state.find((groupType) => groupType === action.groupType)\n if (!exist1) {\n return [...state, action.groupType]\n } else return state\n case 'TOGGLE_GROUP_TYPE':\n const exist2 = state.some((groupType) => groupType === action.groupType)\n if (exist2) return state.filter((groupType) => groupType !== action.groupType)\n else return [...state, action.groupType]\n case 'RESET_GROUP_TYPE':\n return []\n default:\n throw new Error()\n }\n },\n [],\n )\n\n const [searchPhrase, searchPhraseSet] = useState<string>('')\n\n const addFilterTag = useCallback((tag: Tag) => {\n const params = new URLSearchParams(location.search)\n const urlTags = params.get('tags')\n const decodedTags = urlTags ? decodeURIComponent(urlTags) : ''\n\n if (!decodedTags.includes(tag.name)) {\n params.set('tags', `${urlTags || ''}${urlTags ? ';' : ''}${tag.name}`)\n }\n if (windowDimensions.width < 786 && location.pathname.split('/').length > 2)\n navigate('/' + `${params ? `?${params}` : ''}`)\n else navigate(location.pathname + `${params ? `?${params}` : ''}`)\n\n dispatchTags({\n type: 'ADD_TAG',\n tag,\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const removeFilterTag = useCallback((name: string) => {\n const params = new URLSearchParams(window.location.search)\n const urlTags = params.get('tags')\n let newUrlTags = ''\n const tags = urlTags?.split(';')\n if (tags?.length === 0 && urlTags?.length && urlTags.length > 0) tags[0] = urlTags\n tags?.map((urlTag) => {\n if (!(urlTag.toLocaleLowerCase() === name.toLocaleLowerCase())) {\n newUrlTags = newUrlTags + `${newUrlTags === '' ? urlTag : `;${urlTag}`}`\n }\n return null\n })\n if (newUrlTags !== '') {\n params.set('tags', `${newUrlTags}`)\n navigate(location.pathname + `${params ? `?${params}` : ''}`)\n } else {\n params.delete('tags')\n navigate(location.pathname + `${params ? `?${params}` : ''}`)\n }\n\n dispatchTags({\n type: 'REMOVE_TAG',\n name,\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const resetFilterTags = useCallback(() => {\n dispatchTags({\n type: 'RESET_TAGS',\n })\n }, [])\n\n const addVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: 'ADD_LAYER',\n layer,\n })\n }\n\n const toggleVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: 'TOGGLE_LAYER',\n layer,\n })\n }\n\n const resetVisibleLayers = useCallback(() => {\n dispatchLayers({\n type: 'RESET_LAYERS',\n })\n }, [])\n\n const isLayerVisible = useCallback(\n (layer: LayerProps) => {\n return visibleLayers.some((l) => l.name === layer.name)\n },\n [visibleLayers],\n )\n\n const addVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: 'ADD_GROUP_TYPE',\n groupType,\n })\n }\n\n const toggleVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: 'TOGGLE_GROUP_TYPE',\n groupType,\n })\n }\n\n const isGroupTypeVisible = useCallback(\n (groupType: string) => {\n return visibleGroupTypes.some((gt) => gt === groupType)\n },\n [visibleGroupTypes],\n )\n\n const setSearchPhrase = useCallback((phrase: string) => {\n searchPhraseSet(phrase)\n }, [])\n\n return {\n filterTags,\n addFilterTag,\n removeFilterTag,\n resetFilterTags,\n setSearchPhrase,\n searchPhrase,\n visibleLayers,\n toggleVisibleLayer,\n resetVisibleLayers,\n isLayerVisible,\n addVisibleLayer,\n visibleGroupTypes,\n addVisibleGroupType,\n toggleVisibleGroupType,\n isGroupTypeVisible,\n }\n}\n\nexport const FilterProvider: React.FunctionComponent<{\n initialTags: Tag[]\n children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <FilterContext.Provider value={useFilterManager(initialTags)}>{children}</FilterContext.Provider>\n)\n\nexport const useFilterTags = (): Tag[] => {\n const { filterTags } = useContext(FilterContext)\n return filterTags\n}\n\nexport const useAddFilterTag = (): UseFilterManagerResult['addFilterTag'] => {\n const { addFilterTag } = useContext(FilterContext)\n return addFilterTag\n}\n\nexport const useRemoveFilterTag = (): UseFilterManagerResult['removeFilterTag'] => {\n const { removeFilterTag } = useContext(FilterContext)\n return removeFilterTag\n}\n\nexport const useResetFilterTags = (): UseFilterManagerResult['resetFilterTags'] => {\n const { resetFilterTags } = useContext(FilterContext)\n return resetFilterTags\n}\n\nexport const useSearchPhrase = (): UseFilterManagerResult['searchPhrase'] => {\n const { searchPhrase } = useContext(FilterContext)\n return searchPhrase\n}\n\nexport const useSetSearchPhrase = (): UseFilterManagerResult['setSearchPhrase'] => {\n const { setSearchPhrase } = useContext(FilterContext)\n return setSearchPhrase\n}\n\nexport const useVisibleLayer = (): UseFilterManagerResult['visibleLayers'] => {\n const { visibleLayers } = useContext(FilterContext)\n return visibleLayers\n}\n\nexport const useAddVisibleLayer = (): UseFilterManagerResult['addVisibleLayer'] => {\n const { addVisibleLayer } = useContext(FilterContext)\n return addVisibleLayer\n}\n\nexport const useToggleVisibleLayer = (): UseFilterManagerResult['toggleVisibleLayer'] => {\n const { toggleVisibleLayer } = useContext(FilterContext)\n return toggleVisibleLayer\n}\n\nexport const useResetVisibleLayers = (): UseFilterManagerResult['resetVisibleLayers'] => {\n const { resetVisibleLayers } = useContext(FilterContext)\n return resetVisibleLayers\n}\n\nexport const useIsLayerVisible = (): UseFilterManagerResult['isLayerVisible'] => {\n const { isLayerVisible } = useContext(FilterContext)\n return isLayerVisible\n}\n\nexport const useAddVisibleGroupType = (): UseFilterManagerResult['addVisibleGroupType'] => {\n const { addVisibleGroupType } = useContext(FilterContext)\n return addVisibleGroupType\n}\n\nexport const useToggleVisibleGroupType = (): UseFilterManagerResult['toggleVisibleGroupType'] => {\n const { toggleVisibleGroupType } = useContext(FilterContext)\n return toggleVisibleGroupType\n}\n\nexport const useIsGroupTypeVisible = (): UseFilterManagerResult['isGroupTypeVisible'] => {\n const { isGroupTypeVisible } = useContext(FilterContext)\n return isGroupTypeVisible\n}\n\nexport const useVisibleGroupType = (): UseFilterManagerResult['visibleGroupTypes'] => {\n const { visibleGroupTypes } = useContext(FilterContext)\n return visibleGroupTypes\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-misused-promises */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useAddLayer } from './useLayers'\n\nimport type { Item } from '#types/Item'\nimport type { LayerProps } from '#types/LayerProps'\n\ntype ActionType =\n | { type: 'ADD'; item: Item }\n | { type: 'UPDATE'; item: Item }\n | { type: 'REMOVE'; item: Item }\n | { type: 'RESET'; layer: LayerProps }\n\ntype UseItemManagerResult = ReturnType<typeof useItemsManager>\n\nconst ItemContext = createContext<UseItemManagerResult>({\n items: [],\n addItem: () => {},\n updateItem: () => {},\n removeItem: () => {},\n resetItems: () => {},\n setItemsApi: () => {},\n setItemsData: () => {},\n allItemsLoaded: false,\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 allItemsLoaded: boolean\n} {\n const addLayer = useAddLayer()\n\n const [allItemsLoaded, setallItemsLoaded] = useState<boolean>(false)\n\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((item) => item.id === action.item.id)\n if (!exist) {\n return [...state, action.item]\n } else return state\n case 'UPDATE':\n return state.map((item) => {\n if (item.id === action.item.id) {\n return action.item\n }\n return item\n })\n case 'REMOVE':\n return state.filter((item) => item !== action.item)\n case 'RESET':\n return state.filter((item) => item.layer?.name !== action.layer.name)\n default:\n throw new Error()\n }\n }, initialItems)\n\n const setItemsApi = useCallback(async (layer: LayerProps) => {\n addLayer(layer)\n const result = await toast.promise(layer.api!.getItems(), {\n pending: `loading ${layer.name} ...`,\n success: `${layer.name} loaded`,\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n result.map((item) => {\n dispatch({ type: 'ADD', item: { ...item, layer } })\n return null\n })\n setallItemsLoaded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n addLayer(layer)\n layer.data?.map((item) => {\n dispatch({ type: 'ADD', item: { ...item, layer } })\n return null\n })\n setallItemsLoaded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const addItem = useCallback(async (item: Item) => {\n dispatch({\n type: 'ADD',\n item,\n })\n }, [])\n\n const updateItem = useCallback(async (item: Item) => {\n dispatch({\n type: 'UPDATE',\n item,\n })\n }, [])\n\n const removeItem = useCallback((item: Item) => {\n dispatch({\n type: 'REMOVE',\n item,\n })\n }, [])\n\n const resetItems = useCallback((layer: LayerProps) => {\n dispatch({\n type: 'RESET',\n layer,\n })\n }, [])\n\n return {\n items,\n updateItem,\n addItem,\n removeItem,\n resetItems,\n setItemsApi,\n setItemsData,\n allItemsLoaded,\n }\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[]\n children?: React.ReactNode\n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>{children}</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}\n\nexport const useAllItemsLoaded = (): UseItemManagerResult['allItemsLoaded'] => {\n const { allItemsLoaded } = useContext(ItemContext)\n return allItemsLoaded\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useReducer, createContext, useContext } from 'react'\n\nimport type { Item } from '#types/Item'\nimport type { Marker, Popup } from 'leaflet'\n\ninterface LeafletRef {\n item: Item\n marker: Marker\n popup: Popup\n}\n\ntype ActionType =\n | { type: 'ADD_MARKER'; item: Item; marker: Marker }\n | { type: 'ADD_POPUP'; item: Item; popup: Popup }\n\ntype UseLeafletRefsManagerResult = ReturnType<typeof useLeafletRefsManager>\n\nconst LeafletRefsContext = createContext<UseLeafletRefsManagerResult>({\n leafletRefs: {},\n addMarker: () => {},\n addPopup: () => {},\n})\n\nfunction useLeafletRefsManager(initialLeafletRefs: {}): {\n leafletRefs: Record<string, LeafletRef>\n addMarker: (item: Item, marker: Marker) => void\n addPopup: (item: Item, popup: Popup) => void\n} {\n const [leafletRefs, dispatch] = useReducer(\n (state: Record<string, LeafletRef>, action: ActionType) => {\n switch (action.type) {\n case 'ADD_MARKER':\n return {\n ...state,\n [action.item.id]: {\n ...state[action.item.id],\n marker: action.marker,\n item: action.item,\n },\n }\n case 'ADD_POPUP':\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], popup: action.popup, item: action.item },\n }\n default:\n throw new Error()\n }\n },\n initialLeafletRefs,\n )\n\n const addMarker = useCallback((item: Item, marker: Marker) => {\n dispatch({\n type: 'ADD_MARKER',\n item,\n marker,\n })\n }, [])\n\n const addPopup = useCallback((item: Item, popup: Popup) => {\n dispatch({\n type: 'ADD_POPUP',\n item,\n popup,\n })\n }, [])\n\n return { leafletRefs, addMarker, addPopup }\n}\n\nexport const LeafletRefsProvider: React.FunctionComponent<{\n initialLeafletRefs: {}\n children?: React.ReactNode\n}> = ({ initialLeafletRefs, children }) => (\n <LeafletRefsContext.Provider value={useLeafletRefsManager(initialLeafletRefs)}>\n {children}\n </LeafletRefsContext.Provider>\n)\n\nexport const useLeafletRefs = (): Record<string, LeafletRef> => {\n const { leafletRefs } = useContext(LeafletRefsContext)\n return leafletRefs\n}\n\nexport const useAddMarker = (): UseLeafletRefsManagerResult['addMarker'] => {\n const { addMarker } = useContext(LeafletRefsContext)\n return addMarker\n}\n\nexport const useAddPopup = (): UseLeafletRefsManagerResult['addPopup'] => {\n const { addPopup } = useContext(LeafletRefsContext)\n return addPopup\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext, useState, useContext, useEffect } from 'react'\n\nimport type { UserApi } from '#types/UserApi'\nimport type { UserItem } from '#types/UserItem'\n\ninterface AuthProviderProps {\n userApi: UserApi\n children?: React.ReactNode\n}\n\ninterface AuthCredentials {\n email: string\n password: string\n otp?: string | undefined\n}\n\ninterface AuthContextProps {\n isAuthenticated: boolean\n user: UserItem | null\n login: (credentials: AuthCredentials) => Promise<UserItem | undefined>\n register: (credentials: AuthCredentials, userName: string) => Promise<UserItem | undefined>\n loading: boolean\n logout: () => Promise<any>\n updateUser: (user: UserItem) => any\n token: string | null\n requestPasswordReset: (email: string, reset_url: string) => Promise<any>\n passwordReset: (token: string, new_password: string) => Promise<any>\n}\n\nconst AuthContext = createContext<AuthContextProps>({\n isAuthenticated: false,\n user: null,\n login: () => Promise.reject(Error('Unimplemented')),\n register: () => Promise.reject(Error('Unimplemented')),\n loading: false,\n logout: () => Promise.reject(Error('Unimplemented')),\n updateUser: () => Promise.reject(Error('Unimplemented')),\n token: '',\n requestPasswordReset: () => Promise.reject(Error('Unimplemented')),\n passwordReset: () => Promise.reject(Error('Unimplemented')),\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 // eslint-disable-next-line react-hooks/exhaustive-deps\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)\n setLoading(false)\n return me\n } else return undefined\n // eslint-disable-next-line no-catch-all/no-catch-all\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 throw error\n }\n }\n\n const register = async (\n credentials: AuthCredentials,\n userName,\n ): Promise<UserItem | undefined> => {\n setLoading(true)\n try {\n /* const res = */ await userApi.register(credentials.email, credentials.password, userName)\n return await login(credentials)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const logout = async () => {\n try {\n await userApi.logout()\n setUser(null)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const updateUser = async (user: UserItem) => {\n setLoading(true)\n const { id, ...userRest } = user\n\n try {\n const res = await userApi.updateUser(userRest)\n setUser(res as any)\n loadUser()\n setLoading(false)\n return res as any\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const requestPasswordReset = async (email: string, resetUrl?: string): Promise<any> => {\n setLoading(true)\n try {\n await userApi.requestPasswordReset(email, resetUrl)\n return setLoading(false)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const passwordReset = async (token: string, newPassword: string): Promise<any> => {\n setLoading(true)\n try {\n await userApi.passwordReset(token, newPassword)\n return setLoading(false)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n return (\n <AuthContext.Provider\n value={{\n isAuthenticated,\n user,\n login,\n register,\n loading,\n logout,\n updateUser,\n token,\n requestPasswordReset,\n passwordReset,\n }}\n >\n {children}\n </AuthContext.Provider>\n )\n}\nexport const useAuth = () => useContext(AuthContext)\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\n\nimport { useAuth } from '#components/Auth/useAuth'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { LayerProps } from '#types/LayerProps'\nimport type { Permission } from '#types/Permission'\nimport type { PermissionAction } from '#types/PermissionAction'\n\ntype ActionType = { type: 'ADD'; permission: Permission } | { type: 'REMOVE'; id: string }\n\ntype UsePermissionManagerResult = ReturnType<typeof usePermissionsManager>\n\nconst PermissionContext = createContext<UsePermissionManagerResult>({\n permissions: [],\n setPermissionApi: () => {},\n setPermissionData: () => {},\n setAdminRole: () => {},\n hasUserPermission: () => true,\n})\n\nfunction usePermissionsManager(initialPermissions: Permission[]): {\n permissions: Permission[]\n setPermissionApi: (api: ItemsApi<any>) => void\n setPermissionData: (data: Permission[]) => void\n setAdminRole: (adminRole: string) => void\n hasUserPermission: (\n collectionName: string,\n action: PermissionAction,\n item?: Item,\n layer?: LayerProps,\n ) => boolean\n} {\n const [permissions, dispatch] = useReducer((state: Permission[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((permission) => permission.id === action.permission.id)\n if (!exist) {\n return [...state, action.permission]\n } else return state\n\n case 'REMOVE':\n return state.filter(({ id }) => id !== action.id)\n default:\n throw new Error()\n }\n }, initialPermissions)\n\n const [adminRole, setAdminRole] = useState<string | null>(null)\n const { user } = useAuth()\n\n const setPermissionApi = useCallback(async (api: ItemsApi<Permission>) => {\n const result = await api.getItems()\n result.map((permission) => {\n dispatch({ type: 'ADD', permission })\n return null\n })\n }, [])\n\n const setPermissionData = useCallback((data: Permission[]) => {\n data.map((permission) => {\n dispatch({ type: 'ADD', permission })\n return null\n })\n }, [])\n\n const hasUserPermission = useCallback(\n (collectionName: string, action: PermissionAction, item?: Item, layer?: LayerProps) => {\n const evaluateCondition = (condition: any) => {\n if (condition.user_created?._eq === '$CURRENT_USER') {\n return item?.user_created?.id === user?.id\n }\n if (condition.public_edit?._eq === true) {\n return item?.public_edit === true\n }\n return false\n }\n\n const evaluatePermissions = (permissionConditions: any) => {\n if (!permissionConditions || !permissionConditions._and) {\n return true\n }\n\n return permissionConditions._and.every((andCondition: any) =>\n andCondition._or\n ? andCondition._or.some((orCondition: any) => evaluateCondition(orCondition))\n : evaluateCondition(andCondition),\n )\n }\n if (collectionName === 'items' && action === 'create' && layer?.public_edit_items) return true\n // Bedingung für leere Berechtigungen nur, wenn NICHT item und create\n if (permissions.length === 0) return true\n else if (user && user.role.id === adminRole) return true\n else {\n return permissions.some(\n (p) =>\n p.action === action &&\n p.collection === collectionName &&\n ((p.policy?.name === user?.role.name &&\n (!item || evaluatePermissions(p.permissions))) ||\n (p.policy?.name === '$t:public_label' &&\n (layer?.public_edit_items || item?.layer?.public_edit_items) &&\n (!item || evaluatePermissions(p.permissions)))),\n )\n }\n },\n [permissions, user, adminRole],\n )\n\n return { permissions, setPermissionApi, setPermissionData, setAdminRole, hasUserPermission }\n}\n\nexport const PermissionsProvider: React.FunctionComponent<{\n initialPermissions: Permission[]\n children?: React.ReactNode\n}> = ({ initialPermissions, children }) => (\n <PermissionContext.Provider value={usePermissionsManager(initialPermissions)}>\n {children}\n </PermissionContext.Provider>\n)\n\nexport const usePermissions = (): Permission[] => {\n const { permissions } = useContext(PermissionContext)\n return permissions\n}\n\nexport const useSetPermissionApi = (): UsePermissionManagerResult['setPermissionApi'] => {\n const { setPermissionApi } = useContext(PermissionContext)\n return setPermissionApi\n}\n\nexport const useSetPermissionData = (): UsePermissionManagerResult['setPermissionData'] => {\n const { setPermissionData } = useContext(PermissionContext)\n return setPermissionData\n}\n\nexport const useHasUserPermission = (): UsePermissionManagerResult['hasUserPermission'] => {\n const { hasUserPermission } = useContext(PermissionContext)\n return hasUserPermission\n}\n\nexport const useSetAdminRole = (): UsePermissionManagerResult['setAdminRole'] => {\n const { setAdminRole } = useContext(PermissionContext)\n return setAdminRole\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/await-thenable */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useUpdateItem } from './useItems'\nimport { useHasUserPermission } from './usePermissions'\n\nimport type { Item } from '#types/Item'\nimport type { ItemFormPopupProps } from '#types/ItemFormPopupProps'\nimport type { LayerProps } from '#types/LayerProps'\nimport type { Point } from 'geojson'\nimport type { LatLng } from 'leaflet'\n\ninterface PolygonClickedProps {\n position: LatLng\n setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\ntype UseSelectPositionManagerResult = ReturnType<typeof useSelectPositionManager>\n\nconst SelectPositionContext = createContext<UseSelectPositionManagerResult>({\n selectPosition: null,\n setSelectPosition: () => {},\n setMarkerClicked: () => {},\n setMapClicked: () => {},\n})\n\nfunction useSelectPositionManager(): {\n selectPosition: Item | LayerProps | null\n setSelectPosition: React.Dispatch<React.SetStateAction<Item | LayerProps | null>>\n setMarkerClicked: React.Dispatch<React.SetStateAction<Item>>\n setMapClicked: React.Dispatch<React.SetStateAction<PolygonClickedProps | undefined>>\n} {\n const [selectPosition, setSelectPosition] = useState<LayerProps | null | Item>(null)\n const [markerClicked, setMarkerClicked] = useState<Item | null>()\n const [mapClicked, setMapClicked] = useState<PolygonClickedProps>()\n const updateItem = useUpdateItem()\n const hasUserPermission = useHasUserPermission()\n\n useEffect(() => {\n if (\n selectPosition &&\n markerClicked &&\n 'text' in selectPosition &&\n markerClicked.id !== selectPosition.id\n ) {\n itemUpdateParent({ ...selectPosition, parent: markerClicked.id })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [markerClicked])\n\n useEffect(() => {\n if (selectPosition != null) {\n if ('menuIcon' in selectPosition) {\n mapClicked &&\n mapClicked.setItemFormPopup({\n layer: selectPosition as LayerProps,\n position: mapClicked.position,\n })\n setSelectPosition(null)\n }\n if ('text' in selectPosition) {\n const position =\n mapClicked?.position.lng &&\n ({\n type: 'Point',\n coordinates: [mapClicked.position.lng, mapClicked.position.lat],\n } as Point)\n position && itemUpdatePosition({ ...selectPosition, position })\n setSelectPosition(null)\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapClicked])\n\n const itemUpdateParent = async (updatedItem: Item) => {\n if (\n markerClicked?.layer?.api?.collectionName &&\n hasUserPermission(markerClicked.layer.api.collectionName, 'update', markerClicked)\n ) {\n let success = false\n try {\n await updatedItem.layer?.api?.updateItem!({\n id: updatedItem.id,\n parent: updatedItem.parent,\n position: null,\n })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n toast.error(error.toString())\n }\n if (success) {\n await updateItem({ ...updatedItem, parent: updatedItem.parent, position: undefined })\n await linkItem(updatedItem.id)\n toast.success('Item position updated')\n setSelectPosition(null)\n setMarkerClicked(null)\n }\n } else {\n setSelectPosition(null)\n toast.error(\"you don't have permission to add items to \" + markerClicked?.name)\n }\n }\n\n const itemUpdatePosition = async (updatedItem: Item) => {\n let success = false\n try {\n await updatedItem.layer?.api?.updateItem!({\n id: updatedItem.id,\n position: updatedItem.position,\n })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n toast.error(error.toString())\n }\n if (success) {\n updateItem(updatedItem)\n toast.success('Item position updated')\n }\n }\n\n const linkItem = async (id: string) => {\n if (markerClicked) {\n const newRelations = markerClicked.relations || []\n\n if (!newRelations.some((r) => r.related_items_id === id)) {\n newRelations.push({ items_id: markerClicked.id, related_items_id: id })\n const updatedItem = { id: markerClicked.id, relations: newRelations }\n\n let success = false\n try {\n await markerClicked.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...markerClicked, relations: newRelations })\n toast.success('Item linked')\n }\n }\n }\n }\n return { selectPosition, setSelectPosition, setMarkerClicked, setMapClicked }\n}\n\nexport const SelectPositionProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <SelectPositionContext.Provider value={useSelectPositionManager()}>\n {children}\n </SelectPositionContext.Provider>\n)\n\nexport const useSelectPosition = (): Item | LayerProps | null => {\n const { selectPosition } = useContext(SelectPositionContext)\n return selectPosition\n}\n\nexport const useSetSelectPosition = (): UseSelectPositionManagerResult['setSelectPosition'] => {\n const { setSelectPosition } = useContext(SelectPositionContext)\n return setSelectPosition\n}\n\nexport const useSetMarkerClicked = (): UseSelectPositionManagerResult['setMarkerClicked'] => {\n const { setMarkerClicked } = useContext(SelectPositionContext)\n return setMarkerClicked\n}\n\nexport const useSetMapClicked = (): UseSelectPositionManagerResult['setMapClicked'] => {\n const { setMapClicked } = useContext(SelectPositionContext)\n return setMapClicked\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nexport function getValue(obj, path) {\n if (!obj || typeof path !== 'string') return undefined\n\n const pathArray = path.split('.') // Use a different variable for the split path\n for (let i = 0, len = pathArray.length; i < len; i++) {\n if (!obj) return undefined // Check if obj is falsy at each step\n // eslint-disable-next-line security/detect-object-injection\n obj = obj[pathArray[i]] // Dive one level deeper\n }\n return obj // Return the final value\n}\n","export const hashTagRegex = /(#+[a-zA-Z0-9À-ÖØ-öø-ʸ_-]{1,})/g\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\n\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { Tag } from '#types/Tag'\n\ntype ActionType = { type: 'ADD'; tag: Tag } | { type: 'REMOVE'; id: string }\n\ntype UseTagManagerResult = ReturnType<typeof useTagsManager>\n\nconst TagContext = createContext<UseTagManagerResult>({\n tags: [],\n addTag: () => {},\n setTagApi: () => {},\n setTagData: () => {},\n getItemTags: () => [],\n allTagsLoaded: false,\n})\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[]\n addTag: (tag: Tag) => void\n setTagApi: (api: ItemsApi<Tag>) => void\n setTagData: (data: Tag[]) => void\n getItemTags: (item: Item) => Tag[]\n allTagsLoaded: boolean\n} {\n const [allTagsLoaded, setallTagsLoaded] = useState<boolean>(false)\n const [tagCount, setTagCount] = useState<number>(0)\n\n const [tags, dispatch] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find(\n (tag) => tag.name.toLocaleLowerCase() === action.tag.name.toLocaleLowerCase(),\n )\n if (!exist) {\n const newState = [...state, { ...action.tag }]\n if (tagCount === newState.length) setallTagsLoaded(true)\n return newState\n } else return state\n default:\n throw new Error()\n }\n }, initialTags)\n\n const [api, setApi] = 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 setTagCount(result.length)\n if (tagCount === 0) setallTagsLoaded(true)\n if (result) {\n result.map((tag) => {\n // tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: 'ADD', tag })\n return null\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map((tag) => {\n // tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: 'ADD', tag })\n return null\n })\n }, [])\n\n const addTag = (tag: Tag) => {\n dispatch({\n type: 'ADD',\n tag,\n })\n if (!tags.some((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())) {\n api.createItem && api.createItem(tag)\n }\n }\n\n const getItemTags = useCallback(\n (item: Item) => {\n const text =\n item.layer?.itemTextField && item ? getValue(item, item.layer.itemTextField) : undefined\n const itemTagStrings = text?.match(hashTagRegex)\n const itemTags: Tag[] = []\n itemTagStrings?.map((tag) => {\n if (tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n itemTags.push(\n tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())!,\n )\n }\n return null\n })\n item.layer?.itemOffersField &&\n getValue(item, item.layer.itemOffersField)?.map((o) => {\n const offer = tags.find((t) => t.id === o.tags_id)\n offer && itemTags.push(offer)\n return null\n })\n item.layer?.itemNeedsField &&\n getValue(item, item.layer.itemNeedsField)?.map((n) => {\n const need = tags.find((t) => t.id === n.tags_id)\n need && itemTags.push(need)\n return null\n })\n\n return itemTags\n },\n [tags],\n )\n\n return { tags, addTag, setTagApi, setTagData, getItemTags, allTagsLoaded }\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[]\n children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>{children}</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 useSetTagApi = (): UseTagManagerResult['setTagApi'] => {\n const { setTagApi } = useContext(TagContext)\n return setTagApi\n}\n\nexport const useSetTagData = (): UseTagManagerResult['setTagData'] => {\n const { setTagData } = useContext(TagContext)\n return setTagData\n}\n\nexport const useGetItemTags = (): UseTagManagerResult['getItemTags'] => {\n const { getItemTags } = useContext(TagContext)\n return getItemTags\n}\n\nexport const useAllTagsLoaded = (): UseTagManagerResult['allTagsLoaded'] => {\n const { allTagsLoaded } = useContext(TagContext)\n return allTagsLoaded\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useState, createContext, useContext } from 'react'\n\nimport type { AssetsApi } from '#types/AssetsApi'\n\ninterface AppState {\n assetsApi: AssetsApi\n userType: string\n}\n\ntype UseAppManagerResult = ReturnType<typeof useAppManager>\n\nconst initialAppState: AppState = {\n assetsApi: {} as AssetsApi,\n userType: '',\n}\n\nconst AppContext = createContext<UseAppManagerResult>({\n state: initialAppState,\n setAppState: () => {},\n})\n\nfunction useAppManager(): {\n state: AppState\n setAppState: (newState: Partial<AppState>) => void\n} {\n const [state, setState] = useState<AppState>(initialAppState)\n\n const setAppState = useCallback((newState: Partial<AppState>) => {\n setState((prevState) => ({\n ...prevState,\n ...newState,\n }))\n }, [])\n\n return { state, setAppState }\n}\n\nexport const AppStateProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => <AppContext.Provider value={useAppManager()}>{children}</AppContext.Provider>\n\nexport const useAppState = (): AppState => {\n const { state } = useContext(AppContext)\n return state\n}\n\nexport const useSetAppState = (): UseAppManagerResult['setAppState'] => {\n const { setAppState } = useContext(AppContext)\n return setAppState\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport { useContext, createContext } from 'react'\nimport { BrowserRouter as Router, useLocation } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\n\nimport { QuestsProvider } from '#components/Gaming/hooks/useQuests'\nimport { ClusterRefProvider } from '#components/Map/hooks/useClusterRef'\nimport { FilterProvider } from '#components/Map/hooks/useFilter'\nimport { ItemsProvider } from '#components/Map/hooks/useItems'\nimport { LayersProvider } from '#components/Map/hooks/useLayers'\nimport { LeafletRefsProvider } from '#components/Map/hooks/useLeafletRefs'\nimport { PermissionsProvider } from '#components/Map/hooks/usePermissions'\nimport { SelectPositionProvider } from '#components/Map/hooks/useSelectPosition'\nimport { TagsProvider } from '#components/Map/hooks/useTags'\n\nimport { AppStateProvider } from './hooks/useAppState'\n\n// Helper context to determine if the ContextWrapper is already present.\nconst ContextCheckContext = createContext(false)\n\n// eslint-disable-next-line react/prop-types\nexport const ContextWrapper = ({ children }) => {\n const isWrapped = useContext(ContextCheckContext)\n\n // Check if we are already inside a Router\n let location\n try {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n location = useLocation()\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (e) {\n location = null\n }\n\n // Case 1: Only the Router is missing, but ContextWrapper is already provided\n if (!location && isWrapped) {\n return <Router>{children}</Router>\n }\n\n // Case 2: Neither Router nor ContextWrapper is present\n if (!location && !isWrapped) {\n return (\n <Router>\n <ContextCheckContext.Provider value={true}>\n <Wrappers>{children}</Wrappers>\n </ContextCheckContext.Provider>\n </Router>\n )\n }\n\n // Case 3: Only ContextWrapper is missing\n if (location && !isWrapped) {\n return (\n <ContextCheckContext.Provider value={true}>\n <Wrappers>{children}</Wrappers>\n </ContextCheckContext.Provider>\n )\n }\n\n // Case 4: Both Router and ContextWrapper are already present\n return children\n}\n\n// eslint-disable-next-line react/prop-types\nexport const Wrappers = ({ children }) => {\n const queryClient = new QueryClient()\n\n return (\n <PermissionsProvider initialPermissions={[]}>\n <TagsProvider initialTags={[]}>\n <LayersProvider initialLayers={[]}>\n <FilterProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <SelectPositionProvider>\n <LeafletRefsProvider initialLeafletRefs={{}}>\n <QueryClientProvider client={queryClient}>\n <AppStateProvider>\n <ClusterRefProvider>\n <QuestsProvider initialOpen={true}>\n <ToastContainer\n 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 />\n {children}\n </QuestsProvider>\n </ClusterRefProvider>\n </AppStateProvider>\n </QueryClientProvider>\n </LeafletRefsProvider>\n </SelectPositionProvider>\n </ItemsProvider>\n </FilterProvider>\n </LayersProvider>\n </TagsProvider>\n </PermissionsProvider>\n )\n}\n","export function containsUUID(str: string): boolean {\n const uuidRegex = /[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i\n return uuidRegex.test(str)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\n\nexport default function AddButton({\n triggerAction,\n}: {\n triggerAction: React.Dispatch<React.SetStateAction<any>>\n}) {\n const layers = useLayers()\n const hasUserPermission = useHasUserPermission()\n\n const canAddItems = () => {\n let canAdd = false\n layers.map((layer) => {\n if (\n layer.api?.createItem &&\n hasUserPermission(layer.api.collectionName!, 'create', undefined, layer) &&\n layer.listed\n )\n canAdd = true\n return null\n })\n return canAdd\n }\n\n return (\n <>\n {canAddItems() ? (\n <div className='tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-4 tw-bottom-4'>\n <label tabIndex={0} className='tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='3'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </label>\n <ul tabIndex={0} className='tw-dropdown-content tw-pr-1 tw-list-none'>\n {layers.map(\n (layer) =>\n layer.api?.createItem &&\n hasUserPermission(layer.api.collectionName!, 'create', undefined, layer) &&\n layer.listed && (\n <li key={layer.name}>\n <a>\n <div className='tw-tooltip tw-tooltip-left' data-tip={layer.menuText}>\n <button\n tabIndex={0}\n className='tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none'\n style={{ backgroundColor: layer.menuColor || '#777' }}\n onClick={() => {\n triggerAction(layer)\n }}\n onTouchEnd={(e) => {\n triggerAction(layer)\n e.preventDefault()\n }}\n >\n <img\n src={layer.menuIcon}\n className='tw-h-6 tw-w-6 tw-text-white'\n style={{ filter: 'invert(100%) brightness(200%)' }}\n />\n </button>\n </div>\n </a>\n </li>\n ),\n )}\n </ul>\n </div>\n ) : (\n ''\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { DomEvent } from 'leaflet'\nimport { createRef, useEffect } from 'react'\n\nexport const Control = ({\n position,\n children,\n zIndex,\n absolute,\n}: {\n position: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'\n children: React.ReactNode\n zIndex: string\n absolute: boolean\n}) => {\n const controlContainerRef = createRef<HTMLDivElement>()\n\n useEffect(() => {\n if (controlContainerRef.current !== null) {\n DomEvent.disableClickPropagation(controlContainerRef.current)\n DomEvent.disableScrollPropagation(controlContainerRef.current)\n }\n }, [controlContainerRef])\n\n return (\n <div\n ref={controlContainerRef}\n style={{ zIndex }}\n className={`${absolute && 'tw-absolute'} tw-z-[999] tw-flex-col ${position === 'topLeft' && 'tw-top-4 tw-left-4'} ${position === 'bottomLeft' && 'tw-bottom-4 tw-left-4'} ${position === 'topRight' && 'tw-bottom-4 tw-right-4'} ${position === 'bottomRight' && 'tw-bottom-4 tw-right-4'}`}\n >\n {children}\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\n\nimport {\n useAddVisibleGroupType,\n useIsGroupTypeVisible,\n useToggleVisibleGroupType,\n useVisibleGroupType,\n} from '#components/Map/hooks/useFilter'\n\nexport function FilterControl() {\n const [open, setOpen] = useState(false)\n\n const groupTypes = [\n { text: 'Regional Gruppe', value: 'wuerdekompass' },\n { text: 'Themen Gruppe', value: 'themenkompass' },\n { text: 'liebevoll.jetzt', value: 'liebevoll.jetzt' },\n ]\n\n useEffect(() => {\n groupTypes.map((layer) => addVisibleGroupType(layer.value))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const isGroupTypeVisible = useIsGroupTypeVisible()\n const toggleVisibleGroupType = useToggleVisibleGroupType()\n const addVisibleGroupType = useAddVisibleGroupType()\n const visibleGroupTypes = useVisibleGroupType()\n\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {open ? (\n <div className='tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-w-fit tw-transition-all tw-duration-300'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setOpen(false)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <ul className='tw-flex-row'>\n {groupTypes.map((groupType) => (\n <li key={groupType.value}>\n <label\n htmlFor={groupType.value}\n className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'\n >\n <input\n id={groupType.value}\n onChange={() => toggleVisibleGroupType(groupType.value)}\n type='checkbox'\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isGroupTypeVisible(groupType.value)}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>\n {groupType.text}\n </span>\n </label>\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className='tw-indicator'>\n {visibleGroupTypes.length < groupTypes.length && (\n <span className='tw-indicator-item tw-badge tw-badge-success tw-h-4 tw-p-2 tw-translate-x-1/3 -tw-translate-y-1/3 tw-border-0'></span>\n )}\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n setOpen(true)\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={2.3}\n stroke='currentColor'\n className='size-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z'\n />\n </svg>\n </div>\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { DomEvent } from 'leaflet'\nimport { createRef, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nexport function MapOverlayPage({\n children,\n className,\n backdrop,\n card = true,\n}: {\n children: React.ReactNode\n className?: string\n backdrop?: boolean\n card?: boolean\n}) {\n const closeScreen = () => {\n navigate(`/${window.location.search ? window.location.search : ''}`)\n }\n\n const navigate = useNavigate()\n\n const overlayRef = createRef<HTMLDivElement>()\n const backdropRef = createRef<HTMLDivElement>()\n\n useEffect(() => {\n if (overlayRef.current !== null) {\n DomEvent.disableClickPropagation(overlayRef.current)\n DomEvent.disableScrollPropagation(overlayRef.current)\n }\n if (backdropRef.current !== null && backdrop) {\n DomEvent.disableClickPropagation(backdropRef.current)\n DomEvent.disableScrollPropagation(backdropRef.current)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [overlayRef, backdropRef])\n\n return (\n <div className={`tw-absolute tw-h-full tw-w-full tw-m-auto ${backdrop && 'tw-z-[2000]'}`}>\n <div\n ref={backdropRef}\n className={`${backdrop && 'tw-backdrop-brightness-75'} tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto`}\n >\n <div\n ref={overlayRef}\n className={`${card && 'tw-card tw-card-body'} tw-shadow-xl tw-bg-base-100 tw-p-6 ${className && className} ${!backdrop && 'tw-z-[2000]'} tw-absolute tw-top-0 tw-bottom-0 tw-right-0 tw-left-0 tw-m-auto`}\n >\n {children}\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2'\n onClick={() => closeScreen()}\n >\n ✕\n </button>\n </div>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-floating-promises */\nimport { useEffect, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function LoginPage() {\n const [email, setEmail] = useState<string>('')\n const [password, setPassword] = useState<string>('')\n\n const { login, loading } = useAuth()\n\n const navigate = useNavigate()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onLogin = async () => {\n await toast.promise(login({ email, password }), {\n success: {\n render({ data }) {\n navigate('/')\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: '✌️',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n autoClose: 10000,\n },\n pending: 'logging in ...',\n })\n }\n\n useEffect(() => {\n const keyDownHandler = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n onLogin()\n }\n }\n document.addEventListener('keydown', keyDownHandler)\n return () => {\n document.removeEventListener('keydown', keyDownHandler)\n }\n }, [onLogin])\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Login</h2>\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-text-right tw-text-primary'>\n <Link to='/reset-password'>\n <span className='tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200'>\n Forgot Password?\n </span>\n </Link>\n </div>\n <div className='tw-card-actions'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onLogin()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Login'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-misused-promises */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function SignupPage() {\n const [email, setEmail] = useState<string>('')\n const [userName, setUserName] = useState<string>('')\n\n const [password, setPassword] = useState<string>('')\n\n const { register, loading } = useAuth()\n\n const navigate = useNavigate()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onRegister = async () => {\n await toast.promise(register({ email, password }, userName), {\n success: {\n render({ data }) {\n navigate('/')\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: '✌️',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n autoClose: 10000,\n },\n pending: 'creating new user ...',\n })\n }\n\n useEffect(() => {\n const keyDownHandler = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n onRegister()\n }\n }\n document.addEventListener('keydown', keyDownHandler)\n return () => {\n document.removeEventListener('keydown', keyDownHandler)\n }\n }, [onRegister])\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Sign Up</h2>\n <input\n type='text'\n placeholder='Name'\n value={userName}\n onChange={(e) => setUserName(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onRegister()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Sign Up'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\n// eslint-disable-next-line react/prop-types\nexport function RequestPasswordPage({ resetUrl }) {\n const [email, setEmail] = useState<string>('')\n\n const { requestPasswordReset, loading } = useAuth()\n\n const navigate = useNavigate()\n\n const onReset = async () => {\n await toast.promise(requestPasswordReset(email, resetUrl), {\n success: {\n render() {\n navigate('/')\n return 'Check your mailbox'\n },\n // other options\n icon: '📬',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'sending email ...',\n })\n }\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Reset Password</h2>\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onReset()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Send'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function SetNewPasswordPage() {\n const [password, setPassword] = useState<string>('')\n\n const { passwordReset, loading } = useAuth()\n\n const navigate = useNavigate()\n\n const onReset = async () => {\n const token = window.location.search.split('token=')[1]\n // eslint-disable-next-line no-console\n console.log(token)\n\n await toast.promise(passwordReset(token, password), {\n success: {\n render() {\n navigate('/')\n return 'New password set'\n },\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'setting password ...',\n })\n }\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Set new Password</h2>\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onReset()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Set'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useNavigate } from 'react-router-dom'\n\nimport { useAuth } from '#components/Auth'\n\nexport const GratitudeControl = () => {\n const navigate = useNavigate()\n const { isAuthenticated } = useAuth()\n\n if (isAuthenticated) {\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n navigate('/select-user')\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={2.5}\n stroke='currentColor'\n className='size-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z'\n />\n </svg>\n </div>\n }\n </div>\n )\n } else return <></>\n}\n","import { useState } from 'react'\n\nimport { useIsLayerVisible, useToggleVisibleLayer } from '#components/Map/hooks/useFilter'\nimport { useLayers } from '#components/Map/hooks/useLayers'\n\nexport function LayerControl() {\n const [open, setOpen] = useState(false)\n\n const layers = useLayers()\n\n const isLayerVisible = useIsLayerVisible()\n const toggleVisibleLayer = useToggleVisibleLayer()\n\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {open ? (\n <div className='tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-transition-all tw-w-fit tw-duration-300'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setOpen(false)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <ul className='tw-flex-row'>\n {layers.map(\n (layer) =>\n layer.listed && (\n <li key={layer.name}>\n <label\n htmlFor={layer.name}\n className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'\n >\n <input\n id={layer.name}\n onChange={() => toggleVisibleLayer(layer)}\n type='checkbox'\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isLayerVisible(layer)}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>\n {layer.name}\n </span>\n </label>\n </li>\n ),\n )}\n </ul>\n </div>\n ) : (\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n setOpen(true)\n }}\n >\n <svg version='1.1' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'>\n <path\n id='svg_1'\n fill='currentColor'\n d='m2.75565,11.90727l-1.03852,0.28372c-0.77718,0.38859 -0.77718,1.0138 0,1.4023l7.0156,3.5078c0.77718,0.38859 2.0275,0.38859 2.8047,0l7.0156,-3.5078c0.77718,-0.38859 0.77718,-1.0138 0,-1.4023l-0.63311,-0.48643l-4.67718,2.23624c-1.5452,0.77262 -3.31877,1.58343 -4.86407,0.81081l-5.62302,-2.84434z'\n />\n <path\n id='svg_2'\n strokeWidth='2'\n stroke='currentColor'\n fill='none'\n d='m11.247,4.30851l6.2349,3.0877c0.69083,0.34211 0.69083,0.89295 0,1.2351l-6.2349,3.0877c-0.69083,0.34211 -1.8031,0.34212 -2.494,0l-6.2349,-3.0877c-0.69083,-0.34211 -0.69083,-0.89295 0,-1.2351l6.2349,-3.0877c0.69083,-0.34211 1.8031,-0.34211 2.494,0z'\n />\n </svg>\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useCallback, useEffect, useRef } from 'react'\n\nexport const useTimeout = (callback, delay) => {\n const callbackRef = useRef(callback)\n const timeoutRef = useRef<any>()\n\n useEffect(() => {\n callbackRef.current = callback\n }, [callback])\n\n const set = useCallback(() => {\n timeoutRef.current = setTimeout(() => callbackRef.current(), delay)\n }, [delay])\n\n const clear = useCallback(() => {\n timeoutRef.current && clearTimeout(timeoutRef.current)\n }, [])\n\n useEffect(() => {\n set()\n return clear\n }, [delay, set, clear])\n\n const reset = useCallback(() => {\n clear()\n set()\n }, [clear, set])\n\n return { reset, clear }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect } from 'react'\n\nimport { useTimeout } from './useTimeout'\n\nexport const useDebounce = (callback, delay, deps) => {\n const { reset, clear } = useTimeout(callback, delay)\n\n useEffect(reset, [...deps, reset])\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(clear, [])\n}\n","export function decodeTag(string: string) {\n const formatedTag = string.replace(/_/g, '\\u00A0')\n return formatedTag.charAt(0).toUpperCase() + formatedTag.slice(1)\n}\n\nexport function encodeTag(string: string) {\n return string.replace(/\\s+/g, '_')\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { divIcon, Point } from 'leaflet'\n\nconst createSvg = (shape: string, markerColor: string, borderColor: string) => {\n const svgMap = {\n circle:\n '<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=\"' +\n markerColor +\n '\" /><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=\"' +\n borderColor +\n '\" opacity=\"1\" /></svg>',\n square:\n '<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=\"' +\n markerColor +\n '\" /><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=\"' +\n borderColor +\n '\" /></g></svg>',\n star:\n '<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=\"' +\n markerColor +\n '\" /><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:\n '<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=\"' +\n markerColor +\n '\" /><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 // eslint-disable-next-line security/detect-object-injection\n return svgMap[shape]\n}\n\nconst addIcon = (icon: string) => {\n switch (icon) {\n case 'point':\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 case 'calendar':\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 case 'user':\n return '<svg fill=\"#fff\" class=\"user-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.5em\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"/></svg>'\n case 'fire':\n return '<svg fill=\"#fff\" class=\"fire-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 19.534 26.387\"><path d=\"M7.15 26.05C2.894 24.876.006 21.028.006 16.53c0-4.036 2.718-8.378 4.38-6.999.289.24.383.993.383 3.074 0 3.3.46 4.508 1.997 5.237 2.512 1.192 5.206-1.18 4.506-3.969-.097-.386-.99-1.562-1.986-2.614C7.04 8.887 6.583 8.026 6.583 6.176c0-2.333 2.02-6.182 3.244-6.182.59 0 1.292.98 1.292 1.805 0 1.227.951 2.596 3.727 5.362 3.655 3.642 4.493 5.216 4.671 8.776.143 2.847-.365 4.593-1.93 6.644-2.332 3.054-6.69 4.503-10.437 3.47z\"/></svg>'\n case 'tree':\n return '<svg fill=\"#fff\" class=\"tree-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"2em\" xml:space=\"preserve\" viewBox=\"0 0 24 24\"><path d=\"M11 21v-4.3c-.5.2-1 .3-1.5.3C7 17 5 15 5 12.5c0-1.3.5-2.4 1.4-3.2-.3-.6-.4-1.2-.4-1.8C6 5 8 3 10.5 3c1.6 0 2.9.8 3.8 2h.2c3 0 5.5 2.5 5.5 5.5S17.5 16 14.5 16c-.5 0-1-.1-1.5-.2V21h-2z\"/><path fill=\"none\" d=\"M0 0h24v24H0z\"/></svg>'\n case 'music':\n return '<svg fill=\"#fff\" class=\"music-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.4em\" viewBox=\"0 0 512 512\"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d=\"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"/></svg>'\n case 'drum':\n return '<svg class=\"drum-icon\" stroke=\"#fff\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 32 32\" height=\"1.8em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 27.1875 5.09375 L 16.125 10.34375 C 15.804688 10.128906 15.414063 10 15 10 C 13.894531 10 13 10.894531 13 12 C 13 13.105469 13.894531 14 15 14 C 16.050781 14 16.921875 13.1875 17 12.15625 L 23.0625 9.28125 C 24.878906 10.046875 26 11.046875 26 12 C 26 13.886719 21.722656 16 16 16 C 10.277344 16 6 13.886719 6 12 C 6 10.113281 10.277344 8 16 8 C 16.171875 8 16.328125 7.996094 16.5 8 L 20.03125 6.34375 C 18.777344 6.132813 17.433594 6 16 6 C 9.160156 6 4 8.578125 4 12 L 4 22 C 4 22.988281 4.445313 23.894531 5.125 24.625 C 5.804688 25.355469 6.730469 25.945313 7.8125 26.4375 C 9.976563 27.421875 12.839844 28 16 28 C 19.160156 28 22.023438 27.421875 24.1875 26.4375 C 25.269531 25.945313 26.195313 25.355469 26.875 24.625 C 27.554688 23.894531 28 22.988281 28 22 L 28 12 C 28 10.523438 27.023438 9.210938 25.375 8.1875 L 28.03125 6.90625 Z M 6 15.40625 C 7.015625 16.171875 8.378906 16.800781 10 17.25 L 10 25.15625 C 9.5 25 9.042969 24.816406 8.625 24.625 C 7.71875 24.210938 7.027344 23.714844 6.59375 23.25 C 6.160156 22.785156 6 22.394531 6 22 Z M 26 15.40625 L 26 22 C 26 22.394531 25.839844 22.785156 25.40625 23.25 C 24.972656 23.714844 24.28125 24.210938 23.375 24.625 C 22.957031 24.816406 22.5 25 22 25.15625 L 22 17.25 C 23.621094 16.800781 24.984375 16.171875 26 15.40625 Z M 12 17.6875 C 13.242188 17.894531 14.582031 18 16 18 C 17.417969 18 18.757813 17.894531 20 17.6875 L 20 25.625 C 18.769531 25.855469 17.421875 26 16 26 C 14.578125 26 13.230469 25.855469 12 25.625 Z\"></path></svg>'\n case 'quest':\n return '<svg class=\"quest-icon\" viewBox=\"0 0 4.69 5.987\" fill=\"#fff\" height=\"1.3em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.395 0 0 .898v2.096C0 4.79 2.395 5.987 2.395 5.987S4.79 4.79 4.79 2.994V.898zm.026 1.262c.518 0 1.07.404 1.07.937 0 .707-.764.718-.764.98v.035c0 .08-.065.146-.146.146H2.14a.146.146 0 0 1-.146-.146v-.06c0-.377.285-.528.501-.649.186-.104.3-.174.3-.312 0-.182-.232-.303-.42-.303-.239 0-.352.11-.505.302a.147.147 0 0 1-.203.025l-.263-.2a.147.147 0 0 1-.032-.2c.248-.355.563-.555 1.05-.555zM2.36 3.54a.423.423 0 1 1 0 .846.423.423 0 0 1 0-.846z\"/></svg>'\n case 'compass':\n return '<svg class=\"compass-icon\" fill=\"#fff\" height=\"1.8em\" viewBox=\"0 0 67.731 67.731\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m135.772 101.812-7.157-.73c-1.669-10.98-11.344-20.654-22.323-22.323l-.73-7.144c-.536-2.136-3.571-2.136-4.107 0l-.73 7.157c-10.98 1.669-20.654 11.344-22.323 22.323l-7.144.73c-2.136.536-2.136 3.571 0 4.107l7.157.73c1.669 10.98 11.344 20.654 22.323 22.323l.73 7.157c.536 2.136 3.571 2.136 4.107 0l.73-7.157c10.98-1.669 20.655-11.344 22.323-22.323l7.157-.73c2.136-.536 2.136-3.571 0-4.107zm-11.687-1.323-15.126-2.074-2.064-15.126c7.718 1.857 15.332 9.471 17.19 17.19zm-23.963-17.198-2.064 15.124-15.126 2.064c1.857-7.719 9.471-15.333 17.19-17.19zm-17.198 23.964 15.134 2.06 2.064 15.127c-7.719-1.858-15.333-9.472-17.19-17.19zm23.963 17.198 2.064-15.127 15.126-2.063c-1.86 7.712-9.47 15.32-17.182 17.179z\" style=\"stroke-width:.264583\" transform=\"translate(-69.656 -70.013)\"/></svg>'\n case 'liebevoll.jetzt':\n return '<svg class=\"liebevoll-jetzt-icon\" fill=\"#fff\" height=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 42 42\"><path fill=\"#e52220\" d=\"M32.554 33.551c0-.2.2-.5 0-.7-.2-.2-.1 0-.3-.1-.5-.2-1.2-.1-1.7.2-.7.3-1.7 1.5-1.3 2.4.2.3.5.6.8.8.5.3.8-.1 1.2-.4.4-.3.7-.5.9-1 .1-.1.8-1.2.4-1.2z\"/> <path fill=\"#fff\" d=\"M14.426 41.57c-1.512-.808-2.234-2.322-2.403-5.038-.104-1.671.136-3.65.844-6.962.497-2.327.545-2.56.81-3.95.236-1.234 3.381-10.767 4.237-12.842.688-1.667 3.022-6.084 3.379-6.394.158-.137.708-.948 1.22-1.802C24.243 1.704 25.935 0 27.065 0c1.134 0 2.303 1.066 2.763 2.521.274.864.133 2.528-.34 4.032-.551 1.754-2.928 6.42-3.994 7.84a37.025 37.025 0 0 0-1.753 2.622c-1.173 1.957-2.233 3.525-4.002 5.92-.831 1.126-1.628 2.306-1.77 2.621-.422.932-1.792 6.558-1.836 7.536-.023.496-.095 1.73-.16 2.742-.175 2.714.265 3.687 1.54 3.407.737-.162 1.569-.967 3.197-3.092 2.302-3.005 5.204-7.528 6.524-10.17.622-1.243 1.228-2.06 1.528-2.06.394 0 .46 1.003.131 1.975-.413 1.219-4.57 8.126-6.186 10.277-1.727 2.3-4.191 4.785-5.233 5.277-1.194.564-2.15.602-3.048.123zm6.76-23.631c2.714-4.414 5.248-9.115 5.42-10.052.027-.148.172-.553.322-.9.397-.915.872-2.532.997-3.386.077-.532.04-.833-.132-1.065-.232-.315-.259-.305-.918.33-1.692 1.632-4.116 7.08-6.488 14.581-.484 1.532-.88 2.855-.881 2.94-.002.255.192-.026 1.68-2.449z\"/></svg>'\n case 'group':\n return '<svg class=\"group-icon\" stroke=\"#fff\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 20 20\" aria-hidden=\"true\" height=\"1.6em\" width=\"1.6em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM6 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM1.49 15.326a.78.78 0 0 1-.358-.442 3 3 0 0 1 4.308-3.516 6.484 6.484 0 0 0-1.905 3.959c-.023.222-.014.442.025.654a4.97 4.97 0 0 1-2.07-.655ZM16.44 15.98a4.97 4.97 0 0 0 2.07-.654.78.78 0 0 0 .357-.442 3 3 0 0 0-4.308-3.517 6.484 6.484 0 0 1 1.907 3.96 2.32 2.32 0 0 1-.026.654ZM18 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM5.304 16.19a.844.844 0 0 1-.277-.71 5 5 0 0 1 9.947 0 .843.843 0 0 1-.277.71A6.975 6.975 0 0 1 10 18a6.974 6.974 0 0 1-4.696-1.81Z\"></path></svg>'\n case 'puzzle':\n return '<svg class=\"group-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#fff\" width=\"1.6em\" height=\"1.6em\"><path d=\"M11.25 5.337c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.036 1.007-1.875 2.25-1.875S15 2.34 15 3.375c0 .369-.128.713-.349 1.003-.215.283-.401.604-.401.959 0 .332.278.598.61.578 1.91-.114 3.79-.342 5.632-.676a.75.75 0 0 1 .878.645 49.17 49.17 0 0 1 .376 5.452.657.657 0 0 1-.66.664c-.354 0-.675-.186-.958-.401a1.647 1.647 0 0 0-1.003-.349c-1.035 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401.31 0 .557.262.534.571a48.774 48.774 0 0 1-.595 4.845.75.75 0 0 1-.61.61c-1.82.317-3.673.533-5.555.642a.58.58 0 0 1-.611-.581c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.035-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959a.641.641 0 0 1-.658.643 49.118 49.118 0 0 1-4.708-.36.75.75 0 0 1-.645-.878c.293-1.614.504-3.257.629-4.924A.53.53 0 0 0 5.337 15c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.036 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.369 0 .713.128 1.003.349.283.215.604.401.959.401a.656.656 0 0 0 .659-.663 47.703 47.703 0 0 0-.31-4.82.75.75 0 0 1 .83-.832c1.343.155 2.703.254 4.077.294a.64.64 0 0 0 .657-.642Z\" /></svg>'\n case 'staff-snake':\n return '<svg class=\"staff-snake-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 384 512\" height=\"1.4em\" width=\"1.4em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M222.6 43.2l-.1 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"></path></svg>'\n case 'flower':\n return '<svg class=\"flower-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M210.35,129.36c-.81-.47-1.7-.92-2.62-1.36.92-.44,1.81-.89,2.62-1.36a40,40,0,1,0-40-69.28c-.81.47-1.65,1-2.48,1.59.08-1,.13-2,.13-3a40,40,0,0,0-80,0c0,.94,0,1.94.13,3-.83-.57-1.67-1.12-2.48-1.59a40,40,0,1,0-40,69.28c.81.47,1.7.92,2.62,1.36-.92.44-1.81.89-2.62,1.36a40,40,0,1,0,40,69.28c.81-.47,1.65-1,2.48-1.59-.08,1-.13,2-.13,2.95a40,40,0,0,0,80,0c0-.94-.05-1.94-.13-2.95.83.57,1.67,1.12,2.48,1.59A39.79,39.79,0,0,0,190.29,204a40.43,40.43,0,0,0,10.42-1.38,40,40,0,0,0,9.64-73.28ZM104,128a24,24,0,1,1,24,24A24,24,0,0,1,104,128Zm74.35-56.79a24,24,0,1,1,24,41.57c-6.27,3.63-18.61,6.13-35.16,7.19A40,40,0,0,0,154.53,98.1C163.73,84.28,172.08,74.84,178.35,71.21ZM128,32a24,24,0,0,1,24,24c0,7.24-4,19.19-11.36,34.06a39.81,39.81,0,0,0-25.28,0C108,75.19,104,63.24,104,56A24,24,0,0,1,128,32ZM44.86,80a24,24,0,0,1,32.79-8.79c6.27,3.63,14.62,13.07,23.82,26.89A40,40,0,0,0,88.81,120c-16.55-1.06-28.89-3.56-35.16-7.18A24,24,0,0,1,44.86,80ZM77.65,184.79a24,24,0,1,1-24-41.57c6.27-3.63,18.61-6.13,35.16-7.19a40,40,0,0,0,12.66,21.87C92.27,171.72,83.92,181.16,77.65,184.79ZM128,224a24,24,0,0,1-24-24c0-7.24,4-19.19,11.36-34.06a39.81,39.81,0,0,0,25.28,0C148,180.81,152,192.76,152,200A24,24,0,0,1,128,224Zm83.14-48a24,24,0,0,1-32.79,8.79c-6.27-3.63-14.62-13.07-23.82-26.89A40,40,0,0,0,167.19,136c16.55,1.06,28.89,3.56,35.16,7.18A24,24,0,0,1,211.14,176Z\"></path></svg>'\n case 'network':\n return '<svg class=\"network-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M212,200a36,36,0,1,1-69.85-12.25l-53-34.05a36,36,0,1,1,0-51.4l53-34a36.09,36.09,0,1,1,8.67,13.45l-53,34.05a36,36,0,0,1,0,24.5l53,34.05A36,36,0,0,1,212,200Z\"></path></svg>'\n case 'crosshair':\n return '<svg class=\"network-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M256 0c17.7 0 32 14.3 32 32l0 10.4c93.7 13.9 167.7 88 181.6 181.6l10.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.4 0c-13.9 93.7-88 167.7-181.6 181.6l0 10.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-10.4C130.3 455.7 56.3 381.7 42.4 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l10.4 0C56.3 130.3 130.3 56.3 224 42.4L224 32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6l0-20.6c0-17.7 14.3-32 32-32s32 14.3 32 32l0 20.6c58.3-12.5 104.1-58.4 116.6-116.6L384 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l20.6 0C392.1 165.7 346.3 119.9 288 107.4l0 20.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-20.6C165.7 119.9 119.9 165.7 107.4 224l20.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-20.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"></path></svg>'\n case 'shop':\n return '<svg class=\"shop-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 640 512\" height=\"1.25em\" width=\"1.25em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M36.8 192l566.3 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224l0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-160-64 0 0 160-192 0 0-160-64 0zm448 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256-64 0z\"></path></svg>'\n case 'plant':\n return '<svg class=\"plant-icon\" stroke=\"currentColor\" stroke-width=\"0\" fill=\"#fff\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M205.41,159.07a60.9,60.9,0,0,1-31.83,8.86,71.71,71.71,0,0,1-27.36-5.66A55.55,55.55,0,0,0,136,194.51V224a8,8,0,0,1-8.53,8,8.18,8.18,0,0,1-7.47-8.25V211.31L81.38,172.69A52.5,52.5,0,0,1,63.44,176a45.82,45.82,0,0,1-23.92-6.67C17.73,156.09,6,125.62,8.27,87.79a8,8,0,0,1,7.52-7.52c37.83-2.23,68.3,9.46,81.5,31.25A46,46,0,0,1,103.74,140a4,4,0,0,1-6.89,2.43l-19.2-20.1a8,8,0,0,0-11.31,11.31l53.88,55.25c.06-.78.13-1.56.21-2.33a68.56,68.56,0,0,1,18.64-39.46l50.59-53.46a8,8,0,0,0-11.31-11.32l-49,51.82a4,4,0,0,1-6.78-1.74c-4.74-17.48-2.65-34.88,6.4-49.82,17.86-29.48,59.42-45.26,111.18-42.22a8,8,0,0,1,7.52,7.52C250.67,99.65,234.89,141.21,205.41,159.07Z\"></path></svg>'\n case 'circle-dot':\n return '<svg class=\"circle-dot-icon\" stroke=\"#fff\" fill=\"transparent\" stroke-width=\"2.5\" viewBox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\" height=\"1.55em\" width=\"1.55em\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"1\"></circle></svg>'\n case 'cannabis':\n return '<svg class=\"network-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"></path></svg>'\n default:\n return ''\n }\n}\n\nconst MarkerIconFactory = (shape: string, color1: string, color2: string, icon: string) => {\n return divIcon({\n html: `${createSvg(shape, color1, color2)}${addIcon(icon)}`,\n iconAnchor: [17, 40],\n popupAnchor: [0, -40],\n iconSize: new Point(40, 46),\n className: 'leaflet-data-marker',\n shadowAnchor: [0, 0],\n })\n}\n\nexport default MarkerIconFactory\n","/*!\nCopyright (c) 2016 Dominik Moritz\n\nThis file is part of the leaflet locate control. It is licensed under the MIT license.\nYou can find the project at: https://github.com/domoritz/leaflet-locatecontrol\n*/\n(function (factory, window) {\n // see https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md#module-loaders\n // for details on how to structure a leaflet plugin.\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === \"function\" && define.amd) {\n define([\"leaflet\"], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === \"object\") {\n if (typeof window !== \"undefined\" && window.L) {\n module.exports = factory(L);\n } else {\n module.exports = factory(require(\"leaflet\"));\n }\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== \"undefined\" && window.L) {\n window.L.Control.Locate = factory(L);\n }\n})(function (L) {\n const LDomUtilApplyClassesMethod = (method, element, classNames) => {\n classNames = classNames.split(\" \");\n classNames.forEach(function (className) {\n L.DomUtil[method].call(this, element, className);\n });\n };\n\n const addClasses = (el, names) => LDomUtilApplyClassesMethod(\"addClass\", el, names);\n const removeClasses = (el, names) => LDomUtilApplyClassesMethod(\"removeClass\", el, names);\n\n /**\n * Compatible with L.Circle but a true marker instead of a path\n */\n const LocationMarker = L.Marker.extend({\n initialize(latlng, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this.createIcon();\n },\n\n /**\n * Create a styled circle location marker\n */\n createIcon() {\n const opt = this.options;\n\n let style = \"\";\n\n if (opt.color !== undefined) {\n style += `stroke:${opt.color};`;\n }\n if (opt.weight !== undefined) {\n style += `stroke-width:${opt.weight};`;\n }\n if (opt.fillColor !== undefined) {\n style += `fill:${opt.fillColor};`;\n }\n if (opt.fillOpacity !== undefined) {\n style += `fill-opacity:${opt.fillOpacity};`;\n }\n if (opt.opacity !== undefined) {\n style += `opacity:${opt.opacity};`;\n }\n\n const icon = this._getIconSVG(opt, style);\n\n this._locationIcon = L.divIcon({\n className: icon.className,\n html: icon.svg,\n iconSize: [icon.w, icon.h]\n });\n\n this.setIcon(this._locationIcon);\n },\n\n /**\n * Return the raw svg for the shape\n *\n * Split so can be easily overridden\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.weight;\n const s = r + w;\n const s2 = s * 2;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${s2}\" height=\"${s2}\" version=\"1.1\" viewBox=\"-${s} -${s} ${s2} ${s2}\">` +\n '<circle r=\"' +\n r +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-location\",\n svg,\n w: s2,\n h: s2\n };\n },\n\n setStyle(style) {\n L.Util.setOptions(this, style);\n this.createIcon();\n }\n });\n\n const CompassMarker = LocationMarker.extend({\n initialize(latlng, heading, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this._heading = heading;\n this.createIcon();\n },\n\n setHeading(heading) {\n this._heading = heading;\n },\n\n /**\n * Create a styled arrow compass marker\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.width + options.weight;\n const h = (r + options.depth + options.weight) * 2;\n const path = `M0,0 l${options.width / 2},${options.depth} l-${w},0 z`;\n const svgstyle = `transform: rotate(${this._heading}deg)`;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\" version=\"1.1\" viewBox=\"-${w / 2} 0 ${w} ${h}\" style=\"${svgstyle}\">` +\n '<path d=\"' +\n path +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-heading\",\n svg,\n w,\n h\n };\n }\n });\n\n const LocateControl = L.Control.extend({\n options: {\n /** Position of the control */\n position: \"topleft\",\n /** The layer that the user's location should be drawn on. By default creates a new layer. */\n layer: undefined,\n /**\n * Automatically sets the map view (zoom and pan) to the user's location as it updates.\n * While the map is following the user's location, the control is in the `following` state,\n * which changes the style of the control and the circle marker.\n *\n * Possible values:\n * - false: never updates the map view when location changes.\n * - 'once': set the view when the location is first determined\n * - 'always': always updates the map view when location changes.\n * The map view follows the user's location.\n * - 'untilPan': like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n * - 'untilPanOrZoom': (default) like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n */\n setView: \"untilPanOrZoom\",\n /** Keep the current map zoom level when setting the view and only pan. */\n keepCurrentZoomLevel: false,\n /** After activating the plugin by clicking on the icon, zoom to the selected zoom level, even when keepCurrentZoomLevel is true. Set to 'false' to disable this feature. */\n initialZoomLevel: false,\n /**\n * This callback can be used to override the viewport tracking\n * This function should return a LatLngBounds object.\n *\n * For example to extend the viewport to ensure that a particular LatLng is visible:\n *\n * getLocationBounds: function(locationEvent) {\n * return locationEvent.bounds.extend([-33.873085, 151.219273]);\n * },\n */\n getLocationBounds(locationEvent) {\n return locationEvent.bounds;\n },\n /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */\n flyTo: false,\n /**\n * The user location can be inside and outside the current view when the user clicks on the\n * control that is already active. Both cases can be configures separately.\n * Possible values are:\n * - 'setView': zoom and pan to the current location\n * - 'stop': stop locating and remove the location marker\n */\n clickBehavior: {\n /** What should happen if the user clicks on the control while the location is within the current view. */\n inView: \"stop\",\n /** What should happen if the user clicks on the control while the location is outside the current view. */\n outOfView: \"setView\",\n /**\n * What should happen if the user clicks on the control while the location is within the current view\n * and we could be following but are not. Defaults to a special value which inherits from 'inView';\n */\n inViewNotFollowing: \"inView\"\n },\n /**\n * If set, save the map bounds just before centering to the user's\n * location. When control is disabled, set the view back to the\n * bounds that were saved.\n */\n returnToPrevBounds: false,\n /**\n * Keep a cache of the location after the user deactivates the control. If set to false, the user has to wait\n * until the locate API returns a new location before they see where they are again.\n */\n cacheLocation: true,\n /** If set, a circle that shows the location accuracy is drawn. */\n drawCircle: true,\n /** If set, the marker at the users' location is drawn. */\n drawMarker: true,\n /** If set and supported then show the compass heading */\n showCompass: true,\n /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */\n markerClass: LocationMarker,\n /** The class us be used to create the compass bearing arrow */\n compassClass: CompassMarker,\n /** Accuracy circle style properties. NOTE these styles should match the css animations styles */\n circleStyle: {\n className: \"leaflet-control-locate-circle\",\n color: \"#136AEC\",\n fillColor: \"#136AEC\",\n fillOpacity: 0.15,\n weight: 0\n },\n /** Inner marker style properties. Only works if your marker class supports `setStyle`. */\n markerStyle: {\n className: \"leaflet-control-locate-marker\",\n color: \"#fff\",\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 3,\n opacity: 1,\n radius: 9\n },\n /** Compass */\n compassStyle: {\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 0,\n color: \"#fff\",\n opacity: 1,\n radius: 9, // How far is the arrow is from the center of of the marker\n width: 9, // Width of the arrow\n depth: 6 // Length of the arrow\n },\n /**\n * Changes to accuracy circle and inner marker while following.\n * It is only necessary to provide the properties that should change.\n */\n followCircleStyle: {},\n followMarkerStyle: {\n // color: '#FFA500',\n // fillColor: '#FFB000'\n },\n followCompassStyle: {},\n /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */\n icon: \"leaflet-control-locate-location-arrow\",\n iconLoading: \"leaflet-control-locate-spinner\",\n /** The element to be created for icons. For example span or i */\n iconElementTag: \"span\",\n /** The element to be created for the text. For example small or span */\n textElementTag: \"small\",\n /** Padding around the accuracy circle. */\n circlePadding: [0, 0],\n /** Use metric units. */\n metric: true,\n /**\n * This callback can be used in case you would like to override button creation behavior.\n * This is useful for DOM manipulation frameworks such as angular etc.\n * This function should return an object with HtmlElement for the button (link property) and the icon (icon property).\n */\n createButtonCallback(container, options) {\n const link = L.DomUtil.create(\"a\", \"leaflet-bar-part leaflet-bar-part-single\", container);\n link.title = options.strings.title;\n link.href = \"#\";\n link.setAttribute(\"role\", \"button\");\n const icon = L.DomUtil.create(options.iconElementTag, options.icon, link);\n\n if (options.strings.text !== undefined) {\n const text = L.DomUtil.create(options.textElementTag, \"leaflet-locate-text\", link);\n text.textContent = options.strings.text;\n link.classList.add(\"leaflet-locate-text-active\");\n link.parentNode.style.display = \"flex\";\n if (options.icon.length > 0) {\n icon.classList.add(\"leaflet-locate-icon\");\n }\n }\n\n return { link, icon };\n },\n /** This event is called in case of any location error that is not a time out error. */\n onLocationError(err, control) {\n alert(err.message);\n },\n /**\n * This event is called when the user's location is outside the bounds set on the map.\n * The event is called repeatedly when the location changes.\n */\n onLocationOutsideMapBounds(control) {\n control.stop();\n alert(control.options.strings.outsideMapBoundsMsg);\n },\n /** Display a pop-up when the user click on the inner marker. */\n showPopup: true,\n strings: {\n title: \"Show me where I am\",\n metersUnit: \"meters\",\n feetUnit: \"feet\",\n popup: \"You are within {distance} {unit} from this point\",\n outsideMapBoundsMsg: \"You seem located outside the boundaries of the map\"\n },\n /** The default options passed to leaflets locate method. */\n locateOptions: {\n maxZoom: Infinity,\n watch: true, // if you overwrite this, visualization cannot be updated\n setView: false // have to set this to false because we have to\n // do setView manually\n }\n },\n\n initialize(options) {\n // set default options if nothing is set (merge one step deep)\n for (const i in options) {\n if (typeof this.options[i] === \"object\") {\n L.extend(this.options[i], options[i]);\n } else {\n this.options[i] = options[i];\n }\n }\n\n // extend the follow marker style and circle from the normal style\n this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle);\n this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle);\n this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle);\n },\n\n /**\n * Add control to map. Returns the container for the control.\n */\n onAdd(map) {\n const container = L.DomUtil.create(\"div\", \"leaflet-control-locate leaflet-bar leaflet-control\");\n this._container = container;\n this._map = map;\n this._layer = this.options.layer || new L.LayerGroup();\n this._layer.addTo(map);\n this._event = undefined;\n this._compassHeading = null;\n this._prevBounds = null;\n\n const linkAndIcon = this.options.createButtonCallback(container, this.options);\n this._link = linkAndIcon.link;\n this._icon = linkAndIcon.icon;\n\n L.DomEvent.on(\n this._link,\n \"click\",\n function (ev) {\n L.DomEvent.stopPropagation(ev);\n L.DomEvent.preventDefault(ev);\n this._onClick();\n },\n this\n ).on(this._link, \"dblclick\", L.DomEvent.stopPropagation);\n\n this._resetVariables();\n\n this._map.on(\"unload\", this._unload, this);\n\n return container;\n },\n\n /**\n * This method is called when the user clicks on the control.\n */\n _onClick() {\n this._justClicked = true;\n const wasFollowing = this._isFollowing();\n this._userPanned = false;\n this._userZoomed = false;\n\n if (this._active && !this._event) {\n // click while requesting\n this.stop();\n } else if (this._active) {\n const behaviors = this.options.clickBehavior;\n let behavior = behaviors.outOfView;\n if (this._map.getBounds().contains(this._event.latlng)) {\n behavior = wasFollowing ? behaviors.inView : behaviors.inViewNotFollowing;\n }\n\n // Allow inheriting from another behavior\n if (behaviors[behavior]) {\n behavior = behaviors[behavior];\n }\n\n switch (behavior) {\n case \"setView\":\n this.setView();\n break;\n case \"stop\":\n this.stop();\n if (this.options.returnToPrevBounds) {\n const f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n f.bind(this._map)(this._prevBounds);\n }\n break;\n }\n } else {\n if (this.options.returnToPrevBounds) {\n this._prevBounds = this._map.getBounds();\n }\n this.start();\n }\n\n this._updateContainerStyle();\n },\n\n /**\n * Starts the plugin:\n * - activates the engine\n * - draws the marker (if coordinates available)\n */\n start() {\n this._activate();\n\n if (this._event) {\n this._drawMarker(this._map);\n\n // if we already have a location but the user clicked on the control\n if (this.options.setView) {\n this.setView();\n }\n }\n this._updateContainerStyle();\n },\n\n /**\n * Stops the plugin:\n * - deactivates the engine\n * - reinitializes the button\n * - removes the marker\n */\n stop() {\n this._deactivate();\n\n this._cleanClasses();\n this._resetVariables();\n\n this._removeMarker();\n },\n\n /**\n * Keep the control active but stop following the location\n */\n stopFollowing() {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n },\n\n /**\n * This method launches the location engine.\n * It is called before the marker is updated,\n * event if it does not mean that the event will be ready.\n *\n * Override it if you want to add more functionalities.\n * It should set the this._active to true and do nothing if\n * this._active is true.\n */\n _activate() {\n if (this._active || !this._map) {\n return;\n }\n\n this._map.locate(this.options.locateOptions);\n this._map.fire(\"locateactivate\", this);\n this._active = true;\n\n // bind event listeners\n this._map.on(\"locationfound\", this._onLocationFound, this);\n this._map.on(\"locationerror\", this._onLocationError, this);\n this._map.on(\"dragstart\", this._onDrag, this);\n this._map.on(\"zoomstart\", this._onZoom, this);\n this._map.on(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n const oriAbs = \"ondeviceorientationabsolute\" in window;\n if (oriAbs || \"ondeviceorientation\" in window) {\n const _this = this;\n const deviceorientation = function () {\n L.DomEvent.on(window, oriAbs ? \"deviceorientationabsolute\" : \"deviceorientation\", _this._onDeviceOrientation, _this);\n };\n if (DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent.requestPermission().then(function (permissionState) {\n if (permissionState === \"granted\") {\n deviceorientation();\n }\n });\n } else {\n deviceorientation();\n }\n }\n }\n },\n\n /**\n * Called to stop the location engine.\n *\n * Override it to shutdown any functionalities you added on start.\n */\n _deactivate() {\n if (!this._active || !this._map) {\n return;\n }\n\n this._map.stopLocate();\n this._map.fire(\"locatedeactivate\", this);\n this._active = false;\n\n if (!this.options.cacheLocation) {\n this._event = undefined;\n }\n\n // unbind event listeners\n this._map.off(\"locationfound\", this._onLocationFound, this);\n this._map.off(\"locationerror\", this._onLocationError, this);\n this._map.off(\"dragstart\", this._onDrag, this);\n this._map.off(\"zoomstart\", this._onZoom, this);\n this._map.off(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n this._compassHeading = null;\n if (\"ondeviceorientationabsolute\" in window) {\n L.DomEvent.off(window, \"deviceorientationabsolute\", this._onDeviceOrientation, this);\n } else if (\"ondeviceorientation\" in window) {\n L.DomEvent.off(window, \"deviceorientation\", this._onDeviceOrientation, this);\n }\n }\n },\n\n /**\n * Zoom (unless we should keep the zoom level) and an to the current view.\n */\n setView() {\n this._drawMarker();\n if (this._isOutsideMapBounds()) {\n this._event = undefined; // clear the current location so we can get back into the bounds\n this.options.onLocationOutsideMapBounds(this);\n } else {\n if (this._justClicked && this.options.initialZoomLevel !== false) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.setView;\n f.bind(this._map)([this._event.latitude, this._event.longitude], this.options.initialZoomLevel);\n } else if (this.options.keepCurrentZoomLevel) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.panTo;\n f.bind(this._map)([this._event.latitude, this._event.longitude]);\n } else {\n var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n // Ignore zoom events while setting the viewport as these would stop following\n this._ignoreEvent = true;\n f.bind(this._map)(this.options.getLocationBounds(this._event), {\n padding: this.options.circlePadding,\n maxZoom: this.options.initialZoomLevel || this.options.locateOptions.maxZoom\n });\n L.Util.requestAnimFrame(function () {\n // Wait until after the next animFrame because the flyTo can be async\n this._ignoreEvent = false;\n }, this);\n }\n }\n },\n\n /**\n *\n */\n _drawCompass() {\n if (!this._event) {\n return;\n }\n\n const latlng = this._event.latlng;\n\n if (this.options.showCompass && latlng && this._compassHeading !== null) {\n const cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle;\n if (!this._compass) {\n this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer);\n } else {\n this._compass.setLatLng(latlng);\n this._compass.setHeading(this._compassHeading);\n // If the compassClass can be updated with setStyle, update it.\n if (this._compass.setStyle) {\n this._compass.setStyle(cStyle);\n }\n }\n //\n }\n if (this._compass && (!this.options.showCompass || this._compassHeading === null)) {\n this._compass.removeFrom(this._layer);\n this._compass = null;\n }\n },\n\n /**\n * Draw the marker and accuracy circle on the map.\n *\n * Uses the event retrieved from onLocationFound from the map.\n */\n _drawMarker() {\n if (this._event.accuracy === undefined) {\n this._event.accuracy = 0;\n }\n\n const radius = this._event.accuracy;\n const latlng = this._event.latlng;\n\n // circle with the radius of the location's accuracy\n if (this.options.drawCircle) {\n const style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle;\n\n if (!this._circle) {\n this._circle = L.circle(latlng, radius, style).addTo(this._layer);\n } else {\n this._circle.setLatLng(latlng).setRadius(radius).setStyle(style);\n }\n }\n\n let distance;\n let unit;\n if (this.options.metric) {\n distance = radius.toFixed(0);\n unit = this.options.strings.metersUnit;\n } else {\n distance = (radius * 3.2808399).toFixed(0);\n unit = this.options.strings.feetUnit;\n }\n\n // small inner marker\n if (this.options.drawMarker) {\n const mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle;\n if (!this._marker) {\n this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer);\n } else {\n this._marker.setLatLng(latlng);\n // If the markerClass can be updated with setStyle, update it.\n if (this._marker.setStyle) {\n this._marker.setStyle(mStyle);\n }\n }\n }\n\n this._drawCompass();\n\n const t = this.options.strings.popup;\n function getPopupText() {\n if (typeof t === \"string\") {\n return L.Util.template(t, { distance, unit });\n } else if (typeof t === \"function\") {\n return t({ distance, unit });\n } else {\n return t;\n }\n }\n if (this.options.showPopup && t && this._marker) {\n this._marker.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n if (this.options.showPopup && t && this._compass) {\n this._compass.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n },\n\n /**\n * Remove the marker from map.\n */\n _removeMarker() {\n this._layer.clearLayers();\n this._marker = undefined;\n this._circle = undefined;\n },\n\n /**\n * Unload the plugin and all event listeners.\n * Kind of the opposite of onAdd.\n */\n _unload() {\n this.stop();\n this._map.off(\"unload\", this._unload, this);\n },\n\n /**\n * Sets the compass heading\n */\n _setCompassHeading(angle) {\n if (!isNaN(parseFloat(angle)) && isFinite(angle)) {\n angle = Math.round(angle);\n\n this._compassHeading = angle;\n L.Util.requestAnimFrame(this._drawCompass, this);\n } else {\n this._compassHeading = null;\n }\n },\n\n /**\n * If the compass fails calibration just fail safely and remove the compass\n */\n _onCompassNeedsCalibration() {\n this._setCompassHeading();\n },\n\n /**\n * Process and normalise compass events\n */\n _onDeviceOrientation(e) {\n if (!this._active) {\n return;\n }\n\n if (e.webkitCompassHeading) {\n // iOS\n this._setCompassHeading(e.webkitCompassHeading);\n } else if (e.absolute && e.alpha) {\n // Android\n this._setCompassHeading(360 - e.alpha);\n }\n },\n\n /**\n * Calls deactivate and dispatches an error.\n */\n _onLocationError(err) {\n // ignore time out error if the location is watched\n if (err.code == 3 && this.options.locateOptions.watch) {\n return;\n }\n\n this.stop();\n this.options.onLocationError(err, this);\n },\n\n /**\n * Stores the received event and updates the marker.\n */\n _onLocationFound(e) {\n // no need to do anything if the location has not changed\n if (this._event && this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy) {\n return;\n }\n\n if (!this._active) {\n // we may have a stray event\n return;\n }\n\n this._event = e;\n\n this._drawMarker();\n this._updateContainerStyle();\n\n switch (this.options.setView) {\n case \"once\":\n if (this._justClicked) {\n this.setView();\n }\n break;\n case \"untilPan\":\n if (!this._userPanned) {\n this.setView();\n }\n break;\n case \"untilPanOrZoom\":\n if (!this._userPanned && !this._userZoomed) {\n this.setView();\n }\n break;\n case \"always\":\n this.setView();\n break;\n case false:\n // don't set the view\n break;\n }\n\n this._justClicked = false;\n },\n\n /**\n * When the user drags. Need a separate event so we can bind and unbind event listeners.\n */\n _onDrag() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * When the user zooms. Need a separate event so we can bind and unbind event listeners.\n */\n _onZoom() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userZoomed = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * After a zoom ends update the compass and handle sideways zooms\n */\n _onZoomEnd() {\n if (this._event) {\n this._drawCompass();\n }\n\n if (this._event && !this._ignoreEvent) {\n // If we have zoomed in and out and ended up sideways treat it as a pan\n if (this._marker && !this._map.getBounds().pad(-0.3).contains(this._marker.getLatLng())) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n }\n },\n\n /**\n * Compute whether the map is following the user location with pan and zoom.\n */\n _isFollowing() {\n if (!this._active) {\n return false;\n }\n\n if (this.options.setView === \"always\") {\n return true;\n } else if (this.options.setView === \"untilPan\") {\n return !this._userPanned;\n } else if (this.options.setView === \"untilPanOrZoom\") {\n return !this._userPanned && !this._userZoomed;\n }\n },\n\n /**\n * Check if location is in map bounds\n */\n _isOutsideMapBounds() {\n if (this._event === undefined) {\n return false;\n }\n return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng);\n },\n\n /**\n * Toggles button class between following and active.\n */\n _updateContainerStyle() {\n if (!this._container) {\n return;\n }\n\n if (this._active && !this._event) {\n // active but don't have a location yet\n this._setClasses(\"requesting\");\n } else if (this._isFollowing()) {\n this._setClasses(\"following\");\n } else if (this._active) {\n this._setClasses(\"active\");\n } else {\n this._cleanClasses();\n }\n },\n\n /**\n * Sets the CSS classes for the state.\n */\n _setClasses(state) {\n if (state == \"requesting\") {\n removeClasses(this._container, \"active following\");\n addClasses(this._container, \"requesting\");\n\n removeClasses(this._icon, this.options.icon);\n addClasses(this._icon, this.options.iconLoading);\n } else if (state == \"active\") {\n removeClasses(this._container, \"requesting following\");\n addClasses(this._container, \"active\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n } else if (state == \"following\") {\n removeClasses(this._container, \"requesting\");\n addClasses(this._container, \"active following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n }\n },\n\n /**\n * Removes all classes from button.\n */\n _cleanClasses() {\n L.DomUtil.removeClass(this._container, \"requesting\");\n L.DomUtil.removeClass(this._container, \"active\");\n L.DomUtil.removeClass(this._container, \"following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n },\n\n /**\n * Reinitializes state variables.\n */\n _resetVariables() {\n // whether locate is active or not\n this._active = false;\n\n // true if the control was clicked for the first time\n // we need this so we can pan and zoom once we have the location\n this._justClicked = false;\n\n // true if the user has panned the map after clicking the control\n this._userPanned = false;\n\n // true if the user has zoomed the map after clicking the control\n this._userZoomed = false;\n }\n });\n\n L.control.locate = (options) => new L.Control.Locate(options);\n\n return LocateControl;\n}, window);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/prefer-ts-expect-error */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { control } from 'leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useMap, useMapEvents } from 'react-leaflet'\n// eslint-disable-next-line import/no-unassigned-import\nimport 'leaflet.locatecontrol'\nimport 'leaflet.locatecontrol/dist/L.Control.Locate.css'\n\n// Converts leaflet.locatecontrol to a React Component\nexport const LocateControl = () => {\n const map = useMap()\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const [lc, setLc] = useState<any>(null)\n const [active, setActive] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n\n useEffect(() => {\n if (!init.current) {\n // @ts-ignore\n setLc(control.locate().addTo(map))\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useMapEvents({\n locationfound: () => {\n setLoading(false)\n setActive(true)\n },\n })\n\n return (\n <>\n <div className='tw-card tw-h-12 tw-w-12 tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-ml-2'>\n <div\n className='tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 '\n onClick={() => {\n if (active) {\n lc.stop()\n setActive(false)\n } else {\n lc.start()\n setLoading(true)\n }\n }}\n >\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-md tw-mt-1'></span>\n ) : (\n <svg\n fill={`${active ? '#fc8702' : 'currentColor'}`}\n viewBox='0 0 32 32'\n version='1.1'\n xmlns='http://www.w3.org/2000/svg'\n className='tw-mt-1 tw-p-[1px]'\n >\n <path d='M30 14.75h-2.824c-0.608-5.219-4.707-9.318-9.874-9.921l-0.053-0.005v-2.824c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.824c-5.219 0.608-9.318 4.707-9.921 9.874l-0.005 0.053h-2.824c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.824c0.608 5.219 4.707 9.318 9.874 9.921l0.053 0.005v2.824c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.824c5.219-0.608 9.318-4.707 9.921-9.874l0.005-0.053h2.824c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0zM17.25 24.624v-2.624c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.624c-3.821-0.57-6.803-3.553-7.368-7.326l-0.006-0.048h2.624c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0h-2.624c0.57-3.821 3.553-6.804 7.326-7.368l0.048-0.006v2.624c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.624c3.821 0.57 6.803 3.553 7.368 7.326l0.006 0.048h-2.624c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.624c-0.571 3.821-3.553 6.803-7.326 7.368l-0.048 0.006z'></path>\n </svg>\n )}\n </div>\n </div>\n </>\n )\n}\n","// Converts leaflet.locatecontrol to a React Component\nexport const SidebarControl = () => {\n return (\n <>\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-mr-2 tw-h-12 tw-w-12 '>\n <div className='tw-card-body tw-card tw-p-0'>\n <button\n className='tw-btn tw-btn-square tw-btn-ghost tw-rounded-2xl'\n data-te-sidenav-toggle-ref\n data-te-target='#sidenav'\n aria-controls='#sidenav'\n aria-haspopup='true'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n className='tw-inline-block tw-w-5 tw-h-5 tw-stroke-current'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='2'\n d='M4 6h16M4 12h16M4 18h16'\n ></path>\n </svg>\n </button>\n </div>\n </div>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport axios from 'axios'\nimport { LatLng, LatLngBounds, marker } from 'leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useMap, useMapEvents } from 'react-leaflet'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useDebounce } from '#components/Map/hooks/useDebounce'\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useLeafletRefs } from '#components/Map/hooks/useLeafletRefs'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport useWindowDimensions from '#components/Map/hooks/useWindowDimension'\nimport { decodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport MarkerIconFactory from '#utils/MarkerIconFactory'\n\nimport { LocateControl } from './LocateControl'\nimport { SidebarControl } from './SidebarControl'\n\nimport type { Item } from '#types/Item'\n\nexport const SearchControl = () => {\n const windowDimensions = useWindowDimensions()\n const [popupOpen, setPopupOpen] = useState(false)\n\n const [value, setValue] = useState('')\n const [geoResults, setGeoResults] = useState<any[]>([])\n const [tagsResults, setTagsResults] = useState<any[]>([])\n const [itemsResults, setItemsResults] = useState<Item[]>([])\n const [hideSuggestions, setHideSuggestions] = useState(true)\n\n const map = useMap()\n const tags = useTags()\n const items = useItems()\n const leafletRefs = useLeafletRefs()\n const addFilterTag = useAddFilterTag()\n\n useMapEvents({\n popupopen: () => {\n setPopupOpen(true)\n },\n popupclose: () => {\n setPopupOpen(false)\n },\n })\n\n const navigate = useNavigate()\n\n useDebounce(\n () => {\n const searchGeo = async () => {\n try {\n const { data } = await axios.get(`https://photon.komoot.io/api/?q=${value}&limit=5`)\n setGeoResults(data.features)\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error)\n }\n }\n searchGeo()\n setItemsResults(\n items.filter((item) => {\n if (item.layer?.itemNameField) item.name = getValue(item, item.layer.itemNameField)\n if (item.layer?.itemTextField) item.text = getValue(item, item.layer.itemTextField)\n return (\n value.length > 2 &&\n ((item.layer?.listed && item.name.toLowerCase().includes(value.toLowerCase())) ||\n item.text.toLowerCase().includes(value.toLowerCase()))\n )\n }),\n )\n let phrase = value\n if (value.startsWith('#')) phrase = value.substring(1)\n setTagsResults(tags.filter((tag) => tag.name.toLowerCase().includes(phrase.toLowerCase())))\n },\n 500,\n [value],\n )\n\n const hide = async () => {\n setTimeout(() => {\n setHideSuggestions(true)\n }, 200)\n }\n\n const searchInput = useRef<HTMLInputElement>(null)\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n const location = useLocation()\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setEmbedded(false)\n }, [location])\n\n return (\n <>\n {!(windowDimensions.height < 500 && popupOpen && hideSuggestions) && (\n <div className='tw-w-[calc(100vw-2rem)] tw-max-w-[22rem] '>\n <div className='tw-flex tw-flex-row'>\n {embedded && <SidebarControl />}\n <div className='tw-relative'>\n <input\n type='text'\n placeholder='search ...'\n autoComplete='off'\n value={value}\n className='tw-input tw-input-bordered tw-grow tw-shadow-xl tw-rounded-lg tw-pr-12'\n ref={searchInput}\n onChange={(e) => setValue(e.target.value)}\n onFocus={() => {\n setHideSuggestions(false)\n if (windowDimensions.width < 500) map.closePopup()\n }}\n onBlur={() => hide()}\n />\n {value.length > 0 && (\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-2 tw-top-2'\n onClick={() => setValue('')}\n >\n ✕\n </button>\n )}\n </div>\n <LocateControl />\n </div>\n {hideSuggestions ||\n (Array.from(geoResults).length === 0 &&\n itemsResults.length === 0 &&\n tagsResults.length === 0 &&\n !isGeoCoordinate(value)) ||\n value.length === 0 ? (\n ''\n ) : (\n <div className='tw-card tw-card-body tw-bg-base-100 tw-p-4 tw-mt-2 tw-shadow-xl tw-overflow-y-auto tw-max-h-[calc(100dvh-152px)] tw-absolute tw-z-3000'>\n {tagsResults.length > 0 && (\n <div className='tw-flex tw-flex-wrap'>\n {tagsResults.slice(0, 3).map((tag) => (\n <div\n key={tag.name}\n className='tw-rounded-2xl tw-text-white tw-p-1 tw-px-4 tw-shadow-md tw-card tw-mr-2 tw-mb-2 tw-cursor-pointer'\n style={{ backgroundColor: tag.color }}\n onClick={() => {\n addFilterTag(tag)\n }}\n >\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n )}\n\n {itemsResults.length > 0 && tagsResults.length > 0 && (\n <hr className='tw-opacity-50'></hr>\n )}\n {itemsResults.slice(0, 5).map((item) => (\n <div\n key={item.id}\n className='tw-cursor-pointer hover:tw-font-bold'\n onClick={() => {\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1]\n .marker\n if (marker) {\n navigate(`/${item.id}?${new URLSearchParams(window.location.search)}`)\n } else {\n navigate(\n 'item/' + item.id + '?' + new URLSearchParams(window.location.search),\n )\n }\n }}\n >\n <div className='tw-flex tw-flex-row'>\n <img\n src={item.layer?.menuIcon}\n className='tw-text-current tw-w-5 tw-mr-2 tw-mt-0'\n />\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {item.name}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {item.text}\n </div>\n </div>\n </div>\n </div>\n ))}\n {Array.from(geoResults).length > 0 &&\n (itemsResults.length > 0 || tagsResults.length > 0) && (\n <hr className='tw-opacity-50'></hr>\n )}\n {Array.from(geoResults).map((geo) => (\n <div\n className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer'\n key={Math.random()}\n onClick={() => {\n searchInput.current?.blur()\n marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), {\n icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),\n })\n .addTo(map)\n .bindPopup(\n `<h3 class=\"tw-text-base tw-font-bold\">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`,\n )\n .openPopup()\n .addEventListener('popupclose', (e) => {\n // eslint-disable-next-line no-console\n console.log(e.target.remove())\n })\n if (geo.properties.extent)\n map.fitBounds(\n new LatLngBounds(\n new LatLng(geo.properties.extent[1], geo.properties.extent[0]),\n new LatLng(geo.properties.extent[3], geo.properties.extent[2]),\n ),\n )\n else\n map.setView(\n new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]),\n 15,\n { duration: 1 },\n )\n hide()\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='1.5'\n stroke='currentColor'\n className='tw-text-current tw-mr-2 tw-mt-0 tw-w-4'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z'\n />\n </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {geo?.properties.name ? geo?.properties.name : value}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {geo?.properties?.city && `${capitalizeFirstLetter(geo?.properties?.city)}, `}{' '}\n {geo?.properties?.osm_value &&\n geo?.properties?.osm_value !== 'yes' &&\n geo?.properties?.osm_value !== 'primary' &&\n geo?.properties?.osm_value !== 'path' &&\n geo?.properties?.osm_value !== 'secondary' &&\n geo?.properties?.osm_value !== 'residential' &&\n geo?.properties?.osm_value !== 'unclassified' &&\n `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `}{' '}\n {geo.properties.state && `${geo.properties.state}, `}{' '}\n {geo.properties.country && geo.properties.country}\n </div>\n </div>\n </div>\n ))}\n {isGeoCoordinate(value) && (\n <div\n className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer'\n onClick={() => {\n marker(\n new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),\n {\n icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),\n },\n )\n .addTo(map)\n .bindPopup(\n `<h3 class=\"tw-text-base tw-font-bold\">${extractCoordinates(value)![0]}, ${extractCoordinates(value)![1]}</h3>`,\n )\n .openPopup()\n .addEventListener('popupclose', (e) => {\n // eslint-disable-next-line no-console\n console.log(e.target.remove())\n })\n map.setView(\n new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),\n 15,\n { duration: 1 },\n )\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={1.5}\n stroke='currentColor'\n className='tw-text-current tw-mr-2 tw-mt-0 tw-w-4'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.524 48.524 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5'\n />\n </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {value}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {'Coordiante'}\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </>\n )\n}\n\nfunction isGeoCoordinate(input) {\n const geokoordinatenRegex =\n // eslint-disable-next-line security/detect-unsafe-regex\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/\n return geokoordinatenRegex.test(input)\n}\n\nfunction extractCoordinates(input): number[] | null {\n const result = input.split(',')\n if (result) {\n const latitude = parseFloat(result[0])\n const longitude = parseFloat(result[1])\n if (!isNaN(latitude) && !isNaN(longitude)) {\n return [latitude, longitude]\n }\n }\n return null // Invalid input or error\n}\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n","import { useFilterTags, useRemoveFilterTag } from '#components/Map/hooks/useFilter'\nimport { decodeTag } from '#utils/FormatTags'\n\nexport const TagsControl = () => {\n const filterTags = useFilterTags()\n const removeFilterTag = useRemoveFilterTag()\n\n return (\n <div className='tw-flex tw-flex-wrap tw-mt-4 tw-w-[calc(100vw-2rem)] tw-max-w-xs'>\n {filterTags.map((tag) => (\n <div\n key={tag.id}\n className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2'\n style={{ backgroundColor: tag.color }}\n >\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600'\n onClick={() => removeFilterTag(tag.name)}\n >\n ✕\n </label>\n </div>\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n )\n}\n","export const urlRegex =\n // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\n /(^| )(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-Z]{2,6})(?![\\])])/gi\n\nexport function fixUrls(message: string): string {\n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '')\n\n if (!hyperlink.match('^https?://')) {\n hyperlink = 'https://' + hyperlink\n }\n return hyperlink\n })\n\n return message\n}\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { memo } from 'react'\nimport Markdown from 'react-markdown'\nimport remarkBreaks from 'remark-breaks'\n\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { decodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { fixUrls, mailRegex } from '#utils/ReplaceURLs'\n\nimport type { Item } from '#types/Item'\nimport type { Tag } from '#types/Tag'\n\nexport const TextView = ({\n item,\n truncate = false,\n itemTextField,\n rawText,\n}: {\n item?: Item\n truncate?: boolean\n itemTextField?: string\n rawText?: string\n}) => {\n const tags = useTags()\n const addFilterTag = useAddFilterTag()\n\n let text = ''\n let replacedText = ''\n\n if (rawText) {\n text = replacedText = rawText\n } else if (itemTextField && item) {\n text = getValue(item, itemTextField)\n } else {\n text = item?.layer?.itemTextField && item ? getValue(item, item.layer.itemTextField) : ''\n }\n\n if (item && text && truncate) text = truncateText(removeMarkdownKeepLinksAndParagraphs(text), 100)\n\n if (item && text) replacedText = fixUrls(text)\n\n if (replacedText) {\n replacedText = replacedText.replace(/(?<!\\]?\\()https?:\\/\\/[^\\s)]+(?!\\))/g, (url) => {\n let shortUrl = url\n\n if (url.match('^https://')) {\n shortUrl = url.split('https://')[1]\n }\n\n if (url.match('^http://')) {\n shortUrl = url.split('http://')[1]\n }\n\n return `[${shortUrl}](${url})`\n })\n }\n\n if (replacedText) {\n replacedText = replacedText.replace(mailRegex, (url) => {\n return `[${url}](mailto:${url})`\n })\n }\n\n if (replacedText) {\n replacedText = replacedText.replace(hashTagRegex, (match) => {\n return `[${match}](${match})`\n })\n }\n\n const CustomH1 = ({ children }) => <h1 className='tw-text-xl tw-font-bold'>{children}</h1>\n\n const CustomH2 = ({ children }) => <h2 className='tw-text-lg tw-font-bold'>{children}</h2>\n\n const CustomH3 = ({ children }) => <h3 className='tw-text-base tw-font-bold'>{children}</h3>\n\n const CustomH4 = ({ children }) => <h4 className='tw-text-base tw-font-bold'>{children}</h4>\n\n const CustomH5 = ({ children }) => <h5 className='tw-text-sm tw-font-bold'>{children}</h5>\n\n const CustomH6 = ({ children }) => <h6 className='tw-text-sm tw-font-bold'>{children}</h6>\n\n const CustomParagraph = ({ children }) => <p className='!tw-my-2'>{children}</p>\n\n const CustomUnorderdList = ({ children }) => (\n <ul className='tw-list-disc tw-list-inside'>{children}</ul>\n )\n\n const CustomOrderdList = ({ children }) => (\n <ol className='tw-list-decimal tw-list-inside'>{children}</ol>\n )\n\n const CustomHorizontalRow = ({ children }) => <hr className='tw-border-current'>{children}</hr>\n // eslint-disable-next-line react/prop-types\n const CustomImage = ({ alt, src, title }) => (\n <img className='tw-max-w-full tw-rounded tw-shadow' src={src} alt={alt} title={title} />\n )\n\n const CustomExternalLink = ({ href, children }) => (\n <a className='tw-font-bold tw-underline' href={href} target='_blank' rel='noreferrer'>\n {' '}\n {children}\n </a>\n )\n\n const CustomHashTagLink = ({\n children,\n tag,\n item,\n }: {\n children: string\n tag: Tag\n item?: Item\n }) => {\n return (\n <a\n style={{ color: tag ? tag.color : '#faa', fontWeight: 'bold', cursor: 'pointer' }}\n key={tag ? tag.name + item?.id : item?.id}\n onClick={(e) => {\n e.stopPropagation()\n addFilterTag(tag)\n }}\n >\n {decodeTag(children)}\n </a>\n )\n }\n\n // eslint-disable-next-line react/display-name\n const MemoizedVideoEmbed = memo(({ url }: { url: string }) => (\n <iframe\n className='tw-w-full'\n src={url}\n allow='fullscreen; picture-in-picture'\n allowFullScreen\n />\n ))\n\n return (\n <Markdown\n className={'tw-text-map tw-leading-map tw-text-sm'}\n remarkPlugins={[remarkBreaks]}\n components={{\n p: CustomParagraph,\n a: ({ href, children }: { href: string; children: string }) => {\n const isYouTubeVideo = href?.startsWith('https://www.youtube.com/watch?v=')\n\n const isRumbleVideo = href?.startsWith('https://rumble.com/embed/')\n\n if (isYouTubeVideo) {\n const videoId = href?.split('v=')[1].split('&')[0]\n const youtubeEmbedUrl = `https://www.youtube-nocookie.com/embed/${videoId}`\n\n return <MemoizedVideoEmbed url={youtubeEmbedUrl}></MemoizedVideoEmbed>\n }\n if (isRumbleVideo) {\n return <MemoizedVideoEmbed url={href}></MemoizedVideoEmbed>\n }\n\n if (href?.startsWith('#')) {\n console.log(href.slice(1).toLowerCase())\n console.log(tags)\n const tag = tags.find(\n (t) => t.name.toLowerCase() === decodeURI(href).slice(1).toLowerCase(),\n )\n if (tag)\n return (\n <CustomHashTagLink tag={tag} item={item}>\n {children}\n </CustomHashTagLink>\n )\n else return children\n } else {\n return <CustomExternalLink href={href}>{children}</CustomExternalLink>\n }\n },\n ul: CustomUnorderdList,\n ol: CustomOrderdList,\n img: CustomImage,\n hr: CustomHorizontalRow,\n h1: CustomH1,\n h2: CustomH2,\n h3: CustomH3,\n h4: CustomH4,\n h5: CustomH5,\n h6: CustomH6,\n }}\n >\n {replacedText}\n </Markdown>\n )\n}\n\nfunction removeMarkdownKeepLinksAndParagraphs(text) {\n // Remove Markdown syntax using regular expressions but keep links and paragraphs\n return text\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '') // Remove images\n .replace(/(`{1,3})(.*?)\\1/g, '$2') // Remove inline code\n .replace(/(\\*{1,2}|_{1,2})(.*?)\\1/g, '$2') // Remove bold and italic\n .replace(/(#+)\\s+(.*)/g, '$2') // Remove headers\n .replace(/>\\s+(.*)/g, '$1') // Remove blockquotes\n .replace(/^\\s*\\n/gm, '\\n') // Preserve empty lines\n .replace(/(\\r\\n|\\n|\\r)/gm, '\\n') // Preserve line breaks\n}\n\nfunction truncateText(text, limit) {\n if (text.length <= limit) {\n return text\n }\n\n let truncated = ''\n let length = 0\n\n // Split the text by paragraphs\n const paragraphs = text.split('\\n')\n\n for (const paragraph of paragraphs) {\n if (length + paragraph.length > limit) {\n truncated += paragraph.slice(0, limit - length) + '...'\n break\n } else {\n truncated += paragraph + '\\n'\n length += paragraph.length\n }\n }\n\n return truncated.trim()\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\nexport const SelectPosition = ({ setSelectNewItemPosition }: { setSelectNewItemPosition }) => {\n return (\n <div className='tw-animate-pulseGrow tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setSelectNewItemPosition(null)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <div className='tw-alert tw-bg-base-100 tw-text-base-content'>\n <div>\n <span className='tw-text-lg'>Select position on the map!</span>\n </div>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { Children, cloneElement, isValidElement, useEffect, useRef, useState } from 'react'\nimport { TileLayer, useMapEvents, GeoJSON, useMap } from 'react-leaflet'\nimport 'leaflet/dist/leaflet.css'\nimport MarkerClusterGroup from 'react-leaflet-cluster'\nimport { Outlet, useLocation } from 'react-router-dom'\nimport { toast } from 'react-toastify'\nimport './UtopiaMap.css'\n\nimport { containsUUID } from '#utils/ContainsUUID'\nimport { getValue } from '#utils/GetValue'\n\nimport { useClusterRef, useSetClusterRef } from './hooks/useClusterRef'\nimport { useAddVisibleLayer } from './hooks/useFilter'\nimport { useLayers } from './hooks/useLayers'\nimport { useLeafletRefs } from './hooks/useLeafletRefs'\nimport {\n useSelectPosition,\n useSetMapClicked,\n useSetSelectPosition,\n} from './hooks/useSelectPosition'\nimport AddButton from './Subcomponents/AddButton'\nimport { Control } from './Subcomponents/Controls/Control'\nimport { FilterControl } from './Subcomponents/Controls/FilterControl'\nimport { GratitudeControl } from './Subcomponents/Controls/GratitudeControl'\nimport { LayerControl } from './Subcomponents/Controls/LayerControl'\nimport { SearchControl } from './Subcomponents/Controls/SearchControl'\nimport { TagsControl } from './Subcomponents/Controls/TagsControl'\nimport { TextView } from './Subcomponents/ItemPopupComponents/TextView'\nimport { SelectPosition } from './Subcomponents/SelectPosition'\n\nimport type { ItemFormPopupProps } from '#types/ItemFormPopupProps'\nimport type { UtopiaMapProps } from '#types/UtopiaMapProps'\nimport type { Feature, Geometry as GeoJSONGeometry } from 'geojson'\n\nexport function UtopiaMapInner({\n children,\n geo,\n showFilterControl = false,\n showGratitudeControl = false,\n showLayerControl = true,\n infoText,\n}: UtopiaMapProps) {\n const selectNewItemPosition = useSelectPosition()\n const setSelectNewItemPosition = useSetSelectPosition()\n const setClusterRef = useSetClusterRef()\n const clusterRef = useClusterRef()\n const setMapClicked = useSetMapClicked()\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null)\n\n const layers = useLayers()\n const addVisibleLayer = useAddVisibleLayer()\n const leafletRefs = useLeafletRefs()\n\n const location = useLocation()\n const map = useMap()\n\n useEffect(() => {\n layers.forEach((layer) => addVisibleLayer(layer))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [layers])\n\n const init = useRef(false)\n useEffect(() => {\n if (!init.current) {\n infoText &&\n setTimeout(() => {\n toast(<TextView rawText={infoText} />, { autoClose: false })\n }, 10000)\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n function MapEventListener() {\n useMapEvents({\n click: (e) => {\n resetMetaTags()\n // eslint-disable-next-line no-console\n console.log(e.latlng.lat + ',' + e.latlng.lng)\n if (selectNewItemPosition) {\n setMapClicked({ position: e.latlng, setItemFormPopup })\n }\n },\n moveend: () => {},\n })\n return null\n }\n\n useMapEvents({\n popupopen: (e) => {\n const item = Object.entries(leafletRefs).find((r) => r[1].popup === e.popup)?.[1].item\n if (window.location.pathname.split('/')[1] !== item?.id) {\n const params = new URLSearchParams(window.location.search)\n if (!location.pathname.includes('/item/')) {\n window.history.pushState(\n {},\n '',\n `/${item?.id}` + `${params.toString() !== '' ? `?${params}` : ''}`,\n )\n }\n let title = ''\n if (item?.name) title = item.name\n else if (item?.layer?.itemNameField) title = getValue(item, item.layer.itemNameField)\n document.title = `${document.title.split('-')[0]} - ${title}`\n }\n },\n })\n\n const openPopup = () => {\n if (!containsUUID(window.location.pathname)) {\n map.closePopup()\n } else {\n if (window.location.pathname.split('/')[1]) {\n const id = window.location.pathname.split('/')[1]\n // eslint-disable-next-line security/detect-object-injection\n const ref = leafletRefs[id]\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (ref) {\n clusterRef.hasLayer(ref.marker) &&\n clusterRef?.zoomToShowLayer(ref.marker, () => {\n ref.marker.openPopup()\n })\n let title = ''\n if (ref.item.name) title = ref.item.name\n else if (ref.item.layer?.itemNameField)\n title = getValue(ref.item.name, ref.item.layer.itemNameField)\n document.title = `${document.title.split('-')[0]} - ${title}`\n document\n .querySelector('meta[property=\"og:title\"]')\n ?.setAttribute('content', ref.item.name)\n document\n .querySelector('meta[property=\"og:description\"]')\n ?.setAttribute('content', ref.item.text)\n }\n }\n }\n }\n\n useEffect(() => {\n openPopup()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [leafletRefs, location])\n\n const resetMetaTags = () => {\n const params = new URLSearchParams(window.location.search)\n if (!containsUUID(window.location.pathname)) {\n window.history.pushState({}, '', '/' + `${params.toString() !== '' ? `?${params}` : ''}`)\n }\n document.title = document.title.split('-')[0]\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute('content', document.title)\n document\n .querySelector('meta[property=\"og:description\"]')\n ?.setAttribute(\n 'content',\n `${document.querySelector('meta[name=\"description\"]')?.getAttribute('content')}`,\n )\n }\n\n const onEachFeature = (feature: Feature<GeoJSONGeometry, any>, layer: L.Layer) => {\n if (feature.properties) {\n layer.bindPopup(feature.properties.name)\n }\n }\n\n return (\n <div\n className={`tw-h-full ${selectNewItemPosition != null ? 'crosshair-cursor-enabled' : undefined}`}\n >\n <Outlet />\n <Control position='topLeft' zIndex='1000' absolute>\n <SearchControl />\n <TagsControl />\n </Control>\n <Control position='bottomLeft' zIndex='999' absolute>\n {showFilterControl && <FilterControl />}\n {showLayerControl && <LayerControl />}\n {showGratitudeControl && <GratitudeControl />}\n </Control>\n <TileLayer\n maxZoom={19}\n attribution='&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url='https://tile.osmand.net/hd/{z}/{x}/{y}.png'\n />\n <MarkerClusterGroup\n ref={(r) => setClusterRef(r as any)}\n showCoverageOnHover\n chunkedLoading\n maxClusterRadius={50}\n removeOutsideVisibleBounds={false}\n >\n {Children.toArray(children).map((child) =>\n isValidElement<{\n setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>\n itemFormPopup: ItemFormPopupProps | null\n clusterRef: React.MutableRefObject<undefined>\n }>(child)\n ? cloneElement(child, { setItemFormPopup, itemFormPopup, clusterRef })\n : child,\n )}\n </MarkerClusterGroup>\n {geo && (\n <GeoJSON\n data={geo}\n onEachFeature={onEachFeature}\n eventHandlers={{\n click: (e) => {\n if (selectNewItemPosition) {\n e.layer.closePopup()\n setMapClicked({ position: e.latlng, setItemFormPopup })\n }\n },\n }}\n />\n )}\n <MapEventListener />\n <AddButton triggerAction={setSelectNewItemPosition} />\n {selectNewItemPosition != null && (\n <SelectPosition setSelectNewItemPosition={setSelectNewItemPosition} />\n )}\n </div>\n )\n}\n","import { LatLng } from 'leaflet'\nimport { MapContainer } from 'react-leaflet'\n\nimport { ContextWrapper } from '#components/AppShell/ContextWrapper'\n\nimport { UtopiaMapInner } from './UtopiaMapInner'\n\nimport type { UtopiaMapProps } from '#types/UtopiaMapProps'\nimport 'react-toastify/dist/ReactToastify.css'\n\nfunction UtopiaMap({\n height = '500px',\n width = '100%',\n center = [50.6, 9.5],\n zoom = 10,\n children,\n geo,\n showFilterControl = false,\n showGratitudeControl = false,\n showLayerControl = true,\n infoText,\n}: UtopiaMapProps) {\n return (\n <ContextWrapper>\n <MapContainer\n style={{ height, width }}\n center={new LatLng(center[0], center[1])}\n zoom={zoom}\n zoomControl={false}\n maxZoom={19}\n >\n <UtopiaMapInner\n geo={geo}\n showFilterControl={showFilterControl}\n showGratitudeControl={showGratitudeControl}\n showLayerControl={showLayerControl}\n infoText={infoText}\n >\n {children}\n </UtopiaMapInner>\n </MapContainer>\n </ContextWrapper>\n )\n}\n\nexport { UtopiaMap }\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nconst goldenRatioConjugate = 0.618033988749895\n\nexport const randomColor = () => {\n return hsvToHex((Math.random() + goldenRatioConjugate) % 1, 0.8, 0.7)\n}\n\nfunction hsvToHex(h: number, s: number, v: number) {\n let r, g, b\n const i = Math.floor(h * 6)\n const f = h * 6 - i\n const p = v * (1 - s)\n const q = v * (1 - f * s)\n const t = v * (1 - (1 - f) * s)\n\n switch (i % 6) {\n case 0:\n r = v\n g = t\n b = p\n break\n case 1:\n r = q\n g = v\n b = p\n break\n case 2:\n r = p\n g = v\n b = t\n break\n case 3:\n r = p\n g = q\n b = v\n break\n case 4:\n r = t\n g = p\n b = v\n break\n case 5:\n r = v\n g = p\n b = q\n break\n }\n\n return rgbToHex(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n\nconst rgbToHex = (r, g, b) =>\n '#' +\n [r, g, b]\n .map((x) => {\n const hex = x.toString(16)\n return hex.length === 1 ? `0${hex}` : hex\n })\n .join('')\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/consistent-indexed-object-style */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useTags } from '#components/Map/hooks/useTags'\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 required?: boolean\n updateFormValue?: (value: string) => void\n}\n\ninterface KeyValue {\n [key: string]: string\n}\n\nexport function TextAreaInput({\n labelTitle,\n dataField,\n labelStyle,\n containerStyle,\n inputStyle,\n defaultValue,\n placeholder,\n required = true,\n updateFormValue,\n}: TextAreaProps) {\n const ref = useRef<HTMLTextAreaElement>(null)\n const [inputValue, setInputValue] = useState<string>(defaultValue)\n\n const tags = useTags()\n\n const values: KeyValue[] = []\n\n tags.forEach((tag) => {\n values.push({ key: tag.name, value: tag.name, color: tag.color })\n })\n\n useEffect(() => {\n setInputValue(defaultValue)\n }, [defaultValue])\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n if (updateFormValue) {\n updateFormValue(newValue)\n }\n }\n\n return (\n <div className={`tw-form-control tw-w-full ${containerStyle || ''}`}>\n {labelTitle ? (\n <label className='tw-label'>\n <span className={`tw-label-text tw-text-base-content ${labelStyle}`}>{labelTitle}</span>\n </label>\n ) : null}\n <textarea\n required={required}\n ref={ref}\n value={inputValue}\n name={dataField}\n className={`tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ${inputStyle || ''}`}\n placeholder={placeholder || ''}\n onChange={handleChange}\n ></textarea>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport { useEffect, useState } from 'react'\n\ntype InputTextProps = {\n labelTitle?: string\n labelStyle?: string\n type?: string\n dataField?: string\n containerStyle?: string\n inputStyle?: string\n defaultValue?: string\n placeholder?: string\n autocomplete?: string\n pattern?: string\n required?: boolean\n updateFormValue?: (value: string) => void\n}\n\nexport function TextInput({\n labelTitle,\n labelStyle,\n type,\n dataField,\n containerStyle,\n inputStyle,\n defaultValue,\n placeholder,\n autocomplete,\n pattern,\n required = true,\n updateFormValue,\n}: InputTextProps) {\n const [inputValue, setInputValue] = useState<string>(defaultValue || '')\n\n useEffect(() => {\n setInputValue(defaultValue || '')\n }, [defaultValue])\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n if (updateFormValue) {\n updateFormValue(newValue)\n }\n }\n\n return (\n <div className={`tw-form-control ${containerStyle}`}>\n {labelTitle ? (\n <label className='tw-label'>\n <span className={`tw-label-text tw-text-base-content ${labelStyle}`}>{labelTitle}</span>\n </label>\n ) : null}\n <input\n required={required}\n pattern={pattern}\n type={type || 'text'}\n name={dataField}\n value={inputValue}\n placeholder={placeholder || ''}\n autoComplete={autocomplete}\n onChange={handleChange}\n className={`tw-input tw-input-bordered tw-w-full ${inputStyle || ''}`}\n />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { Children, cloneElement, isValidElement, useEffect, useRef, useState } from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth/useAuth'\nimport { TextAreaInput } from '#components/Input/TextAreaInput'\nimport { TextInput } from '#components/Input/TextInput'\nimport { useResetFilterTags } from '#components/Map/hooks/useFilter'\nimport { useAddItem, useItems, useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useAddTag, useTags } from '#components/Map/hooks/useTags'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\nimport type { Item } from '#types/Item'\nimport type { ItemFormPopupProps } from '#types/ItemFormPopupProps'\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n const [spinner, setSpinner] = useState(false)\n\n const [popupTitle, setPopupTitle] = useState<string>('')\n\n const formRef = useRef<HTMLFormElement>(null)\n\n const map = useMap()\n\n const addItem = useAddItem()\n const updateItem = useUpdateItem()\n const items = useItems()\n\n const removeItem = useRemoveItem()\n\n const tags = useTags()\n const addTag = useAddTag()\n\n const resetFilterTags = useResetFilterTags()\n\n const { user } = useAuth()\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 = { type: 'Point', coordinates: [props.position.lng, props.position.lat] }\n evt.preventDefault()\n setSpinner(true)\n\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\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 // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n // eslint-disable-next-line no-console\n console.log(props.item)\n\n updateItem({ ...props.item, ...formItem })\n toast.success('Item updated')\n }\n setSpinner(false)\n map.closePopup()\n } else {\n const item = items.find(\n (i) =>\n i.user_created?.id === user?.id && i.layer?.itemType.name === props.layer.itemType.name,\n )\n\n const uuid = crypto.randomUUID()\n let success = false\n try {\n props.layer.onlyOnePerOwner &&\n item &&\n (await props.layer.api?.updateItem!({ ...formItem, id: item.id }))\n ;(!props.layer.onlyOnePerOwner || !item) &&\n (await props.layer.api?.createItem!({\n ...formItem,\n id: uuid,\n name: formItem.name ? formItem.name : user?.first_name,\n }))\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n if (props.layer.onlyOnePerOwner && item) updateItem({ ...item, ...formItem })\n if (!props.layer.onlyOnePerOwner || !item) {\n addItem({\n ...formItem,\n name: (formItem.name ? formItem.name : user?.first_name) ?? '',\n user_created: user ?? undefined,\n type: props.layer.itemType,\n id: uuid,\n layer: props.layer,\n public_edit: !user,\n })\n }\n toast.success('New item created')\n resetFilterTags()\n }\n setSpinner(false)\n map.closePopup()\n }\n props.setItemFormPopup!(null)\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\n minWidth={275}\n maxWidth={275}\n autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100)\n },\n }}\n position={props.position}\n >\n <form ref={formRef} onReset={resetPopup} autoComplete='off' onSubmit={(e) => handleSubmit(e)}>\n {props.item ? (\n <div className='tw-h-3'></div>\n ) : (\n <div className='tw-flex tw-justify-center'>\n <b className='tw-text-xl tw-text-center tw-font-bold'>{props.layer.menuText}</b>\n </div>\n )}\n\n {props.children ? (\n Children.toArray(props.children).map((child) =>\n isValidElement<{\n item: Item\n test: string\n setPopupTitle: React.Dispatch<React.SetStateAction<string>>\n }>(child)\n ? cloneElement(child, {\n item: props.item,\n key: props.position.toString(),\n setPopupTitle,\n })\n : '',\n )\n ) : (\n <>\n <TextInput\n type='text'\n placeholder='Name'\n dataField='name'\n defaultValue={props.item ? props.item.name : ''}\n inputStyle=''\n />\n <TextAreaInput\n key={props.position.toString()}\n placeholder='Text'\n dataField='text'\n defaultValue={props.item ? props.item.text : ''}\n inputStyle='tw-h-40 tw-mt-5'\n />\n </>\n )}\n\n <div className='tw-flex tw-justify-center'>\n <button\n className={\n spinner\n ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'\n : 'tw-btn tw-mt-5 tw-place-self-center'\n }\n type='submit'\n >\n {spinner ? <span className='tw-loading tw-loading-spinner'></span> : 'Save'}\n </button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n","// in miliseconds\nconst units = [\n { label: 'year', seconds: 31536000 },\n { label: 'month', seconds: 2592000 },\n { label: 'week', seconds: 604800 },\n { label: 'day', seconds: 86400 },\n { label: 'hour', seconds: 3600 },\n { label: 'minute', seconds: 60 },\n { label: 'second', seconds: 1 },\n]\n\nexport const timeAgo = (date: string | number | Date) => {\n const time = Math.floor((new Date().valueOf() - new Date(date).valueOf()) / 1000)\n const { interval, unit } = calculateTimeDifference(time)\n const suffix = interval === 1 ? '' : 's'\n return `${interval} ${unit}${suffix} ago`\n}\n\nconst calculateTimeDifference = (time: number) => {\n for (const { label, seconds } of units) {\n const interval = Math.floor(time / seconds)\n if (interval >= 1) {\n return {\n interval,\n unit: label,\n }\n }\n }\n return {\n interval: 0,\n unit: '',\n }\n}\n","import { useEffect, useRef } from 'react'\n\nimport type { MouseEvent } from 'react'\n\nconst isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {\n const r = element.getBoundingClientRect()\n\n return e.clientX > r.left && e.clientX < r.right && e.clientY > r.top && e.clientY < r.bottom\n}\n\ninterface Props {\n title: string\n isOpened: boolean\n onClose: () => void\n children: React.ReactNode\n showCloseButton?: boolean\n closeOnClickOutside?: boolean\n className?: string\n}\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\n showCloseButton = true,\n closeOnClickOutside = true,\n className,\n}: Props) => {\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 if (isOpened) {\n return (\n <dialog\n className={`${className ?? ''} tw-card tw-shadow-xl tw-absolute tw-right-0 tw-top-0 tw-bottom-0 tw-left-0 tw-m-auto tw-transition-opacity tw-duration-300 tw-p-4 tw-max-w-xl tw-bg-base-100`}\n ref={ref}\n // eslint-disable-next-line react/no-unknown-property\n onCancel={onClose}\n onClick={(e) =>\n ref.current && !isClickInsideRectangle(e, ref.current) && closeOnClickOutside && onClose()\n }\n >\n <div className='tw-card-body tw-p-2'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>{title}</h2>\n\n {children}\n {showCloseButton && (\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2'\n onClick={onClose}\n >\n ✕\n </button>\n )}\n </div>\n </dialog>\n )\n } else return <></>\n}\n\nexport default DialogModal\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useState, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport DialogModal from '#components/Templates/DialogModal'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\n\nexport function HeaderView({\n item,\n api,\n editCallback,\n deleteCallback,\n setPositionCallback,\n itemNameField,\n itemSubnameField,\n itemAvatarField,\n loading,\n hideMenu = false,\n big = false,\n truncateSubname = true,\n hideSubname = false,\n showAddress = false,\n}: {\n item: Item\n api?: ItemsApi<any>\n editCallback?: any\n deleteCallback?: any\n setPositionCallback?: any\n itemNameField?: string\n itemAvatarField?: string\n itemSubnameField?: string\n loading?: boolean\n hideMenu?: boolean\n big?: boolean\n hideSubname?: boolean\n truncateSubname?: boolean\n showAddress?: boolean\n}) {\n const [modalOpen, setModalOpen] = useState<boolean>(false)\n\n const hasUserPermission = useHasUserPermission()\n const navigate = useNavigate()\n const appState = useAppState()\n\n const [imageLoaded, setImageLoaded] = useState(false)\n\n useEffect(() => {\n setImageLoaded(false)\n }, [item])\n\n const avatar =\n itemAvatarField && getValue(item, itemAvatarField)\n ? appState.assetsApi.url +\n getValue(item, itemAvatarField) +\n `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`\n : item.layer?.itemAvatarField &&\n item &&\n getValue(item, item.layer?.itemAvatarField) &&\n appState.assetsApi.url +\n getValue(item, item.layer?.itemAvatarField) +\n `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`\n const title = itemNameField\n ? getValue(item, itemNameField)\n : item.layer?.itemNameField && item && getValue(item, item.layer.itemNameField)\n const subtitle = itemSubnameField\n ? getValue(item, itemSubnameField)\n : item.layer?.itemSubnameField && item && getValue(item, item.layer.itemSubnameField)\n\n const [address] = useState<string>('')\n\n const params = new URLSearchParams(window.location.search)\n\n const openDeleteModal = async (event: React.MouseEvent<HTMLElement>) => {\n setModalOpen(true)\n event.stopPropagation()\n }\n\n return (\n <>\n <div className='tw-flex tw-flex-row'>\n <div className={'tw-grow tw-max-w-[calc(100%-60px)] }'}>\n <div className='flex items-center'>\n {avatar && (\n <div className='tw-avatar'>\n <div\n className={`${\n big ? 'tw-w-20' : 'tw-w-10'\n } tw-inline tw-items-center tw-justify-center overflow-hidden`}\n >\n <img\n className={'tw-w-full tw-h-full tw-object-cover tw-rounded-full'}\n src={avatar}\n alt={item.name + ' logo'}\n onLoad={() => setImageLoaded(true)}\n onError={() => setImageLoaded(false)}\n style={{ display: imageLoaded ? 'block' : 'none' }}\n />\n {!imageLoaded && (\n <div className='tw-w-full tw-h-full tw-bg-gray-200 tw-rounded-full' />\n )}\n </div>\n </div>\n )}\n <div className={`${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`}>\n <div\n className={`${big ? 'xl:tw-text-3xl tw-text-2xl' : 'tw-text-xl'} tw-font-semibold tw-truncate`}\n title={title}\n >\n {title}\n </div>\n {showAddress && address && !hideSubname && (\n <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`}>\n {address}\n </div>\n )}\n {subtitle && !hideSubname && (\n <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`}>\n {subtitle}\n </div>\n )}\n </div>\n </div>\n </div>\n <div onClick={(e) => e.stopPropagation()} className={`${big ? 'tw-mt-5' : 'tw-mt-1'}`}>\n {(api?.deleteItem || item.layer?.api?.updateItem) &&\n (hasUserPermission(api?.collectionName!, 'delete', item) ||\n hasUserPermission(api?.collectionName!, 'update', item)) &&\n !hideMenu && (\n <div className='tw-dropdown tw-dropdown-bottom'>\n <label\n tabIndex={0}\n className='tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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\n tabIndex={0}\n className='tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000'\n >\n {api?.updateItem &&\n hasUserPermission(api.collectionName!, 'update', item) &&\n editCallback && (\n <li>\n <a\n className='!tw-text-base-content tw-cursor-pointer'\n onClick={(e) =>\n item.layer?.customEditLink\n ? navigate(\n `${item.layer.customEditLink}${item.layer.customEditParameter ? `/${getValue(item, item.layer.customEditParameter)}${params && '?' + params}` : ''} `,\n )\n : editCallback(e)\n }\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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 {api?.updateItem &&\n hasUserPermission(api.collectionName!, 'update', item) &&\n setPositionCallback && (\n <li>\n <a\n className='!tw-text-base-content tw-cursor-pointer'\n onClick={setPositionCallback}\n >\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n className='tw-w-5 tw-h-5'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'></path>\n </svg>\n </a>\n </li>\n )}\n {api?.deleteItem &&\n hasUserPermission(api.collectionName!, 'delete', item) &&\n deleteCallback && (\n <li>\n <a className='tw-cursor-pointer !tw-text-error' onClick={openDeleteModal}>\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-sm'></span>\n ) : (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path\n fillRule='evenodd'\n 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'\n clipRule='evenodd'\n />\n </svg>\n )}\n </a>\n </li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n <DialogModal\n isOpened={modalOpen}\n title='Are you sure?'\n showCloseButton={false}\n onClose={() => setModalOpen(false)}\n >\n <div onClick={(e) => e.stopPropagation()}>\n <span>\n Do you want to delete <b>{item.name}</b>?\n </span>\n <div className='tw-grid'>\n <div className='tw-flex tw-justify-between'>\n <label\n className='tw-btn tw-mt-4 tw-btn-error'\n onClick={(e) => {\n deleteCallback(e)\n setModalOpen(false)\n }}\n >\n Yes\n </label>\n <label className='tw-btn tw-mt-4' onClick={() => setModalOpen(false)}>\n No\n </label>\n </div>\n </div>\n </div>\n </DialogModal>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { LatLng } from 'leaflet'\nimport { Children, cloneElement, forwardRef, isValidElement, useState } from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useSetSelectPosition } from '#components/Map/hooks/useSelectPosition'\nimport { timeAgo } from '#utils/TimeAgo'\n\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\nimport { TextView } from './ItemPopupComponents/TextView'\n\nimport type { Item } from '#types/Item'\nimport type { ItemFormPopupProps } from '#types/ItemFormPopupProps'\n\nexport interface ItemViewPopupProps {\n item: Item\n children?: React.ReactNode\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\n// eslint-disable-next-line react/display-name\nexport const ItemViewPopup = forwardRef((props: ItemViewPopupProps, ref: any) => {\n const map = useMap()\n const [loading, setLoading] = useState<boolean>(false)\n const removeItem = useRemoveItem()\n const updadateItem = useUpdateItem()\n const navigate = useNavigate()\n const setSelectPosition = useSetSelectPosition()\n\n const [infoExpanded, setInfoExpanded] = useState<boolean>(false)\n\n const handleEdit = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n map.closePopup()\n props.setItemFormPopup &&\n props.setItemFormPopup({\n position: new LatLng(\n props.item.position?.coordinates[1]!,\n props.item.position?.coordinates[0]!,\n ),\n layer: props.item.layer!,\n item: props.item,\n setItemFormPopup: props.setItemFormPopup,\n })\n }\n\n const handleDelete = async (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n setLoading(true)\n let success = false\n try {\n !props.item.layer?.onlyOnePerOwner &&\n (await props.item.layer?.api?.deleteItem!(props.item.id))\n props.item.layer?.onlyOnePerOwner &&\n (await props.item.layer.api?.updateItem!({ id: props.item.id, position: null }))\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n toast.error(error.toString())\n }\n if (success) {\n !props.item.layer?.onlyOnePerOwner && removeItem(props.item)\n props.item.layer?.onlyOnePerOwner && updadateItem({ ...props.item, position: undefined })\n toast.success('Item deleted')\n }\n setLoading(false)\n map.closePopup()\n const params = new URLSearchParams(window.location.search)\n window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`)\n navigate('/')\n }\n\n return (\n <LeafletPopup ref={ref} maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}>\n <div className='tw-bg-base-100 tw-text-base-content'>\n <HeaderView\n api={props.item.layer?.api}\n item={props.item}\n editCallback={handleEdit}\n deleteCallback={handleDelete}\n setPositionCallback={() => {\n map.closePopup()\n setSelectPosition(props.item)\n navigate('/')\n }}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {props.children ? (\n Children.toArray(props.children).map((child) =>\n isValidElement<{ item: Item; test: string }>(child)\n ? cloneElement(child, { item: props.item })\n : '',\n )\n ) : (\n <TextView item={props.item} />\n )}\n </div>\n <div className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1'>\n {infoExpanded ? (\n <p\n className={'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500'}\n >{`${props.item.date_updated && props.item.date_updated !== props.item.date_created ? 'updated' : 'posted'} ${props.item && props.item.user_created && props.item.user_created.first_name ? `by ${props.item.user_created.first_name}` : ''} ${props.item.date_updated ? timeAgo(props.item.date_updated) : timeAgo(props.item.date_created!)}`}</p>\n ) : (\n <p\n className='!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500'\n onClick={() => setInfoExpanded(true)}\n >\n ⓘ\n </p>\n )}\n <div className='tw-grow'></div>\n {\n //* * <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\" className=\"tw-place-self-end tw-w-4 tw-h-4 tw-mb-1 tw-cursor-pointer\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\" /></svg> */\n }\n </div>\n </div>\n </LeafletPopup>\n )\n})\n","/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { Children, isValidElement, useEffect, useState } from 'react'\nimport { Marker, Tooltip } from 'react-leaflet'\n\nimport { encodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport MarkerIconFactory from '#utils/MarkerIconFactory'\nimport { randomColor } from '#utils/RandomColor'\n\nimport {\n useFilterTags,\n useIsGroupTypeVisible,\n useIsLayerVisible,\n useVisibleGroupType,\n} from './hooks/useFilter'\nimport { useAllItemsLoaded, useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'\nimport { useSelectPosition, useSetMarkerClicked } from './hooks/useSelectPosition'\nimport { useAddTag, useAllTagsLoaded, useGetItemTags, useTags } from './hooks/useTags'\nimport { ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\n\nimport type { Item } from '#types/Item'\nimport type { LayerProps } from '#types/LayerProps'\nimport type { Tag } from '#types/Tag'\nimport type { Popup } from 'leaflet'\n\nexport const Layer = ({\n data,\n children,\n name = 'places',\n menuIcon = 'MapPinIcon',\n menuText = 'add new place',\n menuColor = '#2E7D32',\n markerIcon = 'point',\n markerShape = 'circle',\n markerDefaultColor = '#777',\n markerDefaultColor2 = 'RGBA(35, 31, 32, 0.2)',\n api,\n itemType,\n itemNameField = 'name',\n itemSubnameField,\n itemTextField = 'text',\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemLatitudeField = 'position.coordinates.1',\n itemLongitudeField = 'position.coordinates.0',\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner = false,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed = true,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n}: LayerProps) => {\n const filterTags = useFilterTags()\n\n const items = useItems()\n const setItemsApi = useSetItemsApi()\n const setItemsData = useSetItemsData()\n const getItemTags = useGetItemTags()\n const addMarker = useAddMarker()\n const addPopup = useAddPopup()\n const leafletRefs = useLeafletRefs()\n\n const allTagsLoaded = useAllTagsLoaded()\n const allItemsLoaded = useAllItemsLoaded()\n\n const setMarkerClicked = useSetMarkerClicked()\n const selectPosition = useSelectPosition()\n\n const tags = useTags()\n const addTag = useAddTag()\n const [newTagsToAdd, setNewTagsToAdd] = useState<Tag[]>([])\n const [tagsReady, setTagsReady] = useState<boolean>(false)\n\n const isLayerVisible = useIsLayerVisible()\n\n const isGroupTypeVisible = useIsGroupTypeVisible()\n\n const visibleGroupTypes = useVisibleGroupType()\n\n useEffect(() => {\n data &&\n setItemsData({\n data,\n children,\n name,\n menuIcon,\n menuText,\n menuColor,\n markerIcon,\n markerShape,\n markerDefaultColor,\n markerDefaultColor2,\n api,\n itemType,\n itemNameField,\n itemSubnameField,\n itemTextField,\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n })\n api &&\n setItemsApi({\n data,\n children,\n name,\n menuIcon,\n menuText,\n menuColor,\n markerIcon,\n markerShape,\n markerDefaultColor,\n markerDefaultColor2,\n api,\n itemType,\n itemNameField,\n itemSubnameField,\n itemTextField,\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, api])\n\n useEffect(() => {\n if (tagsReady) {\n const processedTags = {}\n newTagsToAdd.map((newtag) => {\n if (!processedTags[newtag.name]) {\n processedTags[newtag.name] = true\n addTag(newtag)\n }\n return null\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tagsReady])\n\n return (\n <>\n {items &&\n items\n .filter((item) => item.layer?.name === name)\n .filter((item) =>\n filterTags.length === 0\n ? item\n : filterTags.some((tag) =>\n getItemTags(item).some(\n (filterTag) =>\n filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(),\n ),\n ),\n )\n .filter((item) => item.layer && isLayerVisible(item.layer))\n .filter(\n (item) =>\n (item.group_type && isGroupTypeVisible(item.group_type)) ||\n visibleGroupTypes.length === 0,\n )\n .map((item: Item) => {\n if (getValue(item, itemLongitudeField) && getValue(item, itemLatitudeField)) {\n // eslint-disable-next-line security/detect-object-injection\n if (getValue(item, itemTextField)) item[itemTextField] = getValue(item, itemTextField)\n // eslint-disable-next-line security/detect-object-injection\n else item[itemTextField] = ''\n\n if (item.tags) {\n // eslint-disable-next-line security/detect-object-injection\n item[itemTextField] = item[itemTextField] + '\\n\\n'\n item.tags.map((tag) => {\n // eslint-disable-next-line security/detect-object-injection\n if (!item[itemTextField].includes(`#${encodeTag(tag)}`)) {\n // eslint-disable-next-line security/detect-object-injection\n return (item[itemTextField] = item[itemTextField] + `#${encodeTag(tag)} `)\n }\n // eslint-disable-next-line security/detect-object-injection\n return item[itemTextField]\n })\n }\n\n if (allTagsLoaded && allItemsLoaded) {\n // eslint-disable-next-line security/detect-object-injection\n item[itemTextField].match(hashTagRegex)?.map((tag) => {\n if (\n !tags.find(\n (t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(),\n ) &&\n !newTagsToAdd.find(\n (t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(),\n )\n ) {\n const newTag = {\n id: crypto.randomUUID(),\n name: tag.slice(1),\n color: randomColor(),\n }\n setNewTagsToAdd((current) => [...current, newTag])\n }\n return null\n })\n !tagsReady && setTagsReady(true)\n }\n\n const itemTags = getItemTags(item)\n\n const latitude =\n itemLatitudeField && item ? getValue(item, itemLatitudeField) : undefined\n const longitude =\n itemLongitudeField && item ? getValue(item, itemLongitudeField) : undefined\n\n let color1 = markerDefaultColor\n let color2 = markerDefaultColor2\n if (itemColorField && getValue(item, itemColorField) != null)\n color1 = getValue(item, itemColorField)\n else if (itemTags && itemTags[0]) {\n color1 = itemTags[0].color\n }\n if (itemTags && itemTags[0] && itemColorField) color2 = itemTags[0].color\n else if (itemTags && itemTags[1]) {\n color2 = itemTags[1].color\n }\n return (\n <Marker\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].marker === r)) {\n r && addMarker(item, r)\n }\n }}\n eventHandlers={{\n click: () => {\n selectPosition && setMarkerClicked(item)\n },\n }}\n icon={MarkerIconFactory(\n markerShape,\n color1,\n color2,\n item.markerIcon ? item.markerIcon : markerIcon,\n )}\n key={item.id}\n position={[latitude, longitude]}\n >\n {children &&\n Children.toArray(children).some(\n (child) => isValidElement(child) && child.props.__TYPE === 'ItemView',\n ) ? (\n Children.toArray(children).map((child) =>\n isValidElement(child) && child.props.__TYPE === 'ItemView' ? (\n <ItemViewPopup\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup === r)) {\n r && addPopup(item, r as Popup)\n }\n }}\n key={item.id + item.name}\n item={item}\n setItemFormPopup={setItemFormPopup}\n >\n {child}\n </ItemViewPopup>\n ) : (\n ''\n ),\n )\n ) : (\n <>\n <ItemViewPopup\n key={item.id + item.name}\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup === r)) {\n r && addPopup(item, r as Popup)\n }\n }}\n item={item}\n setItemFormPopup={setItemFormPopup}\n />\n </>\n )}\n <Tooltip offset={[0, -38]} direction='top'>\n {item.name ? item.name : getValue(item, itemNameField)}\n </Tooltip>\n </Marker>\n )\n } else return null\n })}\n {\n // {children}}\n }\n {itemFormPopup &&\n itemFormPopup.layer.name === name &&\n (children &&\n Children.toArray(children).some(\n (child) => isValidElement(child) && child.props.__TYPE === 'ItemForm',\n ) ? (\n Children.toArray(children).map((child) =>\n isValidElement(child) && child.props.__TYPE === 'ItemForm' ? (\n <ItemFormPopup\n key={setItemFormPopup?.name}\n position={itemFormPopup.position}\n layer={itemFormPopup.layer}\n setItemFormPopup={setItemFormPopup}\n item={itemFormPopup.item}\n >\n {child}\n </ItemFormPopup>\n ) : (\n ''\n ),\n )\n ) : (\n <>\n <ItemFormPopup\n position={itemFormPopup.position}\n layer={itemFormPopup.layer}\n setItemFormPopup={setItemFormPopup}\n item={itemFormPopup.item}\n />\n </>\n ))}\n </>\n )\n}\n","import { useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { useAddFilterTag, useFilterTags, useResetFilterTags } from './hooks/useFilter'\nimport { useSetTagData, useSetTagApi, useTags } from './hooks/useTags'\n\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { Tag } from '#types/Tag'\n\nexport function Tags({ data, api }: { data?: Tag[]; api?: ItemsApi<Tag> }) {\n const setTagData = useSetTagData()\n const setTagApi = useSetTagApi()\n\n useEffect(() => {\n data && setTagData(data)\n api && setTagApi(api)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [api, data])\n\n const location = useLocation()\n const addFilterTag = useAddFilterTag()\n const resetFilterTags = useResetFilterTags()\n const tags = useTags()\n const filterTags = useFilterTags()\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTags = params.get('tags')\n const decodedTags = urlTags ? decodeURIComponent(urlTags) : ''\n const decodedTagsArray = decodedTags.split(';')\n if (\n decodedTagsArray.some(\n (ut) => !filterTags.find((ft) => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()),\n ) ||\n filterTags.some(\n (ft) =>\n !decodedTagsArray.find((ut) => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()),\n )\n ) {\n resetFilterTags()\n decodedTagsArray.map((urlTag) => {\n const tag = tags.find((t) => t.name.toLocaleLowerCase() === urlTag.toLocaleLowerCase())\n tag && addFilterTag(tag)\n return null\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location, tags])\n\n return <></>\n}\n","import { useEffect } from 'react'\n\nimport { useAuth } from '#components/Auth'\n\nimport { useSetPermissionData, useSetPermissionApi, useSetAdminRole } from './hooks/usePermissions'\n\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { Permission } from '#types/Permission'\n\nexport function Permissions({\n data,\n api,\n adminRole,\n}: {\n data?: Permission[]\n api?: ItemsApi<Permission>\n adminRole?: string\n}) {\n const setPermissionData = useSetPermissionData()\n const setPermissionApi = useSetPermissionApi()\n const setAdminRole = useSetAdminRole()\n const { user } = useAuth()\n\n useEffect(() => {\n adminRole && setAdminRole(adminRole)\n data && setPermissionData(data)\n api && setPermissionApi(api)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [api, data, adminRole, user])\n\n return <></>\n}\n","import { node, string } from 'prop-types'\nimport { Children, cloneElement, isValidElement, useEffect } from 'react'\n\nimport type { Item } from '#types/Item'\n\nexport const ItemForm = ({\n children,\n item,\n title,\n setPopupTitle,\n}: {\n children?: React.ReactNode\n item?: Item\n title?: string\n setPopupTitle?: React.Dispatch<React.SetStateAction<string>>\n}) => {\n useEffect(() => {\n setPopupTitle && title && setPopupTitle(title)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [title])\n\n return (\n <div>\n {children\n ? Children.toArray(children).map((child) =>\n isValidElement<{ item: Item; test: string }>(child)\n ? cloneElement(child, { item, test: 'test' })\n : '',\n )\n : ''}\n </div>\n )\n}\n\nItemForm.propTypes = {\n children: node,\n __TYPE: string,\n}\n\nItemForm.defaultProps = {\n __TYPE: 'ItemForm',\n}\n","import { node, string } from 'prop-types'\nimport { Children, cloneElement, isValidElement } from 'react'\n\nimport type { Item } from '#types/Item'\n\nexport const ItemView = ({ children, item }: { children?: React.ReactNode; item?: Item }) => {\n return (\n <div>\n {children\n ? Children.toArray(children).map((child) =>\n isValidElement<{ item: Item }>(child) ? cloneElement(child, { item }) : '',\n )\n : ''}\n </div>\n )\n}\n\nItemView.propTypes = {\n children: node,\n __TYPE: string,\n}\n\nItemView.defaultProps = {\n __TYPE: 'ItemView',\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport InformationCircleIcon from '@heroicons/react/24/outline/InformationCircleIcon'\nimport { useState } from 'react'\n\ntype SelectBoxProps = {\n labelTitle?: string\n labelStyle?: string\n type?: string\n containerStyle?: string\n defaultValue: string\n placeholder?: string\n\n updateFormValue: (value: string) => void\n\n options: { name: string; value: string }[]\n labelDescription?: string\n}\n\nexport function SelectBox(props: SelectBoxProps) {\n const {\n labelTitle,\n labelDescription,\n defaultValue,\n containerStyle,\n placeholder,\n labelStyle,\n options,\n updateFormValue,\n } = props\n\n const [value, setValue] = useState(defaultValue || '')\n\n const updateValue = (newValue: string) => {\n updateFormValue(newValue)\n setValue(newValue)\n }\n\n return (\n <div className={`tw-inline-block ${containerStyle}`}>\n {labelTitle ? (\n <label className={`tw-label ${labelStyle}`}>\n <div className='tw-label-text'>\n {labelTitle}\n {labelDescription && (\n <div className='tw-tooltip tw-tooltip-right' data-tip={labelDescription}>\n <InformationCircleIcon className='tw-w-4 tw-h-4' />\n </div>\n )}\n </div>\n </label>\n ) : (\n ''\n )}\n <select\n className='tw-select tw-select-bordered tw-w-full'\n value={value}\n onChange={(e) => updateValue(e.target.value)}\n >\n <option disabled value='PLACEHOLDER'>\n {placeholder}\n </option>\n {options.map((o, k) => {\n return (\n <option value={o.value || o.name} key={k}>\n {o.name}\n </option>\n )\n })}\n </select>\n </div>\n )\n}\n","import { TextAreaInput } from '#components/Input'\n\nimport type { Item } from '#types/Item'\n\nexport const PopupTextAreaInput = ({\n dataField,\n placeholder,\n style,\n item,\n}: {\n dataField: string\n placeholder: string\n style?: string\n item?: Item\n}) => {\n return (\n <TextAreaInput\n defaultValue={item?.text ? item.text : ''}\n dataField={dataField}\n placeholder={placeholder}\n inputStyle={style}\n ></TextAreaInput>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { TextInput } from '#components/Input'\n\nimport type { Item } from '#types/Item'\n\ninterface StartEndInputProps {\n item?: Item\n showLabels?: boolean\n updateStartValue?: (value: string) => void\n updateEndValue?: (value: string) => void\n}\n\nexport const PopupStartEndInput = ({\n item,\n showLabels = true,\n updateStartValue,\n updateEndValue,\n}: StartEndInputProps) => {\n return (\n <div className='tw-grid tw-grid-cols-2 tw-gap-2'>\n <TextInput\n type='date'\n placeholder='start'\n dataField='start'\n inputStyle='tw-text-sm tw-px-2'\n labelTitle={showLabels ? 'start' : ''}\n defaultValue={item && item.start ? item.start.substring(0, 10) : ''}\n autocomplete='one-time-code'\n updateFormValue={updateStartValue}\n ></TextInput>\n <TextInput\n type='date'\n placeholder='end'\n dataField='end'\n inputStyle='tw-text-sm tw-px-2'\n labelTitle={showLabels ? 'end' : ''}\n defaultValue={item && item.end ? item.end.substring(0, 10) : ''}\n autocomplete='one-time-code'\n updateFormValue={updateEndValue}\n ></TextInput>\n </div>\n )\n}\n","import { TextInput } from '#components/Input'\n\nimport type { Item } from '#types/Item'\n\nexport const PopupTextInput = ({\n dataField,\n placeholder,\n style,\n item,\n}: {\n dataField: string\n placeholder: string\n style?: string\n item?: Item\n}) => {\n return (\n <TextInput\n defaultValue={item?.name ? item.name : ''}\n dataField={dataField}\n placeholder={placeholder}\n inputStyle={style}\n type='text'\n containerStyle={'tw-mt-4'}\n ></TextInput>\n )\n}\n","import type { Item } from '#types/Item'\n\nexport const PopupCheckboxInput = ({\n dataField,\n label,\n item,\n}: {\n dataField: string\n label: string\n item?: Item\n}) => {\n return (\n <label htmlFor={item?.id} className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'>\n <input\n id={item?.id}\n type='checkbox'\n name={dataField}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={item?.public_edit}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{label}</span>\n </label>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport type { Item } from '#types/Item'\n\nexport const StartEndView = ({ item }: { item?: Item }) => {\n return (\n <div className='tw-flex tw-flex-row tw-mb-4 tw-mt-1'>\n <div className='tw-basis-2/5 tw-flex tw-flex-row'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-4 tw-w-4 tw-mr-2'\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n strokeWidth={2}\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n 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 />\n </svg>\n <time\n className='tw-align-middle'\n dateTime={item && item.start ? item.start.substring(0, 10) : ''}\n >\n {item && item.start ? new Date(item.start).toLocaleDateString() : ''}\n </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\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-4 tw-w-4 tw-mr-2'\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n strokeWidth={2}\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n 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 />\n </svg>\n <time\n className='tw-align-middle'\n dateTime={item && item.end ? item.end.substring(0, 10) : ''}\n >\n {item && item.end ? new Date(item.end).toLocaleDateString() : ''}\n </time>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { Link } from 'react-router-dom'\n\nimport { useGetItemTags } from '#components/Map/hooks/useTags'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\n\nexport const PopupButton = ({\n url,\n parameterField,\n text,\n colorField,\n item,\n}: {\n url: string\n parameterField?: string\n text: string\n colorField?: string\n item?: Item\n}) => {\n const params = new URLSearchParams(window.location.search)\n const getItemTags = useGetItemTags()\n\n return (\n <Link to={`${url}/${parameterField ? getValue(item, parameterField) : ''}?${params}`}>\n <button\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : item && getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n }}\n className='tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1'\n >\n {text}\n </button>\n </Link>\n )\n}\n","import QuestionMarkIcon from '@heroicons/react/24/outline/QuestionMarkCircleIcon'\nimport { useEffect, useRef, useState } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport type { Item } from '#types/Item'\n\nexport default function NavBar({ appName, userType }: { appName: string; userType: string }) {\n const { isAuthenticated, user, logout } = useAuth()\n\n const [userProfile, setUserProfile] = useState<Item>({} as Item)\n const items = useItems()\n\n useEffect(() => {\n const profile =\n user &&\n items.find((i) => i.user_created?.id === user.id && i.layer?.itemType.name === userType)\n profile\n ? setUserProfile(profile)\n : setUserProfile({ id: crypto.randomUUID(), name: user?.first_name ?? '', text: '' })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user, items])\n\n // useEffect(() => {}, [userProfile])\n\n const nameRef = useRef<HTMLHeadingElement>(null)\n const [nameWidth, setNameWidth] = useState<number>(0)\n const location = useLocation()\n const [showNav, setShowNav] = useState<boolean>(false)\n\n useEffect(() => {\n showNav && nameRef.current && setNameWidth(nameRef.current.scrollWidth)\n }, [nameRef, appName, showNav])\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setShowNav(true)\n }, [location])\n\n const onLogout = async () => {\n await toast.promise(logout(), {\n success: {\n render() {\n return 'Bye bye'\n },\n // other options\n icon: '👋',\n },\n error: {\n render({ data }) {\n return JSON.stringify(data)\n },\n },\n pending: 'logging out ..',\n })\n }\n\n if (showNav) {\n return (\n <>\n <div className='tw-navbar tw-bg-base-100 tw-z-[9998] tw-shadow-xl tw-relative'>\n <button\n 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 >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n className='tw-inline-block tw-w-5 tw-h-5 tw-stroke-current'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='2'\n d='M4 6h16M4 12h16M4 18h16'\n ></path>\n </svg>\n </button>\n <div className='tw-flex-1 tw-mr-2'>\n <div\n className={'tw-flex-1 tw-truncate tw-grid tw-grid-flow-col'}\n style={{ maxWidth: nameWidth + 60 }}\n >\n <Link\n className='tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate'\n to={'/'}\n >\n <h1 ref={nameRef} className='tw-truncate'>\n {appName}\n </h1>\n </Link>\n <button\n className='tw-btn tw-px-2 tw-btn-ghost'\n onClick={() => window.my_modal_3.showModal()}\n >\n <QuestionMarkIcon className='tw-h-5 tw-w-5' />\n </button>\n </div>\n </div>\n\n {isAuthenticated ? (\n <div className='tw-flex-none'>\n <Link\n to={`${userProfile.id && '/item/' + userProfile.id}`}\n className='tw-flex tw-items-center'\n >\n {userProfile.image && (\n <div className='tw-avatar'>\n <div className='tw-w-10 tw-rounded-full'>\n <img src={'https://api.utopia-lab.org/assets/' + userProfile.image} />\n </div>\n </div>\n )}\n <div className='tw-ml-2 tw-mr-2'>{userProfile.name || user?.first_name}</div>\n </Link>\n <div className='tw-dropdown tw-dropdown-end'>\n <label tabIndex={0} className='tw-btn tw-btn-ghost tw-btn-square'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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\n tabIndex={0}\n className='tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]'\n >\n <li>\n <Link to={`${userProfile.id && '/edit-item/' + userProfile.id}`}>Profile</Link>\n </li>\n <li>\n <Link to={'/user-settings'}>Settings</Link>\n </li>\n <li>\n <a\n onClick={() => {\n void onLogout()\n }}\n >\n Logout\n </a>\n </li>\n </ul>\n </div>\n </div>\n ) : (\n <div>\n <div className='tw-hidden md:tw-flex'>\n <Link to={'/login'}>\n <div className='tw-btn tw-btn-ghost tw-mr-2'>Login</div>\n </Link>\n\n <Link to={'/signup'}>\n <div className='tw-btn tw-btn-ghost tw-mr-2'>Sign Up</div>\n </Link>\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\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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\n tabIndex={1}\n className='tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]'\n >\n <li>\n <Link to={'/login'}>Login</Link>\n </li>\n <li>\n <Link to={'/signup'}>Sign Up</Link>\n </li>\n </ul>\n </div>\n </div>\n )}\n </div>\n </>\n )\n } else return <></>\n}\n","import { useEffect } from 'react'\n\nimport { useSetAppState } from './hooks/useAppState'\n\nimport type { AssetsApi } from '#types/AssetsApi'\n\nexport const SetAppState = ({\n assetsApi,\n userType,\n}: {\n assetsApi: AssetsApi\n userType: string\n}) => {\n const setAppState = useSetAppState()\n\n useEffect(() => {\n setAppState({ assetsApi })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [assetsApi])\n\n useEffect(() => {\n setAppState({ userType })\n }, [setAppState, userType])\n\n return <></>\n}\n","import { ContextWrapper } from './ContextWrapper'\nimport NavBar from './NavBar'\nimport { SetAppState } from './SetAppState'\n\nimport type { AssetsApi } from '#types/AssetsApi'\n\nexport function AppShell({\n appName,\n children,\n assetsApi,\n userType,\n}: {\n appName: string\n children: React.ReactNode\n assetsApi: AssetsApi\n userType: string\n}) {\n return (\n <ContextWrapper>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <SetAppState assetsApi={assetsApi} userType={userType} />\n <NavBar userType={userType} appName={appName}></NavBar>\n <div id='app-content' className='tw-flex-grow'>\n {children}\n </div>\n </div>\n </ContextWrapper>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon'\nimport { useEffect, useState } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\n\nfunction SidebarSubmenu({\n submenu,\n name,\n icon,\n}: {\n path: string\n icon: JSX.Element\n name: string\n submenu?: any | undefined\n}) {\n const location = useLocation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n /** Open Submenu list if path found in routes, this is for directly loading submenu routes first time */\n useEffect(() => {\n if (\n submenu.filter((m) => {\n return m.path === location.pathname\n })[0]\n )\n setIsExpanded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <div className='flex-col'>\n {/** Route header */}\n <div className='w-full' onClick={() => setIsExpanded(!isExpanded)}>\n {icon}{' '}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim='false'\n >\n {name}{' '}\n </span>\n <ChevronDownIcon\n className={\n 'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' +\n (isExpanded ? 'rotate-180' : '')\n }\n />\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 {submenu.map((m, k) => {\n return (\n <li key={k}>\n <Link to={m.path} className=''>\n {m.icon}\n <span className='' data-te-sidenav-slim='false'>\n {m.name}\n </span>\n {location.pathname === m.path ? (\n <span\n 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'\n ></span>\n ) : null}\n </Link>\n </li>\n )\n })}\n </ul>\n </div>\n </div>\n )\n}\n\nexport default SidebarSubmenu\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport ChevronRightIcon from '@heroicons/react/24/outline/ChevronRightIcon'\nimport { useRef, useState, useEffect } from 'react'\nimport { NavLink, useLocation } from 'react-router-dom'\nimport { Sidenav, initTE } from 'tw-elements'\n\nimport SidebarSubmenu from './SidebarSubmenu'\n\ntype route = {\n path: string\n icon: JSX.Element\n name: string\n submenu?: route\n blank?: boolean\n}\n\nexport function SideBar({ routes, bottomRoutes }: { routes: route[]; bottomRoutes?: route[] }) {\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 const toggleSlim = () => {\n setSlim(!slim)\n instance.toggleSlim()\n }\n\n useEffect(() => {\n if (!init.current) {\n initTE({ Sidenav })\n const instance = Sidenav.getInstance(document.getElementById('sidenav'))\n setInstance(instance)\n instance.toggleSlim()\n init.current = true\n }\n }, [])\n\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setEmbedded(false)\n }, [location])\n\n const params = new URLSearchParams(window.location.search)\n\n return (\n <nav\n id='sidenav'\n className={`group tw-fixed tw-left-0 ${embedded ? 'tw-mt-0 tw-h-[100dvh]' : 'tw-mt-16 tw-h-[calc(100dvh-64px)]'} tw-top-0 tw-z-[10035] tw--translate-x-full tw-overflow-hidden tw-shadow-xl 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='180'\n >\n <div\n className={`tw-flex tw-flex-col ${embedded ? 'tw-h-full' : 'tw-h-[calc(100dvh-64px)]'}`}\n >\n <ul\n className='tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0'\n data-te-sidenav-menu-ref\n >\n {routes.map((route, k) => {\n return (\n <li className='' key={k}>\n {route.submenu ? (\n <SidebarSubmenu {...route} />\n ) : (\n <NavLink\n end\n target={route.blank ? '_blank' : '_self'}\n to={`${route.path}${params && '?' + params}`}\n className={({ isActive }) =>\n `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`\n }\n onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle()\n }}\n >\n {route.icon}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\"\n data-te-sidenav-slim='false'\n >\n {route.name}\n </span>\n {(location.pathname.includes(route.path) && route.path.length > 1) ||\n location.pathname === route.path ? (\n <span\n 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'\n ></span>\n ) : null}\n </NavLink>\n )}\n </li>\n )\n })}\n </ul>\n\n <div\n id='slim-toggler'\n className='tw-w-full tw-bg-base-100 tw-flex-1 tw-grid tw-place-items-end'\n aria-haspopup='true'\n >\n <div className='tw-w-full'>\n <ul\n className='tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0'\n data-te-sidenav-menu-ref\n >\n {bottomRoutes?.map((route, k) => {\n return (\n <li className='' key={k}>\n {route.submenu ? (\n <SidebarSubmenu {...route} />\n ) : (\n <NavLink\n end\n target={route.blank ? '_blank' : '_self'}\n to={route.path}\n className={({ isActive }) =>\n `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`\n }\n onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle()\n }}\n >\n {route.icon}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\"\n data-te-sidenav-slim='false'\n >\n {route.name}\n </span>\n {(location.pathname.includes(route.path) && route.path.length > 1) ||\n location.pathname === route.path ? (\n <span\n 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'\n ></span>\n ) : null}\n </NavLink>\n )}\n </li>\n )\n })}\n </ul>\n\n <ChevronRightIcon\n className={\n 'tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all ' +\n (!slim ? 'tw-rotate-180' : '')\n }\n onClick={() => toggleSlim()}\n />\n </div>\n </div>\n </div>\n </nav>\n )\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\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-h-full tw-bg-base-200 tw-relative'>\n {children}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useEffect, useState } from 'react'\n\nimport { useItems } from '#components/Map/hooks/useItems'\n\nexport const Sitemap = ({ url }: { url: string }) => {\n const [sitemap, setSitemap] = useState('')\n\n const items = useItems()\n\n useEffect(() => {\n if (items.length) {\n const generateSitemap = () => {\n let sitemapXML = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n'\n sitemapXML += '<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\\n'\n\n items.forEach((item) => {\n sitemapXML += ' <url>\\n'\n sitemapXML += ` <loc>${url}/${item.slug}</loc>\\n`\n sitemapXML += ' </url>\\n'\n })\n\n sitemapXML += '</urlset>'\n return sitemapXML\n }\n\n setSitemap(generateSitemap())\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <div>\n <h1>Sitemap</h1>\n <textarea value={sitemap} readOnly rows={items.length + 4} cols={80} />\n </div>\n )\n}\n","function Subtitle({ styleClass, children }: { styleClass: string; children: React.ReactNode }) {\n return <div className={`tw-text-xl tw-font-semibold ${styleClass}`}>{children}</div>\n}\n\nexport default Subtitle\n","/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Subtitle from '#components/Typography/Subtitle'\n\ninterface TitleCardProps {\n title?: string\n hideTitle?: boolean\n children?: React.ReactNode\n topMargin?: string\n className?: string\n TopSideButtons?: any\n}\n\nexport function TitleCard({\n title,\n hideTitle,\n children,\n topMargin,\n TopSideButtons,\n className,\n}: TitleCardProps) {\n return (\n <div\n className={\n 'tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 ' +\n (className || '') +\n ' ' +\n (topMargin || 'tw-mt-6')\n }\n >\n {!hideTitle && (\n <>\n <Subtitle styleClass={TopSideButtons ? 'tw-inline-block' : ''}>\n {title}\n\n {/* Top side button, show only if present */}\n {TopSideButtons && (\n <div className='tw-inline-block tw-float-right'>{TopSideButtons}</div>\n )}\n </Subtitle>\n <div className='tw-divider tw-mt-2'></div>\n </>\n )}\n\n {/** Card Body */}\n <div className='tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100'>{children}</div>\n </div>\n )\n}\n","import { Link } from 'react-router-dom'\n\nimport { TitleCard } from './TitleCard'\n\nexport function CardPage({\n title,\n hideTitle,\n children,\n parents,\n}: {\n title: string\n hideTitle?: boolean\n children?: React.ReactNode\n parents?: { name: string; path: string }[]\n}) {\n return (\n <main className='tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-2 tw-px-6 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>\n <Link to={'/'}>Home</Link>\n </li>\n {parents?.map((b, i) => (\n <li key={i}>\n <Link to={b.path}>{b.name}</Link>\n </li>\n ))}\n <li>{title}</li>\n </ul>\n </div>\n <TitleCard hideTitle={hideTitle} title={title} topMargin='tw-my-2' className=' tw-mb-4'>\n {children}\n </TitleCard>\n </div>\n </main>\n )\n}\n","export const LUNAR_MONTH = 29.530588853\n\nexport const getJulianDate = (date: Date = new Date()): number => {\n const time: number = date.getTime()\n const tzoffset: number = date.getTimezoneOffset()\n return time / 86400000 - tzoffset / 1440 + 2440587.5\n}\n\nexport const normalize = (value: number): number => {\n value = value - Math.floor(value)\n if (value < 0) value += 1\n return value\n}\n\nexport const getLunarAgePercent = (date: Date = new Date()): number => {\n return normalize((getJulianDate(date) - 2451550.1) / LUNAR_MONTH)\n}\n\nexport const getLunarAge = (date: Date = new Date()): number => {\n const percent: number = getLunarAgePercent(date)\n return percent * LUNAR_MONTH\n}\n\nexport const getNextNewMoon = (): Date => {\n return new Date(getLastNewMoon().getTime() + LUNAR_MONTH * 86400000)\n}\n\nexport const getLastNewMoon = (date: Date = new Date()): Date => {\n const lunarAge: number = getLunarAge(date)\n return new Date(date.getTime() - lunarAge * 86400000)\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useEffect, useRef } from 'react'\n\nexport const CircleLayout = ({\n items,\n radius,\n fontSize,\n}: {\n items: any\n radius: number\n fontSize: any\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const container = containerRef.current\n const itemCount = items.length\n\n if (container) {\n for (let i = 0; i < itemCount; i++) {\n const startAngle = Math.PI / 2\n const angle = startAngle + (i / itemCount) * (2 * Math.PI)\n const x = radius * Math.cos(angle)\n const y = radius * Math.sin(angle)\n // eslint-disable-next-line security/detect-object-injection\n const child = container.children[i] as HTMLElement\n child.style.transform = `translate(${x}px, ${y}px)`\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <div\n className='tw-absolute tw-mx-auto tw-flex tw-justify-center tw-items-center tw-h-full tw-w-full'\n ref={containerRef}\n >\n {items.map((item: any) => (\n <div key={item} className='tw-absolute' style={{ fontSize }}>\n {item}\n </div>\n ))}\n </div>\n )\n}\n","import { ChevronLeftIcon, ChevronRightIcon } from '@heroicons/react/24/outline'\nimport { add, format, parse, startOfToday, sub } from 'date-fns'\nimport { useState } from 'react'\n\nimport { LUNAR_MONTH, getLastNewMoon, getNextNewMoon } from '#utils/Moon'\n\nimport { CircleLayout } from './CircleLayout'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nexport const MoonCalendar = () => {\n const today = startOfToday()\n\n const [currMonth, setCurrMonth] = useState(() => format(today, 'MMM-yyyy'))\n const firstDayOfMonth = parse(currMonth, 'MMM-yyyy', new Date())\n\n const getPrevMonth = (event: React.MouseEvent<SVGSVGElement>) => {\n event.preventDefault()\n const firstDayOfPrevMonth = add(firstDayOfMonth, { months: -1 })\n setCurrMonth(format(firstDayOfPrevMonth, 'MMM-yyyy'))\n }\n\n const getNextMonth = (event: React.MouseEvent<SVGSVGElement>) => {\n event.preventDefault()\n const firstDayOfNextMonth = add(firstDayOfMonth, { months: 1 })\n setCurrMonth(format(firstDayOfNextMonth, 'MMM-yyyy'))\n }\n\n return (\n <MapOverlayPage backdrop className='tw-h-96 tw-w-80'>\n <p className='tw-self-center tw-text-lg tw-font-bold'>Moon Cycle</p>\n <div className='tw-relative tw-h-full'>\n <CircleLayout\n items={['🌑', '🌒', '🌓', '🌔', '🌕', '🌖', '🌗', '🌘']}\n radius={80}\n fontSize={'3em'}\n />\n <CircleLayout\n items={[\n format(getLastNewMoon(), 'dd.MM hh:mm'),\n format(\n sub(getNextNewMoon(), { seconds: ((LUNAR_MONTH * 86400) / 4) * 3 }),\n 'dd.MM hh:mm',\n ),\n format(sub(getNextNewMoon(), { seconds: (LUNAR_MONTH * 86400) / 2 }), 'dd.MM hh:mm'),\n format(sub(getNextNewMoon(), { seconds: (LUNAR_MONTH * 86400) / 4 }), 'dd.MM hh:mm'),\n ]}\n radius={120}\n fontSize={'0.8em'}\n />\n </div>\n <div className='tw-flex tw-flex-row'>\n <ChevronLeftIcon className='tw-w-6 tw-h-6 tw-cursor-pointer' onClick={getPrevMonth} />\n <p className='tw-text-center tw-p-1 tw-h-full tw-grow'>\n from {format(getLastNewMoon(), 'dd.MM')} - to {format(getNextNewMoon(), 'dd.MM')}\n </p>\n\n <ChevronRightIcon className='tw-w-6 tw-h-6 tw-cursor-pointer' onClick={getNextMonth} />\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { useState } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport { MapOverlayPage } from './MapOverlayPage'\n\nexport const SelectUser = () => {\n const appState = useAppState()\n const items = useItems()\n const users = items.filter((i) => i.layer?.itemType.name === appState.userType)\n\n const [selectedUsers, setSelectedUsers] = useState<string[]>([])\n\n return (\n <MapOverlayPage backdrop className='tw-h-3/4 tw-w-80'>\n <div className='tw-text-center tw-text-xl tw-font-bold tw-mb-4'>Gratitude to ...</div>\n\n {/* Team Member list in table format loaded constant */}\n <div className='tw-overflow-x-auto tw-w-full fade'>\n <table className='tw-table tw-w-full'>\n <tbody>\n {users.map((u, k) => {\n return (\n <tr key={k}>\n <td>\n <input\n type='checkbox'\n onChange={() => setSelectedUsers((prev) => [...prev, u.id])}\n className='tw-checkbox tw-checkbox-sm'\n />\n </td>\n <td>\n <div className='tw-flex tw-items-center tw-space-x-3'>\n {u.image ? (\n <div className='tw-avatar'>\n <div className='tw-mask tw-mask-circle tw-w-8 tw-h-8'>\n <img\n src={appState.assetsApi.url + u.image + '?width=40&heigth=40'}\n alt='Avatar'\n />\n </div>\n </div>\n ) : (\n <div className='tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8'></div>\n )}\n <div>\n <div className='tw-font-bold'>{u.name}</div>\n </div>\n </div>\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'>\n <Link\n className='tw-place-self-center '\n to={'/attestation-form' + '?to=' + selectedUsers.map((u) => u, ',')}\n >\n <button className='tw-btn tw-px-8'>Next</button>\n </Link>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\n\nimport type { LayerProps } from '#types/LayerProps'\n\nexport function PlusButton({\n layer,\n triggerAction,\n color,\n collection = 'items',\n}: {\n layer?: LayerProps\n triggerAction: any\n color: string\n collection?: string\n}) {\n const hasUserPermission = useHasUserPermission()\n return (\n <>\n {hasUserPermission(collection, 'create', undefined, layer) && (\n <div className='tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-3000 tw-absolute tw-right-4 tw-bottom-4'>\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow'\n onClick={() => {\n triggerAction()\n }}\n style={{ backgroundColor: color, color: '#fff' }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='2'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </button>\n </div>\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { useState } from 'react'\n\nimport { timeAgo } from '#utils/TimeAgo'\n\nimport type { Item } from '#types/Item'\n\nexport const DateUserInfo = ({ item }: { item: Item }) => {\n const [infoExpanded, setInfoExpanded] = useState<boolean>(false)\n return (\n <div\n className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 -tw-mt-2'\n onClick={(e) => e.stopPropagation()}\n >\n {infoExpanded ? (\n <p\n className={'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500'}\n onClick={() => setInfoExpanded(false)}\n >{`${item.date_updated && item.date_updated !== item.date_created ? 'updated' : 'posted'} ${item && item.user_created && item.user_created.first_name ? `by ${item.user_created.first_name}` : ''} ${item.date_updated ? timeAgo(item.date_updated) : timeAgo(item.date_created!)}`}</p>\n ) : (\n <p\n className='!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500'\n onClick={() => setInfoExpanded(true)}\n >\n ⓘ\n </p>\n )}\n <div className='tw-grow '></div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useNavigate } from 'react-router-dom'\n\nimport { StartEndView, TextView } from '#components/Map'\nimport useWindowDimensions from '#components/Map/hooks/useWindowDimension'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { getValue } from '#utils/GetValue'\n\nimport { DateUserInfo } from './DateUserInfo'\n\nimport type { Item } from '#types/Item'\n\nexport const ItemCard = ({\n i,\n loading,\n url,\n parameterField,\n deleteCallback,\n}: {\n i: Item\n loading: boolean\n url: string\n parameterField: string\n deleteCallback: any\n}) => {\n const navigate = useNavigate()\n const windowDimensions = useWindowDimensions()\n\n return (\n <div\n className='tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-4 tw-mb-4 tw-h-fit'\n onClick={() => {\n const params = new URLSearchParams(window.location.search)\n if (windowDimensions.width < 786 && i.position)\n navigate('/' + getValue(i, parameterField) + `${params ? `?${params}` : ''}`)\n else navigate(url + getValue(i, parameterField) + `${params ? `?${params}` : ''}`)\n }}\n >\n <HeaderView\n loading={loading}\n item={i}\n api={i.layer?.api}\n itemAvatarField={i.layer?.itemAvatarField}\n itemNameField={i.layer?.itemNameField}\n itemSubnameField={i.layer?.itemSubnameField}\n editCallback={() => navigate('/edit-item/' + i.id)}\n deleteCallback={() => deleteCallback(i)}\n ></HeaderView>\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {i.layer?.itemType.show_start_end && <StartEndView item={i}></StartEndView>}\n {i.layer?.itemType.show_text && (\n <TextView truncate item={i} itemTextField={i.layer.itemTextField} />\n )}\n </div>\n <DateUserInfo item={i}></DateUserInfo>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth/useAuth'\nimport { TextInput, TextAreaInput } from '#components/Input'\nimport { PopupStartEndInput } from '#components/Map'\nimport { useFilterTags } from '#components/Map/hooks/useFilter'\nimport { useAddItem, useItems, useRemoveItem } from '#components/Map/hooks/useItems'\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useAddTag, useGetItemTags, useTags } from '#components/Map/hooks/useTags'\nimport { Control } from '#components/Map/Subcomponents/Controls/Control'\nimport { SearchControl } from '#components/Map/Subcomponents/Controls/SearchControl'\nimport { TagsControl } from '#components/Map/Subcomponents/Controls/TagsControl'\nimport { PlusButton } from '#components/Profile/Subcomponents/PlusButton'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\nimport { ItemCard } from './ItemCard'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nimport type { Item } from '#types/Item'\n\nexport const OverlayItemsIndexPage = ({\n url,\n layerName,\n parameterField,\n plusButton = true,\n}: {\n layerName: string\n url: string\n parameterField: string\n plusButton?: boolean\n}) => {\n const [loading, setLoading] = useState<boolean>(false)\n const [addItemPopupType, setAddItemPopupType] = useState<string>('')\n\n const tabRef = useRef<HTMLFormElement>(null)\n\n function scroll() {\n tabRef.current?.scrollIntoView()\n }\n\n useEffect(() => {\n scroll()\n }, [addItemPopupType])\n\n useEffect(() => {\n setAddItemPopupType('')\n }, [layerName])\n\n const tags = useTags()\n const addTag = useAddTag()\n const { user } = useAuth()\n const items = useItems()\n const addItem = useAddItem()\n const removeItem = useRemoveItem()\n const layers = useLayers()\n\n const filterTags = useFilterTags()\n const getItemTags = useGetItemTags()\n\n const layer = layers.find((l) => l.name === layerName)\n\n const submitNewItem = async (evt: any) => {\n evt.preventDefault()\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 setLoading(true)\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n const uuid = crypto.randomUUID()\n let success = false\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n toast.success('New item created')\n }\n addItem({ ...formItem, user_created: user ?? undefined, id: uuid, layer, public_edit: !user })\n setLoading(false)\n setAddItemPopupType('')\n }\n\n const deleteItem = async (item) => {\n setLoading(true)\n let success = false\n try {\n await layer?.api?.deleteItem!(item.id)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n toast.success('Item deleted')\n }\n removeItem(item)\n setLoading(false)\n }\n\n return (\n <>\n <MapOverlayPage className='tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4'>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <div className='tw-flex-none'>\n <Control position='topLeft' zIndex='1000' absolute={false}>\n <SearchControl />\n <TagsControl />\n </Control>\n </div>\n <div className='tw-overflow-scroll fade tw-flex-1'>\n <div className='tw-columns-1 md:tw-columns-2 lg:tw-columns-3 2xl:tw-columns-4 tw-gap-6 tw-pt-4'>\n {items\n .filter((i) => i.layer?.name === layerName)\n .filter((item) =>\n filterTags.length === 0\n ? item\n : filterTags.some((tag) =>\n getItemTags(item).some(\n (filterTag) =>\n filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(),\n ),\n ),\n )\n .sort((a, b) => {\n // Convert date_created to milliseconds, handle undefined by converting to lowest possible date (0 milliseconds)\n const dateA = a.date_updated\n ? new Date(a.date_updated).getTime()\n : a.date_created\n ? new Date(a.date_created).getTime()\n : 0\n const dateB = b.date_updated\n ? new Date(b.date_updated).getTime()\n : b.date_created\n ? new Date(b.date_created).getTime()\n : 0\n return dateB - dateA // Subtracts milliseconds which are numbers\n })\n .map((i, k) => (\n <div key={k} className='tw-break-inside-avoid tw-mb-6'>\n <ItemCard\n i={i}\n loading={loading}\n url={url}\n parameterField={parameterField}\n deleteCallback={() => deleteItem(i)}\n />\n </div>\n ))}\n {addItemPopupType === 'place' && (\n <form ref={tabRef} autoComplete='off' onSubmit={(e) => submitNewItem(e)}>\n <div className='tw-cursor-pointer tw-break-inside-avoid tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-6 tw-mb-10'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => setAddItemPopupType('')}\n >\n <p className='tw-text-center'>✕</p>\n </label>\n <TextInput\n type='text'\n placeholder='Name'\n dataField='name'\n defaultValue={''}\n inputStyle=''\n />\n {layer?.itemType.show_start_end_input && <PopupStartEndInput />}\n <TextAreaInput\n placeholder='Text'\n dataField='text'\n defaultValue={''}\n inputStyle='tw-h-40 tw-mt-5'\n />\n <div className='tw-flex tw-justify-center'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'\n : 'tw-btn tw-mt-5 tw-place-self-center'\n }\n type='submit'\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Save'}\n </button>\n </div>\n </div>\n </form>\n )}\n </div>\n </div>\n </div>\n </MapOverlayPage>\n\n {plusButton && (\n <PlusButton\n layer={layer}\n triggerAction={() => {\n setAddItemPopupType('place')\n scroll()\n }}\n color={'#777'}\n collection='items'\n />\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useState } from 'react'\n\ninterface Props {\n selectedEmoji: string\n selectedColor: string\n selectedShape: string\n setSelectedEmoji: (emoji: string) => void\n setSelectedColor: (color: string) => void\n setSelectedShape: (shape: string) => void\n}\n\nexport const EmojiPicker = ({\n selectedEmoji,\n selectedColor,\n selectedShape,\n setSelectedEmoji,\n setSelectedColor,\n setSelectedShape,\n}: Props) => {\n const [isOpen, setIsOpen] = useState(false)\n\n const emojis = [\n '❤️',\n '🙏',\n '👍',\n '🌻',\n '✨',\n '☀️',\n '🔥',\n '🪵',\n '💧',\n '🎶',\n '🎨',\n '🍄',\n '📝',\n '✉️',\n '🧩',\n '💡',\n '🎓',\n '💬',\n '🛠',\n '💻',\n '🕹',\n '🖨',\n '🚐',\n '🛒',\n '⚽️',\n '🧵',\n '👀',\n '🌱',\n '🏕',\n '💪',\n '🎁',\n '🏹',\n '🥕',\n '🥇',\n '🥈',\n '🥉',\n ]\n const shapes = ['squircle', 'circle', 'hexagon-2']\n\n const colors = [\n '#FF99C8',\n '#fff0d6',\n '#FCF6BD',\n '#D0F4DE',\n '#A9DEF9',\n '#E4C1F9',\n '#de324c',\n '#f4895f',\n '#f8e16f',\n '#95cf92',\n '#369acc',\n '#9656a2',\n ]\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen)\n }\n\n const selectEmoji = (emoji: string) => {\n setSelectedEmoji(emoji)\n setIsOpen(false)\n }\n\n const selectShape = (shape: string) => {\n setSelectedShape(shape)\n setIsOpen(false)\n }\n\n const selectColor = (color: string) => {\n setSelectedColor(color)\n setIsOpen(false)\n }\n\n return (\n <>\n <div\n onClick={toggleDropdown}\n className={`tw-cursor-pointer ${selectedEmoji === 'select badge' ? 'tw-text-sm !tw-p-9 tw-text-center ' : 'tw-text-6xl'} tw-mask tw-mask-${selectedShape} tw-p-6 tw-bg-[${selectedColor}]`}\n >\n {selectedEmoji}\n </div>\n\n {isOpen && (\n <div className='tw-absolute tw-z-3000 tw-top-0 tw-left-1/2 tw-transform tw--translate-x-1/2 tw-mt-12 tw-bg-base-100 tw-rounded-2xl tw-shadow-lg tw-p-2 tw-w-full'>\n <div className='tw-grid tw-grid-cols-6 tw-gap-2 tw-pb-2'>\n {emojis.map((emoji) => (\n <button\n key={emoji}\n onClick={() => selectEmoji(emoji)}\n className={`tw-cursor-pointer tw-text-2xl tw-p-2 hover:tw-bg-base-200 tw-rounded-md ${emoji === selectedEmoji && 'tw-bg-base-300'}`}\n >\n {emoji}\n </button>\n ))}\n </div>\n <hr />\n <div className='tw-grid tw-grid-cols-3 tw-gap-2 tw-py-2'>\n {shapes.map((shape) => (\n <div\n key={shape}\n className={`tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 ${shape === selectedShape && 'tw-bg-base-300'}`}\n onClick={() => selectShape(shape)}\n >\n <div className={`tw-h-12 tw-mask tw-mask-${shape} tw-bg-neutral-content`}></div>\n </div>\n ))}\n </div>\n <hr />\n <div className='tw-grid tw-grid-cols-6 tw-gap-2 tw-py-2 tw-px-6'>\n {colors.map((color) => (\n <div\n key={color}\n className={`tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 tw-flex tw-justify-center tw-items-center ${color === selectedColor && 'tw-bg-base-300'}`}\n onClick={() => selectColor(color)}\n >\n <div className={`tw-h-8 tw-w-8 tw-rounded-full tw-bg-[${color}]`}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n </>\n )\n}\n","import { useRef, useState, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport { EmojiPicker } from './EmojiPicker'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\n\nexport const AttestationForm = ({ api }: { api?: ItemsApi<unknown> }) => {\n const items = useItems()\n const appState = useAppState()\n const [users, setUsers] = useState<Item[]>()\n const navigate = useNavigate()\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const toUserIds = params.get('to')\n setUsers(items.filter((i) => toUserIds?.includes(i.id)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, location])\n\n const [inputValue, setInputValue] = useState('')\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.style.width = 'auto'\n inputRef.current.style.width = `${inputRef.current.scrollWidth + 20}px`\n }\n }, [inputValue])\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value)\n }\n\n const sendAttestation = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const to: any[] = []\n users?.map((u) => to.push({ directus_users_id: u.user_created?.id }))\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n api?.createItem &&\n toast\n .promise(\n api.createItem({\n text: inputValue,\n emoji: selectedEmoji,\n color: selectedColor,\n shape: selectedShape,\n to,\n }),\n {\n pending: 'creating attestation ...',\n success: 'Attestation created',\n error: {\n render({ data }) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n return `${data}`\n },\n },\n },\n )\n .then(() =>\n navigate(\n '/item/' +\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n items.find(\n (i) =>\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n i.user_created?.id === to[0].directus_users_id &&\n i.layer?.itemType.name === 'player',\n )?.id +\n '?tab=2',\n ),\n )\n }\n\n const [selectedEmoji, setSelectedEmoji] = useState('select badge')\n const [selectedShape, setSelectedShape] = useState('circle')\n const [selectedColor, setSelectedColor] = useState('#fff0d6')\n\n return (\n <MapOverlayPage backdrop className='tw-h-fit tw-min-h-56 tw-w-96'>\n <div className='tw-text-center tw-text-xl tw-font-bold'>Gratitude</div>\n <div className='tw-text-center tw-text-base tw-text-gray-400'>to</div>\n <div className='tw-flex tw-flex-row tw-justify-center tw-items-center tw-flex-wrap'>\n {users?.map(\n (u, k) => (\n <div key={k} className='tw-flex tw-items-center tw-space-x-3 tw-mx-2 tw-my-1'>\n {u.image ? (\n <div className='tw-avatar'>\n <div className='tw-mask tw-mask-circle tw-w-8 tw-h-8'>\n <img\n src={appState.assetsApi.url + u.image + '?width=40&heigth=40'}\n alt='Avatar'\n />\n </div>\n </div>\n ) : (\n <div className='tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8'></div>\n )}\n <div>\n <div className='tw-font-bold'>{u.name}</div>\n </div>\n </div>\n ),\n ', ',\n )}\n </div>\n\n <div className='tw-w-full'>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <div className=' tw-flex tw-justify-center tw-items-center tw-w-28 tw-h-28 tw-m-4'>\n <EmojiPicker\n selectedEmoji={selectedEmoji}\n selectedColor={selectedColor}\n selectedShape={selectedShape}\n setSelectedEmoji={setSelectedEmoji}\n setSelectedColor={setSelectedColor}\n setSelectedShape={setSelectedShape}\n />\n </div>\n </div>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <input\n ref={inputRef}\n value={inputValue}\n onChange={handleChange}\n type='text'\n placeholder='... and say some words'\n className='tw-input tw-min-w-0 tw-w-fit tw-resize-none tw-overflow-hidden tw-text-center '\n />\n </div>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'>\n <button onClick={sendAttestation} className='tw-btn tw-place-self-center tw-px-8'>\n Next\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n\nimport { decodeTag } from '#utils/FormatTags'\n\nimport type { Tag } from '#types/Tag'\n\nexport const TagView = ({\n tag,\n heighlight,\n onClick,\n count,\n}: {\n tag: Tag\n heighlight?: boolean\n onClick?: (/* e */) => void\n count?: number\n}) => {\n return (\n // Use your imagination to render suggestions.\n\n <div\n key={tag.name}\n onClick={onClick}\n className={`tw-flex tw-items-center tw-flex-row tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4 tw-cursor-pointer tw-w-fit ${heighlight && 'tw-border-4 tw-border-base-200 tw-shadow-lg'}`}\n style={{ backgroundColor: tag.color ? tag.color : '#666' }}\n >\n <b>{decodeTag(tag.name)}</b>\n {count && <span className='tw-ml-2'>({count})</span>}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { getValue } from '#utils/GetValue'\n\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { TagView } from './TagView'\n\nimport type { Tag } from '#types/Tag'\n\nfunction groupAndCount(arr) {\n const grouped = arr.reduce((acc, obj) => {\n const found = acc.find((item) => JSON.stringify(item.object) === JSON.stringify(obj))\n\n if (found) {\n found.count += 1\n } else {\n acc.push({ object: obj, count: 1 })\n }\n\n return acc\n }, [])\n\n return grouped.sort((a, b) => b.count - a.count)\n}\n\nexport const MarketView = () => {\n const [offers, setOffers] = useState<Tag[]>([])\n const [needs, setNeeds] = useState<Tag[]>([])\n const navigate = useNavigate()\n\n const items = useItems()\n const tags = useTags()\n\n useEffect(() => {\n setOffers([])\n setNeeds([])\n items.map((i) => {\n i.layer?.itemOffersField &&\n getValue(i, i.layer.itemOffersField)?.map((o) => {\n const tag = tags.find((t) => t.id === o.tags_id)\n tag && setOffers((current) => [...current, tag])\n return null\n })\n i.layer?.itemNeedsField &&\n getValue(i, i.layer.itemNeedsField)?.map((n) => {\n const tag = tags.find((t) => t.id === n.tags_id)\n tag && setNeeds((current) => [...current, tag])\n return null\n })\n return null\n })\n // eslint-disable-next-line no-console\n console.log(offers)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <MapOverlayPage className='tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4'>\n <div className='tw-grid tw-grid-cols-1 md:tw-grid-cols-2'>\n <div>\n <p className='tw-text-lg tw-font-bold'>Offers</p>\n <div className='tw-flex tw-flex-wrap'>\n {groupAndCount(offers).map((o) => (\n <TagView\n onClick={() => navigate(`/?tags=${o.object.name}`)}\n key={o.object.id}\n tag={o.object}\n count={o.count}\n ></TagView>\n ))}\n </div>\n </div>\n <div>\n <p className='tw-text-lg tw-font-bold'>Needs</p>\n <div className='tw-flex tw-flex-wrap'>\n {groupAndCount(needs).map((o) => (\n <TagView\n onClick={() => navigate(`/?tags=${o.object.name}`)}\n key={o.object.id}\n tag={o.object}\n count={o.count}\n ></TagView>\n ))}\n </div>\n </div>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth'\nimport { TextInput } from '#components/Input'\nimport { MapOverlayPage } from '#components/Templates'\n\nimport type { UserItem } from '#types/UserItem'\n\nexport function UserSettings() {\n const { user, updateUser, loading /* token */ } = useAuth()\n\n const [id, setId] = useState<string>('')\n const [email, setEmail] = useState<string>('')\n const [password, setPassword] = useState<string>('')\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false)\n\n const navigate = useNavigate()\n\n useEffect(() => {\n setId(user?.id ? user.id : '')\n setEmail(user?.email ? user.email : '')\n setPassword(user?.password ? user.password : '')\n }, [user])\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem\n\n changedUser = { id, email, ...(passwordChanged && { password }) }\n\n toast\n .promise(updateUser(changedUser), {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .then(() => navigate('/'))\n .catch((e) => {\n throw e\n })\n }\n\n return (\n <MapOverlayPage\n backdrop\n className='tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-fit md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-max-w-xl !tw-left-auto tw-top-0 tw-bottom-0'\n >\n <div className={'tw-text-xl tw-font-semibold'}>Settings</div>\n <div className='tw-divider tw-mt-2'></div>\n <div className='tw-grid tw-grid-cols-1 tw-gap-6'>\n <TextInput\n type='email'\n placeholder='new E-Mail'\n defaultValue={user?.email ? user.email : ''}\n updateFormValue={(v) => setEmail(v)}\n />\n <TextInput\n type='password'\n placeholder='new Password'\n defaultValue={user?.password ? user.password : ''}\n updateFormValue={(v) => {\n setPassword(v)\n setPasswordChanged(true)\n }}\n />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className='tw-mt-8'>\n <button\n className={\n loading\n ? ' tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right'\n : 'tw-btn tw-btn-primary tw-float-right'\n }\n onClick={() => onUpdateUser()}\n >\n Update\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { toast } from 'react-toastify'\n\nimport { encodeTag } from '#utils/FormatTags'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\nimport type { Item } from '#types/Item'\n\n// eslint-disable-next-line promise/avoid-new\nconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))\n\nexport const submitNewItem = async (\n evt: any,\n type: string,\n item,\n user,\n setLoading,\n tags,\n addTag,\n addItem,\n linkItem,\n resetFilterTags,\n layers,\n addItemPopupType,\n setAddItemPopupType,\n) => {\n evt.preventDefault()\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 setLoading(true)\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n const uuid = crypto.randomUUID()\n\n const layer = layers.find(\n (l) => l.name.toLocaleLowerCase().replace('s', '') === addItemPopupType.toLocaleLowerCase(),\n )\n\n let success = false\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid, type, parent: item.id })\n await linkItem(uuid)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n addItem({ ...formItem, id: uuid, type, layer, user_created: user, parent: item.id })\n toast.success('New item created')\n resetFilterTags()\n }\n setLoading(false)\n setAddItemPopupType('')\n}\n\nexport const linkItem = async (id: string, item, updateItem) => {\n const newRelations = item.relations || []\n newRelations?.push({ items_id: item.id, related_items_id: id })\n const updatedItem = { id: item.id, relations: newRelations }\n\n let success = false\n try {\n await item?.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...item, relations: newRelations })\n toast.success('Item linked')\n }\n}\n\nexport const unlinkItem = async (id: string, item, updateItem) => {\n const newRelations = item.relations?.filter((r) => r.related_items_id !== id)\n const updatedItem = { id: item.id, relations: newRelations }\n\n let success = false\n try {\n await item?.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...item, relations: newRelations })\n toast.success('Item unlinked')\n }\n}\n\nexport const handleDelete = async (\n event: React.MouseEvent<HTMLElement>,\n item,\n setLoading,\n removeItem,\n map,\n navigate,\n) => {\n event.stopPropagation()\n setLoading(true)\n let success = false\n try {\n await item.layer?.api?.deleteItem!(item.id)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n removeItem(item)\n toast.success('Item deleted')\n }\n setLoading(false)\n map.closePopup()\n const params = new URLSearchParams(window.location.search)\n window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`)\n navigate('/')\n}\n\nexport const onUpdateItem = async (\n state,\n item,\n tags,\n addTag,\n setLoading,\n navigate,\n updateItem,\n addItem,\n user,\n params,\n) => {\n let changedItem = {} as Item\n\n const offerUpdates: any[] = []\n // check for new offers\n await state.offers?.map((o) => {\n const existingOffer = item?.offers?.find((t) => t.tags_id === o.id)\n existingOffer && offerUpdates.push(existingOffer.id)\n if (!existingOffer && !tags.some((t) => t.id === o.id)) addTag({ ...o, offer_or_need: true })\n !existingOffer && offerUpdates.push({ items_id: item?.id, tags_id: o.id })\n return null\n })\n\n const needsUpdates: any[] = []\n\n await state.needs?.map((n) => {\n const existingNeed = item?.needs?.find((t) => t.tags_id === n.id)\n existingNeed && needsUpdates.push(existingNeed.id)\n !existingNeed && needsUpdates.push({ items_id: item?.id, tags_id: n.id })\n !existingNeed && !tags.some((t) => t.id === n.id) && addTag({ ...n, offer_or_need: true })\n return null\n })\n\n // update profile item in current state\n changedItem = {\n id: state.id,\n name: state.name,\n subname: state.subname,\n text: state.text,\n ...(state.color && { color: state.color }),\n position: item.position,\n ...(state.group_type && { group_type: state.group_type }),\n ...(state.status && { status: state.status }),\n contact: state.contact,\n telephone: state.telephone,\n ...(state.end && { end: state.end }),\n ...(state.start && { start: state.start }),\n ...(state.marker_icon && { markerIcon: state.marker_icon }),\n next_appointment: state.next_appointment,\n ...(state.image.length > 10 && { image: state.image }),\n ...(state.offers.length > 0 && { offers: offerUpdates }),\n ...(state.needs.length > 0 && { needs: needsUpdates }),\n }\n\n const offersState: any[] = []\n const needsState: any[] = []\n\n state.offers.map((o) => {\n offersState.push({ items_id: item?.id, tags_id: o.id })\n return null\n })\n\n state.needs.map((n) => {\n needsState.push({ items_id: item?.id, tags_id: n.id })\n return null\n })\n\n changedItem = { ...changedItem, offers: offersState, needs: needsState }\n\n setLoading(true)\n\n await state.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({\n id: crypto.randomUUID(),\n name: encodeTag(tag.slice(1).toLocaleLowerCase()),\n color: randomColor(),\n })\n }\n return null\n })\n\n // take care that addTag request comes before item request\n await sleep(200)\n\n if (!item.new) {\n item?.layer?.api?.updateItem &&\n toast\n .promise(item?.layer?.api?.updateItem(changedItem), {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .catch(setLoading(false))\n .then(() => item && updateItem({ ...item, ...changedItem }))\n .then(() => {\n setLoading(false)\n navigate(`/item/${item.id}${params && '?' + params}`)\n return null\n })\n } else {\n item.new = false\n item.layer?.api?.createItem &&\n toast\n .promise(item.layer?.api?.createItem(changedItem), {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .catch(setLoading(false))\n .then(\n () =>\n item &&\n addItem({\n ...item,\n ...changedItem,\n layer: item.layer,\n user_created: user,\n type: item.layer?.itemType,\n }),\n )\n .then(() => {\n setLoading(false)\n navigate(`/${params && '?' + params}`)\n return null\n })\n }\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { useEffect, useState } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport type { Item } from '#types/Item'\n\nexport const ContactInfoView = ({ item, heading }: { item: Item; heading: string }) => {\n const appState = useAppState()\n const [profileOwner, setProfileOwner] = useState<Item>()\n const items = useItems()\n\n useEffect(() => {\n // eslint-disable-next-line no-console\n console.log(\n 'user:',\n items.find(\n (i) =>\n i.user_created?.id === item.user_created?.id &&\n i.layer?.itemType.name === appState.userType,\n ),\n )\n\n setProfileOwner(\n items.find(\n (i) =>\n i.user_created?.id === item.user_created?.id &&\n i.layer?.itemType.name === appState.userType,\n ),\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, items])\n\n return (\n <div className='tw-bg-base-200 tw-mb-6 tw-mt-6 tw-p-6'>\n <h2 className='tw-text-lg tw-font-semibold'>{heading}</h2>\n <div className='tw-mt-4 tw-flex tw-items-center'>\n {profileOwner?.image && (\n <ConditionalLink url={'/item/' + profileOwner?.id}>\n <div className='tw-mr-5 tw-flex tw-items-center tw-justify-center'>\n <div className='tw-avatar'>\n <div className='tw-w-20 tw-h-20 tw-bg-gray-200 rounded-full tw-flex tw-items-center tw-justify-center overflow-hidden'>\n <img\n src={appState.assetsApi.url + profileOwner?.image}\n alt={profileOwner?.name}\n className='tw-w-full tw-h-full tw-object-cover'\n />\n </div>\n </div>\n </div>\n </ConditionalLink>\n )}\n <div className='tw-text-sm tw-flex-grow'>\n <p className='tw-font-semibold'>{profileOwner?.name}</p>\n {item.contact && (\n <p>\n <a\n href={`mailto:${item.contact}`}\n className='tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='tw-w-4 tw-h-4 tw-mr-1'\n >\n <path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'></path>\n <polyline points='22,6 12,13 2,6'></polyline>\n </svg>\n {item.contact}\n </a>\n </p>\n )}\n {item.telephone && (\n <p>\n <a\n href={`tel:${item.telephone}`}\n className='tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center tw-whitespace-nowrap'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='tw-w-4 tw-h-4 tw-mr-1'\n >\n <path d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z' />\n </svg>\n {item.telephone}\n </a>\n </p>\n )}\n </div>\n </div>\n </div>\n )\n}\n\n// eslint-disable-next-line react/prop-types\nconst ConditionalLink = ({ url, children }) => {\n const params = new URLSearchParams(window.location.search)\n\n if (url) {\n return <Link to={url + '?' + params}>{children}</Link>\n }\n return children\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useState } from 'react'\nimport { RowsPhotoAlbum } from 'react-photo-album'\nimport ReactLightbox from 'yet-another-react-lightbox'\nimport 'yet-another-react-lightbox/styles.css'\nimport 'react-photo-album/rows.css'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\n\nimport type { Item } from '#types/Item'\n\nexport const GalleryView = ({ item }: { item: Item }) => {\n const [index, setIndex] = useState(-1)\n const appState = useAppState()\n const images = item.gallery.map((i, j) => {\n return {\n src: appState.assetsApi.url + `${i.directus_files_id.id}.jpg`,\n width: i.directus_files_id.width,\n height: i.directus_files_id.height,\n index: j,\n }\n })\n return (\n <div className='tw-mx-6 tw-mb-6'>\n <RowsPhotoAlbum\n photos={images}\n targetRowHeight={150}\n onClick={({ index: current }) => setIndex(current)}\n />\n\n <ReactLightbox index={index} slides={images} open={index >= 0} close={() => setIndex(-1)} />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\nimport { cloneElement } from 'react'\n\nconst platformConfigs = {\n facebook: {\n shareUrl: 'https://www.facebook.com/sharer/sharer.php?u={url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z' />\n </svg>\n ),\n bgColor: '#3b5998',\n },\n twitter: {\n shareUrl: 'https://twitter.com/intent/tweet?text={title}:%20{url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z' />\n </svg>\n ),\n bgColor: '#55acee',\n },\n linkedin: {\n shareUrl: 'http://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6zM2 9h4v12H2z' />\n <circle cx='4' cy='4' r='2' />\n </svg>\n ),\n bgColor: '#4875b4',\n },\n xing: {\n shareUrl: 'https://www.xing-share.com/app/user?op=share;sc_p=xing-share;url={url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M18.188 0c-.517 0-.741.325-.927.66 0 0-7.455 13.224-7.702 13.657.015.024 4.919 9.023 4.919 9.023.17.308.436.66.967.66h3.454c.211 0 .375-.078.463-.22.089-.151.089-.346-.009-.536l-4.879-8.916c-.004-.006-.004-.016 0-.022L22.139.756c.095-.191.097-.387.006-.535C22.056.078 21.894 0 21.686 0h-3.498zM3.648 4.74c-.211 0-.385.074-.473.216-.09.149-.078.339.02.531l2.34 4.05c.004.01.004.016 0 .021L1.86 16.051c-.099.188-.093.381 0 .529.085.142.239.234.45.234h3.461c.518 0 .766-.348.945-.667l3.734-6.609-2.378-4.155c-.172-.315-.434-.659-.962-.659H3.648v.016z' />\n </svg>\n ),\n bgColor: '#026466',\n },\n whatsapp: {\n shareUrl: 'https://api.whatsapp.com/send?text={title}%20{url}',\n icon: (\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z'></path>\n </svg>\n ),\n bgColor: '#25D366',\n },\n telegram: {\n shareUrl: 'https://t.me/share/url?url={url}&text={title}',\n icon: (\n <svg\n stroke='white'\n fill='white'\n strokeWidth='0'\n viewBox='0 0 448 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z'></path>\n </svg>\n ),\n bgColor: '#0088cc',\n },\n}\n\nconst SocialShareButton = ({\n platform,\n url,\n title,\n}: {\n platform: string\n url: string\n title: string\n}) => {\n // eslint-disable-next-line security/detect-object-injection\n const config = platformConfigs[platform]\n\n if (!config) {\n return null\n }\n\n const { shareUrl, icon, bgColor } = config\n const finalShareUrl = shareUrl\n .replace('{url}', encodeURIComponent(url))\n .replace('{title}', encodeURIComponent(title))\n\n return (\n <a\n href={finalShareUrl}\n target='_blank'\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white'\n style={{\n color: 'white',\n backgroundColor: bgColor,\n }}\n title={`share link on ${platform}`}\n >\n {cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' })}\n </a>\n )\n}\n\nexport default SocialShareButton\n","import { toast } from 'react-toastify'\n\nimport SocialShareButton from './SocialShareButton'\n\nconst SocialShareBar = ({\n url,\n title,\n platforms = ['facebook', 'twitter', 'linkedin', 'xing', 'email'],\n}: {\n url: string\n title: string\n platforms?: string[]\n}) => {\n const copyLink = () => {\n navigator.clipboard\n .writeText(url)\n .then(() => {\n toast.success('link copied to clipboard')\n return null\n })\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n .catch((error: never) => {\n toast.error('Fehler beim Kopieren des Links: ', error)\n })\n }\n return (\n <div className='tw-flex tw-place-content-end tw-justify-end tw-space-x-2 tw-grow tw-min-w-fit tw-pl-2'>\n {platforms.map((platform) => (\n <SocialShareButton key={platform} platform={platform} url={url} title={title} />\n ))}\n {platforms.includes('email') && (\n <a\n href={`mailto:?subject=${title}&body=${url}`}\n target='_blank'\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer'\n style={{\n color: 'white',\n backgroundColor: '#444',\n }}\n onClick={() => copyLink()}\n title='share link via email'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='white'\n className='tw-h-4 tw-w-4'\n >\n <path d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z' />\n </svg>\n </a>\n )}\n {platforms.includes('clipboard') && (\n <div\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer'\n style={{\n color: 'white',\n backgroundColor: '#888',\n }}\n onClick={() => copyLink()}\n title='copy Link'\n >\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 256 256'\n height='1.5em'\n width='1.5em'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M180,64H40A12,12,0,0,0,28,76V216a12,12,0,0,0,12,12H180a12,12,0,0,0,12-12V76A12,12,0,0,0,180,64ZM168,204H52V88H168ZM228,40V180a12,12,0,0,1-24,0V52H76a12,12,0,0,1,0-24H216A12,12,0,0,1,228,40Z'></path>\n </svg>\n </div>\n )}\n </div>\n )\n}\n\nexport default SocialShareBar\n","import SocialShareBar from './SocialShareBar'\n\nimport type { Item } from '#types/Item'\n\nexport const GroupSubHeaderView = ({\n item,\n shareBaseUrl,\n platforms,\n}: {\n item: Item\n shareBaseUrl: string\n platforms?: string[]\n}) => (\n <div className='tw-px-6'>\n <div className='tw-float-left tw-mt-2 tw-mb-4 tw-flex tw-items-center'>\n {item.status && (\n <div className='tw-mt-1.5'>\n <span className='tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-0.5 tw-px-2 tw-inline-flex tw-items-center tw-mr-2'>\n {item.status}\n </span>\n </div>\n )}\n {item.group_type && (\n <div className='tw-mt-1.5'>\n <span className='tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-1 tw-px-2'>\n {item.group_type}\n </span>\n </div>\n )}\n </div>\n <div>\n <SocialShareBar\n url={\n shareBaseUrl && item.slug\n ? shareBaseUrl + item.slug\n : window.location.protocol + '//' + window.location.host + '/item/' + item.id\n }\n title={item.name}\n platforms={platforms}\n />\n </div>\n </div>\n)\n","import { StartEndView } from '#components/Map'\n\nimport type { Item } from '#types/Item'\n\nexport const ProfileStartEndView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-mt-2 tw-px-6 tw-max-w-xs'>\n <StartEndView item={item}></StartEndView>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { TextView } from '#components/Map'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\n\nexport const ProfileTextView = ({\n item,\n dataField,\n heading,\n hideWhenEmpty,\n}: {\n item: Item\n dataField: string\n heading: string\n hideWhenEmpty: boolean\n}) => {\n return (\n <div className='tw-my-10 tw-mt-2 tw-px-6'>\n {!(getValue(item, dataField) === '' && hideWhenEmpty) && (\n <h2 className='tw-text-lg tw-font-semibold'>{heading}</h2>\n )}\n <div className='tw-mt-2 tw-text-sm'>\n <TextView rawText={dataField ? getValue(item, dataField) : getValue(item, 'text')} />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n\nimport { ContactInfoView } from '#components/Profile/Subcomponents/ContactInfoView'\nimport { GalleryView } from '#components/Profile/Subcomponents/GalleryView'\nimport { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHeaderView'\nimport { ProfileStartEndView } from '#components/Profile/Subcomponents/ProfileStartEndView'\nimport { ProfileTextView } from '#components/Profile/Subcomponents/ProfileTextView'\n\nimport type { Item } from '#types/Item'\n\nconst componentMap = {\n groupSubheaders: GroupSubHeaderView,\n texts: ProfileTextView,\n contactInfos: ContactInfoView,\n startEnd: ProfileStartEndView,\n gallery: GalleryView,\n // weitere Komponenten hier\n}\n\nexport const FlexView = ({ item }: { item: Item }) => {\n // eslint-disable-next-line no-console\n console.log(item)\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n {item.layer?.itemType.profileTemplate.map((templateItem) => {\n const TemplateComponent = componentMap[templateItem.collection]\n return TemplateComponent ? (\n <TemplateComponent key={templateItem.id} item={item} {...templateItem.item} />\n ) : (\n <div key={templateItem.id}>Component not found</div>\n )\n })}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { TextView } from '#components/Map'\nimport { ContactInfoView } from '#components/Profile/Subcomponents/ContactInfoView'\nimport { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHeaderView'\n\nimport type { Item } from '#types/Item'\n\nexport const OnepagerView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n <GroupSubHeaderView\n item={item}\n shareBaseUrl={`https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}`}\n />\n {item.user_created?.first_name && <ContactInfoView heading='Du hast Fragen?' item={item} />}\n {/* Description Section */}\n <div className='tw-my-10 tw-mt-2 tw-px-6 tw-text-sm '>\n <TextView rawText={item.text || 'Keine Beschreibung vorhanden'} />\n </div>\n {/* Next Appointment Section */}\n {item.next_appointment && (\n <div className='tw-my-10 tw-px-6'>\n <h2 className='tw-text-lg tw-font-semibold'>Nächste Termine</h2>\n <div className='tw-mt-2 tw-text-sm'>\n <TextView rawText={item.next_appointment} />\n </div>\n </div>\n )}\n ;{/* Relations Section */}\n {/* {d.relations && ( */}\n {/* <div className=\"tw-my-10 tw-px-6\"> */}\n {/* <h2 className=\"tw-text-lg tw-font-semibold tw-mb-4\">Projekte</h2> */}\n {/* {d.relations.map((project, index) => ( */}\n {/* <RelationCard */}\n {/* key={index} */}\n {/* title={project.title} */}\n {/* description={project.description} */}\n {/* imageSrc={project.imageSrc} */}\n {/* /> */}\n {/* ))} */}\n {/* </div> */}\n {/* )} */}\n </div>\n )\n}\n","import { TextView } from '#components/Map'\n\nimport type { Item } from '#types/Item'\n\nexport const SimpleView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-mt-8 tw-h-full tw-overflow-y-auto fade tw-px-6'>\n <TextView item={item} />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useState } from 'react'\n\nimport { TextInput } from '#components/Input'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useGetItemTags } from '#components/Map/hooks/useTags'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport DialogModal from '#components/Templates/DialogModal'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\n\nexport function ActionButton({\n item,\n triggerAddButton,\n triggerItemSelected,\n existingRelations,\n itemType,\n colorField,\n collection = 'items',\n customStyle,\n}: {\n triggerAddButton?: any\n triggerItemSelected?: any\n existingRelations: Item[]\n itemType?: string\n colorField?: string\n collection?: string\n customStyle?: string\n item: Item\n}) {\n const hasUserPermission = useHasUserPermission()\n const [modalOpen, setModalOpen] = useState<boolean>(false)\n const [search, setSearch] = useState<string>('')\n const getItemTags = useGetItemTags()\n\n const items = useItems()\n\n const filterdItems = items\n .filter((i) => !itemType || i.layer?.itemType.name === itemType)\n .filter((i) => !existingRelations.some((s) => s.id === i.id))\n .filter((i) => i.id !== item.id)\n\n return (\n <>\n {hasUserPermission(collection, 'update', item) && (\n <>\n <div className={`tw-absolute tw-right-4 tw-bottom-4 tw-flex tw-flex-col ${customStyle}`}>\n {triggerItemSelected && (\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow'\n onClick={() => {\n setModalOpen(true)\n }}\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n <svg\n className='tw-h-5 tw-w-5'\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z'></path>\n </svg>\n </button>\n )}\n {triggerAddButton && (\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow tw-mt-2'\n onClick={() => {\n triggerAddButton()\n }}\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='4'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </button>\n )}\n </div>\n <DialogModal\n title={'Select'}\n isOpened={modalOpen}\n onClose={() => setModalOpen(false)}\n className='tw-w-xl sm:tw-w-2xl tw-min-h-80 tw-bg-base-200'\n >\n <TextInput\n defaultValue=''\n placeholder='🔍 Search'\n containerStyle='lg:col-span-2 tw-m-4 '\n updateFormValue={(val) => {\n setSearch(val)\n }}\n ></TextInput>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2'>\n {filterdItems\n .filter((item) => {\n return search === ''\n ? item\n : item.name.toLowerCase().includes(search.toLowerCase())\n })\n .map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-mx-4 tw-p-4 tw-mb-4 tw-h-fit'\n onClick={() => {\n triggerItemSelected(i.id)\n setModalOpen(false)\n }}\n >\n <HeaderView item={i} hideMenu></HeaderView>\n </div>\n ))}\n </div>\n </DialogModal>\n </>\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect } from 'react'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\n\nexport function LinkedItemsHeaderView({\n item,\n unlinkCallback,\n itemNameField,\n itemAvatarField,\n loading,\n unlinkPermission,\n itemSubnameField,\n}: {\n item: Item\n unlinkCallback?: any\n itemNameField?: string\n itemAvatarField?: string\n itemSubnameField?: string\n loading?: boolean\n unlinkPermission: boolean\n}) {\n const appState = useAppState()\n\n const avatar =\n itemAvatarField && getValue(item, itemAvatarField)\n ? appState.assetsApi.url + getValue(item, itemAvatarField)\n : item.layer?.itemAvatarField &&\n item &&\n getValue(item, item.layer?.itemAvatarField) &&\n appState.assetsApi.url + getValue(item, item.layer?.itemAvatarField)\n const title = itemNameField\n ? getValue(item, itemNameField)\n : item.layer?.itemNameField && item && getValue(item, item.layer.itemNameField)\n const subtitle = itemSubnameField\n ? getValue(item, itemSubnameField)\n : item.layer?.itemSubnameField && item && getValue(item, item.layer.itemSubnameField)\n\n useEffect(() => {}, [item])\n\n return (\n <>\n <div className='tw-flex tw-flex-row'>\n <div className={'tw-grow tw-max-w-[calc(100%-60px)] }'}>\n <div className='flex items-center'>\n {avatar && (\n <img\n className={'tw-w-10 tw-inline tw-rounded-full'}\n src={avatar}\n alt={item.name + ' logo'}\n />\n )}\n <div className={`${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`}>\n <div className={'tw-text-xl tw-font-semibold tw-truncate'}>{title}</div>\n {subtitle && (\n <div className='tw-text-xs tw-truncate tw-text-gray-500 '>{subtitle}</div>\n )}\n </div>\n </div>\n </div>\n <div className='tw-col-span-1' onClick={(e) => e.stopPropagation()}>\n {unlinkPermission && (\n <div className='tw-dropdown tw-dropdown-bottom'>\n <label\n tabIndex={0}\n className=' tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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\n tabIndex={0}\n className='tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000'\n >\n {true && (\n <li>\n <a\n className='tw-cursor-pointer !tw-text-error'\n onClick={() => unlinkCallback(item.id)}\n >\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-sm'></span>\n ) : (\n <svg\n className='tw-h-5 tw-w-5'\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z'></path>\n </svg>\n )}\n </a>\n </li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { StartEndView, TextView } from '#components/Map'\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { ActionButton } from '#components/Profile/Subcomponents/ActionsButton'\nimport { LinkedItemsHeaderView } from '#components/Profile/Subcomponents/LinkedItemsHeaderView'\nimport { TagView } from '#components/Templates/TagView'\nimport { timeAgo } from '#utils/TimeAgo'\n\nimport type { Item } from '#types/Item'\nimport type { Tag } from '#types/Tag'\n\nexport const TabsView = ({\n attestations,\n item,\n offers,\n needs,\n relations,\n updatePermission,\n loading,\n linkItem,\n unlinkItem,\n}: {\n attestations: any[]\n item: Item\n offers: Tag[]\n needs: Tag[]\n relations: Item[]\n updatePermission: boolean\n loading: boolean\n linkItem: (id: string) => Promise<void>\n unlinkItem: (id: string) => Promise<void>\n}) => {\n const addFilterTag = useAddFilterTag()\n const [activeTab, setActiveTab] = useState<number>()\n const navigate = useNavigate()\n\n const [addItemPopupType] = useState<string>('')\n\n const items = useItems()\n const appState = useAppState()\n const getUserProfile = (id: string) => {\n return items.find(\n (i) => i.user_created?.id === id && i.layer?.itemType.name === appState.userType,\n )\n }\n\n useEffect(() => {\n scroll()\n }, [addItemPopupType])\n\n function scroll() {\n tabRef.current?.scrollIntoView()\n }\n\n const tabRef = useRef<HTMLFormElement>(null)\n\n const updateActiveTab = useCallback(\n (id: number) => {\n setActiveTab(id)\n\n const params = new URLSearchParams(window.location.search)\n params.set('tab', `${id}`)\n const newUrl = location.pathname + '?' + params.toString()\n window.history.pushState({}, '', newUrl)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [location.pathname],\n )\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTab = params.get('tab')\n setActiveTab(urlTab ? Number(urlTab) : 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n return (\n <div role='tablist' className='tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2 tw-px-6'>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label={`${item.layer?.itemType.icon_as_labels && activeTab !== 1 ? '📝' : '📝\\u00A0Info'}`}\n checked={activeTab === 1 && true}\n onChange={() => updateActiveTab(1)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden'\n >\n {item.layer?.itemType.show_start_end && (\n <div className='tw-max-w-xs'>\n <StartEndView item={item}></StartEndView>\n </div>\n )}\n <TextView item={item} />\n <div className='tw-h-4'></div>\n <TextView item={item} itemTextField='contact' />\n </div>\n {item.layer?.itemType.questlog && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 2 ? '❤️' : '❤️\\u00A0Trust'}`}\n checked={activeTab === 2 && true}\n onChange={() => updateActiveTab(2)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden'\n >\n <table className='sm:tw-table-sm md:tw-table-md'>\n <tbody>\n {attestations\n .filter((a) => a.to.some((t) => t.directus_users_id === item.user_created?.id))\n .sort(\n (a, b) =>\n new Date(b.date_created).getTime() - new Date(a.date_created).getTime(),\n )\n .map((a, i) => (\n <tr key={i}>\n <td>\n <div\n className={`tw-cursor-pointer tw-text-3xl tw-mask tw-mask-${a.shape} tw-p-3 tw-mr-2 tw-shadow-xl tw-bg-[${a.color}]`}\n >\n {a.emoji}\n </div>\n </td>\n <td>\n <div className='tw-mr-2'>\n <i>{a.text}</i>\n </div>\n </td>\n <td>\n <Link to={'/item/' + getUserProfile(a.user_created.id)?.id}>\n <div className='flex items-center gap-3'>\n <div className='tw-avatar'>\n <div className='tw-mask tw-rounded-full h-8 w-8 tw-mr-2'>\n <img\n src={\n appState.assetsApi.url +\n getUserProfile(a.user_created.id)?.image\n }\n alt='Avatar'\n />\n </div>\n </div>\n <div>\n <div className='font-bold'>\n {getUserProfile(a.user_created.id)?.name}\n </div>\n <div className='tw-text-xs opacity-50 tw-text-zinc-500'>\n {timeAgo(a.date_created)}\n </div>\n </div>\n </div>\n </Link>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </>\n )}\n {item.layer?.itemType.offers_and_needs && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={`tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 ${!(item.layer.itemType.icon_as_labels && activeTab !== 3) && 'tw-min-w-[10.4em]'} [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`}\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 3 ? '♻️' : '♻️\\u00A0Offers & Needs'}`}\n checked={activeTab === 3 && true}\n onChange={() => updateActiveTab(3)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-4 tw-pb-1'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1'>\n {offers.length > 0 ? (\n <div className='tw-col-span-1'>\n <h3 className='-tw-mb-2'>Offers</h3>\n <div className='tw-flex tw-flex-wrap tw-mb-4'>\n {offers.map((o) => (\n <TagView\n key={o.id}\n tag={o}\n onClick={() => {\n addFilterTag(o)\n }}\n />\n ))}\n </div>\n </div>\n ) : (\n ''\n )}\n {needs.length > 0 ? (\n <div className='tw-col-span-1'>\n <h3 className='-tw-mb-2 tw-col-span-1'>Needs</h3>\n <div className='tw-flex tw-flex-wrap tw-mb-4'>\n {needs.map((n) => (\n <TagView key={n.id} tag={n} onClick={() => addFilterTag(n)} />\n ))}\n </div>\n </div>\n ) : (\n ''\n )}\n </div>\n </div>\n </div>\n </>\n )}\n\n {item.layer?.itemType.relations && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className='tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 7 ? '🔗' : '🔗\\u00A0Links'}`}\n checked={activeTab === 7 && true}\n onChange={() => updateActiveTab(7)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mr-4 -tw-mb-4 tw-overflow-x-hidden'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-pb-4'>\n {relations &&\n relations.map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-p-6 tw-mr-4 tw-mb-4'\n onClick={() => navigate('/item/' + i.id)}\n >\n <LinkedItemsHeaderView\n unlinkPermission={updatePermission}\n item={i}\n unlinkCallback={unlinkItem}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} />\n </div>\n </div>\n ))}\n {updatePermission && (\n <ActionButton\n collection='items'\n item={item}\n existingRelations={relations}\n triggerItemSelected={linkItem}\n colorField={item.layer.itemColorField}\n ></ActionButton>\n )}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/await-thenable */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { LatLng } from 'leaflet'\nimport { useEffect, useState } from 'react'\nimport { useMap } from 'react-leaflet'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useClusterRef } from '#components/Map/hooks/useClusterRef'\nimport { useItems, useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useLeafletRefs } from '#components/Map/hooks/useLeafletRefs'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useSelectPosition, useSetSelectPosition } from '#components/Map/hooks/useSelectPosition'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { MapOverlayPage } from '#components/Templates'\nimport { getValue } from '#utils/GetValue'\n\nimport { handleDelete, linkItem, unlinkItem } from './itemFunctions'\nimport { FlexView } from './Templates/FlexView'\nimport { OnepagerView } from './Templates/OnepagerView'\nimport { SimpleView } from './Templates/SimpleView'\nimport { TabsView } from './Templates/TabsView'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { Tag } from '#types/Tag'\n\nexport function ProfileView({ attestationApi }: { attestationApi?: ItemsApi<any> }) {\n const [item, setItem] = useState<Item>()\n const [updatePermission, setUpdatePermission] = useState<boolean>(false)\n const [relations, setRelations] = useState<Item[]>([])\n const [offers, setOffers] = useState<Tag[]>([])\n const [needs, setNeeds] = useState<Tag[]>([])\n const [loading, setLoading] = useState<boolean>(false)\n const [template, setTemplate] = useState<string>('')\n\n const location = useLocation()\n const items = useItems()\n const updateItem = useUpdateItem()\n const map = useMap()\n const selectPosition = useSelectPosition()\n const removeItem = useRemoveItem()\n const tags = useTags()\n const navigate = useNavigate()\n const hasUserPermission = useHasUserPermission()\n const setSelectPosition = useSetSelectPosition()\n const clusterRef = useClusterRef()\n const leafletRefs = useLeafletRefs()\n const appState = useAppState()\n\n const [attestations, setAttestations] = useState<any[]>([])\n\n useEffect(() => {\n if (attestationApi) {\n attestationApi\n .getItems()\n .then((value) => {\n // eslint-disable-next-line no-console\n console.log(value)\n\n setAttestations(value)\n return null\n })\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error('Error fetching items:', error)\n })\n }\n }, [attestationApi])\n\n useEffect(() => {\n const itemId = location.pathname.split('/')[2]\n const item = items.find((i) => i.id === itemId)\n item && setItem(item)\n }, [items, location])\n\n useEffect(() => {\n setOffers([])\n setNeeds([])\n setRelations([])\n\n item?.layer?.itemOffersField &&\n getValue(item, item.layer.itemOffersField)?.map((o) => {\n const tag = tags.find((t) => t.id === o.tags_id)\n tag && setOffers((current) => [...current, tag])\n return null\n })\n item?.layer?.itemNeedsField &&\n getValue(item, item.layer.itemNeedsField)?.map((n) => {\n const tag = tags.find((t) => t.id === n.tags_id)\n tag && setNeeds((current) => [...current, tag])\n return null\n })\n item?.relations?.map((r) => {\n const item = items.find((i) => i.id === r.related_items_id)\n item && setRelations((current) => [...current, item])\n return null\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, items])\n\n useEffect(() => {\n const setMap = async (marker, x) => {\n await map.setView(\n new LatLng(item?.position?.coordinates[1]!, item?.position?.coordinates[0]! + x / 4),\n undefined,\n )\n setTimeout(() => {\n marker.openPopup()\n }, 500)\n }\n if (item) {\n if (item.position) {\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1].marker\n marker &&\n clusterRef.hasLayer(marker) &&\n clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds()\n const x = bounds.getEast() - bounds.getWest()\n setMap(marker, x)\n })\n } else {\n const parent = getFirstAncestor(item)\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === parent)?.[1].marker\n marker &&\n clusterRef.hasLayer(marker) &&\n clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds()\n const x = bounds.getEast() - bounds.getWest()\n setMap(marker, x)\n })\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item])\n\n const getFirstAncestor = (item: Item): Item | undefined => {\n const parent = items.find((i) => i.id === item.parent)\n if (parent?.parent) {\n return getFirstAncestor(parent)\n } else {\n return parent\n }\n }\n\n useEffect(() => {\n item && hasUserPermission('items', 'update', item) && setUpdatePermission(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item])\n\n useEffect(() => {\n selectPosition && map.closePopup()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectPosition])\n\n useEffect(() => {\n setTemplate(item?.layer?.itemType.template || appState.userType)\n }, [appState.userType, item])\n\n return (\n <>\n {item && (\n <MapOverlayPage\n key={item.id}\n className={`!tw-p-0 tw-mx-4 tw-mt-4 tw-mb-4 md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-min-w-80 tw-max-w-3xl !tw-left-0 sm:!tw-left-auto tw-top-0 tw-bottom-0 tw-transition-opacity tw-duration-500 ${!selectPosition ? 'tw-opacity-100 tw-pointer-events-auto' : 'tw-opacity-0 tw-pointer-events-none'}`}\n >\n <>\n <div className={'tw-px-6 tw-pt-6'}>\n <HeaderView\n api={item.layer?.api}\n item={item}\n deleteCallback={(e) => handleDelete(e, item, setLoading, removeItem, map, navigate)}\n editCallback={() => navigate('/edit-item/' + item.id)}\n setPositionCallback={() => {\n map.closePopup()\n setSelectPosition(item)\n navigate('/')\n }}\n big\n truncateSubname={false}\n />\n </div>\n\n {template === 'onepager' && <OnepagerView item={item} />}\n\n {template === 'simple' && <SimpleView item={item} />}\n\n {template === 'flex' && <FlexView item={item} />}\n\n {template === 'tabs' && (\n <TabsView\n attestations={attestations}\n item={item}\n loading={loading}\n offers={offers}\n needs={needs}\n relations={relations}\n updatePermission={updatePermission}\n linkItem={(id) => linkItem(id, item, updateItem)}\n unlinkItem={(id) => unlinkItem(id, item, updateItem)}\n />\n )}\n </>\n </MapOverlayPage>\n )}\n </>\n )\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { useState, useCallback, useRef } from 'react'\nimport { ReactCrop, centerCrop, makeAspectCrop } from 'react-image-crop'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport 'react-image-crop/dist/ReactCrop.css'\nimport DialogModal from '#components/Templates/DialogModal'\n\nimport type { Crop } from 'react-image-crop'\n\ninterface AvatarWidgetProps {\n avatar: string\n setAvatar: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport const AvatarWidget: React.FC<AvatarWidgetProps> = ({ avatar, setAvatar }) => {\n const [crop, setCrop] = useState<Crop>()\n const [image, setImage] = useState<string>('')\n const [cropModalOpen, setCropModalOpen] = useState<boolean>(false)\n const [cropping, setCropping] = useState<boolean>(false)\n\n const appState = useAppState()\n\n const imgRef = useRef<HTMLImageElement>(null)\n\n const onImageChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n const file = event.target.files && event.target.files[0]\n if (file) {\n const validFormats = ['image/jpeg', 'image/png']\n const maxSizeMB = 10\n const maxSizeBytes = maxSizeMB * 1024 * 1024\n\n if (!validFormats.includes(file.type)) {\n alert('Unsupported file format. Please upload a JPEG or PNG image.')\n return\n }\n\n if (file.size > maxSizeBytes) {\n alert(`File size exceeds ${maxSizeMB}MB. Please upload a smaller image.`)\n return\n }\n\n setImage(URL.createObjectURL(file))\n setCropModalOpen(true)\n } else {\n alert('No file selected or an error occurred while selecting the file.')\n }\n }, [])\n\n const onImageLoad = useCallback((e: React.SyntheticEvent<HTMLImageElement>) => {\n const { width, height } = e.currentTarget\n setCrop(centerAspectCrop(width, height, 1))\n }, [])\n\n const centerAspectCrop = (mediaWidth: number, mediaHeight: number, aspect: number) => {\n return centerCrop(\n makeAspectCrop(\n {\n unit: 'px',\n width: mediaWidth / 2,\n },\n aspect,\n mediaWidth,\n mediaHeight,\n ),\n mediaWidth,\n mediaHeight,\n )\n }\n\n async function resizeImage(\n image: HTMLImageElement,\n maxWidth: number,\n maxHeight: number,\n ): Promise<HTMLImageElement> {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n\n let width = image.width\n let height = image.height\n\n if (width > maxWidth) {\n height *= maxWidth / width\n width = maxWidth\n }\n if (height > maxHeight) {\n width *= maxHeight / height\n height = maxHeight\n }\n\n canvas.width = width\n canvas.height = height\n\n if (ctx) {\n ctx.drawImage(image, 0, 0, width, height)\n }\n\n const resizedImage = new Image()\n resizedImage.src = canvas.toDataURL()\n\n await resizedImage.decode()\n return resizedImage\n }\n\n const renderCrop = useCallback(async () => {\n const image = imgRef.current\n if (crop && image) {\n const resizedImage = await resizeImage(image, 1024, 1024) // Bildgröße vor dem Zuschneiden reduzieren\n const scaleX = resizedImage.naturalWidth / resizedImage.width\n const scaleY = resizedImage.naturalHeight / resizedImage.height\n\n const canvas = new OffscreenCanvas(crop.width * scaleX, crop.height * scaleY)\n const ctx = canvas.getContext('2d')\n const pixelRatio = window.devicePixelRatio\n canvas.width = crop.width * pixelRatio * scaleX\n canvas.height = crop.height * pixelRatio * scaleY\n\n if (ctx) {\n ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0)\n ctx.drawImage(\n resizedImage,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width * scaleX,\n crop.height * scaleY,\n )\n }\n\n const blob = await canvas.convertToBlob()\n await resizeBlob(blob)\n setCropping(false)\n setImage('')\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [crop])\n\n const resizeBlob = useCallback(\n async (blob: Blob) => {\n const img = new Image()\n img.src = URL.createObjectURL(blob)\n await img.decode()\n\n const canvas = new OffscreenCanvas(400, 400)\n const ctx = canvas.getContext('2d')\n ctx?.drawImage(img, 0, 0, 400, 400)\n\n const resizedBlob = await canvas.convertToBlob()\n const asset = await appState.assetsApi.upload(resizedBlob, 'avatar')\n setAvatar(asset.id)\n },\n [appState.assetsApi, setAvatar],\n )\n\n return (\n <>\n {!cropping ? (\n <label className='custom-file-upload'>\n <input\n type='file'\n accept='image/*'\n className='tw-file-input tw-w-full tw-max-w-xs'\n onChange={onImageChange}\n />\n <div className='button tw-btn tw-btn-lg tw-btn-circle tw-animate-none'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='1.5'\n stroke='currentColor'\n className='tw-w-6 tw-h-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5'\n />\n </svg>\n </div>\n {avatar ? (\n <div className='tw-h-20 tw-w-20'>\n <img\n src={appState.assetsApi.url + avatar}\n className='tw-h-20 tw-w-20 tw-rounded-full'\n />\n </div>\n ) : (\n <div className='tw-h-20 tw-w-20'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n version='1.0'\n viewBox='0 0 150 150'\n className='tw-w-20 tw-h-20 tw-rounded-full'\n style={{ backgroundColor: '#eee' }}\n >\n <path\n fill='#ccc'\n d='M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z'\n />\n <path\n fill='#ccc'\n d='M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z'\n />\n </svg>\n </div>\n )}\n </label>\n ) : (\n <div className='tw-w-20 tw-flex tw-items-center tw-justify-center'>\n <span className='tw-loading tw-loading-spinner'></span>\n </div>\n )}\n <DialogModal\n title=''\n isOpened={cropModalOpen}\n onClose={() => {\n setCropModalOpen(false)\n setImage('')\n }}\n closeOnClickOutside={false}\n >\n <ReactCrop crop={crop} onChange={(c) => setCrop(c)} aspect={1}>\n <img src={image} ref={imgRef} onLoad={onImageLoad} />\n </ReactCrop>\n <button\n className={'tw-btn tw-btn-primary'}\n onClick={() => {\n setCropping(true)\n setCropModalOpen(false)\n renderCrop()\n }}\n >\n Select\n </button>\n </DialogModal>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect } from 'react'\n\n// Improved version of https://usehooks.com/useOnClickOutside/\nconst useClickOutside = (ref, handler) => {\n useEffect(() => {\n let startedInside = false\n let startedWhenMounted = false\n\n const listener = (event) => {\n // Do nothing if `mousedown` or `touchstart` started inside ref element\n if (startedInside || !startedWhenMounted) return\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) return\n\n handler(event)\n }\n\n const validateEventStart = (event) => {\n startedWhenMounted = ref.current\n startedInside = ref.current && ref.current.contains(event.target)\n }\n\n document.addEventListener('mousedown', validateEventStart)\n document.addEventListener('touchstart', validateEventStart)\n document.addEventListener('click', listener)\n\n return () => {\n document.removeEventListener('mousedown', validateEventStart)\n document.removeEventListener('touchstart', validateEventStart)\n document.removeEventListener('click', listener)\n }\n }, [ref, handler])\n}\n\nexport default useClickOutside\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { HexColorPicker } from 'react-colorful'\n\nimport './ColorPicker.css'\nimport useClickOutside from '#components/Profile/hooks/useClickOutside'\n\n// eslint-disable-next-line react/prop-types\nexport const ColorPicker = ({ color, onChange, className }) => {\n const popover = useRef<HTMLDivElement>(null)\n const [isOpen, toggle] = useState(false)\n\n const close = useCallback(() => toggle(false), [])\n useClickOutside(popover, close)\n\n const colorPickerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n // Füge dem Color-Picker explizit Event-Listener hinzu\n const colorPickerElement = colorPickerRef.current\n if (colorPickerElement) {\n const enablePropagation = (event) => {\n // Verhindere, dass Leaflet die Propagation stoppt\n event.stopPropagation = () => {}\n }\n\n // Event-Listener für den Color-Picker\n ;['click', 'dblclick', 'mousedown', 'touchstart'].forEach((eventType) => {\n colorPickerElement.addEventListener(eventType, enablePropagation, true)\n })\n }\n }, [])\n\n return (\n <div ref={colorPickerRef} className={`picker ${className}`}>\n <div className='swatch' style={{ backgroundColor: color }} onClick={() => toggle(true)} />\n\n {isOpen && (\n <div className='popover tw-z-[10000]' ref={popover}>\n <HexColorPicker color={color} onChange={onChange} onClick={() => toggle(false)} />\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable react/prop-types */\nimport { TextInput } from '#components/Input'\n\nimport { AvatarWidget } from './AvatarWidget'\nimport { ColorPicker } from './ColorPicker'\n\nexport const FormHeader = ({ item, state, setState }) => {\n return (\n <div className='tw-flex'>\n <AvatarWidget\n avatar={state.image}\n setAvatar={(i) =>\n setState((prevState) => ({\n ...prevState,\n image: i,\n }))\n }\n />\n <ColorPicker\n color={state.color}\n onChange={(c) =>\n setState((prevState) => ({\n ...prevState,\n color: c,\n }))\n }\n className={'-tw-left-6 tw-top-14 -tw-mr-6'}\n />\n <div className='tw-grow tw-mr-4'>\n <TextInput\n placeholder='Name'\n defaultValue={item?.name ? item.name : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n name: v,\n }))\n }\n containerStyle='tw-grow tw-input-md'\n />\n <TextInput\n placeholder='Subtitle'\n required={false}\n defaultValue={item?.subname ? item.subname : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n subname: v,\n }))\n }\n containerStyle='tw-grow tw-input-sm tw-px-4 tw-mt-1'\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { TextInput } from '#components/Input'\n\nimport type { FormState } from '#types/FormState'\n\nexport const ContactInfoForm = ({\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n}) => {\n return (\n <div className='tw-mt-4 tw-space-y-4'>\n <div>\n <label\n htmlFor='email'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Email-Adresse (Kontakt):\n </label>\n <TextInput\n placeholder='Email'\n type='email'\n required={false}\n defaultValue={state.contact}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n contact: v,\n }))\n }\n />\n </div>\n\n <div>\n <label\n htmlFor='telephone'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Telefonnummer (Kontakt):\n </label>\n <TextInput\n placeholder='Telefonnummer'\n type='tel'\n required={false}\n pattern='^\\+?[0-9\\s\\-]{7,15}$'\n defaultValue={state.telephone}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n telephone: v,\n }))\n }\n />\n </div>\n </div>\n )\n}\n","interface ComboBoxProps {\n id?: string\n options: string[]\n value: string\n onValueChange: (newValue: string) => void\n}\n\nconst ComboBoxInput = ({ id, options, value, onValueChange }: ComboBoxProps) => {\n const handleChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const value = e.target.value\n onValueChange(value)\n }\n\n return (\n <select\n id={id}\n className='tw-form-select tw-block tw-w-full tw-py-2 tw-px-4 tw-border tw-border-gray-300 rounded-md tw-shadow-sm tw-text-sm focus:tw-outline-none focus:tw-ring-indigo-500 focus:tw-border-indigo-500 sm:tw-text-sm'\n onChange={handleChange}\n >\n {options.map((o) => (\n <option value={o} key={o} selected={o === value}>\n {o}\n </option>\n ))}\n </select>\n )\n}\n\nexport default ComboBoxInput\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { useEffect } from 'react'\n\nimport ComboBoxInput from '#components/Input/ComboBoxInput'\n\nimport type { FormState } from '#types/FormState'\nimport type { Item } from '#types/Item'\n\ninterface groupType {\n groupTypes_id: {\n name: string\n color: string\n image: string\n markerIcon: string\n }\n}\n\nexport const GroupSubheaderForm = ({\n state,\n setState,\n groupStates,\n groupTypes,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n groupStates?: string[]\n groupTypes?: groupType[]\n}) => {\n useEffect(() => {\n if (groupTypes && groupStates) {\n const groupType = groupTypes.find((gt) => gt.groupTypes_id.name === state.group_type)\n const customImage = !groupTypes.some(\n (gt) => gt.groupTypes_id.image === state.image || !state.image,\n )\n setState((prevState) => ({\n ...prevState,\n color: groupType?.groupTypes_id.color || groupTypes[0].groupTypes_id.color,\n marker_icon: groupType?.groupTypes_id.markerIcon || groupTypes[0].groupTypes_id.markerIcon,\n image: customImage\n ? state.image\n : groupType?.groupTypes_id.image || groupTypes[0].groupTypes_id.image,\n status: state.status || groupStates[0],\n group_type: state.group_type || groupTypes[0].groupTypes_id.name,\n }))\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.group_type, groupTypes])\n\n return (\n <div className='tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6'>\n <div>\n <label\n htmlFor='status'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenstatus:\n </label>\n <ComboBoxInput\n id='status'\n options={groupStates || []}\n value={state.status}\n onValueChange={(v) =>\n setState((prevState) => ({\n ...prevState,\n status: v,\n }))\n }\n />\n </div>\n <div>\n <label\n htmlFor='groupType'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenart:\n </label>\n <ComboBoxInput\n id='groupType'\n options={groupTypes?.map((gt) => gt.groupTypes_id.name) || []}\n value={state.group_type}\n onValueChange={(v) =>\n setState((prevState) => ({\n ...prevState,\n group_type: v,\n }))\n }\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { PopupStartEndInput } from '#components/Map'\n\nimport type { Item } from '#types/Item'\n\nexport const ProfileStartEndForm = ({\n item,\n setState,\n}: {\n item: Item\n setState: React.Dispatch<React.SetStateAction<any>>\n}) => {\n return (\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) =>\n setState((prevState) => ({\n ...prevState,\n end: e,\n }))\n }\n updateStartValue={(s) =>\n setState((prevState) => ({\n ...prevState,\n start: s,\n }))\n }\n ></PopupStartEndInput>\n )\n}\n","import { useState } from 'react'\n\nexport const MarkdownHint = () => {\n const [expended, setExpended] = useState<boolean>(false)\n return (\n <div\n onClick={() => setExpended(true)}\n title='Markdown is supported'\n className='flex tw-flex-row tw-text-gray-400 tw-cursor-pointer tw-items-center'\n >\n <svg\n aria-hidden='true'\n height='16'\n viewBox='0 0 16 16'\n version='1.1'\n width='16'\n data-view-component='true'\n className='octicon octicon-markdown'\n fill='rgb(156 163 175 / var(--tw-text-opacity))'\n >\n <path d='M14.85 3c.63 0 1.15.52 1.14 1.15v7.7c0 .63-.51 1.15-1.15 1.15H1.15C.52 13 0 12.48 0 11.84V4.15C0 3.52.52 3 1.15 3ZM9 11V5H7L5.5 7 4 5H2v6h2V8l1.5 1.92L7 8v3Zm2.99.5L14.5 8H13V5h-2v3H9.5Z'></path>\n </svg>\n {expended && (\n <a\n href='https://www.markdownguide.org/cheat-sheet/#basic-syntax'\n target='_blank'\n rel='noreferrer'\n >\n <span className='Button-label tw-ml-1'>Markdown is support</span>{' '}\n </a>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState } from 'react'\n\nimport { TextAreaInput } from '#components/Input'\nimport { getValue } from '#utils/GetValue'\n\nimport { MarkdownHint } from './MarkdownHint'\n\nimport type { FormState } from '#types/FormState'\n\nexport const ProfileTextForm = ({\n state,\n setState,\n dataField,\n heading,\n size,\n hideInputLabel,\n required,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n dataField?: string\n heading: string\n size: string\n hideInputLabel: boolean\n required?: boolean\n}) => {\n const [field, setField] = useState<string>(dataField || 'text')\n\n useEffect(() => {\n if (!dataField) {\n setField('text')\n }\n }, [dataField])\n\n return (\n <div className='tw-h-full tw-flex tw-flex-col tw-mt-4'>\n <div className='tw-flex tw-justify-between tw-items-center'>\n <label\n htmlFor='nextAppointment'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n {heading || 'Text'}:\n </label>\n <MarkdownHint />\n </div>\n <TextAreaInput\n placeholder={'...'}\n defaultValue={getValue(state, field)}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n [field]: v,\n }))\n }\n labelStyle={hideInputLabel ? 'tw-hidden' : ''}\n containerStyle={size === 'full' ? 'tw-grow tw-h-full' : ''}\n inputStyle={size === 'full' ? 'tw-h-full' : 'tw-h-24'}\n required={required}\n />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n\nimport { ContactInfoForm } from '#components/Profile/Subcomponents/ContactInfoForm'\nimport { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubheaderForm'\nimport { ProfileStartEndForm } from '#components/Profile/Subcomponents/ProfileStartEndForm'\nimport { ProfileTextForm } from '#components/Profile/Subcomponents/ProfileTextForm'\n\nimport type { FormState } from '#types/FormState'\nimport type { Item } from '#types/Item'\n\nconst componentMap = {\n groupSubheaders: GroupSubheaderForm,\n texts: ProfileTextForm,\n contactInfos: ContactInfoForm,\n startEnd: ProfileStartEndForm,\n // weitere Komponenten hier\n}\n\nexport const FlexForm = ({\n item,\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n}) => {\n return (\n <div className='tw-mt-6 tw-flex tw-flex-col tw-h-full'>\n {item.layer?.itemType.profileTemplate.map((templateItem) => {\n const TemplateComponent = componentMap[templateItem.collection]\n return TemplateComponent ? (\n <TemplateComponent\n key={templateItem.id}\n state={state}\n setState={setState}\n item={item}\n {...templateItem.item}\n />\n ) : (\n <div key={templateItem.id}>Component not found</div>\n )\n })}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { TextAreaInput } from '#components/Input'\nimport { ContactInfoForm } from '#components/Profile/Subcomponents/ContactInfoForm'\nimport { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubheaderForm'\n\nimport type { FormState } from '#types/FormState'\nimport type { Item } from '#types/Item'\n\nexport const OnepagerForm = ({\n item,\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n}) => {\n return (\n <div className='tw-space-y-6 tw-mt-6'>\n <GroupSubheaderForm state={state} setState={setState} item={item}></GroupSubheaderForm>\n <ContactInfoForm state={state} setState={setState}></ContactInfoForm>\n\n <div>\n <label\n htmlFor='description'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenbeschreibung:\n </label>\n <TextAreaInput\n placeholder='Beschreibung'\n defaultValue={state.text || ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n inputStyle='tw-h-48'\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { TextAreaInput } from '#components/Input'\n\n// eslint-disable-next-line react/prop-types\nexport const SimpleForm = ({ state, setState }) => {\n return (\n <TextAreaInput\n placeholder='About me ...'\n // eslint-disable-next-line react/prop-types\n defaultValue={state?.text || ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n containerStyle='tw-mt-8 tw-h-full'\n inputStyle='tw-h-full'\n />\n )\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect, useRef, useState } from 'react'\n\nimport { TagView } from '#components/Templates/TagView'\n\nexport const Autocomplete = ({\n inputProps,\n suggestions,\n onSelected,\n pushFilteredSuggestions,\n setFocus,\n}: {\n inputProps: any\n suggestions: any[]\n onSelected: (suggestion) => void\n pushFilteredSuggestions?: any[]\n setFocus?: boolean\n}) => {\n const [filteredSuggestions, setFilteredSuggestions] = useState<any[]>([])\n const [heighlightedSuggestion, setHeighlightedSuggestion] = useState<number>(0)\n\n useEffect(() => {\n pushFilteredSuggestions && setFilteredSuggestions(pushFilteredSuggestions)\n }, [pushFilteredSuggestions])\n\n useEffect(() => {\n setFocus && inputRef.current?.focus()\n }, [setFocus])\n\n const inputRef = useRef<HTMLInputElement>()\n\n const getSuggestionValue = (suggestion) => suggestion.name\n\n const getSuggestions = (value) => {\n const inputValue = value.trim().toLowerCase()\n const inputLength = inputValue.length\n\n return inputLength === 0\n ? []\n : suggestions.filter((tag) => tag.name.toLowerCase().slice(0, inputLength) === inputValue)\n }\n\n const handleChange = (e) => {\n setFilteredSuggestions(getSuggestions(e.target.value))\n\n // Call the parent's onChange handler, if it exists\n if (inputProps.onChange) {\n inputProps.onChange(e)\n }\n }\n\n function handleSuggestionClick(suggestion) {\n onSelected(suggestion)\n }\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowDown':\n heighlightedSuggestion < filteredSuggestions.length - 1 &&\n setHeighlightedSuggestion((current) => current + 1)\n break\n case 'ArrowUp':\n heighlightedSuggestion > 0 && setHeighlightedSuggestion((current) => current - 1)\n break\n case 'Enter':\n if (filteredSuggestions.length > 0) {\n // eslint-disable-next-line security/detect-object-injection\n onSelected(filteredSuggestions[heighlightedSuggestion])\n setHeighlightedSuggestion(0)\n }\n filteredSuggestions.length === 0 && inputProps.onKeyDown(event)\n break\n default:\n inputProps.onKeyDown(event)\n break\n }\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n {...inputProps}\n type='text'\n onChange={(e) => handleChange(e)}\n tabIndex='-1'\n onKeyDown={handleKeyDown}\n />\n <ul\n className={`tw-absolute tw-z-[4000] ${filteredSuggestions.length > 0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2'}`}\n >\n {filteredSuggestions.map((suggestion, index) => (\n <li key={index} onClick={() => handleSuggestionClick(suggestion)}>\n <TagView heighlight={index === heighlightedSuggestion} tag={suggestion}></TagView>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useState } from 'react'\n\nimport { Autocomplete } from '#components/Input/Autocomplete'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { decodeTag, encodeTag } from '#utils/FormatTags'\nimport { randomColor } from '#utils/RandomColor'\n\nimport type { Tag } from '#types/Tag'\n\n// eslint-disable-next-line react/prop-types\nexport const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => {\n const [input, setInput] = useState('')\n const [isKeyReleased, setIsKeyReleased] = useState(false)\n const tags = useTags()\n const [pushFilteredSuggestions, setPushFilteredSuggestions] = useState<any[]>([])\n\n const [focusInput, setFocusInput] = useState<boolean>(false)\n const [currentTags, setCurrentTags] = useState<Tag[]>(defaultTags)\n\n useEffect(() => {\n setCurrentTags(defaultTags)\n }, [defaultTags])\n\n const onChange = (e) => {\n const { value } = e.target\n setInput(value)\n }\n\n const onKeyDown = (e) => {\n const { key } = e\n const trimmedInput = input.trim()\n\n if (\n (key === 'Enter' || key === ',') &&\n trimmedInput.length &&\n // eslint-disable-next-line react/prop-types\n !defaultTags.some((tag) => tag.name.toLocaleLowerCase() === trimmedInput.toLocaleLowerCase())\n ) {\n e.preventDefault()\n const newTag = tags.find((t) => t.name === trimmedInput.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag])\n !newTag &&\n onUpdate([\n ...currentTags,\n { id: crypto.randomUUID(), name: encodeTag(trimmedInput), color: randomColor() },\n ])\n setInput('')\n setPushFilteredSuggestions([])\n }\n\n // eslint-disable-next-line react/prop-types\n if (key === 'Backspace' && !input.length && defaultTags.length && isKeyReleased) {\n const defaultTagsCopy = [...defaultTags]\n const poppedTag = defaultTagsCopy.pop()\n e.preventDefault()\n onUpdate(defaultTagsCopy)\n poppedTag && setInput(poppedTag.name)\n }\n\n setIsKeyReleased(false)\n }\n\n const onKeyUp = () => {\n setIsKeyReleased(true)\n }\n\n const deleteTag = (tag) => {\n onUpdate(currentTags.filter((t) => t !== tag))\n }\n\n const onSelected = (tag) => {\n // eslint-disable-next-line react/prop-types\n if (!defaultTags.some((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())) {\n const newTag = tags.find((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag])\n !newTag &&\n onUpdate([\n ...currentTags,\n { id: crypto.randomUUID(), name: tag.name.toLocaleLowerCase(), color: randomColor() },\n ])\n setInput('')\n setPushFilteredSuggestions([])\n }\n }\n\n const inputProps = {\n value: input,\n placeholder,\n onKeyDown,\n onKeyUp,\n onChange,\n className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit',\n }\n\n /* eslint-disable react/prop-types */\n return (\n <div\n onClick={() => {\n setFocusInput(true)\n setTimeout(() => {\n setFocusInput(false)\n }, 200)\n }}\n className={`tw-input tw-input-bordered tw-cursor-text ${containerStyle}`}\n >\n <div className='tw-flex tw-flex-wrap tw-h-fit'>\n {defaultTags.map((tag) => (\n <div\n key={tag.name}\n className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4'\n style={{ backgroundColor: tag.color ? tag.color : '#666' }}\n >\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600'\n onClick={() => deleteTag(tag)}\n >\n ✕\n </label>\n </div>\n <b>{decodeTag(tag.name)}</b>\n </div>\n ))}\n <Autocomplete\n suggestions={tags}\n pushFilteredSuggestions={pushFilteredSuggestions}\n setFocus={focusInput}\n inputProps={inputProps}\n onSelected={(tag) => onSelected(tag)}\n />\n </div>\n </div>\n )\n /* eslint-enable react/prop-types */\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable react/prop-types */\nimport { useCallback, useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { TextAreaInput } from '#components/Input'\nimport { PopupStartEndInput, TextView } from '#components/Map'\nimport { useUpdateItem } from '#components/Map/hooks/useItems'\nimport { ActionButton } from '#components/Profile/Subcomponents/ActionsButton'\nimport { LinkedItemsHeaderView } from '#components/Profile/Subcomponents/LinkedItemsHeaderView'\nimport { TagsWidget } from '#components/Profile/Subcomponents/TagsWidget'\n\nexport const TabsForm = ({\n item,\n state,\n setState,\n updatePermission,\n linkItem,\n unlinkItem,\n loading,\n setUrlParams,\n}) => {\n const [activeTab, setActiveTab] = useState<number>(1)\n const navigate = useNavigate()\n const updateItem = useUpdateItem()\n\n const updateActiveTab = useCallback(\n (id: number) => {\n setActiveTab(id)\n\n const params = new URLSearchParams(window.location.search)\n\n params.set('tab', `${id}`)\n const newUrl = location.pathname + '?' + params.toString()\n window.history.pushState({}, '', newUrl)\n setUrlParams(params)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [location.pathname],\n )\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTab = params.get('tab')\n setActiveTab(urlTab ? Number(urlTab) : 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n return (\n <div role='tablist' className='tw-tabs tw-tabs-lifted tw-mt-3'>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={'tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'}\n aria-label='Info'\n checked={activeTab === 1 && true}\n onChange={() => updateActiveTab(1)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none'\n >\n <div\n className={`tw-flex tw-flex-col tw-h-full ${item.layer.itemType.show_start_end_input && 'tw-pt-4'}`}\n >\n {item.layer.itemType.show_start_end_input && (\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) =>\n setState((prevState) => ({\n ...prevState,\n end: e,\n }))\n }\n updateStartValue={(s) =>\n setState((prevState) => ({\n ...prevState,\n start: s,\n }))\n }\n ></PopupStartEndInput>\n )}\n\n <TextAreaInput\n placeholder='about ...'\n defaultValue={item?.text ? item.text : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n containerStyle='tw-grow'\n inputStyle={`tw-h-full ${!item.layer.itemType.show_start_end_input && 'tw-border-t-0 tw-rounded-tl-none'}`}\n />\n <div>\n <TextAreaInput\n placeholder='contact info ...'\n defaultValue={state.contact || ''}\n updateFormValue={(c) =>\n setState((prevState) => ({\n ...prevState,\n contact: c,\n }))\n }\n inputStyle='tw-h-24'\n containerStyle='tw-pt-4'\n />\n </div>\n </div>\n </div>\n {item.layer?.itemType.offers_and_needs && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label='Offers & Needs'\n checked={activeTab === 3 && true}\n onChange={() => updateActiveTab(3)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none'\n >\n <div className='tw-h-full'>\n <div className='tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4'>\n <TagsWidget\n defaultTags={state.offers}\n onUpdate={(v) =>\n setState((prevState) => ({\n ...prevState,\n offers: v,\n }))\n }\n placeholder='enter your offers'\n containerStyle='tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto'\n />\n </div>\n <div className='tw-w-full tw-h-[calc(50%-1.5em)]'>\n <TagsWidget\n defaultTags={state.needs}\n onUpdate={(v) =>\n setState((prevState) => ({\n ...prevState,\n needs: v,\n }))\n }\n placeholder='enter your needs'\n containerStyle='tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto'\n />\n </div>\n </div>\n </div>\n </>\n )}\n {item.layer?.itemType.relations && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className='tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n aria-label='Links'\n checked={activeTab === 7 && true}\n onChange={() => updateActiveTab(7)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-332px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mx-4 tw-overflow-x-hidden fade'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-mb-4'>\n {state.relations &&\n state.relations.map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-mx-4 tw-p-6 tw-mb-4'\n onClick={() => navigate('/item/' + i.id)}\n >\n <LinkedItemsHeaderView\n unlinkPermission={updatePermission}\n item={i}\n unlinkCallback={(id) => unlinkItem(id, item, updateItem)}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} />\n </div>\n </div>\n ))}\n {updatePermission && (\n <ActionButton\n customStyle='!tw-bottom-24'\n collection='items'\n item={item}\n existingRelations={state.relations}\n triggerItemSelected={(id) => linkItem(id, item, updateItem)}\n colorField={item.layer.itemColorField}\n ></ActionButton>\n )}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useAuth } from '#components/Auth'\nimport { useItems, useUpdateItem, useAddItem } from '#components/Map/hooks/useItems'\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useAddTag, useGetItemTags, useTags } from '#components/Map/hooks/useTags'\nimport { MapOverlayPage } from '#components/Templates'\nimport { getValue } from '#utils/GetValue'\n\nimport { linkItem, onUpdateItem, unlinkItem } from './itemFunctions'\nimport { FormHeader } from './Subcomponents/FormHeader'\nimport { FlexForm } from './Templates/FlexForm'\nimport { OnepagerForm } from './Templates/OnepagerForm'\nimport { SimpleForm } from './Templates/SimpleForm'\nimport { TabsForm } from './Templates/TabsForm'\n\nimport type { Item } from '#types/Item'\nimport type { Tag } from '#types/Tag'\n\nexport function ProfileForm() {\n const [state, setState] = useState({\n color: '',\n id: '',\n group_type: 'wuerdekompass',\n status: 'active',\n name: '',\n subname: '',\n text: '',\n contact: '',\n telephone: '',\n next_appointment: '',\n image: '',\n marker_icon: '',\n offers: [] as Tag[],\n needs: [] as Tag[],\n relations: [] as Item[],\n start: '',\n end: '',\n })\n\n const [updatePermission, setUpdatePermission] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n const [item, setItem] = useState<Item>({} as Item)\n const { user } = useAuth()\n const updateItem = useUpdateItem()\n const addItem = useAddItem()\n const layers = useLayers()\n const location = useLocation()\n const tags = useTags()\n const addTag = useAddTag()\n const navigate = useNavigate()\n const hasUserPermission = useHasUserPermission()\n const getItemTags = useGetItemTags()\n const items = useItems()\n const appState = useAppState()\n\n const [urlParams, setUrlParams] = useState(new URLSearchParams(location.search))\n\n useEffect(() => {\n item && hasUserPermission('items', 'update', item) && setUpdatePermission(true)\n }, [hasUserPermission, item])\n\n useEffect(() => {\n const itemId = location.pathname.split('/')[2]\n\n const item = items.find((i) => i.id === itemId)\n item && setItem(item)\n\n if (!item) {\n const layer = layers.find((l) => l.itemType.name === appState.userType)\n setItem({\n id: crypto.randomUUID(),\n name: user?.first_name ?? '',\n text: '',\n layer,\n new: true,\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n useEffect(() => {\n const newColor =\n item.layer?.itemColorField && getValue(item, item.layer.itemColorField)\n ? getValue(item, item.layer.itemColorField)\n : getItemTags(item) && getItemTags(item)[0]?.color\n ? getItemTags(item)[0].color\n : item.layer?.markerDefaultColor\n\n const offers = (item.offers ?? []).reduce((acc: Tag[], o) => {\n const offer = tags.find((t) => t.id === o.tags_id)\n if (offer) acc.push(offer)\n return acc\n }, [])\n\n const needs = (item.needs ?? []).reduce((acc: Tag[], o) => {\n const need = tags.find((t) => t.id === o.tags_id)\n if (need) acc.push(need)\n return acc\n }, [])\n\n const relations = (item.relations ?? []).reduce((acc: Item[], r) => {\n const relatedItem = items.find((i) => i.id === r.related_items_id)\n if (relatedItem) acc.push(relatedItem)\n return acc\n }, [])\n\n setState({\n color: newColor,\n id: item?.id ?? '',\n group_type: item?.group_type ?? '',\n status: item?.status ?? '',\n name: item?.name ?? '',\n subname: item?.subname ?? '',\n text: item?.text ?? '',\n contact: item?.contact ?? '',\n telephone: item?.telephone ?? '',\n next_appointment: item?.next_appointment ?? '',\n image: item?.image ?? '',\n marker_icon: item?.marker_icon ?? '',\n offers,\n needs,\n relations,\n start: item.start ?? '',\n end: item.end ?? '',\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, tags, items])\n\n const [template, setTemplate] = useState<string>('')\n\n useEffect(() => {\n setTemplate(item.layer?.itemType.template || appState.userType)\n }, [appState.userType, item])\n\n return (\n <>\n <MapOverlayPage\n backdrop\n className='tw-mx-4 tw-mt-4 tw-mb-4 tw-overflow-x-hidden tw-w-[calc(100%-32px)] md:tw-w-[calc(50%-32px)] tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0'\n >\n <form\n className='tw-h-full'\n onSubmit={(e) => {\n e.preventDefault()\n void onUpdateItem(\n state,\n item,\n tags,\n addTag,\n setLoading,\n navigate,\n updateItem,\n addItem,\n user,\n urlParams,\n )\n }}\n >\n <div className='tw-flex tw-flex-col tw-h-full'>\n <FormHeader item={item} state={state} setState={setState} />\n\n {template === 'onepager' && (\n <OnepagerForm item={item} state={state} setState={setState}></OnepagerForm>\n )}\n\n {template === 'simple' && <SimpleForm state={state} setState={setState}></SimpleForm>}\n\n {template === 'flex' && (\n <FlexForm item={item} state={state} setState={setState}></FlexForm>\n )}\n\n {template === 'tabs' && (\n <TabsForm\n loading={loading}\n item={item}\n state={state}\n setState={setState}\n updatePermission={updatePermission}\n linkItem={(id) => linkItem(id, item, updateItem)}\n unlinkItem={(id) => unlinkItem(id, item, updateItem)}\n setUrlParams={setUrlParams}\n ></TabsForm>\n )}\n\n <div className='tw-mt-4'>\n <button\n className={loading ? ' tw-loading tw-btn tw-float-right' : 'tw-btn tw-float-right'}\n type='submit'\n style={{\n backgroundColor: `${item.layer?.itemColorField && getValue(item, item.layer?.itemColorField) ? getValue(item, item.layer?.itemColorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n Update\n </button>\n </div>\n </div>\n </form>\n </MapOverlayPage>\n </>\n )\n}\n","import { useEffect } from 'react'\n\nexport function Modal({\n children,\n showOnStartup,\n}: {\n children: React.ReactNode\n showOnStartup?: boolean\n}) {\n useEffect(() => {\n if (showOnStartup) {\n window.my_modal_3.showModal()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <>\n {/* You can open the modal using ID.showModal() method */}\n <dialog id='my_modal_3' className='tw-modal tw-transition-all tw-duration-300'>\n <form method='dialog' className='tw-modal-box tw-transition-none'>\n <button className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2 focus:tw-outline-none'>\n ✕\n </button>\n {children}\n </form>\n <form method='dialog' className='tw-modal-backdrop'>\n <button>close</button>\n </form>\n </dialog>\n </>\n )\n}\n","import { useEffect, useState } from 'react'\n\nimport { useAuth } from '#components/Auth'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport { useQuestsOpen, useSetQuestOpen } from './hooks/useQuests'\n\nimport type { Item } from '#types/Item'\n\nexport function Quests() {\n const questsOpen = useQuestsOpen()\n const setQuestsOpen = useSetQuestOpen()\n const { isAuthenticated, user } = useAuth()\n\n useEffect(() => {\n setQuestsOpen(false)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const [profile, setProfie] = useState<Item>()\n\n const items = useItems()\n\n useEffect(() => {\n setProfie(\n items.find(\n (i) =>\n i.user_created?.id === user?.id &&\n i.layer?.itemType.name === 'user' &&\n i.user_created?.id != null,\n ),\n )\n }, [items, user])\n\n return (\n <>\n {questsOpen ? (\n <div className='tw-card tw-w-48 tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-[2000]'>\n <div className='tw-card-body tw-p-4 tw-pt-0'>\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1'\n onClick={() => setQuestsOpen(false)}\n >\n ✕\n </label>\n </div>\n <h2 className='tw-card-title tw-m-auto '>\n Level 1\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={1.5}\n stroke='#aaa'\n className='tw-w-5 tw-h-5 tw-cursor-pointer'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z'\n />\n </svg>\n </h2>\n <ul className='tw-flex-row'>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isAuthenticated || false}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Sign Up</span>\n </label>\n </li>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={!!profile?.text}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Fill Profile</span>\n </label>\n </li>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={!!profile?.image}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Upload Avatar</span>\n </label>\n </li>\n </ul>\n {/** <button className='tw-btn tw-btn-xs tw-btn-neutral tw-w-fit tw-self-center tw-mt-1'>Next &gt;</button> */}{' '}\n </div>\n </div>\n ) : (\n ''\n )}\n </>\n )\n}\n"],"names":["_jsx","Router","_jsxs","_Fragment","LeafletPopup","ChevronRightIcon","componentMap"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Components/Gaming/hooks/useQuests.tsx","../src/Components/Map/hooks/useClusterRef.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/hooks/useLeafletRefs.tsx","../src/Components/Auth/useAuth.tsx","../src/Components/Map/hooks/usePermissions.tsx","../src/Components/Map/hooks/useSelectPosition.tsx","../src/Utils/GetValue.ts","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/AppShell/hooks/useAppState.tsx","../src/Components/AppShell/ContextWrapper.tsx","../src/Utils/ContainsUUID.ts","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/Subcomponents/Controls/Control.tsx","../src/Components/Map/Subcomponents/Controls/FilterControl.tsx","../src/Components/Templates/MapOverlayPage.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.tsx","../src/Components/Auth/RequestPasswordPage.tsx","../src/Components/Auth/SetNewPasswordPage.tsx","../src/Components/Map/Subcomponents/Controls/GratitudeControl.tsx","../src/Components/Map/Subcomponents/Controls/LayerControl.tsx","../src/Components/Map/hooks/useTimeout.tsx","../src/Components/Map/hooks/useDebounce.tsx","../src/Utils/FormatTags.ts","../src/Utils/MarkerIconFactory.ts","../node_modules/leaflet.locatecontrol/src/L.Control.Locate.js","../src/Components/Map/Subcomponents/Controls/LocateControl.tsx","../src/Components/Map/Subcomponents/Controls/SidebarControl.tsx","../src/Components/Map/Subcomponents/Controls/SearchControl.tsx","../src/Components/Map/Subcomponents/Controls/TagsControl.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/Subcomponents/SelectPosition.tsx","../src/Components/Map/UtopiaMapInner.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/RandomColor.ts","../src/Components/Input/TextAreaInput.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Map/Subcomponents/ItemFormPopup.tsx","../src/Utils/TimeAgo.ts","../src/Components/Templates/DialogModal.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/Components/Map/Layer.tsx","../src/Components/Map/Tags.tsx","../src/Components/Map/Permissions.tsx","../src/Components/Map/ItemForm.tsx","../src/Components/Map/ItemView.tsx","../src/Components/Input/SelectBox.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/SetAppState.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/AppShell/Sitemap.tsx","../src/Components/Typography/Subtitle.tsx","../src/Components/Templates/TitleCard.tsx","../src/Components/Templates/CardPage.tsx","../src/Utils/Moon.ts","../src/Components/Templates/CircleLayout.tsx","../src/Components/Templates/MoonCalendar.tsx","../src/Components/Templates/SelectUser.tsx","../src/Components/Profile/Subcomponents/PlusButton.tsx","../src/Components/Templates/DateUserInfo.tsx","../src/Components/Templates/ItemCard.tsx","../src/Components/Templates/OverlayItemsIndexPage.tsx","../src/Components/Templates/EmojiPicker.tsx","../src/Components/Templates/AttestationForm.tsx","../src/Components/Templates/TagView.tsx","../src/Components/Templates/MarketView.tsx","../src/Components/Profile/UserSettings.tsx","../src/Components/Profile/itemFunctions.ts","../src/Components/Profile/Subcomponents/ContactInfoView.tsx","../src/Components/Profile/Subcomponents/GalleryView.tsx","../src/Components/Profile/Subcomponents/SocialShareButton.tsx","../src/Components/Profile/Subcomponents/SocialShareBar.tsx","../src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx","../src/Components/Profile/Subcomponents/ProfileStartEndView.tsx","../src/Components/Profile/Subcomponents/ProfileTextView.tsx","../src/Components/Profile/Templates/FlexView.tsx","../src/Components/Profile/Templates/OnepagerView.tsx","../src/Components/Profile/Templates/SimpleView.tsx","../src/Components/Profile/Subcomponents/ActionsButton.tsx","../src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx","../src/Components/Profile/Templates/TabsView.tsx","../src/Components/Profile/ProfileView.tsx","../src/Components/Profile/Subcomponents/AvatarWidget.tsx","../src/Components/Profile/hooks/useClickOutside.tsx","../src/Components/Profile/Subcomponents/ColorPicker.tsx","../src/Components/Profile/Subcomponents/FormHeader.tsx","../src/Components/Profile/Subcomponents/ContactInfoForm.tsx","../src/Components/Input/ComboBoxInput.tsx","../src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx","../src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx","../src/Components/Profile/Subcomponents/MarkdownHint.tsx","../src/Components/Profile/Subcomponents/ProfileTextForm.tsx","../src/Components/Profile/Templates/FlexForm.tsx","../src/Components/Profile/Templates/OnepagerForm.tsx","../src/Components/Profile/Templates/SimpleForm.tsx","../src/Components/Input/Autocomplete.tsx","../src/Components/Profile/Subcomponents/TagsWidget.tsx","../src/Components/Profile/Templates/TabsForm.tsx","../src/Components/Profile/ProfileForm.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.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","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useState, createContext, useContext } from 'react'\n\ntype UseQuestManagerResult = ReturnType<typeof useQuestsManager>\n\nconst QuestContext = createContext<UseQuestManagerResult>({\n open: false,\n setQuestsOpen: () => {},\n})\n\nfunction useQuestsManager(initialOpen: boolean): {\n open: boolean\n setQuestsOpen: (open: boolean) => void\n} {\n const [open, setOpen] = useState<boolean>(initialOpen)\n\n const setQuestsOpen = useCallback((questOpen: boolean) => {\n setOpen(questOpen)\n }, [])\n\n return { open, setQuestsOpen }\n}\n\nexport const QuestsProvider: React.FunctionComponent<{\n initialOpen: boolean\n children?: React.ReactNode\n}> = ({ initialOpen, children }) => (\n <QuestContext.Provider value={useQuestsManager(initialOpen)}>{children}</QuestContext.Provider>\n)\n\nexport const useQuestsOpen = (): boolean => {\n const { open } = useContext(QuestContext)\n return open\n}\n\nexport const useSetQuestOpen = (): UseQuestManagerResult['setQuestsOpen'] => {\n const { setQuestsOpen } = useContext(QuestContext)\n return setQuestsOpen\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext, useContext, useState } from 'react'\n\ntype UseClusterRefManagerResult = ReturnType<typeof useClusterRefManager>\n\nconst ClusterRefContext = createContext<UseClusterRefManagerResult>({\n clusterRef: {} as React.MutableRefObject<undefined>,\n setClusterRef: () => {},\n})\n\nfunction useClusterRefManager(): {\n clusterRef: any\n setClusterRef: React.Dispatch<React.SetStateAction<React.MutableRefObject<undefined>>>\n} {\n const [clusterRef, setClusterRef] = useState<React.MutableRefObject<undefined>>(\n {} as React.MutableRefObject<undefined>,\n )\n\n return { clusterRef, setClusterRef }\n}\n\nexport const ClusterRefProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <ClusterRefContext.Provider value={useClusterRefManager()}>{children}</ClusterRefContext.Provider>\n)\n\nexport const useClusterRef = (): any => {\n const { clusterRef } = useContext(ClusterRefContext)\n return clusterRef\n}\n\nexport const useSetClusterRef = (): UseClusterRefManagerResult['setClusterRef'] => {\n const { setClusterRef } = useContext(ClusterRefContext)\n return setClusterRef\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useReducer, createContext, useContext } from 'react'\n\nimport type { LayerProps } from '#types/LayerProps'\n\ninterface ActionType {\n type: 'ADD LAYER'\n layer: LayerProps\n}\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 // eslint-disable-next-line no-case-declarations\n const exist = state.find((layer) => layer.name === action.layer.name)\n if (!exist) {\n return [...state, action.layer]\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[]\n children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>{children}</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 { useState, useEffect } from 'react'\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window\n return {\n width,\n height,\n }\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions())\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions())\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowDimensions\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable no-case-declarations */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useLayers } from './useLayers'\nimport useWindowDimensions from './useWindowDimension'\n\nimport type { LayerProps } from '#types/LayerProps'\nimport type { Tag } from '#types/Tag'\n\ntype ActionType =\n | { type: 'ADD_TAG'; tag: Tag }\n | { type: 'REMOVE_TAG'; name: string }\n | { type: 'RESET_TAGS' }\n | { type: 'TOGGLE_LAYER'; layer: LayerProps }\n | { type: 'ADD_LAYER'; layer: LayerProps }\n | { type: 'RESET_LAYERS' }\n | { type: 'TOGGLE_GROUP_TYPE'; groupType: string }\n | { type: 'ADD_GROUP_TYPE'; groupType: string }\n | { type: 'RESET_GROUP_TYPE' }\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: '',\n visibleLayers: [],\n visibleGroupTypes: [],\n addFilterTag: () => {},\n removeFilterTag: () => {},\n resetFilterTags: () => {},\n setSearchPhrase: () => {},\n addVisibleLayer: () => {},\n toggleVisibleLayer: () => {},\n resetVisibleLayers: () => {},\n isLayerVisible: () => true,\n addVisibleGroupType: () => {},\n toggleVisibleGroupType: () => {},\n isGroupTypeVisible: () => true,\n})\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[]\n searchPhrase: string\n visibleLayers: LayerProps[]\n visibleGroupTypes: string[]\n\n addFilterTag: (tag: Tag) => void\n removeFilterTag: (name: string) => void\n resetFilterTags: () => void\n setSearchPhrase: (phrase: string) => void\n addVisibleLayer: (layer: LayerProps) => void\n toggleVisibleLayer: (layer: LayerProps) => void\n resetVisibleLayers: () => void\n isLayerVisible: (layer: LayerProps) => boolean\n addVisibleGroupType: (groupType: string) => void\n toggleVisibleGroupType: (groupType: string) => void\n isGroupTypeVisible: (groupType: string) => boolean\n} {\n const [filterTags, dispatchTags] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_TAG':\n const exist = state.find((tag) => tag.id === action.tag.id)\n if (!exist) {\n return [...state, action.tag]\n } else return state\n case 'REMOVE_TAG':\n return state.filter(({ name }) => name !== action.name)\n case 'RESET_TAGS':\n return initialTags\n default:\n throw new Error()\n }\n }, initialTags)\n\n const initialLayers = useLayers()\n const navigate = useNavigate()\n const windowDimensions = useWindowDimensions()\n\n const [visibleLayers, dispatchLayers] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_LAYER':\n const exist1 = state.find((layer) => layer.name === action.layer.name)\n if (!exist1) {\n return [...state, action.layer]\n } else return state\n case 'TOGGLE_LAYER':\n const exist2 = state.some((layer) => layer.name === action.layer.name)\n if (exist2) return state.filter(({ name }) => name !== action.layer.name)\n else return [...state, action.layer]\n case 'RESET_LAYERS':\n return initialLayers\n default:\n throw new Error()\n }\n }, initialLayers)\n\n const [visibleGroupTypes, dispatchGroupTypes] = useReducer(\n (state: string[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_GROUP_TYPE':\n const exist1 = state.find((groupType) => groupType === action.groupType)\n if (!exist1) {\n return [...state, action.groupType]\n } else return state\n case 'TOGGLE_GROUP_TYPE':\n const exist2 = state.some((groupType) => groupType === action.groupType)\n if (exist2) return state.filter((groupType) => groupType !== action.groupType)\n else return [...state, action.groupType]\n case 'RESET_GROUP_TYPE':\n return []\n default:\n throw new Error()\n }\n },\n [],\n )\n\n const [searchPhrase, searchPhraseSet] = useState<string>('')\n\n const addFilterTag = useCallback((tag: Tag) => {\n const params = new URLSearchParams(location.search)\n const urlTags = params.get('tags')\n const decodedTags = urlTags ? decodeURIComponent(urlTags) : ''\n\n if (!decodedTags.includes(tag.name)) {\n params.set('tags', `${urlTags || ''}${urlTags ? ';' : ''}${tag.name}`)\n }\n if (windowDimensions.width < 786 && location.pathname.split('/').length > 2)\n navigate('/' + `${params ? `?${params}` : ''}`)\n else navigate(location.pathname + `${params ? `?${params}` : ''}`)\n\n dispatchTags({\n type: 'ADD_TAG',\n tag,\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const removeFilterTag = useCallback((name: string) => {\n const params = new URLSearchParams(window.location.search)\n const urlTags = params.get('tags')\n let newUrlTags = ''\n const tags = urlTags?.split(';')\n if (tags?.length === 0 && urlTags?.length && urlTags.length > 0) tags[0] = urlTags\n tags?.map((urlTag) => {\n if (!(urlTag.toLocaleLowerCase() === name.toLocaleLowerCase())) {\n newUrlTags = newUrlTags + `${newUrlTags === '' ? urlTag : `;${urlTag}`}`\n }\n return null\n })\n if (newUrlTags !== '') {\n params.set('tags', `${newUrlTags}`)\n navigate(location.pathname + `${params ? `?${params}` : ''}`)\n } else {\n params.delete('tags')\n navigate(location.pathname + `${params ? `?${params}` : ''}`)\n }\n\n dispatchTags({\n type: 'REMOVE_TAG',\n name,\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const resetFilterTags = useCallback(() => {\n dispatchTags({\n type: 'RESET_TAGS',\n })\n }, [])\n\n const addVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: 'ADD_LAYER',\n layer,\n })\n }\n\n const toggleVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: 'TOGGLE_LAYER',\n layer,\n })\n }\n\n const resetVisibleLayers = useCallback(() => {\n dispatchLayers({\n type: 'RESET_LAYERS',\n })\n }, [])\n\n const isLayerVisible = useCallback(\n (layer: LayerProps) => {\n return visibleLayers.some((l) => l.name === layer.name)\n },\n [visibleLayers],\n )\n\n const addVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: 'ADD_GROUP_TYPE',\n groupType,\n })\n }\n\n const toggleVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: 'TOGGLE_GROUP_TYPE',\n groupType,\n })\n }\n\n const isGroupTypeVisible = useCallback(\n (groupType: string) => {\n return visibleGroupTypes.some((gt) => gt === groupType)\n },\n [visibleGroupTypes],\n )\n\n const setSearchPhrase = useCallback((phrase: string) => {\n searchPhraseSet(phrase)\n }, [])\n\n return {\n filterTags,\n addFilterTag,\n removeFilterTag,\n resetFilterTags,\n setSearchPhrase,\n searchPhrase,\n visibleLayers,\n toggleVisibleLayer,\n resetVisibleLayers,\n isLayerVisible,\n addVisibleLayer,\n visibleGroupTypes,\n addVisibleGroupType,\n toggleVisibleGroupType,\n isGroupTypeVisible,\n }\n}\n\nexport const FilterProvider: React.FunctionComponent<{\n initialTags: Tag[]\n children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <FilterContext.Provider value={useFilterManager(initialTags)}>{children}</FilterContext.Provider>\n)\n\nexport const useFilterTags = (): Tag[] => {\n const { filterTags } = useContext(FilterContext)\n return filterTags\n}\n\nexport const useAddFilterTag = (): UseFilterManagerResult['addFilterTag'] => {\n const { addFilterTag } = useContext(FilterContext)\n return addFilterTag\n}\n\nexport const useRemoveFilterTag = (): UseFilterManagerResult['removeFilterTag'] => {\n const { removeFilterTag } = useContext(FilterContext)\n return removeFilterTag\n}\n\nexport const useResetFilterTags = (): UseFilterManagerResult['resetFilterTags'] => {\n const { resetFilterTags } = useContext(FilterContext)\n return resetFilterTags\n}\n\nexport const useSearchPhrase = (): UseFilterManagerResult['searchPhrase'] => {\n const { searchPhrase } = useContext(FilterContext)\n return searchPhrase\n}\n\nexport const useSetSearchPhrase = (): UseFilterManagerResult['setSearchPhrase'] => {\n const { setSearchPhrase } = useContext(FilterContext)\n return setSearchPhrase\n}\n\nexport const useVisibleLayer = (): UseFilterManagerResult['visibleLayers'] => {\n const { visibleLayers } = useContext(FilterContext)\n return visibleLayers\n}\n\nexport const useAddVisibleLayer = (): UseFilterManagerResult['addVisibleLayer'] => {\n const { addVisibleLayer } = useContext(FilterContext)\n return addVisibleLayer\n}\n\nexport const useToggleVisibleLayer = (): UseFilterManagerResult['toggleVisibleLayer'] => {\n const { toggleVisibleLayer } = useContext(FilterContext)\n return toggleVisibleLayer\n}\n\nexport const useResetVisibleLayers = (): UseFilterManagerResult['resetVisibleLayers'] => {\n const { resetVisibleLayers } = useContext(FilterContext)\n return resetVisibleLayers\n}\n\nexport const useIsLayerVisible = (): UseFilterManagerResult['isLayerVisible'] => {\n const { isLayerVisible } = useContext(FilterContext)\n return isLayerVisible\n}\n\nexport const useAddVisibleGroupType = (): UseFilterManagerResult['addVisibleGroupType'] => {\n const { addVisibleGroupType } = useContext(FilterContext)\n return addVisibleGroupType\n}\n\nexport const useToggleVisibleGroupType = (): UseFilterManagerResult['toggleVisibleGroupType'] => {\n const { toggleVisibleGroupType } = useContext(FilterContext)\n return toggleVisibleGroupType\n}\n\nexport const useIsGroupTypeVisible = (): UseFilterManagerResult['isGroupTypeVisible'] => {\n const { isGroupTypeVisible } = useContext(FilterContext)\n return isGroupTypeVisible\n}\n\nexport const useVisibleGroupType = (): UseFilterManagerResult['visibleGroupTypes'] => {\n const { visibleGroupTypes } = useContext(FilterContext)\n return visibleGroupTypes\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-misused-promises */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useAddLayer } from './useLayers'\n\nimport type { Item } from '#types/Item'\nimport type { LayerProps } from '#types/LayerProps'\n\ntype ActionType =\n | { type: 'ADD'; item: Item }\n | { type: 'UPDATE'; item: Item }\n | { type: 'REMOVE'; item: Item }\n | { type: 'RESET'; layer: LayerProps }\n\ntype UseItemManagerResult = ReturnType<typeof useItemsManager>\n\nconst ItemContext = createContext<UseItemManagerResult>({\n items: [],\n addItem: () => {},\n updateItem: () => {},\n removeItem: () => {},\n resetItems: () => {},\n setItemsApi: () => {},\n setItemsData: () => {},\n allItemsLoaded: false,\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 allItemsLoaded: boolean\n} {\n const addLayer = useAddLayer()\n\n const [allItemsLoaded, setallItemsLoaded] = useState<boolean>(false)\n\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((item) => item.id === action.item.id)\n if (!exist) {\n return [...state, action.item]\n } else return state\n case 'UPDATE':\n return state.map((item) => {\n if (item.id === action.item.id) {\n return action.item\n }\n return item\n })\n case 'REMOVE':\n return state.filter((item) => item !== action.item)\n case 'RESET':\n return state.filter((item) => item.layer?.name !== action.layer.name)\n default:\n throw new Error()\n }\n }, initialItems)\n\n const setItemsApi = useCallback(async (layer: LayerProps) => {\n addLayer(layer)\n const result = await toast.promise(layer.api!.getItems(), {\n pending: `loading ${layer.name} ...`,\n success: `${layer.name} loaded`,\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n result.map((item) => {\n dispatch({ type: 'ADD', item: { ...item, layer } })\n return null\n })\n setallItemsLoaded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n addLayer(layer)\n layer.data?.map((item) => {\n dispatch({ type: 'ADD', item: { ...item, layer } })\n return null\n })\n setallItemsLoaded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const addItem = useCallback(async (item: Item) => {\n dispatch({\n type: 'ADD',\n item,\n })\n }, [])\n\n const updateItem = useCallback(async (item: Item) => {\n dispatch({\n type: 'UPDATE',\n item,\n })\n }, [])\n\n const removeItem = useCallback((item: Item) => {\n dispatch({\n type: 'REMOVE',\n item,\n })\n }, [])\n\n const resetItems = useCallback((layer: LayerProps) => {\n dispatch({\n type: 'RESET',\n layer,\n })\n }, [])\n\n return {\n items,\n updateItem,\n addItem,\n removeItem,\n resetItems,\n setItemsApi,\n setItemsData,\n allItemsLoaded,\n }\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[]\n children?: React.ReactNode\n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>{children}</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}\n\nexport const useAllItemsLoaded = (): UseItemManagerResult['allItemsLoaded'] => {\n const { allItemsLoaded } = useContext(ItemContext)\n return allItemsLoaded\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useReducer, createContext, useContext } from 'react'\n\nimport type { Item } from '#types/Item'\nimport type { Marker, Popup } from 'leaflet'\n\ninterface LeafletRef {\n item: Item\n marker: Marker\n popup: Popup\n}\n\ntype ActionType =\n | { type: 'ADD_MARKER'; item: Item; marker: Marker }\n | { type: 'ADD_POPUP'; item: Item; popup: Popup }\n\ntype UseLeafletRefsManagerResult = ReturnType<typeof useLeafletRefsManager>\n\nconst LeafletRefsContext = createContext<UseLeafletRefsManagerResult>({\n leafletRefs: {},\n addMarker: () => {},\n addPopup: () => {},\n})\n\nfunction useLeafletRefsManager(initialLeafletRefs: {}): {\n leafletRefs: Record<string, LeafletRef>\n addMarker: (item: Item, marker: Marker) => void\n addPopup: (item: Item, popup: Popup) => void\n} {\n const [leafletRefs, dispatch] = useReducer(\n (state: Record<string, LeafletRef>, action: ActionType) => {\n switch (action.type) {\n case 'ADD_MARKER':\n return {\n ...state,\n [action.item.id]: {\n ...state[action.item.id],\n marker: action.marker,\n item: action.item,\n },\n }\n case 'ADD_POPUP':\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], popup: action.popup, item: action.item },\n }\n default:\n throw new Error()\n }\n },\n initialLeafletRefs,\n )\n\n const addMarker = useCallback((item: Item, marker: Marker) => {\n dispatch({\n type: 'ADD_MARKER',\n item,\n marker,\n })\n }, [])\n\n const addPopup = useCallback((item: Item, popup: Popup) => {\n dispatch({\n type: 'ADD_POPUP',\n item,\n popup,\n })\n }, [])\n\n return { leafletRefs, addMarker, addPopup }\n}\n\nexport const LeafletRefsProvider: React.FunctionComponent<{\n initialLeafletRefs: {}\n children?: React.ReactNode\n}> = ({ initialLeafletRefs, children }) => (\n <LeafletRefsContext.Provider value={useLeafletRefsManager(initialLeafletRefs)}>\n {children}\n </LeafletRefsContext.Provider>\n)\n\nexport const useLeafletRefs = (): Record<string, LeafletRef> => {\n const { leafletRefs } = useContext(LeafletRefsContext)\n return leafletRefs\n}\n\nexport const useAddMarker = (): UseLeafletRefsManagerResult['addMarker'] => {\n const { addMarker } = useContext(LeafletRefsContext)\n return addMarker\n}\n\nexport const useAddPopup = (): UseLeafletRefsManagerResult['addPopup'] => {\n const { addPopup } = useContext(LeafletRefsContext)\n return addPopup\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext, useState, useContext, useEffect } from 'react'\n\nimport type { UserApi } from '#types/UserApi'\nimport type { UserItem } from '#types/UserItem'\n\ninterface AuthProviderProps {\n userApi: UserApi\n children?: React.ReactNode\n}\n\ninterface AuthCredentials {\n email: string\n password: string\n otp?: string | undefined\n}\n\ninterface AuthContextProps {\n isAuthenticated: boolean\n user: UserItem | null\n login: (credentials: AuthCredentials) => Promise<UserItem | undefined>\n register: (credentials: AuthCredentials, userName: string) => Promise<UserItem | undefined>\n loading: boolean\n logout: () => Promise<any>\n updateUser: (user: UserItem) => any\n token: string | null\n requestPasswordReset: (email: string, reset_url: string) => Promise<any>\n passwordReset: (token: string, new_password: string) => Promise<any>\n}\n\nconst AuthContext = createContext<AuthContextProps>({\n isAuthenticated: false,\n user: null,\n login: () => Promise.reject(Error('Unimplemented')),\n register: () => Promise.reject(Error('Unimplemented')),\n loading: false,\n logout: () => Promise.reject(Error('Unimplemented')),\n updateUser: () => Promise.reject(Error('Unimplemented')),\n token: '',\n requestPasswordReset: () => Promise.reject(Error('Unimplemented')),\n passwordReset: () => Promise.reject(Error('Unimplemented')),\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 // eslint-disable-next-line react-hooks/exhaustive-deps\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)\n setLoading(false)\n return me\n } else return undefined\n // eslint-disable-next-line no-catch-all/no-catch-all\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 throw error\n }\n }\n\n const register = async (\n credentials: AuthCredentials,\n userName,\n ): Promise<UserItem | undefined> => {\n setLoading(true)\n try {\n /* const res = */ await userApi.register(credentials.email, credentials.password, userName)\n return await login(credentials)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const logout = async () => {\n try {\n await userApi.logout()\n setUser(null)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const updateUser = async (user: UserItem) => {\n setLoading(true)\n const { id, ...userRest } = user\n\n try {\n const res = await userApi.updateUser(userRest)\n setUser(res as any)\n loadUser()\n setLoading(false)\n return res as any\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const requestPasswordReset = async (email: string, resetUrl?: string): Promise<any> => {\n setLoading(true)\n try {\n await userApi.requestPasswordReset(email, resetUrl)\n return setLoading(false)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const passwordReset = async (token: string, newPassword: string): Promise<any> => {\n setLoading(true)\n try {\n await userApi.passwordReset(token, newPassword)\n return setLoading(false)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n return (\n <AuthContext.Provider\n value={{\n isAuthenticated,\n user,\n login,\n register,\n loading,\n logout,\n updateUser,\n token,\n requestPasswordReset,\n passwordReset,\n }}\n >\n {children}\n </AuthContext.Provider>\n )\n}\nexport const useAuth = () => useContext(AuthContext)\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\n\nimport { useAuth } from '#components/Auth/useAuth'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { LayerProps } from '#types/LayerProps'\nimport type { Permission } from '#types/Permission'\nimport type { PermissionAction } from '#types/PermissionAction'\n\ntype ActionType = { type: 'ADD'; permission: Permission } | { type: 'REMOVE'; id: string }\n\ntype UsePermissionManagerResult = ReturnType<typeof usePermissionsManager>\n\nconst PermissionContext = createContext<UsePermissionManagerResult>({\n permissions: [],\n setPermissionApi: () => {},\n setPermissionData: () => {},\n setAdminRole: () => {},\n hasUserPermission: () => true,\n})\n\nfunction usePermissionsManager(initialPermissions: Permission[]): {\n permissions: Permission[]\n setPermissionApi: (api: ItemsApi<any>) => void\n setPermissionData: (data: Permission[]) => void\n setAdminRole: (adminRole: string) => void\n hasUserPermission: (\n collectionName: string,\n action: PermissionAction,\n item?: Item,\n layer?: LayerProps,\n ) => boolean\n} {\n const [permissions, dispatch] = useReducer((state: Permission[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((permission) => permission.id === action.permission.id)\n if (!exist) {\n return [...state, action.permission]\n } else return state\n\n case 'REMOVE':\n return state.filter(({ id }) => id !== action.id)\n default:\n throw new Error()\n }\n }, initialPermissions)\n\n const [adminRole, setAdminRole] = useState<string | null>(null)\n const { user } = useAuth()\n\n const setPermissionApi = useCallback(async (api: ItemsApi<Permission>) => {\n const result = await api.getItems()\n result.map((permission) => {\n dispatch({ type: 'ADD', permission })\n return null\n })\n }, [])\n\n const setPermissionData = useCallback((data: Permission[]) => {\n data.map((permission) => {\n dispatch({ type: 'ADD', permission })\n return null\n })\n }, [])\n\n const hasUserPermission = useCallback(\n (collectionName: string, action: PermissionAction, item?: Item, layer?: LayerProps) => {\n const evaluateCondition = (condition: any) => {\n if (condition.user_created?._eq === '$CURRENT_USER') {\n return item?.user_created?.id === user?.id\n }\n if (condition.public_edit?._eq === true) {\n return item?.public_edit === true\n }\n return false\n }\n\n const evaluatePermissions = (permissionConditions: any) => {\n if (!permissionConditions || !permissionConditions._and) {\n return true\n }\n\n return permissionConditions._and.every((andCondition: any) =>\n andCondition._or\n ? andCondition._or.some((orCondition: any) => evaluateCondition(orCondition))\n : evaluateCondition(andCondition),\n )\n }\n if (collectionName === 'items' && action === 'create' && layer?.public_edit_items) return true\n // Bedingung für leere Berechtigungen nur, wenn NICHT item und create\n if (permissions.length === 0) return true\n else if (user && user.role.id === adminRole) return true\n else {\n return permissions.some(\n (p) =>\n p.action === action &&\n p.collection === collectionName &&\n ((p.policy?.name === user?.role.name &&\n (!item || evaluatePermissions(p.permissions))) ||\n (p.policy?.name === '$t:public_label' &&\n (layer?.public_edit_items || item?.layer?.public_edit_items) &&\n (!item || evaluatePermissions(p.permissions)))),\n )\n }\n },\n [permissions, user, adminRole],\n )\n\n return { permissions, setPermissionApi, setPermissionData, setAdminRole, hasUserPermission }\n}\n\nexport const PermissionsProvider: React.FunctionComponent<{\n initialPermissions: Permission[]\n children?: React.ReactNode\n}> = ({ initialPermissions, children }) => (\n <PermissionContext.Provider value={usePermissionsManager(initialPermissions)}>\n {children}\n </PermissionContext.Provider>\n)\n\nexport const usePermissions = (): Permission[] => {\n const { permissions } = useContext(PermissionContext)\n return permissions\n}\n\nexport const useSetPermissionApi = (): UsePermissionManagerResult['setPermissionApi'] => {\n const { setPermissionApi } = useContext(PermissionContext)\n return setPermissionApi\n}\n\nexport const useSetPermissionData = (): UsePermissionManagerResult['setPermissionData'] => {\n const { setPermissionData } = useContext(PermissionContext)\n return setPermissionData\n}\n\nexport const useHasUserPermission = (): UsePermissionManagerResult['hasUserPermission'] => {\n const { hasUserPermission } = useContext(PermissionContext)\n return hasUserPermission\n}\n\nexport const useSetAdminRole = (): UsePermissionManagerResult['setAdminRole'] => {\n const { setAdminRole } = useContext(PermissionContext)\n return setAdminRole\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/await-thenable */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useUpdateItem } from './useItems'\nimport { useHasUserPermission } from './usePermissions'\n\nimport type { Item } from '#types/Item'\nimport type { ItemFormPopupProps } from '#types/ItemFormPopupProps'\nimport type { LayerProps } from '#types/LayerProps'\nimport type { Point } from 'geojson'\nimport type { LatLng } from 'leaflet'\n\ninterface PolygonClickedProps {\n position: LatLng\n setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\ntype UseSelectPositionManagerResult = ReturnType<typeof useSelectPositionManager>\n\nconst SelectPositionContext = createContext<UseSelectPositionManagerResult>({\n selectPosition: null,\n setSelectPosition: () => {},\n setMarkerClicked: () => {},\n setMapClicked: () => {},\n})\n\nfunction useSelectPositionManager(): {\n selectPosition: Item | LayerProps | null\n setSelectPosition: React.Dispatch<React.SetStateAction<Item | LayerProps | null>>\n setMarkerClicked: React.Dispatch<React.SetStateAction<Item>>\n setMapClicked: React.Dispatch<React.SetStateAction<PolygonClickedProps | undefined>>\n} {\n const [selectPosition, setSelectPosition] = useState<LayerProps | null | Item>(null)\n const [markerClicked, setMarkerClicked] = useState<Item | null>()\n const [mapClicked, setMapClicked] = useState<PolygonClickedProps>()\n const updateItem = useUpdateItem()\n const hasUserPermission = useHasUserPermission()\n\n useEffect(() => {\n if (\n selectPosition &&\n markerClicked &&\n 'text' in selectPosition &&\n markerClicked.id !== selectPosition.id\n ) {\n itemUpdateParent({ ...selectPosition, parent: markerClicked.id })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [markerClicked])\n\n useEffect(() => {\n if (selectPosition != null) {\n if ('menuIcon' in selectPosition) {\n mapClicked &&\n mapClicked.setItemFormPopup({\n layer: selectPosition as LayerProps,\n position: mapClicked.position,\n })\n setSelectPosition(null)\n }\n if ('text' in selectPosition) {\n const position =\n mapClicked?.position.lng &&\n ({\n type: 'Point',\n coordinates: [mapClicked.position.lng, mapClicked.position.lat],\n } as Point)\n position && itemUpdatePosition({ ...selectPosition, position })\n setSelectPosition(null)\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapClicked])\n\n const itemUpdateParent = async (updatedItem: Item) => {\n if (\n markerClicked?.layer?.api?.collectionName &&\n hasUserPermission(markerClicked.layer.api.collectionName, 'update', markerClicked)\n ) {\n let success = false\n try {\n await updatedItem.layer?.api?.updateItem!({\n id: updatedItem.id,\n parent: updatedItem.parent,\n position: null,\n })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n toast.error(error.toString())\n }\n if (success) {\n await updateItem({ ...updatedItem, parent: updatedItem.parent, position: undefined })\n await linkItem(updatedItem.id)\n toast.success('Item position updated')\n setSelectPosition(null)\n setMarkerClicked(null)\n }\n } else {\n setSelectPosition(null)\n toast.error(\"you don't have permission to add items to \" + markerClicked?.name)\n }\n }\n\n const itemUpdatePosition = async (updatedItem: Item) => {\n let success = false\n try {\n await updatedItem.layer?.api?.updateItem!({\n id: updatedItem.id,\n position: updatedItem.position,\n })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n toast.error(error.toString())\n }\n if (success) {\n updateItem(updatedItem)\n toast.success('Item position updated')\n }\n }\n\n const linkItem = async (id: string) => {\n if (markerClicked) {\n const newRelations = markerClicked.relations || []\n\n if (!newRelations.some((r) => r.related_items_id === id)) {\n newRelations.push({ items_id: markerClicked.id, related_items_id: id })\n const updatedItem = { id: markerClicked.id, relations: newRelations }\n\n let success = false\n try {\n await markerClicked.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...markerClicked, relations: newRelations })\n toast.success('Item linked')\n }\n }\n }\n }\n return { selectPosition, setSelectPosition, setMarkerClicked, setMapClicked }\n}\n\nexport const SelectPositionProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <SelectPositionContext.Provider value={useSelectPositionManager()}>\n {children}\n </SelectPositionContext.Provider>\n)\n\nexport const useSelectPosition = (): Item | LayerProps | null => {\n const { selectPosition } = useContext(SelectPositionContext)\n return selectPosition\n}\n\nexport const useSetSelectPosition = (): UseSelectPositionManagerResult['setSelectPosition'] => {\n const { setSelectPosition } = useContext(SelectPositionContext)\n return setSelectPosition\n}\n\nexport const useSetMarkerClicked = (): UseSelectPositionManagerResult['setMarkerClicked'] => {\n const { setMarkerClicked } = useContext(SelectPositionContext)\n return setMarkerClicked\n}\n\nexport const useSetMapClicked = (): UseSelectPositionManagerResult['setMapClicked'] => {\n const { setMapClicked } = useContext(SelectPositionContext)\n return setMapClicked\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nexport function getValue(obj, path) {\n if (!obj || typeof path !== 'string') return undefined\n\n const pathArray = path.split('.') // Use a different variable for the split path\n for (let i = 0, len = pathArray.length; i < len; i++) {\n if (!obj) return undefined // Check if obj is falsy at each step\n // eslint-disable-next-line security/detect-object-injection\n obj = obj[pathArray[i]] // Dive one level deeper\n }\n return obj // Return the final value\n}\n","export const hashTagRegex = /(#+[a-zA-Z0-9À-ÖØ-öø-ʸ_-]{1,})/g\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\n\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { Tag } from '#types/Tag'\n\ntype ActionType = { type: 'ADD'; tag: Tag } | { type: 'REMOVE'; id: string }\n\ntype UseTagManagerResult = ReturnType<typeof useTagsManager>\n\nconst TagContext = createContext<UseTagManagerResult>({\n tags: [],\n addTag: () => {},\n setTagApi: () => {},\n setTagData: () => {},\n getItemTags: () => [],\n allTagsLoaded: false,\n})\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[]\n addTag: (tag: Tag) => void\n setTagApi: (api: ItemsApi<Tag>) => void\n setTagData: (data: Tag[]) => void\n getItemTags: (item: Item) => Tag[]\n allTagsLoaded: boolean\n} {\n const [allTagsLoaded, setallTagsLoaded] = useState<boolean>(false)\n const [tagCount, setTagCount] = useState<number>(0)\n\n const [tags, dispatch] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find(\n (tag) => tag.name.toLocaleLowerCase() === action.tag.name.toLocaleLowerCase(),\n )\n if (!exist) {\n const newState = [...state, { ...action.tag }]\n if (tagCount === newState.length) setallTagsLoaded(true)\n return newState\n } else return state\n default:\n throw new Error()\n }\n }, initialTags)\n\n const [api, setApi] = 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 setTagCount(result.length)\n if (tagCount === 0) setallTagsLoaded(true)\n if (result) {\n result.map((tag) => {\n // tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: 'ADD', tag })\n return null\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map((tag) => {\n // tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: 'ADD', tag })\n return null\n })\n }, [])\n\n const addTag = (tag: Tag) => {\n dispatch({\n type: 'ADD',\n tag,\n })\n if (!tags.some((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())) {\n api.createItem && api.createItem(tag)\n }\n }\n\n const getItemTags = useCallback(\n (item: Item) => {\n const text =\n item.layer?.itemTextField && item ? getValue(item, item.layer.itemTextField) : undefined\n const itemTagStrings = text?.match(hashTagRegex)\n const itemTags: Tag[] = []\n itemTagStrings?.map((tag) => {\n if (tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n itemTags.push(\n tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())!,\n )\n }\n return null\n })\n item.layer?.itemOffersField &&\n getValue(item, item.layer.itemOffersField)?.map((o) => {\n const offer = tags.find((t) => t.id === o.tags_id)\n offer && itemTags.push(offer)\n return null\n })\n item.layer?.itemNeedsField &&\n getValue(item, item.layer.itemNeedsField)?.map((n) => {\n const need = tags.find((t) => t.id === n.tags_id)\n need && itemTags.push(need)\n return null\n })\n\n return itemTags\n },\n [tags],\n )\n\n return { tags, addTag, setTagApi, setTagData, getItemTags, allTagsLoaded }\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[]\n children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>{children}</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 useSetTagApi = (): UseTagManagerResult['setTagApi'] => {\n const { setTagApi } = useContext(TagContext)\n return setTagApi\n}\n\nexport const useSetTagData = (): UseTagManagerResult['setTagData'] => {\n const { setTagData } = useContext(TagContext)\n return setTagData\n}\n\nexport const useGetItemTags = (): UseTagManagerResult['getItemTags'] => {\n const { getItemTags } = useContext(TagContext)\n return getItemTags\n}\n\nexport const useAllTagsLoaded = (): UseTagManagerResult['allTagsLoaded'] => {\n const { allTagsLoaded } = useContext(TagContext)\n return allTagsLoaded\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useState, createContext, useContext } from 'react'\n\nimport type { AssetsApi } from '#types/AssetsApi'\n\ninterface AppState {\n assetsApi: AssetsApi\n userType: string\n}\n\ntype UseAppManagerResult = ReturnType<typeof useAppManager>\n\nconst initialAppState: AppState = {\n assetsApi: {} as AssetsApi,\n userType: '',\n}\n\nconst AppContext = createContext<UseAppManagerResult>({\n state: initialAppState,\n setAppState: () => {},\n})\n\nfunction useAppManager(): {\n state: AppState\n setAppState: (newState: Partial<AppState>) => void\n} {\n const [state, setState] = useState<AppState>(initialAppState)\n\n const setAppState = useCallback((newState: Partial<AppState>) => {\n setState((prevState) => ({\n ...prevState,\n ...newState,\n }))\n }, [])\n\n return { state, setAppState }\n}\n\nexport const AppStateProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => <AppContext.Provider value={useAppManager()}>{children}</AppContext.Provider>\n\nexport const useAppState = (): AppState => {\n const { state } = useContext(AppContext)\n return state\n}\n\nexport const useSetAppState = (): UseAppManagerResult['setAppState'] => {\n const { setAppState } = useContext(AppContext)\n return setAppState\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport { useContext, createContext } from 'react'\nimport { BrowserRouter as Router, useLocation } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\n\nimport { QuestsProvider } from '#components/Gaming/hooks/useQuests'\nimport { ClusterRefProvider } from '#components/Map/hooks/useClusterRef'\nimport { FilterProvider } from '#components/Map/hooks/useFilter'\nimport { ItemsProvider } from '#components/Map/hooks/useItems'\nimport { LayersProvider } from '#components/Map/hooks/useLayers'\nimport { LeafletRefsProvider } from '#components/Map/hooks/useLeafletRefs'\nimport { PermissionsProvider } from '#components/Map/hooks/usePermissions'\nimport { SelectPositionProvider } from '#components/Map/hooks/useSelectPosition'\nimport { TagsProvider } from '#components/Map/hooks/useTags'\n\nimport { AppStateProvider } from './hooks/useAppState'\n\n// Helper context to determine if the ContextWrapper is already present.\nconst ContextCheckContext = createContext(false)\n\n// eslint-disable-next-line react/prop-types\nexport const ContextWrapper = ({ children }) => {\n const isWrapped = useContext(ContextCheckContext)\n\n // Check if we are already inside a Router\n let location\n try {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n location = useLocation()\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (e) {\n location = null\n }\n\n // Case 1: Only the Router is missing, but ContextWrapper is already provided\n if (!location && isWrapped) {\n return <Router>{children}</Router>\n }\n\n // Case 2: Neither Router nor ContextWrapper is present\n if (!location && !isWrapped) {\n return (\n <Router>\n <ContextCheckContext.Provider value={true}>\n <Wrappers>{children}</Wrappers>\n </ContextCheckContext.Provider>\n </Router>\n )\n }\n\n // Case 3: Only ContextWrapper is missing\n if (location && !isWrapped) {\n return (\n <ContextCheckContext.Provider value={true}>\n <Wrappers>{children}</Wrappers>\n </ContextCheckContext.Provider>\n )\n }\n\n // Case 4: Both Router and ContextWrapper are already present\n return children\n}\n\n// eslint-disable-next-line react/prop-types\nexport const Wrappers = ({ children }) => {\n const queryClient = new QueryClient()\n\n return (\n <PermissionsProvider initialPermissions={[]}>\n <TagsProvider initialTags={[]}>\n <LayersProvider initialLayers={[]}>\n <FilterProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <SelectPositionProvider>\n <LeafletRefsProvider initialLeafletRefs={{}}>\n <QueryClientProvider client={queryClient}>\n <AppStateProvider>\n <ClusterRefProvider>\n <QuestsProvider initialOpen={true}>\n <ToastContainer\n 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 />\n {children}\n </QuestsProvider>\n </ClusterRefProvider>\n </AppStateProvider>\n </QueryClientProvider>\n </LeafletRefsProvider>\n </SelectPositionProvider>\n </ItemsProvider>\n </FilterProvider>\n </LayersProvider>\n </TagsProvider>\n </PermissionsProvider>\n )\n}\n","export function containsUUID(str: string): boolean {\n const uuidRegex = /[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i\n return uuidRegex.test(str)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\n\nexport default function AddButton({\n triggerAction,\n}: {\n triggerAction: React.Dispatch<React.SetStateAction<any>>\n}) {\n const layers = useLayers()\n const hasUserPermission = useHasUserPermission()\n\n const canAddItems = () => {\n let canAdd = false\n layers.map((layer) => {\n if (\n layer.api?.createItem &&\n hasUserPermission(layer.api.collectionName!, 'create', undefined, layer) &&\n layer.listed\n )\n canAdd = true\n return null\n })\n return canAdd\n }\n\n return (\n <>\n {canAddItems() ? (\n <div className='tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-4 tw-bottom-4'>\n <label tabIndex={0} className='tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='3'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </label>\n <ul tabIndex={0} className='tw-dropdown-content tw-pr-1 tw-list-none'>\n {layers.map(\n (layer) =>\n layer.api?.createItem &&\n hasUserPermission(layer.api.collectionName!, 'create', undefined, layer) &&\n layer.listed && (\n <li key={layer.name}>\n <a>\n <div className='tw-tooltip tw-tooltip-left' data-tip={layer.menuText}>\n <button\n tabIndex={0}\n className='tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none'\n style={{ backgroundColor: layer.menuColor || '#777' }}\n onClick={() => {\n triggerAction(layer)\n }}\n >\n <img\n src={layer.menuIcon}\n className='tw-h-6 tw-w-6 tw-text-white'\n style={{ filter: 'invert(100%) brightness(200%)' }}\n />\n </button>\n </div>\n </a>\n </li>\n ),\n )}\n </ul>\n </div>\n ) : (\n ''\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { DomEvent } from 'leaflet'\nimport { createRef, useEffect } from 'react'\n\nexport const Control = ({\n position,\n children,\n zIndex,\n absolute,\n}: {\n position: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'\n children: React.ReactNode\n zIndex: string\n absolute: boolean\n}) => {\n const controlContainerRef = createRef<HTMLDivElement>()\n\n useEffect(() => {\n if (controlContainerRef.current !== null) {\n DomEvent.disableClickPropagation(controlContainerRef.current)\n DomEvent.disableScrollPropagation(controlContainerRef.current)\n }\n }, [controlContainerRef])\n\n return (\n <div\n ref={controlContainerRef}\n style={{ zIndex }}\n className={`${absolute && 'tw-absolute'} tw-z-[999] tw-flex-col ${position === 'topLeft' && 'tw-top-4 tw-left-4'} ${position === 'bottomLeft' && 'tw-bottom-4 tw-left-4'} ${position === 'topRight' && 'tw-bottom-4 tw-right-4'} ${position === 'bottomRight' && 'tw-bottom-4 tw-right-4'}`}\n >\n {children}\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\n\nimport {\n useAddVisibleGroupType,\n useIsGroupTypeVisible,\n useToggleVisibleGroupType,\n useVisibleGroupType,\n} from '#components/Map/hooks/useFilter'\n\nexport function FilterControl() {\n const [open, setOpen] = useState(false)\n\n const groupTypes = [\n { text: 'Regional Gruppe', value: 'wuerdekompass' },\n { text: 'Themen Gruppe', value: 'themenkompass' },\n { text: 'liebevoll.jetzt', value: 'liebevoll.jetzt' },\n ]\n\n useEffect(() => {\n groupTypes.map((layer) => addVisibleGroupType(layer.value))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const isGroupTypeVisible = useIsGroupTypeVisible()\n const toggleVisibleGroupType = useToggleVisibleGroupType()\n const addVisibleGroupType = useAddVisibleGroupType()\n const visibleGroupTypes = useVisibleGroupType()\n\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {open ? (\n <div className='tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-w-fit tw-transition-all tw-duration-300'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setOpen(false)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <ul className='tw-flex-row'>\n {groupTypes.map((groupType) => (\n <li key={groupType.value}>\n <label\n htmlFor={groupType.value}\n className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'\n >\n <input\n id={groupType.value}\n onChange={() => toggleVisibleGroupType(groupType.value)}\n type='checkbox'\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isGroupTypeVisible(groupType.value)}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>\n {groupType.text}\n </span>\n </label>\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className='tw-indicator'>\n {visibleGroupTypes.length < groupTypes.length && (\n <span className='tw-indicator-item tw-badge tw-badge-success tw-h-4 tw-p-2 tw-translate-x-1/3 -tw-translate-y-1/3 tw-border-0'></span>\n )}\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n setOpen(true)\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={2.3}\n stroke='currentColor'\n className='size-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z'\n />\n </svg>\n </div>\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { DomEvent } from 'leaflet'\nimport { createRef, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nexport function MapOverlayPage({\n children,\n className,\n backdrop,\n card = true,\n}: {\n children: React.ReactNode\n className?: string\n backdrop?: boolean\n card?: boolean\n}) {\n const closeScreen = () => {\n navigate(`/${window.location.search ? window.location.search : ''}`)\n }\n\n const navigate = useNavigate()\n\n const overlayRef = createRef<HTMLDivElement>()\n const backdropRef = createRef<HTMLDivElement>()\n\n useEffect(() => {\n if (overlayRef.current !== null) {\n DomEvent.disableClickPropagation(overlayRef.current)\n DomEvent.disableScrollPropagation(overlayRef.current)\n }\n if (backdropRef.current !== null && backdrop) {\n DomEvent.disableClickPropagation(backdropRef.current)\n DomEvent.disableScrollPropagation(backdropRef.current)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [overlayRef, backdropRef])\n\n return (\n <div className={`tw-absolute tw-h-full tw-w-full tw-m-auto ${backdrop && 'tw-z-[2000]'}`}>\n <div\n ref={backdropRef}\n className={`${backdrop && 'tw-backdrop-brightness-75'} tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto`}\n >\n <div\n ref={overlayRef}\n className={`${card && 'tw-card tw-card-body'} tw-shadow-xl tw-bg-base-100 tw-p-6 ${className && className} ${!backdrop && 'tw-z-[2000]'} tw-absolute tw-top-0 tw-bottom-0 tw-right-0 tw-left-0 tw-m-auto`}\n >\n {children}\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2'\n onClick={() => closeScreen()}\n >\n ✕\n </button>\n </div>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-floating-promises */\nimport { useEffect, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function LoginPage() {\n const [email, setEmail] = useState<string>('')\n const [password, setPassword] = useState<string>('')\n\n const { login, loading } = useAuth()\n\n const navigate = useNavigate()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onLogin = async () => {\n await toast.promise(login({ email, password }), {\n success: {\n render({ data }) {\n navigate('/')\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: '✌️',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n autoClose: 10000,\n },\n pending: 'logging in ...',\n })\n }\n\n useEffect(() => {\n const keyDownHandler = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n onLogin()\n }\n }\n document.addEventListener('keydown', keyDownHandler)\n return () => {\n document.removeEventListener('keydown', keyDownHandler)\n }\n }, [onLogin])\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Login</h2>\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-text-right tw-text-primary'>\n <Link to='/reset-password'>\n <span className='tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200'>\n Forgot Password?\n </span>\n </Link>\n </div>\n <div className='tw-card-actions'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onLogin()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Login'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-misused-promises */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function SignupPage() {\n const [email, setEmail] = useState<string>('')\n const [userName, setUserName] = useState<string>('')\n\n const [password, setPassword] = useState<string>('')\n\n const { register, loading } = useAuth()\n\n const navigate = useNavigate()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onRegister = async () => {\n await toast.promise(register({ email, password }, userName), {\n success: {\n render({ data }) {\n navigate('/')\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: '✌️',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n autoClose: 10000,\n },\n pending: 'creating new user ...',\n })\n }\n\n useEffect(() => {\n const keyDownHandler = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n onRegister()\n }\n }\n document.addEventListener('keydown', keyDownHandler)\n return () => {\n document.removeEventListener('keydown', keyDownHandler)\n }\n }, [onRegister])\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Sign Up</h2>\n <input\n type='text'\n placeholder='Name'\n value={userName}\n onChange={(e) => setUserName(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onRegister()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Sign Up'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\n// eslint-disable-next-line react/prop-types\nexport function RequestPasswordPage({ resetUrl }) {\n const [email, setEmail] = useState<string>('')\n\n const { requestPasswordReset, loading } = useAuth()\n\n const navigate = useNavigate()\n\n const onReset = async () => {\n await toast.promise(requestPasswordReset(email, resetUrl), {\n success: {\n render() {\n navigate('/')\n return 'Check your mailbox'\n },\n // other options\n icon: '📬',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'sending email ...',\n })\n }\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Reset Password</h2>\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onReset()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Send'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function SetNewPasswordPage() {\n const [password, setPassword] = useState<string>('')\n\n const { passwordReset, loading } = useAuth()\n\n const navigate = useNavigate()\n\n const onReset = async () => {\n const token = window.location.search.split('token=')[1]\n // eslint-disable-next-line no-console\n console.log(token)\n\n await toast.promise(passwordReset(token, password), {\n success: {\n render() {\n navigate('/')\n return 'New password set'\n },\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'setting password ...',\n })\n }\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Set new Password</h2>\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onReset()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Set'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useNavigate } from 'react-router-dom'\n\nimport { useAuth } from '#components/Auth'\n\nexport const GratitudeControl = () => {\n const navigate = useNavigate()\n const { isAuthenticated } = useAuth()\n\n if (isAuthenticated) {\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n navigate('/select-user')\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={2.5}\n stroke='currentColor'\n className='size-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z'\n />\n </svg>\n </div>\n }\n </div>\n )\n } else return <></>\n}\n","import { useState } from 'react'\n\nimport { useIsLayerVisible, useToggleVisibleLayer } from '#components/Map/hooks/useFilter'\nimport { useLayers } from '#components/Map/hooks/useLayers'\n\nexport function LayerControl() {\n const [open, setOpen] = useState(false)\n\n const layers = useLayers()\n\n const isLayerVisible = useIsLayerVisible()\n const toggleVisibleLayer = useToggleVisibleLayer()\n\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {open ? (\n <div className='tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-transition-all tw-w-fit tw-duration-300'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setOpen(false)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <ul className='tw-flex-row'>\n {layers.map(\n (layer) =>\n layer.listed && (\n <li key={layer.name}>\n <label\n htmlFor={layer.name}\n className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'\n >\n <input\n id={layer.name}\n onChange={() => toggleVisibleLayer(layer)}\n type='checkbox'\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isLayerVisible(layer)}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>\n {layer.name}\n </span>\n </label>\n </li>\n ),\n )}\n </ul>\n </div>\n ) : (\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n setOpen(true)\n }}\n >\n <svg version='1.1' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'>\n <path\n id='svg_1'\n fill='currentColor'\n d='m2.75565,11.90727l-1.03852,0.28372c-0.77718,0.38859 -0.77718,1.0138 0,1.4023l7.0156,3.5078c0.77718,0.38859 2.0275,0.38859 2.8047,0l7.0156,-3.5078c0.77718,-0.38859 0.77718,-1.0138 0,-1.4023l-0.63311,-0.48643l-4.67718,2.23624c-1.5452,0.77262 -3.31877,1.58343 -4.86407,0.81081l-5.62302,-2.84434z'\n />\n <path\n id='svg_2'\n strokeWidth='2'\n stroke='currentColor'\n fill='none'\n d='m11.247,4.30851l6.2349,3.0877c0.69083,0.34211 0.69083,0.89295 0,1.2351l-6.2349,3.0877c-0.69083,0.34211 -1.8031,0.34212 -2.494,0l-6.2349,-3.0877c-0.69083,-0.34211 -0.69083,-0.89295 0,-1.2351l6.2349,-3.0877c0.69083,-0.34211 1.8031,-0.34211 2.494,0z'\n />\n </svg>\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useCallback, useEffect, useRef } from 'react'\n\nexport const useTimeout = (callback, delay) => {\n const callbackRef = useRef(callback)\n const timeoutRef = useRef<any>()\n\n useEffect(() => {\n callbackRef.current = callback\n }, [callback])\n\n const set = useCallback(() => {\n timeoutRef.current = setTimeout(() => callbackRef.current(), delay)\n }, [delay])\n\n const clear = useCallback(() => {\n timeoutRef.current && clearTimeout(timeoutRef.current)\n }, [])\n\n useEffect(() => {\n set()\n return clear\n }, [delay, set, clear])\n\n const reset = useCallback(() => {\n clear()\n set()\n }, [clear, set])\n\n return { reset, clear }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect } from 'react'\n\nimport { useTimeout } from './useTimeout'\n\nexport const useDebounce = (callback, delay, deps) => {\n const { reset, clear } = useTimeout(callback, delay)\n\n useEffect(reset, [...deps, reset])\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(clear, [])\n}\n","export function decodeTag(string: string) {\n const formatedTag = string.replace(/_/g, '\\u00A0')\n return formatedTag.charAt(0).toUpperCase() + formatedTag.slice(1)\n}\n\nexport function encodeTag(string: string) {\n return string.replace(/\\s+/g, '_')\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { divIcon, Point } from 'leaflet'\n\nconst createSvg = (shape: string, markerColor: string, borderColor: string) => {\n const svgMap = {\n circle:\n '<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=\"' +\n markerColor +\n '\" /><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=\"' +\n borderColor +\n '\" opacity=\"1\" /></svg>',\n square:\n '<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=\"' +\n markerColor +\n '\" /><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=\"' +\n borderColor +\n '\" /></g></svg>',\n star:\n '<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=\"' +\n markerColor +\n '\" /><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:\n '<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=\"' +\n markerColor +\n '\" /><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 // eslint-disable-next-line security/detect-object-injection\n return svgMap[shape]\n}\n\nconst addIcon = (icon: string) => {\n switch (icon) {\n case 'point':\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 case 'calendar':\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 case 'user':\n return '<svg fill=\"#fff\" class=\"user-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.5em\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"/></svg>'\n case 'fire':\n return '<svg fill=\"#fff\" class=\"fire-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 19.534 26.387\"><path d=\"M7.15 26.05C2.894 24.876.006 21.028.006 16.53c0-4.036 2.718-8.378 4.38-6.999.289.24.383.993.383 3.074 0 3.3.46 4.508 1.997 5.237 2.512 1.192 5.206-1.18 4.506-3.969-.097-.386-.99-1.562-1.986-2.614C7.04 8.887 6.583 8.026 6.583 6.176c0-2.333 2.02-6.182 3.244-6.182.59 0 1.292.98 1.292 1.805 0 1.227.951 2.596 3.727 5.362 3.655 3.642 4.493 5.216 4.671 8.776.143 2.847-.365 4.593-1.93 6.644-2.332 3.054-6.69 4.503-10.437 3.47z\"/></svg>'\n case 'tree':\n return '<svg fill=\"#fff\" class=\"tree-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"2em\" xml:space=\"preserve\" viewBox=\"0 0 24 24\"><path d=\"M11 21v-4.3c-.5.2-1 .3-1.5.3C7 17 5 15 5 12.5c0-1.3.5-2.4 1.4-3.2-.3-.6-.4-1.2-.4-1.8C6 5 8 3 10.5 3c1.6 0 2.9.8 3.8 2h.2c3 0 5.5 2.5 5.5 5.5S17.5 16 14.5 16c-.5 0-1-.1-1.5-.2V21h-2z\"/><path fill=\"none\" d=\"M0 0h24v24H0z\"/></svg>'\n case 'music':\n return '<svg fill=\"#fff\" class=\"music-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.4em\" viewBox=\"0 0 512 512\"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d=\"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"/></svg>'\n case 'drum':\n return '<svg class=\"drum-icon\" stroke=\"#fff\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 32 32\" height=\"1.8em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 27.1875 5.09375 L 16.125 10.34375 C 15.804688 10.128906 15.414063 10 15 10 C 13.894531 10 13 10.894531 13 12 C 13 13.105469 13.894531 14 15 14 C 16.050781 14 16.921875 13.1875 17 12.15625 L 23.0625 9.28125 C 24.878906 10.046875 26 11.046875 26 12 C 26 13.886719 21.722656 16 16 16 C 10.277344 16 6 13.886719 6 12 C 6 10.113281 10.277344 8 16 8 C 16.171875 8 16.328125 7.996094 16.5 8 L 20.03125 6.34375 C 18.777344 6.132813 17.433594 6 16 6 C 9.160156 6 4 8.578125 4 12 L 4 22 C 4 22.988281 4.445313 23.894531 5.125 24.625 C 5.804688 25.355469 6.730469 25.945313 7.8125 26.4375 C 9.976563 27.421875 12.839844 28 16 28 C 19.160156 28 22.023438 27.421875 24.1875 26.4375 C 25.269531 25.945313 26.195313 25.355469 26.875 24.625 C 27.554688 23.894531 28 22.988281 28 22 L 28 12 C 28 10.523438 27.023438 9.210938 25.375 8.1875 L 28.03125 6.90625 Z M 6 15.40625 C 7.015625 16.171875 8.378906 16.800781 10 17.25 L 10 25.15625 C 9.5 25 9.042969 24.816406 8.625 24.625 C 7.71875 24.210938 7.027344 23.714844 6.59375 23.25 C 6.160156 22.785156 6 22.394531 6 22 Z M 26 15.40625 L 26 22 C 26 22.394531 25.839844 22.785156 25.40625 23.25 C 24.972656 23.714844 24.28125 24.210938 23.375 24.625 C 22.957031 24.816406 22.5 25 22 25.15625 L 22 17.25 C 23.621094 16.800781 24.984375 16.171875 26 15.40625 Z M 12 17.6875 C 13.242188 17.894531 14.582031 18 16 18 C 17.417969 18 18.757813 17.894531 20 17.6875 L 20 25.625 C 18.769531 25.855469 17.421875 26 16 26 C 14.578125 26 13.230469 25.855469 12 25.625 Z\"></path></svg>'\n case 'quest':\n return '<svg class=\"quest-icon\" viewBox=\"0 0 4.69 5.987\" fill=\"#fff\" height=\"1.3em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.395 0 0 .898v2.096C0 4.79 2.395 5.987 2.395 5.987S4.79 4.79 4.79 2.994V.898zm.026 1.262c.518 0 1.07.404 1.07.937 0 .707-.764.718-.764.98v.035c0 .08-.065.146-.146.146H2.14a.146.146 0 0 1-.146-.146v-.06c0-.377.285-.528.501-.649.186-.104.3-.174.3-.312 0-.182-.232-.303-.42-.303-.239 0-.352.11-.505.302a.147.147 0 0 1-.203.025l-.263-.2a.147.147 0 0 1-.032-.2c.248-.355.563-.555 1.05-.555zM2.36 3.54a.423.423 0 1 1 0 .846.423.423 0 0 1 0-.846z\"/></svg>'\n case 'compass':\n return '<svg class=\"compass-icon\" fill=\"#fff\" height=\"1.8em\" viewBox=\"0 0 67.731 67.731\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m135.772 101.812-7.157-.73c-1.669-10.98-11.344-20.654-22.323-22.323l-.73-7.144c-.536-2.136-3.571-2.136-4.107 0l-.73 7.157c-10.98 1.669-20.654 11.344-22.323 22.323l-7.144.73c-2.136.536-2.136 3.571 0 4.107l7.157.73c1.669 10.98 11.344 20.654 22.323 22.323l.73 7.157c.536 2.136 3.571 2.136 4.107 0l.73-7.157c10.98-1.669 20.655-11.344 22.323-22.323l7.157-.73c2.136-.536 2.136-3.571 0-4.107zm-11.687-1.323-15.126-2.074-2.064-15.126c7.718 1.857 15.332 9.471 17.19 17.19zm-23.963-17.198-2.064 15.124-15.126 2.064c1.857-7.719 9.471-15.333 17.19-17.19zm-17.198 23.964 15.134 2.06 2.064 15.127c-7.719-1.858-15.333-9.472-17.19-17.19zm23.963 17.198 2.064-15.127 15.126-2.063c-1.86 7.712-9.47 15.32-17.182 17.179z\" style=\"stroke-width:.264583\" transform=\"translate(-69.656 -70.013)\"/></svg>'\n case 'liebevoll.jetzt':\n return '<svg class=\"liebevoll-jetzt-icon\" fill=\"#fff\" height=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 42 42\"><path fill=\"#e52220\" d=\"M32.554 33.551c0-.2.2-.5 0-.7-.2-.2-.1 0-.3-.1-.5-.2-1.2-.1-1.7.2-.7.3-1.7 1.5-1.3 2.4.2.3.5.6.8.8.5.3.8-.1 1.2-.4.4-.3.7-.5.9-1 .1-.1.8-1.2.4-1.2z\"/> <path fill=\"#fff\" d=\"M14.426 41.57c-1.512-.808-2.234-2.322-2.403-5.038-.104-1.671.136-3.65.844-6.962.497-2.327.545-2.56.81-3.95.236-1.234 3.381-10.767 4.237-12.842.688-1.667 3.022-6.084 3.379-6.394.158-.137.708-.948 1.22-1.802C24.243 1.704 25.935 0 27.065 0c1.134 0 2.303 1.066 2.763 2.521.274.864.133 2.528-.34 4.032-.551 1.754-2.928 6.42-3.994 7.84a37.025 37.025 0 0 0-1.753 2.622c-1.173 1.957-2.233 3.525-4.002 5.92-.831 1.126-1.628 2.306-1.77 2.621-.422.932-1.792 6.558-1.836 7.536-.023.496-.095 1.73-.16 2.742-.175 2.714.265 3.687 1.54 3.407.737-.162 1.569-.967 3.197-3.092 2.302-3.005 5.204-7.528 6.524-10.17.622-1.243 1.228-2.06 1.528-2.06.394 0 .46 1.003.131 1.975-.413 1.219-4.57 8.126-6.186 10.277-1.727 2.3-4.191 4.785-5.233 5.277-1.194.564-2.15.602-3.048.123zm6.76-23.631c2.714-4.414 5.248-9.115 5.42-10.052.027-.148.172-.553.322-.9.397-.915.872-2.532.997-3.386.077-.532.04-.833-.132-1.065-.232-.315-.259-.305-.918.33-1.692 1.632-4.116 7.08-6.488 14.581-.484 1.532-.88 2.855-.881 2.94-.002.255.192-.026 1.68-2.449z\"/></svg>'\n case 'group':\n return '<svg class=\"group-icon\" stroke=\"#fff\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 20 20\" aria-hidden=\"true\" height=\"1.6em\" width=\"1.6em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM6 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM1.49 15.326a.78.78 0 0 1-.358-.442 3 3 0 0 1 4.308-3.516 6.484 6.484 0 0 0-1.905 3.959c-.023.222-.014.442.025.654a4.97 4.97 0 0 1-2.07-.655ZM16.44 15.98a4.97 4.97 0 0 0 2.07-.654.78.78 0 0 0 .357-.442 3 3 0 0 0-4.308-3.517 6.484 6.484 0 0 1 1.907 3.96 2.32 2.32 0 0 1-.026.654ZM18 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM5.304 16.19a.844.844 0 0 1-.277-.71 5 5 0 0 1 9.947 0 .843.843 0 0 1-.277.71A6.975 6.975 0 0 1 10 18a6.974 6.974 0 0 1-4.696-1.81Z\"></path></svg>'\n case 'puzzle':\n return '<svg class=\"group-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#fff\" width=\"1.6em\" height=\"1.6em\"><path d=\"M11.25 5.337c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.036 1.007-1.875 2.25-1.875S15 2.34 15 3.375c0 .369-.128.713-.349 1.003-.215.283-.401.604-.401.959 0 .332.278.598.61.578 1.91-.114 3.79-.342 5.632-.676a.75.75 0 0 1 .878.645 49.17 49.17 0 0 1 .376 5.452.657.657 0 0 1-.66.664c-.354 0-.675-.186-.958-.401a1.647 1.647 0 0 0-1.003-.349c-1.035 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401.31 0 .557.262.534.571a48.774 48.774 0 0 1-.595 4.845.75.75 0 0 1-.61.61c-1.82.317-3.673.533-5.555.642a.58.58 0 0 1-.611-.581c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.035-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959a.641.641 0 0 1-.658.643 49.118 49.118 0 0 1-4.708-.36.75.75 0 0 1-.645-.878c.293-1.614.504-3.257.629-4.924A.53.53 0 0 0 5.337 15c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.036 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.369 0 .713.128 1.003.349.283.215.604.401.959.401a.656.656 0 0 0 .659-.663 47.703 47.703 0 0 0-.31-4.82.75.75 0 0 1 .83-.832c1.343.155 2.703.254 4.077.294a.64.64 0 0 0 .657-.642Z\" /></svg>'\n case 'staff-snake':\n return '<svg class=\"staff-snake-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 384 512\" height=\"1.4em\" width=\"1.4em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M222.6 43.2l-.1 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"></path></svg>'\n case 'flower':\n return '<svg class=\"flower-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M210.35,129.36c-.81-.47-1.7-.92-2.62-1.36.92-.44,1.81-.89,2.62-1.36a40,40,0,1,0-40-69.28c-.81.47-1.65,1-2.48,1.59.08-1,.13-2,.13-3a40,40,0,0,0-80,0c0,.94,0,1.94.13,3-.83-.57-1.67-1.12-2.48-1.59a40,40,0,1,0-40,69.28c.81.47,1.7.92,2.62,1.36-.92.44-1.81.89-2.62,1.36a40,40,0,1,0,40,69.28c.81-.47,1.65-1,2.48-1.59-.08,1-.13,2-.13,2.95a40,40,0,0,0,80,0c0-.94-.05-1.94-.13-2.95.83.57,1.67,1.12,2.48,1.59A39.79,39.79,0,0,0,190.29,204a40.43,40.43,0,0,0,10.42-1.38,40,40,0,0,0,9.64-73.28ZM104,128a24,24,0,1,1,24,24A24,24,0,0,1,104,128Zm74.35-56.79a24,24,0,1,1,24,41.57c-6.27,3.63-18.61,6.13-35.16,7.19A40,40,0,0,0,154.53,98.1C163.73,84.28,172.08,74.84,178.35,71.21ZM128,32a24,24,0,0,1,24,24c0,7.24-4,19.19-11.36,34.06a39.81,39.81,0,0,0-25.28,0C108,75.19,104,63.24,104,56A24,24,0,0,1,128,32ZM44.86,80a24,24,0,0,1,32.79-8.79c6.27,3.63,14.62,13.07,23.82,26.89A40,40,0,0,0,88.81,120c-16.55-1.06-28.89-3.56-35.16-7.18A24,24,0,0,1,44.86,80ZM77.65,184.79a24,24,0,1,1-24-41.57c6.27-3.63,18.61-6.13,35.16-7.19a40,40,0,0,0,12.66,21.87C92.27,171.72,83.92,181.16,77.65,184.79ZM128,224a24,24,0,0,1-24-24c0-7.24,4-19.19,11.36-34.06a39.81,39.81,0,0,0,25.28,0C148,180.81,152,192.76,152,200A24,24,0,0,1,128,224Zm83.14-48a24,24,0,0,1-32.79,8.79c-6.27-3.63-14.62-13.07-23.82-26.89A40,40,0,0,0,167.19,136c16.55,1.06,28.89,3.56,35.16,7.18A24,24,0,0,1,211.14,176Z\"></path></svg>'\n case 'network':\n return '<svg class=\"network-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M212,200a36,36,0,1,1-69.85-12.25l-53-34.05a36,36,0,1,1,0-51.4l53-34a36.09,36.09,0,1,1,8.67,13.45l-53,34.05a36,36,0,0,1,0,24.5l53,34.05A36,36,0,0,1,212,200Z\"></path></svg>'\n case 'crosshair':\n return '<svg class=\"network-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M256 0c17.7 0 32 14.3 32 32l0 10.4c93.7 13.9 167.7 88 181.6 181.6l10.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.4 0c-13.9 93.7-88 167.7-181.6 181.6l0 10.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-10.4C130.3 455.7 56.3 381.7 42.4 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l10.4 0C56.3 130.3 130.3 56.3 224 42.4L224 32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6l0-20.6c0-17.7 14.3-32 32-32s32 14.3 32 32l0 20.6c58.3-12.5 104.1-58.4 116.6-116.6L384 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l20.6 0C392.1 165.7 346.3 119.9 288 107.4l0 20.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-20.6C165.7 119.9 119.9 165.7 107.4 224l20.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-20.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"></path></svg>'\n case 'shop':\n return '<svg class=\"shop-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 640 512\" height=\"1.25em\" width=\"1.25em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M36.8 192l566.3 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224l0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-160-64 0 0 160-192 0 0-160-64 0zm448 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256-64 0z\"></path></svg>'\n case 'plant':\n return '<svg class=\"plant-icon\" stroke=\"currentColor\" stroke-width=\"0\" fill=\"#fff\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M205.41,159.07a60.9,60.9,0,0,1-31.83,8.86,71.71,71.71,0,0,1-27.36-5.66A55.55,55.55,0,0,0,136,194.51V224a8,8,0,0,1-8.53,8,8.18,8.18,0,0,1-7.47-8.25V211.31L81.38,172.69A52.5,52.5,0,0,1,63.44,176a45.82,45.82,0,0,1-23.92-6.67C17.73,156.09,6,125.62,8.27,87.79a8,8,0,0,1,7.52-7.52c37.83-2.23,68.3,9.46,81.5,31.25A46,46,0,0,1,103.74,140a4,4,0,0,1-6.89,2.43l-19.2-20.1a8,8,0,0,0-11.31,11.31l53.88,55.25c.06-.78.13-1.56.21-2.33a68.56,68.56,0,0,1,18.64-39.46l50.59-53.46a8,8,0,0,0-11.31-11.32l-49,51.82a4,4,0,0,1-6.78-1.74c-4.74-17.48-2.65-34.88,6.4-49.82,17.86-29.48,59.42-45.26,111.18-42.22a8,8,0,0,1,7.52,7.52C250.67,99.65,234.89,141.21,205.41,159.07Z\"></path></svg>'\n case 'circle-dot':\n return '<svg class=\"circle-dot-icon\" stroke=\"#fff\" fill=\"transparent\" stroke-width=\"2.5\" viewBox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\" height=\"1.55em\" width=\"1.55em\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"1\"></circle></svg>'\n case 'cannabis':\n return '<svg class=\"network-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 512 512\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"></path></svg>'\n default:\n return ''\n }\n}\n\nconst MarkerIconFactory = (shape: string, color1: string, color2: string, icon: string) => {\n return divIcon({\n html: `${createSvg(shape, color1, color2)}${addIcon(icon)}`,\n iconAnchor: [17, 40],\n popupAnchor: [0, -40],\n iconSize: new Point(40, 46),\n className: 'leaflet-data-marker',\n shadowAnchor: [0, 0],\n })\n}\n\nexport default MarkerIconFactory\n","/*!\nCopyright (c) 2016 Dominik Moritz\n\nThis file is part of the leaflet locate control. It is licensed under the MIT license.\nYou can find the project at: https://github.com/domoritz/leaflet-locatecontrol\n*/\n(function (factory, window) {\n // see https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md#module-loaders\n // for details on how to structure a leaflet plugin.\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === \"function\" && define.amd) {\n define([\"leaflet\"], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === \"object\") {\n if (typeof window !== \"undefined\" && window.L) {\n module.exports = factory(L);\n } else {\n module.exports = factory(require(\"leaflet\"));\n }\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== \"undefined\" && window.L) {\n window.L.Control.Locate = factory(L);\n }\n})(function (L) {\n const LDomUtilApplyClassesMethod = (method, element, classNames) => {\n classNames = classNames.split(\" \");\n classNames.forEach(function (className) {\n L.DomUtil[method].call(this, element, className);\n });\n };\n\n const addClasses = (el, names) => LDomUtilApplyClassesMethod(\"addClass\", el, names);\n const removeClasses = (el, names) => LDomUtilApplyClassesMethod(\"removeClass\", el, names);\n\n /**\n * Compatible with L.Circle but a true marker instead of a path\n */\n const LocationMarker = L.Marker.extend({\n initialize(latlng, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this.createIcon();\n },\n\n /**\n * Create a styled circle location marker\n */\n createIcon() {\n const opt = this.options;\n\n let style = \"\";\n\n if (opt.color !== undefined) {\n style += `stroke:${opt.color};`;\n }\n if (opt.weight !== undefined) {\n style += `stroke-width:${opt.weight};`;\n }\n if (opt.fillColor !== undefined) {\n style += `fill:${opt.fillColor};`;\n }\n if (opt.fillOpacity !== undefined) {\n style += `fill-opacity:${opt.fillOpacity};`;\n }\n if (opt.opacity !== undefined) {\n style += `opacity:${opt.opacity};`;\n }\n\n const icon = this._getIconSVG(opt, style);\n\n this._locationIcon = L.divIcon({\n className: icon.className,\n html: icon.svg,\n iconSize: [icon.w, icon.h]\n });\n\n this.setIcon(this._locationIcon);\n },\n\n /**\n * Return the raw svg for the shape\n *\n * Split so can be easily overridden\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.weight;\n const s = r + w;\n const s2 = s * 2;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${s2}\" height=\"${s2}\" version=\"1.1\" viewBox=\"-${s} -${s} ${s2} ${s2}\">` +\n '<circle r=\"' +\n r +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-location\",\n svg,\n w: s2,\n h: s2\n };\n },\n\n setStyle(style) {\n L.Util.setOptions(this, style);\n this.createIcon();\n }\n });\n\n const CompassMarker = LocationMarker.extend({\n initialize(latlng, heading, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this._heading = heading;\n this.createIcon();\n },\n\n setHeading(heading) {\n this._heading = heading;\n },\n\n /**\n * Create a styled arrow compass marker\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.width + options.weight;\n const h = (r + options.depth + options.weight) * 2;\n const path = `M0,0 l${options.width / 2},${options.depth} l-${w},0 z`;\n const svgstyle = `transform: rotate(${this._heading}deg)`;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\" version=\"1.1\" viewBox=\"-${w / 2} 0 ${w} ${h}\" style=\"${svgstyle}\">` +\n '<path d=\"' +\n path +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-heading\",\n svg,\n w,\n h\n };\n }\n });\n\n const LocateControl = L.Control.extend({\n options: {\n /** Position of the control */\n position: \"topleft\",\n /** The layer that the user's location should be drawn on. By default creates a new layer. */\n layer: undefined,\n /**\n * Automatically sets the map view (zoom and pan) to the user's location as it updates.\n * While the map is following the user's location, the control is in the `following` state,\n * which changes the style of the control and the circle marker.\n *\n * Possible values:\n * - false: never updates the map view when location changes.\n * - 'once': set the view when the location is first determined\n * - 'always': always updates the map view when location changes.\n * The map view follows the user's location.\n * - 'untilPan': like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n * - 'untilPanOrZoom': (default) like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n */\n setView: \"untilPanOrZoom\",\n /** Keep the current map zoom level when setting the view and only pan. */\n keepCurrentZoomLevel: false,\n /** After activating the plugin by clicking on the icon, zoom to the selected zoom level, even when keepCurrentZoomLevel is true. Set to 'false' to disable this feature. */\n initialZoomLevel: false,\n /**\n * This callback can be used to override the viewport tracking\n * This function should return a LatLngBounds object.\n *\n * For example to extend the viewport to ensure that a particular LatLng is visible:\n *\n * getLocationBounds: function(locationEvent) {\n * return locationEvent.bounds.extend([-33.873085, 151.219273]);\n * },\n */\n getLocationBounds(locationEvent) {\n return locationEvent.bounds;\n },\n /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */\n flyTo: false,\n /**\n * The user location can be inside and outside the current view when the user clicks on the\n * control that is already active. Both cases can be configures separately.\n * Possible values are:\n * - 'setView': zoom and pan to the current location\n * - 'stop': stop locating and remove the location marker\n */\n clickBehavior: {\n /** What should happen if the user clicks on the control while the location is within the current view. */\n inView: \"stop\",\n /** What should happen if the user clicks on the control while the location is outside the current view. */\n outOfView: \"setView\",\n /**\n * What should happen if the user clicks on the control while the location is within the current view\n * and we could be following but are not. Defaults to a special value which inherits from 'inView';\n */\n inViewNotFollowing: \"inView\"\n },\n /**\n * If set, save the map bounds just before centering to the user's\n * location. When control is disabled, set the view back to the\n * bounds that were saved.\n */\n returnToPrevBounds: false,\n /**\n * Keep a cache of the location after the user deactivates the control. If set to false, the user has to wait\n * until the locate API returns a new location before they see where they are again.\n */\n cacheLocation: true,\n /** If set, a circle that shows the location accuracy is drawn. */\n drawCircle: true,\n /** If set, the marker at the users' location is drawn. */\n drawMarker: true,\n /** If set and supported then show the compass heading */\n showCompass: true,\n /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */\n markerClass: LocationMarker,\n /** The class us be used to create the compass bearing arrow */\n compassClass: CompassMarker,\n /** Accuracy circle style properties. NOTE these styles should match the css animations styles */\n circleStyle: {\n className: \"leaflet-control-locate-circle\",\n color: \"#136AEC\",\n fillColor: \"#136AEC\",\n fillOpacity: 0.15,\n weight: 0\n },\n /** Inner marker style properties. Only works if your marker class supports `setStyle`. */\n markerStyle: {\n className: \"leaflet-control-locate-marker\",\n color: \"#fff\",\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 3,\n opacity: 1,\n radius: 9\n },\n /** Compass */\n compassStyle: {\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 0,\n color: \"#fff\",\n opacity: 1,\n radius: 9, // How far is the arrow is from the center of of the marker\n width: 9, // Width of the arrow\n depth: 6 // Length of the arrow\n },\n /**\n * Changes to accuracy circle and inner marker while following.\n * It is only necessary to provide the properties that should change.\n */\n followCircleStyle: {},\n followMarkerStyle: {\n // color: '#FFA500',\n // fillColor: '#FFB000'\n },\n followCompassStyle: {},\n /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */\n icon: \"leaflet-control-locate-location-arrow\",\n iconLoading: \"leaflet-control-locate-spinner\",\n /** The element to be created for icons. For example span or i */\n iconElementTag: \"span\",\n /** The element to be created for the text. For example small or span */\n textElementTag: \"small\",\n /** Padding around the accuracy circle. */\n circlePadding: [0, 0],\n /** Use metric units. */\n metric: true,\n /**\n * This callback can be used in case you would like to override button creation behavior.\n * This is useful for DOM manipulation frameworks such as angular etc.\n * This function should return an object with HtmlElement for the button (link property) and the icon (icon property).\n */\n createButtonCallback(container, options) {\n const link = L.DomUtil.create(\"a\", \"leaflet-bar-part leaflet-bar-part-single\", container);\n link.title = options.strings.title;\n link.href = \"#\";\n link.setAttribute(\"role\", \"button\");\n const icon = L.DomUtil.create(options.iconElementTag, options.icon, link);\n\n if (options.strings.text !== undefined) {\n const text = L.DomUtil.create(options.textElementTag, \"leaflet-locate-text\", link);\n text.textContent = options.strings.text;\n link.classList.add(\"leaflet-locate-text-active\");\n link.parentNode.style.display = \"flex\";\n if (options.icon.length > 0) {\n icon.classList.add(\"leaflet-locate-icon\");\n }\n }\n\n return { link, icon };\n },\n /** This event is called in case of any location error that is not a time out error. */\n onLocationError(err, control) {\n alert(err.message);\n },\n /**\n * This event is called when the user's location is outside the bounds set on the map.\n * The event is called repeatedly when the location changes.\n */\n onLocationOutsideMapBounds(control) {\n control.stop();\n alert(control.options.strings.outsideMapBoundsMsg);\n },\n /** Display a pop-up when the user click on the inner marker. */\n showPopup: true,\n strings: {\n title: \"Show me where I am\",\n metersUnit: \"meters\",\n feetUnit: \"feet\",\n popup: \"You are within {distance} {unit} from this point\",\n outsideMapBoundsMsg: \"You seem located outside the boundaries of the map\"\n },\n /** The default options passed to leaflets locate method. */\n locateOptions: {\n maxZoom: Infinity,\n watch: true, // if you overwrite this, visualization cannot be updated\n setView: false // have to set this to false because we have to\n // do setView manually\n }\n },\n\n initialize(options) {\n // set default options if nothing is set (merge one step deep)\n for (const i in options) {\n if (typeof this.options[i] === \"object\") {\n L.extend(this.options[i], options[i]);\n } else {\n this.options[i] = options[i];\n }\n }\n\n // extend the follow marker style and circle from the normal style\n this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle);\n this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle);\n this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle);\n },\n\n /**\n * Add control to map. Returns the container for the control.\n */\n onAdd(map) {\n const container = L.DomUtil.create(\"div\", \"leaflet-control-locate leaflet-bar leaflet-control\");\n this._container = container;\n this._map = map;\n this._layer = this.options.layer || new L.LayerGroup();\n this._layer.addTo(map);\n this._event = undefined;\n this._compassHeading = null;\n this._prevBounds = null;\n\n const linkAndIcon = this.options.createButtonCallback(container, this.options);\n this._link = linkAndIcon.link;\n this._icon = linkAndIcon.icon;\n\n L.DomEvent.on(\n this._link,\n \"click\",\n function (ev) {\n L.DomEvent.stopPropagation(ev);\n L.DomEvent.preventDefault(ev);\n this._onClick();\n },\n this\n ).on(this._link, \"dblclick\", L.DomEvent.stopPropagation);\n\n this._resetVariables();\n\n this._map.on(\"unload\", this._unload, this);\n\n return container;\n },\n\n /**\n * This method is called when the user clicks on the control.\n */\n _onClick() {\n this._justClicked = true;\n const wasFollowing = this._isFollowing();\n this._userPanned = false;\n this._userZoomed = false;\n\n if (this._active && !this._event) {\n // click while requesting\n this.stop();\n } else if (this._active) {\n const behaviors = this.options.clickBehavior;\n let behavior = behaviors.outOfView;\n if (this._map.getBounds().contains(this._event.latlng)) {\n behavior = wasFollowing ? behaviors.inView : behaviors.inViewNotFollowing;\n }\n\n // Allow inheriting from another behavior\n if (behaviors[behavior]) {\n behavior = behaviors[behavior];\n }\n\n switch (behavior) {\n case \"setView\":\n this.setView();\n break;\n case \"stop\":\n this.stop();\n if (this.options.returnToPrevBounds) {\n const f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n f.bind(this._map)(this._prevBounds);\n }\n break;\n }\n } else {\n if (this.options.returnToPrevBounds) {\n this._prevBounds = this._map.getBounds();\n }\n this.start();\n }\n\n this._updateContainerStyle();\n },\n\n /**\n * Starts the plugin:\n * - activates the engine\n * - draws the marker (if coordinates available)\n */\n start() {\n this._activate();\n\n if (this._event) {\n this._drawMarker(this._map);\n\n // if we already have a location but the user clicked on the control\n if (this.options.setView) {\n this.setView();\n }\n }\n this._updateContainerStyle();\n },\n\n /**\n * Stops the plugin:\n * - deactivates the engine\n * - reinitializes the button\n * - removes the marker\n */\n stop() {\n this._deactivate();\n\n this._cleanClasses();\n this._resetVariables();\n\n this._removeMarker();\n },\n\n /**\n * Keep the control active but stop following the location\n */\n stopFollowing() {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n },\n\n /**\n * This method launches the location engine.\n * It is called before the marker is updated,\n * event if it does not mean that the event will be ready.\n *\n * Override it if you want to add more functionalities.\n * It should set the this._active to true and do nothing if\n * this._active is true.\n */\n _activate() {\n if (this._active || !this._map) {\n return;\n }\n\n this._map.locate(this.options.locateOptions);\n this._map.fire(\"locateactivate\", this);\n this._active = true;\n\n // bind event listeners\n this._map.on(\"locationfound\", this._onLocationFound, this);\n this._map.on(\"locationerror\", this._onLocationError, this);\n this._map.on(\"dragstart\", this._onDrag, this);\n this._map.on(\"zoomstart\", this._onZoom, this);\n this._map.on(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n const oriAbs = \"ondeviceorientationabsolute\" in window;\n if (oriAbs || \"ondeviceorientation\" in window) {\n const _this = this;\n const deviceorientation = function () {\n L.DomEvent.on(window, oriAbs ? \"deviceorientationabsolute\" : \"deviceorientation\", _this._onDeviceOrientation, _this);\n };\n if (DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent.requestPermission().then(function (permissionState) {\n if (permissionState === \"granted\") {\n deviceorientation();\n }\n });\n } else {\n deviceorientation();\n }\n }\n }\n },\n\n /**\n * Called to stop the location engine.\n *\n * Override it to shutdown any functionalities you added on start.\n */\n _deactivate() {\n if (!this._active || !this._map) {\n return;\n }\n\n this._map.stopLocate();\n this._map.fire(\"locatedeactivate\", this);\n this._active = false;\n\n if (!this.options.cacheLocation) {\n this._event = undefined;\n }\n\n // unbind event listeners\n this._map.off(\"locationfound\", this._onLocationFound, this);\n this._map.off(\"locationerror\", this._onLocationError, this);\n this._map.off(\"dragstart\", this._onDrag, this);\n this._map.off(\"zoomstart\", this._onZoom, this);\n this._map.off(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n this._compassHeading = null;\n if (\"ondeviceorientationabsolute\" in window) {\n L.DomEvent.off(window, \"deviceorientationabsolute\", this._onDeviceOrientation, this);\n } else if (\"ondeviceorientation\" in window) {\n L.DomEvent.off(window, \"deviceorientation\", this._onDeviceOrientation, this);\n }\n }\n },\n\n /**\n * Zoom (unless we should keep the zoom level) and an to the current view.\n */\n setView() {\n this._drawMarker();\n if (this._isOutsideMapBounds()) {\n this._event = undefined; // clear the current location so we can get back into the bounds\n this.options.onLocationOutsideMapBounds(this);\n } else {\n if (this._justClicked && this.options.initialZoomLevel !== false) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.setView;\n f.bind(this._map)([this._event.latitude, this._event.longitude], this.options.initialZoomLevel);\n } else if (this.options.keepCurrentZoomLevel) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.panTo;\n f.bind(this._map)([this._event.latitude, this._event.longitude]);\n } else {\n var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n // Ignore zoom events while setting the viewport as these would stop following\n this._ignoreEvent = true;\n f.bind(this._map)(this.options.getLocationBounds(this._event), {\n padding: this.options.circlePadding,\n maxZoom: this.options.initialZoomLevel || this.options.locateOptions.maxZoom\n });\n L.Util.requestAnimFrame(function () {\n // Wait until after the next animFrame because the flyTo can be async\n this._ignoreEvent = false;\n }, this);\n }\n }\n },\n\n /**\n *\n */\n _drawCompass() {\n if (!this._event) {\n return;\n }\n\n const latlng = this._event.latlng;\n\n if (this.options.showCompass && latlng && this._compassHeading !== null) {\n const cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle;\n if (!this._compass) {\n this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer);\n } else {\n this._compass.setLatLng(latlng);\n this._compass.setHeading(this._compassHeading);\n // If the compassClass can be updated with setStyle, update it.\n if (this._compass.setStyle) {\n this._compass.setStyle(cStyle);\n }\n }\n //\n }\n if (this._compass && (!this.options.showCompass || this._compassHeading === null)) {\n this._compass.removeFrom(this._layer);\n this._compass = null;\n }\n },\n\n /**\n * Draw the marker and accuracy circle on the map.\n *\n * Uses the event retrieved from onLocationFound from the map.\n */\n _drawMarker() {\n if (this._event.accuracy === undefined) {\n this._event.accuracy = 0;\n }\n\n const radius = this._event.accuracy;\n const latlng = this._event.latlng;\n\n // circle with the radius of the location's accuracy\n if (this.options.drawCircle) {\n const style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle;\n\n if (!this._circle) {\n this._circle = L.circle(latlng, radius, style).addTo(this._layer);\n } else {\n this._circle.setLatLng(latlng).setRadius(radius).setStyle(style);\n }\n }\n\n let distance;\n let unit;\n if (this.options.metric) {\n distance = radius.toFixed(0);\n unit = this.options.strings.metersUnit;\n } else {\n distance = (radius * 3.2808399).toFixed(0);\n unit = this.options.strings.feetUnit;\n }\n\n // small inner marker\n if (this.options.drawMarker) {\n const mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle;\n if (!this._marker) {\n this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer);\n } else {\n this._marker.setLatLng(latlng);\n // If the markerClass can be updated with setStyle, update it.\n if (this._marker.setStyle) {\n this._marker.setStyle(mStyle);\n }\n }\n }\n\n this._drawCompass();\n\n const t = this.options.strings.popup;\n function getPopupText() {\n if (typeof t === \"string\") {\n return L.Util.template(t, { distance, unit });\n } else if (typeof t === \"function\") {\n return t({ distance, unit });\n } else {\n return t;\n }\n }\n if (this.options.showPopup && t && this._marker) {\n this._marker.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n if (this.options.showPopup && t && this._compass) {\n this._compass.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n },\n\n /**\n * Remove the marker from map.\n */\n _removeMarker() {\n this._layer.clearLayers();\n this._marker = undefined;\n this._circle = undefined;\n },\n\n /**\n * Unload the plugin and all event listeners.\n * Kind of the opposite of onAdd.\n */\n _unload() {\n this.stop();\n this._map.off(\"unload\", this._unload, this);\n },\n\n /**\n * Sets the compass heading\n */\n _setCompassHeading(angle) {\n if (!isNaN(parseFloat(angle)) && isFinite(angle)) {\n angle = Math.round(angle);\n\n this._compassHeading = angle;\n L.Util.requestAnimFrame(this._drawCompass, this);\n } else {\n this._compassHeading = null;\n }\n },\n\n /**\n * If the compass fails calibration just fail safely and remove the compass\n */\n _onCompassNeedsCalibration() {\n this._setCompassHeading();\n },\n\n /**\n * Process and normalise compass events\n */\n _onDeviceOrientation(e) {\n if (!this._active) {\n return;\n }\n\n if (e.webkitCompassHeading) {\n // iOS\n this._setCompassHeading(e.webkitCompassHeading);\n } else if (e.absolute && e.alpha) {\n // Android\n this._setCompassHeading(360 - e.alpha);\n }\n },\n\n /**\n * Calls deactivate and dispatches an error.\n */\n _onLocationError(err) {\n // ignore time out error if the location is watched\n if (err.code == 3 && this.options.locateOptions.watch) {\n return;\n }\n\n this.stop();\n this.options.onLocationError(err, this);\n },\n\n /**\n * Stores the received event and updates the marker.\n */\n _onLocationFound(e) {\n // no need to do anything if the location has not changed\n if (this._event && this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy) {\n return;\n }\n\n if (!this._active) {\n // we may have a stray event\n return;\n }\n\n this._event = e;\n\n this._drawMarker();\n this._updateContainerStyle();\n\n switch (this.options.setView) {\n case \"once\":\n if (this._justClicked) {\n this.setView();\n }\n break;\n case \"untilPan\":\n if (!this._userPanned) {\n this.setView();\n }\n break;\n case \"untilPanOrZoom\":\n if (!this._userPanned && !this._userZoomed) {\n this.setView();\n }\n break;\n case \"always\":\n this.setView();\n break;\n case false:\n // don't set the view\n break;\n }\n\n this._justClicked = false;\n },\n\n /**\n * When the user drags. Need a separate event so we can bind and unbind event listeners.\n */\n _onDrag() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * When the user zooms. Need a separate event so we can bind and unbind event listeners.\n */\n _onZoom() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userZoomed = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * After a zoom ends update the compass and handle sideways zooms\n */\n _onZoomEnd() {\n if (this._event) {\n this._drawCompass();\n }\n\n if (this._event && !this._ignoreEvent) {\n // If we have zoomed in and out and ended up sideways treat it as a pan\n if (this._marker && !this._map.getBounds().pad(-0.3).contains(this._marker.getLatLng())) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n }\n },\n\n /**\n * Compute whether the map is following the user location with pan and zoom.\n */\n _isFollowing() {\n if (!this._active) {\n return false;\n }\n\n if (this.options.setView === \"always\") {\n return true;\n } else if (this.options.setView === \"untilPan\") {\n return !this._userPanned;\n } else if (this.options.setView === \"untilPanOrZoom\") {\n return !this._userPanned && !this._userZoomed;\n }\n },\n\n /**\n * Check if location is in map bounds\n */\n _isOutsideMapBounds() {\n if (this._event === undefined) {\n return false;\n }\n return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng);\n },\n\n /**\n * Toggles button class between following and active.\n */\n _updateContainerStyle() {\n if (!this._container) {\n return;\n }\n\n if (this._active && !this._event) {\n // active but don't have a location yet\n this._setClasses(\"requesting\");\n } else if (this._isFollowing()) {\n this._setClasses(\"following\");\n } else if (this._active) {\n this._setClasses(\"active\");\n } else {\n this._cleanClasses();\n }\n },\n\n /**\n * Sets the CSS classes for the state.\n */\n _setClasses(state) {\n if (state == \"requesting\") {\n removeClasses(this._container, \"active following\");\n addClasses(this._container, \"requesting\");\n\n removeClasses(this._icon, this.options.icon);\n addClasses(this._icon, this.options.iconLoading);\n } else if (state == \"active\") {\n removeClasses(this._container, \"requesting following\");\n addClasses(this._container, \"active\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n } else if (state == \"following\") {\n removeClasses(this._container, \"requesting\");\n addClasses(this._container, \"active following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n }\n },\n\n /**\n * Removes all classes from button.\n */\n _cleanClasses() {\n L.DomUtil.removeClass(this._container, \"requesting\");\n L.DomUtil.removeClass(this._container, \"active\");\n L.DomUtil.removeClass(this._container, \"following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n },\n\n /**\n * Reinitializes state variables.\n */\n _resetVariables() {\n // whether locate is active or not\n this._active = false;\n\n // true if the control was clicked for the first time\n // we need this so we can pan and zoom once we have the location\n this._justClicked = false;\n\n // true if the user has panned the map after clicking the control\n this._userPanned = false;\n\n // true if the user has zoomed the map after clicking the control\n this._userZoomed = false;\n }\n });\n\n L.control.locate = (options) => new L.Control.Locate(options);\n\n return LocateControl;\n}, window);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/prefer-ts-expect-error */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { control } from 'leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useMap, useMapEvents } from 'react-leaflet'\n// eslint-disable-next-line import/no-unassigned-import\nimport 'leaflet.locatecontrol'\nimport 'leaflet.locatecontrol/dist/L.Control.Locate.css'\n\n// Converts leaflet.locatecontrol to a React Component\nexport const LocateControl = () => {\n const map = useMap()\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const [lc, setLc] = useState<any>(null)\n const [active, setActive] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n\n useEffect(() => {\n if (!init.current) {\n // @ts-ignore\n setLc(control.locate().addTo(map))\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useMapEvents({\n locationfound: () => {\n setLoading(false)\n setActive(true)\n },\n })\n\n return (\n <>\n <div className='tw-card tw-h-12 tw-w-12 tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-ml-2'>\n <div\n className='tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 '\n onClick={() => {\n if (active) {\n lc.stop()\n setActive(false)\n } else {\n lc.start()\n setLoading(true)\n }\n }}\n >\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-md tw-mt-1'></span>\n ) : (\n <svg\n fill={`${active ? '#fc8702' : 'currentColor'}`}\n viewBox='0 0 32 32'\n version='1.1'\n xmlns='http://www.w3.org/2000/svg'\n className='tw-mt-1 tw-p-[1px]'\n >\n <path d='M30 14.75h-2.824c-0.608-5.219-4.707-9.318-9.874-9.921l-0.053-0.005v-2.824c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.824c-5.219 0.608-9.318 4.707-9.921 9.874l-0.005 0.053h-2.824c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.824c0.608 5.219 4.707 9.318 9.874 9.921l0.053 0.005v2.824c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.824c5.219-0.608 9.318-4.707 9.921-9.874l0.005-0.053h2.824c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0zM17.25 24.624v-2.624c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.624c-3.821-0.57-6.803-3.553-7.368-7.326l-0.006-0.048h2.624c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0h-2.624c0.57-3.821 3.553-6.804 7.326-7.368l0.048-0.006v2.624c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.624c3.821 0.57 6.803 3.553 7.368 7.326l0.006 0.048h-2.624c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.624c-0.571 3.821-3.553 6.803-7.326 7.368l-0.048 0.006z'></path>\n </svg>\n )}\n </div>\n </div>\n </>\n )\n}\n","// Converts leaflet.locatecontrol to a React Component\nexport const SidebarControl = () => {\n return (\n <>\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-mr-2 tw-h-12 tw-w-12 '>\n <div className='tw-card-body tw-card tw-p-0'>\n <button\n className='tw-btn tw-btn-square tw-btn-ghost tw-rounded-2xl'\n data-te-sidenav-toggle-ref\n data-te-target='#sidenav'\n aria-controls='#sidenav'\n aria-haspopup='true'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n className='tw-inline-block tw-w-5 tw-h-5 tw-stroke-current'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='2'\n d='M4 6h16M4 12h16M4 18h16'\n ></path>\n </svg>\n </button>\n </div>\n </div>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport axios from 'axios'\nimport { LatLng, LatLngBounds, marker } from 'leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useMap, useMapEvents } from 'react-leaflet'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useDebounce } from '#components/Map/hooks/useDebounce'\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useLeafletRefs } from '#components/Map/hooks/useLeafletRefs'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport useWindowDimensions from '#components/Map/hooks/useWindowDimension'\nimport { decodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport MarkerIconFactory from '#utils/MarkerIconFactory'\n\nimport { LocateControl } from './LocateControl'\nimport { SidebarControl } from './SidebarControl'\n\nimport type { Item } from '#types/Item'\n\nexport const SearchControl = () => {\n const windowDimensions = useWindowDimensions()\n const [popupOpen, setPopupOpen] = useState(false)\n\n const [value, setValue] = useState('')\n const [geoResults, setGeoResults] = useState<any[]>([])\n const [tagsResults, setTagsResults] = useState<any[]>([])\n const [itemsResults, setItemsResults] = useState<Item[]>([])\n const [hideSuggestions, setHideSuggestions] = useState(true)\n\n const map = useMap()\n const tags = useTags()\n const items = useItems()\n const leafletRefs = useLeafletRefs()\n const addFilterTag = useAddFilterTag()\n\n useMapEvents({\n popupopen: () => {\n setPopupOpen(true)\n },\n popupclose: () => {\n setPopupOpen(false)\n },\n })\n\n const navigate = useNavigate()\n\n useDebounce(\n () => {\n const searchGeo = async () => {\n try {\n const { data } = await axios.get(`https://photon.komoot.io/api/?q=${value}&limit=5`)\n setGeoResults(data.features)\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error)\n }\n }\n searchGeo()\n setItemsResults(\n items.filter((item) => {\n if (item.layer?.itemNameField) item.name = getValue(item, item.layer.itemNameField)\n if (item.layer?.itemTextField) item.text = getValue(item, item.layer.itemTextField)\n return (\n value.length > 2 &&\n ((item.layer?.listed && item.name.toLowerCase().includes(value.toLowerCase())) ||\n item.text.toLowerCase().includes(value.toLowerCase()))\n )\n }),\n )\n let phrase = value\n if (value.startsWith('#')) phrase = value.substring(1)\n setTagsResults(tags.filter((tag) => tag.name.toLowerCase().includes(phrase.toLowerCase())))\n },\n 500,\n [value],\n )\n\n const hide = async () => {\n setTimeout(() => {\n setHideSuggestions(true)\n }, 200)\n }\n\n const searchInput = useRef<HTMLInputElement>(null)\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n const location = useLocation()\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setEmbedded(false)\n }, [location])\n\n return (\n <>\n {!(windowDimensions.height < 500 && popupOpen && hideSuggestions) && (\n <div className='tw-w-[calc(100vw-2rem)] tw-max-w-[22rem] '>\n <div className='tw-flex tw-flex-row'>\n {embedded && <SidebarControl />}\n <div className='tw-relative'>\n <input\n type='text'\n placeholder='search ...'\n autoComplete='off'\n value={value}\n className='tw-input tw-input-bordered tw-grow tw-shadow-xl tw-rounded-lg tw-pr-12'\n ref={searchInput}\n onChange={(e) => setValue(e.target.value)}\n onFocus={() => {\n setHideSuggestions(false)\n if (windowDimensions.width < 500) map.closePopup()\n }}\n onBlur={() => hide()}\n />\n {value.length > 0 && (\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-2 tw-top-2'\n onClick={() => setValue('')}\n >\n ✕\n </button>\n )}\n </div>\n <LocateControl />\n </div>\n {hideSuggestions ||\n (Array.from(geoResults).length === 0 &&\n itemsResults.length === 0 &&\n tagsResults.length === 0 &&\n !isGeoCoordinate(value)) ||\n value.length === 0 ? (\n ''\n ) : (\n <div className='tw-card tw-card-body tw-bg-base-100 tw-p-4 tw-mt-2 tw-shadow-xl tw-overflow-y-auto tw-max-h-[calc(100dvh-152px)] tw-absolute tw-z-3000'>\n {tagsResults.length > 0 && (\n <div className='tw-flex tw-flex-wrap'>\n {tagsResults.slice(0, 3).map((tag) => (\n <div\n key={tag.name}\n className='tw-rounded-2xl tw-text-white tw-p-1 tw-px-4 tw-shadow-md tw-card tw-mr-2 tw-mb-2 tw-cursor-pointer'\n style={{ backgroundColor: tag.color }}\n onClick={() => {\n addFilterTag(tag)\n }}\n >\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n )}\n\n {itemsResults.length > 0 && tagsResults.length > 0 && (\n <hr className='tw-opacity-50'></hr>\n )}\n {itemsResults.slice(0, 5).map((item) => (\n <div\n key={item.id}\n className='tw-cursor-pointer hover:tw-font-bold'\n onClick={() => {\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1]\n .marker\n if (marker) {\n navigate(`/${item.id}?${new URLSearchParams(window.location.search)}`)\n } else {\n navigate(\n 'item/' + item.id + '?' + new URLSearchParams(window.location.search),\n )\n }\n }}\n >\n <div className='tw-flex tw-flex-row'>\n <img\n src={item.layer?.menuIcon}\n className='tw-text-current tw-w-5 tw-mr-2 tw-mt-0'\n />\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {item.name}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {item.text}\n </div>\n </div>\n </div>\n </div>\n ))}\n {Array.from(geoResults).length > 0 &&\n (itemsResults.length > 0 || tagsResults.length > 0) && (\n <hr className='tw-opacity-50'></hr>\n )}\n {Array.from(geoResults).map((geo) => (\n <div\n className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer'\n key={Math.random()}\n onClick={() => {\n searchInput.current?.blur()\n marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), {\n icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),\n })\n .addTo(map)\n .bindPopup(\n `<h3 class=\"tw-text-base tw-font-bold\">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`,\n )\n .openPopup()\n .addEventListener('popupclose', (e) => {\n // eslint-disable-next-line no-console\n console.log(e.target.remove())\n })\n if (geo.properties.extent)\n map.fitBounds(\n new LatLngBounds(\n new LatLng(geo.properties.extent[1], geo.properties.extent[0]),\n new LatLng(geo.properties.extent[3], geo.properties.extent[2]),\n ),\n )\n else\n map.setView(\n new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]),\n 15,\n { duration: 1 },\n )\n hide()\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='1.5'\n stroke='currentColor'\n className='tw-text-current tw-mr-2 tw-mt-0 tw-w-4'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z'\n />\n </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {geo?.properties.name ? geo?.properties.name : value}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {geo?.properties?.city && `${capitalizeFirstLetter(geo?.properties?.city)}, `}{' '}\n {geo?.properties?.osm_value &&\n geo?.properties?.osm_value !== 'yes' &&\n geo?.properties?.osm_value !== 'primary' &&\n geo?.properties?.osm_value !== 'path' &&\n geo?.properties?.osm_value !== 'secondary' &&\n geo?.properties?.osm_value !== 'residential' &&\n geo?.properties?.osm_value !== 'unclassified' &&\n `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `}{' '}\n {geo.properties.state && `${geo.properties.state}, `}{' '}\n {geo.properties.country && geo.properties.country}\n </div>\n </div>\n </div>\n ))}\n {isGeoCoordinate(value) && (\n <div\n className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer'\n onClick={() => {\n marker(\n new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),\n {\n icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),\n },\n )\n .addTo(map)\n .bindPopup(\n `<h3 class=\"tw-text-base tw-font-bold\">${extractCoordinates(value)![0]}, ${extractCoordinates(value)![1]}</h3>`,\n )\n .openPopup()\n .addEventListener('popupclose', (e) => {\n // eslint-disable-next-line no-console\n console.log(e.target.remove())\n })\n map.setView(\n new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),\n 15,\n { duration: 1 },\n )\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={1.5}\n stroke='currentColor'\n className='tw-text-current tw-mr-2 tw-mt-0 tw-w-4'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.524 48.524 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5'\n />\n </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {value}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {'Coordiante'}\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </>\n )\n}\n\nfunction isGeoCoordinate(input) {\n const geokoordinatenRegex =\n // eslint-disable-next-line security/detect-unsafe-regex\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/\n return geokoordinatenRegex.test(input)\n}\n\nfunction extractCoordinates(input): number[] | null {\n const result = input.split(',')\n if (result) {\n const latitude = parseFloat(result[0])\n const longitude = parseFloat(result[1])\n if (!isNaN(latitude) && !isNaN(longitude)) {\n return [latitude, longitude]\n }\n }\n return null // Invalid input or error\n}\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n","import { useFilterTags, useRemoveFilterTag } from '#components/Map/hooks/useFilter'\nimport { decodeTag } from '#utils/FormatTags'\n\nexport const TagsControl = () => {\n const filterTags = useFilterTags()\n const removeFilterTag = useRemoveFilterTag()\n\n return (\n <div className='tw-flex tw-flex-wrap tw-mt-4 tw-w-[calc(100vw-2rem)] tw-max-w-xs'>\n {filterTags.map((tag) => (\n <div\n key={tag.id}\n className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2'\n style={{ backgroundColor: tag.color }}\n >\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600'\n onClick={() => removeFilterTag(tag.name)}\n >\n ✕\n </label>\n </div>\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n )\n}\n","export const urlRegex =\n // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\n /(^| )(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-Z]{2,6})(?![\\])])/gi\n\nexport function fixUrls(message: string): string {\n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '')\n\n if (!hyperlink.match('^https?://')) {\n hyperlink = 'https://' + hyperlink\n }\n return hyperlink\n })\n\n return message\n}\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { memo } from 'react'\nimport Markdown from 'react-markdown'\nimport remarkBreaks from 'remark-breaks'\n\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { decodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { fixUrls, mailRegex } from '#utils/ReplaceURLs'\n\nimport type { Item } from '#types/Item'\nimport type { Tag } from '#types/Tag'\n\nexport const TextView = ({\n item,\n truncate = false,\n itemTextField,\n rawText,\n}: {\n item?: Item\n truncate?: boolean\n itemTextField?: string\n rawText?: string\n}) => {\n const tags = useTags()\n const addFilterTag = useAddFilterTag()\n\n let text = ''\n let replacedText = ''\n\n if (rawText) {\n text = replacedText = rawText\n } else if (itemTextField && item) {\n text = getValue(item, itemTextField)\n } else {\n text = item?.layer?.itemTextField && item ? getValue(item, item.layer.itemTextField) : ''\n }\n\n if (item && text && truncate) text = truncateText(removeMarkdownKeepLinksAndParagraphs(text), 100)\n\n if (item && text) replacedText = fixUrls(text)\n\n if (replacedText) {\n replacedText = replacedText.replace(/(?<!\\]?\\()https?:\\/\\/[^\\s)]+(?!\\))/g, (url) => {\n let shortUrl = url\n\n if (url.match('^https://')) {\n shortUrl = url.split('https://')[1]\n }\n\n if (url.match('^http://')) {\n shortUrl = url.split('http://')[1]\n }\n\n return `[${shortUrl}](${url})`\n })\n }\n\n if (replacedText) {\n replacedText = replacedText.replace(mailRegex, (url) => {\n return `[${url}](mailto:${url})`\n })\n }\n\n if (replacedText) {\n replacedText = replacedText.replace(hashTagRegex, (match) => {\n return `[${match}](${match})`\n })\n }\n\n const CustomH1 = ({ children }) => <h1 className='tw-text-xl tw-font-bold'>{children}</h1>\n\n const CustomH2 = ({ children }) => <h2 className='tw-text-lg tw-font-bold'>{children}</h2>\n\n const CustomH3 = ({ children }) => <h3 className='tw-text-base tw-font-bold'>{children}</h3>\n\n const CustomH4 = ({ children }) => <h4 className='tw-text-base tw-font-bold'>{children}</h4>\n\n const CustomH5 = ({ children }) => <h5 className='tw-text-sm tw-font-bold'>{children}</h5>\n\n const CustomH6 = ({ children }) => <h6 className='tw-text-sm tw-font-bold'>{children}</h6>\n\n const CustomParagraph = ({ children }) => <p className='!tw-my-2'>{children}</p>\n\n const CustomUnorderdList = ({ children }) => (\n <ul className='tw-list-disc tw-list-inside'>{children}</ul>\n )\n\n const CustomOrderdList = ({ children }) => (\n <ol className='tw-list-decimal tw-list-inside'>{children}</ol>\n )\n\n const CustomHorizontalRow = ({ children }) => <hr className='tw-border-current'>{children}</hr>\n // eslint-disable-next-line react/prop-types\n const CustomImage = ({ alt, src, title }) => (\n <img className='tw-max-w-full tw-rounded tw-shadow' src={src} alt={alt} title={title} />\n )\n\n const CustomExternalLink = ({ href, children }) => (\n <a className='tw-font-bold tw-underline' href={href} target='_blank' rel='noreferrer'>\n {' '}\n {children}\n </a>\n )\n\n const CustomHashTagLink = ({\n children,\n tag,\n item,\n }: {\n children: string\n tag: Tag\n item?: Item\n }) => {\n return (\n <a\n style={{ color: tag ? tag.color : '#faa', fontWeight: 'bold', cursor: 'pointer' }}\n key={tag ? tag.name + item?.id : item?.id}\n onClick={(e) => {\n e.stopPropagation()\n addFilterTag(tag)\n }}\n >\n {decodeTag(children)}\n </a>\n )\n }\n\n // eslint-disable-next-line react/display-name\n const MemoizedVideoEmbed = memo(({ url }: { url: string }) => (\n <iframe\n className='tw-w-full'\n src={url}\n allow='fullscreen; picture-in-picture'\n allowFullScreen\n />\n ))\n\n return (\n <Markdown\n className={'tw-text-map tw-leading-map tw-text-sm'}\n remarkPlugins={[remarkBreaks]}\n components={{\n p: CustomParagraph,\n a: ({ href, children }: { href: string; children: string }) => {\n const isYouTubeVideo = href?.startsWith('https://www.youtube.com/watch?v=')\n\n const isRumbleVideo = href?.startsWith('https://rumble.com/embed/')\n\n if (isYouTubeVideo) {\n const videoId = href?.split('v=')[1].split('&')[0]\n const youtubeEmbedUrl = `https://www.youtube-nocookie.com/embed/${videoId}`\n\n return <MemoizedVideoEmbed url={youtubeEmbedUrl}></MemoizedVideoEmbed>\n }\n if (isRumbleVideo) {\n return <MemoizedVideoEmbed url={href}></MemoizedVideoEmbed>\n }\n\n if (href?.startsWith('#')) {\n console.log(href.slice(1).toLowerCase())\n console.log(tags)\n const tag = tags.find(\n (t) => t.name.toLowerCase() === decodeURI(href).slice(1).toLowerCase(),\n )\n if (tag)\n return (\n <CustomHashTagLink tag={tag} item={item}>\n {children}\n </CustomHashTagLink>\n )\n else return children\n } else {\n return <CustomExternalLink href={href}>{children}</CustomExternalLink>\n }\n },\n ul: CustomUnorderdList,\n ol: CustomOrderdList,\n img: CustomImage,\n hr: CustomHorizontalRow,\n h1: CustomH1,\n h2: CustomH2,\n h3: CustomH3,\n h4: CustomH4,\n h5: CustomH5,\n h6: CustomH6,\n }}\n >\n {replacedText}\n </Markdown>\n )\n}\n\nfunction removeMarkdownKeepLinksAndParagraphs(text) {\n // Remove Markdown syntax using regular expressions but keep links and paragraphs\n return text\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '') // Remove images\n .replace(/(`{1,3})(.*?)\\1/g, '$2') // Remove inline code\n .replace(/(\\*{1,2}|_{1,2})(.*?)\\1/g, '$2') // Remove bold and italic\n .replace(/(#+)\\s+(.*)/g, '$2') // Remove headers\n .replace(/>\\s+(.*)/g, '$1') // Remove blockquotes\n .replace(/^\\s*\\n/gm, '\\n') // Preserve empty lines\n .replace(/(\\r\\n|\\n|\\r)/gm, '\\n') // Preserve line breaks\n}\n\nfunction truncateText(text, limit) {\n if (text.length <= limit) {\n return text\n }\n\n let truncated = ''\n let length = 0\n\n // Split the text by paragraphs\n const paragraphs = text.split('\\n')\n\n for (const paragraph of paragraphs) {\n if (length + paragraph.length > limit) {\n truncated += paragraph.slice(0, limit - length) + '...'\n break\n } else {\n truncated += paragraph + '\\n'\n length += paragraph.length\n }\n }\n\n return truncated.trim()\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\nexport const SelectPosition = ({ setSelectNewItemPosition }: { setSelectNewItemPosition }) => {\n return (\n <div className='tw-animate-pulseGrow tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setSelectNewItemPosition(null)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <div className='tw-alert tw-bg-base-100 tw-text-base-content'>\n <div>\n <span className='tw-text-lg'>Select position on the map!</span>\n </div>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { Children, cloneElement, isValidElement, useEffect, useRef, useState } from 'react'\nimport { TileLayer, useMapEvents, GeoJSON, useMap } from 'react-leaflet'\nimport 'leaflet/dist/leaflet.css'\nimport MarkerClusterGroup from 'react-leaflet-cluster'\nimport { Outlet, useLocation } from 'react-router-dom'\nimport { toast } from 'react-toastify'\nimport './UtopiaMap.css'\n\nimport { containsUUID } from '#utils/ContainsUUID'\nimport { getValue } from '#utils/GetValue'\n\nimport { useClusterRef, useSetClusterRef } from './hooks/useClusterRef'\nimport { useAddVisibleLayer } from './hooks/useFilter'\nimport { useLayers } from './hooks/useLayers'\nimport { useLeafletRefs } from './hooks/useLeafletRefs'\nimport {\n useSelectPosition,\n useSetMapClicked,\n useSetSelectPosition,\n} from './hooks/useSelectPosition'\nimport AddButton from './Subcomponents/AddButton'\nimport { Control } from './Subcomponents/Controls/Control'\nimport { FilterControl } from './Subcomponents/Controls/FilterControl'\nimport { GratitudeControl } from './Subcomponents/Controls/GratitudeControl'\nimport { LayerControl } from './Subcomponents/Controls/LayerControl'\nimport { SearchControl } from './Subcomponents/Controls/SearchControl'\nimport { TagsControl } from './Subcomponents/Controls/TagsControl'\nimport { TextView } from './Subcomponents/ItemPopupComponents/TextView'\nimport { SelectPosition } from './Subcomponents/SelectPosition'\n\nimport type { ItemFormPopupProps } from '#types/ItemFormPopupProps'\nimport type { UtopiaMapProps } from '#types/UtopiaMapProps'\nimport type { Feature, Geometry as GeoJSONGeometry } from 'geojson'\n\nexport function UtopiaMapInner({\n children,\n geo,\n showFilterControl = false,\n showGratitudeControl = false,\n showLayerControl = true,\n infoText,\n}: UtopiaMapProps) {\n const selectNewItemPosition = useSelectPosition()\n const setSelectNewItemPosition = useSetSelectPosition()\n const setClusterRef = useSetClusterRef()\n const clusterRef = useClusterRef()\n const setMapClicked = useSetMapClicked()\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null)\n\n const layers = useLayers()\n const addVisibleLayer = useAddVisibleLayer()\n const leafletRefs = useLeafletRefs()\n\n const location = useLocation()\n const map = useMap()\n\n useEffect(() => {\n layers.forEach((layer) => addVisibleLayer(layer))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [layers])\n\n const init = useRef(false)\n useEffect(() => {\n if (!init.current) {\n infoText &&\n setTimeout(() => {\n toast(<TextView rawText={infoText} />, { autoClose: false })\n }, 10000)\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n function MapEventListener() {\n useMapEvents({\n click: (e) => {\n resetMetaTags()\n // eslint-disable-next-line no-console\n console.log(e.latlng.lat + ',' + e.latlng.lng)\n if (selectNewItemPosition) {\n setMapClicked({ position: e.latlng, setItemFormPopup })\n }\n },\n moveend: () => {},\n })\n return null\n }\n\n useMapEvents({\n popupopen: (e) => {\n const item = Object.entries(leafletRefs).find((r) => r[1].popup === e.popup)?.[1].item\n if (window.location.pathname.split('/')[1] !== item?.id) {\n const params = new URLSearchParams(window.location.search)\n if (!location.pathname.includes('/item/')) {\n window.history.pushState(\n {},\n '',\n `/${item?.id}` + `${params.toString() !== '' ? `?${params}` : ''}`,\n )\n }\n let title = ''\n if (item?.name) title = item.name\n else if (item?.layer?.itemNameField) title = getValue(item, item.layer.itemNameField)\n document.title = `${document.title.split('-')[0]} - ${title}`\n }\n },\n })\n\n const openPopup = () => {\n if (!containsUUID(window.location.pathname)) {\n map.closePopup()\n } else {\n if (window.location.pathname.split('/')[1]) {\n const id = window.location.pathname.split('/')[1]\n // eslint-disable-next-line security/detect-object-injection\n const ref = leafletRefs[id]\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (ref) {\n clusterRef.hasLayer(ref.marker) &&\n clusterRef?.zoomToShowLayer(ref.marker, () => {\n ref.marker.openPopup()\n })\n let title = ''\n if (ref.item.name) title = ref.item.name\n else if (ref.item.layer?.itemNameField)\n title = getValue(ref.item.name, ref.item.layer.itemNameField)\n document.title = `${document.title.split('-')[0]} - ${title}`\n document\n .querySelector('meta[property=\"og:title\"]')\n ?.setAttribute('content', ref.item.name)\n document\n .querySelector('meta[property=\"og:description\"]')\n ?.setAttribute('content', ref.item.text)\n }\n }\n }\n }\n\n useEffect(() => {\n openPopup()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [leafletRefs, location])\n\n const resetMetaTags = () => {\n const params = new URLSearchParams(window.location.search)\n if (!containsUUID(window.location.pathname)) {\n window.history.pushState({}, '', '/' + `${params.toString() !== '' ? `?${params}` : ''}`)\n }\n document.title = document.title.split('-')[0]\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute('content', document.title)\n document\n .querySelector('meta[property=\"og:description\"]')\n ?.setAttribute(\n 'content',\n `${document.querySelector('meta[name=\"description\"]')?.getAttribute('content')}`,\n )\n }\n\n const onEachFeature = (feature: Feature<GeoJSONGeometry, any>, layer: L.Layer) => {\n if (feature.properties) {\n layer.bindPopup(feature.properties.name)\n }\n }\n\n return (\n <div\n className={`tw-h-full ${selectNewItemPosition != null ? 'crosshair-cursor-enabled' : undefined}`}\n >\n <Outlet />\n <Control position='topLeft' zIndex='1000' absolute>\n <SearchControl />\n <TagsControl />\n </Control>\n <Control position='bottomLeft' zIndex='999' absolute>\n {showFilterControl && <FilterControl />}\n {showLayerControl && <LayerControl />}\n {showGratitudeControl && <GratitudeControl />}\n </Control>\n <TileLayer\n maxZoom={19}\n attribution='&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url='https://tile.osmand.net/hd/{z}/{x}/{y}.png'\n />\n <MarkerClusterGroup\n ref={(r) => setClusterRef(r as any)}\n showCoverageOnHover\n chunkedLoading\n maxClusterRadius={50}\n removeOutsideVisibleBounds={false}\n >\n {Children.toArray(children).map((child) =>\n isValidElement<{\n setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>\n itemFormPopup: ItemFormPopupProps | null\n clusterRef: React.MutableRefObject<undefined>\n }>(child)\n ? cloneElement(child, { setItemFormPopup, itemFormPopup, clusterRef })\n : child,\n )}\n </MarkerClusterGroup>\n {geo && (\n <GeoJSON\n data={geo}\n onEachFeature={onEachFeature}\n eventHandlers={{\n click: (e) => {\n if (selectNewItemPosition) {\n e.layer.closePopup()\n setMapClicked({ position: e.latlng, setItemFormPopup })\n }\n },\n }}\n />\n )}\n <MapEventListener />\n <AddButton triggerAction={setSelectNewItemPosition} />\n {selectNewItemPosition != null && (\n <SelectPosition setSelectNewItemPosition={setSelectNewItemPosition} />\n )}\n </div>\n )\n}\n","import { LatLng } from 'leaflet'\nimport { MapContainer } from 'react-leaflet'\n\nimport { ContextWrapper } from '#components/AppShell/ContextWrapper'\n\nimport { UtopiaMapInner } from './UtopiaMapInner'\n\nimport type { UtopiaMapProps } from '#types/UtopiaMapProps'\nimport 'react-toastify/dist/ReactToastify.css'\n\nfunction UtopiaMap({\n height = '500px',\n width = '100%',\n center = [50.6, 9.5],\n zoom = 10,\n children,\n geo,\n showFilterControl = false,\n showGratitudeControl = false,\n showLayerControl = true,\n infoText,\n}: UtopiaMapProps) {\n return (\n <ContextWrapper>\n <MapContainer\n style={{ height, width }}\n center={new LatLng(center[0], center[1])}\n zoom={zoom}\n zoomControl={false}\n maxZoom={19}\n >\n <UtopiaMapInner\n geo={geo}\n showFilterControl={showFilterControl}\n showGratitudeControl={showGratitudeControl}\n showLayerControl={showLayerControl}\n infoText={infoText}\n >\n {children}\n </UtopiaMapInner>\n </MapContainer>\n </ContextWrapper>\n )\n}\n\nexport { UtopiaMap }\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nconst goldenRatioConjugate = 0.618033988749895\n\nexport const randomColor = () => {\n return hsvToHex((Math.random() + goldenRatioConjugate) % 1, 0.8, 0.7)\n}\n\nfunction hsvToHex(h: number, s: number, v: number) {\n let r, g, b\n const i = Math.floor(h * 6)\n const f = h * 6 - i\n const p = v * (1 - s)\n const q = v * (1 - f * s)\n const t = v * (1 - (1 - f) * s)\n\n switch (i % 6) {\n case 0:\n r = v\n g = t\n b = p\n break\n case 1:\n r = q\n g = v\n b = p\n break\n case 2:\n r = p\n g = v\n b = t\n break\n case 3:\n r = p\n g = q\n b = v\n break\n case 4:\n r = t\n g = p\n b = v\n break\n case 5:\n r = v\n g = p\n b = q\n break\n }\n\n return rgbToHex(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n\nconst rgbToHex = (r, g, b) =>\n '#' +\n [r, g, b]\n .map((x) => {\n const hex = x.toString(16)\n return hex.length === 1 ? `0${hex}` : hex\n })\n .join('')\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/consistent-indexed-object-style */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useTags } from '#components/Map/hooks/useTags'\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 required?: boolean\n updateFormValue?: (value: string) => void\n}\n\ninterface KeyValue {\n [key: string]: string\n}\n\nexport function TextAreaInput({\n labelTitle,\n dataField,\n labelStyle,\n containerStyle,\n inputStyle,\n defaultValue,\n placeholder,\n required = true,\n updateFormValue,\n}: TextAreaProps) {\n const ref = useRef<HTMLTextAreaElement>(null)\n const [inputValue, setInputValue] = useState<string>(defaultValue)\n\n const tags = useTags()\n\n const values: KeyValue[] = []\n\n tags.forEach((tag) => {\n values.push({ key: tag.name, value: tag.name, color: tag.color })\n })\n\n useEffect(() => {\n setInputValue(defaultValue)\n }, [defaultValue])\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n if (updateFormValue) {\n updateFormValue(newValue)\n }\n }\n\n return (\n <div className={`tw-form-control tw-w-full ${containerStyle || ''}`}>\n {labelTitle ? (\n <label className='tw-label'>\n <span className={`tw-label-text tw-text-base-content ${labelStyle}`}>{labelTitle}</span>\n </label>\n ) : null}\n <textarea\n required={required}\n ref={ref}\n value={inputValue}\n name={dataField}\n className={`tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ${inputStyle || ''}`}\n placeholder={placeholder || ''}\n onChange={handleChange}\n ></textarea>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport { useEffect, useState } from 'react'\n\ntype InputTextProps = {\n labelTitle?: string\n labelStyle?: string\n type?: string\n dataField?: string\n containerStyle?: string\n inputStyle?: string\n defaultValue?: string\n placeholder?: string\n autocomplete?: string\n pattern?: string\n required?: boolean\n updateFormValue?: (value: string) => void\n}\n\nexport function TextInput({\n labelTitle,\n labelStyle,\n type,\n dataField,\n containerStyle,\n inputStyle,\n defaultValue,\n placeholder,\n autocomplete,\n pattern,\n required = true,\n updateFormValue,\n}: InputTextProps) {\n const [inputValue, setInputValue] = useState<string>(defaultValue || '')\n\n useEffect(() => {\n setInputValue(defaultValue || '')\n }, [defaultValue])\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n if (updateFormValue) {\n updateFormValue(newValue)\n }\n }\n\n return (\n <div className={`tw-form-control ${containerStyle}`}>\n {labelTitle ? (\n <label className='tw-label'>\n <span className={`tw-label-text tw-text-base-content ${labelStyle}`}>{labelTitle}</span>\n </label>\n ) : null}\n <input\n required={required}\n pattern={pattern}\n type={type || 'text'}\n name={dataField}\n value={inputValue}\n placeholder={placeholder || ''}\n autoComplete={autocomplete}\n onChange={handleChange}\n className={`tw-input tw-input-bordered tw-w-full ${inputStyle || ''}`}\n />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { Children, cloneElement, isValidElement, useEffect, useRef, useState } from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth/useAuth'\nimport { TextAreaInput } from '#components/Input/TextAreaInput'\nimport { TextInput } from '#components/Input/TextInput'\nimport { useResetFilterTags } from '#components/Map/hooks/useFilter'\nimport { useAddItem, useItems, useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useAddTag, useTags } from '#components/Map/hooks/useTags'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\nimport type { Item } from '#types/Item'\nimport type { ItemFormPopupProps } from '#types/ItemFormPopupProps'\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n const [spinner, setSpinner] = useState(false)\n\n const [popupTitle, setPopupTitle] = useState<string>('')\n\n const formRef = useRef<HTMLFormElement>(null)\n\n const map = useMap()\n\n const addItem = useAddItem()\n const updateItem = useUpdateItem()\n const items = useItems()\n\n const removeItem = useRemoveItem()\n\n const tags = useTags()\n const addTag = useAddTag()\n\n const resetFilterTags = useResetFilterTags()\n\n const { user } = useAuth()\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 = { type: 'Point', coordinates: [props.position.lng, props.position.lat] }\n evt.preventDefault()\n setSpinner(true)\n\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\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 // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n // eslint-disable-next-line no-console\n console.log(props.item)\n\n updateItem({ ...props.item, ...formItem })\n toast.success('Item updated')\n }\n setSpinner(false)\n map.closePopup()\n } else {\n const item = items.find(\n (i) =>\n i.user_created?.id === user?.id && i.layer?.itemType.name === props.layer.itemType.name,\n )\n\n const uuid = crypto.randomUUID()\n let success = false\n try {\n props.layer.onlyOnePerOwner &&\n item &&\n (await props.layer.api?.updateItem!({ ...formItem, id: item.id }))\n ;(!props.layer.onlyOnePerOwner || !item) &&\n (await props.layer.api?.createItem!({\n ...formItem,\n id: uuid,\n name: formItem.name ? formItem.name : user?.first_name,\n }))\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n if (props.layer.onlyOnePerOwner && item) updateItem({ ...item, ...formItem })\n if (!props.layer.onlyOnePerOwner || !item) {\n addItem({\n ...formItem,\n name: (formItem.name ? formItem.name : user?.first_name) ?? '',\n user_created: user ?? undefined,\n type: props.layer.itemType,\n id: uuid,\n layer: props.layer,\n public_edit: !user,\n })\n }\n toast.success('New item created')\n resetFilterTags()\n }\n setSpinner(false)\n map.closePopup()\n }\n props.setItemFormPopup!(null)\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\n minWidth={275}\n maxWidth={275}\n autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100)\n },\n }}\n position={props.position}\n >\n <form ref={formRef} onReset={resetPopup} autoComplete='off' onSubmit={(e) => handleSubmit(e)}>\n {props.item ? (\n <div className='tw-h-3'></div>\n ) : (\n <div className='tw-flex tw-justify-center'>\n <b className='tw-text-xl tw-text-center tw-font-bold'>{props.layer.menuText}</b>\n </div>\n )}\n\n {props.children ? (\n Children.toArray(props.children).map((child) =>\n isValidElement<{\n item: Item\n test: string\n setPopupTitle: React.Dispatch<React.SetStateAction<string>>\n }>(child)\n ? cloneElement(child, {\n item: props.item,\n key: props.position.toString(),\n setPopupTitle,\n })\n : '',\n )\n ) : (\n <>\n <TextInput\n type='text'\n placeholder='Name'\n dataField='name'\n defaultValue={props.item ? props.item.name : ''}\n inputStyle=''\n />\n <TextAreaInput\n key={props.position.toString()}\n placeholder='Text'\n dataField='text'\n defaultValue={props.item ? props.item.text : ''}\n inputStyle='tw-h-40 tw-mt-5'\n />\n </>\n )}\n\n <div className='tw-flex tw-justify-center'>\n <button\n className={\n spinner\n ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'\n : 'tw-btn tw-mt-5 tw-place-self-center'\n }\n type='submit'\n >\n {spinner ? <span className='tw-loading tw-loading-spinner'></span> : 'Save'}\n </button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n","// in miliseconds\nconst units = [\n { label: 'year', seconds: 31536000 },\n { label: 'month', seconds: 2592000 },\n { label: 'week', seconds: 604800 },\n { label: 'day', seconds: 86400 },\n { label: 'hour', seconds: 3600 },\n { label: 'minute', seconds: 60 },\n { label: 'second', seconds: 1 },\n]\n\nexport const timeAgo = (date: string | number | Date) => {\n const time = Math.floor((new Date().valueOf() - new Date(date).valueOf()) / 1000)\n const { interval, unit } = calculateTimeDifference(time)\n const suffix = interval === 1 ? '' : 's'\n return `${interval} ${unit}${suffix} ago`\n}\n\nconst calculateTimeDifference = (time: number) => {\n for (const { label, seconds } of units) {\n const interval = Math.floor(time / seconds)\n if (interval >= 1) {\n return {\n interval,\n unit: label,\n }\n }\n }\n return {\n interval: 0,\n unit: '',\n }\n}\n","import { useEffect, useRef } from 'react'\n\nimport type { MouseEvent } from 'react'\n\nconst isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {\n const r = element.getBoundingClientRect()\n\n return e.clientX > r.left && e.clientX < r.right && e.clientY > r.top && e.clientY < r.bottom\n}\n\ninterface Props {\n title: string\n isOpened: boolean\n onClose: () => void\n children: React.ReactNode\n showCloseButton?: boolean\n closeOnClickOutside?: boolean\n className?: string\n}\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\n showCloseButton = true,\n closeOnClickOutside = true,\n className,\n}: Props) => {\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 if (isOpened) {\n return (\n <dialog\n className={`${className ?? ''} tw-card tw-shadow-xl tw-absolute tw-right-0 tw-top-0 tw-bottom-0 tw-left-0 tw-m-auto tw-transition-opacity tw-duration-300 tw-p-4 tw-max-w-xl tw-bg-base-100`}\n ref={ref}\n // eslint-disable-next-line react/no-unknown-property\n onCancel={onClose}\n onClick={(e) =>\n ref.current && !isClickInsideRectangle(e, ref.current) && closeOnClickOutside && onClose()\n }\n >\n <div className='tw-card-body tw-p-2'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>{title}</h2>\n\n {children}\n {showCloseButton && (\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2'\n onClick={onClose}\n >\n ✕\n </button>\n )}\n </div>\n </dialog>\n )\n } else return <></>\n}\n\nexport default DialogModal\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useState, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport DialogModal from '#components/Templates/DialogModal'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\n\nexport function HeaderView({\n item,\n api,\n editCallback,\n deleteCallback,\n setPositionCallback,\n itemNameField,\n itemSubnameField,\n itemAvatarField,\n loading,\n hideMenu = false,\n big = false,\n truncateSubname = true,\n hideSubname = false,\n showAddress = false,\n}: {\n item: Item\n api?: ItemsApi<any>\n editCallback?: any\n deleteCallback?: any\n setPositionCallback?: any\n itemNameField?: string\n itemAvatarField?: string\n itemSubnameField?: string\n loading?: boolean\n hideMenu?: boolean\n big?: boolean\n hideSubname?: boolean\n truncateSubname?: boolean\n showAddress?: boolean\n}) {\n const [modalOpen, setModalOpen] = useState<boolean>(false)\n\n const hasUserPermission = useHasUserPermission()\n const navigate = useNavigate()\n const appState = useAppState()\n\n const [imageLoaded, setImageLoaded] = useState(false)\n\n useEffect(() => {\n setImageLoaded(false)\n }, [item])\n\n const avatar =\n itemAvatarField && getValue(item, itemAvatarField)\n ? appState.assetsApi.url +\n getValue(item, itemAvatarField) +\n `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`\n : item.layer?.itemAvatarField &&\n item &&\n getValue(item, item.layer?.itemAvatarField) &&\n appState.assetsApi.url +\n getValue(item, item.layer?.itemAvatarField) +\n `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`\n const title = itemNameField\n ? getValue(item, itemNameField)\n : item.layer?.itemNameField && item && getValue(item, item.layer.itemNameField)\n const subtitle = itemSubnameField\n ? getValue(item, itemSubnameField)\n : item.layer?.itemSubnameField && item && getValue(item, item.layer.itemSubnameField)\n\n const [address] = useState<string>('')\n\n const params = new URLSearchParams(window.location.search)\n\n const openDeleteModal = async (event: React.MouseEvent<HTMLElement>) => {\n setModalOpen(true)\n event.stopPropagation()\n }\n\n return (\n <>\n <div className='tw-flex tw-flex-row'>\n <div className={'tw-grow tw-max-w-[calc(100%-60px)] }'}>\n <div className='flex items-center'>\n {avatar && (\n <div className='tw-avatar'>\n <div\n className={`${\n big ? 'tw-w-20' : 'tw-w-10'\n } tw-inline tw-items-center tw-justify-center overflow-hidden`}\n >\n <img\n className={'tw-w-full tw-h-full tw-object-cover tw-rounded-full'}\n src={avatar}\n alt={item.name + ' logo'}\n onLoad={() => setImageLoaded(true)}\n onError={() => setImageLoaded(false)}\n style={{ display: imageLoaded ? 'block' : 'none' }}\n />\n {!imageLoaded && (\n <div className='tw-w-full tw-h-full tw-bg-gray-200 tw-rounded-full' />\n )}\n </div>\n </div>\n )}\n <div className={`${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`}>\n <div\n className={`${big ? 'xl:tw-text-3xl tw-text-2xl' : 'tw-text-xl'} tw-font-semibold tw-truncate`}\n title={title}\n >\n {title}\n </div>\n {showAddress && address && !hideSubname && (\n <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`}>\n {address}\n </div>\n )}\n {subtitle && !hideSubname && (\n <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`}>\n {subtitle}\n </div>\n )}\n </div>\n </div>\n </div>\n <div onClick={(e) => e.stopPropagation()} className={`${big ? 'tw-mt-5' : 'tw-mt-1'}`}>\n {(api?.deleteItem || item.layer?.api?.updateItem) &&\n (hasUserPermission(api?.collectionName!, 'delete', item) ||\n hasUserPermission(api?.collectionName!, 'update', item)) &&\n !hideMenu && (\n <div className='tw-dropdown tw-dropdown-bottom'>\n <label\n tabIndex={0}\n className='tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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\n tabIndex={0}\n className='tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000'\n >\n {api?.updateItem &&\n hasUserPermission(api.collectionName!, 'update', item) &&\n editCallback && (\n <li>\n <a\n className='!tw-text-base-content tw-cursor-pointer'\n onClick={(e) =>\n item.layer?.customEditLink\n ? navigate(\n `${item.layer.customEditLink}${item.layer.customEditParameter ? `/${getValue(item, item.layer.customEditParameter)}${params && '?' + params}` : ''} `,\n )\n : editCallback(e)\n }\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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 {api?.updateItem &&\n hasUserPermission(api.collectionName!, 'update', item) &&\n setPositionCallback && (\n <li>\n <a\n className='!tw-text-base-content tw-cursor-pointer'\n onClick={setPositionCallback}\n >\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n className='tw-w-5 tw-h-5'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'></path>\n </svg>\n </a>\n </li>\n )}\n {api?.deleteItem &&\n hasUserPermission(api.collectionName!, 'delete', item) &&\n deleteCallback && (\n <li>\n <a className='tw-cursor-pointer !tw-text-error' onClick={openDeleteModal}>\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-sm'></span>\n ) : (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path\n fillRule='evenodd'\n 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'\n clipRule='evenodd'\n />\n </svg>\n )}\n </a>\n </li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n <DialogModal\n isOpened={modalOpen}\n title='Are you sure?'\n showCloseButton={false}\n onClose={() => setModalOpen(false)}\n >\n <div onClick={(e) => e.stopPropagation()}>\n <span>\n Do you want to delete <b>{item.name}</b>?\n </span>\n <div className='tw-grid'>\n <div className='tw-flex tw-justify-between'>\n <label\n className='tw-btn tw-mt-4 tw-btn-error'\n onClick={(e) => {\n deleteCallback(e)\n setModalOpen(false)\n }}\n >\n Yes\n </label>\n <label className='tw-btn tw-mt-4' onClick={() => setModalOpen(false)}>\n No\n </label>\n </div>\n </div>\n </div>\n </DialogModal>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { LatLng } from 'leaflet'\nimport { Children, cloneElement, forwardRef, isValidElement, useState } from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useSetSelectPosition } from '#components/Map/hooks/useSelectPosition'\nimport { timeAgo } from '#utils/TimeAgo'\n\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\nimport { TextView } from './ItemPopupComponents/TextView'\n\nimport type { Item } from '#types/Item'\nimport type { ItemFormPopupProps } from '#types/ItemFormPopupProps'\n\nexport interface ItemViewPopupProps {\n item: Item\n children?: React.ReactNode\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\n// eslint-disable-next-line react/display-name\nexport const ItemViewPopup = forwardRef((props: ItemViewPopupProps, ref: any) => {\n const map = useMap()\n const [loading, setLoading] = useState<boolean>(false)\n const removeItem = useRemoveItem()\n const updadateItem = useUpdateItem()\n const navigate = useNavigate()\n const setSelectPosition = useSetSelectPosition()\n\n const [infoExpanded, setInfoExpanded] = useState<boolean>(false)\n\n const handleEdit = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n map.closePopup()\n props.setItemFormPopup &&\n props.setItemFormPopup({\n position: new LatLng(\n props.item.position?.coordinates[1]!,\n props.item.position?.coordinates[0]!,\n ),\n layer: props.item.layer!,\n item: props.item,\n setItemFormPopup: props.setItemFormPopup,\n })\n }\n\n const handleDelete = async (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n setLoading(true)\n let success = false\n try {\n !props.item.layer?.onlyOnePerOwner &&\n (await props.item.layer?.api?.deleteItem!(props.item.id))\n props.item.layer?.onlyOnePerOwner &&\n (await props.item.layer.api?.updateItem!({ id: props.item.id, position: null }))\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n toast.error(error.toString())\n }\n if (success) {\n !props.item.layer?.onlyOnePerOwner && removeItem(props.item)\n props.item.layer?.onlyOnePerOwner && updadateItem({ ...props.item, position: undefined })\n toast.success('Item deleted')\n }\n setLoading(false)\n map.closePopup()\n const params = new URLSearchParams(window.location.search)\n window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`)\n navigate('/')\n }\n\n return (\n <LeafletPopup ref={ref} maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}>\n <div className='tw-bg-base-100 tw-text-base-content'>\n <HeaderView\n api={props.item.layer?.api}\n item={props.item}\n editCallback={handleEdit}\n deleteCallback={handleDelete}\n setPositionCallback={() => {\n map.closePopup()\n setSelectPosition(props.item)\n navigate('/')\n }}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {props.children ? (\n Children.toArray(props.children).map((child) =>\n isValidElement<{ item: Item; test: string }>(child)\n ? cloneElement(child, { item: props.item })\n : '',\n )\n ) : (\n <TextView item={props.item} />\n )}\n </div>\n <div className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1'>\n {infoExpanded ? (\n <p\n className={'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500'}\n >{`${props.item.date_updated && props.item.date_updated !== props.item.date_created ? 'updated' : 'posted'} ${props.item && props.item.user_created && props.item.user_created.first_name ? `by ${props.item.user_created.first_name}` : ''} ${props.item.date_updated ? timeAgo(props.item.date_updated) : timeAgo(props.item.date_created!)}`}</p>\n ) : (\n <p\n className='!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500'\n onClick={() => setInfoExpanded(true)}\n >\n ⓘ\n </p>\n )}\n <div className='tw-grow'></div>\n {\n //* * <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\" className=\"tw-place-self-end tw-w-4 tw-h-4 tw-mb-1 tw-cursor-pointer\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\" /></svg> */\n }\n </div>\n </div>\n </LeafletPopup>\n )\n})\n","/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { Children, isValidElement, useEffect, useState } from 'react'\nimport { Marker, Tooltip } from 'react-leaflet'\n\nimport { encodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport MarkerIconFactory from '#utils/MarkerIconFactory'\nimport { randomColor } from '#utils/RandomColor'\n\nimport {\n useFilterTags,\n useIsGroupTypeVisible,\n useIsLayerVisible,\n useVisibleGroupType,\n} from './hooks/useFilter'\nimport { useAllItemsLoaded, useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'\nimport { useSelectPosition, useSetMarkerClicked } from './hooks/useSelectPosition'\nimport { useAddTag, useAllTagsLoaded, useGetItemTags, useTags } from './hooks/useTags'\nimport { ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\n\nimport type { Item } from '#types/Item'\nimport type { LayerProps } from '#types/LayerProps'\nimport type { Tag } from '#types/Tag'\nimport type { Popup } from 'leaflet'\n\nexport const Layer = ({\n data,\n children,\n name = 'places',\n menuIcon = 'MapPinIcon',\n menuText = 'add new place',\n menuColor = '#2E7D32',\n markerIcon = 'point',\n markerShape = 'circle',\n markerDefaultColor = '#777',\n markerDefaultColor2 = 'RGBA(35, 31, 32, 0.2)',\n api,\n itemType,\n itemNameField = 'name',\n itemSubnameField,\n itemTextField = 'text',\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemLatitudeField = 'position.coordinates.1',\n itemLongitudeField = 'position.coordinates.0',\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner = false,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed = true,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n}: LayerProps) => {\n const filterTags = useFilterTags()\n\n const items = useItems()\n const setItemsApi = useSetItemsApi()\n const setItemsData = useSetItemsData()\n const getItemTags = useGetItemTags()\n const addMarker = useAddMarker()\n const addPopup = useAddPopup()\n const leafletRefs = useLeafletRefs()\n\n const allTagsLoaded = useAllTagsLoaded()\n const allItemsLoaded = useAllItemsLoaded()\n\n const setMarkerClicked = useSetMarkerClicked()\n const selectPosition = useSelectPosition()\n\n const tags = useTags()\n const addTag = useAddTag()\n const [newTagsToAdd, setNewTagsToAdd] = useState<Tag[]>([])\n const [tagsReady, setTagsReady] = useState<boolean>(false)\n\n const isLayerVisible = useIsLayerVisible()\n\n const isGroupTypeVisible = useIsGroupTypeVisible()\n\n const visibleGroupTypes = useVisibleGroupType()\n\n useEffect(() => {\n data &&\n setItemsData({\n data,\n children,\n name,\n menuIcon,\n menuText,\n menuColor,\n markerIcon,\n markerShape,\n markerDefaultColor,\n markerDefaultColor2,\n api,\n itemType,\n itemNameField,\n itemSubnameField,\n itemTextField,\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n })\n api &&\n setItemsApi({\n data,\n children,\n name,\n menuIcon,\n menuText,\n menuColor,\n markerIcon,\n markerShape,\n markerDefaultColor,\n markerDefaultColor2,\n api,\n itemType,\n itemNameField,\n itemSubnameField,\n itemTextField,\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, api])\n\n useEffect(() => {\n if (tagsReady) {\n const processedTags = {}\n newTagsToAdd.map((newtag) => {\n if (!processedTags[newtag.name]) {\n processedTags[newtag.name] = true\n addTag(newtag)\n }\n return null\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tagsReady])\n\n return (\n <>\n {items &&\n items\n .filter((item) => item.layer?.name === name)\n .filter((item) =>\n filterTags.length === 0\n ? item\n : filterTags.some((tag) =>\n getItemTags(item).some(\n (filterTag) =>\n filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(),\n ),\n ),\n )\n .filter((item) => item.layer && isLayerVisible(item.layer))\n .filter(\n (item) =>\n (item.group_type && isGroupTypeVisible(item.group_type)) ||\n visibleGroupTypes.length === 0,\n )\n .map((item: Item) => {\n if (getValue(item, itemLongitudeField) && getValue(item, itemLatitudeField)) {\n // eslint-disable-next-line security/detect-object-injection\n if (getValue(item, itemTextField)) item[itemTextField] = getValue(item, itemTextField)\n // eslint-disable-next-line security/detect-object-injection\n else item[itemTextField] = ''\n\n if (item.tags) {\n // eslint-disable-next-line security/detect-object-injection\n item[itemTextField] = item[itemTextField] + '\\n\\n'\n item.tags.map((tag) => {\n // eslint-disable-next-line security/detect-object-injection\n if (!item[itemTextField].includes(`#${encodeTag(tag)}`)) {\n // eslint-disable-next-line security/detect-object-injection\n return (item[itemTextField] = item[itemTextField] + `#${encodeTag(tag)} `)\n }\n // eslint-disable-next-line security/detect-object-injection\n return item[itemTextField]\n })\n }\n\n if (allTagsLoaded && allItemsLoaded) {\n // eslint-disable-next-line security/detect-object-injection\n item[itemTextField].match(hashTagRegex)?.map((tag) => {\n if (\n !tags.find(\n (t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(),\n ) &&\n !newTagsToAdd.find(\n (t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(),\n )\n ) {\n const newTag = {\n id: crypto.randomUUID(),\n name: tag.slice(1),\n color: randomColor(),\n }\n setNewTagsToAdd((current) => [...current, newTag])\n }\n return null\n })\n !tagsReady && setTagsReady(true)\n }\n\n const itemTags = getItemTags(item)\n\n const latitude =\n itemLatitudeField && item ? getValue(item, itemLatitudeField) : undefined\n const longitude =\n itemLongitudeField && item ? getValue(item, itemLongitudeField) : undefined\n\n let color1 = markerDefaultColor\n let color2 = markerDefaultColor2\n if (itemColorField && getValue(item, itemColorField) != null)\n color1 = getValue(item, itemColorField)\n else if (itemTags && itemTags[0]) {\n color1 = itemTags[0].color\n }\n if (itemTags && itemTags[0] && itemColorField) color2 = itemTags[0].color\n else if (itemTags && itemTags[1]) {\n color2 = itemTags[1].color\n }\n return (\n <Marker\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].marker === r)) {\n r && addMarker(item, r)\n }\n }}\n eventHandlers={{\n click: () => {\n selectPosition && setMarkerClicked(item)\n },\n }}\n icon={MarkerIconFactory(\n markerShape,\n color1,\n color2,\n item.markerIcon ? item.markerIcon : markerIcon,\n )}\n key={item.id}\n position={[latitude, longitude]}\n >\n {children &&\n Children.toArray(children).some(\n (child) => isValidElement(child) && child.props.__TYPE === 'ItemView',\n ) ? (\n Children.toArray(children).map((child) =>\n isValidElement(child) && child.props.__TYPE === 'ItemView' ? (\n <ItemViewPopup\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup === r)) {\n r && addPopup(item, r as Popup)\n }\n }}\n key={item.id + item.name}\n item={item}\n setItemFormPopup={setItemFormPopup}\n >\n {child}\n </ItemViewPopup>\n ) : (\n ''\n ),\n )\n ) : (\n <>\n <ItemViewPopup\n key={item.id + item.name}\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup === r)) {\n r && addPopup(item, r as Popup)\n }\n }}\n item={item}\n setItemFormPopup={setItemFormPopup}\n />\n </>\n )}\n <Tooltip offset={[0, -38]} direction='top'>\n {item.name ? item.name : getValue(item, itemNameField)}\n </Tooltip>\n </Marker>\n )\n } else return null\n })}\n {\n // {children}}\n }\n {itemFormPopup &&\n itemFormPopup.layer.name === name &&\n (children &&\n Children.toArray(children).some(\n (child) => isValidElement(child) && child.props.__TYPE === 'ItemForm',\n ) ? (\n Children.toArray(children).map((child) =>\n isValidElement(child) && child.props.__TYPE === 'ItemForm' ? (\n <ItemFormPopup\n key={setItemFormPopup?.name}\n position={itemFormPopup.position}\n layer={itemFormPopup.layer}\n setItemFormPopup={setItemFormPopup}\n item={itemFormPopup.item}\n >\n {child}\n </ItemFormPopup>\n ) : (\n ''\n ),\n )\n ) : (\n <>\n <ItemFormPopup\n position={itemFormPopup.position}\n layer={itemFormPopup.layer}\n setItemFormPopup={setItemFormPopup}\n item={itemFormPopup.item}\n />\n </>\n ))}\n </>\n )\n}\n","import { useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { useAddFilterTag, useFilterTags, useResetFilterTags } from './hooks/useFilter'\nimport { useSetTagData, useSetTagApi, useTags } from './hooks/useTags'\n\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { Tag } from '#types/Tag'\n\nexport function Tags({ data, api }: { data?: Tag[]; api?: ItemsApi<Tag> }) {\n const setTagData = useSetTagData()\n const setTagApi = useSetTagApi()\n\n useEffect(() => {\n data && setTagData(data)\n api && setTagApi(api)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [api, data])\n\n const location = useLocation()\n const addFilterTag = useAddFilterTag()\n const resetFilterTags = useResetFilterTags()\n const tags = useTags()\n const filterTags = useFilterTags()\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTags = params.get('tags')\n const decodedTags = urlTags ? decodeURIComponent(urlTags) : ''\n const decodedTagsArray = decodedTags.split(';')\n if (\n decodedTagsArray.some(\n (ut) => !filterTags.find((ft) => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()),\n ) ||\n filterTags.some(\n (ft) =>\n !decodedTagsArray.find((ut) => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()),\n )\n ) {\n resetFilterTags()\n decodedTagsArray.map((urlTag) => {\n const tag = tags.find((t) => t.name.toLocaleLowerCase() === urlTag.toLocaleLowerCase())\n tag && addFilterTag(tag)\n return null\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location, tags])\n\n return <></>\n}\n","import { useEffect } from 'react'\n\nimport { useAuth } from '#components/Auth'\n\nimport { useSetPermissionData, useSetPermissionApi, useSetAdminRole } from './hooks/usePermissions'\n\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { Permission } from '#types/Permission'\n\nexport function Permissions({\n data,\n api,\n adminRole,\n}: {\n data?: Permission[]\n api?: ItemsApi<Permission>\n adminRole?: string\n}) {\n const setPermissionData = useSetPermissionData()\n const setPermissionApi = useSetPermissionApi()\n const setAdminRole = useSetAdminRole()\n const { user } = useAuth()\n\n useEffect(() => {\n adminRole && setAdminRole(adminRole)\n data && setPermissionData(data)\n api && setPermissionApi(api)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [api, data, adminRole, user])\n\n return <></>\n}\n","import { node, string } from 'prop-types'\nimport { Children, cloneElement, isValidElement, useEffect } from 'react'\n\nimport type { Item } from '#types/Item'\n\nexport const ItemForm = ({\n children,\n item,\n title,\n setPopupTitle,\n}: {\n children?: React.ReactNode\n item?: Item\n title?: string\n setPopupTitle?: React.Dispatch<React.SetStateAction<string>>\n}) => {\n useEffect(() => {\n setPopupTitle && title && setPopupTitle(title)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [title])\n\n return (\n <div>\n {children\n ? Children.toArray(children).map((child) =>\n isValidElement<{ item: Item; test: string }>(child)\n ? cloneElement(child, { item, test: 'test' })\n : '',\n )\n : ''}\n </div>\n )\n}\n\nItemForm.propTypes = {\n children: node,\n __TYPE: string,\n}\n\nItemForm.defaultProps = {\n __TYPE: 'ItemForm',\n}\n","import { node, string } from 'prop-types'\nimport { Children, cloneElement, isValidElement } from 'react'\n\nimport type { Item } from '#types/Item'\n\nexport const ItemView = ({ children, item }: { children?: React.ReactNode; item?: Item }) => {\n return (\n <div>\n {children\n ? Children.toArray(children).map((child) =>\n isValidElement<{ item: Item }>(child) ? cloneElement(child, { item }) : '',\n )\n : ''}\n </div>\n )\n}\n\nItemView.propTypes = {\n children: node,\n __TYPE: string,\n}\n\nItemView.defaultProps = {\n __TYPE: 'ItemView',\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport InformationCircleIcon from '@heroicons/react/24/outline/InformationCircleIcon'\nimport { useState } from 'react'\n\ntype SelectBoxProps = {\n labelTitle?: string\n labelStyle?: string\n type?: string\n containerStyle?: string\n defaultValue: string\n placeholder?: string\n\n updateFormValue: (value: string) => void\n\n options: { name: string; value: string }[]\n labelDescription?: string\n}\n\nexport function SelectBox(props: SelectBoxProps) {\n const {\n labelTitle,\n labelDescription,\n defaultValue,\n containerStyle,\n placeholder,\n labelStyle,\n options,\n updateFormValue,\n } = props\n\n const [value, setValue] = useState(defaultValue || '')\n\n const updateValue = (newValue: string) => {\n updateFormValue(newValue)\n setValue(newValue)\n }\n\n return (\n <div className={`tw-inline-block ${containerStyle}`}>\n {labelTitle ? (\n <label className={`tw-label ${labelStyle}`}>\n <div className='tw-label-text'>\n {labelTitle}\n {labelDescription && (\n <div className='tw-tooltip tw-tooltip-right' data-tip={labelDescription}>\n <InformationCircleIcon className='tw-w-4 tw-h-4' />\n </div>\n )}\n </div>\n </label>\n ) : (\n ''\n )}\n <select\n className='tw-select tw-select-bordered tw-w-full'\n value={value}\n onChange={(e) => updateValue(e.target.value)}\n >\n <option disabled value='PLACEHOLDER'>\n {placeholder}\n </option>\n {options.map((o, k) => {\n return (\n <option value={o.value || o.name} key={k}>\n {o.name}\n </option>\n )\n })}\n </select>\n </div>\n )\n}\n","import { TextAreaInput } from '#components/Input'\n\nimport type { Item } from '#types/Item'\n\nexport const PopupTextAreaInput = ({\n dataField,\n placeholder,\n style,\n item,\n}: {\n dataField: string\n placeholder: string\n style?: string\n item?: Item\n}) => {\n return (\n <TextAreaInput\n defaultValue={item?.text ? item.text : ''}\n dataField={dataField}\n placeholder={placeholder}\n inputStyle={style}\n ></TextAreaInput>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { TextInput } from '#components/Input'\n\nimport type { Item } from '#types/Item'\n\ninterface StartEndInputProps {\n item?: Item\n showLabels?: boolean\n updateStartValue?: (value: string) => void\n updateEndValue?: (value: string) => void\n}\n\nexport const PopupStartEndInput = ({\n item,\n showLabels = true,\n updateStartValue,\n updateEndValue,\n}: StartEndInputProps) => {\n return (\n <div className='tw-grid tw-grid-cols-2 tw-gap-2'>\n <TextInput\n type='date'\n placeholder='start'\n dataField='start'\n inputStyle='tw-text-sm tw-px-2'\n labelTitle={showLabels ? 'start' : ''}\n defaultValue={item && item.start ? item.start.substring(0, 10) : ''}\n autocomplete='one-time-code'\n updateFormValue={updateStartValue}\n ></TextInput>\n <TextInput\n type='date'\n placeholder='end'\n dataField='end'\n inputStyle='tw-text-sm tw-px-2'\n labelTitle={showLabels ? 'end' : ''}\n defaultValue={item && item.end ? item.end.substring(0, 10) : ''}\n autocomplete='one-time-code'\n updateFormValue={updateEndValue}\n ></TextInput>\n </div>\n )\n}\n","import { TextInput } from '#components/Input'\n\nimport type { Item } from '#types/Item'\n\nexport const PopupTextInput = ({\n dataField,\n placeholder,\n style,\n item,\n}: {\n dataField: string\n placeholder: string\n style?: string\n item?: Item\n}) => {\n return (\n <TextInput\n defaultValue={item?.name ? item.name : ''}\n dataField={dataField}\n placeholder={placeholder}\n inputStyle={style}\n type='text'\n containerStyle={'tw-mt-4'}\n ></TextInput>\n )\n}\n","import type { Item } from '#types/Item'\n\nexport const PopupCheckboxInput = ({\n dataField,\n label,\n item,\n}: {\n dataField: string\n label: string\n item?: Item\n}) => {\n return (\n <label htmlFor={item?.id} className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'>\n <input\n id={item?.id}\n type='checkbox'\n name={dataField}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={item?.public_edit}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{label}</span>\n </label>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport type { Item } from '#types/Item'\n\nexport const StartEndView = ({ item }: { item?: Item }) => {\n return (\n <div className='tw-flex tw-flex-row tw-mb-4 tw-mt-1'>\n <div className='tw-basis-2/5 tw-flex tw-flex-row'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-4 tw-w-4 tw-mr-2'\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n strokeWidth={2}\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n 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 />\n </svg>\n <time\n className='tw-align-middle'\n dateTime={item && item.start ? item.start.substring(0, 10) : ''}\n >\n {item && item.start ? new Date(item.start).toLocaleDateString() : ''}\n </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\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-4 tw-w-4 tw-mr-2'\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n strokeWidth={2}\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n 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 />\n </svg>\n <time\n className='tw-align-middle'\n dateTime={item && item.end ? item.end.substring(0, 10) : ''}\n >\n {item && item.end ? new Date(item.end).toLocaleDateString() : ''}\n </time>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { Link } from 'react-router-dom'\n\nimport { useGetItemTags } from '#components/Map/hooks/useTags'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\n\nexport const PopupButton = ({\n url,\n parameterField,\n text,\n colorField,\n item,\n}: {\n url: string\n parameterField?: string\n text: string\n colorField?: string\n item?: Item\n}) => {\n const params = new URLSearchParams(window.location.search)\n const getItemTags = useGetItemTags()\n\n return (\n <Link to={`${url}/${parameterField ? getValue(item, parameterField) : ''}?${params}`}>\n <button\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : item && getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n }}\n className='tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1'\n >\n {text}\n </button>\n </Link>\n )\n}\n","import QuestionMarkIcon from '@heroicons/react/24/outline/QuestionMarkCircleIcon'\nimport { useEffect, useRef, useState } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport type { Item } from '#types/Item'\n\nexport default function NavBar({ appName, userType }: { appName: string; userType: string }) {\n const { isAuthenticated, user, logout } = useAuth()\n\n const [userProfile, setUserProfile] = useState<Item>({} as Item)\n const items = useItems()\n\n useEffect(() => {\n const profile =\n user &&\n items.find((i) => i.user_created?.id === user.id && i.layer?.itemType.name === userType)\n profile\n ? setUserProfile(profile)\n : setUserProfile({ id: crypto.randomUUID(), name: user?.first_name ?? '', text: '' })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user, items])\n\n // useEffect(() => {}, [userProfile])\n\n const nameRef = useRef<HTMLHeadingElement>(null)\n const [nameWidth, setNameWidth] = useState<number>(0)\n const location = useLocation()\n const [showNav, setShowNav] = useState<boolean>(false)\n\n useEffect(() => {\n showNav && nameRef.current && setNameWidth(nameRef.current.scrollWidth)\n }, [nameRef, appName, showNav])\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setShowNav(true)\n }, [location])\n\n const onLogout = async () => {\n await toast.promise(logout(), {\n success: {\n render() {\n return 'Bye bye'\n },\n // other options\n icon: '👋',\n },\n error: {\n render({ data }) {\n return JSON.stringify(data)\n },\n },\n pending: 'logging out ..',\n })\n }\n\n if (showNav) {\n return (\n <>\n <div className='tw-navbar tw-bg-base-100 tw-z-[9998] tw-shadow-xl tw-relative'>\n <button\n 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 >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n className='tw-inline-block tw-w-5 tw-h-5 tw-stroke-current'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='2'\n d='M4 6h16M4 12h16M4 18h16'\n ></path>\n </svg>\n </button>\n <div className='tw-flex-1 tw-mr-2'>\n <div\n className={'tw-flex-1 tw-truncate tw-grid tw-grid-flow-col'}\n style={{ maxWidth: nameWidth + 60 }}\n >\n <Link\n className='tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate'\n to={'/'}\n >\n <h1 ref={nameRef} className='tw-truncate'>\n {appName}\n </h1>\n </Link>\n <button\n className='tw-btn tw-px-2 tw-btn-ghost'\n onClick={() => window.my_modal_3.showModal()}\n >\n <QuestionMarkIcon className='tw-h-5 tw-w-5' />\n </button>\n </div>\n </div>\n\n {isAuthenticated ? (\n <div className='tw-flex-none'>\n <Link\n to={`${userProfile.id && '/item/' + userProfile.id}`}\n className='tw-flex tw-items-center'\n >\n {userProfile.image && (\n <div className='tw-avatar'>\n <div className='tw-w-10 tw-rounded-full'>\n <img src={'https://api.utopia-lab.org/assets/' + userProfile.image} />\n </div>\n </div>\n )}\n <div className='tw-ml-2 tw-mr-2'>{userProfile.name || user?.first_name}</div>\n </Link>\n <div className='tw-dropdown tw-dropdown-end'>\n <label tabIndex={0} className='tw-btn tw-btn-ghost tw-btn-square'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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\n tabIndex={0}\n className='tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]'\n >\n <li>\n <Link to={`${userProfile.id && '/edit-item/' + userProfile.id}`}>Profile</Link>\n </li>\n <li>\n <Link to={'/user-settings'}>Settings</Link>\n </li>\n <li>\n <a\n onClick={() => {\n void onLogout()\n }}\n >\n Logout\n </a>\n </li>\n </ul>\n </div>\n </div>\n ) : (\n <div>\n <div className='tw-hidden md:tw-flex'>\n <Link to={'/login'}>\n <div className='tw-btn tw-btn-ghost tw-mr-2'>Login</div>\n </Link>\n\n <Link to={'/signup'}>\n <div className='tw-btn tw-btn-ghost tw-mr-2'>Sign Up</div>\n </Link>\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\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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\n tabIndex={1}\n className='tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]'\n >\n <li>\n <Link to={'/login'}>Login</Link>\n </li>\n <li>\n <Link to={'/signup'}>Sign Up</Link>\n </li>\n </ul>\n </div>\n </div>\n )}\n </div>\n </>\n )\n } else return <></>\n}\n","import { useEffect } from 'react'\n\nimport { useSetAppState } from './hooks/useAppState'\n\nimport type { AssetsApi } from '#types/AssetsApi'\n\nexport const SetAppState = ({\n assetsApi,\n userType,\n}: {\n assetsApi: AssetsApi\n userType: string\n}) => {\n const setAppState = useSetAppState()\n\n useEffect(() => {\n setAppState({ assetsApi })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [assetsApi])\n\n useEffect(() => {\n setAppState({ userType })\n }, [setAppState, userType])\n\n return <></>\n}\n","import { ContextWrapper } from './ContextWrapper'\nimport NavBar from './NavBar'\nimport { SetAppState } from './SetAppState'\n\nimport type { AssetsApi } from '#types/AssetsApi'\n\nexport function AppShell({\n appName,\n children,\n assetsApi,\n userType,\n}: {\n appName: string\n children: React.ReactNode\n assetsApi: AssetsApi\n userType: string\n}) {\n return (\n <ContextWrapper>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <SetAppState assetsApi={assetsApi} userType={userType} />\n <NavBar userType={userType} appName={appName}></NavBar>\n <div id='app-content' className='tw-flex-grow'>\n {children}\n </div>\n </div>\n </ContextWrapper>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon'\nimport { useEffect, useState } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\n\nfunction SidebarSubmenu({\n submenu,\n name,\n icon,\n}: {\n path: string\n icon: JSX.Element\n name: string\n submenu?: any | undefined\n}) {\n const location = useLocation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n /** Open Submenu list if path found in routes, this is for directly loading submenu routes first time */\n useEffect(() => {\n if (\n submenu.filter((m) => {\n return m.path === location.pathname\n })[0]\n )\n setIsExpanded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <div className='flex-col'>\n {/** Route header */}\n <div className='w-full' onClick={() => setIsExpanded(!isExpanded)}>\n {icon}{' '}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim='false'\n >\n {name}{' '}\n </span>\n <ChevronDownIcon\n className={\n 'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' +\n (isExpanded ? 'rotate-180' : '')\n }\n />\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 {submenu.map((m, k) => {\n return (\n <li key={k}>\n <Link to={m.path} className=''>\n {m.icon}\n <span className='' data-te-sidenav-slim='false'>\n {m.name}\n </span>\n {location.pathname === m.path ? (\n <span\n 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'\n ></span>\n ) : null}\n </Link>\n </li>\n )\n })}\n </ul>\n </div>\n </div>\n )\n}\n\nexport default SidebarSubmenu\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport ChevronRightIcon from '@heroicons/react/24/outline/ChevronRightIcon'\nimport { useRef, useState, useEffect } from 'react'\nimport { NavLink, useLocation } from 'react-router-dom'\nimport { Sidenav, initTE } from 'tw-elements'\n\nimport SidebarSubmenu from './SidebarSubmenu'\n\ntype route = {\n path: string\n icon: JSX.Element\n name: string\n submenu?: route\n blank?: boolean\n}\n\nexport function SideBar({ routes, bottomRoutes }: { routes: route[]; bottomRoutes?: route[] }) {\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 const toggleSlim = () => {\n setSlim(!slim)\n instance.toggleSlim()\n }\n\n useEffect(() => {\n if (!init.current) {\n initTE({ Sidenav })\n const instance = Sidenav.getInstance(document.getElementById('sidenav'))\n setInstance(instance)\n instance.toggleSlim()\n init.current = true\n }\n }, [])\n\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setEmbedded(false)\n }, [location])\n\n const params = new URLSearchParams(window.location.search)\n\n return (\n <nav\n id='sidenav'\n className={`group tw-fixed tw-left-0 ${embedded ? 'tw-mt-0 tw-h-[100dvh]' : 'tw-mt-16 tw-h-[calc(100dvh-64px)]'} tw-top-0 tw-z-[10035] tw--translate-x-full tw-overflow-hidden tw-shadow-xl 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='180'\n >\n <div\n className={`tw-flex tw-flex-col ${embedded ? 'tw-h-full' : 'tw-h-[calc(100dvh-64px)]'}`}\n >\n <ul\n className='tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0'\n data-te-sidenav-menu-ref\n >\n {routes.map((route, k) => {\n return (\n <li className='' key={k}>\n {route.submenu ? (\n <SidebarSubmenu {...route} />\n ) : (\n <NavLink\n end\n target={route.blank ? '_blank' : '_self'}\n to={`${route.path}${params && '?' + params}`}\n className={({ isActive }) =>\n `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`\n }\n onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle()\n }}\n >\n {route.icon}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\"\n data-te-sidenav-slim='false'\n >\n {route.name}\n </span>\n {(location.pathname.includes(route.path) && route.path.length > 1) ||\n location.pathname === route.path ? (\n <span\n 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'\n ></span>\n ) : null}\n </NavLink>\n )}\n </li>\n )\n })}\n </ul>\n\n <div\n id='slim-toggler'\n className='tw-w-full tw-bg-base-100 tw-flex-1 tw-grid tw-place-items-end'\n aria-haspopup='true'\n >\n <div className='tw-w-full'>\n <ul\n className='tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0'\n data-te-sidenav-menu-ref\n >\n {bottomRoutes?.map((route, k) => {\n return (\n <li className='' key={k}>\n {route.submenu ? (\n <SidebarSubmenu {...route} />\n ) : (\n <NavLink\n end\n target={route.blank ? '_blank' : '_self'}\n to={route.path}\n className={({ isActive }) =>\n `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`\n }\n onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle()\n }}\n >\n {route.icon}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\"\n data-te-sidenav-slim='false'\n >\n {route.name}\n </span>\n {(location.pathname.includes(route.path) && route.path.length > 1) ||\n location.pathname === route.path ? (\n <span\n 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'\n ></span>\n ) : null}\n </NavLink>\n )}\n </li>\n )\n })}\n </ul>\n\n <ChevronRightIcon\n className={\n 'tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all ' +\n (!slim ? 'tw-rotate-180' : '')\n }\n onClick={() => toggleSlim()}\n />\n </div>\n </div>\n </div>\n </nav>\n )\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\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-h-full tw-bg-base-200 tw-relative'>\n {children}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useEffect, useState } from 'react'\n\nimport { useItems } from '#components/Map/hooks/useItems'\n\nexport const Sitemap = ({ url }: { url: string }) => {\n const [sitemap, setSitemap] = useState('')\n\n const items = useItems()\n\n useEffect(() => {\n if (items.length) {\n const generateSitemap = () => {\n let sitemapXML = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n'\n sitemapXML += '<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\\n'\n\n items.forEach((item) => {\n sitemapXML += ' <url>\\n'\n sitemapXML += ` <loc>${url}/${item.slug}</loc>\\n`\n sitemapXML += ' </url>\\n'\n })\n\n sitemapXML += '</urlset>'\n return sitemapXML\n }\n\n setSitemap(generateSitemap())\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <div>\n <h1>Sitemap</h1>\n <textarea value={sitemap} readOnly rows={items.length + 4} cols={80} />\n </div>\n )\n}\n","function Subtitle({ styleClass, children }: { styleClass: string; children: React.ReactNode }) {\n return <div className={`tw-text-xl tw-font-semibold ${styleClass}`}>{children}</div>\n}\n\nexport default Subtitle\n","/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Subtitle from '#components/Typography/Subtitle'\n\ninterface TitleCardProps {\n title?: string\n hideTitle?: boolean\n children?: React.ReactNode\n topMargin?: string\n className?: string\n TopSideButtons?: any\n}\n\nexport function TitleCard({\n title,\n hideTitle,\n children,\n topMargin,\n TopSideButtons,\n className,\n}: TitleCardProps) {\n return (\n <div\n className={\n 'tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 ' +\n (className || '') +\n ' ' +\n (topMargin || 'tw-mt-6')\n }\n >\n {!hideTitle && (\n <>\n <Subtitle styleClass={TopSideButtons ? 'tw-inline-block' : ''}>\n {title}\n\n {/* Top side button, show only if present */}\n {TopSideButtons && (\n <div className='tw-inline-block tw-float-right'>{TopSideButtons}</div>\n )}\n </Subtitle>\n <div className='tw-divider tw-mt-2'></div>\n </>\n )}\n\n {/** Card Body */}\n <div className='tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100'>{children}</div>\n </div>\n )\n}\n","import { Link } from 'react-router-dom'\n\nimport { TitleCard } from './TitleCard'\n\nexport function CardPage({\n title,\n hideTitle,\n children,\n parents,\n}: {\n title: string\n hideTitle?: boolean\n children?: React.ReactNode\n parents?: { name: string; path: string }[]\n}) {\n return (\n <main className='tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-2 tw-px-6 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>\n <Link to={'/'}>Home</Link>\n </li>\n {parents?.map((b, i) => (\n <li key={i}>\n <Link to={b.path}>{b.name}</Link>\n </li>\n ))}\n <li>{title}</li>\n </ul>\n </div>\n <TitleCard hideTitle={hideTitle} title={title} topMargin='tw-my-2' className=' tw-mb-4'>\n {children}\n </TitleCard>\n </div>\n </main>\n )\n}\n","export const LUNAR_MONTH = 29.530588853\n\nexport const getJulianDate = (date: Date = new Date()): number => {\n const time: number = date.getTime()\n const tzoffset: number = date.getTimezoneOffset()\n return time / 86400000 - tzoffset / 1440 + 2440587.5\n}\n\nexport const normalize = (value: number): number => {\n value = value - Math.floor(value)\n if (value < 0) value += 1\n return value\n}\n\nexport const getLunarAgePercent = (date: Date = new Date()): number => {\n return normalize((getJulianDate(date) - 2451550.1) / LUNAR_MONTH)\n}\n\nexport const getLunarAge = (date: Date = new Date()): number => {\n const percent: number = getLunarAgePercent(date)\n return percent * LUNAR_MONTH\n}\n\nexport const getNextNewMoon = (): Date => {\n return new Date(getLastNewMoon().getTime() + LUNAR_MONTH * 86400000)\n}\n\nexport const getLastNewMoon = (date: Date = new Date()): Date => {\n const lunarAge: number = getLunarAge(date)\n return new Date(date.getTime() - lunarAge * 86400000)\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useEffect, useRef } from 'react'\n\nexport const CircleLayout = ({\n items,\n radius,\n fontSize,\n}: {\n items: any\n radius: number\n fontSize: any\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const container = containerRef.current\n const itemCount = items.length\n\n if (container) {\n for (let i = 0; i < itemCount; i++) {\n const startAngle = Math.PI / 2\n const angle = startAngle + (i / itemCount) * (2 * Math.PI)\n const x = radius * Math.cos(angle)\n const y = radius * Math.sin(angle)\n // eslint-disable-next-line security/detect-object-injection\n const child = container.children[i] as HTMLElement\n child.style.transform = `translate(${x}px, ${y}px)`\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <div\n className='tw-absolute tw-mx-auto tw-flex tw-justify-center tw-items-center tw-h-full tw-w-full'\n ref={containerRef}\n >\n {items.map((item: any) => (\n <div key={item} className='tw-absolute' style={{ fontSize }}>\n {item}\n </div>\n ))}\n </div>\n )\n}\n","import { ChevronLeftIcon, ChevronRightIcon } from '@heroicons/react/24/outline'\nimport { add, format, parse, startOfToday, sub } from 'date-fns'\nimport { useState } from 'react'\n\nimport { LUNAR_MONTH, getLastNewMoon, getNextNewMoon } from '#utils/Moon'\n\nimport { CircleLayout } from './CircleLayout'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nexport const MoonCalendar = () => {\n const today = startOfToday()\n\n const [currMonth, setCurrMonth] = useState(() => format(today, 'MMM-yyyy'))\n const firstDayOfMonth = parse(currMonth, 'MMM-yyyy', new Date())\n\n const getPrevMonth = (event: React.MouseEvent<SVGSVGElement>) => {\n event.preventDefault()\n const firstDayOfPrevMonth = add(firstDayOfMonth, { months: -1 })\n setCurrMonth(format(firstDayOfPrevMonth, 'MMM-yyyy'))\n }\n\n const getNextMonth = (event: React.MouseEvent<SVGSVGElement>) => {\n event.preventDefault()\n const firstDayOfNextMonth = add(firstDayOfMonth, { months: 1 })\n setCurrMonth(format(firstDayOfNextMonth, 'MMM-yyyy'))\n }\n\n return (\n <MapOverlayPage backdrop className='tw-h-96 tw-w-80'>\n <p className='tw-self-center tw-text-lg tw-font-bold'>Moon Cycle</p>\n <div className='tw-relative tw-h-full'>\n <CircleLayout\n items={['🌑', '🌒', '🌓', '🌔', '🌕', '🌖', '🌗', '🌘']}\n radius={80}\n fontSize={'3em'}\n />\n <CircleLayout\n items={[\n format(getLastNewMoon(), 'dd.MM hh:mm'),\n format(\n sub(getNextNewMoon(), { seconds: ((LUNAR_MONTH * 86400) / 4) * 3 }),\n 'dd.MM hh:mm',\n ),\n format(sub(getNextNewMoon(), { seconds: (LUNAR_MONTH * 86400) / 2 }), 'dd.MM hh:mm'),\n format(sub(getNextNewMoon(), { seconds: (LUNAR_MONTH * 86400) / 4 }), 'dd.MM hh:mm'),\n ]}\n radius={120}\n fontSize={'0.8em'}\n />\n </div>\n <div className='tw-flex tw-flex-row'>\n <ChevronLeftIcon className='tw-w-6 tw-h-6 tw-cursor-pointer' onClick={getPrevMonth} />\n <p className='tw-text-center tw-p-1 tw-h-full tw-grow'>\n from {format(getLastNewMoon(), 'dd.MM')} - to {format(getNextNewMoon(), 'dd.MM')}\n </p>\n\n <ChevronRightIcon className='tw-w-6 tw-h-6 tw-cursor-pointer' onClick={getNextMonth} />\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { useState } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport { MapOverlayPage } from './MapOverlayPage'\n\nexport const SelectUser = () => {\n const appState = useAppState()\n const items = useItems()\n const users = items.filter((i) => i.layer?.itemType.name === appState.userType)\n\n const [selectedUsers, setSelectedUsers] = useState<string[]>([])\n\n return (\n <MapOverlayPage backdrop className='tw-h-3/4 tw-w-80'>\n <div className='tw-text-center tw-text-xl tw-font-bold tw-mb-4'>Gratitude to ...</div>\n\n {/* Team Member list in table format loaded constant */}\n <div className='tw-overflow-x-auto tw-w-full fade'>\n <table className='tw-table tw-w-full'>\n <tbody>\n {users.map((u, k) => {\n return (\n <tr key={k}>\n <td>\n <input\n type='checkbox'\n onChange={() => setSelectedUsers((prev) => [...prev, u.id])}\n className='tw-checkbox tw-checkbox-sm'\n />\n </td>\n <td>\n <div className='tw-flex tw-items-center tw-space-x-3'>\n {u.image ? (\n <div className='tw-avatar'>\n <div className='tw-mask tw-mask-circle tw-w-8 tw-h-8'>\n <img\n src={appState.assetsApi.url + u.image + '?width=40&heigth=40'}\n alt='Avatar'\n />\n </div>\n </div>\n ) : (\n <div className='tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8'></div>\n )}\n <div>\n <div className='tw-font-bold'>{u.name}</div>\n </div>\n </div>\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'>\n <Link\n className='tw-place-self-center '\n to={'/attestation-form' + '?to=' + selectedUsers.map((u) => u, ',')}\n >\n <button className='tw-btn tw-px-8'>Next</button>\n </Link>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\n\nimport type { LayerProps } from '#types/LayerProps'\n\nexport function PlusButton({\n layer,\n triggerAction,\n color,\n collection = 'items',\n}: {\n layer?: LayerProps\n triggerAction: any\n color: string\n collection?: string\n}) {\n const hasUserPermission = useHasUserPermission()\n return (\n <>\n {hasUserPermission(collection, 'create', undefined, layer) && (\n <div className='tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-3000 tw-absolute tw-right-4 tw-bottom-4'>\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow'\n onClick={() => {\n triggerAction()\n }}\n style={{ backgroundColor: color, color: '#fff' }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='2'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </button>\n </div>\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { useState } from 'react'\n\nimport { timeAgo } from '#utils/TimeAgo'\n\nimport type { Item } from '#types/Item'\n\nexport const DateUserInfo = ({ item }: { item: Item }) => {\n const [infoExpanded, setInfoExpanded] = useState<boolean>(false)\n return (\n <div\n className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 -tw-mt-2'\n onClick={(e) => e.stopPropagation()}\n >\n {infoExpanded ? (\n <p\n className={'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500'}\n onClick={() => setInfoExpanded(false)}\n >{`${item.date_updated && item.date_updated !== item.date_created ? 'updated' : 'posted'} ${item && item.user_created && item.user_created.first_name ? `by ${item.user_created.first_name}` : ''} ${item.date_updated ? timeAgo(item.date_updated) : timeAgo(item.date_created!)}`}</p>\n ) : (\n <p\n className='!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500'\n onClick={() => setInfoExpanded(true)}\n >\n ⓘ\n </p>\n )}\n <div className='tw-grow '></div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useNavigate } from 'react-router-dom'\n\nimport { StartEndView, TextView } from '#components/Map'\nimport useWindowDimensions from '#components/Map/hooks/useWindowDimension'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { getValue } from '#utils/GetValue'\n\nimport { DateUserInfo } from './DateUserInfo'\n\nimport type { Item } from '#types/Item'\n\nexport const ItemCard = ({\n i,\n loading,\n url,\n parameterField,\n deleteCallback,\n}: {\n i: Item\n loading: boolean\n url: string\n parameterField: string\n deleteCallback: any\n}) => {\n const navigate = useNavigate()\n const windowDimensions = useWindowDimensions()\n\n return (\n <div\n className='tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-4 tw-mb-4 tw-h-fit'\n onClick={() => {\n const params = new URLSearchParams(window.location.search)\n if (windowDimensions.width < 786 && i.position)\n navigate('/' + getValue(i, parameterField) + `${params ? `?${params}` : ''}`)\n else navigate(url + getValue(i, parameterField) + `${params ? `?${params}` : ''}`)\n }}\n >\n <HeaderView\n loading={loading}\n item={i}\n api={i.layer?.api}\n itemAvatarField={i.layer?.itemAvatarField}\n itemNameField={i.layer?.itemNameField}\n itemSubnameField={i.layer?.itemSubnameField}\n editCallback={() => navigate('/edit-item/' + i.id)}\n deleteCallback={() => deleteCallback(i)}\n ></HeaderView>\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {i.layer?.itemType.show_start_end && <StartEndView item={i}></StartEndView>}\n {i.layer?.itemType.show_text && (\n <TextView truncate item={i} itemTextField={i.layer.itemTextField} />\n )}\n </div>\n <DateUserInfo item={i}></DateUserInfo>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth/useAuth'\nimport { TextInput, TextAreaInput } from '#components/Input'\nimport { PopupStartEndInput } from '#components/Map'\nimport { useFilterTags } from '#components/Map/hooks/useFilter'\nimport { useAddItem, useItems, useRemoveItem } from '#components/Map/hooks/useItems'\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useAddTag, useGetItemTags, useTags } from '#components/Map/hooks/useTags'\nimport { Control } from '#components/Map/Subcomponents/Controls/Control'\nimport { SearchControl } from '#components/Map/Subcomponents/Controls/SearchControl'\nimport { TagsControl } from '#components/Map/Subcomponents/Controls/TagsControl'\nimport { PlusButton } from '#components/Profile/Subcomponents/PlusButton'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\nimport { ItemCard } from './ItemCard'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nimport type { Item } from '#types/Item'\n\nexport const OverlayItemsIndexPage = ({\n url,\n layerName,\n parameterField,\n plusButton = true,\n}: {\n layerName: string\n url: string\n parameterField: string\n plusButton?: boolean\n}) => {\n const [loading, setLoading] = useState<boolean>(false)\n const [addItemPopupType, setAddItemPopupType] = useState<string>('')\n\n const tabRef = useRef<HTMLFormElement>(null)\n\n function scroll() {\n tabRef.current?.scrollIntoView()\n }\n\n useEffect(() => {\n scroll()\n }, [addItemPopupType])\n\n useEffect(() => {\n setAddItemPopupType('')\n }, [layerName])\n\n const tags = useTags()\n const addTag = useAddTag()\n const { user } = useAuth()\n const items = useItems()\n const addItem = useAddItem()\n const removeItem = useRemoveItem()\n const layers = useLayers()\n\n const filterTags = useFilterTags()\n const getItemTags = useGetItemTags()\n\n const layer = layers.find((l) => l.name === layerName)\n\n const submitNewItem = async (evt: any) => {\n evt.preventDefault()\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 setLoading(true)\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n const uuid = crypto.randomUUID()\n let success = false\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n toast.success('New item created')\n }\n addItem({ ...formItem, user_created: user ?? undefined, id: uuid, layer, public_edit: !user })\n setLoading(false)\n setAddItemPopupType('')\n }\n\n const deleteItem = async (item) => {\n setLoading(true)\n let success = false\n try {\n await layer?.api?.deleteItem!(item.id)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n toast.success('Item deleted')\n }\n removeItem(item)\n setLoading(false)\n }\n\n return (\n <>\n <MapOverlayPage className='tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4'>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <div className='tw-flex-none'>\n <Control position='topLeft' zIndex='1000' absolute={false}>\n <SearchControl />\n <TagsControl />\n </Control>\n </div>\n <div className='tw-overflow-scroll fade tw-flex-1'>\n <div className='tw-columns-1 md:tw-columns-2 lg:tw-columns-3 2xl:tw-columns-4 tw-gap-6 tw-pt-4'>\n {items\n .filter((i) => i.layer?.name === layerName)\n .filter((item) =>\n filterTags.length === 0\n ? item\n : filterTags.some((tag) =>\n getItemTags(item).some(\n (filterTag) =>\n filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(),\n ),\n ),\n )\n .sort((a, b) => {\n // Convert date_created to milliseconds, handle undefined by converting to lowest possible date (0 milliseconds)\n const dateA = a.date_updated\n ? new Date(a.date_updated).getTime()\n : a.date_created\n ? new Date(a.date_created).getTime()\n : 0\n const dateB = b.date_updated\n ? new Date(b.date_updated).getTime()\n : b.date_created\n ? new Date(b.date_created).getTime()\n : 0\n return dateB - dateA // Subtracts milliseconds which are numbers\n })\n .map((i, k) => (\n <div key={k} className='tw-break-inside-avoid tw-mb-6'>\n <ItemCard\n i={i}\n loading={loading}\n url={url}\n parameterField={parameterField}\n deleteCallback={() => deleteItem(i)}\n />\n </div>\n ))}\n {addItemPopupType === 'place' && (\n <form ref={tabRef} autoComplete='off' onSubmit={(e) => submitNewItem(e)}>\n <div className='tw-cursor-pointer tw-break-inside-avoid tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-6 tw-mb-10'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => setAddItemPopupType('')}\n >\n <p className='tw-text-center'>✕</p>\n </label>\n <TextInput\n type='text'\n placeholder='Name'\n dataField='name'\n defaultValue={''}\n inputStyle=''\n />\n {layer?.itemType.show_start_end_input && <PopupStartEndInput />}\n <TextAreaInput\n placeholder='Text'\n dataField='text'\n defaultValue={''}\n inputStyle='tw-h-40 tw-mt-5'\n />\n <div className='tw-flex tw-justify-center'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'\n : 'tw-btn tw-mt-5 tw-place-self-center'\n }\n type='submit'\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Save'}\n </button>\n </div>\n </div>\n </form>\n )}\n </div>\n </div>\n </div>\n </MapOverlayPage>\n\n {plusButton && (\n <PlusButton\n layer={layer}\n triggerAction={() => {\n setAddItemPopupType('place')\n scroll()\n }}\n color={'#777'}\n collection='items'\n />\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useState } from 'react'\n\ninterface Props {\n selectedEmoji: string\n selectedColor: string\n selectedShape: string\n setSelectedEmoji: (emoji: string) => void\n setSelectedColor: (color: string) => void\n setSelectedShape: (shape: string) => void\n}\n\nexport const EmojiPicker = ({\n selectedEmoji,\n selectedColor,\n selectedShape,\n setSelectedEmoji,\n setSelectedColor,\n setSelectedShape,\n}: Props) => {\n const [isOpen, setIsOpen] = useState(false)\n\n const emojis = [\n '❤️',\n '🙏',\n '👍',\n '🌻',\n '✨',\n '☀️',\n '🔥',\n '🪵',\n '💧',\n '🎶',\n '🎨',\n '🍄',\n '📝',\n '✉️',\n '🧩',\n '💡',\n '🎓',\n '💬',\n '🛠',\n '💻',\n '🕹',\n '🖨',\n '🚐',\n '🛒',\n '⚽️',\n '🧵',\n '👀',\n '🌱',\n '🏕',\n '💪',\n '🎁',\n '🏹',\n '🥕',\n '🥇',\n '🥈',\n '🥉',\n ]\n const shapes = ['squircle', 'circle', 'hexagon-2']\n\n const colors = [\n '#FF99C8',\n '#fff0d6',\n '#FCF6BD',\n '#D0F4DE',\n '#A9DEF9',\n '#E4C1F9',\n '#de324c',\n '#f4895f',\n '#f8e16f',\n '#95cf92',\n '#369acc',\n '#9656a2',\n ]\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen)\n }\n\n const selectEmoji = (emoji: string) => {\n setSelectedEmoji(emoji)\n setIsOpen(false)\n }\n\n const selectShape = (shape: string) => {\n setSelectedShape(shape)\n setIsOpen(false)\n }\n\n const selectColor = (color: string) => {\n setSelectedColor(color)\n setIsOpen(false)\n }\n\n return (\n <>\n <div\n onClick={toggleDropdown}\n className={`tw-cursor-pointer ${selectedEmoji === 'select badge' ? 'tw-text-sm !tw-p-9 tw-text-center ' : 'tw-text-6xl'} tw-mask tw-mask-${selectedShape} tw-p-6 tw-bg-[${selectedColor}]`}\n >\n {selectedEmoji}\n </div>\n\n {isOpen && (\n <div className='tw-absolute tw-z-3000 tw-top-0 tw-left-1/2 tw-transform tw--translate-x-1/2 tw-mt-12 tw-bg-base-100 tw-rounded-2xl tw-shadow-lg tw-p-2 tw-w-full'>\n <div className='tw-grid tw-grid-cols-6 tw-gap-2 tw-pb-2'>\n {emojis.map((emoji) => (\n <button\n key={emoji}\n onClick={() => selectEmoji(emoji)}\n className={`tw-cursor-pointer tw-text-2xl tw-p-2 hover:tw-bg-base-200 tw-rounded-md ${emoji === selectedEmoji && 'tw-bg-base-300'}`}\n >\n {emoji}\n </button>\n ))}\n </div>\n <hr />\n <div className='tw-grid tw-grid-cols-3 tw-gap-2 tw-py-2'>\n {shapes.map((shape) => (\n <div\n key={shape}\n className={`tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 ${shape === selectedShape && 'tw-bg-base-300'}`}\n onClick={() => selectShape(shape)}\n >\n <div className={`tw-h-12 tw-mask tw-mask-${shape} tw-bg-neutral-content`}></div>\n </div>\n ))}\n </div>\n <hr />\n <div className='tw-grid tw-grid-cols-6 tw-gap-2 tw-py-2 tw-px-6'>\n {colors.map((color) => (\n <div\n key={color}\n className={`tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 tw-flex tw-justify-center tw-items-center ${color === selectedColor && 'tw-bg-base-300'}`}\n onClick={() => selectColor(color)}\n >\n <div className={`tw-h-8 tw-w-8 tw-rounded-full tw-bg-[${color}]`}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n </>\n )\n}\n","import { useRef, useState, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport { EmojiPicker } from './EmojiPicker'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\n\nexport const AttestationForm = ({ api }: { api?: ItemsApi<unknown> }) => {\n const items = useItems()\n const appState = useAppState()\n const [users, setUsers] = useState<Item[]>()\n const navigate = useNavigate()\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const toUserIds = params.get('to')\n setUsers(items.filter((i) => toUserIds?.includes(i.id)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, location])\n\n const [inputValue, setInputValue] = useState('')\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.style.width = 'auto'\n inputRef.current.style.width = `${inputRef.current.scrollWidth + 20}px`\n }\n }, [inputValue])\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value)\n }\n\n const sendAttestation = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const to: any[] = []\n users?.map((u) => to.push({ directus_users_id: u.user_created?.id }))\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n api?.createItem &&\n toast\n .promise(\n api.createItem({\n text: inputValue,\n emoji: selectedEmoji,\n color: selectedColor,\n shape: selectedShape,\n to,\n }),\n {\n pending: 'creating attestation ...',\n success: 'Attestation created',\n error: {\n render({ data }) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n return `${data}`\n },\n },\n },\n )\n .then(() =>\n navigate(\n '/item/' +\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n items.find(\n (i) =>\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n i.user_created?.id === to[0].directus_users_id &&\n i.layer?.itemType.name === 'player',\n )?.id +\n '?tab=2',\n ),\n )\n }\n\n const [selectedEmoji, setSelectedEmoji] = useState('select badge')\n const [selectedShape, setSelectedShape] = useState('circle')\n const [selectedColor, setSelectedColor] = useState('#fff0d6')\n\n return (\n <MapOverlayPage backdrop className='tw-h-fit tw-min-h-56 tw-w-96'>\n <div className='tw-text-center tw-text-xl tw-font-bold'>Gratitude</div>\n <div className='tw-text-center tw-text-base tw-text-gray-400'>to</div>\n <div className='tw-flex tw-flex-row tw-justify-center tw-items-center tw-flex-wrap'>\n {users?.map(\n (u, k) => (\n <div key={k} className='tw-flex tw-items-center tw-space-x-3 tw-mx-2 tw-my-1'>\n {u.image ? (\n <div className='tw-avatar'>\n <div className='tw-mask tw-mask-circle tw-w-8 tw-h-8'>\n <img\n src={appState.assetsApi.url + u.image + '?width=40&heigth=40'}\n alt='Avatar'\n />\n </div>\n </div>\n ) : (\n <div className='tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8'></div>\n )}\n <div>\n <div className='tw-font-bold'>{u.name}</div>\n </div>\n </div>\n ),\n ', ',\n )}\n </div>\n\n <div className='tw-w-full'>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <div className=' tw-flex tw-justify-center tw-items-center tw-w-28 tw-h-28 tw-m-4'>\n <EmojiPicker\n selectedEmoji={selectedEmoji}\n selectedColor={selectedColor}\n selectedShape={selectedShape}\n setSelectedEmoji={setSelectedEmoji}\n setSelectedColor={setSelectedColor}\n setSelectedShape={setSelectedShape}\n />\n </div>\n </div>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <input\n ref={inputRef}\n value={inputValue}\n onChange={handleChange}\n type='text'\n placeholder='... and say some words'\n className='tw-input tw-min-w-0 tw-w-fit tw-resize-none tw-overflow-hidden tw-text-center '\n />\n </div>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'>\n <button onClick={sendAttestation} className='tw-btn tw-place-self-center tw-px-8'>\n Next\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n\nimport { decodeTag } from '#utils/FormatTags'\n\nimport type { Tag } from '#types/Tag'\n\nexport const TagView = ({\n tag,\n heighlight,\n onClick,\n count,\n}: {\n tag: Tag\n heighlight?: boolean\n onClick?: (/* e */) => void\n count?: number\n}) => {\n return (\n // Use your imagination to render suggestions.\n\n <div\n key={tag.name}\n onClick={onClick}\n className={`tw-flex tw-items-center tw-flex-row tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4 tw-cursor-pointer tw-w-fit ${heighlight && 'tw-border-4 tw-border-base-200 tw-shadow-lg'}`}\n style={{ backgroundColor: tag.color ? tag.color : '#666' }}\n >\n <b>{decodeTag(tag.name)}</b>\n {count && <span className='tw-ml-2'>({count})</span>}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { getValue } from '#utils/GetValue'\n\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { TagView } from './TagView'\n\nimport type { Tag } from '#types/Tag'\n\nfunction groupAndCount(arr) {\n const grouped = arr.reduce((acc, obj) => {\n const found = acc.find((item) => JSON.stringify(item.object) === JSON.stringify(obj))\n\n if (found) {\n found.count += 1\n } else {\n acc.push({ object: obj, count: 1 })\n }\n\n return acc\n }, [])\n\n return grouped.sort((a, b) => b.count - a.count)\n}\n\nexport const MarketView = () => {\n const [offers, setOffers] = useState<Tag[]>([])\n const [needs, setNeeds] = useState<Tag[]>([])\n const navigate = useNavigate()\n\n const items = useItems()\n const tags = useTags()\n\n useEffect(() => {\n setOffers([])\n setNeeds([])\n items.map((i) => {\n i.layer?.itemOffersField &&\n getValue(i, i.layer.itemOffersField)?.map((o) => {\n const tag = tags.find((t) => t.id === o.tags_id)\n tag && setOffers((current) => [...current, tag])\n return null\n })\n i.layer?.itemNeedsField &&\n getValue(i, i.layer.itemNeedsField)?.map((n) => {\n const tag = tags.find((t) => t.id === n.tags_id)\n tag && setNeeds((current) => [...current, tag])\n return null\n })\n return null\n })\n // eslint-disable-next-line no-console\n console.log(offers)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <MapOverlayPage className='tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4'>\n <div className='tw-grid tw-grid-cols-1 md:tw-grid-cols-2'>\n <div>\n <p className='tw-text-lg tw-font-bold'>Offers</p>\n <div className='tw-flex tw-flex-wrap'>\n {groupAndCount(offers).map((o) => (\n <TagView\n onClick={() => navigate(`/?tags=${o.object.name}`)}\n key={o.object.id}\n tag={o.object}\n count={o.count}\n ></TagView>\n ))}\n </div>\n </div>\n <div>\n <p className='tw-text-lg tw-font-bold'>Needs</p>\n <div className='tw-flex tw-flex-wrap'>\n {groupAndCount(needs).map((o) => (\n <TagView\n onClick={() => navigate(`/?tags=${o.object.name}`)}\n key={o.object.id}\n tag={o.object}\n count={o.count}\n ></TagView>\n ))}\n </div>\n </div>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth'\nimport { TextInput } from '#components/Input'\nimport { MapOverlayPage } from '#components/Templates'\n\nimport type { UserItem } from '#types/UserItem'\n\nexport function UserSettings() {\n const { user, updateUser, loading /* token */ } = useAuth()\n\n const [id, setId] = useState<string>('')\n const [email, setEmail] = useState<string>('')\n const [password, setPassword] = useState<string>('')\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false)\n\n const navigate = useNavigate()\n\n useEffect(() => {\n setId(user?.id ? user.id : '')\n setEmail(user?.email ? user.email : '')\n setPassword(user?.password ? user.password : '')\n }, [user])\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem\n\n changedUser = { id, email, ...(passwordChanged && { password }) }\n\n toast\n .promise(updateUser(changedUser), {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .then(() => navigate('/'))\n .catch((e) => {\n throw e\n })\n }\n\n return (\n <MapOverlayPage\n backdrop\n className='tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-fit md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-max-w-xl !tw-left-auto tw-top-0 tw-bottom-0'\n >\n <div className={'tw-text-xl tw-font-semibold'}>Settings</div>\n <div className='tw-divider tw-mt-2'></div>\n <div className='tw-grid tw-grid-cols-1 tw-gap-6'>\n <TextInput\n type='email'\n placeholder='new E-Mail'\n defaultValue={user?.email ? user.email : ''}\n updateFormValue={(v) => setEmail(v)}\n />\n <TextInput\n type='password'\n placeholder='new Password'\n defaultValue={user?.password ? user.password : ''}\n updateFormValue={(v) => {\n setPassword(v)\n setPasswordChanged(true)\n }}\n />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className='tw-mt-8'>\n <button\n className={\n loading\n ? ' tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right'\n : 'tw-btn tw-btn-primary tw-float-right'\n }\n onClick={() => onUpdateUser()}\n >\n Update\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { toast } from 'react-toastify'\n\nimport { encodeTag } from '#utils/FormatTags'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\nimport type { Item } from '#types/Item'\n\n// eslint-disable-next-line promise/avoid-new\nconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))\n\nexport const submitNewItem = async (\n evt: any,\n type: string,\n item,\n user,\n setLoading,\n tags,\n addTag,\n addItem,\n linkItem,\n resetFilterTags,\n layers,\n addItemPopupType,\n setAddItemPopupType,\n) => {\n evt.preventDefault()\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 setLoading(true)\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n const uuid = crypto.randomUUID()\n\n const layer = layers.find(\n (l) => l.name.toLocaleLowerCase().replace('s', '') === addItemPopupType.toLocaleLowerCase(),\n )\n\n let success = false\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid, type, parent: item.id })\n await linkItem(uuid)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n addItem({ ...formItem, id: uuid, type, layer, user_created: user, parent: item.id })\n toast.success('New item created')\n resetFilterTags()\n }\n setLoading(false)\n setAddItemPopupType('')\n}\n\nexport const linkItem = async (id: string, item, updateItem) => {\n const newRelations = item.relations || []\n newRelations?.push({ items_id: item.id, related_items_id: id })\n const updatedItem = { id: item.id, relations: newRelations }\n\n let success = false\n try {\n await item?.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...item, relations: newRelations })\n toast.success('Item linked')\n }\n}\n\nexport const unlinkItem = async (id: string, item, updateItem) => {\n const newRelations = item.relations?.filter((r) => r.related_items_id !== id)\n const updatedItem = { id: item.id, relations: newRelations }\n\n let success = false\n try {\n await item?.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...item, relations: newRelations })\n toast.success('Item unlinked')\n }\n}\n\nexport const handleDelete = async (\n event: React.MouseEvent<HTMLElement>,\n item,\n setLoading,\n removeItem,\n map,\n navigate,\n) => {\n event.stopPropagation()\n setLoading(true)\n let success = false\n try {\n await item.layer?.api?.deleteItem!(item.id)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n removeItem(item)\n toast.success('Item deleted')\n }\n setLoading(false)\n map.closePopup()\n const params = new URLSearchParams(window.location.search)\n window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`)\n navigate('/')\n}\n\nexport const onUpdateItem = async (\n state,\n item,\n tags,\n addTag,\n setLoading,\n navigate,\n updateItem,\n addItem,\n user,\n params,\n) => {\n let changedItem = {} as Item\n\n const offerUpdates: any[] = []\n // check for new offers\n await state.offers?.map((o) => {\n const existingOffer = item?.offers?.find((t) => t.tags_id === o.id)\n existingOffer && offerUpdates.push(existingOffer.id)\n if (!existingOffer && !tags.some((t) => t.id === o.id)) addTag({ ...o, offer_or_need: true })\n !existingOffer && offerUpdates.push({ items_id: item?.id, tags_id: o.id })\n return null\n })\n\n const needsUpdates: any[] = []\n\n await state.needs?.map((n) => {\n const existingNeed = item?.needs?.find((t) => t.tags_id === n.id)\n existingNeed && needsUpdates.push(existingNeed.id)\n !existingNeed && needsUpdates.push({ items_id: item?.id, tags_id: n.id })\n !existingNeed && !tags.some((t) => t.id === n.id) && addTag({ ...n, offer_or_need: true })\n return null\n })\n\n // update profile item in current state\n changedItem = {\n id: state.id,\n name: state.name,\n subname: state.subname,\n text: state.text,\n ...(state.color && { color: state.color }),\n position: item.position,\n ...(state.group_type && { group_type: state.group_type }),\n ...(state.status && { status: state.status }),\n contact: state.contact,\n telephone: state.telephone,\n ...(state.end && { end: state.end }),\n ...(state.start && { start: state.start }),\n ...(state.marker_icon && { markerIcon: state.marker_icon }),\n next_appointment: state.next_appointment,\n ...(state.image.length > 10 && { image: state.image }),\n ...(state.offers.length > 0 && { offers: offerUpdates }),\n ...(state.needs.length > 0 && { needs: needsUpdates }),\n }\n\n const offersState: any[] = []\n const needsState: any[] = []\n\n state.offers.map((o) => {\n offersState.push({ items_id: item?.id, tags_id: o.id })\n return null\n })\n\n state.needs.map((n) => {\n needsState.push({ items_id: item?.id, tags_id: n.id })\n return null\n })\n\n changedItem = { ...changedItem, offers: offersState, needs: needsState }\n\n setLoading(true)\n\n await state.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({\n id: crypto.randomUUID(),\n name: encodeTag(tag.slice(1).toLocaleLowerCase()),\n color: randomColor(),\n })\n }\n return null\n })\n\n // take care that addTag request comes before item request\n await sleep(200)\n\n if (!item.new) {\n item?.layer?.api?.updateItem &&\n toast\n .promise(item?.layer?.api?.updateItem(changedItem), {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .catch(setLoading(false))\n .then(() => item && updateItem({ ...item, ...changedItem }))\n .then(() => {\n setLoading(false)\n navigate(`/item/${item.id}${params && '?' + params}`)\n return null\n })\n } else {\n item.new = false\n item.layer?.api?.createItem &&\n toast\n .promise(item.layer?.api?.createItem(changedItem), {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .catch(setLoading(false))\n .then(\n () =>\n item &&\n addItem({\n ...item,\n ...changedItem,\n layer: item.layer,\n user_created: user,\n type: item.layer?.itemType,\n }),\n )\n .then(() => {\n setLoading(false)\n navigate(`/${params && '?' + params}`)\n return null\n })\n }\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { useEffect, useState } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport type { Item } from '#types/Item'\n\nexport const ContactInfoView = ({ item, heading }: { item: Item; heading: string }) => {\n const appState = useAppState()\n const [profileOwner, setProfileOwner] = useState<Item>()\n const items = useItems()\n\n useEffect(() => {\n // eslint-disable-next-line no-console\n console.log(\n 'user:',\n items.find(\n (i) =>\n i.user_created?.id === item.user_created?.id &&\n i.layer?.itemType.name === appState.userType,\n ),\n )\n\n setProfileOwner(\n items.find(\n (i) =>\n i.user_created?.id === item.user_created?.id &&\n i.layer?.itemType.name === appState.userType,\n ),\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, items])\n\n return (\n <div className='tw-bg-base-200 tw-mb-6 tw-mt-6 tw-p-6'>\n <h2 className='tw-text-lg tw-font-semibold'>{heading}</h2>\n <div className='tw-mt-4 tw-flex tw-items-center'>\n {profileOwner?.image && (\n <ConditionalLink url={'/item/' + profileOwner?.id}>\n <div className='tw-mr-5 tw-flex tw-items-center tw-justify-center'>\n <div className='tw-avatar'>\n <div className='tw-w-20 tw-h-20 tw-bg-gray-200 rounded-full tw-flex tw-items-center tw-justify-center overflow-hidden'>\n <img\n src={appState.assetsApi.url + profileOwner?.image}\n alt={profileOwner?.name}\n className='tw-w-full tw-h-full tw-object-cover'\n />\n </div>\n </div>\n </div>\n </ConditionalLink>\n )}\n <div className='tw-text-sm tw-flex-grow'>\n <p className='tw-font-semibold'>{profileOwner?.name}</p>\n {item.contact && (\n <p>\n <a\n href={`mailto:${item.contact}`}\n className='tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='tw-w-4 tw-h-4 tw-mr-1'\n >\n <path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'></path>\n <polyline points='22,6 12,13 2,6'></polyline>\n </svg>\n {item.contact}\n </a>\n </p>\n )}\n {item.telephone && (\n <p>\n <a\n href={`tel:${item.telephone}`}\n className='tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center tw-whitespace-nowrap'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='tw-w-4 tw-h-4 tw-mr-1'\n >\n <path d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z' />\n </svg>\n {item.telephone}\n </a>\n </p>\n )}\n </div>\n </div>\n </div>\n )\n}\n\n// eslint-disable-next-line react/prop-types\nconst ConditionalLink = ({ url, children }) => {\n const params = new URLSearchParams(window.location.search)\n\n if (url) {\n return <Link to={url + '?' + params}>{children}</Link>\n }\n return children\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useState } from 'react'\nimport { RowsPhotoAlbum } from 'react-photo-album'\nimport ReactLightbox from 'yet-another-react-lightbox'\nimport 'yet-another-react-lightbox/styles.css'\nimport 'react-photo-album/rows.css'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\n\nimport type { Item } from '#types/Item'\n\nexport const GalleryView = ({ item }: { item: Item }) => {\n const [index, setIndex] = useState(-1)\n const appState = useAppState()\n const images = item.gallery.map((i, j) => {\n return {\n src: appState.assetsApi.url + `${i.directus_files_id.id}.jpg`,\n width: i.directus_files_id.width,\n height: i.directus_files_id.height,\n index: j,\n }\n })\n return (\n <div className='tw-mx-6 tw-mb-6'>\n <RowsPhotoAlbum\n photos={images}\n targetRowHeight={150}\n onClick={({ index: current }) => setIndex(current)}\n />\n\n <ReactLightbox index={index} slides={images} open={index >= 0} close={() => setIndex(-1)} />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\nimport { cloneElement } from 'react'\n\nconst platformConfigs = {\n facebook: {\n shareUrl: 'https://www.facebook.com/sharer/sharer.php?u={url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z' />\n </svg>\n ),\n bgColor: '#3b5998',\n },\n twitter: {\n shareUrl: 'https://twitter.com/intent/tweet?text={title}:%20{url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z' />\n </svg>\n ),\n bgColor: '#55acee',\n },\n linkedin: {\n shareUrl: 'http://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6zM2 9h4v12H2z' />\n <circle cx='4' cy='4' r='2' />\n </svg>\n ),\n bgColor: '#4875b4',\n },\n xing: {\n shareUrl: 'https://www.xing-share.com/app/user?op=share;sc_p=xing-share;url={url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M18.188 0c-.517 0-.741.325-.927.66 0 0-7.455 13.224-7.702 13.657.015.024 4.919 9.023 4.919 9.023.17.308.436.66.967.66h3.454c.211 0 .375-.078.463-.22.089-.151.089-.346-.009-.536l-4.879-8.916c-.004-.006-.004-.016 0-.022L22.139.756c.095-.191.097-.387.006-.535C22.056.078 21.894 0 21.686 0h-3.498zM3.648 4.74c-.211 0-.385.074-.473.216-.09.149-.078.339.02.531l2.34 4.05c.004.01.004.016 0 .021L1.86 16.051c-.099.188-.093.381 0 .529.085.142.239.234.45.234h3.461c.518 0 .766-.348.945-.667l3.734-6.609-2.378-4.155c-.172-.315-.434-.659-.962-.659H3.648v.016z' />\n </svg>\n ),\n bgColor: '#026466',\n },\n whatsapp: {\n shareUrl: 'https://api.whatsapp.com/send?text={title}%20{url}',\n icon: (\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z'></path>\n </svg>\n ),\n bgColor: '#25D366',\n },\n telegram: {\n shareUrl: 'https://t.me/share/url?url={url}&text={title}',\n icon: (\n <svg\n stroke='white'\n fill='white'\n strokeWidth='0'\n viewBox='0 0 448 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z'></path>\n </svg>\n ),\n bgColor: '#0088cc',\n },\n}\n\nconst SocialShareButton = ({\n platform,\n url,\n title,\n}: {\n platform: string\n url: string\n title: string\n}) => {\n // eslint-disable-next-line security/detect-object-injection\n const config = platformConfigs[platform]\n\n if (!config) {\n return null\n }\n\n const { shareUrl, icon, bgColor } = config\n const finalShareUrl = shareUrl\n .replace('{url}', encodeURIComponent(url))\n .replace('{title}', encodeURIComponent(title))\n\n return (\n <a\n href={finalShareUrl}\n target='_blank'\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white'\n style={{\n color: 'white',\n backgroundColor: bgColor,\n }}\n title={`share link on ${platform}`}\n >\n {cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' })}\n </a>\n )\n}\n\nexport default SocialShareButton\n","import { toast } from 'react-toastify'\n\nimport SocialShareButton from './SocialShareButton'\n\nconst SocialShareBar = ({\n url,\n title,\n platforms = ['facebook', 'twitter', 'linkedin', 'xing', 'email'],\n}: {\n url: string\n title: string\n platforms?: string[]\n}) => {\n const copyLink = () => {\n navigator.clipboard\n .writeText(url)\n .then(() => {\n toast.success('link copied to clipboard')\n return null\n })\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n .catch((error: never) => {\n toast.error('Fehler beim Kopieren des Links: ', error)\n })\n }\n return (\n <div className='tw-flex tw-place-content-end tw-justify-end tw-space-x-2 tw-grow tw-min-w-fit tw-pl-2'>\n {platforms.map((platform) => (\n <SocialShareButton key={platform} platform={platform} url={url} title={title} />\n ))}\n {platforms.includes('email') && (\n <a\n href={`mailto:?subject=${title}&body=${url}`}\n target='_blank'\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer'\n style={{\n color: 'white',\n backgroundColor: '#444',\n }}\n onClick={() => copyLink()}\n title='share link via email'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='white'\n className='tw-h-4 tw-w-4'\n >\n <path d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z' />\n </svg>\n </a>\n )}\n {platforms.includes('clipboard') && (\n <div\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer'\n style={{\n color: 'white',\n backgroundColor: '#888',\n }}\n onClick={() => copyLink()}\n title='copy Link'\n >\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 256 256'\n height='1.5em'\n width='1.5em'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M180,64H40A12,12,0,0,0,28,76V216a12,12,0,0,0,12,12H180a12,12,0,0,0,12-12V76A12,12,0,0,0,180,64ZM168,204H52V88H168ZM228,40V180a12,12,0,0,1-24,0V52H76a12,12,0,0,1,0-24H216A12,12,0,0,1,228,40Z'></path>\n </svg>\n </div>\n )}\n </div>\n )\n}\n\nexport default SocialShareBar\n","import SocialShareBar from './SocialShareBar'\n\nimport type { Item } from '#types/Item'\n\nexport const GroupSubHeaderView = ({\n item,\n shareBaseUrl,\n platforms,\n}: {\n item: Item\n shareBaseUrl: string\n platforms?: string[]\n}) => (\n <div className='tw-px-6'>\n <div className='tw-float-left tw-mt-2 tw-mb-4 tw-flex tw-items-center'>\n {item.status && (\n <div className='tw-mt-1.5'>\n <span className='tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-0.5 tw-px-2 tw-inline-flex tw-items-center tw-mr-2'>\n {item.status}\n </span>\n </div>\n )}\n {item.group_type && (\n <div className='tw-mt-1.5'>\n <span className='tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-1 tw-px-2'>\n {item.group_type}\n </span>\n </div>\n )}\n </div>\n <div>\n <SocialShareBar\n url={\n shareBaseUrl && item.slug\n ? shareBaseUrl + item.slug\n : window.location.protocol + '//' + window.location.host + '/item/' + item.id\n }\n title={item.name}\n platforms={platforms}\n />\n </div>\n </div>\n)\n","import { StartEndView } from '#components/Map'\n\nimport type { Item } from '#types/Item'\n\nexport const ProfileStartEndView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-mt-2 tw-px-6 tw-max-w-xs'>\n <StartEndView item={item}></StartEndView>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { TextView } from '#components/Map'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\n\nexport const ProfileTextView = ({\n item,\n dataField,\n heading,\n hideWhenEmpty,\n}: {\n item: Item\n dataField: string\n heading: string\n hideWhenEmpty: boolean\n}) => {\n return (\n <div className='tw-my-10 tw-mt-2 tw-px-6'>\n {!(getValue(item, dataField) === '' && hideWhenEmpty) && (\n <h2 className='tw-text-lg tw-font-semibold'>{heading}</h2>\n )}\n <div className='tw-mt-2 tw-text-sm'>\n <TextView rawText={dataField ? getValue(item, dataField) : getValue(item, 'text')} />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n\nimport { ContactInfoView } from '#components/Profile/Subcomponents/ContactInfoView'\nimport { GalleryView } from '#components/Profile/Subcomponents/GalleryView'\nimport { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHeaderView'\nimport { ProfileStartEndView } from '#components/Profile/Subcomponents/ProfileStartEndView'\nimport { ProfileTextView } from '#components/Profile/Subcomponents/ProfileTextView'\n\nimport type { Item } from '#types/Item'\n\nconst componentMap = {\n groupSubheaders: GroupSubHeaderView,\n texts: ProfileTextView,\n contactInfos: ContactInfoView,\n startEnd: ProfileStartEndView,\n gallery: GalleryView,\n // weitere Komponenten hier\n}\n\nexport const FlexView = ({ item }: { item: Item }) => {\n // eslint-disable-next-line no-console\n console.log(item)\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n {item.layer?.itemType.profileTemplate.map((templateItem) => {\n const TemplateComponent = componentMap[templateItem.collection]\n return TemplateComponent ? (\n <TemplateComponent key={templateItem.id} item={item} {...templateItem.item} />\n ) : (\n <div key={templateItem.id}>Component not found</div>\n )\n })}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { TextView } from '#components/Map'\nimport { ContactInfoView } from '#components/Profile/Subcomponents/ContactInfoView'\nimport { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHeaderView'\n\nimport type { Item } from '#types/Item'\n\nexport const OnepagerView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n <GroupSubHeaderView\n item={item}\n shareBaseUrl={`https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}`}\n />\n {item.user_created?.first_name && <ContactInfoView heading='Du hast Fragen?' item={item} />}\n {/* Description Section */}\n <div className='tw-my-10 tw-mt-2 tw-px-6 tw-text-sm '>\n <TextView rawText={item.text || 'Keine Beschreibung vorhanden'} />\n </div>\n {/* Next Appointment Section */}\n {item.next_appointment && (\n <div className='tw-my-10 tw-px-6'>\n <h2 className='tw-text-lg tw-font-semibold'>Nächste Termine</h2>\n <div className='tw-mt-2 tw-text-sm'>\n <TextView rawText={item.next_appointment} />\n </div>\n </div>\n )}\n ;{/* Relations Section */}\n {/* {d.relations && ( */}\n {/* <div className=\"tw-my-10 tw-px-6\"> */}\n {/* <h2 className=\"tw-text-lg tw-font-semibold tw-mb-4\">Projekte</h2> */}\n {/* {d.relations.map((project, index) => ( */}\n {/* <RelationCard */}\n {/* key={index} */}\n {/* title={project.title} */}\n {/* description={project.description} */}\n {/* imageSrc={project.imageSrc} */}\n {/* /> */}\n {/* ))} */}\n {/* </div> */}\n {/* )} */}\n </div>\n )\n}\n","import { TextView } from '#components/Map'\n\nimport type { Item } from '#types/Item'\n\nexport const SimpleView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-mt-8 tw-h-full tw-overflow-y-auto fade tw-px-6'>\n <TextView item={item} />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useState } from 'react'\n\nimport { TextInput } from '#components/Input'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useGetItemTags } from '#components/Map/hooks/useTags'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport DialogModal from '#components/Templates/DialogModal'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\n\nexport function ActionButton({\n item,\n triggerAddButton,\n triggerItemSelected,\n existingRelations,\n itemType,\n colorField,\n collection = 'items',\n customStyle,\n}: {\n triggerAddButton?: any\n triggerItemSelected?: any\n existingRelations: Item[]\n itemType?: string\n colorField?: string\n collection?: string\n customStyle?: string\n item: Item\n}) {\n const hasUserPermission = useHasUserPermission()\n const [modalOpen, setModalOpen] = useState<boolean>(false)\n const [search, setSearch] = useState<string>('')\n const getItemTags = useGetItemTags()\n\n const items = useItems()\n\n const filterdItems = items\n .filter((i) => !itemType || i.layer?.itemType.name === itemType)\n .filter((i) => !existingRelations.some((s) => s.id === i.id))\n .filter((i) => i.id !== item.id)\n\n return (\n <>\n {hasUserPermission(collection, 'update', item) && (\n <>\n <div className={`tw-absolute tw-right-4 tw-bottom-4 tw-flex tw-flex-col ${customStyle}`}>\n {triggerItemSelected && (\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow'\n onClick={() => {\n setModalOpen(true)\n }}\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n <svg\n className='tw-h-5 tw-w-5'\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z'></path>\n </svg>\n </button>\n )}\n {triggerAddButton && (\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow tw-mt-2'\n onClick={() => {\n triggerAddButton()\n }}\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='4'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </button>\n )}\n </div>\n <DialogModal\n title={'Select'}\n isOpened={modalOpen}\n onClose={() => setModalOpen(false)}\n className='tw-w-xl sm:tw-w-2xl tw-min-h-80 tw-bg-base-200'\n >\n <TextInput\n defaultValue=''\n placeholder='🔍 Search'\n containerStyle='lg:col-span-2 tw-m-4 '\n updateFormValue={(val) => {\n setSearch(val)\n }}\n ></TextInput>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2'>\n {filterdItems\n .filter((item) => {\n return search === ''\n ? item\n : item.name.toLowerCase().includes(search.toLowerCase())\n })\n .map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-mx-4 tw-p-4 tw-mb-4 tw-h-fit'\n onClick={() => {\n triggerItemSelected(i.id)\n setModalOpen(false)\n }}\n >\n <HeaderView item={i} hideMenu></HeaderView>\n </div>\n ))}\n </div>\n </DialogModal>\n </>\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect } from 'react'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { getValue } from '#utils/GetValue'\n\nimport type { Item } from '#types/Item'\n\nexport function LinkedItemsHeaderView({\n item,\n unlinkCallback,\n itemNameField,\n itemAvatarField,\n loading,\n unlinkPermission,\n itemSubnameField,\n}: {\n item: Item\n unlinkCallback?: any\n itemNameField?: string\n itemAvatarField?: string\n itemSubnameField?: string\n loading?: boolean\n unlinkPermission: boolean\n}) {\n const appState = useAppState()\n\n const avatar =\n itemAvatarField && getValue(item, itemAvatarField)\n ? appState.assetsApi.url + getValue(item, itemAvatarField)\n : item.layer?.itemAvatarField &&\n item &&\n getValue(item, item.layer?.itemAvatarField) &&\n appState.assetsApi.url + getValue(item, item.layer?.itemAvatarField)\n const title = itemNameField\n ? getValue(item, itemNameField)\n : item.layer?.itemNameField && item && getValue(item, item.layer.itemNameField)\n const subtitle = itemSubnameField\n ? getValue(item, itemSubnameField)\n : item.layer?.itemSubnameField && item && getValue(item, item.layer.itemSubnameField)\n\n useEffect(() => {}, [item])\n\n return (\n <>\n <div className='tw-flex tw-flex-row'>\n <div className={'tw-grow tw-max-w-[calc(100%-60px)] }'}>\n <div className='flex items-center'>\n {avatar && (\n <img\n className={'tw-w-10 tw-inline tw-rounded-full'}\n src={avatar}\n alt={item.name + ' logo'}\n />\n )}\n <div className={`${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`}>\n <div className={'tw-text-xl tw-font-semibold tw-truncate'}>{title}</div>\n {subtitle && (\n <div className='tw-text-xs tw-truncate tw-text-gray-500 '>{subtitle}</div>\n )}\n </div>\n </div>\n </div>\n <div className='tw-col-span-1' onClick={(e) => e.stopPropagation()}>\n {unlinkPermission && (\n <div className='tw-dropdown tw-dropdown-bottom'>\n <label\n tabIndex={0}\n className=' tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\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\n tabIndex={0}\n className='tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000'\n >\n {true && (\n <li>\n <a\n className='tw-cursor-pointer !tw-text-error'\n onClick={() => unlinkCallback(item.id)}\n >\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-sm'></span>\n ) : (\n <svg\n className='tw-h-5 tw-w-5'\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z'></path>\n </svg>\n )}\n </a>\n </li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { StartEndView, TextView } from '#components/Map'\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { ActionButton } from '#components/Profile/Subcomponents/ActionsButton'\nimport { LinkedItemsHeaderView } from '#components/Profile/Subcomponents/LinkedItemsHeaderView'\nimport { TagView } from '#components/Templates/TagView'\nimport { timeAgo } from '#utils/TimeAgo'\n\nimport type { Item } from '#types/Item'\nimport type { Tag } from '#types/Tag'\n\nexport const TabsView = ({\n attestations,\n item,\n offers,\n needs,\n relations,\n updatePermission,\n loading,\n linkItem,\n unlinkItem,\n}: {\n attestations: any[]\n item: Item\n offers: Tag[]\n needs: Tag[]\n relations: Item[]\n updatePermission: boolean\n loading: boolean\n linkItem: (id: string) => Promise<void>\n unlinkItem: (id: string) => Promise<void>\n}) => {\n const addFilterTag = useAddFilterTag()\n const [activeTab, setActiveTab] = useState<number>()\n const navigate = useNavigate()\n\n const [addItemPopupType] = useState<string>('')\n\n const items = useItems()\n const appState = useAppState()\n const getUserProfile = (id: string) => {\n return items.find(\n (i) => i.user_created?.id === id && i.layer?.itemType.name === appState.userType,\n )\n }\n\n useEffect(() => {\n scroll()\n }, [addItemPopupType])\n\n function scroll() {\n tabRef.current?.scrollIntoView()\n }\n\n const tabRef = useRef<HTMLFormElement>(null)\n\n const updateActiveTab = useCallback(\n (id: number) => {\n setActiveTab(id)\n\n const params = new URLSearchParams(window.location.search)\n params.set('tab', `${id}`)\n const newUrl = location.pathname + '?' + params.toString()\n window.history.pushState({}, '', newUrl)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [location.pathname],\n )\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTab = params.get('tab')\n setActiveTab(urlTab ? Number(urlTab) : 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n return (\n <div role='tablist' className='tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2 tw-px-6'>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label={`${item.layer?.itemType.icon_as_labels && activeTab !== 1 ? '📝' : '📝\\u00A0Info'}`}\n checked={activeTab === 1 && true}\n onChange={() => updateActiveTab(1)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden'\n >\n {item.layer?.itemType.show_start_end && (\n <div className='tw-max-w-xs'>\n <StartEndView item={item}></StartEndView>\n </div>\n )}\n <TextView item={item} />\n <div className='tw-h-4'></div>\n <TextView item={item} itemTextField='contact' />\n </div>\n {item.layer?.itemType.questlog && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 2 ? '❤️' : '❤️\\u00A0Trust'}`}\n checked={activeTab === 2 && true}\n onChange={() => updateActiveTab(2)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden'\n >\n <table className='sm:tw-table-sm md:tw-table-md'>\n <tbody>\n {attestations\n .filter((a) => a.to.some((t) => t.directus_users_id === item.user_created?.id))\n .sort(\n (a, b) =>\n new Date(b.date_created).getTime() - new Date(a.date_created).getTime(),\n )\n .map((a, i) => (\n <tr key={i}>\n <td>\n <div\n className={`tw-cursor-pointer tw-text-3xl tw-mask tw-mask-${a.shape} tw-p-3 tw-mr-2 tw-shadow-xl tw-bg-[${a.color}]`}\n >\n {a.emoji}\n </div>\n </td>\n <td>\n <div className='tw-mr-2'>\n <i>{a.text}</i>\n </div>\n </td>\n <td>\n <Link to={'/item/' + getUserProfile(a.user_created.id)?.id}>\n <div className='flex items-center gap-3'>\n <div className='tw-avatar'>\n <div className='tw-mask tw-rounded-full h-8 w-8 tw-mr-2'>\n <img\n src={\n appState.assetsApi.url +\n getUserProfile(a.user_created.id)?.image\n }\n alt='Avatar'\n />\n </div>\n </div>\n <div>\n <div className='font-bold'>\n {getUserProfile(a.user_created.id)?.name}\n </div>\n <div className='tw-text-xs opacity-50 tw-text-zinc-500'>\n {timeAgo(a.date_created)}\n </div>\n </div>\n </div>\n </Link>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </>\n )}\n {item.layer?.itemType.offers_and_needs && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={`tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 ${!(item.layer.itemType.icon_as_labels && activeTab !== 3) && 'tw-min-w-[10.4em]'} [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`}\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 3 ? '♻️' : '♻️\\u00A0Offers & Needs'}`}\n checked={activeTab === 3 && true}\n onChange={() => updateActiveTab(3)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-4 tw-pb-1'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1'>\n {offers.length > 0 ? (\n <div className='tw-col-span-1'>\n <h3 className='-tw-mb-2'>Offers</h3>\n <div className='tw-flex tw-flex-wrap tw-mb-4'>\n {offers.map((o) => (\n <TagView\n key={o.id}\n tag={o}\n onClick={() => {\n addFilterTag(o)\n }}\n />\n ))}\n </div>\n </div>\n ) : (\n ''\n )}\n {needs.length > 0 ? (\n <div className='tw-col-span-1'>\n <h3 className='-tw-mb-2 tw-col-span-1'>Needs</h3>\n <div className='tw-flex tw-flex-wrap tw-mb-4'>\n {needs.map((n) => (\n <TagView key={n.id} tag={n} onClick={() => addFilterTag(n)} />\n ))}\n </div>\n </div>\n ) : (\n ''\n )}\n </div>\n </div>\n </div>\n </>\n )}\n\n {item.layer?.itemType.relations && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className='tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 7 ? '🔗' : '🔗\\u00A0Links'}`}\n checked={activeTab === 7 && true}\n onChange={() => updateActiveTab(7)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mr-4 -tw-mb-4 tw-overflow-x-hidden'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-pb-4'>\n {relations &&\n relations.map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-p-6 tw-mr-4 tw-mb-4'\n onClick={() => navigate('/item/' + i.id)}\n >\n <LinkedItemsHeaderView\n unlinkPermission={updatePermission}\n item={i}\n unlinkCallback={unlinkItem}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} />\n </div>\n </div>\n ))}\n {updatePermission && (\n <ActionButton\n collection='items'\n item={item}\n existingRelations={relations}\n triggerItemSelected={linkItem}\n colorField={item.layer.itemColorField}\n ></ActionButton>\n )}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/await-thenable */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { LatLng } from 'leaflet'\nimport { useEffect, useState } from 'react'\nimport { useMap } from 'react-leaflet'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useClusterRef } from '#components/Map/hooks/useClusterRef'\nimport { useItems, useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useLeafletRefs } from '#components/Map/hooks/useLeafletRefs'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useSelectPosition, useSetSelectPosition } from '#components/Map/hooks/useSelectPosition'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { MapOverlayPage } from '#components/Templates'\nimport { getValue } from '#utils/GetValue'\n\nimport { handleDelete, linkItem, unlinkItem } from './itemFunctions'\nimport { FlexView } from './Templates/FlexView'\nimport { OnepagerView } from './Templates/OnepagerView'\nimport { SimpleView } from './Templates/SimpleView'\nimport { TabsView } from './Templates/TabsView'\n\nimport type { Item } from '#types/Item'\nimport type { ItemsApi } from '#types/ItemsApi'\nimport type { Tag } from '#types/Tag'\n\nexport function ProfileView({ attestationApi }: { attestationApi?: ItemsApi<any> }) {\n const [item, setItem] = useState<Item>()\n const [updatePermission, setUpdatePermission] = useState<boolean>(false)\n const [relations, setRelations] = useState<Item[]>([])\n const [offers, setOffers] = useState<Tag[]>([])\n const [needs, setNeeds] = useState<Tag[]>([])\n const [loading, setLoading] = useState<boolean>(false)\n const [template, setTemplate] = useState<string>('')\n\n const location = useLocation()\n const items = useItems()\n const updateItem = useUpdateItem()\n const map = useMap()\n const selectPosition = useSelectPosition()\n const removeItem = useRemoveItem()\n const tags = useTags()\n const navigate = useNavigate()\n const hasUserPermission = useHasUserPermission()\n const setSelectPosition = useSetSelectPosition()\n const clusterRef = useClusterRef()\n const leafletRefs = useLeafletRefs()\n const appState = useAppState()\n\n const [attestations, setAttestations] = useState<any[]>([])\n\n useEffect(() => {\n if (attestationApi) {\n attestationApi\n .getItems()\n .then((value) => {\n // eslint-disable-next-line no-console\n console.log(value)\n\n setAttestations(value)\n return null\n })\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error('Error fetching items:', error)\n })\n }\n }, [attestationApi])\n\n useEffect(() => {\n const itemId = location.pathname.split('/')[2]\n const item = items.find((i) => i.id === itemId)\n item && setItem(item)\n }, [items, location])\n\n useEffect(() => {\n setOffers([])\n setNeeds([])\n setRelations([])\n\n item?.layer?.itemOffersField &&\n getValue(item, item.layer.itemOffersField)?.map((o) => {\n const tag = tags.find((t) => t.id === o.tags_id)\n tag && setOffers((current) => [...current, tag])\n return null\n })\n item?.layer?.itemNeedsField &&\n getValue(item, item.layer.itemNeedsField)?.map((n) => {\n const tag = tags.find((t) => t.id === n.tags_id)\n tag && setNeeds((current) => [...current, tag])\n return null\n })\n item?.relations?.map((r) => {\n const item = items.find((i) => i.id === r.related_items_id)\n item && setRelations((current) => [...current, item])\n return null\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, items])\n\n useEffect(() => {\n const setMap = async (marker, x) => {\n await map.setView(\n new LatLng(item?.position?.coordinates[1]!, item?.position?.coordinates[0]! + x / 4),\n undefined,\n )\n setTimeout(() => {\n marker.openPopup()\n }, 500)\n }\n if (item) {\n if (item.position) {\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1].marker\n marker &&\n clusterRef.hasLayer(marker) &&\n clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds()\n const x = bounds.getEast() - bounds.getWest()\n setMap(marker, x)\n })\n } else {\n const parent = getFirstAncestor(item)\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === parent)?.[1].marker\n marker &&\n clusterRef.hasLayer(marker) &&\n clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds()\n const x = bounds.getEast() - bounds.getWest()\n setMap(marker, x)\n })\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item])\n\n const getFirstAncestor = (item: Item): Item | undefined => {\n const parent = items.find((i) => i.id === item.parent)\n if (parent?.parent) {\n return getFirstAncestor(parent)\n } else {\n return parent\n }\n }\n\n useEffect(() => {\n item && hasUserPermission('items', 'update', item) && setUpdatePermission(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item])\n\n useEffect(() => {\n selectPosition && map.closePopup()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectPosition])\n\n useEffect(() => {\n setTemplate(item?.layer?.itemType.template || appState.userType)\n }, [appState.userType, item])\n\n return (\n <>\n {item && (\n <MapOverlayPage\n key={item.id}\n className={`!tw-p-0 tw-mx-4 tw-mt-4 tw-mb-4 md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-min-w-80 tw-max-w-3xl !tw-left-0 sm:!tw-left-auto tw-top-0 tw-bottom-0 tw-transition-opacity tw-duration-500 ${!selectPosition ? 'tw-opacity-100 tw-pointer-events-auto' : 'tw-opacity-0 tw-pointer-events-none'}`}\n >\n <>\n <div className={'tw-px-6 tw-pt-6'}>\n <HeaderView\n api={item.layer?.api}\n item={item}\n deleteCallback={(e) => handleDelete(e, item, setLoading, removeItem, map, navigate)}\n editCallback={() => navigate('/edit-item/' + item.id)}\n setPositionCallback={() => {\n map.closePopup()\n setSelectPosition(item)\n navigate('/')\n }}\n big\n truncateSubname={false}\n />\n </div>\n\n {template === 'onepager' && <OnepagerView item={item} />}\n\n {template === 'simple' && <SimpleView item={item} />}\n\n {template === 'flex' && <FlexView item={item} />}\n\n {template === 'tabs' && (\n <TabsView\n attestations={attestations}\n item={item}\n loading={loading}\n offers={offers}\n needs={needs}\n relations={relations}\n updatePermission={updatePermission}\n linkItem={(id) => linkItem(id, item, updateItem)}\n unlinkItem={(id) => unlinkItem(id, item, updateItem)}\n />\n )}\n </>\n </MapOverlayPage>\n )}\n </>\n )\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { useState, useCallback, useRef } from 'react'\nimport { ReactCrop, centerCrop, makeAspectCrop } from 'react-image-crop'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport 'react-image-crop/dist/ReactCrop.css'\nimport DialogModal from '#components/Templates/DialogModal'\n\nimport type { Crop } from 'react-image-crop'\n\ninterface AvatarWidgetProps {\n avatar: string\n setAvatar: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport const AvatarWidget: React.FC<AvatarWidgetProps> = ({ avatar, setAvatar }) => {\n const [crop, setCrop] = useState<Crop>()\n const [image, setImage] = useState<string>('')\n const [cropModalOpen, setCropModalOpen] = useState<boolean>(false)\n const [cropping, setCropping] = useState<boolean>(false)\n\n const appState = useAppState()\n\n const imgRef = useRef<HTMLImageElement>(null)\n\n const onImageChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n const file = event.target.files && event.target.files[0]\n if (file) {\n const validFormats = ['image/jpeg', 'image/png']\n const maxSizeMB = 10\n const maxSizeBytes = maxSizeMB * 1024 * 1024\n\n if (!validFormats.includes(file.type)) {\n alert('Unsupported file format. Please upload a JPEG or PNG image.')\n return\n }\n\n if (file.size > maxSizeBytes) {\n alert(`File size exceeds ${maxSizeMB}MB. Please upload a smaller image.`)\n return\n }\n\n setImage(URL.createObjectURL(file))\n setCropModalOpen(true)\n } else {\n alert('No file selected or an error occurred while selecting the file.')\n }\n }, [])\n\n const onImageLoad = useCallback((e: React.SyntheticEvent<HTMLImageElement>) => {\n const { width, height } = e.currentTarget\n setCrop(centerAspectCrop(width, height, 1))\n }, [])\n\n const centerAspectCrop = (mediaWidth: number, mediaHeight: number, aspect: number) => {\n return centerCrop(\n makeAspectCrop(\n {\n unit: 'px',\n width: mediaWidth / 2,\n },\n aspect,\n mediaWidth,\n mediaHeight,\n ),\n mediaWidth,\n mediaHeight,\n )\n }\n\n async function resizeImage(\n image: HTMLImageElement,\n maxWidth: number,\n maxHeight: number,\n ): Promise<HTMLImageElement> {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n\n let width = image.width\n let height = image.height\n\n if (width > maxWidth) {\n height *= maxWidth / width\n width = maxWidth\n }\n if (height > maxHeight) {\n width *= maxHeight / height\n height = maxHeight\n }\n\n canvas.width = width\n canvas.height = height\n\n if (ctx) {\n ctx.drawImage(image, 0, 0, width, height)\n }\n\n const resizedImage = new Image()\n resizedImage.src = canvas.toDataURL()\n\n await resizedImage.decode()\n return resizedImage\n }\n\n const renderCrop = useCallback(async () => {\n const image = imgRef.current\n if (crop && image) {\n const resizedImage = await resizeImage(image, 1024, 1024) // Bildgröße vor dem Zuschneiden reduzieren\n const scaleX = resizedImage.naturalWidth / resizedImage.width\n const scaleY = resizedImage.naturalHeight / resizedImage.height\n\n const canvas = new OffscreenCanvas(crop.width * scaleX, crop.height * scaleY)\n const ctx = canvas.getContext('2d')\n const pixelRatio = window.devicePixelRatio\n canvas.width = crop.width * pixelRatio * scaleX\n canvas.height = crop.height * pixelRatio * scaleY\n\n if (ctx) {\n ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0)\n ctx.drawImage(\n resizedImage,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width * scaleX,\n crop.height * scaleY,\n )\n }\n\n const blob = await canvas.convertToBlob()\n await resizeBlob(blob)\n setCropping(false)\n setImage('')\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [crop])\n\n const resizeBlob = useCallback(\n async (blob: Blob) => {\n const img = new Image()\n img.src = URL.createObjectURL(blob)\n await img.decode()\n\n const canvas = new OffscreenCanvas(400, 400)\n const ctx = canvas.getContext('2d')\n ctx?.drawImage(img, 0, 0, 400, 400)\n\n const resizedBlob = await canvas.convertToBlob()\n const asset = await appState.assetsApi.upload(resizedBlob, 'avatar')\n setAvatar(asset.id)\n },\n [appState.assetsApi, setAvatar],\n )\n\n return (\n <>\n {!cropping ? (\n <label className='custom-file-upload'>\n <input\n type='file'\n accept='image/*'\n className='tw-file-input tw-w-full tw-max-w-xs'\n onChange={onImageChange}\n />\n <div className='button tw-btn tw-btn-lg tw-btn-circle tw-animate-none'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='1.5'\n stroke='currentColor'\n className='tw-w-6 tw-h-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5'\n />\n </svg>\n </div>\n {avatar ? (\n <div className='tw-h-20 tw-w-20'>\n <img\n src={appState.assetsApi.url + avatar}\n className='tw-h-20 tw-w-20 tw-rounded-full'\n />\n </div>\n ) : (\n <div className='tw-h-20 tw-w-20'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n version='1.0'\n viewBox='0 0 150 150'\n className='tw-w-20 tw-h-20 tw-rounded-full'\n style={{ backgroundColor: '#eee' }}\n >\n <path\n fill='#ccc'\n d='M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z'\n />\n <path\n fill='#ccc'\n d='M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z'\n />\n </svg>\n </div>\n )}\n </label>\n ) : (\n <div className='tw-w-20 tw-flex tw-items-center tw-justify-center'>\n <span className='tw-loading tw-loading-spinner'></span>\n </div>\n )}\n <DialogModal\n title=''\n isOpened={cropModalOpen}\n onClose={() => {\n setCropModalOpen(false)\n setImage('')\n }}\n closeOnClickOutside={false}\n >\n <ReactCrop crop={crop} onChange={(c) => setCrop(c)} aspect={1}>\n <img src={image} ref={imgRef} onLoad={onImageLoad} />\n </ReactCrop>\n <button\n className={'tw-btn tw-btn-primary'}\n onClick={() => {\n setCropping(true)\n setCropModalOpen(false)\n renderCrop()\n }}\n >\n Select\n </button>\n </DialogModal>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect } from 'react'\n\n// Improved version of https://usehooks.com/useOnClickOutside/\nconst useClickOutside = (ref, handler) => {\n useEffect(() => {\n let startedInside = false\n let startedWhenMounted = false\n\n const listener = (event) => {\n // Do nothing if `mousedown` or `touchstart` started inside ref element\n if (startedInside || !startedWhenMounted) return\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) return\n\n handler(event)\n }\n\n const validateEventStart = (event) => {\n startedWhenMounted = ref.current\n startedInside = ref.current && ref.current.contains(event.target)\n }\n\n document.addEventListener('mousedown', validateEventStart)\n document.addEventListener('touchstart', validateEventStart)\n document.addEventListener('click', listener)\n\n return () => {\n document.removeEventListener('mousedown', validateEventStart)\n document.removeEventListener('touchstart', validateEventStart)\n document.removeEventListener('click', listener)\n }\n }, [ref, handler])\n}\n\nexport default useClickOutside\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { HexColorPicker } from 'react-colorful'\n\nimport './ColorPicker.css'\nimport useClickOutside from '#components/Profile/hooks/useClickOutside'\n\n// eslint-disable-next-line react/prop-types\nexport const ColorPicker = ({ color, onChange, className }) => {\n const popover = useRef<HTMLDivElement>(null)\n const [isOpen, toggle] = useState(false)\n\n const close = useCallback(() => toggle(false), [])\n useClickOutside(popover, close)\n\n const colorPickerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n // Füge dem Color-Picker explizit Event-Listener hinzu\n const colorPickerElement = colorPickerRef.current\n if (colorPickerElement) {\n const enablePropagation = (event) => {\n // Verhindere, dass Leaflet die Propagation stoppt\n event.stopPropagation = () => {}\n }\n\n // Event-Listener für den Color-Picker\n ;['click', 'dblclick', 'mousedown', 'touchstart'].forEach((eventType) => {\n colorPickerElement.addEventListener(eventType, enablePropagation, true)\n })\n }\n }, [])\n\n return (\n <div ref={colorPickerRef} className={`picker ${className}`}>\n <div className='swatch' style={{ backgroundColor: color }} onClick={() => toggle(true)} />\n\n {isOpen && (\n <div className='popover tw-z-[10000]' ref={popover}>\n <HexColorPicker color={color} onChange={onChange} onClick={() => toggle(false)} />\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable react/prop-types */\nimport { TextInput } from '#components/Input'\n\nimport { AvatarWidget } from './AvatarWidget'\nimport { ColorPicker } from './ColorPicker'\n\nexport const FormHeader = ({ item, state, setState }) => {\n return (\n <div className='tw-flex'>\n <AvatarWidget\n avatar={state.image}\n setAvatar={(i) =>\n setState((prevState) => ({\n ...prevState,\n image: i,\n }))\n }\n />\n <ColorPicker\n color={state.color}\n onChange={(c) =>\n setState((prevState) => ({\n ...prevState,\n color: c,\n }))\n }\n className={'-tw-left-6 tw-top-14 -tw-mr-6'}\n />\n <div className='tw-grow tw-mr-4'>\n <TextInput\n placeholder='Name'\n defaultValue={item?.name ? item.name : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n name: v,\n }))\n }\n containerStyle='tw-grow tw-input-md'\n />\n <TextInput\n placeholder='Subtitle'\n required={false}\n defaultValue={item?.subname ? item.subname : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n subname: v,\n }))\n }\n containerStyle='tw-grow tw-input-sm tw-px-4 tw-mt-1'\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { TextInput } from '#components/Input'\n\nimport type { FormState } from '#types/FormState'\n\nexport const ContactInfoForm = ({\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n}) => {\n return (\n <div className='tw-mt-4 tw-space-y-4'>\n <div>\n <label\n htmlFor='email'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Email-Adresse (Kontakt):\n </label>\n <TextInput\n placeholder='Email'\n type='email'\n required={false}\n defaultValue={state.contact}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n contact: v,\n }))\n }\n />\n </div>\n\n <div>\n <label\n htmlFor='telephone'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Telefonnummer (Kontakt):\n </label>\n <TextInput\n placeholder='Telefonnummer'\n type='tel'\n required={false}\n pattern='^\\+?[0-9\\s\\-]{7,15}$'\n defaultValue={state.telephone}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n telephone: v,\n }))\n }\n />\n </div>\n </div>\n )\n}\n","interface ComboBoxProps {\n id?: string\n options: string[]\n value: string\n onValueChange: (newValue: string) => void\n}\n\nconst ComboBoxInput = ({ id, options, value, onValueChange }: ComboBoxProps) => {\n const handleChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const value = e.target.value\n onValueChange(value)\n }\n\n return (\n <select\n id={id}\n className='tw-form-select tw-block tw-w-full tw-py-2 tw-px-4 tw-border tw-border-gray-300 rounded-md tw-shadow-sm tw-text-sm focus:tw-outline-none focus:tw-ring-indigo-500 focus:tw-border-indigo-500 sm:tw-text-sm'\n onChange={handleChange}\n >\n {options.map((o) => (\n <option value={o} key={o} selected={o === value}>\n {o}\n </option>\n ))}\n </select>\n )\n}\n\nexport default ComboBoxInput\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { useEffect } from 'react'\n\nimport ComboBoxInput from '#components/Input/ComboBoxInput'\n\nimport type { FormState } from '#types/FormState'\nimport type { Item } from '#types/Item'\n\ninterface groupType {\n groupTypes_id: {\n name: string\n color: string\n image: string\n markerIcon: string\n }\n}\n\nexport const GroupSubheaderForm = ({\n state,\n setState,\n groupStates,\n groupTypes,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n groupStates?: string[]\n groupTypes?: groupType[]\n}) => {\n useEffect(() => {\n if (groupTypes && groupStates) {\n const groupType = groupTypes.find((gt) => gt.groupTypes_id.name === state.group_type)\n const customImage = !groupTypes.some(\n (gt) => gt.groupTypes_id.image === state.image || !state.image,\n )\n setState((prevState) => ({\n ...prevState,\n color: groupType?.groupTypes_id.color || groupTypes[0].groupTypes_id.color,\n marker_icon: groupType?.groupTypes_id.markerIcon || groupTypes[0].groupTypes_id.markerIcon,\n image: customImage\n ? state.image\n : groupType?.groupTypes_id.image || groupTypes[0].groupTypes_id.image,\n status: state.status || groupStates[0],\n group_type: state.group_type || groupTypes[0].groupTypes_id.name,\n }))\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.group_type, groupTypes])\n\n return (\n <div className='tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6'>\n <div>\n <label\n htmlFor='status'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenstatus:\n </label>\n <ComboBoxInput\n id='status'\n options={groupStates || []}\n value={state.status}\n onValueChange={(v) =>\n setState((prevState) => ({\n ...prevState,\n status: v,\n }))\n }\n />\n </div>\n <div>\n <label\n htmlFor='groupType'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenart:\n </label>\n <ComboBoxInput\n id='groupType'\n options={groupTypes?.map((gt) => gt.groupTypes_id.name) || []}\n value={state.group_type}\n onValueChange={(v) =>\n setState((prevState) => ({\n ...prevState,\n group_type: v,\n }))\n }\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { PopupStartEndInput } from '#components/Map'\n\nimport type { Item } from '#types/Item'\n\nexport const ProfileStartEndForm = ({\n item,\n setState,\n}: {\n item: Item\n setState: React.Dispatch<React.SetStateAction<any>>\n}) => {\n return (\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) =>\n setState((prevState) => ({\n ...prevState,\n end: e,\n }))\n }\n updateStartValue={(s) =>\n setState((prevState) => ({\n ...prevState,\n start: s,\n }))\n }\n ></PopupStartEndInput>\n )\n}\n","import { useState } from 'react'\n\nexport const MarkdownHint = () => {\n const [expended, setExpended] = useState<boolean>(false)\n return (\n <div\n onClick={() => setExpended(true)}\n title='Markdown is supported'\n className='flex tw-flex-row tw-text-gray-400 tw-cursor-pointer tw-items-center'\n >\n <svg\n aria-hidden='true'\n height='16'\n viewBox='0 0 16 16'\n version='1.1'\n width='16'\n data-view-component='true'\n className='octicon octicon-markdown'\n fill='rgb(156 163 175 / var(--tw-text-opacity))'\n >\n <path d='M14.85 3c.63 0 1.15.52 1.14 1.15v7.7c0 .63-.51 1.15-1.15 1.15H1.15C.52 13 0 12.48 0 11.84V4.15C0 3.52.52 3 1.15 3ZM9 11V5H7L5.5 7 4 5H2v6h2V8l1.5 1.92L7 8v3Zm2.99.5L14.5 8H13V5h-2v3H9.5Z'></path>\n </svg>\n {expended && (\n <a\n href='https://www.markdownguide.org/cheat-sheet/#basic-syntax'\n target='_blank'\n rel='noreferrer'\n >\n <span className='Button-label tw-ml-1'>Markdown is support</span>{' '}\n </a>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState } from 'react'\n\nimport { TextAreaInput } from '#components/Input'\nimport { getValue } from '#utils/GetValue'\n\nimport { MarkdownHint } from './MarkdownHint'\n\nimport type { FormState } from '#types/FormState'\n\nexport const ProfileTextForm = ({\n state,\n setState,\n dataField,\n heading,\n size,\n hideInputLabel,\n required,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n dataField?: string\n heading: string\n size: string\n hideInputLabel: boolean\n required?: boolean\n}) => {\n const [field, setField] = useState<string>(dataField || 'text')\n\n useEffect(() => {\n if (!dataField) {\n setField('text')\n }\n }, [dataField])\n\n return (\n <div className='tw-h-full tw-flex tw-flex-col tw-mt-4'>\n <div className='tw-flex tw-justify-between tw-items-center'>\n <label\n htmlFor='nextAppointment'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n {heading || 'Text'}:\n </label>\n <MarkdownHint />\n </div>\n <TextAreaInput\n placeholder={'...'}\n defaultValue={getValue(state, field)}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n [field]: v,\n }))\n }\n labelStyle={hideInputLabel ? 'tw-hidden' : ''}\n containerStyle={size === 'full' ? 'tw-grow tw-h-full' : ''}\n inputStyle={size === 'full' ? 'tw-h-full' : 'tw-h-24'}\n required={required}\n />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n\nimport { ContactInfoForm } from '#components/Profile/Subcomponents/ContactInfoForm'\nimport { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubheaderForm'\nimport { ProfileStartEndForm } from '#components/Profile/Subcomponents/ProfileStartEndForm'\nimport { ProfileTextForm } from '#components/Profile/Subcomponents/ProfileTextForm'\n\nimport type { FormState } from '#types/FormState'\nimport type { Item } from '#types/Item'\n\nconst componentMap = {\n groupSubheaders: GroupSubheaderForm,\n texts: ProfileTextForm,\n contactInfos: ContactInfoForm,\n startEnd: ProfileStartEndForm,\n // weitere Komponenten hier\n}\n\nexport const FlexForm = ({\n item,\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n}) => {\n return (\n <div className='tw-mt-6 tw-flex tw-flex-col tw-h-full'>\n {item.layer?.itemType.profileTemplate.map((templateItem) => {\n const TemplateComponent = componentMap[templateItem.collection]\n return TemplateComponent ? (\n <TemplateComponent\n key={templateItem.id}\n state={state}\n setState={setState}\n item={item}\n {...templateItem.item}\n />\n ) : (\n <div key={templateItem.id}>Component not found</div>\n )\n })}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { TextAreaInput } from '#components/Input'\nimport { ContactInfoForm } from '#components/Profile/Subcomponents/ContactInfoForm'\nimport { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubheaderForm'\n\nimport type { FormState } from '#types/FormState'\nimport type { Item } from '#types/Item'\n\nexport const OnepagerForm = ({\n item,\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n}) => {\n return (\n <div className='tw-space-y-6 tw-mt-6'>\n <GroupSubheaderForm state={state} setState={setState} item={item}></GroupSubheaderForm>\n <ContactInfoForm state={state} setState={setState}></ContactInfoForm>\n\n <div>\n <label\n htmlFor='description'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenbeschreibung:\n </label>\n <TextAreaInput\n placeholder='Beschreibung'\n defaultValue={state.text || ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n inputStyle='tw-h-48'\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { TextAreaInput } from '#components/Input'\n\n// eslint-disable-next-line react/prop-types\nexport const SimpleForm = ({ state, setState }) => {\n return (\n <TextAreaInput\n placeholder='About me ...'\n // eslint-disable-next-line react/prop-types\n defaultValue={state?.text || ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n containerStyle='tw-mt-8 tw-h-full'\n inputStyle='tw-h-full'\n />\n )\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect, useRef, useState } from 'react'\n\nimport { TagView } from '#components/Templates/TagView'\n\nexport const Autocomplete = ({\n inputProps,\n suggestions,\n onSelected,\n pushFilteredSuggestions,\n setFocus,\n}: {\n inputProps: any\n suggestions: any[]\n onSelected: (suggestion) => void\n pushFilteredSuggestions?: any[]\n setFocus?: boolean\n}) => {\n const [filteredSuggestions, setFilteredSuggestions] = useState<any[]>([])\n const [heighlightedSuggestion, setHeighlightedSuggestion] = useState<number>(0)\n\n useEffect(() => {\n pushFilteredSuggestions && setFilteredSuggestions(pushFilteredSuggestions)\n }, [pushFilteredSuggestions])\n\n useEffect(() => {\n setFocus && inputRef.current?.focus()\n }, [setFocus])\n\n const inputRef = useRef<HTMLInputElement>()\n\n const getSuggestionValue = (suggestion) => suggestion.name\n\n const getSuggestions = (value) => {\n const inputValue = value.trim().toLowerCase()\n const inputLength = inputValue.length\n\n return inputLength === 0\n ? []\n : suggestions.filter((tag) => tag.name.toLowerCase().slice(0, inputLength) === inputValue)\n }\n\n const handleChange = (e) => {\n setFilteredSuggestions(getSuggestions(e.target.value))\n\n // Call the parent's onChange handler, if it exists\n if (inputProps.onChange) {\n inputProps.onChange(e)\n }\n }\n\n function handleSuggestionClick(suggestion) {\n onSelected(suggestion)\n }\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowDown':\n heighlightedSuggestion < filteredSuggestions.length - 1 &&\n setHeighlightedSuggestion((current) => current + 1)\n break\n case 'ArrowUp':\n heighlightedSuggestion > 0 && setHeighlightedSuggestion((current) => current - 1)\n break\n case 'Enter':\n if (filteredSuggestions.length > 0) {\n // eslint-disable-next-line security/detect-object-injection\n onSelected(filteredSuggestions[heighlightedSuggestion])\n setHeighlightedSuggestion(0)\n }\n filteredSuggestions.length === 0 && inputProps.onKeyDown(event)\n break\n default:\n inputProps.onKeyDown(event)\n break\n }\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n {...inputProps}\n type='text'\n onChange={(e) => handleChange(e)}\n tabIndex='-1'\n onKeyDown={handleKeyDown}\n />\n <ul\n className={`tw-absolute tw-z-[4000] ${filteredSuggestions.length > 0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2'}`}\n >\n {filteredSuggestions.map((suggestion, index) => (\n <li key={index} onClick={() => handleSuggestionClick(suggestion)}>\n <TagView heighlight={index === heighlightedSuggestion} tag={suggestion}></TagView>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useState } from 'react'\n\nimport { Autocomplete } from '#components/Input/Autocomplete'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { decodeTag, encodeTag } from '#utils/FormatTags'\nimport { randomColor } from '#utils/RandomColor'\n\nimport type { Tag } from '#types/Tag'\n\n// eslint-disable-next-line react/prop-types\nexport const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => {\n const [input, setInput] = useState('')\n const [isKeyReleased, setIsKeyReleased] = useState(false)\n const tags = useTags()\n const [pushFilteredSuggestions, setPushFilteredSuggestions] = useState<any[]>([])\n\n const [focusInput, setFocusInput] = useState<boolean>(false)\n const [currentTags, setCurrentTags] = useState<Tag[]>(defaultTags)\n\n useEffect(() => {\n setCurrentTags(defaultTags)\n }, [defaultTags])\n\n const onChange = (e) => {\n const { value } = e.target\n setInput(value)\n }\n\n const onKeyDown = (e) => {\n const { key } = e\n const trimmedInput = input.trim()\n\n if (\n (key === 'Enter' || key === ',') &&\n trimmedInput.length &&\n // eslint-disable-next-line react/prop-types\n !defaultTags.some((tag) => tag.name.toLocaleLowerCase() === trimmedInput.toLocaleLowerCase())\n ) {\n e.preventDefault()\n const newTag = tags.find((t) => t.name === trimmedInput.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag])\n !newTag &&\n onUpdate([\n ...currentTags,\n { id: crypto.randomUUID(), name: encodeTag(trimmedInput), color: randomColor() },\n ])\n setInput('')\n setPushFilteredSuggestions([])\n }\n\n // eslint-disable-next-line react/prop-types\n if (key === 'Backspace' && !input.length && defaultTags.length && isKeyReleased) {\n const defaultTagsCopy = [...defaultTags]\n const poppedTag = defaultTagsCopy.pop()\n e.preventDefault()\n onUpdate(defaultTagsCopy)\n poppedTag && setInput(poppedTag.name)\n }\n\n setIsKeyReleased(false)\n }\n\n const onKeyUp = () => {\n setIsKeyReleased(true)\n }\n\n const deleteTag = (tag) => {\n onUpdate(currentTags.filter((t) => t !== tag))\n }\n\n const onSelected = (tag) => {\n // eslint-disable-next-line react/prop-types\n if (!defaultTags.some((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())) {\n const newTag = tags.find((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag])\n !newTag &&\n onUpdate([\n ...currentTags,\n { id: crypto.randomUUID(), name: tag.name.toLocaleLowerCase(), color: randomColor() },\n ])\n setInput('')\n setPushFilteredSuggestions([])\n }\n }\n\n const inputProps = {\n value: input,\n placeholder,\n onKeyDown,\n onKeyUp,\n onChange,\n className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit',\n }\n\n /* eslint-disable react/prop-types */\n return (\n <div\n onClick={() => {\n setFocusInput(true)\n setTimeout(() => {\n setFocusInput(false)\n }, 200)\n }}\n className={`tw-input tw-input-bordered tw-cursor-text ${containerStyle}`}\n >\n <div className='tw-flex tw-flex-wrap tw-h-fit'>\n {defaultTags.map((tag) => (\n <div\n key={tag.name}\n className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4'\n style={{ backgroundColor: tag.color ? tag.color : '#666' }}\n >\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600'\n onClick={() => deleteTag(tag)}\n >\n ✕\n </label>\n </div>\n <b>{decodeTag(tag.name)}</b>\n </div>\n ))}\n <Autocomplete\n suggestions={tags}\n pushFilteredSuggestions={pushFilteredSuggestions}\n setFocus={focusInput}\n inputProps={inputProps}\n onSelected={(tag) => onSelected(tag)}\n />\n </div>\n </div>\n )\n /* eslint-enable react/prop-types */\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable react/prop-types */\nimport { useCallback, useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { TextAreaInput } from '#components/Input'\nimport { PopupStartEndInput, TextView } from '#components/Map'\nimport { useUpdateItem } from '#components/Map/hooks/useItems'\nimport { ActionButton } from '#components/Profile/Subcomponents/ActionsButton'\nimport { LinkedItemsHeaderView } from '#components/Profile/Subcomponents/LinkedItemsHeaderView'\nimport { TagsWidget } from '#components/Profile/Subcomponents/TagsWidget'\n\nexport const TabsForm = ({\n item,\n state,\n setState,\n updatePermission,\n linkItem,\n unlinkItem,\n loading,\n setUrlParams,\n}) => {\n const [activeTab, setActiveTab] = useState<number>(1)\n const navigate = useNavigate()\n const updateItem = useUpdateItem()\n\n const updateActiveTab = useCallback(\n (id: number) => {\n setActiveTab(id)\n\n const params = new URLSearchParams(window.location.search)\n\n params.set('tab', `${id}`)\n const newUrl = location.pathname + '?' + params.toString()\n window.history.pushState({}, '', newUrl)\n setUrlParams(params)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [location.pathname],\n )\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTab = params.get('tab')\n setActiveTab(urlTab ? Number(urlTab) : 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n return (\n <div role='tablist' className='tw-tabs tw-tabs-lifted tw-mt-3'>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={'tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'}\n aria-label='Info'\n checked={activeTab === 1 && true}\n onChange={() => updateActiveTab(1)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none'\n >\n <div\n className={`tw-flex tw-flex-col tw-h-full ${item.layer.itemType.show_start_end_input && 'tw-pt-4'}`}\n >\n {item.layer.itemType.show_start_end_input && (\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) =>\n setState((prevState) => ({\n ...prevState,\n end: e,\n }))\n }\n updateStartValue={(s) =>\n setState((prevState) => ({\n ...prevState,\n start: s,\n }))\n }\n ></PopupStartEndInput>\n )}\n\n <TextAreaInput\n placeholder='about ...'\n defaultValue={item?.text ? item.text : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n containerStyle='tw-grow'\n inputStyle={`tw-h-full ${!item.layer.itemType.show_start_end_input && 'tw-border-t-0 tw-rounded-tl-none'}`}\n />\n <div>\n <TextAreaInput\n placeholder='contact info ...'\n defaultValue={state.contact || ''}\n updateFormValue={(c) =>\n setState((prevState) => ({\n ...prevState,\n contact: c,\n }))\n }\n inputStyle='tw-h-24'\n containerStyle='tw-pt-4'\n />\n </div>\n </div>\n </div>\n {item.layer?.itemType.offers_and_needs && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label='Offers & Needs'\n checked={activeTab === 3 && true}\n onChange={() => updateActiveTab(3)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none'\n >\n <div className='tw-h-full'>\n <div className='tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4'>\n <TagsWidget\n defaultTags={state.offers}\n onUpdate={(v) =>\n setState((prevState) => ({\n ...prevState,\n offers: v,\n }))\n }\n placeholder='enter your offers'\n containerStyle='tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto'\n />\n </div>\n <div className='tw-w-full tw-h-[calc(50%-1.5em)]'>\n <TagsWidget\n defaultTags={state.needs}\n onUpdate={(v) =>\n setState((prevState) => ({\n ...prevState,\n needs: v,\n }))\n }\n placeholder='enter your needs'\n containerStyle='tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto'\n />\n </div>\n </div>\n </div>\n </>\n )}\n {item.layer?.itemType.relations && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className='tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n aria-label='Links'\n checked={activeTab === 7 && true}\n onChange={() => updateActiveTab(7)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-332px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mx-4 tw-overflow-x-hidden fade'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-mb-4'>\n {state.relations &&\n state.relations.map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-mx-4 tw-p-6 tw-mb-4'\n onClick={() => navigate('/item/' + i.id)}\n >\n <LinkedItemsHeaderView\n unlinkPermission={updatePermission}\n item={i}\n unlinkCallback={(id) => unlinkItem(id, item, updateItem)}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} />\n </div>\n </div>\n ))}\n {updatePermission && (\n <ActionButton\n customStyle='!tw-bottom-24'\n collection='items'\n item={item}\n existingRelations={state.relations}\n triggerItemSelected={(id) => linkItem(id, item, updateItem)}\n colorField={item.layer.itemColorField}\n ></ActionButton>\n )}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useAuth } from '#components/Auth'\nimport { useItems, useUpdateItem, useAddItem } from '#components/Map/hooks/useItems'\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useAddTag, useGetItemTags, useTags } from '#components/Map/hooks/useTags'\nimport { MapOverlayPage } from '#components/Templates'\nimport { getValue } from '#utils/GetValue'\n\nimport { linkItem, onUpdateItem, unlinkItem } from './itemFunctions'\nimport { FormHeader } from './Subcomponents/FormHeader'\nimport { FlexForm } from './Templates/FlexForm'\nimport { OnepagerForm } from './Templates/OnepagerForm'\nimport { SimpleForm } from './Templates/SimpleForm'\nimport { TabsForm } from './Templates/TabsForm'\n\nimport type { Item } from '#types/Item'\nimport type { Tag } from '#types/Tag'\n\nexport function ProfileForm() {\n const [state, setState] = useState({\n color: '',\n id: '',\n group_type: 'wuerdekompass',\n status: 'active',\n name: '',\n subname: '',\n text: '',\n contact: '',\n telephone: '',\n next_appointment: '',\n image: '',\n marker_icon: '',\n offers: [] as Tag[],\n needs: [] as Tag[],\n relations: [] as Item[],\n start: '',\n end: '',\n })\n\n const [updatePermission, setUpdatePermission] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n const [item, setItem] = useState<Item>({} as Item)\n const { user } = useAuth()\n const updateItem = useUpdateItem()\n const addItem = useAddItem()\n const layers = useLayers()\n const location = useLocation()\n const tags = useTags()\n const addTag = useAddTag()\n const navigate = useNavigate()\n const hasUserPermission = useHasUserPermission()\n const getItemTags = useGetItemTags()\n const items = useItems()\n const appState = useAppState()\n\n const [urlParams, setUrlParams] = useState(new URLSearchParams(location.search))\n\n useEffect(() => {\n item && hasUserPermission('items', 'update', item) && setUpdatePermission(true)\n }, [hasUserPermission, item])\n\n useEffect(() => {\n const itemId = location.pathname.split('/')[2]\n\n const item = items.find((i) => i.id === itemId)\n item && setItem(item)\n\n if (!item) {\n const layer = layers.find((l) => l.itemType.name === appState.userType)\n setItem({\n id: crypto.randomUUID(),\n name: user?.first_name ?? '',\n text: '',\n layer,\n new: true,\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n useEffect(() => {\n const newColor =\n item.layer?.itemColorField && getValue(item, item.layer.itemColorField)\n ? getValue(item, item.layer.itemColorField)\n : getItemTags(item) && getItemTags(item)[0]?.color\n ? getItemTags(item)[0].color\n : item.layer?.markerDefaultColor\n\n const offers = (item.offers ?? []).reduce((acc: Tag[], o) => {\n const offer = tags.find((t) => t.id === o.tags_id)\n if (offer) acc.push(offer)\n return acc\n }, [])\n\n const needs = (item.needs ?? []).reduce((acc: Tag[], o) => {\n const need = tags.find((t) => t.id === o.tags_id)\n if (need) acc.push(need)\n return acc\n }, [])\n\n const relations = (item.relations ?? []).reduce((acc: Item[], r) => {\n const relatedItem = items.find((i) => i.id === r.related_items_id)\n if (relatedItem) acc.push(relatedItem)\n return acc\n }, [])\n\n setState({\n color: newColor,\n id: item?.id ?? '',\n group_type: item?.group_type ?? '',\n status: item?.status ?? '',\n name: item?.name ?? '',\n subname: item?.subname ?? '',\n text: item?.text ?? '',\n contact: item?.contact ?? '',\n telephone: item?.telephone ?? '',\n next_appointment: item?.next_appointment ?? '',\n image: item?.image ?? '',\n marker_icon: item?.marker_icon ?? '',\n offers,\n needs,\n relations,\n start: item.start ?? '',\n end: item.end ?? '',\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, tags, items])\n\n const [template, setTemplate] = useState<string>('')\n\n useEffect(() => {\n setTemplate(item.layer?.itemType.template || appState.userType)\n }, [appState.userType, item])\n\n return (\n <>\n <MapOverlayPage\n backdrop\n className='tw-mx-4 tw-mt-4 tw-mb-4 tw-overflow-x-hidden tw-w-[calc(100%-32px)] md:tw-w-[calc(50%-32px)] tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0'\n >\n <form\n className='tw-h-full'\n onSubmit={(e) => {\n e.preventDefault()\n void onUpdateItem(\n state,\n item,\n tags,\n addTag,\n setLoading,\n navigate,\n updateItem,\n addItem,\n user,\n urlParams,\n )\n }}\n >\n <div className='tw-flex tw-flex-col tw-h-full'>\n <FormHeader item={item} state={state} setState={setState} />\n\n {template === 'onepager' && (\n <OnepagerForm item={item} state={state} setState={setState}></OnepagerForm>\n )}\n\n {template === 'simple' && <SimpleForm state={state} setState={setState}></SimpleForm>}\n\n {template === 'flex' && (\n <FlexForm item={item} state={state} setState={setState}></FlexForm>\n )}\n\n {template === 'tabs' && (\n <TabsForm\n loading={loading}\n item={item}\n state={state}\n setState={setState}\n updatePermission={updatePermission}\n linkItem={(id) => linkItem(id, item, updateItem)}\n unlinkItem={(id) => unlinkItem(id, item, updateItem)}\n setUrlParams={setUrlParams}\n ></TabsForm>\n )}\n\n <div className='tw-mt-4'>\n <button\n className={loading ? ' tw-loading tw-btn tw-float-right' : 'tw-btn tw-float-right'}\n type='submit'\n style={{\n backgroundColor: `${item.layer?.itemColorField && getValue(item, item.layer?.itemColorField) ? getValue(item, item.layer?.itemColorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n Update\n </button>\n </div>\n </div>\n </form>\n </MapOverlayPage>\n </>\n )\n}\n","import { useEffect } from 'react'\n\nexport function Modal({\n children,\n showOnStartup,\n}: {\n children: React.ReactNode\n showOnStartup?: boolean\n}) {\n useEffect(() => {\n if (showOnStartup) {\n window.my_modal_3.showModal()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <>\n {/* You can open the modal using ID.showModal() method */}\n <dialog id='my_modal_3' className='tw-modal tw-transition-all tw-duration-300'>\n <form method='dialog' className='tw-modal-box tw-transition-none'>\n <button className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2 focus:tw-outline-none'>\n ✕\n </button>\n {children}\n </form>\n <form method='dialog' className='tw-modal-backdrop'>\n <button>close</button>\n </form>\n </dialog>\n </>\n )\n}\n","import { useEffect, useState } from 'react'\n\nimport { useAuth } from '#components/Auth'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport { useQuestsOpen, useSetQuestOpen } from './hooks/useQuests'\n\nimport type { Item } from '#types/Item'\n\nexport function Quests() {\n const questsOpen = useQuestsOpen()\n const setQuestsOpen = useSetQuestOpen()\n const { isAuthenticated, user } = useAuth()\n\n useEffect(() => {\n setQuestsOpen(false)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const [profile, setProfie] = useState<Item>()\n\n const items = useItems()\n\n useEffect(() => {\n setProfie(\n items.find(\n (i) =>\n i.user_created?.id === user?.id &&\n i.layer?.itemType.name === 'user' &&\n i.user_created?.id != null,\n ),\n )\n }, [items, user])\n\n return (\n <>\n {questsOpen ? (\n <div className='tw-card tw-w-48 tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-[2000]'>\n <div className='tw-card-body tw-p-4 tw-pt-0'>\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1'\n onClick={() => setQuestsOpen(false)}\n >\n ✕\n </label>\n </div>\n <h2 className='tw-card-title tw-m-auto '>\n Level 1\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={1.5}\n stroke='#aaa'\n className='tw-w-5 tw-h-5 tw-cursor-pointer'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z'\n />\n </svg>\n </h2>\n <ul className='tw-flex-row'>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isAuthenticated || false}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Sign Up</span>\n </label>\n </li>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={!!profile?.text}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Fill Profile</span>\n </label>\n </li>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={!!profile?.image}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Upload Avatar</span>\n </label>\n </li>\n </ul>\n {/** <button className='tw-btn tw-btn-xs tw-btn-neutral tw-w-fit tw-self-center tw-mt-1'>Next &gt;</button> */}{' '}\n </div>\n </div>\n ) : (\n ''\n )}\n </>\n )\n}\n"],"names":["_jsx","Router","_jsxs","_Fragment","LeafletPopup","ChevronRightIcon","componentMap"],"mappings":"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","x_google_ignoreList":[0,31]}